`
-
-###### i18n
-
-+ Course option metabox for reviews is not translatable
-
-
-v3.10.0 - 2017-07-05
---------------------
-
-##### Recurring Order Management (for Admins)
-
-+ Admins can now edit various pieces of data related to a recurring order from the order screen on the admin panel
- + Allow editing of the Next Payment Date
- + Allow editing of the Trial End Date (when a trial is active for the order)
- + Edit Payment Gateway and related gateway fields (Customer ID, Source ID, and Subscription ID)
-+ If you're using LifterLMS Stripe or LifterLMS PayPal please update to the latest version of these add-ons to take advantage of these new features!
-
-##### Recurring Order Management (for Students)
-
-+ Students can now switch the payment method (source) for their recurring subscriptions from the student dashboard
-+ Students can now cancel their recurring orders to prevent future payments on recurring orders
-+ If you're using LifterLMS Stripe or LifterLMS PayPal please update to the latest version of these add-ons to take advantage of these new features!
-
-##### Automatic Payment Retries (for supporting gateways)
-
-+ LifterLMS Stripe and LifterLMS PayPal can now automatically retry failed payments to help recover lost revenue as a result of temporary declines to payment sources. Please see our documentation on this new feature [here](https://lifterlms.com/docs/automatic-retry-failed-payments/).
-+ If you're using LifterLMS Stripe or LifterLMS PayPal please update to the latest version of these add-ons to take advantage of these new features!
-
-##### Manual Payment Gateway Enhancements
-
-+ The Manual Payment Gateway (bundled with LifterLMS Core) can now handle recurring payments. For more information on utilizing recurring payments with the Manual Gateway please see the [gateway documentation](https://lifterlms.com/docs/using-lifterlms-manual-payment-gateway/).
-
-##### Updates and Fixes
-
-+ Force SSL setting now applies to Student Dashboard screens. This is useful as Google now recommends any page where a password is submitted should be encrypted and allows gateway communication from student dashboard screen with APIs that require an SSL connection.
-+ Fixed spelling error related to quizzes
-
-##### Templates changed
-
-**NEW**
-
-+ [checkout/form-switch-source.php](https://github.com/gocodebox/lifterlms/blob/master/templates/checkout/form-switch-source.php)
-+ [myaccount/view-order-transactions.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/view-order-transactions.php)
-
-**UPDATED**
-
-+ [admin/post-types/order-details.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/post-types/order-details.php)
-+ [myaccount/my-orders.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/my-orders.php)
-+ [myaccount/navigation.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/navigation.php)
-+ [myaccount/view-order.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/view-order.php)
-+ [quiz/summary.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/summary.php)
-
-
-v3.9.5 - 2017-06-13
--------------------
-
-+ Increased css z-index of basic notifications to prevent issues with themes that have high z-index on menus and other elements
-+ Increased the frequency of basic notification heartbeat check from 10 to 20 seconds
-+ Added filter to allow for customization of the notifications heartbeat interval, example [here](https://lifterlms.com/docs/lifterlms-filters/#llms_notifications_settings).
-+ Fixed error related to password reset when the "Disable Usernames" account setting is disabled
-
-
-v3.9.4 - 2017-06-12
--------------------
-
-+ Fix hardcoded db reference to `wp_posts` table
-
-
-v3.9.3 - 2017-06-09
--------------------
-
-+ Fix typo in notifications query
-
-
-v3.9.2 - 2017-06-07
--------------------
-
-+ Tested up to WordPress 4.8
-+ Fixed issue with merge codes on WP Editors for notifications, emails, etc...
-+ Update notifications query to only return results related to posts which actually exist. Prevents errors occurring when reviewing achievements on the student dashboard for courses, lessons, etc which have been deleted/trashed.
-+ Only display quiz time limit meta information when a time limit exists
-+ Fix display of quiz question order (question x of x)
-+ Improved logic powering quiz attempt grading for increased consistency, especially with regards to floats and rounding
-
-##### Templates Changed
-
-+ [quiz/meta-information.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/meta-information.php)
-+ [quiz/question-count.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/question-count.php)
-
-
-v3.9.1 - 2017-06-02
--------------------
-
-+ Fix engagement triggers with relation to quizzes to properly receive 3.9 api updates
-+ Fix quiz attempt counting issue resulting in the total attempts by a student always being one more than the actual value
-+ Fix membership access plan restrictions tooltip
-
-
-v3.9.0 - 2017-06-02
--------------------
-
-##### Quizzes
-
-+ All new quiz results interface for students
- + Donut charts are now animated
- + Donuts will be green for passing attempt and red for failing
- + Students can now review previous quiz attempts and summaries
- + Removed the juxtaposition of the current and best attempts to reduce confusion on the interface
- + Improved the consistency of the quiz meta information markup
- + Adjusted various pieces of language for an improved student experience
-+ Improvements to the quiz taking experience
- + Added the LLMS_Spinner (seen on checkout screens and various places on the admin panel) and various loading messages when starting quiz, transitioning between questions, and completing a quiz
- + Better error handling and management should issues arise during a quiz
- + Better unload & beforeunload JS management to warn students when they attempt to leave a quiz in progress
-+ Improved quiz data handling and management
- + Improved API calls and handlers related to taking quizzes for increased performance and consistency
- + quiz data can now be programmatically queried via consistent apis and data classes, see `LLMS_Student->quizzes()` and `LLMS_Quiz_Attempt`
-+ Quizzes no longer rely on session and cookie data. All quiz data will always be saved directly to the database and related to the student. Fixes an issue on certain servers preventing student from starting quizzes.
-+ Deprecated `LLMS_Quiz::start_quiz()`, `LLMS_Quiz::answer_question()`, and, `LLMS_Quiz::complete_quiz()`
- + Ajax handler functions of the same names should be used instead.
- + To programmatically "take" quizzes use related functions of similar names from the `LLMS_Quiz_Attempt` class
-
-##### Templates changed
-
-+ New
- + [quiz/meta-information.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/meta-information.php)
-
-+ Updated
- + [admin/reporting/tabs/students/courses.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/reporting/tabs/students/courses.php)
- + [content-certificate.php](https://github.com/gocodebox/lifterlms/blob/master/templates/content-certificate.php)
- + [course/complete-lesson-link.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/complete-lesson-link.php)
- + [myaccount/my-notifications.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/my-notifications.php)
- + [quiz/next-question.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/next-question.php)
- + [quiz/previous-question.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/previous-question.php)
- + [quiz/question-count.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/question-count.php)
- + [quiz/quiz-question.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/quiz-question.php)
- + [quiz/quiz-wrapper-end.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/quiz-wrapper-end.php)
- + [quiz/quiz-wrapper-start.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/quiz-wrapper-start.php)
- + [quiz/results.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/results.php)
- + [quiz/return-to-lesson.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/return-to-lesson.php)
- + [quiz/single-choice_ajax.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/single-choice_ajax.php)
- + [quiz/start-button.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/start-button.php)
- + [quiz/summary.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/summary.php)
-
-+ Removed
- + quiz/attempts.php - replaced by [quiz/meta-information.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/meta-information.php)
- + quiz/passing-percent.php - replaced by [quiz/meta-information.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/meta-information.php)
- + quiz/time-limit.php - replaced by [quiz/meta-information.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/meta-information.php)
-
-##### Fixes
-
-+ Student Dashboard notifications page will not display pagination links unless there's results to page through
-+ Student Dashboard notifications page will now display a message when no notifications are found
-+ Certificate previewing now takes into consideration the preview setting roles to allow admins (or other roles) to preview certificates
-+ Made student name self fallback (you) i18n friendly
-
-
-v3.8.1 - 2017-05-21
--------------------
-
-+ Fix merge code issue related to course title on quiz notifications
-
-
-v3.8.0 - 2017-05-20
--------------------
-
-+ Automatic email and basic (on-screen) notifications for various events within LifterLMS
- + All notifications can be customized
- + Email notifications can be optionally sent to custom email address, course authors, and more
-+ Students will automatically receive email receipts when making purchases and when recurring access plans rebill
-+ Hidden Access Plans
-+ Add a "Purchase Link" view button to access plans so admins can quickly grab the direct URL to an access plan
-+ Notifications history screen on Student Dashboard to review past notifications that have been received
-+ Updated LLMS_Email class and functionality
-+ Email templates have been completely rewritten and styled
-+ Updated and rewritten password reset flow
-+ Earned certificates are only accessible by the student who earned the certificate
-+ Added the functionality for image upload via options & settings api
-+ Removed a handful of unused templates related to LifterLMS certificates that were replaced a long time ago but still existed in the codebase for unknown reasons.
-+ Fixed filter on engagements settings page
-+ Minor adjustments to language and settings order on Engagements settings screen for email settings
-+ Email Header Image field is now an upload field as opposed to a "paste a url here" setting
-+ Phone number recorded to order and displayed on order for admin panel during purchases
-+ Order details now display full country name as opposed to the country code
-+ Fix installation script to ensure admin can preview by default
-
-
-v3.7.7 - 2017-05-16
--------------------
-
-+ Updated a few strings on the admin panel to be translatable
-+ Fix PHP warning output during plugin activation
-+ Fix reporting issue related to outputting quiz question answers where the correct answer is the first available answer
-+ Fix PHP 7.1 issue on the checkout screen
-+ Removed some unnecessary files from vendor libraries
-
-
-v3.7.6 - 2017-05-05
--------------------
-
-+ New translations for new categories on Add-ons screen
-+ Update to general settings which utilizes featured items from the general settings screen
-+ Update readme & related meta files
-+ Removed advert image files
-
-
-v3.7.5 - 2017-05-02
--------------------
-
-+ Upgrade WP Session Manager to latest version
-+ Code style updates across most files in codebase to bring to most recent styling guidelines put forth by [WP Coding Standards](https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards)
-
-
-v3.7.4 - 2017-04-26
--------------------
-
-+ When cloned site detected automatically disable recurring_payments feature & trigger an action 3rd parties can hook into for custom 3rd party features
-+ Add better JS dependency management to prevent issues where assets loaded in the wrong order
-+ Fix issue where dismiss icon on LifterLMS admin notices was positioned poorly on non-LifterLMS admin screens
-+ Fix issue preventing edit account form submission on student dashboard when password strength meter is disabled
-
-
-v3.7.3 - 2017-04-21
--------------------
-
-+ Fixed issues where Course Track checks were not functioning properly with relation to prerequisite associations
-+ `LLMS_Generator` can now be used to generate course(s) from a raw array of course data using the SingleCourseGenerator and BulkCourseGenerator
-+ `LLMS_Generator` default post status can be set at runtime using `set_default_post_status()`
-+ Fixed an issue causing JS errors on the `wp-login.php` screen
-+ Tested up to WordPress 4.7.4
-
-### Template Updates
-
-+ `course/prerequisites.php` - Prerequisite checks check for 'course_track' rather than 'track'
-
-
-v3.7.2 - 2017-04-17
--------------------
-
-+ Resolved a JS errors on admin panel resulting from overly strict asset loading added in 3.7.0
-
-
-v3.7.1 - 2017-04-14
--------------------
-
-+ Fix php notice when no roles are selected for preview management feature
-
-
-v3.7.0 - 2017-04-13
--------------------
-
-**Preview Management**
-
-+ All new view management for users to make editing content easier for course builders
-+ Admins may customize the roles of users who can access view management
-+ Qualifying users can view content as an enrolled student or a non-enrolled visitor
-+ Default view allows users to bypass all restrictions (drip, membership, enrollment, and so on) for easy course navigation and management
-+ Thanks to [@fabianmarz](https://github.com/fabianmarz) and the team at and the team at [netzstrategen](https://github.com/netzstrategen) for their assistance with this feature!
-
-**Improvements**
-
-+ Edit Account Screen now utilizes updated APIs for better customization management
-+ Improve intelligence of enqueued admin js & css files
-
-**Fixes**
-
-+ Fixed coupon calculation issue related to currencies using commas as the decimal separator
-+ Properly display track related information when reviewing engagements on the admin panel
-+ fixed issue preventing course tracks from being recorded as completed
-
-
-v3.6.2 - 2017-04-10
--------------------
-
-+ Fix issue preventing export of vouchers via email
-+ added action `after_llms_mark_complete` to allow custom actions to happen after a course, lesson, etc... is marked complete
-
-
-v3.6.1 - 2017-03-28
--------------------
-
-+ Fix issue related to taking a quiz for the first time when no quiz data is available for a user
-+ Fix issue when course outline shortcode is displayed on non LifterLMS post types
-
-
-v3.6.0 - 2017-03-27
--------------------
-
-+ Courses and Memberships now have settings to control their visibility in catalogs and search results. For more information visit the [knowledge base](https://lifterlms.com/docs/course-membership-visibility-settings/).
-+ Courses are now a searchable post type. All existing courses will automatically remain excluded from search via new catalog visibility settings. New courses added after this date will be searchable unless the visibility is updated prior to publishing the course.
-+ Added options (and filters) to allow customization of the order of courses displayed on the Student Dashboard
- + Existing behavior (ordered by enrollment date, most recent to least recent) will be preserved
- + New installations will default (by popular demand) to Order (Low to High) which will obey the "Order" settings of courses
- + Customize or update the order for your site by visiting LifterLMS -> Settings -> Accounts and changing the setting for "Courses Sorting" under "Account Dashboard"
-+ New Shortcodes:
- + `[lifterlms_course_author]` - Display the Course Author's name, avatar, and (optionally) biography. [Info & Usage](https://lifterlms.com/docs/shortcodes/#lifterlms_course_author)
- + `[lifterlms_course_continue]` - Display a progress bar and continue button for enrolled students only. [Info & Usage](https://lifterlms.com/docs/shortcodes/#lifterlms_course_continue)
- + `[lifterlms_course_meta_info]` - Display all meta information for a course. [Info & Usage](https://lifterlms.com/docs/shortcodes/#lifterlms_course_meta_info)
- + `[lifterlms_course_prerequisites]` - Display a notice describing unfulfilled prerequisites for a course. [Info & Usage](https://lifterlms.com/docs/shortcodes/#lifterlms_course_prerequisites)
- + `[lifterlms_course_reviews]` - Display reviews and review form for a LifterLMS Course. [Info & Usage](https://lifterlms.com/docs/shortcodes/#lifterlms_course_reviews)
- + `[lifterlms_course_syllabus]` - Display the course syllabus. [Info & Usage](https://lifterlms.com/docs/shortcodes/#lifterlms_course_syllabus)
-+ "Back" & "Next" pagination links on Student Dashboard View Courses are now buttons instead of text links
-+ Fixed an issue preventing pagination links from displaying on the "View Courses" page of the student dashboard when the endpoint slug was customized
-+ Course and Membership taxonomy archive pages will now properly match the heights of tiles
-+ Fixed typo in `lifterlms_get_enrollment_status_name` filter
-+ Fixed typo in `lifterlms_get_order_status_name` filter
-+ Reduced complexity and redundancy of `llms_get_enrolled_students()`
-
-
-v3.5.3 - 2017-03-21
--------------------
-
-+ Ensure that access plan subscription schedule details are fully translatable
-+ Ensure "Services" title on admin add-ons screen can be translated
-+ Fix "View All My Courses" link on Student Dashboard to obey endpoint slug customizations
-+ Membership restriction checks only run on singular posts (not on archives)
-+ Ensure `[lifterlms_course_outline]` and Course Syllabus widget can be used on Quizzes.
-+ Fix reporting widgets for course & lesson completions to report the correct completion types only
-
-
-v3.5.2 - 2017-03-16
--------------------
-
-+ Fix course outline shortcode when used on a lesson
-+ Fix custom html form fields produced by `llms_form_field()`
-
-
-v3.5.1 - 2017-03-15
--------------------
-
-+ Lessons marked as incomplete will now display as incomplete in the course outline generated by the above Course Syllabus Widget and the course outline shortcode
-+ Updated course outline shortcode / course syllabus widget to utilize new APIs
-+ The template at `templates/course/outline-list-small.php` updated to reflect above changes. If you're overriding this template please review the changes and update accordingly
-+ Fix issue preventing course auto advance on lesson completion
-+ Shortcodes added within `[lifterlms_hide_content]` will now be processed
-
-
-v3.5.0 - 2017-03-13
--------------------
-
-+ New course setting **Retake Lessons** allows students to mark lessons as "incomplete" after completing lessons. Admins may enable this site-wide setting under Settings -> Courses.
-+ Course and Membership catalog per page settings will now only accept numbers
-+ "Catalogs" settings tab has been split into "Course" and "Membership" settings
-+ Settings added via filter `lifterlms_catalogs_settings` will be added to the "Course" settings tab and deprecated in the next major release
-+ Default course and membership catalog courses per page changed to 9. Previous default was 10 which results in a 4th row on catalogs with only one item.
-+ Tweaked size of LifterLMS admin tab menu items
-+ Pass API Mode Context to links generated by LifterLMS payment gateways
-+ Fixed typo on general settings screen
-+ Moved LifterLMS Add-on Banners from General Settings to an Add-Ons menu
-+ If required fields exist on checkout and are empty during free quick enrollment users will be redirected to the normal checkout page where they can enter required fields
-+ Updated action scheduler lib to latest version. Minor changes, fixes compatibility with WooMemberships.
-+ Recent activity stats widgets on general settings screen updated to be more reliable and accurate (and performant!)
-+ Added 3 new widgets to enrollments reporting tab: courses completed, lessons completed, and user registrations
-
-
-v3.4.8 - 2017-03-07
--------------------
-
-+ Tested to WordPress Version 4.7.3
-+ Fixed undefined index notice on admin panel
-+ Added a real description to new `_nx()` functions
-+ Access plan trial periods now allow proper translations
-
-
-v3.4.7 - 2017-03-03
--------------------
-
-+ Ensure run when the `lifterlms_db_version` option doesn't exist in the database
-
-
-v3.4.6 - 2017-03-03
--------------------
-
-+ Fixed a text domain typo preventing translation of "Correct Answer" on quiz results screen
-+ Ensure access plan "periods" are translatable
-+ Now using `date_i18n()` for certificate dates so that dates are properly localized
-+ Load plugin textdomain during `init` rather than `plugins_loaded`
-
-
-v3.4.5 - 2017-02-23
--------------------
-
-+ Ensure free access plans are available to logged out users
-
-
-v3.4.4 - 2017-02-22
--------------------
-
-+ Added a popup to warn students when leaving a quiz they've already started
-+ Enable removal of student quiz attempts by admins from student reporting screens
-+ Fix an undefined error on quiz reporting screens for incomplete quizzes
-+ Display incomplete (abandoned) quizzes as incomplete (instead of as still running) on the quiz reporting screen
-+ Prevent logged in users from bypassing membership restrictions for free members-only access plans
-
-
-v3.4.3 - 2017-02-20
--------------------
-
-+ Fix issue with bbPress integration so that forums restricted to multiple memberships allow users of at least one membership that the forum is restricted to access topics within that forum
-+ Ensure that the correct ajax url is used for quizzes, resolves issue for sites utilizing `FORCE_SSL_ADMIN`
-+ Refactored database background update scripts for increased reliability & performance
-+ Database update 3.3.0 moved to 3.4.3 in order to accommodate users who were unable to run the 3.3.0 update, please read the [3.4.3 database update notes](https://lifterlms.com/docs/lifterlms-database-updates/#343) for more information.
-+ WIP: refactoring shortcodes to a more sane set of functions and classes
-
-
-v3.4.2 - 2017-02-14
--------------------
-
-+ Backwards compatible css for tooltips
-
-
-v3.4.1 - 2017-02-14
--------------------
-
-+ Password strength meter now functions correctly when using the [lifterlms_registration] shortcode
-+ Ensure open registration with required voucher prevents registration with invalid vouchers
-+ Lesson completion via quiz completion only recorded the first time the quiz is completed
-+ Fix issue preventing membership catalog from obeying the catalog's ordering settings
-+ Prevent duplicate engagements from being triggered
-+ Admin tables can display percentages as a progress bar!
-+ Students reporting table displays overall progress as a progress bar
-+ Refactored frontend assets class to allow better management of inline scripts
-
-
-v3.4.0 - 2017-02-10
--------------------
-
-+ Enrollment for free access plans has improved based on your feedback. For more information see [https://lifterlms.com/docs/checkout-free-access-plans/](https://lifterlms.com/docs/checkout-free-access-plans/)
-+ Upgraded Student Management Table for courses and memberships:
- + Allow searching students by name / email
- + Allow filtering of students by current status
- + Allow sorting of students by name, user id, status, and enrollment updated date
- + Added student's grade to the table (courses only)
- + Table pagination allows skipping to the first and last pages
- + Student names link to full student reporting screen
- + Student IDs added to the table. ID links to the WP User Edit screen which was previously accessible by clicking the student's name
- + Utilizing improved database queries for displaying data on the table
-+ One-click bulk enrollment of all current members of a membership into an auto-enrollment course. More info [here](https://lifterlms.com/docs/membership-auto-enrollment/#bulk-enrollment)
-+ Students reporting table pagination can now jump to first and last page
-+ Students reporting table pagination now displays current page and total number of pages
-+ Added new class `LLMS_Student_Query` which is modeled, loosely, off of the `WP_User_Query` and allows for querying student data in relation to courses
-+ `LLMS_Admin_Table` abstract now supports filtering and jump to first and last page pagination options
-+ `llms_get_enrolled_students` now utilizes `LLMS_Student_Query` and resolves a bug where some users returned by this query would be returned with the incorrect status.
-+ Ensure `LLMS_Course::has_prerequisite( 'course' )` & `LLMS_Course::has_prerequisite( 'track' )` always return booleans
-+ Made a small performance tweak for courses without audio / video embeds
-+ Fix coupon expiration dates check to be more i18n friendly
-+ Update `LLMS_Coupon` class to utilize 3.3.0 class property enhancements
-+ added `llms_current_time`, a pluggable wrapper for `current_time()` to enable easier unit testing of date-related functions
-+ Shortcodes within course restriction messages are now handled properly to output their intend content rather than the raw shortcode
-+ Ensure the Page Attributes area is available on lessons so WordPress 4.7 custom post type page templates can be utilized
-
-
-v3.3.1 - 2017-01-31
--------------------
-
-+ Tested up to WordPress core 4.7.2
-+ Added new engagement triggers for Quiz completion, quiz failure, and quiz passed.
-+ Refactored Lesson Completion for sanity
-+ Added function `llms_mark_complete()` for simple programmatic completion of courses, sections, lessons, and tracks. See [usage docs](https://github.com/gocodebox/lifterlms/blob/master/includes/functions/llms.functions.person.php#L146-L162) for more information.
-+ Class function `LLMS_Lesson::mark_complete()` has been staged for deprecation. It will still function but developers should update code to use above function.
-+ LifterLMS background updaters will now display a progress report on the admin panel to add some transparency to how the update is doing.
-+ Added `author` support to `llms_membership` post type
-+ Added a way to remove all LifterLMS-generated data during plugin uninstallation.
-+ `llms_get_post()` will now work with any LifterLMS Post Model post types
-+ Removed references to `LLMS_Activate` class which was removed back in 2.0.
-+ Changed include method to session related classes for better handling via phpunit
-+ Refactored some of the `LLMS_Install` class for reliability and test coverage
- + Changed order of table and option creation during installation. Prevents a database warning from being thrown during installation.
- + Added function for retrieving default difficulty categories added during installation
- + Added function for removing default categories added during installation
-+ `llms_are_terms_and_conditions_required()` ensure the page id used in this function is an absint
-+ Removed redundant function `LLMS_Lesson::single_mark_complete_text()`
-+ Add css classes for buttons to be auto-width rather than the width of their containers
-+ Fix ID of engagement email class. Allows some filters and actions to actually be used.
-+ Properly display quiz failures as failures on the quiz results screen
-+ `loop/feature-image.php` now works for unsupported PHP 5.5 and down
-+ Fix issue with modifying section titles from within the course builder
-+ Fix undefined warning resulting from admin notice "flash" being undefined on pre-existing saved notices
-+ Updated template at `templates/course/complete-lesson-link.php` to include a few new CSS classes and utilize `llms_form_field()` to standardize buttons
-
-
-v3.3.0 - 2017-01-23
--------------------
-
-+ New course option allows displaying the video embed in place of the featured image on course tiles displayed on the course catalog screen
-+ Courses can now be exported individually or in bulk. Export of a course includes all course content, sections, lessons, and quizzes.
-+ Courses can now be duplicated. Duplication duplicates all course content, sections, lessons, and quizzes.
-+ Upon completion of the Setup Wizard a sample course can be automatically installed.
-+ Postmeta keys for Lessons and Sections which denote their relationship to their parents have been renamed for consistency, database upgrade 330 included in this release will rename the keys automatically. [Read more here](https://lifterlms.com/docs/lifterlms-database-updates/#330)
-+ Update to `LLMS_Post_Model` to allow easier programmatic definition and handling of extending class properties
-+ classes extending `LLMS_Post_Model` can now be serialized to json and converted to arrays programmatically
-+ new function `llms_get_post()` allows easier instantiation of an `LLMS_Post_Model` instance
-+ Added LifterLMS Database Version to the system report
-
-
-v3.2.7 - 2017-01-16
--------------------
-
-+ Fix float conversion of large numbers with relation to coupon price adjustments
-
-
-v3.2.6 - 2017-01-16
--------------------
-
-+ Tested up to WordPress Core 4.7.1
-+ Fix the display of track-related engagements on the engagement admin screen
-+ Fix float conversion of large numbers with relation to prices
-
-
-v3.2.5 - 2017-01-10
--------------------
-
-+ New shortcode: `[lifterlms_pricing_table]` allows pricing table display outside of a course or membership. See [https://lifterlms.com/docs/shortcodes/#lifterlms_pricing_table](https://lifterlms.com/docs/shortcodes/#lifterlms_pricing_table) for usage information.
-+ New shortcode: `[lifterlms_access_plan_button]` allows custom buttons for individual access plans to be created outside of a pricing table. See [https://lifterlms.com/docs/shortcodes/#lifterlms_access_plan_button](https://lifterlms.com/docs/shortcodes/#lifterlms_access_plan_button) for usage information.
-+ ensure every return from `llms_page_restricted` is filtered. Thanks to @matthalliday
-+ Ensure purchase page can only load for valid access plans
-+ Course / Membership taxonomy archives now obey orders defined by their respective catalog settings
-+ Fix language of automatic validation error message for numeric field types
-+ Fix translation function error causing course syllabus to display incorrect "x of x" text
-+ Added correct text domain to an i18n string displayed on the checkout confirmation screen, thanks @ymashev
-+ Ensure search result pages are viewable by members and non members regardless of result membership restrictions (unless site is restricted to sitewide membership)
-
-
-v3.2.4 - 2017-01-03
--------------------
-
-+ Fixed tooltips on lesson preview tiles (in course syllabus and on next/prev tiles inside lessons) to show the actual reason the lesson is inaccessible rather than always showing a generic enrollment message
-+ Removed the language "You must enroll in this course to unlock this lesson" in favor of "You do not have permission to access to this content" as a restriction message fallback when no better message is available
-+ "Quiz Results" title is now translatable
-+ Removed deprecated JS file "llms-metabox-data.js" which controlled UI/X for 2.x subscription data on courses and memberships
-+ Non LMS Content (pages, posts, forums, etc...) restricted to multiple memberships will now correctly allow users access to the content as long as they have access to at least one of the memberships
-+ Fixed a redirect loop encountered if direct access to a lesson with an incomplete prerequisite was attempted
-
-
-v3.2.3 - 2016-12-29
--------------------
-
-+ Progress and Grade are now sortable columns on the student reporting table
-+ Make enrollment statuses translatable for courses and memberships on the Student Dashboard
-+ "Sign Out" text on student dashboard is now translatable, thanks @yumashev
-+ Fixed prerequisite lesson display on lesson post tables
-+ Ensure post archive (blog) is visible regardless of post membership restrictions
-+ Moved lesson post table management functions to their own class
-+ Unused section post table management functions removed
-
-
-v3.2.2 - 2016-12-21
--------------------
-
-+ Adds filter `llms_student_dashboard_login_redirect` allowing customization of the redirect upon login via the Student Dashboard
-+ Adds a shortcode parameter, `login_redirect` to `[lifterlms_my_account]` allowing customization of the redirect upon login via the Student Dashboard
-+ Adds a new tool under "Tools and Utilities" on the LifterLMS Settings screen which allows users to clear the cached student overall progress and overall grade data
-+ Fixes a compatibility issue with the OptimizePress live editor
-+ Adds a text domain to a translation function where none was present, rendering the string untranslatable
-
-
-v3.2.1 - 2016-12-14
--------------------
-
-+ Fix operator position on `is_complete` check
-
-
-v3.2.0 - 2016-12-13
--------------------
-
-##### LifterLMS Reporting Beta
-
-+ Students overview displays broad information about your students in a searchable and sortable table
-+ Review data about individual students including:
- + Membership enrollments and statuses
- + Course enrollments, status, and progress
- + Quiz attempts and and their submitted answers
- + Earned achievements and certificates
-+ Sales and Enrollments analytics are now found under the "Reporting" screen
-+ Feedback on the beta? Let us know at [https://lifterlms.com/docs/lifterlms-reporting-beta/](https://lifterlms.com/docs/lifterlms-reporting-beta/)
-
-##### Other Updates & Fixes
-
-+ Lesson completion checks now look for at least one record of the completed lesson as opposed to looking for exactly one
-+ Fix positioning of teacher avatar on course/membership tiles
-+ Remove explicit color definition from Student Dashboard navigation links for greater theme compatibility
-
-
-v3.1.7 - 2016-12-06
--------------------
-
-+ Added support for WordPress Twenty Seventeen theme
-+ Improved the messaging and functions related to LifterLMS Sidebar support
-+ Add alternate language for a quiz requiring 100% grade to pass
-+ Added CSS class `.llms-button-primaray` to lesson "Mark as Complete" buttons
-+ Add box-sizing css rule to LifterLMS form field elements. Fixes layout issues on themes that don't border-box everything.
-+ Fix an issue that prevented the admin notice to enable/disable recurring payments from clearing when a button was pressed from screens other than the LLMS Settings screen
-+ Fix next payment date error when viewing a cancelled recurring order on the student dashboard
-+ Recurring payments now scheduled based on UTC time in accordance with the action scheduler which executes based on UTC rather than site timezone
-+ Add existing lesson to course modal now relies on async search. Improves performance and prevents timeouts on sites with a 500+ lessons
-+ Removed 2.x -> 3.x update notification message
-+ Fix an issue with comment counting on PHP7
-+ Updated action scheduler library to latest version
-
-
-v3.1.6 - 2016-11-11
--------------------
-
-+ Handle empty responses on analytics more responsibly
-+ Fix typo preventing completed orders from displaying in analytics when using course / membership filters
-+ Quiz builder now leverages llmsSelect2 rather than select2 directly. Resolves a number of theme and plugin compatibility issues.
-+ Prevent bullets and weird margins on LifterLMS notices with slightly more specific CSS
-+ Login error messages will now display regardless of whether or not open registration is enabled
-+ Attempts to access quizzes are redirected or error messages are output when student is not enrolled.
-
-
-v3.1.5 - 2016-11-10
--------------------
-
-+ Fix Month display on Analytics Screen
-
-
-v3.1.4 - 2016-11-10
--------------------
-
-+ Progress bars are slightly more intelligent to prevent a widowed "%" on themes with larger base font sizes
-+ LifterLMS Merge code button only displays where it's supposed to now
-+ Fix issue where users removed from a membership were not properly removed from courses they were auto-enrolled into because of that membership
-+ Fix analytics screen JS parsing error
-
-
-v3.1.3 - 2016-11-04
--------------------
-
-+ Added new action hooks to the course syllabus widget/shortcode template
-+ Added a small text link on the student dashboard which links to the full courses list of the dashboard
-+ Display order revenue for legacy orders instead of 0
-+ Make the Order History table on the Student Dashboard responsive
-+ Only display _published_ courses on the student dashboard
-+ Fixes a conflict with WP Seo Premium's redirect manager which was creating access plan redirects
-+ Reenable course review options on the admin panel
-+ Updates review output method so reviews are now output via a removeable action
-
-
-v3.1.2 - 2016-10-31
--------------------
-
-+ Update all course and lesson templates to rely only on `global $post` rather than on `$course` and `$lesson` globals which are working inconsistently across environments
-+ Fix typo related to the line-height of LifterLMS order notes on the admin panel. Thanks [@edent](https://github.com/edent)!
-
-
-v3.1.1 - 2016-10-28
--------------------
-
-+ Shortcode `[lifterlms_hide_content]` has some new functionality. See [documentation](https://lifterlms.com/docs/shortcodes/#lifterlms_hide_content) for usage and more information!
-+ Fix logic when determining if terms and condition checkboxes should be displayed on checkout & open registration.
-+ Define a placeholder on the Terms & Conditions page selection so it can be removed
-+ Explicitly declare `LLMS_Lesson` on lesson audio/video embed templates instead of relying the global `$lesson`. Some environments appear to be losing the global.
-+ Removed unused lesson template "full-description"
-
-
-v3.1.0 - 2016-10-27
--------------------
-
-+ New engagement triggers available to allow engagements to be fired when a student enrolls into a course or membership!
-+ Add custom email addresses for to, cc, and bcc when sending email engagements
-+ New Merge Code button for easy merging of custom merge codes when creating emails
-+ Added post table data for LifterLMS Engagements
-+ Added new filter `llms_email_engagement_date_format` which allows customization of the format of the `{current_date}` merge code available in LifterLMS Emails
-+ Added explicit max width declaration to images within LLMS Catalogs to prevent image overflow. Fixes some theme compatibility issues.
-+ Optimize course and lesson audio video templates for faster loads
-+ Fix course & lesson video to load videos instead of duplicating audio embeds
-+ Fix coupon usage query so that coupons cannot be used more than the maximum number of times. Also now displays the correct number of coupons used on the coupons post table.
-+ Fix LLMS Engagement Email merge codes to work in subject line
-
-
-v3.0.4 - 2016-10-20
--------------------
-
-+ Added shortcode `[lifterlms_login]` so the login form can be displayed. Information usage at [https://lifterlms.com/docs/shortcodes/#lifterlms_login](https://lifterlms.com/docs/shortcodes/#lifterlms_login)
-+ Added internal function `LLMS_Student->get_name()`
-+ Three basic course difficulties will be automatically created on installation and upgrades
-+ Updated course difficulty save methods to rely only on the taxonomy rather than the taxonomy and postmeta table
-+ Updated admin settings screens to only flush rewrite rules on screens where it is necessary to update rewrites
-+ Fix issue with customization of LifterLMS account endpoint URLs
-+ Fix a conflict with [Redirection](https://wordpress.org/plugins/redirection/) url monitoring that was causing redirects to be created from Courses and Memberships to the site home page automatically whenever updating the post
-+ Fix an undefined index warning on courses / memberships when updating post data
-+ Remove confusing and invalid warning message from Membership post screen on admin panel
-
-
-v3.0.3 - 2016-10-17
--------------------
-
-+ Added filter `llms_show_preview_excerpt` which can be used to hide the excerpt on course syllabus or next/back preview tiles in lesson navigation
-+ Fix logic so that only free lessons are marked as free lessons post 3.0 upgrade
-+ Fix incorrect display of the "restricted" and "non-restricted" content areas for memberships
-+ Fix undefined index warning output by membership metaboxes
-+ Fix dead like under "Force SSL" checkout setting
-+ Course & Membership tiles output by course or membership shortcodes now automatically match column heights like the default catalogs do.
-+ Correctly register students as the "Student" Role
-+ Database Upgrade script converts users with the role "studnet" to "student"
-
-
-v3.0.2 - 2016-10-14
--------------------
-
-+ Added action `lifterlms_before_student_dashboard_tab`
-+ Added action `lifterlms_after_student_dashboard_greeting`
-+ Added action `lifterlms_after_student_dashboard_tab`
-+ Added action `lifterlms_sd_before_membership`
-+ Added action `lifterlms_sd_after_membership`
-+ Fix membership shortcode
-+ Fix issue that prevented "Student Dashboard" from rendering if the page was set as the child of another page
-+ Fix undefined function error in admin notices
-+ Fix nonce errors resulting from admin notice html being served from the database rather than being dynamically generated
-+ Fix db upgrade script which was enabling course time period for restrictions for all courses regardless of their pre 3.0 restriction settings
-+ Fix db upgrade script that was causing empty sale dates to show start of unix epoch b/c they were empty strings
-+ Fix Javascript parse error preventing section & lesson editing from within the course outline on the admin panel
-+ Fix lesson icons from highlighting lesson settings like drip delay & quiz association
-+ Updated course outline color scheme to match the 3.0 admin color scheme overhaul
-+ `LLMS_Lesson::get_assigned_quiz()` will output deprecation warnings for those using debug mode. LLMS core no longer uses this function and will be deprecated in the next major release.
-+ Handle enrollment status of legacy orders based on enrollment rather than enrollment AND order status
-
-
-v3.0.1 - 2016-10-13
--------------------
-
-+ Properly prefix `llms_is_ajax()` to prevent 500 errors when leaving HTTPS forced checkout screen
-+ Fix student unenrollment from memberships which was leaving a trace of enrollment in the user_meta table
-+ Update student dashboard nav list items to have more specific no styles to prevent "double discs" on various themes
-+ Return course progress bar and "continue" button which was accidentally removed
-+ Added core support for "Divi" theme sidebars
-
-
-v3.0.0 - 2016-10-10
--------------------
-
-**This is a massive update which _breaks_ backwards compatibility for many LifterLMS features. A database migration is also necessary for upgrading users to reformat certain pieces of information which are being accessed differently in 3.0.0**
-
-**We strongly recommend that you backup your website before upgrading and, if possible, test LifterLMS 3.0.0 in a non-public-facing testing environment to ensure compatibility with your theme and other plugins and to ensure that 3.0.0 changes do not adversely affect your existing website.**
-
-**Please thoroughly read the following changelog and, if necessary, submit support tickets or post in the forums with any questions _prior_ to upgrading. LifterLMS Support _cannot_ and _will not_ manually resolve migration issues which may arise from upgrading to 3.0.0.**
-
-+ New shortcodes to be documented later, checkout "includes/class.llms.shortcodes.php" if you're feeling anxious
-+ All kinds of CSS changes to make LifterLMS, in general, be a little less old looking
-+ Added a number of CSS classes to various areas in the Checkout template at "templates/checkout/form-checkout.php"
-+ Added a "Cancel" button that allows you to hide the coupon form if the user decides not to add a coupon
-+ Removed jQuery animations from the coupon form toggle in favor of a CSS class toggle. If you decide you want some animations on the form add some CSS transitions to the `.llms-coupon-entry` element (and children) to change when the class `.active` is added or removed from the element.
-+ Refactored JavaScript related to LifterLMS Checkout. Improvements are minimal (if any) but the file is now smaller and more readable! Yay code stuff.
-+ Fixed some redundant text on single payment confirmation screen. ("Single payment of single payment of")
-+ Added a link to memberships listed under "My Memberships" on the LifterLMS Account Screen
-+ LifterLMS Order posts have been renamed in the database from "order" to "llms_order" to prevent any potential conflicts with other plugins. Automated database migration will handle the renaming of old orders.
-+ Fixed undefined variable notice generated by Sections without any lessons inside of them
-+ renamed function `add_query_var_product_id()` to `llms_add_query_var_product_id()`
-+ added a class for interacting with a course TRACK, instantiated by a track term or term_id (`LLMS_Track`)
-+ password strength meter and related settings / options via utilizing WordPress password strength functions available
-+ cleaned up the lesson locked tooltips to be a bit more sane and also utilized in course navigation on individual lessons.
-+ Updated admin menus for LifterLMS content to be more sane and organized and intuitive and so on and so forth
-
-##### Payment Gateways
-
-**NOTE: at this release, LifterLMS PayPal is the only payment gateway that will work with this release. We haven't started working on Stripe 4.0.0 which will work with LifterLMS 3.0.0**
-
-+ Payment gateways powered by a new abstract gateway class
-+ PayPal has been removed from LifterLMS and is available as premium extension
-
-##### Frontend Notices
-
-+ LifterLMS "Notices" have been rewritten, slightly.
-+ Most templates have been updated
-+ associated CSS has been updated
-+ Some sanity has been added to the related functions
-
-##### Post "Model" Concept / Overhaul
-
-Updated classes for programmatically accessing all sorts of data related to custom post types registered by LifterLMS.
-
-These post types currently include:
-
-+ Access Plans -- a non-public post type associated with courses and memberships which store payment related information
-+ Coupons (replaces includes/class.llms.coupon.php)
-+ Courses (replaces includes/class.llms.course.php)
-+ Lessons (replaces includes/class.llms.lesson.php)
-+ Memberships
-+ Orders (replaces includes/class.llms.order.php
-+ Products -- can be instantiated from courses or memberships (replaces includes/class.llms.product.php)
-+ Transaction -- a non-public post type associated with orders which store completed/attempted transaction data
-
-##### Improved admin metabox methods (and related)
-
-+ Updated custom LifterLMS Admin Metaboxes to have a more sane programmatic interface. This affects nearly all admin metabox classes in the plugin.
-+ A set of methods and classes have been added to improve the programmatic interface around custom post type post tables. These can be found in "includes/admin/post-types/post-tables"
-
-##### Coupons
-
-+ New class `LLMS_Coupon` allows for easy getting & setting of coupon data.
-+ Updated coupon post table to include relevant coupon information for all coupons at a glance
-+ Refactored admin panel coupon metabox generation to utilize new model for saving data
-+ Added translation functions to all strings in coupon settings screen
-+ Added new coupon settings
- + _Expiration Date_ -- coupons cannot be applied to a purchase after the expiration date
- + _Payment Type_ -- coupons can only be applied to either single or recurring payment plans. Existing coupons will be treated as single payment coupons until updated by the Admin.
- + _First Payment Discount_ -- Applies only to recurring payment coupons. Determines the discount applied to the first payment of a recurring payment transaction.
- + _Recurring Payments Discount_ -- Applies only to recurring payment coupons. Determines the discount applied all payments (other than the first) of a recurring payment transaction.
- + _Description_ -- Record internal notes for a coupon visible only by admins on the admin panel
-+ The "Coupon Code" field has been removed in favor of the WordPress Coupon Post Title being utilized as the code. After upgrading, an automated database migration will move all coupon code fields to the title. The title previously functioned as the coupon description. During the migration the existing title will be moved to the new description field.
-
-##### Orders
-
-+ Added Order Statuses
- + Completed - Single payment only. Denotes a successful transaction
- + Active - Recurring only. Denotes the subscription is active with no issues
- + Expired - Recurring only. Denotes the subscription has ended and is no longer active
- + Refunded - Denotes the order has been refunded.
- + Cancelled - Denotes the order has been cancelled manually by an admin.
- + Failed - Denotes payment has failed. For subscriptions a failed payment will switch from "active" to "failed"
- + Pending - Denotes that the order has been created but payment has not been completed yet
-+ Admin panel order table new features:
- + The following columns are now sortable in ascending and descending orders: Order, Product, and Date
- + Added totals based on order type (single or recurring) to the "Total" column
- + Added an order status column for quick status review
-+ Order notes available for internal and system notes. powered by WP comments. lots of inspiration (and code) from WooCommerce, thank you <3
-+ Added a bunch of currency settings (as well as right-side currency and decimal-less currency support!)
-
-##### New Templates
-
-+ __Pricing Table__ at "templates/product/pricing-table.php" utilized by courses and memberships for displaying access plan information. Replaces "templates/membership/purchase-link.php" and "templates/course/purchase-link.php"
-+ __Course Taxonomy Templates__ at "templates/course/categories.php", "templates/course/tags.php", and "templates/course/tracks.php" display comma separated lists for course custom taxonomy terms
-+ __Course Prerequisite Template__ at "templates/course/prerequisites.php" displays prerequisite information (course and tracks) for a given course.
-+ __Meta Wrapper__ templates at "templates/course/meta-wrapper-end.php" and "templates/course/meta-wrapper-start.php" wrap some HTML around various meta data output about a course
-+ Significantly updated checkout process with all kinds of new templates including:
- + templates/checkout/form-gateways.php
- + templates/checkout/form-summary.php
-+ __Unified "Lesson Preview"__ at "templates/course/lesson-preview.php" displays "buttons" in course syllabus (on course page) and in course navigation (on lesson pages)
-+ Various template hook priority changes in order to make adding content between default LifterLMS areas easier
-
-##### Deleted Templates
-
-+ templates/checkout/form-checkout-cc.php
-+ templates/checkout/form-pricing.php
-
-##### New & Updated Admin Interfaces & Templates
-
-+ Significantly improved, changed, or brand new templates for metaboxes for various post types:
- + templates/admin/post-types/order-details.php
- + templates/admin/post-types/order-transactions.php
- + templates/admin/post-types/product-access-plan.php
- + templates/admin/post-types/product.php
-
-##### New Functions
-
-+ `llms_confirm_payment_url()` - Retrieve the URL used for confirming LifterLMS Payments
-+ `llms_cancel_payment_url()` - Retrieve the URL users are directed to when cancelling a payment
-
-##### Install Script
-
-+ Removed some legacy default options that were being created and are no longer required for new installations.
-+ Removed unused `update_courses_archive()` function & related hook
-
-##### Select2
-
-Now utilizing a forked version of Select2 to prevent 3.5.x conflicts we've been plagued with
-
-##### Deprecated
-
-+ Removed filter `lifterlms_get_price_html`, use `lifterlms_get_single_price_html` instead
-+ Removed unused `LLMS_Product->get_price_suffix_html()` function
-+ Removed `LLMS_Product->set_price_html_as_value()` because we didn't like it anymore, don't use anything instead.
-+ Removed `add_query_var_course_id()` function
-+ Removed `displaying_sidebar_in_post_types()` function with the `LLMS_Sidebars::replace_default_sidebars()` function
-+ Filter `lifterlms_order_process_pending_redirect` has been replaced with `lifterlms_order_process_payment_redirect`
-+ Action `lifterlms_order_process_begin` has been deprecated
-+ Removed `lifterlms_order_process_complete` action
-+ Replaced `LLMS_Course::check_enrollment()` with various new utilities. See `llms_is_user_enrolled()` for fastest use.
-+ Officially removed the `LLMS_Language` class
-+ Officially removed the `PluginUpdateChecker` class stubs we created to prevent updating issues with LifterLMS extensions during our transition to 2.0.0. This library has caused nothing but pain for everyone on our team and many of our users. It's gone now, forever.
-+ Removed function `lifterlms_template_single_price()` and replaced with `lifterlms_template_pricing_table()`
-+ Removed templates at "includes/course/price.php" and "includes/membership/price.php" in favor of "includes/product/pricing-table.php"
-+ Removed `LLMS_Person::create_new_person()` in favor of `LLMS_Person_Handler::register()` or `llms_create_new_person()`
-+ Removed `LLMS_Person->set_user_login_timestamp_on_register()` and are simply adding the metadata during registration
-+ Removed `lifterlms_register_post` action hook which fired after new user registration validation, this has been replaced with `lifterlms_user_registration_after_validation`
-+ Removed `lifterlms_new_person_data` and `lifterlms_new_person_address` filters, replaced with `lifterlms_user_registration_data`
-+ Removed `LLMS_Person::login_user()` in favor of `LLMS_Person_Handler::login()`
-+ background updater
-+ system report facelift + inclusion of all new settings via `LLMS_Data` class
-+ Fix setup wizard styles to follow update admin panel styles
-+ add links to last step of setup wizard for documentation and demo
-+ removed a bunch of deprecated coupon-related functions
-+ added a "force ssl" option to ensure checkout is secured
-+ added settings and options around recurring payments and staging sites to prevent duplicate charges when testing on a cloned site
-+ Check course restrictions automatically when checking lesson
-+ Added user_id to all access function checks to allow for checks for non current user
-+ course restriction messages display regardless of enrollment status
-+ check memberships and lock purchase of members only access plans
-+ Fixed titles of course closed and open messages on the course restrictions options
-+ record a start date for access plans based off when order moves to complete or active for the first time
-+ automatically expire limited access plans
-+ gave a quick facelift & unification to a lot of admin panel elements
-+ Color consistency updated according to LLMS brand guide
-+ Unified front and backend button classes
-+ Updated all frontend buttons to have consistent classes
-+ Removed the "FREE" lesson SVG in favor of simple text which allows translating
-+ Install & activation overhauls. Resolves [#179](https://github.com/gocodebox/lifterlms/issues/179)
-+ jQuery MatchHeight lib unignored
-+ A bunch of settings pages updated and a bunch of settings deprecated
-+ Gateways setting page removed
-+ Memberships & Courses page combined into "Catalogs" settings
-+ Added a data getting class used by the tracker class
-+ added a new page creation function with better intelligence that (hopefully) prevents duplicate pages from being created during core page installation
-+ new default country setting
-+ all order status changes recorded as order notes
-+ pending orders can be completed after failed payments
-+ better handling for gateways with fields
-+ JS spinners support multiples via start & stop!
-+ Updated (and semi-finished) analytics
-+ achievement metabox converted
-+ minor updates to voucher class
-+ Added a "post state" visible on the Pages posts table identifying if the page is saved as a LifterLMS page (EG: Checkout Page)
-+ Fixed copy/paste error of duplicate enrollment closed message on course restrictions tab
-+ Removed WC integration in favor of WC
-+ Upgrade "back to course" template to new lesson API
-+ Renamed `course/parent_course.php` to `course/parent-course.php` for template naming consistency
-+ use `strict` when auto generating usernames when creating from email addresses, resolves [#182](https://github.com/gocodebox/lifterlms/issues/182)
-
-##### 3.0.0 Auto Upgrader
-
-+ lots of postmeta data rekeyed
-+ intelligently generated defaults for various pieces of new meta data on courses, lessons, and memberships
-+ automatically generate access plans from existing course and membership data
-+ update existing orders to pull semi-accurate data into analytics based on new database structure
-+ cleans database of a ton of deprecated options and postmeta data
-
-##### Deprecated
-
-+ function `llms_is_user_member()`, use `llms_is_user_enrolled()` instead
-+ function `llms_check_course_date_restrictions()`
-+ function `quiz_restricted()`
-+ function `membership_page_restricted()`
-+ function `is_topic_restricted()`
-+ function `llms_get_post_memberships()`
-+ function `llms_get_parent_post_memberships()`
-+ function `parent_page_restricted_by_membership()`
-+ function `outstanding_prerequisite_exists()`
-+ function `find_prerequisite()`
-+ function `llms_get_course_enrolled_date()`
-+ function `llms_get_lesson_start_date()`
-+ function `lesson_start_date_in_future()`
-+ function `page_restricted_by_membership_alert()`
-+ function `llms_does_user_memberships_contain_course()`
-+ class `LLMS_Checkout`
-+ function `LLMS()->checkout()`
-
-##### Auto Enrollment
-
-+ Course auto enrollment for Memberships has been restored
-+ Works exactly the same as previously except auto-enrollment is not dependent on a course "belonging to" the membership via membership restrictions. This is because membership restrictions no longer apply to courses
-
-##### Analytics
-
-+ Charts! I'm really excited about this. I know we still need more data but please say nice things to me, I worked really hard on these little charts.
-+ Updated styles & interface
-
-##### bbPress
-
-+ Restrict individual forums (and their topics) to LifterLMS Membership levels
-
-##### BuddyPress
-
-+ Fixes broken course display on bp profile
-+ Adds memberships subpage to bp profile
-
-##### notices
-
-+ Admin notices class for managing admin notices, it's pretty neat!
-
-##### Student Management on Courses and Memberships
-
-+ All new and improved student management interface for managing student enrollments from courses and memberships
-
-##### Deprecated
-
-+ filter: `llms_meta_fields_course_main`, replace with `llms_metabox_fields_lifterlms_course_options`
-
-##### Manual Payments
-
-+ Manual Payment Gateway can now be enabled on the frontend!
-+ When a manual payment is recorded the user will be redirected to a view order page where they will be prompted to make a manual payment
-+ Define the payment instructions on the admin panel "Checkout Settings"
-+ Once you verify payment, head to the pending order and hit the "Record a Manual Payment" button to record the transaction
-+ Upon recording the order status will be upgraded to "Complete" and the user will be enrolled automatically
-
-##### Student Dashboard Upgrades
-
-+ More sane template hooks and functions
-+ Pagination on Courses endpoint (view only a preview on the main dashboard)
-+ Orders history & view orders screens!
-
-Deprecated options (and related functions where applicable) for the following course & membership options:
-
- + `lifterlms_button_purchase_membership_custom_text`
- + `lifterlms_course_display_outline_lesson_thumbnails`
- + `lifterlms_course_display_author`
- + `lifterlms_course_display_banner`
- + `lifterlms_course_display_difficulty`
- + `lifterlms_course_display_length`
- + `lifterlms_course_display_categories`
- + `lifterlms_course_display_tags`
- + `lifterlms_course_display_tracks`
- + `lifterlms_lesson_nav_display_excerpt`
- + `lifterlms_course_display_outline`
- + `lifterlms_course_display_outline_titles`
- + `lifterlms_course_display_outline_lesson_thumbnails`
- + `lifterlms_display_lesson_complete_placeholders`
- + `redirect_to_checkout`
-
-In all scenarios either a `add_filter` (returning false) or a `remove_action()` can be used to replicate the option.
-
-
-v3.0.0-beta.4 - 2016-09-01
---------------------------
-
-+ fix issue with course prereq checks
-+ next payment due date visible on order admin view
-+ trial end date visible on order admin view
-
-##### Free Access Plans
-
-+ "Free" access plans now defined as such based on a checkbox rather than by entering 0 into the price
-+ Only single payment access plans can be free (a free recurring payment makes no sense but we can certainly discuss this if you disagree with me)
-+ trials are disabled with free plans (because trials only apply to recurring plans)
-+ sales are disabled for free access plans
-
-##### Checkout Form JS API
-
-+ unified JS checkout handler
-+ allows extensions to enqueue validation or pre-submission JS functions that should run prior to checkout form submission
-
-##### Manual Payment Gateway
-
-+ handles purchase of access plans marked ar FREE & orders that are discounted to 100% via coupons
-
-##### Open Enrollment
-
-+ Open Enrollment allows users to register on the account dashboard without purchasing a course
-+ Voucher settings are available to customize whether vouchers should be optional or required during open registration
-+ Better error reporting around voucher usage during enrollment
-
-##### Deprecated Functions
-
-+ `llms_get_coupon()`
-+ `get_section_id()`
-+ `check_course_capacity()`
-
-##### Quizzes
-
-+ Updated admin metaboxes to use new metabox abstract class
-+ display 0 instead of negative attempts on quiz summary
-+ updated logic in start button template
-
-##### Emails (for engagements)
-
-+ Admin metabox updated to new API
-+ Postmeta data migration:
- + `_email_subject` renamed to `_llms_email_subject`
- + `_email_heading` renamed to `_llms_email_heading`
-
-
-v2.7.12 - 2016-09-22
---------------------
-
-+ Added a new filter on content returned after port permission checks
-+ Added additional information to plugin update message in preparation for major 3.0 release
-+ Updated plugin contributor metadata
-
-
-v2.7.11 - 2016-07-22
---------------------
-
-+ Removed a duplicate action hook on course archive loop.
-+ Switched registration template include to use a more sane function
-+ Added updated banner adds with prettier ones. Wooooooo.
-
-
-v2.7.10 - 2016-07-19
---------------------
-
-+ Fix undefined noticed related to LifterLMS custom post type archive filtering
-+ Fix filter which was supposed to allow custom engagement types to be queried & triggered by engagements automatically but was passing data incorrectly
-
-
-v2.7.9 - 2016-07-11
--------------------
-
-+ We are now properly storing delayed engagement trigger data.
-+ Fixed an issue with our engagement query functions that caused, in very rare circumstances, the extra engagements to be triggered during an engagement trigger due to a lack of specificity in our query
-+ Fixed an undefined property notice related to email engagements when the email had no subject or header
-+ Fixed a typo in the description of a translation function.
-+ Added an engagement debug logging function. You can log all sorts of data related to engagements by adding `define( 'LLMS_ENGAGEMENT_DEBUG', true );` to your `wp-config.php` file.
-+ Allow course title shortcode to be used on course pages (and quizzes too). Documentation incorrectly said it was available on courses so we've fixed the function to allow for use on courses.
-
-
-v2.7.8 - 2016-07-05
--------------------
-
-+ Bugfix: Restore access to quiz results on quiz completion
-
-
-v2.7.7 - 2016-07-01
--------------------
-
-##### Russian
-
-+ LifterLMS is now 100% Translated into Russian thanks to our new Russian Translation Editor [@kellerpt](https://profiles.wordpress.org/kellerpt/)
-
-##### l18n
-
-+ All transition messages between questions during a Quiz are now translatable.
-+ LifterLMS subpages below the LifterLMS icon on the admin panel will now always display regardless of how you've chosen to translate the menu items. Hopefully puts to rest a long-standing i18n issue.
-
-###### Bug fixes
-
-+ Attempting to access a quiz when not enrolled in the associated course and having not properly started the quiz now results in a useful error message rather than a PHP warning.
-+ We've adjusted the way we're adding a admin panel "separator" to reduce conflicts with other plugins that have menu items with the same position as our separator (51).
-+ Added new logic to display an error message (instead of nothing) if there's an error during question loading.
-+ Resolve issue with course progress bar when added to a quiz sidebar (assuming your theme has sidebar support on your quizzes).
-+ Updated version number in the changelog for last version (it was supposed to be 2.7.6)
-
-
-v2.7.6 - 2016-06-28
--------------------
-
-+ Students manually removed by Memberships by using the "Students" tab of a LifterLMS Membership will now be fully removed from the membership.
-+ Updated a few time-related strings to be l18n friendly. These items were all around Quiz time reporting and quiz time limits.
-+ Updated testing information, tested up to WP 4.5.3
-+ Fixed date of last release on changelog. It had the wrong date. Does that really matter?
-+ Updated readme.txt description area, we have a new youtube video! Yassss.
-
-
-v2.7.5 - 2016-06-13
--------------------
-
-##### New features
-+ Added an "id" parameter to both LifterLMS Courses and LifterLMS Memberships shortcodes
-
-##### i18n
-+ Allow date translation on quiz results screen by using `date_i18n()` instead of `date()`
-+ Allow date translation on my courses screen by using `date_i18n()` instead of `date()`
-+ Ensure course status "Enrolled" is translatable on my courses screen
-
-##### Fixes
-+ Thanks to [@kjohnson](https://github.com/kjohnson) who fixed undefined index warnings & errors which occurred when viewing the last lesson in a section when the next section contained no lessons.
-+ Resolved an issue where formatting for "Restricted Access Description" course content would not display proper formatting.
-+ Fixed an issue with the "FREE" stamp for a free lesson caused layout issues.
-+ Removed the "is-complete" css class from incorrectly being added to lesson preview tiles for free lessons
-+ Fix an escaping issue when rendering Course titles inside LifterLMS notices. Prevents "\'s" from displaying when "'s" should be displaying (and similar issues).
-
-
-v2.7.4 - 2016-05-26
--------------------
-
-+ Fixed a bug with the new localization methods from 2.7.3
-+ Removed bundled it_IT translation files in favor of official language pack available at [https://translate.wordpress.org/projects/wp-plugins/lifterlms/language-packs](https://translate.wordpress.org/projects/wp-plugins/lifterlms/language-packs).
-+ Removed bundled en_US translation files because LifterLMS is in English so the files are unnecessary.
-+ Fixed a few mis-labeled filters applied when registering LifterLMS Custom Post Types
-+ Adjusted the default supported features of LifterLMS Quizzes and Questions
- + Quizzes now support custom fields as per user request
- + Commenting, thumbnails, and excerpts are no longer "supported" as they were never intended to be and were never correctly implemented.
- + If you are relying on any of these features for your quizzes or questions please use the following filters to re-implement these features: `lifterlms_register_post_type_quiz` or `lifterlms_register_post_type_question`. These will allow you filter the default arguments LifterLMS passes to the WordPress function `register_post_type()`
-
-
-v2.7.3 - 2016-05-23
--------------------
-
-+ Added a separate filter for login redirects `lifterlms_login_redirect` and added the user_id as a second parameter available to the filter.
-+ Added second parameter to `lifterlms_registration_redirect` to allow access to the registered user's user_id.
-+ Fixed a timestamp conversion issue on Course sale price checks that caused indefinite sales (those with no date restrictions) to appear not on sale during certain periods of time. The period would differ depending on the server's timezone settings and the time of visit.
-+ Added a "Pointer" when hovering quiz summary accordion to allow for a slightly more obvious user experience that the elements are expandable.
-+ Added some new localization methods to ensure strings that only appear in Javascript files will be translator friendly. This initially fixes a few issues on the Quiz Summary page and during quiz taking where strings only appeared in Javascript and were, therefore, completely inaccessible to translators.
-
-
-v2.7.2 - 2016-05-19
--------------------
-
-+ In course syllabus widget & shortcodes free lessons will now be clickable links.
-+ Record `llms_last_login` timestamp in usermeta when a user registers.
-
-
-v2.7.1 - 2016-05-09
--------------------
-
-##### Enrollment & Voucher Checks
-
-+ Enrollment functions will now automatically check to ensure that users are not already enrolled in a course or membership before enrolling. This addresses an issue which would create double enrollment for user redeeming a voucher for a product they were already enrolled in.
-+ Vouchers will now automatically check to see if the user has already redeemed this voucher before allowing the user to redeem it. This would have caused multiple enrollments and would allow one user to eat up an entire voucher by using it over and over again for funsies. A voucher can now *only* be redeemed once by a user as intended.
-+ `llms_is_user_enrolled()` now allows developers to check membership enrollment. Previously this function would only check enrollment of Courses despite what the documentation stated.
-
-##### Translation
-
-+ 3 strings have had translation functions added to them. This makes LifterLMS voucher redemptions translatable!
-
-##### Bugs & Fixes
-
-+ Fix javascript dependency & enqueueing issue on admin panel which prevented LifterLMS settings from saving correctly in various places
-+ Removed inline CSS from "next lesson button" on quiz completion / summary screen. This was overriding some default styles and making the button very thin and gross.
-
-
-v2.7.0 - 2016-05-05
--------------------
-
-##### LifterLMS Custom User Fields Exposed
-
-+ Custom fields added during registration via LifterLMS account settings are now exposed on the admin panel via the student's WordPress user profile
-+ All custom fields that are available (billing and phone) are editable on the WordPress user profile by anyone with profile edit access regardless of LifterLMS settings. If the settings are disabled (eg not required for registration) you can still add this information manually to a user's profile. This is useful if you require the information and then disable it later, you would still be able to access the information on the admin panel but would no longer be required for user's during registration.
-+ A few new filters added to help developers customize the experience here. Check out the documentation at [https://lifterlms.com/docs/lifterlms-filters/#admin-user-custom-fields](https://lifterlms.com/docs/lifterlms-filters/#admin-user-custom-fields)
-
-##### Membership Manual Add & Remove Student Functions
-
-+ Duplicated "Students" tab from the Course admin screen to Memberships
- + Students can be manually added to a membership by an admin
- + Students can be removed manually from a membership by an admin
-
-##### Updates
-
-+ Added the ability for students to edit their phone number via their account settings page if the phone number registration option is enabled on the site.
-
-##### Fixes
-
-+ Fixed a few spelling errors on LifterLMS admin panel order screens
-+ Fixed a typo on meta data for LifterLMS admin created (manual) orders
-
-
-v2.6.3 - 2016-05-02
--------------------
-
-+ Removed redirecting action from WooCommerce integration that was causing issues on multiple product purchase checkouts with larger databases.
-+ Added a new payment action `lifterlms_order_complete` which runs at the same time as some previous actions during payment processing but servers a different purpose. This is mostly in preparation for a forthcoming AffiliateWP integration.
-+ Fixed an issue with LifterLMS certificate background image that caused the wrong dimensions to be returned when outputting a LifterLMS certificate background image
-
-
-v2.6.2 - 2016-04-27
--------------------
-
-+ Fix class conflict in collapsible course outline widget template which caused some UX issues.
-+ Added new filters run during course & lesson sidebar registration to allow customization of LifterLMS sidebars
- + `lifterlms_register_course_sidebar`
- + `lifterlms_register_lesson_sidebar`
-+ Removed a stray logging function.
-+ Cleaned up some undefined variable warnings & notices on the quiz summary template
-+ Fixed an issue appearing when registering users did not submit the optional phone number which caused a PHP notice
-+ LifterLMS Orders generated by WooCommerce will now have a payment method of "WooCommerce". This also addresses an undefined notice produced during WooCommerce order completion because a LifterLMS Payment Method wasn't being defined.
-
-
-v2.6.1 - 2016-04-26
--------------------
-
-+ Fix class conflict in collapsible course outline widget template which caused some UX issues.
-
-
-v2.6.0 - 2016-04-25
--------------------
-
-##### Collapsible Course Outline Widget
-
-+ By request we've added an option to make your course outline widgets collapsible!
-+ View feature [Documentation](https://lifterlms.com/docs/course-syllabus-widget/)
-+ New translations available related to feature. I think it's 4 strings.
-
-##### Bug Fixes
-
-+ Removed an unused CSS selector that caused some issues on the admin panel. This resolves an issue identified with the Page Builder by SiteOrigin plugin. The selector was very generic (`.title`) and may have caused issues with other themes or plugins using that class.
-+ Resolved an issue that prevented post update, save, and publishing messages for core post types (posts, pages) from displaying properly.
-
-
-v2.5.1 - 2016-04-22
--------------------
-
-+ Fixed session handler initialization as it was being initialized prior to user data availability.
-+ Staged `LLMS_Language` class for deprecation in favor of WordPress translation functions `__()`, `_e()`, etc... **If you're a developer you'll start seeing warning's on screen or in your logs if you're using this function, it will be completely removed in the next MAJOR release (3.0.0)**
-+ Added a new function to handle the deprecation warning above (`llms_deprecated_function`) and now that we have this function we'll start deprecating all the things. Just kidding, or am I?
-+ This gives translators access to 69 new strings that were previously untranslatable! However, this number might be inaccurate +/- 5 strings. I only counted it once and I don't feel like the exact number is important enough for a recount to ensure accuracy. /shrug
-
-
-v2.5.0 - 2016-04-15
--------------------
-
-**Admin Panel Order Table Updates**
-
-+ Several visual improvements to the table
-+ Exposed the following fields on the table
- + Order number
- + Customer name (with a link to their WP profile)
- + Customer email (mailto link)
- + Payment gateway used (this is filterable per gateway as well so gateways can improve the functionality here in the future)
-+ Added a link to the product edit page from the product column
-+ Free orders will now display as "Free" as opposed to {currency}0.00
-+ Removed the not-so-useful "Order" column which was a long ugly string of data that was displayed in other columns already
-+ Removed the "Password Protected" flag since *all* orders are always automatically password protected for added security. This flag distracts from the interface so we've removed it. Orders _are_ still password protected though.
-+ Numerous strings that were previously not translatable have been made translatable on this screen
-+ A few new strings that previously didn't exist are now available for translation
-
-**Fixes and other small changes**
-
-+ Fixed a translation issue on the LifterLMS menu that we thought we fixed in the last release but have now really fixed (probably).
-+ Fixed a few small issues with engagements as they related to external engagements triggered by other plugins and LifterLMS extensions.
-+ Tired of seeing a banner for a plugin you've already installed? We have your back! The general settings area will now only display banners for plugins that aren't installed.
-+ Fixed various javascript issues, mostly removed `console.log()` statements.
-+ Fixed a spelling error on the membership admin panel settings screen
-
-
-v2.4.1 - 2016-04-07
--------------------
-
-+ Tested and compatible with WordPress 4.5 Release Candidate.
-+ Fixed a pagination issue related to updates to the quiz builder from 2.4.0 which would cause results to return incorrect results on the last page of paginated results in the "Add Question" dropdown.
-+ Added translation functions to LifterLMS Menu Items. Resolves an issue where translated LifterLMS installations might not see all the menu items under the LifterLMS Icon.
-+ Italian translation updates courtesy of [@AndreaBarghigiani](https://github.com/AndreaBarghigiani)
-+ On some themes the "Next Lesson" button was displayed while quizzes were being taken. We now *always* hide the next lesson button when a quiz is being taken.
-+ Adjusted some static functions to be non static in `class.llms.post-types.php`
-+ Added a function to ensure support for post thumbnails on LifterLMS custom post types
-+ If a user views a course that is available to them because it belongs to a membership level they are a member of, course pricing information will no longer be visible. This addresses a confusing user experience issue. Previously it _appeared_ like payment for a course was still required even though it really wasn't.
-+ Fixed undefined variable warning on quiz summary screen
-+ Resolve an issue with quiz timer that caused issues on time display if the time limit was set to a fraction of a minute (eg 1.5 minutes)
-+ resolved an undefined variable warning resulting from courses still holding a reference to a membership after the membership has been deleted or trashed
-
-
-v2.4.0 - 2016-03-29
--------------------
-
-##### Performance Improvements on the LifterLMS Quiz Builder
-
-+ Completely rewrote Javascript associated with building a LifterLMS Quiz. Our users have been identifying some performance issues and slowness when working with larger databases. We've refactored the Javascript and our related database queries to allow faster quiz building and fewer timeouts when working in the quiz builder.
-+ Fixed a bunch of undefined variables that would produce PHP warnings in various quiz templates
-+ Added validation to quiz questions on the admin panel to prevent the same question from being added to a quiz multiple times.
-+ Fixed an issue that prevented quizzes from correctly marking the lesson as completed when the quiz was passed.
-+ Added three new actions now available for developers to hook into.
- + `lifterlms_quiz_completed` called upon completion of a quiz (regardless of grade)
- + `lifterlms_quiz_passed` called when a quiz is completed with a passing grade
- + `lifterlms_quiz_failed` called when a quiz is completed with a failing grade
-+ Course Progress and Course Syllabus shortcodes (and widgets) now work on Quiz pages
-+ Completed Metabox refactor for the LifterLMS Quiz post type and removed `LLMS_Meta_Box_Quiz_General` class. All functions now exist in `LLMS_Meta_Box_Quiz`
-+ Added validation to the Quiz general settings
- + Cannot only enter numbers in attempts, percentage, and time limit fields
- + Cannot enter a negative number or a number greater than 100 in the percentage field
-+ Removed the membership restriction metabox from quiz admin and question admin screens
-
-##### Other fixes
-
-+ Fixed an issue that caused multiple certificates awarded for the same Course or Lesson to not properly display on the My Account page.
-+ Removed an event bound to the publishing of a LifterLMS Question that called a function that didn't exist and caused a Javascript error on the console (but didn't actually cause any problems)
-+ Removed a warning message that would display on sidebars when a shortcode was being displayed in a place that it couldn't function. We now simply don't display any content if the shortcode can't function.
-+ Resolved an issue that prevent users from "purchasing" products when using a 100% coupon and the Stripe payment gateway. Users experiencing this issue should also update to Stripe 3.0.1.
-+ Fixed an AJAX related issue that was incompatible with PHP7
-+ Added the ability to have a "max" value on LifterLMS Admin Metabox number fields
-
-
-v2.3.0 - 2016-03-24
--------------------
-
-##### Engagements Refactoring (lots of bugfixes, performance improvements, more hook & filter friendly)
-
-+ We've completely rewritten the LifterLMS Engagement Handler methods (`class LLMS_Engagements`) and added some new engagement actions.
-+ The rewrite unifies engagement handling into one function that can be easily hooked into by plugin and theme developers.
-+ We've moved any engagement related data out of the main `LifterLMS` class
-+ Fixed the broken engagement delay functionality which now runs of `wp_schedule_single_event`. This makes the function more reliable and also keeps it within the traditional WordPress architecture.
-+ Added an additional check before sending emails or triggering any engagements that will prevent the achievement from being awarded or the email from being sent if the post is in not published. This fixes an issue that caused emails in the trash from still being emailed.
-+ Removed the unused `LLMS_Engagements` class and file
-+ Added two new engagement trigger events "Membership Purchased" and "Course Purchased"
-+ Deprecated actions -- Removes some redundancy because the triggering actions (`lifterlms_course_completed` triggered the notification action, instead `lifterlms_course_completed` simply triggers the engagement now).
- + `lifterlms_lesson_completed_notification`
- + `lifterlms_section_completed_notification`
- + `lifterlms_course_completed_notification`
- + `lifterlms_course_track_completed_notification`
- + `lifterlms_course_completed_notification`
- + `lifterlms_user_purchased_product_notification`
- + `lifterlms_created_person_notification`
-
-##### Bug and Issue fixes
-
-+ Adjusted the size of the LifterLMS Admin Menu Icon. It was super big because of, perhaps, some overcompensation. It caused an issue on Gravity Forms admin pages for some reason (we didn't ever determine why) but we've resolved it by using an appropriately sized icon.
-+ Fixed a CSS issue that caused some weirdness on the course archive page on mobile devices
-+ Fixed an issue with automated membership expirations
-+ Fixed a function that should have been called statically in `LLMS_Ajax` class
-+ Fixed a ton of issues related to the triggering of engagements and cleaned up a lot of classes and functions associated with them.
-+ Properly instantiate `LifterLMS` singleton via LLMS() function and prevent direct instantiation of the class via `new LifterLMS()`.
-+ Removed the deprecated 'class.llms.email.person.new.php' file as it was rendered useless a long time ago and caused some duplicate emails.
-
-
-v2.2.3 - 2016-03-15
--------------------
-
-##### Translations
-
-+ Added translation functions around quite a few untranslated strings. Thanks to the team at [Netzstrategen](http://netzstrategen.com)
-+ Added German translation .mo and .po files again thanks to the team at [Netzstrategen](http://netzstrategen.com)
-
-##### Student Enrollment Functions
-
-We've refactored a bit of our code related to how to programmatically enroll a student in a course or membership during registration and purchase.
-
-A new class `LLMS_Student` makes working with a LifterLMS student (user) a bit easier. We'll begin exposing user meta data through this class as we continue to improve the usability of the codebase for other developers.
-
-We've also created a simple enrollment function `llms_enroll_student()` which enables programmatic enrollment to LifterLMS courses or memberships. This was previously handled in a pretty schizophrenic manner and this unifies various ways of enrollment into one clean function. All enrollment moving forward will use this functions.
-
-The enrollment function calls a new action as well as calling existing enrollment-related actions:
-
-+ `before_llms_user_enrollment` - called immediately prior to beginning the user enrollment function
-+ `llms_user_enrolled_in_course` (previously existing)
-+ `llms_user_added_to_membership_level` (previously existing)
-
-This also addresses an issue that prevented the `llms_user_enrolled_in_course` action from being called when a user was auto-enrolled in a course because they joined a membership level that included auto-enrollment in one or more courses.
-
-##### Bug and Issue fixes
-
-+ Fixed an inconsistency in the way membership IDs were being saved to the postmeta table that would cause courses to not *appear* restricted on the Membership Enrollment tab, even though they were actually restricted and functioning correctly.
-+ New lines are now preserved in the quiz question clarification text areas, thanks to @atimmer
-+ Escape HTML in the quiz question description fields on the admin panel to allow outputting html without rendering it, thanks @atimmer
-+ Fixed an issue related to the outputting of restricted course and membership content which caused errors on certain themes
-+ added a clearfix to the `.llms-lesson-preview` element on the course syllabus template
-+ Removed the `class.llms.person.handler.php` file as it wasn't actually being used by anything anywhere and contained no functions
-+ Removed some unused and deprecated class functions from the LLMS Student Metabox class
-+ Fixed an undefined javascript error resulting from code cleanup in 2.2.2. This issue prevented Vouchers from being published. The code has been further cleaned.
-
-
-v2.2.2 - 2016-03-15
--------------------
-
-##### One step closer to a public GitHub repository
-
-We've made a massive syntactical update to almost every file in the codebase for a (finally) unified and clearly defined coding standard. This puts us one step closer to beginning to open our GitHub repo publicly and accepting pull requests and contributions from developers everywhere.
-
-Okay, we haven't exactly _clearly_ defined it yet. We're working off a modified version of the [WordPress Coding Standards](https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/).
-
-Notable exceptions are related to file names because Thomas Levy didn't have the energy to rename a bunch of files as well as ignoring the Yoda Conditions standards. We'll be fixing these deviations in the future.
-
-##### Quizzes
-
-+ Created new time calculation and humanizing functions related to the display of quiz time on quiz results pages
-+ Quizzes will now display hours, minutes, and seconds depending on the time it took to take the quiz
-+ Timing calculations are more accurate and quizzes that are completed in less than 60 seconds will not bug out and display incredibly long lengths
-+ Resolved an issue that occasionally prevented quiz data from saving during the last question causing the quiz to hang in an uncompletable state
-+ Quiz questions now have a default point value of 1, thanks @atimmer
-+ Quiz question answers now accept valid HTML as per `wp_kses_post`, thanks again to @atimmer
-
-##### Translations
-
-+ Thanks to @AndreaBarghigiani and the team at [codeat](http://codeat.co/) LifterLMS now ships with Italian language files!
-
-##### Issue and bug resolutions
-
-+ Fixed a restriction issue that would happen when individual lessons were restricted to a membership level
-+ Fixed an issue with the `[lifterlms_my_account]` shortcode that was preventing the shortcode from working on the Divi theme.
-+ Engagements will now only be triggered if they are "Published". Resolves an issue where draft or trashed engagements were still firing.
-+ Fixed CSS overflow on LifterLMS Meta boxes. Fixes an issue where select boxes would be hidden inside a metabox.
-+ Changed the ConvertKit extension banner image on the LifterLMS general settings page and replaced added a link to the extension now that it's available.
-+ Added a link to the new ConvertKit extension to the .org readme
-+ When restricting an entire site to a membership level the page selected as the "Terms and Conditions" page in LifterLMS settings will automatically bypass Membership restriction settings. This will allow your unregistered users to actually read the T&C that they're confirming during registration.
-+ CSS fix for `has-icon` class on course syllabus
-+ Fixed a PHP warning that displayed when purchasing a membership with no auto-enrollment courses
-+ Fixed an undefined variable warning in the WooCommerce integration class
-+ Fixed a few templating issues related to certificates
-+ Added a few new CSS rules that should make certificates more compatible across various themes
-+ Added a css class to LifterLMS Next Lesson buttons, `llms-next-lesson`
-+ Updated the scheduled event name for cleaning up LifterLMS session data from the WP database. It had a conflicting name with the scheduled event for expiring LifterLMS memberships.
-
-
-v2.2.1 - 2016-03-07
--------------------
-
-+ Added a few actions to the `class.llms.voucher.php` class.
-
-
-v2.2.0 - 2016-03-04
--------------------
-
-##### Translations
-
-+ We've updated our .pot file for the first time in quite a while. We're really sorry for de-emphasizing translation. An updated .pot file will now accompany each version of LifterLMS whenever a translatable string is adjusted or when a new string is added.
-+ We've also made it easier to include custom translations. Read our [Translation Guide](https://lifterlms.readme.io/docs/getting-started-with-translation).
-
-##### Certificate Background Images
-
-_We've completely rewritten the certificates template (but it's all backwards compatible)._
-
-+ New filters are available to make customizing the certificate template easier for developers. All new filters are documented at [https://lifterlms.readme.io/docs/functions-certificates](https://lifterlms.readme.io/docs/functions-certificates).
-+ A new WordPress Image Size is now available and will be used for generating the image used by default when uploading certificates to the media library. Fore more information on these new settings visit [https://lifterlms.com/docs/certificate-background-image-sizes/](https://lifterlms.com/docs/certificate-background-image-sizes/).
-
-##### Course and Membership Pricing & Sales
-
-+ Sale price start and end date are now completely optional.
- + Provide neither a start date nor an end date to have a sale run indefinitely
- + Provide a start date with no end date to have a sale start at a pre-determined time with no pre-determined ending
- + Provide an end date with no start date to have a sale end a a pre-determined date but start immediately
- + Provide a start date and an end date to have a sale run for a pre-determined period of time
-+ Optimized the `LLMS_Product` class to provide more reliable and extendable use of the class
-+ The templates related to pricing functions have been refactored. Affected templates include: "templates/course/price.php", "templates/loop/price.php", "templates/membership/price.php"
-+ Many people complained about the size of the `.llms-price` element on course and membership tiles on loop pages. We removed the inflated size and will now default to your theme for sizing. You selector remains the same if you wish to customize the size of the price text.
-
-##### Coupon Updates
-
-+ Coupons can (finally) be removed after being applied!
-+ Coupons can now be restricted to specific courses and/or memberships
-+ Percentage based coupons can no longer be created with a value larger than 100%
-+ Added numeric restrictions to usage and coupon amount fields on the admin panel
-+ Fixed a programmatic error that prevented product restrictions from being entirely removed
-+ Fixed a few instances where hardcoded a US Dollar symbol ($) where a dynamic currency symbol should have been displayed.
-
-##### Wow Bad Syntax, Very Typo, Such Grammar, So Undefined
-
-+ Fixed a typo in filter associated with modifying the registration of the lesson post type (`lifterlms_register_post_type_lesson`)
-+ Fixed a grammatical error in a Membership restriction message
-+ Fixed a syntax error in "/templates/course/outline-list-small.php" that prevented the `done` CSS class from being properly applied to completed lessons
-+ Fixed a few typos and grammatical errors on the Course and Membership settings metaboxes
-+ Fixed an undefined variable in "templates/course/syllabus.php"
-+ Fixed an issue on the system report that prevented the "Courses Page" from being reported properly
-+ Fixed an issue that caused PHP warnings on the admin panel for students or WP users with no LifterLMS menu permissions
-+ Fixed an installation warning caused by a reference to an undefined class variable
-+ Fixed an HTML character encoding issue that caused `–` to display on the admin panel when viewing LifterLMS Orders
-+ Fixed an undefined variable found during engagement triggering for non-email engagements.
-
-##### Additional, less exciting updates
-
-+ Added input type restrictions to course & membership price fields.
-+ The "Emails" LifterLMS Settings Tab has been renamed "Engagements." All Email settings are found under this tab as well as some new settings related to other kinds of LifterLMS engagements.
-+ Added `the_content` filter to the content of emails sent by LifterLMS
-+ Fixed some CSS issues on Voucher screens
-+ Updated Courses settings retrieval function to retrieve the correct "shop" page id
-+ Added translation functions to voucher export meta box class
-+ Vouchers Export metabox will only allow export after a voucher has been published. This prevents an issue caused by attempting to export voucher codes before they were saved in the database via the publish / save action.
-+ Vouchers can no longer be saved with a use of "0"
-+ added a CSS class for various syllabus outputs that notes that the lesson has an icon. Previously CSS relied on "is-complete" to output styles for having an icon but with the addition of placeholders the "is-complete" is used only to note that the lesson is completed and "has-icon" is a more semantic class that applies to both complete and incomplete lessons with an icon.
-+ Removed the membership restriction metabox from some post types where it shouldn't have been displaying.
-+ admin select fields now have an option `allow_null` (default to "true") which can be set to `false` in order to prevent the output of the default "None" option
-
-
-v2.1.1 - 2016-02-15
--------------------
-
-##### System Report
-
-+ A new LifterLMS Admin Page is available which reports information about various server, WordPress, and LifterLMS settings that will help expedite support requests.
-+ More information about the system report is available at [https://lifterlms.com/docs/how-to-use-the-lifterlms-system-report/](https://lifterlms.com/docs/how-to-use-the-lifterlms-system-report/)
-
-##### Additional Updates
-
-+ Fixed a javascript issue which prevented users from saving vouchers
-+ Cleaned up formatting in a large number of included PHP files
-
-
-v2.0.5 - 2016-02-15
--------------------
-
-+ PayPal requests now using HTTP Version 1.1 in preparation for June 2016 [TLS 1.2 and HTTP/1.1 Updates](https://www.paypal-knowledge.com/infocenter/index?page=content&widgetview=true&id=FAQ1914&viewlocale=en_US). This resolves user's inability to begin PayPal checkout when using Sandbox mode.
-+ Updated deprecated function opt out to run off a constant that can be defined in `wp-config.php` instead of using a filter that is hard to use in the way that it is intended.
-
-
-v2.0.4 - 2016-02-15
--------------------
-
-+ Fixed a typo on the `class_exists` check in the deprecated functions file
-+ added a filter so that progressive users can opt out of loading the deprecated functions file
-
-
-v2.0.3 - 2016-02-12
--------------------
-
-+ Removed an unused quiz stub
-
-
-v2.0.2 - 2016-02-11
--------------------
-
-+ Bugfix: removed a progressive syntax array that caused fatal errors on older versions of PHP
-
-
-v2.0.1 - 2016-02-11
--------------------
-
-##### Updated General Settings Screen
-
-+ Improved the general settings interface to be more visually appealing and to provide some ad space to alert customers to other LifterLMS products and information.
-+ Moved Currency options to the Checkout settings screen
-
-##### Bug Fixes
-
-+ Properly initialized jQuery on the vouchers metabox admin scripts
-+ removed some php shortcut echos (`= $var; ?>`)
-+ Resolve issue where courses that are available with a membership or on it's own outside of the membership would prevent users from accessing content if they were not a member.
-+ Fixed a few files where undefined variables were being referenced and generating php notices
-+ removed an call to a WordPress core function that has never existed. Not sure what we were thinking there...
-
-###### Enhancements
-
-+ Updated CSS to provide better course syllabus layout on smaller screens
-+ Added validation to prevent against duplicate voucher code creation
-
-
-v2.0.0 - 2016-02-04
--------------------
-
-##### Auto-advancing lessons
-
-+ We've heard your feedback and added a new global course option which will auto-advance a student to the next lesson upon lesson completion.
-
-##### Bug Fixes
-
-+ Added spaces between numbers and "of" on the counter for course syllabus templates
-+ Removed a template hook that was creating duplicate lesson thumbnails on quite a few themes
-
-##### Membership Admin Improvements
-
-Visit the "Enrollment" tab on any membership to see some new additions to make managing your memberships easier.
-
-+ You can now add courses to and remove courses from a Membership from the Membership itself
-+ You can now opt to automatically enroll students in a course (or multiple courses) when they sign up for a membership by checking "Auto Enroll" next to the course on the Membership enrollment tab
-
-##### Student Enrollment & Removal on Courses Admin Screen
-
-We've updated the Students tab interface for performance and usability!
-
-+ AJAX enabled searching by student name and or email
-+ Increased performance for course page load by only calling student information when needed. This resolves a bug identified by users with large user databases and/or low-powered servers.
-+ Allow for addition or removal of several students at a time.
-
-##### Syllabus Template
-
-+ Added a Course setting to optionally enable Lesson Thumbnails on the Course Syllabus
-+ Added a Course setting Display greyed out lesson completion checkmark icons on lessons not competed in the course syllabus
-+ Reworded CSS on the course syllabus to rely on floats rather than absolute positioning, should allow for more robust customization with less frustration
-+ Refactored the syllabus template at "templates/course/syllabus.php" for better performance and readability
-
-##### Updates and enhancements
-
-+ User email is now displayed on the "Students" table on student analytics screens
-+ Membership now has it's own admin menu
-+ Reordered the LifterLMS admin menu and submenu items
-+ Removed membership specific taxonomies from courses
-+ Removed course specific taxonomies from memberships
-+ Coupon code is now a required field when creating a coupon
-+ "Humbled" the metabox on all post types that restricts the post to a membership. The metabox would previously gain priority over the WordPress publishing actions metabox. The priority has been reduced to "default" and will to fall into line with all other metaboxes on the screen and appear based on registration priority. If you can't find the metabox, SCROLL DOWN! If you want to put it back up on the top, you can simply drag it up there and WordPress will save your preference.
-
-##### Deprecated Classes
-
-We've added a "deprecated" file which holds a few stubs for classes and functions deprecated below as to prevent fatal errors. The functions and classes in the deprecated class are classes which we know are being utilized by approved LifterLMS extensions and will allow users to upgrade LifterLMS without upgrade extensions without breaking their websites!
-
-+ `LLMS_Activate` which as previously used to activate the plugin for updates via the LifterLMS Update Server and is no longer required.
-+ PUC (plugin update checker) Library has been completely removed as it is no longer required for plugin updates.
-+ `LLMS_Analytics_Dashboard` was removed as it was a stub that was never used and shouldn't have ever been released as a part of the LifterLMS codebase. I can't believe no one reported this bug!
-
-##### Deprecated Functions
-
-+ `lifterlms_template_section_syllabus()`
-
-**The following are officially deprecated and removed to prevent WooCommerce compatibility conflicts**
-
-+ `is_shop()` replaced by `is_llms_shop()`
-+ `is_account_page()` replaced by `is_llms_account_page()`
-+ `is_checkout()` replaced by `is_llms_checkot()`
-
-##### Deprecated Templates
-
-+ templates/course/section_syllabus.php
-
-##### New Account Dashboard Filters
-
-*[View documentation for more information](https://lifterlms.readme.io/docs/filters-account)*
-
-+ `lifterlms_account_greeting`
-+ `lifterlms_my_courses_title`
-+ `lifterlms_my_courses_enrollment_status_html`
-+ `lifterlms_my_courses_start_date_html`
-+ `lifterlms_my_courses_course_button_text`
-+ `lifterlms_my_certificates_title`
-
-##### New Checkout Page Filters:
-
-*[View documentation for more information](https://lifterlms.readme.io/docs/filters-checkout)*
-
-+ `lifterlms_checkout_user_logged_in_output`
-+ `lifterlms_checkout_user_not_logged_in_output`
-
-##### New Course Filters:
-
-*[View documentation for more information](https://lifterlms.readme.io/docs/filters-course)*
-
-+ `lifterlms_product_purchase_account_redirect`
-+ `lifterlms_product_purchase_redirect_membership_required`
-+ `lifterlms_product_purchase_checkout_redirect`
-+ `lifterlms_product_purchase_membership_redirect`
-+ `lifterlms_lesson_complete_icon`
-
-
-v1.5.0 - 2016-01-22
--------------------
-
-##### WooCommerce Integration Enhancements
-
-__NOTE: The following enhancements only apply when the WooCommerce Integration is enabled__
-
-**Always redirect to the WooCommerce Cart when a SKU Matched Product can be found**
-
-+ LifterLMS Products (courses and memberships) which are SKU matched to a WooCommerce product will now automatically add the related WooCommerce product to the WooCommerce shopping cart and then automatically redirect the visitor to the WooCommerce cart when the visitor attempts to enroll in a course or membership from the LifterLMS course or membership page.
-+ If no WooCommerce product is found via a SKU match, the user will proceed to the LifterLMS checkout.
-+ This will enable you to determine which Cart you want a user to use on a product by product basis. You may sell certain courses via WooCommerce and others via LifterLMS (should you choose to do so).
-
-**Multiple Item Checkout**
-
-+ When a WooCommerce order is complete user's will now be automatically enrolled in **all** courses and/or memberships in the WooCommerce order. This improves upon a previously limitation that would only allow WooCommerce checkout with one LifterLMS product at a time.
-+ The products in the order will be intelligently SKU matched to LifterLMS Courses or Memberships.
-+ You may also mix and match between WooCommerce products matched to LifterLMS products and those which are not matched to LifterLMS products. For example, your customers may now buy a Course via SKU matching as well as a T-Shirt that is not matched to a LifterLMS course via a SKU.
-
-##### Other Fixes and improvements
-
-+ Fixed a bug that caused quiz results to display for users who had never taken the quiz.
-+ Added Wistia as an oEmbed provider to fix an issue related to default oembed handling in WordPress 4.4.
-+ added a `.cc_cvv` class that mimics the existing `#cc_cvv` styles to allow gateway extensions to change the ID of the field in their credit card forms
-+ Added support for new 1.4.5 capability fixes to be also be reflected under the "+New" menu item in the WP Admin Bar. There are no changes to the filters, the capability filters will simply also remove restricted post types from the admin bar now (as they should).
-+ Tested and compatible up to WordPress 4.4.1
-
-##### Deprecations
-
-**The following functions have been staged for deprecation in LifterLMS 2.0!**
-
-+ Setup the `is_account_page()` function to be replaced by `is_llms_account_page()` function. The original causes conflicts when WooCommerce is installed as WooCommerce includes a core function by the same name. All references to `is_account_page()` in LifterLMS have been removed and the original has been left to prevent issues with developers currently relying on the LifterLMS version of the function.
-+ Setup the `is_checkout()` function to be replaced by `is_llms_checkout()` function. The original causes conflicts when WooCommerce is installed as WooCommerce includes a core function by the same name. All references to `is_checkout()` in LifterLMS have been removed and the original has been left to prevent issues with developers currently relying on the LifterLMS version of the function.
-
-
-v1.4.5 - 2016-01-13
--------------------
-
-+ Significant improvements to LifterLMS admin permissions as well as a hardening of permissions. Previously LifterLMS admin screens and menus were available to any users with `edit_posts` capabilities. This has been changed to `manage_options`. Filters for all screens and menus have been added with this release. If you're site currently relies on users with `edit_posts` to be able to access LifterLMS settings and analytics screens you must utilize these new filters in order to maintain their access. Please see full documentation on the new filters at [https://lifterlms.readme.io/docs/filters-admin-menu-and-screen-permissions](https://lifterlms.readme.io/docs/filters-admin-menu-and-screen-permissions). **Please consider testing your changes outside of production before updating to LifterLMS 1.4.5 in production.**
-+ Allow "Payment Method" to be translated on the "Confirm Payment" screen
-+ Allow the name of the payment gateway to be filtered on the "Confirm Payment" screen
-+ Added pagination support to lifterlms membership archive pages
-+ Fixed a bug related to some required global variables for quizzes and lessons being incorrectly set on certain hosts
-+ updated readme file to remove incomplete documentation
-+ Added Chosen multi-select options to admin panel metaboxes (settings and posts)
-+ Added two new actions that developers can hook into:
- + `llms_user_enrolled_in_course`, called when users are enrolled in a course. Usage details available [here](https://lifterlms.readme.io/docs/actions-user#llms_user_enrolled_in_course).
- + `llms_user_added_to_membership_level`, called when users are added to a membership level. Usage details available [here](https://lifterlms.readme.io/docs/actions-user#llms_user_added_to_membership_level).
-
-
-v1.4.4 - 2015-12-21
--------------------
-
-##### Updates
-
-+ My account page can now (optionally) display a list of memberships a student is currently enrolled in
-+ Student analytics on the admin panel display student's Memberships
-+ Student analytics on the admin panel will now display student's progress through courses in addition to their current enrollment status.
-+ Custom taxonomy archive templates for Course tags, categories, tracks, and difficulties now exist and properly function.
-+ Custom taxonomy archive templates for Membership categories and tags now exist and properly function.
-+ Added the `[lifterlms_memberships]` shortcode which was documented but never implemented. Details on usage available at [https://lifterlms.readme.io/docs/short-codes#memberships-lifterlms_memberships](https://lifterlms.readme.io/docs/short-codes#memberships-lifterlms_memberships)
-+ Added basic styles to LifterLMS pagination HTML elements (elements with class `.llms-pagination`) which formerly had no associated CSS.
-
-##### Deprecations
-
-+ Setup the `is_shop()` function to be replaced by `is_llms_shop()` function. The original causes conflicts when WooCommerce is installed as WooCommerce includes a core function by the same name. All references to `is_shop()` in LifterLMS have been removed and the original has been left to prevent issues with developers currently relying on the LifterLMS version of the function. It *will* be removed in the next major update (2.0) and will be noted as an officially deprecated feature at that time.
-
-##### Bug fixes
-
-+ Fixed pagination issues when using the `[lifterlms_courses]` shortcode
-+ Fixed an issue with the `is_shop()` function that prevented courses per page option from functioning properly on the default course archive page
-+ Student analytics profile on admin panel will display the correct number of memberships the student is enrolled in.
-+ Fixed a small CSS issue that caused extra white space to be displayed above Course or Membership tiles on archive pages when using the WordPress Twentyfifteen default theme
-
-##### Miscellaneous
-
-+ Account settings screen displays the correct title ("Account Settings" it previously said "Archive Settings")
-+ Made language changes to the LifterLMS settings intro screen copy
-+ Added link to CourseClinic on settings intro screen
-+ Added link to LifterLMS documentation on the settings intro screen
-
-
-v1.4.3 - 2015-12-11
--------------------
-
-+ Fixed an issue that could prevent some older servers from being able to run LifterLMS
-
-
-v1.4.2 - 2015-12-10
--------------------
-
-+ Tested and compatible with WordPress version 4.4
-+ BugFixes: fixed issue in `llms_featured_img()` that was preventing the `$size` variable from being passed to the WP core function being utilized.
-+ BugFixes: correctly handling conflicts with Plugin Update library
-
-
-v1.4.1 - 2015-12-02
--------------------
-+ Feature: Custom single price text - Display custom text for the single price on the courses and course page. Custom field does not require a single payment price be set. IE: Free!
-+ Feature: Custom Purchase Course Button Text Option. Change the text of the Take This Course button in Settings->Courses.
-+ Feature: New Become A Member button on courses that are restricted to memberships.
-+ Feature: Custom Become A Member Text Option. Change the text of the become a member button in Settings->Courses.
-+ Feature: Paypal Debug Mode. Enable debug mode in Settings->Gateways to view responses from Paypal API when errors occur.
-+ Updates: Updated support links in Settings->General.
-+ Updates: added minor styling to course page to increase margin and padding for some themes.
-+ Updates: Achievement content now available to pull into custom templates. The Achievement content is not by default displayed but can now be used in custom templates.
-+ BugFixes: Resolved issue with no default price selected at checkout when only recurring option existed.
-+ BugFixes: Lesson prerequisite now alert the user and provide a link to redirect the user to the next required lesson in the course.
-+ BugFixes: Paypal errors now return error message instead of white screen when Paypal API fails.
-+ BugFixes: Corrected JavaScript error with modals on course edit page in Internet Explorer 11.
-
-
-v1.4.0 - 2015-10-29
--------------------
-+ Feature: Free lessons - demo lessons that can be taken at any time by any user
-+ Feature: Guest lessons - demo lessons that can be taken by a non-logged in user
-+ Feature: Random quiz question - quiz questions can now be set to be in user set order or random order
-+ Updates: Automatically registers appropriate sidebars for Genesis theme
-+ Updates: Backend file cleanup
-+ Updates: Text cleanup
-+ Updates: Adds greater localization support (more strings to translate! yay!)
-+ Updates: Cleans up some unnecessary console.log() calls
-+ Updates: Removes mass of commented out code (cleaner reading)
-+ Updates: 'Next Lesson' button added after successful completion of quiz
-+ Updates: 'Next Lesson' button at bottom of lesson properly gets starting lesson of next section at the end of the previous section
-+ Updates: 'Previous Lesson' button at bottom of lesson will now properly get last lesson of previous section (if applicable)
-+ Updates: Move Registration Form to global templates to allow users to disable registration on login page but use registration form on custom page.
-+ BugFixes: WordPress pages are now properly restricted by memberships
-+ BugFixes: Fixes bug that caused order screen to act up if user was deleted
-+ BugFixes: Resolves nasty little bug that caused syllabus numbers to be out of whack
-+ BugFixes: Resolved error with WooCommerce integration where courses would not always register the user
-+ BugFixes: Corrected CSS conflict with Bridge theme settings page
-
-
-v1.3.10 - 2015-10-15
---------------------
-+ Updates: Clarifies some prerequisite text
-+ Updates: Quiz questions are now randomized!
-+ Updates: Fixes small CSS issue
-+ BugFixes: Resolves fatal errors with a small subset of premium themes
-
-
-v1.3.9 - 2015-10-5
-------------------
-+ BugFixes: Removes conflict with Yoast SEO
-+ BugFixes: Fixes CSS issues with box-sizing takeover
-+ Feature: New Settings Tile: Session Management. Found at LifterLMS->Settings->General.
-+ Feature: Clear User Session Tool. You can now clear all LifterLMS user session data from your site in LifterLMS->Settings->General
-+ Updates: Backend code cleanup
-
-
-v1.3.8 - 2015-10-02
--------------------
-+ BugFixes: Fixes Random error notices
-+ Updates: Updates email template handler
-
-
-v1.3.7 - 2015-09-25
--------------------
-+ Updates: Adds Spanish translation
-+ Updates: Adds new filter 'lifterlms_single_payment_text' to customize single payment string on checkout
-+ Updates: Student analytics now indicate which courses a student has completed
-+ BugFixes: Resolved security issue with WordPress searches and lessons
-+ BugFixes: Fixes analytics bug that potentially arises after a course is deleted
-
-
-v1.3.6 - 2015-09-18
--------------------
-+ BugFixes: Fixes pesky Zend Error that plagued some unfortunate victims
-+ BugFixes: Students can now be properly deleted from the course
-+ BugFixes: Fixes random class redeclaration error messages
-+ Updates: Adds new filter 'lifterlms_quiz_passed' to customize 'Passed' text after quiz
-+ Updates: Adds new filter 'lifterlms_quiz_failed' to customize 'Failed' text after quiz
-
-
-v1.3.5 - 2015-09-11
--------------------
-+ Revisions: Fixes typos
-+ Updates: Adds sidebar functionality to various themes
-
-
-v1.3.4 - 2015-09-04
--------------------
-+ BugFixes: Fixes bug with featured image on course page
-+ BugFixes: Fixes issue with lesson completed percentage on analytics page
-
-
-v1.3.3 - 2015-09-01
--------------------
-+ Updates: Removes deprecated plugin updater
-+ Updates: Adds Course Track prerequisite
-+ Updates: Various text fixes
-+ BugFixes: Fixes lesson name on prerequisite notification
-+ BugFixes: Fixes critical error with WordPress customizer
-
-
-v1.3.2 - 2015-08-30
--------------------
-+ Hotfix: resolves issues with sidebar shortcodes
-+ Updates: Text clarifications
-
-
-v1.3.1 - 2015-08-28
--------------------
-+ Hotfix: resolves issue with ajax url
-
-
-v1.3.0 - 2015-08-28
--------------------
-+ Improved popover behavior in course creation.
-+ BugFixing. Prevent multiple lesson and section form submission
-+ Fixed typos at backend quiz page
-+ Fixed check for update bug when plugin isn't properly activated.
-+ BugFixing, quiz post type should show author metabox
-+ Added course category filter to lifter_lms shortcode
-+ BugFixing, typo in [lifterlms_course_progress shortcode]
-+ BugFixing, Analytics shouldn't fetch students meta info from users were deleted.
-+ Adds in basic review functionality
-+ Updates plugin-updater to remedy PHP conflicts
-+ Fixes date bug in Analytics
-+ Cleans up jQuery console messages
-+ Adds in course tracks
-
-
-v1.2.8 - 2015-07-17
--------------------
-+ Updated Portuguese translation file
-+ Fixed issue where quiz score could not be equal to required grade.
-+ New Feature: Quiz Results Summary. Display the quiz results to the user on quiz completion.
-+ New feature: Clarification. Display information about correct and incorrect answers to users
-+ New Feature: Display correct answers to user on quiz completion
-+ Removed ability to add negative time limit to quiz
-+ New Membership feature: Make membership archive links go directly to checkout. Setting allows you to skip membership sales page and send users directly to registration and checkout.
-+ Sidebar support for prototype theme
-+ Sidebar support for X theme
-+ Sidebar support for WooCanvas
-+ New Shortcode: [lifterlms_hide_content]: Use to restrict content on a page, course or lesson to a specific membership. Pass the post id of the membership you want to restrict the content to. Example: [lifterlms_hide_content membership="5"]
-+ New updates to gulp build process
-+ Class autoloading and LLMS namespace introduced for more efficient coding.
-
-
-v1.2.7 - 2015-06-05
--------------------
-+ Minor bug fix with lesson redirect to quiz
-+ Minor change to global Course object instantiation.
-+ Bug Fix: Remove student from course
-+ Bug Fix: Appearance Menus missing select field (THANKS ANDREA!)
-+ New Course Setting: Hide Course Outline on course page
-+ New Shortcode: [lifterlms_course_outline] - displays course outline with settings (see documentation)
-+ Membership metabox design update
-+ Certificate metabox design update
-+ Achievement metabox design update
-+ Lesson metabox design update
-+ Emails metabox design update
-+ Coupons metabox design update
-+ Update to certificate design (better alignment and theme functionality)
-+ Better theme sidebar support
-+ More awesome control for developers building new settings for LifterLMS
-+ Advanced filter system for metabox fields with finite control for 3rd party developers.
-+ Woocommerce conflict correction to archive templates
-+ Style updates to allow themes better control on design
-
-
-v1.2.6 - 2015-04-28
--------------------
-+ Corrected issue with lesson re-order on save
-+ corrected html formatting issue on purchase page
-+ corrected html formatting issue on course page
-
-
-v1.2.5 - 2015-04-23
--------------------
-+ Corrected excerpt to not pull in lesson navigation
-+ Modified metabox api for better extension integration
-+ Corrected issue with order not displaying all information if coupon was not applied to order
-
-
-v1.2.4 - 2015-04-22
--------------------
-+ Moved All Course metaboxes to global Course Options Metabox
-+ Move Enrolled and Non-Enrolled user wysiwyg post editors to Options Metabox
-+ Removed Course Syllabus metabox, Added Course Outline Metabox
-+ Set priority of Course Outline and Course Options Metabox to top
-+ Added ability to Create new section to Course Outline
-+ Added ability to Create new lesson to Course Outline
-+ Added ability to add existing Lesson to Course Outline
-+ Added Lesson duplicate functionality when adding lesson previously assigned to another course.
-+ Added ability to drag lessons between sections in Course Outline
-+ Added ability to edit Section Title in Course Outline
-+ Added ability to edit lesson title and excerpt in Course Outline
-+ Added New Style and Design for better usability to Course Outline
-+ Added Lesson Icon with tooltip to Course Outline: Prerequisite - shows if prerequisite exists and displays name of prerequisite
-+ Added Lesson Icon with tooltip to Course Outline: Quiz - shows if quiz is assigned to course and displays name of quiz
-+ Added Lesson Icon with tooltip to Course Outline: Drip Content - shows if drip days are set and # of days
-+ Added Lesson Icon with tooltip to Course Outline: Content - displays if lesson has content added.
-+ Added Course Outline Metabox to Lesson Post Editor: Allows you to assign lesson to section and view entire course tree. Links to Course and all other lessons in course.
-+ Style Update: backgrounds on frontend. Removed all references to white background on front end elements
-+ Corrected Restriction for course in past. Updated course in past message to display as Course ended instead of Course not available until.
-+ Added restriction message when user attempts to visit a restricted lesson.
-+ Updated course syllabus sidebar widget to not display lessons as links if user is not enrolled in course.
-+ Added ability to use Attribute Order for sorting Courses and Memberships on Archive pages.
-+ Added support for selling memberships with Woocommerce. LifterLMS now checks memberships for SKU matches in addition to Courses when products are purchased using WooCommerce.
-+ Added gulp for scss, js and svg management
-+ Added svg sprite and svg class for managing svg elements on front and backend.
-+ Added better language translation support for strings
-+ Refactored Ajax Classes for cleaner, faster development
-+ Refactored metabox build class for cleaner, faster development
-+ Refactored Course syllabus to reduce query size for larger, complex courses
-+ Added Handler classes for Lessons, Sections, Courses and Posts
-+ Refactored Course get / set methods to reduce database queries
-
-
-v1.2.3 - 2015-03-12
--------------------
-+ Achievement design and functionality updates
-+ Achievement shortcode added
-+ Better searching added to engagement screen
-+ Achievement bug fixes
-+ On screen error reporting added to activation for trouble shooting
-+ Custom engagement methods added to certificate, achievement and sections
-+ Corrected new user registration engagement bug
-+ LifterLMS access reduced from manage_options to edit_posts
-+ Filters added to analytics to allow custom development
-+ Engagement bug fix: Section and Lesson bug select
-+ Syllabus bug corrected: No longer displays lessons in section box if no sections exist.
-+ Removed depreciated achievement template
-+ Membership Bug fix: Membership restriction will now only display on single posts.
-
-
-v1.2.2 - 2015-02-23
--------------------
-+ Corrected drip content bug
-+ Added Ajax functionality to quiz
-+ rounded quiz grades
-+ Added quiz time limit setting to Quiz
-+ Added quiz timer to quiz, front end
-+ Quiz allowed attempts field now allows unlimited attempts
-+ Set Ajax lesson delete method to not return empty lesson value
-+ Set next and previous questions to display below quiz question
-+ Decoupled Single option select question type from quiz to allow for more question types
-+ Added Quiz time limit to display on Quiz page
-+ Added functionality to automatically complete quiz when quiz timer reaches 0
-+ Moved Quiz functionality methods from front end forms class to Quiz class
-
-v1.2.1 - 2015-02-19
--------------------
-+ Updated settings page theming
-+ Added Set up Quick Start Guide
-+ Added Plugin Deactivation Option
-+ Updated language POT file
-+ Added Portuguese language support. Thank you Fernando Cassino for the translation :)
-
-
-v1.2.0 - 2015-02-17
--------------------
-+ Admin Course Analytics Dashboard Page. View at LifterLMS->Analytics->Course
-+ Admin Sales Analytics Dashboard Page. View at LifterLMS->Analytics->Sales
-+ Admin Memberships Analytics Dashboard Page. View at LifterLMS->Analytics->Memberships
-+ Admin Students Search Page. View at LifterLMS->Students
-+ Admin Student Profile Page ( View user information related to courses and memberships )
-+ Lesson and Course Sidebar Widgets ( Syllabus, Course Progress )
-+ Course Syllabus: Lesson blocks greyed out. Clicking lesson displays message to take course.
-+ Misc. Front end bug fixes
-+ Misc. Admin bug fixes
-+ Course and Lesson prerequisites: Can no longer select a prerequisite without marking "Has Prerequisite"
-+ Admin CSS updates
-+ Better Session Management
-+ Number and Date formatting handled by separate classes to provide consistent date formats across system
-+ Zero dollar coupon management: Coupons that set total to 0 will bypass payment gateway, generate order and enroll users.
-+ Better coupon verification.
-+ Better third party payment gateway support. Third party gateway plugins are now easier to develop and integrate.
-+ User Registration: Phone Number Registration field option now available in Accounts settings page.
-
-
-v1.1.2 - 2014-12-18
--------------------
-+ Moved Sidebar registration from plugin install to init
-
-
-v1.1.1 - 2014-12-16
--------------------
-+ Added user registration settings to require users to agree to Terms and Conditions on user registration
-+ Added comments to all classes methods and functions
-+ Removed unused and depreciated methods
-+ Added Lesson and Course Sidebar Widget Areas
-+ Fixed bug with course capacity option
-+ Fixed bug with endpoint rewrite
-+ Added localization POT file and us_EN.po translation file
-
-
-v1.1.0 - 2014-12-08
--------------------
-+ Updated HTML / CSS on Registration form
-+ Added Coupon Creation
-+ Added Coupon support for checkout processing
-+ Added Credit Card Support processing support
-+ Added Form filters for external integration
-+ Added Form templates for external integration
-+ Added Account Setting: Require First and Last Name on registration
-+ Added Account Setting: Require Billing Address on registration
-+ Added Account Setting: Require users to validate email address (double entry)
-+ Added password validation (double entry) on user registration / account creation
-+ Added Quiz Question post type and associated metaboxes
-+ Added Quiz post type and associated metaboxes
-+ Added ability to assign a quiz to a lesson
-+ Added front end quiz functionality
-+ Added Course capacity (limit # of students)
-
-### User Admin Table
-+ Added Membership Custom Column that displays user's membership information
-+ Added "Last Login" custom column that displays user's last login date/time
-
-### User Roles
-+ Updated user role from "person" to "student"
-+ Added temporary migration function to transition any register users with "person" role to "student" role
-+ Added "Student" role install function
-
-
-### BUDDYPRESS
-+ BuddyPress Screen Permission Fix
-+ Added two additional screens to BuddyPress: Certificates and Achievements
-
-### MISC
-+ Added llms options for course archive pagination and added course archive page pagination template
-+ Added user statistics shortcode
-
-
-v1.0.5 - 2014-11-12
--------------------
-
-+ Fixed a mis-placed parenthesis in templates/course/lesson-navigation.php related to outputting excerpt in navigation option
-+ Changed theme override template directory from /llms to /lifterlms
-+ Update the position & name of the "My Courses" Menu in BuddyPress Compatibility file
-+ New meta_key _parent_section added for easier connection and quicker queries.
-+ Section sorting on course syllabus
-+ Edit links added to course syllabus
-+ Assign section to course and view associated lessons metabox added to sections
-+ Assign lesson to section and view associated lessons metabox added to lessons
-+ Assigned Course, Assigned Section, Prerequisite and Membership Required added to lesson edit grid
-+ Assigned Course added to section edit grid'
-+ New membership setting: Restrict Entire Site by Membership Level (allows site restriction to everything but membership purchase and account).
-+ Updated template overriding to check child & parent themes
-+ Updated template overriding to apply filters to directories to check for overrides to allow themes and plugins to add their own directories
-
-
-v1.0.4 - 2014-11-04
--------------------
-
-+ Templating bug fix
-+ Added shortcode and autop support to course and lesson content / excerpt
-
-
-v1.0.3 - 2014-11-04
--------------------
-
-+ Major Templating Update!
-+ Removed Course, Lesson and Membership single lesson templates.
-+ Course and Section content templates now filter through WP content
-
-
-v1.0.2 - 2014-10-31
--------------------
-
-+ Added lesson short description to previous lesson preview links -- it was rendering on "Next" but not "Previous"
-+ Added a class to course shop links wrapper to signify the course has been completed
-+ Removed an unnecessary CSS rule related to the progress bar
-
-
-v1.0.2 - 2014-10-30
--------------------
-
-+ Fixed SSL certificate issues when retrieving data from https://lifterlms.com
-+ Added rocket settings icon back into repo
-
-
-v1.0.1 - 2014-10-30
--------------------
-
-+ Updated activation endpoint url to point towards live server rather than dev
-
-
-v1.0.0 - 2014-10-30
--------------------
-
-+ Initial public release.
diff --git a/README.md b/README.md
deleted file mode 100644
index ce1b02ae04..0000000000
--- a/README.md
+++ /dev/null
@@ -1,178 +0,0 @@
-
-
-
-
-LifterLMS is a powerful WordPress learning management system plugin that makes it easy to create, sell, and protect engaging online courses and training based membership websites.
-
-
-
-
-
-[![WordPress Plugin Version][img-wp-plugin]][link-wp-repo]
-[![WordPress Plugin Tested WP Version][img-wp-tested]][link-wp-repo]
-[![PHP Supported Version][img-php]][link-php]
-
-[![WordPress Plugin Rating][img-wp-rating]][link-wp-reviews]
-[![WordPress Plugin Downloads][img-wp-downloads]][link-wp-advanced]
-[![WordPress Plugin Active Installs][img-wp-installs]][link-wp-advanced]
-
-[![PHPUnit Tests][img-phpunit-tests]][link-phpunit-tests]
-[![PHPCS Coding Standards][img-phpcs-checks]][link-phpcs-checks]
-[![Code Climate maintainability][img-cc-maintainability]][link-cc]
-[![Code Climate test coverage][img-cc-coverage]][link-cc-coverage]
-
-[![Contributions Welcome][img-contributions-welcome]](.github/CONTRIBUTING.md)
-[![Contributors][img-contributors]](#contributors)
-[![Slack community][img-slack]][link-slack]
-
-
-
-
-
-Welcome to the LifterLMS GitHub repository. This repository serves as the core project's central location for issue tracking and feature development.
-
-If you're not a developer or contributor, please use [LifterLMS plugin page][link-wp-repo] at WordPress.org.
-
-
-### Getting Help and Support
-
-GitHub is for bug reports and contributions only! If you have a support question or a request for a customization this is not the right place to post it. Please refer to [LifterLMS Support][link-support] or the [community forums][link-support-forums]. If you're looking for help customizing LifterLMS, please consider hiring a [LifterLMS Expert][link-experts].
-
-
-### Resources and Documentation
-
-+ [Changelog](./CHANGELOG.md)
-+ User documentation and knowledge base: https://lifterlms.com/docs/
-+ Contributor's blog: https://make.lifterlms.com/docs/
-+ Developer portal: https://developer.lifterlms.com/docs/
-
-
-### Included Core Packages
-
-The LifterLMS core includes several additional packages which are included in releases through composer. These core projects are installable as standalone plugins for development and testing purposes. The stable versions are automatically included in LifterLMS core releases.
-
-These packages have their own GitHub repositories:
-
-+ [LifterLMS Blocks](https://github.com/gocodebox/lifterlms-blocks)
-+ [LifterLMS REST API](https://github.com/gocodebox/lifterlms-rest)
-
-
-### Reporting a Bug
-
-Bugs can be reported at https://github.com/gocodebox/lifterlms/issues/new.
-
-Before reporting a bug, [search existing issues](https://github.com/gocodebox/lifterlms/issues) and ensure you're not creating a duplicate. If the issue already exists you can add your information to the existing report.
-
-Also check our [known issues and conflicts](https://lifterlms.com/doc-category/lifterlms/known-conflicts/) for possible resolutions.
-
-
-### Reporting a Security Vulnerability
-
-Security issues and vulnerabilities should be responsibly disclosed directly to the LifterLMS core developers via email. Please see our [Security Policy](.github/SECURITY.md) for details on disclosing a security vulnerability.
-
-
-### Installing
-
-If you clone or download this repo directly it will not run as a plugin inside WordPress!
-
-Installable production releases are available in on the [Releases tab](https://github.com/gocodebox/lifterlms/releases). You can get the latest stable release from [WordPress.org](https://downloads.wordpress.org/plugin/lifterlms.zip)
-
-If you're interested in installing development versions, see [Installing for Development](docs/installing.md)
-
-
-### Contributing
-
-[![Contributions Welcome][img-contributions-welcome]](.github/CONTRIBUTING.md)
-
-Interested in contributing to LifterLMS? We'd love to have your contributions. Read our contributor's guidelines [here](.github/CONTRIBUTING.md).
-
-
-### Contributors
-
-[![Contributors][img-contributors]](#contributors)
-
-Endless thanks to all our incredible contributors!
-
-[//]: contributor-faces
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-[//]: contributor-faces
-
-
-### Partners and Sponsors
-
-[ ](https://www.browserstack.com/)
-
-[BrowserStack](https://www.browserstack.com/) helps us ensure LifterLMS looks great and works on every imaginable browser and device.
-
-
-[link-cc]: https://codeclimate.com/github/gocodebox/lifterlms "LifterLMS on Code Climate"
-[link-cc-coverage]: https://codeclimate.com/github/gocodebox/lifterlms/coverage "Code coverage reports on Code Climate"
-[link-experts]: https://lifterlms.com/docs/do-you-have-any-recommended-developers-who-can-modifycustomize-lifterlms/ "Hire a LifterLMS Expert"
-[link-php]: https://www.php.net/supported-versions "PHP Support Versions"
-[link-phpunit-tests]: https://github.com/gocodebox/lifterlms/actions/workflows/test-phpunit.yml "PHPUnit Tests Status"
-[link-phpcs-checks]: https://github.com/gocodebox/lifterlms/actions/workflows/coding-standards.yml "PHPCS Coding Standards Checks"
-[link-slack]: https://lifterlms.com/slack "Chat with the community on Slack"
-[link-support]: https://lifterlms.com/my-account/my-tickets "LifterLMS customer support"
-[link-support-forums]: https://wordpress.org/support/plugin/lifterlms "LifterLMS user support forums"
-[link-wp-advanced]:https://wordpress.org/plugins/lifterlms/advanced/ "Advanced plugin details on the WordPress plugin repository"
-[link-wp-repo]:https://wordpress.org/plugins/lifterlms/ "LifterLMS on the WordPress plugin repository"
-[link-wp-reviews]:https://wordpress.org/support/plugin/lifterlms/reviews/ "Leave a review on the WordPress plugin repository"
-
-[img-cc-coverage]:https://img.shields.io/codeclimate/coverage/gocodebox/lifterlms?style=for-the-badge&logo=code-climate
-[img-cc-maintainability]:https://img.shields.io/codeclimate/maintainability/gocodebox/lifterlms?logo=code-climate&style=for-the-badge
-[img-contributors]: https://img.shields.io/github/contributors/gocodebox/lifterlms?color=blue&style=for-the-badge&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJzdmcyIiB3aWR0aD0iNjQ1IiBoZWlnaHQ9IjU4NSIgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPiA8ZyBpZD0ibGF5ZXIxIj4gIDxwYXRoIGlkPSJwYXRoMjQxNyIgZD0ibTI5Ny4zIDU1MC44N2MtMTMuNzc1LTE1LjQzNi00OC4xNzEtNDUuNTMtNzYuNDM1LTY2Ljg3NC04My43NDQtNjMuMjQyLTk1LjE0Mi03Mi4zOTQtMTI5LjE0LTEwMy43LTYyLjY4NS01Ny43Mi04OS4zMDYtMTE1LjcxLTg5LjIxNC0xOTQuMzQgMC4wNDQ1MTItMzguMzg0IDIuNjYwOC01My4xNzIgMTMuNDEtNzUuNzk3IDE4LjIzNy0zOC4zODYgNDUuMS02Ni45MDkgNzkuNDQ1LTg0LjM1NSAyNC4zMjUtMTIuMzU2IDM2LjMyMy0xNy44NDUgNzYuOTQ0LTE4LjA3IDQyLjQ5My0wLjIzNDgzIDUxLjQzOSA0LjcxOTcgNzYuNDM1IDE4LjQ1MiAzMC40MjUgMTYuNzE0IDYxLjc0IDUyLjQzNiA2OC4yMTMgNzcuODExbDMuOTk4MSAxNS42NzIgOS44NTk2LTIxLjU4NWM1NS43MTYtMTIxLjk3IDIzMy42LTEyMC4xNSAyOTUuNSAzLjAzMTYgMTkuNjM4IDM5LjA3NiAyMS43OTQgMTIyLjUxIDQuMzgwMSAxNjkuNTEtMjIuNzE1IDYxLjMwOS02NS4zOCAxMDguMDUtMTY0LjAxIDE3OS42OC02NC42ODEgNDYuOTc0LTEzNy44OCAxMTguMDUtMTQyLjk4IDEyOC4wMy01LjkxNTUgMTEuNTg4LTAuMjgyMTYgMS44MTU5LTI2LjQwOC0yNy40NjF6IiBmaWxsPSIjZGQ1MDRmIi8%2BIDwvZz48L3N2Zz4%3D
-[img-contributions-welcome]: https://img.shields.io/badge/contributions-welcome-blue.svg?style=for-the-badge&logo=data:image/svg%2bxml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik02NzIgMTQ3MnEwLTQwLTI4LTY4dC02OC0yOC02OCAyOC0yOCA2OCAyOCA2OCA2OCAyOCA2OC0yOCAyOC02OHptMC0xMTUycTAtNDAtMjgtNjh0LTY4LTI4LTY4IDI4LTI4IDY4IDI4IDY4IDY4IDI4IDY4LTI4IDI4LTY4em02NDAgMTI4cTAtNDAtMjgtNjh0LTY4LTI4LTY4IDI4LTI4IDY4IDI4IDY4IDY4IDI4IDY4LTI4IDI4LTY4em05NiAwcTAgNTItMjYgOTYuNXQtNzAgNjkuNXEtMiAyODctMjI2IDQxNC02NyAzOC0yMDMgODEtMTI4IDQwLTE2OS41IDcxdC00MS41IDEwMHYyNnE0NCAyNSA3MCA2OS41dDI2IDk2LjVxMCA4MC01NiAxMzZ0LTEzNiA1Ni0xMzYtNTYtNTYtMTM2cTAtNTIgMjYtOTYuNXQ3MC02OS41di04MjBxLTQ0LTI1LTcwLTY5LjV0LTI2LTk2LjVxMC04MCA1Ni0xMzZ0MTM2LTU2IDEzNiA1NiA1NiAxMzZxMCA1Mi0yNiA5Ni41dC03MCA2OS41djQ5N3E1NC0yNiAxNTQtNTcgNTUtMTcgODcuNS0yOS41dDcwLjUtMzEgNTktMzkuNSA0MC41LTUxIDI4LTY5LjUgOC41LTkxLjVxLTQ0LTI1LTcwLTY5LjV0LTI2LTk2LjVxMC04MCA1Ni0xMzZ0MTM2LTU2IDEzNiA1NiA1NiAxMzZ6IiBmaWxsPSIjZmZmIi8+PC9zdmc+
-[img-php]: https://img.shields.io/badge/PHP-7.2%2B-brightgreen?style=for-the-badge&logoColor=white&logo=php
-[img-phpunit-tests]: https://img.shields.io/github/workflow/status/gocodebox/lifterlms/Test%20PHPUnit?label=PHPUnit&logo=github&style=for-the-badge
-[img-phpcs-checks]: https://img.shields.io/github/workflow/status/gocodebox/lifterlms/Coding%20Standards?label=PHPCS&logo=github&style=for-the-badge
-[img-slack]: https://img.shields.io/badge/chat-on%20slack-blueviolet?style=for-the-badge&logo=slack
-[img-wp-downloads]: https://img.shields.io/wordpress/plugin/dt/lifterlms.svg?style=for-the-badge&logo=wordpress
-[img-wp-installs]: https://img.shields.io/wordpress/plugin/installs/lifterlms.svg?style=for-the-badge&logo=wordpress
-[img-wp-plugin]:https://img.shields.io/wordpress/plugin/v/lifterlms.svg?style=for-the-badge&logo=wordpress
-[img-wp-rating]:https://img.shields.io/wordpress/plugin/r/lifterlms.svg?style=for-the-badge&logo=wordpress
-[img-wp-tested]:https://img.shields.io/wordpress/v/lifterlms.svg?style=for-the-badge&logo=wordpress
diff --git a/_private/svg/llms-icon-calendar.svg b/_private/svg/llms-icon-calendar.svg
deleted file mode 100644
index 4e02ca4d61..0000000000
--- a/_private/svg/llms-icon-calendar.svg
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-checkmark.svg b/_private/svg/llms-icon-checkmark.svg
deleted file mode 100644
index c8bdd2eb0c..0000000000
--- a/_private/svg/llms-icon-checkmark.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-circle-empty.svg b/_private/svg/llms-icon-circle-empty.svg
deleted file mode 100644
index cff0485a3a..0000000000
--- a/_private/svg/llms-icon-circle-empty.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-circle.svg b/_private/svg/llms-icon-circle.svg
deleted file mode 100644
index 37eafb0f77..0000000000
--- a/_private/svg/llms-icon-circle.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-close.svg b/_private/svg/llms-icon-close.svg
deleted file mode 100644
index 08ede2e8ea..0000000000
--- a/_private/svg/llms-icon-close.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-course-section.svg b/_private/svg/llms-icon-course-section.svg
deleted file mode 100644
index c4fa2f9590..0000000000
--- a/_private/svg/llms-icon-course-section.svg
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/_private/svg/llms-icon-existing-lesson.svg b/_private/svg/llms-icon-existing-lesson.svg
deleted file mode 100644
index c81a2e1444..0000000000
--- a/_private/svg/llms-icon-existing-lesson.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-facebook.svg b/_private/svg/llms-icon-facebook.svg
deleted file mode 100644
index 052d7607ae..0000000000
--- a/_private/svg/llms-icon-facebook.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-folder.svg b/_private/svg/llms-icon-folder.svg
deleted file mode 100644
index 78a73d7c3a..0000000000
--- a/_private/svg/llms-icon-folder.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-free.svg b/_private/svg/llms-icon-free.svg
deleted file mode 100644
index 97f8e04613..0000000000
--- a/_private/svg/llms-icon-free.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-gear.svg b/_private/svg/llms-icon-gear.svg
deleted file mode 100644
index f5e213cc24..0000000000
--- a/_private/svg/llms-icon-gear.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-google.svg b/_private/svg/llms-icon-google.svg
deleted file mode 100644
index e5ae714900..0000000000
--- a/_private/svg/llms-icon-google.svg
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-graph.svg b/_private/svg/llms-icon-graph.svg
deleted file mode 100644
index d44b4b3562..0000000000
--- a/_private/svg/llms-icon-graph.svg
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-instagram.svg b/_private/svg/llms-icon-instagram.svg
deleted file mode 100644
index 2ded6d4aca..0000000000
--- a/_private/svg/llms-icon-instagram.svg
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-lightbulb.svg b/_private/svg/llms-icon-lightbulb.svg
deleted file mode 100644
index ac4d827f84..0000000000
--- a/_private/svg/llms-icon-lightbulb.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-linkedin.svg b/_private/svg/llms-icon-linkedin.svg
deleted file mode 100644
index eb2b4d370a..0000000000
--- a/_private/svg/llms-icon-linkedin.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-lock.svg b/_private/svg/llms-icon-lock.svg
deleted file mode 100644
index 0e6e321254..0000000000
--- a/_private/svg/llms-icon-lock.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-media.svg b/_private/svg/llms-icon-media.svg
deleted file mode 100644
index 8642eaecbb..0000000000
--- a/_private/svg/llms-icon-media.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-member.svg b/_private/svg/llms-icon-member.svg
deleted file mode 100644
index 29296c5204..0000000000
--- a/_private/svg/llms-icon-member.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-new-lesson.svg b/_private/svg/llms-icon-new-lesson.svg
deleted file mode 100644
index 5c77d519fd..0000000000
--- a/_private/svg/llms-icon-new-lesson.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-paper.svg b/_private/svg/llms-icon-paper.svg
deleted file mode 100644
index 33d0ee01d8..0000000000
--- a/_private/svg/llms-icon-paper.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-papers.svg b/_private/svg/llms-icon-papers.svg
deleted file mode 100644
index 971fbb8a3f..0000000000
--- a/_private/svg/llms-icon-papers.svg
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-play.svg b/_private/svg/llms-icon-play.svg
deleted file mode 100644
index 84f24e06af..0000000000
--- a/_private/svg/llms-icon-play.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-plus.svg b/_private/svg/llms-icon-plus.svg
deleted file mode 100644
index 68e72da1aa..0000000000
--- a/_private/svg/llms-icon-plus.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-question.svg b/_private/svg/llms-icon-question.svg
deleted file mode 100644
index 96a968e830..0000000000
--- a/_private/svg/llms-icon-question.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-rightarrow.svg b/_private/svg/llms-icon-rightarrow.svg
deleted file mode 100644
index b41f94050f..0000000000
--- a/_private/svg/llms-icon-rightarrow.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-search.svg b/_private/svg/llms-icon-search.svg
deleted file mode 100644
index b6c659b26a..0000000000
--- a/_private/svg/llms-icon-search.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-target.svg b/_private/svg/llms-icon-target.svg
deleted file mode 100644
index 0df9f3ea7c..0000000000
--- a/_private/svg/llms-icon-target.svg
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-twitter.svg b/_private/svg/llms-icon-twitter.svg
deleted file mode 100644
index c1d3cebb54..0000000000
--- a/_private/svg/llms-icon-twitter.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-users.svg b/_private/svg/llms-icon-users.svg
deleted file mode 100644
index e7abbd1aa6..0000000000
--- a/_private/svg/llms-icon-users.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-view.svg b/_private/svg/llms-icon-view.svg
deleted file mode 100644
index 730ef22729..0000000000
--- a/_private/svg/llms-icon-view.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-youtube.svg b/_private/svg/llms-icon-youtube.svg
deleted file mode 100644
index 543bc31e90..0000000000
--- a/_private/svg/llms-icon-youtube.svg
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/assets/css/lifterlms-rtl.css b/assets/css/lifterlms-rtl.css
index aa58e1ff32..4cd5d07466 100644
--- a/assets/css/lifterlms-rtl.css
+++ b/assets/css/lifterlms-rtl.css
@@ -734,11 +734,6 @@
text-align: center;
}
-/* Genesis Overrides */
-h1, h2, h3, h4, h5, h6 {
- font-weight: 300;
-}
-
#main-content .llms-payment-options p {
margin: 0;
font-size: 16px;
diff --git a/assets/css/lifterlms-rtl.min.css b/assets/css/lifterlms-rtl.min.css
index b784e6c581..13feb9e4fa 100644
--- a/assets/css/lifterlms-rtl.min.css
+++ b/assets/css/lifterlms-rtl.min.css
@@ -1,4 +1,4 @@
-.llms-pagination ul:before,.llms-pagination ul:after,.llms-student-dashboard .llms-sd-items:before,.llms-form-fields:before,.llms-checkout-cols-2:before,.llms-access-plans:before,.llms-course-navigation:before,.llms-loop-list:before,.llms-cols:before,.llms-student-dashboard .llms-sd-items:after,.llms-form-fields:after,.llms-checkout-cols-2:after,.llms-access-plans:after,.llms-course-navigation:after,.llms-loop-list:after,.llms-cols:after{content:" ";display:table}.llms-pagination ul:after,.llms-student-dashboard .llms-sd-items:after,.llms-form-fields:after,.llms-checkout-cols-2:after,.llms-access-plans:after,.llms-course-navigation:after,.llms-loop-list:after,.llms-cols:after{clear:both}.llms-cols .llms-col{width:100%}@media all and (min-width: 600px){.llms-cols [class*=llms-col-]{float:right}}.llms-flex-cols{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.llms-flex-cols [class*=llms-col]{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;width:100%}@media all and (min-width: 600px){.llms-cols .llms-col-1,.llms-flex-cols .llms-col-1{width:100%}.llms-cols .llms-col-2,.llms-flex-cols .llms-col-2{width:50%}.llms-cols .llms-col-3,.llms-flex-cols .llms-col-3{width:33.3333333333%}.llms-cols .llms-col-4,.llms-flex-cols .llms-col-4{width:25%}.llms-cols .llms-col-5,.llms-flex-cols .llms-col-5{width:20%}.llms-cols .llms-col-6,.llms-flex-cols .llms-col-6{width:16.6666666667%}.llms-cols .llms-col-7,.llms-flex-cols .llms-col-7{width:14.2857142857%}.llms-cols .llms-col-8,.llms-flex-cols .llms-col-8{width:12.5%}.llms-cols .llms-col-9,.llms-flex-cols .llms-col-9{width:11.1111111111%}.llms-cols .llms-col-10,.llms-flex-cols .llms-col-10{width:10%}.llms-cols .llms-col-11,.llms-flex-cols .llms-col-11{width:9.0909090909%}.llms-cols .llms-col-12,.llms-flex-cols .llms-col-12{width:8.3333333333%}}.llms-button-action,.llms-button-danger,.llms-button-primary,.llms-button-secondary{border:none;border-radius:0;color:#fefefe;cursor:pointer;font-size:16px;font-weight:300;text-decoration:none;text-shadow:none;line-height:1;margin:0;max-width:100%;padding:12px 24px;position:relative;-webkit-transition:all .5s ease;transition:all .5s ease}.llms-button-action:disabled,.llms-button-danger:disabled,.llms-button-primary:disabled,.llms-button-secondary:disabled{opacity:.5}.llms-button-action:hover,.llms-button-action:active,.llms-button-danger:hover,.llms-button-danger:active,.llms-button-primary:hover,.llms-button-primary:active,.llms-button-secondary:hover,.llms-button-secondary:active{color:#fefefe}.llms-button-action:focus,.llms-button-danger:focus,.llms-button-primary:focus,.llms-button-secondary:focus{color:#fefefe}.llms-button-action.auto,.llms-button-danger.auto,.llms-button-primary.auto,.llms-button-secondary.auto{width:auto}.llms-button-action.full,.llms-button-danger.full,.llms-button-primary.full,.llms-button-secondary.full{display:block;text-align:center;width:100%}.llms-button-action.square,.llms-button-danger.square,.llms-button-primary.square,.llms-button-secondary.square{padding:12px}.llms-button-action.small,.llms-button-danger.small,.llms-button-primary.small,.llms-button-secondary.small{font-size:13px;padding:8px 14px}.llms-button-action.small.square,.llms-button-danger.small.square,.llms-button-primary.small.square,.llms-button-secondary.small.square{padding:8px}.llms-button-action.large,.llms-button-danger.large,.llms-button-primary.large,.llms-button-secondary.large{font-size:18px;line-height:1.2;padding:16px 32px}.llms-button-action.large.square,.llms-button-danger.large.square,.llms-button-primary.large.square,.llms-button-secondary.large.square{padding:16px}.llms-button-action.large .fa,.llms-button-danger.large .fa,.llms-button-primary.large .fa,.llms-button-secondary.large .fa{right:-7px;position:relative}.llms-button-primary{background:#2295ff}.llms-button-primary:hover,.llms-button-primary.clicked{background:#0077e4}.llms-button-primary:focus,.llms-button-primary:active{background:#4ba9ff}.llms-button-secondary{background:#e1e1e1;color:#414141}.llms-button-secondary:hover{color:#414141;background:#cdcdcd}.llms-button-secondary:focus,.llms-button-secondary:active{color:#414141;background:#ebebeb}.llms-button-action{background:#f8954f}.llms-button-action:hover,.llms-button-action.clicked{background:#f67d28}.llms-button-action:focus,.llms-button-action:active{background:#faad76}.llms-button-danger{background:#e5554e}.llms-button-danger:hover{background:#e0332a}.llms-button-danger:focus,.llms-button-danger:active{background:#e86660}.llms-donut{background-color:#f1f1f1;background-image:none;border-radius:50%;color:#ef476f;height:200px;overflow:hidden;position:relative;width:200px}.llms-donut:before,.llms-donut:after{content:" ";display:table}.llms-donut:after{clear:both}.llms-donut svg{overflow:visible !important;pointer-events:none;width:100%}.llms-donut svg path{fill:none;stroke-width:35px;stroke:#ef476f}.llms-donut.mini{height:36px;width:36px}.llms-donut.mini .percentage{font-size:10px}.llms-donut.small{height:100px;width:100px}.llms-donut.small .percentage{font-size:18px}.llms-donut.medium{height:130px;width:130px}.llms-donut.medium .percentage{font-size:26px}.llms-donut.large{height:260px;width:260px}.llms-donut.large .percentage{font-size:48px}.llms-donut .inside{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#fff;border-radius:50%;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;height:80%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;right:50%;position:absolute;text-align:center;-webkit-transform:translate(50%, -50%);transform:translate(50%, -50%);width:80%;top:50%;z-index:3}.llms-donut .percentage{line-height:1.2;font-size:34px}.llms-donut .caption{font-size:50%}.lifterlms [data-tip],.lifterlms [data-title-default],.lifterlms [data-title-active],.llms-metabox [data-tip],.llms-metabox [data-title-default],.llms-metabox [data-title-active],.llms-mb-container [data-tip],.llms-mb-container [data-title-default],.llms-mb-container [data-title-active],.llms-quiz-wrapper [data-tip],.llms-quiz-wrapper [data-title-default],.llms-quiz-wrapper [data-title-active]{position:relative}.lifterlms [data-tip].tip--top-right:before,.lifterlms [data-title-default].tip--top-right:before,.lifterlms [data-title-active].tip--top-right:before,.llms-metabox [data-tip].tip--top-right:before,.llms-metabox [data-title-default].tip--top-right:before,.llms-metabox [data-title-active].tip--top-right:before,.llms-mb-container [data-tip].tip--top-right:before,.llms-mb-container [data-title-default].tip--top-right:before,.llms-mb-container [data-title-active].tip--top-right:before,.llms-quiz-wrapper [data-tip].tip--top-right:before,.llms-quiz-wrapper [data-title-default].tip--top-right:before,.llms-quiz-wrapper [data-title-active].tip--top-right:before{bottom:100%;right:-10px}.lifterlms [data-tip].tip--top-right:hover:before,.lifterlms [data-title-default].tip--top-right:hover:before,.lifterlms [data-title-active].tip--top-right:hover:before,.llms-metabox [data-tip].tip--top-right:hover:before,.llms-metabox [data-title-default].tip--top-right:hover:before,.llms-metabox [data-title-active].tip--top-right:hover:before,.llms-mb-container [data-tip].tip--top-right:hover:before,.llms-mb-container [data-title-default].tip--top-right:hover:before,.llms-mb-container [data-title-active].tip--top-right:hover:before,.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before{bottom:calc(100% + 6px)}.lifterlms [data-tip].tip--top-right:after,.lifterlms [data-title-default].tip--top-right:after,.lifterlms [data-title-active].tip--top-right:after,.llms-metabox [data-tip].tip--top-right:after,.llms-metabox [data-title-default].tip--top-right:after,.llms-metabox [data-title-active].tip--top-right:after,.llms-mb-container [data-tip].tip--top-right:after,.llms-mb-container [data-title-default].tip--top-right:after,.llms-mb-container [data-title-active].tip--top-right:after,.llms-quiz-wrapper [data-tip].tip--top-right:after,.llms-quiz-wrapper [data-title-default].tip--top-right:after,.llms-quiz-wrapper [data-title-active].tip--top-right:after{border-top-color:#444;right:6px;top:0}.lifterlms [data-tip].tip--top-right:hover:after,.lifterlms [data-title-default].tip--top-right:hover:after,.lifterlms [data-title-active].tip--top-right:hover:after,.llms-metabox [data-tip].tip--top-right:hover:after,.llms-metabox [data-title-default].tip--top-right:hover:after,.llms-metabox [data-title-active].tip--top-right:hover:after,.llms-mb-container [data-tip].tip--top-right:hover:after,.llms-mb-container [data-title-default].tip--top-right:hover:after,.llms-mb-container [data-title-active].tip--top-right:hover:after,.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after{top:-6px}.lifterlms [data-tip].tip--top-left:before,.lifterlms [data-title-default].tip--top-left:before,.lifterlms [data-title-active].tip--top-left:before,.llms-metabox [data-tip].tip--top-left:before,.llms-metabox [data-title-default].tip--top-left:before,.llms-metabox [data-title-active].tip--top-left:before,.llms-mb-container [data-tip].tip--top-left:before,.llms-mb-container [data-title-default].tip--top-left:before,.llms-mb-container [data-title-active].tip--top-left:before,.llms-quiz-wrapper [data-tip].tip--top-left:before,.llms-quiz-wrapper [data-title-default].tip--top-left:before,.llms-quiz-wrapper [data-title-active].tip--top-left:before{bottom:100%;left:-10px}.lifterlms [data-tip].tip--top-left:hover:before,.lifterlms [data-title-default].tip--top-left:hover:before,.lifterlms [data-title-active].tip--top-left:hover:before,.llms-metabox [data-tip].tip--top-left:hover:before,.llms-metabox [data-title-default].tip--top-left:hover:before,.llms-metabox [data-title-active].tip--top-left:hover:before,.llms-mb-container [data-tip].tip--top-left:hover:before,.llms-mb-container [data-title-default].tip--top-left:hover:before,.llms-mb-container [data-title-active].tip--top-left:hover:before,.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before{bottom:calc(100% + 6px)}.lifterlms [data-tip].tip--top-left:after,.lifterlms [data-title-default].tip--top-left:after,.lifterlms [data-title-active].tip--top-left:after,.llms-metabox [data-tip].tip--top-left:after,.llms-metabox [data-title-default].tip--top-left:after,.llms-metabox [data-title-active].tip--top-left:after,.llms-mb-container [data-tip].tip--top-left:after,.llms-mb-container [data-title-default].tip--top-left:after,.llms-mb-container [data-title-active].tip--top-left:after,.llms-quiz-wrapper [data-tip].tip--top-left:after,.llms-quiz-wrapper [data-title-default].tip--top-left:after,.llms-quiz-wrapper [data-title-active].tip--top-left:after{border-top-color:#444;left:6px;top:0}.lifterlms [data-tip].tip--top-left:hover:after,.lifterlms [data-title-default].tip--top-left:hover:after,.lifterlms [data-title-active].tip--top-left:hover:after,.llms-metabox [data-tip].tip--top-left:hover:after,.llms-metabox [data-title-default].tip--top-left:hover:after,.llms-metabox [data-title-active].tip--top-left:hover:after,.llms-mb-container [data-tip].tip--top-left:hover:after,.llms-mb-container [data-title-default].tip--top-left:hover:after,.llms-mb-container [data-title-active].tip--top-left:hover:after,.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after{top:-6px}.lifterlms [data-tip].tip--bottom-left:before,.lifterlms [data-title-default].tip--bottom-left:before,.lifterlms [data-title-active].tip--bottom-left:before,.llms-metabox [data-tip].tip--bottom-left:before,.llms-metabox [data-title-default].tip--bottom-left:before,.llms-metabox [data-title-active].tip--bottom-left:before,.llms-mb-container [data-tip].tip--bottom-left:before,.llms-mb-container [data-title-default].tip--bottom-left:before,.llms-mb-container [data-title-active].tip--bottom-left:before,.llms-quiz-wrapper [data-tip].tip--bottom-left:before,.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,.llms-quiz-wrapper [data-title-active].tip--bottom-left:before{top:100%;left:-10px}.lifterlms [data-tip].tip--bottom-left:hover:before,.lifterlms [data-title-default].tip--bottom-left:hover:before,.lifterlms [data-title-active].tip--bottom-left:hover:before,.llms-metabox [data-tip].tip--bottom-left:hover:before,.llms-metabox [data-title-default].tip--bottom-left:hover:before,.llms-metabox [data-title-active].tip--bottom-left:hover:before,.llms-mb-container [data-tip].tip--bottom-left:hover:before,.llms-mb-container [data-title-default].tip--bottom-left:hover:before,.llms-mb-container [data-title-active].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before{top:calc(100% + 6px)}.lifterlms [data-tip].tip--bottom-left:after,.lifterlms [data-title-default].tip--bottom-left:after,.lifterlms [data-title-active].tip--bottom-left:after,.llms-metabox [data-tip].tip--bottom-left:after,.llms-metabox [data-title-default].tip--bottom-left:after,.llms-metabox [data-title-active].tip--bottom-left:after,.llms-mb-container [data-tip].tip--bottom-left:after,.llms-mb-container [data-title-default].tip--bottom-left:after,.llms-mb-container [data-title-active].tip--bottom-left:after,.llms-quiz-wrapper [data-tip].tip--bottom-left:after,.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,.llms-quiz-wrapper [data-title-active].tip--bottom-left:after{border-bottom-color:#444;left:6px;bottom:0}.lifterlms [data-tip].tip--bottom-left:hover:after,.lifterlms [data-title-default].tip--bottom-left:hover:after,.lifterlms [data-title-active].tip--bottom-left:hover:after,.llms-metabox [data-tip].tip--bottom-left:hover:after,.llms-metabox [data-title-default].tip--bottom-left:hover:after,.llms-metabox [data-title-active].tip--bottom-left:hover:after,.llms-mb-container [data-tip].tip--bottom-left:hover:after,.llms-mb-container [data-title-default].tip--bottom-left:hover:after,.llms-mb-container [data-title-active].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after{bottom:-6px}.lifterlms [data-tip].tip--bottom-right:before,.lifterlms [data-title-default].tip--bottom-right:before,.lifterlms [data-title-active].tip--bottom-right:before,.llms-metabox [data-tip].tip--bottom-right:before,.llms-metabox [data-title-default].tip--bottom-right:before,.llms-metabox [data-title-active].tip--bottom-right:before,.llms-mb-container [data-tip].tip--bottom-right:before,.llms-mb-container [data-title-default].tip--bottom-right:before,.llms-mb-container [data-title-active].tip--bottom-right:before,.llms-quiz-wrapper [data-tip].tip--bottom-right:before,.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,.llms-quiz-wrapper [data-title-active].tip--bottom-right:before{top:100%;right:-10px}.lifterlms [data-tip].tip--bottom-right:hover:before,.lifterlms [data-title-default].tip--bottom-right:hover:before,.lifterlms [data-title-active].tip--bottom-right:hover:before,.llms-metabox [data-tip].tip--bottom-right:hover:before,.llms-metabox [data-title-default].tip--bottom-right:hover:before,.llms-metabox [data-title-active].tip--bottom-right:hover:before,.llms-mb-container [data-tip].tip--bottom-right:hover:before,.llms-mb-container [data-title-default].tip--bottom-right:hover:before,.llms-mb-container [data-title-active].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before{top:calc(100% + 6px)}.lifterlms [data-tip].tip--bottom-right:after,.lifterlms [data-title-default].tip--bottom-right:after,.lifterlms [data-title-active].tip--bottom-right:after,.llms-metabox [data-tip].tip--bottom-right:after,.llms-metabox [data-title-default].tip--bottom-right:after,.llms-metabox [data-title-active].tip--bottom-right:after,.llms-mb-container [data-tip].tip--bottom-right:after,.llms-mb-container [data-title-default].tip--bottom-right:after,.llms-mb-container [data-title-active].tip--bottom-right:after,.llms-quiz-wrapper [data-tip].tip--bottom-right:after,.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,.llms-quiz-wrapper [data-title-active].tip--bottom-right:after{border-bottom-color:#444;right:6px;bottom:0}.lifterlms [data-tip].tip--bottom-right:hover:after,.lifterlms [data-title-default].tip--bottom-right:hover:after,.lifterlms [data-title-active].tip--bottom-right:hover:after,.llms-metabox [data-tip].tip--bottom-right:hover:after,.llms-metabox [data-title-default].tip--bottom-right:hover:after,.llms-metabox [data-title-active].tip--bottom-right:hover:after,.llms-mb-container [data-tip].tip--bottom-right:hover:after,.llms-mb-container [data-title-default].tip--bottom-right:hover:after,.llms-mb-container [data-title-active].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after{bottom:-6px}.lifterlms [data-tip]:before,.lifterlms [data-title-default]:before,.lifterlms [data-title-active]:before,.llms-metabox [data-tip]:before,.llms-metabox [data-title-default]:before,.llms-metabox [data-title-active]:before,.llms-mb-container [data-tip]:before,.llms-mb-container [data-title-default]:before,.llms-mb-container [data-title-active]:before,.llms-quiz-wrapper [data-tip]:before,.llms-quiz-wrapper [data-title-default]:before,.llms-quiz-wrapper [data-title-active]:before{background:#444;border-radius:4px;color:#fff;font-size:13px;line-height:1.2;padding:8px;max-width:300px;width:-webkit-max-content;width:-moz-max-content;width:max-content}.lifterlms [data-tip]:after,.lifterlms [data-title-default]:after,.lifterlms [data-title-active]:after,.llms-metabox [data-tip]:after,.llms-metabox [data-title-default]:after,.llms-metabox [data-title-active]:after,.llms-mb-container [data-tip]:after,.llms-mb-container [data-title-default]:after,.llms-mb-container [data-title-active]:after,.llms-quiz-wrapper [data-tip]:after,.llms-quiz-wrapper [data-title-default]:after,.llms-quiz-wrapper [data-title-active]:after{content:"";border:6px solid transparent;height:0;width:0}.lifterlms [data-tip]:before,.lifterlms [data-tip]:after,.lifterlms [data-title-default]:before,.lifterlms [data-title-default]:after,.lifterlms [data-title-active]:before,.lifterlms [data-title-active]:after,.llms-metabox [data-tip]:before,.llms-metabox [data-tip]:after,.llms-metabox [data-title-default]:before,.llms-metabox [data-title-default]:after,.llms-metabox [data-title-active]:before,.llms-metabox [data-title-active]:after,.llms-mb-container [data-tip]:before,.llms-mb-container [data-tip]:after,.llms-mb-container [data-title-default]:before,.llms-mb-container [data-title-default]:after,.llms-mb-container [data-title-active]:before,.llms-mb-container [data-title-active]:after,.llms-quiz-wrapper [data-tip]:before,.llms-quiz-wrapper [data-tip]:after,.llms-quiz-wrapper [data-title-default]:before,.llms-quiz-wrapper [data-title-default]:after,.llms-quiz-wrapper [data-title-active]:before,.llms-quiz-wrapper [data-title-active]:after{opacity:0;-webkit-transition:all .2s .1s ease;transition:all .2s .1s ease;position:absolute;pointer-events:none;visibility:hidden}.lifterlms [data-tip]:hover:before,.lifterlms [data-tip]:hover:after,.lifterlms [data-title-default]:hover:before,.lifterlms [data-title-default]:hover:after,.lifterlms [data-title-active]:hover:before,.lifterlms [data-title-active]:hover:after,.llms-metabox [data-tip]:hover:before,.llms-metabox [data-tip]:hover:after,.llms-metabox [data-title-default]:hover:before,.llms-metabox [data-title-default]:hover:after,.llms-metabox [data-title-active]:hover:before,.llms-metabox [data-title-active]:hover:after,.llms-mb-container [data-tip]:hover:before,.llms-mb-container [data-tip]:hover:after,.llms-mb-container [data-title-default]:hover:before,.llms-mb-container [data-title-default]:hover:after,.llms-mb-container [data-title-active]:hover:before,.llms-mb-container [data-title-active]:hover:after,.llms-quiz-wrapper [data-tip]:hover:before,.llms-quiz-wrapper [data-tip]:hover:after,.llms-quiz-wrapper [data-title-default]:hover:before,.llms-quiz-wrapper [data-title-default]:hover:after,.llms-quiz-wrapper [data-title-active]:hover:before,.llms-quiz-wrapper [data-title-active]:hover:after{opacity:1;-webkit-transition:all .2s .6s ease;transition:all .2s .6s ease;visibility:visible;z-index:99999999}.lifterlms [data-tip]:before,.llms-metabox [data-tip]:before,.llms-mb-container [data-tip]:before,.llms-quiz-wrapper [data-tip]:before{content:attr(data-tip)}.lifterlms [data-tip].active:before,.llms-metabox [data-tip].active:before,.llms-mb-container [data-tip].active:before,.llms-quiz-wrapper [data-tip].active:before{content:attr(data-tip-active)}.llms-membership-image{display:block;margin:0 auto}.llms-course-image{display:block;margin:0 auto;max-width:100%}.llms-featured-image{display:block;margin:0 auto}.llms-image-thumb{width:150px}.llms-video-wrapper .center-video{height:auto;max-width:100%;overflow:hidden;position:relative;padding-top:56.25%;text-align:center}.llms-video-wrapper .center-video>.wp-video,.llms-video-wrapper .center-video .fluid-width-video-wrapper,.llms-video-wrapper .center-video iframe,.llms-video-wrapper .center-video object,.llms-video-wrapper .center-video embed{height:100%;right:0;position:absolute;top:0;width:100%}.llms-video-wrapper .center-video>.wp-video{width:100% !important}.llms-video-wrapper .center-video .fluid-width-video-wrapper{padding-top:0 !important}.clear{clear:both;width:100%}.llms-featured-image{text-align:center}h1,h2,h3,h4,h5,h6{font-weight:300}#main-content .llms-payment-options p{margin:0;font-size:16px}.llms-option{display:block;position:relative;margin:20px 0;padding-right:40px;font-size:16px}.llms-option label{cursor:pointer;position:static}.llms-option:first-child{margin-top:0}.llms-option:last-child{margin-bottom:0}#main-content .llms-option:last-child{margin-bottom:0}.llms-option input[type=radio]{display:block;position:absolute;top:3px;right:0;z-index:0}.llms-option input[type=radio]{display:inline-block}.llms-option input[type=radio]+label span.llms-radio{display:none}.llms-option input[type=radio]+label span.llms-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:20;position:absolute;top:0;right:-2px;display:inline-block;width:24px;height:24px;border-radius:50%;cursor:pointer;vertical-align:middle;-webkit-box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.5) 0 0 0 1px;box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.5) 0 0 0 1px;background:#efefef;background-image:radial-gradient(ellipse at center, #e5554e 0%, #e5554e 40%, #efefef 45%);background-repeat:no-repeat;-webkit-transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);transition:background-position .15s cubic-bezier(0.8, 0, 1, 1)}.llms-option input[type=radio]:checked+label span.llms-radio{-webkit-transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1)}.llms-option input[type=radio]+label span.llms-radio{background-position:-24px 0}.llms-option input[type=radio]:checked+label span.llms-radio{background-position:100% 0}.llms-option input[type=submit]{border:none;background:#e5554e;color:#fff;font-size:20px;padding:10px 0;border-radius:3px;cursor:pointer;width:100%}.llms-styled-text{padding:14px 0}.llms-notice-box{border-radius:3px;z-index:10;margin:10px 0;padding:15px 20px;border:1px solid #ccc;list-style-type:none;width:100%;overflow:auto}.llms-notice-box input[type=text]{height:auto}.llms-notice-box .col-1-1{width:100%}.llms-notice-box .col-1-1 input[type=text]{width:100%}.llms-notice-box .col-1-2{width:50%;float:right}@media screen and (max-width: 768px){.llms-notice-box .col-1-2{width:100%}}.llms-notice-box .col-1-3{width:33%;float:right;margin-left:10px}.llms-notice-box .col-1-4{width:25%;float:right;margin-left:10px}@media screen and (max-width: 768px){.llms-notice-box .col-1-4{width:100%}}.llms-notice-box .col-1-6{width:16.6%;float:right;margin-left:10px}.llms-notice-box .col-1-8{width:11%;float:left}.llms-notice-box .llms-pad-right{padding-left:10px}@media screen and (max-width: 768px){.llms-notice-box .llms-pad-right{padding-left:0}}input[type=text].cc_cvv,#cc_cvv{margin-left:0;width:23%;float:left}.llms-clear-box{border-radius:3px;z-index:10;margin:10px 0;padding:15px 20px;list-style-type:none;width:100%;overflow:auto}.llms-price-label{font-weight:normal}.llms-final-price{font-weight:bold;float:left}.llms-center-content{text-align:center}.llms-input-text{background-color:#fff;border:1px solid #ddd;color:#333;font-size:18px;font-weight:300;padding:16px;width:100%}.llms-price{margin-bottom:0;font-weight:bold}.llms-price-loop{margin-bottom:0;font-weight:bold}.courses .entry{padding:0}.list-view .site-content .llms-course-list .hentry,.list-view .site-content .llms-membership-list .hentry{border-top:0;padding-top:0}.llms-content{width:100%}.llms-lesson-button-wrapper{width:100%;display:block;clear:both;text-align:center}.llms-template-wrapper{width:100%;display:block;clear:both}.llms-button-wrapper{width:100%;display:block;clear:both;text-align:center}.llms-styled-select{border:1px solid #ccc;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:3px;overflow:hidden;position:relative}.llms-styled-select,.llms-styled-select select{width:100%}select:focus{outline:none}.llms-styled-select select{height:34px;padding:5px 5px 5px 0;background:transparent;border:none;-webkit-appearance:none;font-size:16px;color:#444}@-moz-document url-prefix(){.--ms-styled-select select{width:110%}}.llms-styled-select .fa-sort-desc{position:absolute;top:0;left:12px;font-size:24px;color:#ccc}select::-ms-expand{display:none}_:-o-prefocus .llms-styled-select,.selector .llms-styled-select{background:none}.llms-form-item-wrapper{margin-bottom:1em}.llms-progress-circle{position:relative;width:200px;height:200px;float:right}.llms-progress-circle-count{top:27%;position:absolute;width:94%;text-align:center;color:#666;font-size:44px}.llms-progress-circle svg{position:absolute;width:200px;height:200px}.llms-progress-circle circle{fill:transparent}svg .llms-background-circle{fill:transparent;stroke-width:10px;stroke:#f1f2f1;stroke-dasharray:430}svg .llms-animated-circle{fill:transparent;stroke-width:10px;stroke:#e5554e;stroke-dasharray:430;stroke-dashoffset:410}.llms-widget-syllabus .llms-lesson.current-lesson .lesson-title{font-weight:700}.llms-widget-syllabus .llms-lesson-complete,.llms-widget-syllabus .lesson-complete-placeholder{font-size:1.2em;margin-left:6px;color:#ccc}.llms-widget-syllabus .llms-lesson-complete.done,.llms-widget-syllabus .lesson-complete-placeholder.done{color:#e5554e}.llms-widget-syllabus .section-title{font-weight:bold}.llms-widget-syllabus .lesson-title a{text-decoration:none}.llms-widget-syllabus .lesson-title a:hover{text-decoration:none !important}.llms-widget-syllabus .lesson-title.done a{color:#999;text-decoration:line-through}.llms-widget-syllabus ul{list-style-type:none}.llms-widget-syllabus ul li{list-style-type:none}.llms-widget-syllabus ul li ul li{margin:0 0 2px 0;padding:0}.llms-remove-coupon{float:left}.llms-lesson-link-locked,.llms-lesson-link-locked:hover{background:#f1f1f1;-webkit-box-shadow:0 1px 2px 0 rgba(1,1,1,.4);box-shadow:0 1px 2px 0 rgba(1,1,1,.4);display:block;color:#a6a6a6;min-height:85px;padding:15px;text-decoration:none;position:relative}.llms-lesson-preview.is-complete .llms-lesson-link-locked{padding-right:75px}.llms-lesson-tooltip{display:none;position:absolute;color:#000;background-color:silver;padding:.25em;border-radius:2px;z-index:100;top:0;right:50%;text-align:center;-webkit-transform:translateX(50%) translateY(-100%);transform:translateX(50%) translateY(-100%)}.llms-lesson-tooltip:after{content:"";width:0;height:0;border-top:8px solid silver;border-right:8px solid transparent;border-left:8px solid transparent;position:absolute;bottom:-8px;right:50%;-webkit-transform:translateX(50%);transform:translateX(50%)}.llms-lesson-tooltip.active{display:inline-block}.llms-loop-list{list-style:none;margin:0 -10px;padding:0}@media all and (min-width: 600px){.llms-loop-list.cols-1 .llms-loop-item{width:100%}.llms-loop-list.cols-2 .llms-loop-item{width:50%}.llms-loop-list.cols-3 .llms-loop-item{width:33.3333333333%}.llms-loop-list.cols-4 .llms-loop-item{width:25%}.llms-loop-list.cols-5 .llms-loop-item{width:20%}.llms-loop-list.cols-6 .llms-loop-item{width:16.6666666667%}}.llms-loop-item{float:right;list-style:none;margin:0;padding:0;width:100%}.llms-loop-item-content{background:#f1f1f1;padding-bottom:10px;margin:10px}.llms-loop-item-content:hover{background:#eaeaea}.llms-loop-item-content .llms-loop-link{color:#212121;display:block}.llms-loop-item-content .llms-loop-link:visited{color:#212121}.llms-loop-item-content .llms-featured-image{display:block;max-width:100%}.llms-loop-item-content .llms-loop-title{margin-top:5px}.llms-loop-item-content .llms-loop-title:hover{color:#2295ff}.llms-loop-item-content .llms-meta,.llms-loop-item-content .llms-author,.llms-loop-item-content .llms-loop-title{padding:0 10px}.llms-loop-item-content .llms-meta,.llms-loop-item-content .llms-author{color:#444;display:block;font-size:13px;margin-bottom:3px}.llms-loop-item-content .llms-meta:last-child,.llms-loop-item-content .llms-author:last-child{margin-bottom:0}.llms-loop-item-content .llms-featured-img-wrap{overflow:hidden}.llms-loop-item-content p{margin-bottom:0}.llms-loop-item-content .llms-progress{margin:0;height:.4em}.llms-loop-item-content .llms-progress .progress__indicator{display:none}.llms-loop-item-content .llms-progress .llms-progress-bar{background-color:#f6f6f6;left:0;top:0}.course .llms-meta-info{margin:20px 0}.course .llms-meta-info .llms-meta-title{margin-bottom:5px}.course .llms-meta-info .llms-meta p{margin-bottom:0}.course .llms-meta-info .llms-meta span{font-weight:700}.course .llms-course-progress{margin:40px auto;max-width:480px;text-align:center}.llms-syllabus-wrapper{margin:15px;text-align:center}.llms-syllabus-wrapper .llms-section-title{margin:25px 0 0}.llms-course-navigation .llms-prev-lesson,.llms-course-navigation .llms-next-lesson,.llms-course-navigation .llms-back-to-course{width:49%}.llms-course-navigation .llms-prev-lesson,.llms-course-navigation .llms-back-to-course{float:right;margin-left:.5%}.llms-course-navigation .llms-next-lesson,.llms-course-navigation .llms-prev-lesson+.llms-back-to-course{float:left;margin-right:.5%}.llms-lesson-preview{display:inline-block;margin-top:15px;max-width:100%;position:relative;width:480px}.llms-lesson-preview .llms-lesson-link{background:#f1f1f1;color:#212121;display:block;padding:15px;text-decoration:none}.llms-lesson-preview .llms-lesson-link:before,.llms-lesson-preview .llms-lesson-link:after{content:" ";display:table}.llms-lesson-preview .llms-lesson-link:after{clear:both}.llms-lesson-preview .llms-lesson-link:hover{background:#eaeaea}.llms-lesson-preview .llms-lesson-link:visited{color:#212121}.llms-lesson-preview .llms-lesson-thumbnail{margin-bottom:10px}.llms-lesson-preview .llms-lesson-thumbnail img{display:block;width:100%}.llms-lesson-preview .llms-pre-text{text-align:right}.llms-lesson-preview .llms-lesson-title{font-weight:700;margin:0 auto 10px;text-align:right}.llms-lesson-preview .llms-lesson-title:last-child{margin-bottom:0}.llms-lesson-preview .llms-lesson-excerpt{text-align:right}.llms-lesson-preview .llms-main{float:right;width:100%}.llms-lesson-preview .llms-extra{float:left;width:15%}.llms-lesson-preview .llms-extra+.llms-main{width:85%}.llms-lesson-preview .llms-lesson-counter,.llms-lesson-preview .llms-free-lesson-svg,.llms-lesson-preview .llms-lesson-complete,.llms-lesson-preview .llms-lesson-complete-placeholder{display:block;font-size:32px;margin-bottom:15px}.llms-lesson-preview.is-free .llms-lesson-complete,.llms-lesson-preview.is-complete .llms-lesson-complete{color:#2295ff}.llms-lesson-preview .llms-icon-free{background:#2295ff;border-radius:4px;color:#f1f1f1;display:inline-block;padding:5px 6px 4px;line-height:1;font-size:14px}.llms-lesson-preview.is-incomplete .llms-lesson-complete{color:#cacaca}.llms-lesson-preview .llms-lesson-counter{font-size:16px;line-height:1}.llms-lesson-preview .llms-free-lesson-svg{fill:currentColor;height:23px;width:50px}.llms-lesson-preview p{margin-bottom:0}.llms-progress{clear:both;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;position:relative;height:1em;width:100%;margin:15px 0}.llms-progress .llms-progress-bar{background-color:#f1f2f1;position:relative;height:.4em;top:.3em;width:100%}.llms-progress .progress-bar-complete{background-color:#ef476f;height:100%}.progress__indicator{float:left;text-align:left;height:1em;line-height:1em;margin-right:5px;white-space:nowrap}.llms-author .name{margin-right:5px}.llms-author .label{margin-right:5px}.llms-author .avatar{border-radius:50%}.llms-author .bio{margin-top:5px}.llms-instructor-info .llms-instructors .llms-col:first-child .llms-author{margin-right:0}.llms-instructor-info .llms-instructors .llms-col:last-child .llms-author{margin-left:0}.llms-instructor-info .llms-instructors .llms-author{background:#f5f5f5;border-top:4px solid #2295ff;text-align:center;margin:45px 5px 5px;padding:0 10px 10px}.llms-instructor-info .llms-instructors .llms-author .avatar{background:#2295ff;border:4px solid #2295ff;display:block;margin:-35px auto 10px}.llms-instructor-info .llms-instructors .llms-author .llms-author-info{display:block}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.name{font-weight:700}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.label{font-size:85%}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.bio{font-size:90%;margin-bottom:0}.llms-notice{background:rgba(34,149,255,.3);border-color:#2295ff;border-style:solid;border-width:3px;padding:10px;margin-bottom:10px}.llms-notice p:last-child,.llms-notice ul:last-child{margin-bottom:0}.llms-notice li{list-style-type:none}.llms-notice.llms-debug{background:rgba(202,202,202,.3);border-color:#cacaca}.llms-notice.llms-error{background:rgba(229,85,78,.3);border-color:#e5554e}.llms-notice.llms-success{background:rgba(131,195,115,.3);border-color:#83c373}.entry-content .llms-notice{margin:0 0 10px}.entry-content .llms-notice li{list-style-type:none}ul.llms-achievements-loop,.lifterlms ul.llms-achievements-loop,ul.llms-certificates-loop,.lifterlms ul.llms-certificates-loop{list-style-type:none;margin:0 -10px;padding:0}ul.llms-achievements-loop:before,ul.llms-achievements-loop:after,.lifterlms ul.llms-achievements-loop:before,.lifterlms ul.llms-achievements-loop:after,ul.llms-certificates-loop:before,ul.llms-certificates-loop:after,.lifterlms ul.llms-certificates-loop:before,.lifterlms ul.llms-certificates-loop:after{content:" ";display:table}ul.llms-achievements-loop:after,.lifterlms ul.llms-achievements-loop:after,ul.llms-certificates-loop:after,.lifterlms ul.llms-certificates-loop:after{clear:both}ul.llms-achievements-loop li.llms-achievement-loop-item,ul.llms-achievements-loop li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop li.llms-certificate-loop-item,ul.llms-certificates-loop li.llms-achievement-loop-item,ul.llms-certificates-loop li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop li.llms-certificate-loop-item{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;float:right;list-style-type:none;margin:0;padding:10px;width:100%}@media all and (min-width: 600px){ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item{width:100%}ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item{width:50%}ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item{width:33.3333333333%}ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item{width:25%}ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item{width:20%}}.llms-achievement,.llms-certificate{background:#f1f1f1;border:none;color:inherit;display:block;text-decoration:none;width:100%}.llms-achievement:hover,.llms-certificate:hover{background:#eaeaea}.llms-achievement .llms-achievement-img,.llms-certificate .llms-achievement-img{display:block;margin:0;width:100%}.llms-achievement .llms-achievement-title,.llms-certificate .llms-achievement-title{font-size:16px;margin:0;padding:10px;text-align:center}.llms-achievement .llms-certificate-title,.llms-certificate .llms-certificate-title{font-size:16px;margin:0;padding:0 0 10px}.llms-achievement .llms-achievement-info,.llms-achievement .llms-achievement-date,.llms-certificate .llms-achievement-info,.llms-certificate .llms-achievement-date{display:none}.llms-achievement .llms-achievement-content,.llms-certificate .llms-achievement-content{padding:20px}.llms-achievement .llms-achievement-content:empty,.llms-certificate .llms-achievement-content:empty{padding:0}.llms-achievement .llms-achievement-content *:last-child,.llms-certificate .llms-achievement-content *:last-child{margin-bottom:0}.llms-certificate{border:4px double #f1f1f1;padding:20px 10px;background:#fff;text-align:center}.llms-certificate:hover{background:#fff;border-color:#eaeaea}.llms-achievement-modal .llms-achievement{background:#fff}.llms-achievement-modal .llms-achievement-info{display:block}.llms-achievement-modal .llms-achievement-title{display:none}.llms-notification{background:#fff;-webkit-box-shadow:0 1px 2px -2px #333,0 1px 1px -1px #333;box-shadow:0 1px 2px -2px #333,0 1px 1px -1px #333;border-top:4px solid #2295ff;right:12px;opacity:0;padding:12px;position:fixed;left:12px;top:24px;-webkit-transition:opacity .4s ease-in-out,left .4s ease-in-out;transition:opacity .4s ease-in-out,left .4s ease-in-out;visibility:none;width:auto;z-index:9999999}.llms-notification:before,.llms-notification:after{content:" ";display:table}.llms-notification:after{clear:both}.llms-notification.visible{opacity:1;-webkit-transition:opacity .4s ease-in-out,left .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,-webkit-transform .2s ease-in-out;transition:opacity .4s ease-in-out,left .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,-webkit-transform .2s ease-in-out;transition:opacity .4s ease-in-out,left .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,transform .2s ease-in-out;transition:opacity .4s ease-in-out,left .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,transform .2s ease-in-out,-webkit-transform .2s ease-in-out;visibility:visible}.llms-notification.visible:hover .llms-notification-dismiss{opacity:1}.llms-notification .llms-notification-content{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.llms-notification .llms-notification-main{-ms-flex-item-align:start;align-self:flex-start;-webkit-box-flex:4;-ms-flex:4;flex:4;-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.llms-notification .llms-notification-title{font-size:18px;margin:0}.llms-notification .llms-notification-body{font-size:14px;line-height:1.4}.llms-notification .llms-notification-body p,.llms-notification .llms-notification-body li{font-size:inherit}.llms-notification .llms-notification-body p{margin-bottom:8px}.llms-notification .llms-notification-body .llms-mini-cert{background:#f6f6f6;border:1px solid #d0d0d0;-webkit-box-shadow:inset 0 0 0 3px #fefefe,inset 0 0 0 4px #dedede;box-shadow:inset 0 0 0 3px #fefefe,inset 0 0 0 4px #dedede;padding:16px 16px 24px;margin-top:12px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert-title{font-size:16px;font-weight:700;margin:12px auto;text-align:center}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body{width:100%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(1){width:65%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(2){width:35%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(3){width:85%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(4){width:75%;margin-top:18px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(5){width:70%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(6){margin-right:12px;margin-bottom:-24px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(7){width:65%;margin-left:12px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-line{border-radius:2px;height:8px;background:#b0b0b0;background-image:-webkit-gradient(linear, right top, left top, from(#b0b0b0), color-stop(20%, #a0a0a0), color-stop(40%, #b0b0b0), to(#b0b0b0));background-image:linear-gradient(to left, #b0b0b0 0%, #a0a0a0 20%, #b0b0b0 40%, #b0b0b0 100%);background-repeat:no-repeat;margin:4px auto}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-dot{background:#b0b0b0;border-radius:50%;display:inline-block;content:"";height:24px;width:24px}.llms-notification .llms-notification-body .llms-mini-cert p{margin-bottom:0}.llms-notification .llms-notification-aside{-ms-flex-item-align:start;align-self:flex-start;-webkit-box-flex:1;-ms-flex:1;flex:1;margin-left:12px;-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.llms-notification .llms-notification-icon{display:block;max-width:64px}.llms-notification .llms-notification-footer{border-top:1px solid #e5e5e5;font-size:12px;margin-top:12px;padding:6px 6px 0;text-align:left}.llms-notification .llms-notification-dismiss{color:#e5554e;cursor:pointer;font-size:22px;position:absolute;left:10px;top:8px;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out}.llms-sd-notification-center .llms-notification-list,.llms-sd-notification-center .llms-notification-list-item{list-style-type:none;margin:0;padding:0}.llms-sd-notification-center .llms-notification-list-item:hover .llms-notification{background:#fcfcfc}.llms-sd-notification-center .llms-notification{opacity:1;border-top:1px solid #e5e5e5;right:auto;padding:24px;position:relative;left:auto;top:auto;visibility:visible;width:auto}.llms-sd-notification-center .llms-notification .llms-notification-aside{max-width:64px}.llms-sd-notification-center .llms-notification .llms-notification-footer{border:none;padding:0;text-align:right}.llms-sd-notification-center .llms-notification .llms-progress{display:none !important}.llms-sd-notification-center .llms-notification .llms-notification-date{color:#515151;float:right;margin-left:6px}.llms-sd-notification-center .llms-notification .llms-mini-cert{margin:0 auto;max-width:380px}@media all and (min-width: 480px){.llms-notification{right:auto;left:-800px;width:360px}.llms-notification.visible{left:24px}.llms-notification .llms-notification-dismiss{opacity:0}}.llms-pagination ul{list-style-type:none}.llms-pagination ul li{float:right}.llms-pagination ul li a{border-bottom:0;text-decoration:none}.llms-pagination ul li .page-numbers{padding:.5em;text-decoration:underline}.llms-pagination ul li .page-numbers.current{text-decoration:none}.llms-tooltip{background:#2a2a2a;border-radius:4px;color:#fff;font-size:14px;line-height:1.2;opacity:0;top:-20px;padding:8px 12px;right:50%;position:absolute;pointer-events:none;-webkit-transform:translateX(50%);transform:translateX(50%);-webkit-transition:opacity .2s ease,top .2s ease;transition:opacity .2s ease,top .2s ease;max-width:320px}.llms-tooltip.show{top:-28px;opacity:1}.llms-tooltip:after{bottom:-8px;border-top:8px solid #2a2a2a;border-right:8px solid transparent;border-left:8px solid transparent;content:"";height:0;right:50%;position:absolute;-webkit-transform:translateX(50%);transform:translateX(50%);width:0}.webui-popover-title{font-size:initial;font-weight:initial;line-height:initial}.webui-popover-inverse .webui-popover-inner .close{color:#fff;opacity:.6;text-shadow:none}.webui-popover-inverse .webui-popover-inner .close:hover{opacity:.8}.webui-popover-inverse .webui-popover-content a{color:#fff;text-decoration:underline}.webui-popover-inverse .webui-popover-content a:hover{text-decoration:none}.single-llms_quiz .llms-quiz-attempt-results{margin:0;padding:0;list-style-type:none}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question{background:#efefef;margin:0 0 10px;position:relative}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer{color:inherit;display:block;padding:10px 10px 10px 35px;text-decoration:none}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:before,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:after{content:" ";display:table}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:after{clear:both}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect{background:rgba(255,146,43,.2)}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon{background-color:#ff922b}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct{background:rgba(131,195,115,.2)}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon{background-color:#83c373}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect{background:rgba(229,85,78,.2)}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon{background-color:#e5554e}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title{float:right;margin:0;line-height:1}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points{float:left;line-height:1}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip{position:absolute;left:-12px;top:-2px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon{color:rgba(255,255,255,.65);border-radius:50%;font-size:30px;height:40px;line-height:40px;text-align:center;width:40px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main{display:none;padding:0 10px 10px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label{font-weight:700;margin-bottom:10px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers{margin:0;padding:0}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer{padding:0;margin:0 30px 0 0}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child{list-style-type:none;margin-right:0}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img{height:auto;max-width:200px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section{border-top:2px solid rgba(255,255,255,.5);margin-top:20px;padding-top:20px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child{border-top:none;margin-top:0;padding-top:0}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers{list-style-type:none;margin:0;padding:0}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer{display:inline-block;list-style-type:none;margin:0;padding:5px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed{opacity:.5}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title{font-style:italic;font-weight:normal}.single-llms_quiz .llms-return{margin-bottom:10px}.single-llms_quiz .llms-quiz-results:before,.single-llms_quiz .llms-quiz-results:after{content:" ";display:table}.single-llms_quiz .llms-quiz-results:after{clear:both}.single-llms_quiz .llms-quiz-results .llms-donut.passing{color:#83c373}.single-llms_quiz .llms-quiz-results .llms-donut.passing svg path{stroke:#83c373}.single-llms_quiz .llms-quiz-results .llms-donut.pending{color:#555}.single-llms_quiz .llms-quiz-results .llms-donut.pending svg path{stroke:#555}.single-llms_quiz .llms-quiz-results .llms-donut.failing{color:#e5554e}.single-llms_quiz .llms-quiz-results .llms-donut.failing svg path{stroke:#e5554e}.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside,.single-llms_quiz .llms-quiz-results .llms-quiz-results-main,.single-llms_quiz .llms-quiz-results .llms-quiz-results-history{margin-bottom:20px}@media all and (min-width: 600px){.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside{float:right;width:220px}.single-llms_quiz .llms-quiz-results .llms-quiz-results-main,.single-llms_quiz .llms-quiz-results .llms-quiz-results-history{float:right;width:calc(100% - 300px)}}.single-llms_quiz ul.llms-quiz-meta-info,.single-llms_quiz ul.llms-quiz-meta-info li{list-style-type:none;margin:0;padding:0}.single-llms_quiz ul.llms-quiz-meta-info{margin-bottom:10px}.single-llms_quiz .llms-quiz-buttons{margin-top:10px;text-align:right}.single-llms_quiz .llms-quiz-buttons form{display:inline-block}.llms-quiz-question-wrapper{min-height:140px;position:relative}.llms-quiz-question-wrapper .llms-quiz-loading{bottom:20px;right:0;position:absolute;left:0;text-align:center;z-index:1}.llms-quiz-ui{background:#fcfcfc;padding:20px;position:relative}.llms-quiz-ui .llms-quiz-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 0 30px}.llms-quiz-ui .llms-progress{background-color:#f1f2f1;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;height:8px;margin:0;overflow:hidden}.llms-quiz-ui .llms-progress .progress-bar-complete{-webkit-transition:width .3s ease-in;transition:width .3s ease-in;width:0}.llms-quiz-ui .llms-error{background:#e5554e;border-radius:4px;color:#fff;margin:10px 0;padding:10px}.llms-quiz-ui .llms-error:before,.llms-quiz-ui .llms-error:after{content:" ";display:table}.llms-quiz-ui .llms-error:after{clear:both}.llms-quiz-ui .llms-error a{color:rgba(255,255,255,.6);float:left;font-size:22px;line-height:1;text-decoration:none}.llms-quiz-ui .llms-quiz-counter{display:none;color:#6a6a6a;float:left;font-size:18px}.llms-quiz-ui .llms-quiz-counter .llms-sep{margin:0 5px}.llms-quiz-ui .llms-quiz-nav{margin-top:20px}.llms-quiz-ui .llms-quiz-nav button{margin:0 0 0 10px}.llms-question-wrapper .llms-question-text{font-size:30px;font-weight:400;margin-bottom:15px}.llms-question-wrapper ol.llms-question-choices{list-style-type:none;margin:0;padding:0}.llms-question-wrapper ol.llms-question-choices li.llms-choice{border-bottom:1px solid #e8e8e8;margin:0;padding:0;position:relative}.llms-question-wrapper ol.llms-question-choices li.llms-choice:last-child{border-bottom:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture{border-bottom:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture label{display:inline-block;padding:0}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-marker{bottom:10px;margin:0;position:absolute;left:10px}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image{margin:2px;padding:20px;-webkit-transition:background .4s ease;transition:background .4s ease}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image img{display:block;width:100%}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture input:checked~.llms-choice-image{background:#efefef}.llms-question-wrapper ol.llms-question-choices li.llms-choice input{display:none;right:0;pointer-events:none;position:absolute;top:0;visibility:hidden}.llms-question-wrapper ol.llms-question-choices li.llms-choice label{display:block;margin:0;padding:10px 20px;position:relative}.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .iterator{display:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .fa{display:inline}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker{background:#f0f0f0;display:inline-block;font-size:20px;height:40px;line-height:40px;margin-left:10px;text-align:center;-webkit-transition:all .2s ease;transition:all .2s ease;vertical-align:middle;width:40px}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker .fa{display:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--lister,.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--checkbox{border-radius:4px}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--radio{border-radius:50%}.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked+.llms-marker{background:#ef476f;color:#fff}.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked+.llms-marker .iterator{display:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked+.llms-marker .fa{display:inline}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-choice-text{display:inline-block;font-size:18px;font-weight:400;line-height:1.6;margin-bottom:0;vertical-align:middle;width:calc(100% - 60px)}.llms-quiz-timer{background:#fff;border:1px solid #83c373;border-radius:4px;color:#83c373;float:left;font-size:18px;line-height:1;margin-right:20px;padding:8px 12px;position:relative;white-space:nowrap;z-index:1}.llms-quiz-timer.color-half{border-color:#ff922b;color:#ff922b}.llms-quiz-timer.color-empty{border-color:#e5554e;color:#e5554e}.llms-quiz-timer .llms-tiles{display:inline-block;margin-right:5px}.voucher-expand{display:none}@media all and (min-width: 600px){.llms-access-plans.cols-1 .llms-access-plan{width:100%}.llms-access-plans.cols-2 .llms-access-plan{width:50%}.llms-access-plans.cols-3 .llms-access-plan{width:33.3333333333%}.llms-access-plans.cols-4 .llms-access-plan{width:25%}.llms-access-plans.cols-5 .llms-access-plan{width:20%}}.llms-free-enroll-form{margin-bottom:0}.llms-access-plan{-webkit-box-sizing:border-box;box-sizing:border-box;float:right;text-align:center;width:100%}.llms-access-plan .llms-access-plan-footer,.llms-access-plan .llms-access-plan-content{background:#f1f1f1}.llms-access-plan.featured .llms-access-plan-featured{background:#4ba9ff}.llms-access-plan.featured .llms-access-plan-footer,.llms-access-plan.featured .llms-access-plan-content{border-right:3px solid #2295ff;border-left:3px solid #2295ff}.llms-access-plan.featured .llms-access-plan-footer{border-bottom-color:#2295ff}.llms-access-plan.on-sale .price-regular{text-decoration:line-through}.llms-access-plan .stamp{background:#2295ff;color:#fff;font-size:11px;font-style:normal;font-weight:300;padding:2px 3px;vertical-align:top}.llms-access-plan .llms-access-plan-restrictions ul{margin:0}.llms-access-plan-featured{color:#fff;font-size:14px;font-weight:400;margin:0 2px 0 2px}.llms-access-plan-content{margin:0 2px 0}.llms-access-plan-content .llms-access-plan-pricing{padding:10px 0 0}.llms-access-plan-title{background:#2295ff;color:#fff;margin-bottom:0;padding:10px}.llms-access-plan-pricing .llms-price-currency-symbol{font-size:14px;vertical-align:top}.llms-access-plan-price{font-size:18px;font-variant:small-caps;line-height:20px}.llms-access-plan-price .lifterlms-price{font-weight:700}.llms-access-plan-price.sale{padding:5px 0;border-top:1px solid #d0d0d0;border-bottom:1px solid #d0d0d0}.llms-access-plan-trial,.llms-access-plan-schedule,.llms-access-plan-sale-end,.llms-access-plan-expiration{font-size:15px;font-variant:small-caps;line-height:1.2}.llms-access-plan-description{font-size:16px;padding:10px 10px 0}.llms-access-plan-description ul{margin:0}.llms-access-plan-description ul li{border-bottom:1px solid #d0d0d0;list-style-type:none}.llms-access-plan-description ul li:last-child{border-bottom:none}.llms-access-plan-description div:last-child,.llms-access-plan-description img:last-child,.llms-access-plan-description p:last-child,.llms-access-plan-description ul:last-child,.llms-access-plan-description li:last-child{margin-bottom:0}.llms-access-plan-restrictions .stamp{vertical-align:baseline}.llms-access-plan-restrictions ul{margin:0}.llms-access-plan-restrictions ul li{font-size:12px;line-height:14px;list-style-type:none}.llms-access-plan-restrictions a{color:#f8954f}.llms-access-plan-restrictions a:hover{color:#f67d28}.llms-access-plan-footer{border-bottom:3px solid #f1f1f1;padding:10px;margin:0 2px 2px 2px}.llms-access-plan-footer .llms-access-plan-pricing{padding:0 0 10px}.webui-popover-content .llms-members-only-restrictions{text-align:center}.webui-popover-content .llms-members-only-restrictions ul,.webui-popover-content .llms-members-only-restrictions ol,.webui-popover-content .llms-members-only-restrictions li,.webui-popover-content .llms-members-only-restrictions p{margin:0;padding:0}.webui-popover-content .llms-members-only-restrictions ul,.webui-popover-content .llms-members-only-restrictions ol,.webui-popover-content .llms-members-only-restrictions li{list-style-type:none}.webui-popover-content .llms-members-only-restrictions li{padding:8px 0;border-top:1px solid #3b3b3b}.webui-popover-content .llms-members-only-restrictions li:first-child{border-top:none}.webui-popover-content .llms-members-only-restrictions li a{display:block}.llms-checkout-wrapper form.llms-login{border:3px solid #2295ff;display:none;margin-bottom:10px}.llms-checkout-wrapper .llms-form-heading{background:#2295ff;color:#fff;margin:0 0 5px;padding:10px}.llms-checkout{background:#fff;position:relative}@media all and (min-width: 800px){.llms-checkout-cols-2 .llms-checkout-col{float:right}.llms-checkout-cols-2 .llms-checkout-col.llms-col-1{margin-left:5px;width:calc(58% - 5px)}.llms-checkout-cols-2 .llms-checkout-col.llms-col-2{margin-right:5px;width:calc(42% - 5px)}.llms-checkout-cols-2 .llms-checkout-col.llms-col-2 button{width:100%}}.llms-checkout-section{border:3px solid #2295ff;margin-bottom:10px;position:relative}.llms-checkout-section-content{margin:10px}.llms-checkout-section-content.llms-form-fields{margin:0px}.llms-checkout-section-content .llms-label{font-weight:400;font-variant:small-caps;text-transform:lowercase}.llms-checkout-section-content .llms-order-summary{list-style-type:none;margin:0;padding:0}.llms-checkout-section-content .llms-order-summary li{list-style-type:none}.llms-checkout-section-content .llms-order-summary li.llms-pricing.on-sale .price-regular,.llms-checkout-section-content .llms-order-summary li.llms-pricing.has-coupon .price-regular{text-decoration:line-through}.llms-checkout-section-content .llms-coupon-wrapper{border-top:1px solid #dadada;margin-top:10px;padding-top:10px}.llms-checkout-section-content .llms-coupon-wrapper .llms-coupon-entry{display:none;margin-top:10px}.llms-form-field.llms-payment-gateway-option label+span.llms-description{display:inline-block;margin-right:5px}.llms-form-field.llms-payment-gateway-option .llms-description a{border:none;-webkit-box-shadow:none;box-shadow:none;text-decoration:none}.llms-form-field.llms-payment-gateway-option .llms-description img{display:inline;max-height:22px;vertical-align:middle}.llms-checkout-wrapper ul.llms-payment-gateways{margin:5px 0 0;padding:0}ul.llms-payment-gateways{list-style-type:none}ul.llms-payment-gateways li:last-child:after{border-bottom:1px solid #dadada;content:"";display:block;margin:10px}ul.llms-payment-gateways .llms-payment-gateway{margin-bottom:5px;list-style-type:none}ul.llms-payment-gateways .llms-payment-gateway:last-child{margin-bottom:none}ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-payment-gateway-option label{font-weight:700}ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields{display:block}ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields .llms-notice{margin-right:10px;margin-left:10px}ul.llms-payment-gateways .llms-payment-gateway .llms-form-field{padding-bottom:0}ul.llms-payment-gateways .llms-gateway-description{margin-right:40px}ul.llms-payment-gateways .llms-gateway-fields{display:none;margin:5px 0 20px}ul.llms-payment-gateways .llms-payment-gateway-error{padding:0 10px}.llms-checkout-confirm{margin:0 10px}.llms-payment-method{margin:10px 10px 0}.llms-gateway-description p{font-size:85%;font-style:italic;margin-bottom:0}.llms-form-fields{-webkit-box-sizing:border-box;box-sizing:border-box}.llms-form-fields *{-webkit-box-sizing:border-box;box-sizing:border-box}.llms-form-fields.flush .llms-form-field{padding:0 0 10px}.llms-form-fields .wp-block-columns,.llms-form-fields .wp-block-column{margin-bottom:0}.llms-form-heading{padding:0 10px 10px}.llms-form-field{float:right;padding:0 10px 10px;position:relative;width:100%}.llms-form-field label:empty:after{content:" "}.llms-form-field.valid input[type=date],.llms-form-field.valid input[type=time],.llms-form-field.valid input[type=datetime-local],.llms-form-field.valid input[type=week],.llms-form-field.valid input[type=month],.llms-form-field.valid input[type=text],.llms-form-field.valid input[type=email],.llms-form-field.valid input[type=url],.llms-form-field.valid input[type=password],.llms-form-field.valid input[type=search],.llms-form-field.valid input[type=tel],.llms-form-field.valid input[type=number],.llms-form-field.valid textarea,.llms-form-field.valid select{background:rgba(131,195,115,.3);border-color:#83c373}.llms-form-field.error input[type=date],.llms-form-field.error input[type=time],.llms-form-field.error input[type=datetime-local],.llms-form-field.error input[type=week],.llms-form-field.error input[type=month],.llms-form-field.error input[type=text],.llms-form-field.error input[type=email],.llms-form-field.error input[type=url],.llms-form-field.error input[type=password],.llms-form-field.error input[type=search],.llms-form-field.error input[type=tel],.llms-form-field.error input[type=number],.llms-form-field.error textarea,.llms-form-field.error select,.llms-form-field.invalid input[type=date],.llms-form-field.invalid input[type=time],.llms-form-field.invalid input[type=datetime-local],.llms-form-field.invalid input[type=week],.llms-form-field.invalid input[type=month],.llms-form-field.invalid input[type=text],.llms-form-field.invalid input[type=email],.llms-form-field.invalid input[type=url],.llms-form-field.invalid input[type=password],.llms-form-field.invalid input[type=search],.llms-form-field.invalid input[type=tel],.llms-form-field.invalid input[type=number],.llms-form-field.invalid textarea,.llms-form-field.invalid select{background:rgba(229,85,78,.3);border-color:#e5554e}.llms-form-field.llms-visually-hidden-field{display:none}.llms-form-field.align-right{text-align:left}@media screen and (min-width: 600px){.llms-form-field.llms-cols-1{width:8.3333333333%}.llms-form-field.llms-cols-2{width:16.6666666667%}.llms-form-field.llms-cols-3{width:25%}.llms-form-field.llms-cols-4{width:33.3333333333%}.llms-form-field.llms-cols-5{width:41.6666666667%}.llms-form-field.llms-cols-6{width:50%}.llms-form-field.llms-cols-7{width:58.3333333333%}.llms-form-field.llms-cols-8{width:66.6666666667%}.llms-form-field.llms-cols-9{width:75%}.llms-form-field.llms-cols-10{width:83.3333333333%}.llms-form-field.llms-cols-11{width:91.6666666667%}.llms-form-field.llms-cols-12{width:100%}}.llms-form-field.type-hidden{padding:0}.llms-form-field.type-radio input,.llms-form-field.type-radio label,.llms-form-field.type-checkbox input,.llms-form-field.type-checkbox label{display:inline-block;width:auto}.llms-form-field.type-radio input,.llms-form-field.type-checkbox input{margin-left:5px}.llms-form-field.type-radio label+.llms-description,.llms-form-field.type-checkbox label+.llms-description{display:block}.llms-form-field.type-radio:not(.is-group) input[type=radio]{position:absolute;opacity:0;visibility:none}.llms-form-field.type-radio:not(.is-group) label:before{background:#fafafa;background-position:-24px 0;background-repeat:no-repeat;border-radius:50%;-webkit-box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.35) 0 0 0 1px;box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.35) 0 0 0 1px;content:"";cursor:pointer;display:inline-block;height:22px;margin-left:5px;position:relative;-webkit-transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);top:-3px;vertical-align:middle;width:22px;z-index:2}.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked+label:before{-webkit-transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);background-position:100% 0;background-image:radial-gradient(ellipse at center, #2295ff 0%, #2295ff 40%, #fafafa 45%)}.llms-form-field .llms-input-group{margin-top:5px}.llms-form-field .llms-input-group .llms-form-field{padding:0 5px 5px 0}.llms-form-field.type-reset button:not(.auto),.llms-form-field.type-button button:not(.auto),.llms-form-field.type-submit button:not(.auto){width:100%}.llms-form-field .llms-description{font-size:14px;font-style:italic}.llms-form-field .llms-required{color:#e5554e;margin-right:4px}.llms-form-field input,.llms-form-field textarea,.llms-form-field select{width:100%;margin-bottom:5px}.llms-form-field .select2-container .select2-selection--single{height:auto;padding:4px 6px}.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%}.llms-password-strength-meter{border:1px solid #dadada;display:none;font-size:10px;margin-top:-10px;padding:1px;position:relative;text-align:center}.llms-password-strength-meter:before{bottom:0;content:"";right:0;position:absolute;top:0;-webkit-transition:width .4s ease;transition:width .4s ease}.llms-password-strength-meter.mismatch,.llms-password-strength-meter.too-short,.llms-password-strength-meter.very-weak{border-color:#e35b5b}.llms-password-strength-meter.mismatch:before,.llms-password-strength-meter.too-short:before,.llms-password-strength-meter.very-weak:before{background:rgba(227,91,91,.25);width:25%}.llms-password-strength-meter.too-short:before{width:0}.llms-password-strength-meter.weak{border-color:#f78b53}.llms-password-strength-meter.weak:before{background:rgba(247,139,83,.25);width:50%}.llms-password-strength-meter.medium{border-color:#ffc733}.llms-password-strength-meter.medium:before{background:rgba(255,199,51,.25);width:75%}.llms-password-strength-meter.strong{border-color:#83c373}.llms-password-strength-meter.strong:before{background:rgba(131,195,115,.25);width:100%}.llms-widget-syllabus--collapsible .llms-section .section-header{cursor:pointer}.llms-widget-syllabus--collapsible .llms-section.llms-section--opened .llms-collapse-caret .fa-caret-right{display:none}.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-collapse-caret .fa-caret-down{display:none}.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-lesson{display:none}.llms-widget-syllabus--collapsible .llms-syllabus-footer{text-align:right}.llms-student-dashboard .llms-sd-title{margin:25px 0}.llms-student-dashboard .llms-sd-items{list-style-type:none;margin:0;padding:0}.llms-student-dashboard .llms-sd-item{float:right;list-style-type:none;margin:0;padding:0}.llms-student-dashboard .llms-sd-item:last-child .llms-sep{display:none}.llms-student-dashboard .llms-sd-item .llms-sep{color:#333;margin:0 5px}.llms-student-dashboard .llms-sd-section{margin-bottom:25px}.llms-student-dashboard .llms-sd-section .llms-sd-section-footer{margin-top:10px}.llms-student-dashboard .orders-table{border:1px solid #f5f5f5;width:100%}.llms-student-dashboard .orders-table thead{display:none}.llms-student-dashboard .orders-table thead th,.llms-student-dashboard .orders-table thead td{font-weight:700}@media all and (min-width: 600px){.llms-student-dashboard .orders-table thead{display:table-header-group}}.llms-student-dashboard .orders-table tbody tr:nth-child(even) td,.llms-student-dashboard .orders-table tbody tr:nth-child(even) th{background:#f9f9f9}.llms-student-dashboard .orders-table tfoot th,.llms-student-dashboard .orders-table tfoot td{padding:10px;text-align:left}.llms-student-dashboard .orders-table tfoot th:last-child,.llms-student-dashboard .orders-table tfoot td:last-child{border-bottom-width:0}.llms-student-dashboard .orders-table th{font-weight:700}.llms-student-dashboard .orders-table th,.llms-student-dashboard .orders-table td{border-color:#efefef;border-style:solid;border-width:0;display:block;padding:8px 12px;text-align:center}.llms-student-dashboard .orders-table th .llms-button-primary,.llms-student-dashboard .orders-table td .llms-button-primary{display:inline-block}.llms-student-dashboard .orders-table th:last-child,.llms-student-dashboard .orders-table td:last-child{border-bottom-width:1px}.llms-student-dashboard .orders-table th:before,.llms-student-dashboard .orders-table td:before{content:attr(data-label)}@media all and (min-width: 600px){.llms-student-dashboard .orders-table th,.llms-student-dashboard .orders-table td{border-bottom-width:1px;display:table-cell;text-align:right}.llms-student-dashboard .orders-table th:first-child,.llms-student-dashboard .orders-table td:first-child{width:220px}.llms-student-dashboard .orders-table th:before,.llms-student-dashboard .orders-table td:before{display:none}}@media all and (min-width: 600px){.llms-student-dashboard .orders-table.transactions th:first-child{width:auto}}.llms-student-dashboard .llms-status{border-radius:3px;border-bottom:1px solid #fff;display:inline-block;font-size:80%;padding:3px 6px;vertical-align:middle}.llms-student-dashboard .llms-status.llms-size--large{font-size:105%;padding:6px 12px}.llms-student-dashboard .llms-status.llms-active,.llms-student-dashboard .llms-status.llms-completed,.llms-student-dashboard .llms-status.llms-pass,.llms-student-dashboard .llms-status.llms-txn-succeeded{color:#1f3818;background-color:#83c373}.llms-student-dashboard .llms-status.llms-fail,.llms-student-dashboard .llms-status.llms-failed,.llms-student-dashboard .llms-status.llms-expired,.llms-student-dashboard .llms-status.llms-cancelled,.llms-student-dashboard .llms-status.llms-txn-failed{color:#5a110d;background-color:#e5554e}.llms-student-dashboard .llms-status.llms-incomplete,.llms-student-dashboard .llms-status.llms-on-hold,.llms-student-dashboard .llms-status.llms-pending,.llms-student-dashboard .llms-status.llms-pending-cancel,.llms-student-dashboard .llms-status.llms-refunded,.llms-student-dashboard .llms-status.llms-txn-pending,.llms-student-dashboard .llms-status.llms-txn-refunded{color:#664200;background-color:orange}.llms-student-dashboard .llms-person-form-wrapper .llms-change-password{display:none}@media all and (min-width: 600px){.llms-student-dashboard .order-primary{float:right;width:68%}}@media all and (min-width: 600px){.llms-student-dashboard .order-secondary{float:right;width:32%}}.llms-student-dashboard .order-secondary form{margin-bottom:0}@media all and (min-width: 600px){.llms-student-dashboard .llms-view-order.llms-stack-cols .order-primary,.llms-student-dashboard .llms-view-order.llms-stack-cols .order-secondary{float:none;width:100%}}.llms-student-dashboard .llms-switch-payment-source .llms-notice,.llms-student-dashboard .llms-switch-payment-source .entry-content .llms-notice{margin-right:10px;margin-left:10px}.llms-student-dashboard .llms-switch-payment-source-main{border:none;display:none;margin:0}.llms-student-dashboard .llms-switch-payment-source-main ul.llms-payment-gateways{padding:10px 15px 0;margin:0}.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method,.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary{padding:0 25px 10px;margin:0;list-style-type:none}.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method li,.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary li{list-style-type:none}.llms-student-dashboard .llms-loop-list{margin:0 -10px}.llms-sd-grades .llms-table .llms-progress{display:block;margin:0}.llms-sd-grades .llms-table .llms-progress .llms-progress-bar{top:0;height:1.4em}.llms-sd-grades .llms-table .llms-progress .progress__indicator{font-size:1em;position:relative;left:.4em;top:.2em;z-index:1}.llms-table.llms-single-course-grades tbody tr:first-child td,.llms-table.llms-single-course-grades tbody tr:first-child th{background-color:#eaeaea}.llms-table.llms-single-course-grades th{font-weight:400}.llms-table.llms-single-course-grades td .llms-donut{display:inline-block;vertical-align:middle}.llms-table.llms-single-course-grades td .llms-status{margin-left:4px}.llms-table.llms-single-course-grades td .llms-donut+.llms-status{margin-right:4px}.llms-table.llms-single-course-grades th.llms-section_title{font-size:110%;font-weight:700}.llms-table.llms-single-course-grades td.llms-lesson_title{padding-right:36px;max-width:40%}.llms-table.llms-single-course-grades td.llms-associated_quiz .llms-donut{display:inline-block;margin-left:5px;vertical-align:middle}.llms-table.llms-single-course-grades td.llms-lesson_title a[href="#"]{pointer-events:none}.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"]{color:inherit;position:relative}.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"] .llms-tooltip{max-width:380px;width:380px}.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"] .llms-tooltip.show{top:-54px}.llms-sd-widgets{display:-webkit-box;display:-ms-flexbox;display:flex}.llms-sd-widgets .llms-sd-widget{background:#f9f9f9;-webkit-box-flex:1;-ms-flex:1;flex:1;margin:10px 10px 20px;padding:0 0 20px}.llms-sd-widgets .llms-sd-widget:first-child{margin-right:0}.llms-sd-widgets .llms-sd-widget:last-child{margin-left:0}.llms-sd-widgets .llms-sd-widget .llms-sd-widget-title{background:#2295ff;color:#fff;font-size:18px;line-height:1;margin:0 0 20px;padding:10px}.llms-sd-widgets .llms-sd-widget .llms-sd-widget-empty{font-size:14px;font-style:italic;opacity:.5;text-align:center}.llms-sd-widgets .llms-sd-widget .llms-donut{margin:0 auto}.llms-sd-widgets .llms-sd-widget .llms-sd-date{opacity:.8;text-align:center;font-size:22px;line-height:1.1}.llms-sd-widgets .llms-sd-widget .llms-sd-date span{display:block}.llms-sd-widgets .llms-sd-widget .llms-sd-date span.day{font-size:52px}.llms-sd-widgets .llms-sd-widget .llms-sd-date span.diff{font-size:12px;font-style:italic;margin-top:8px;opacity:.75}.llms-sd-widgets .llms-sd-widget .llms-achievement{background:transparent;margin:0 auto;max-width:120px}.llms-sd-widgets .llms-sd-widget .llms-achievement .llms-achievement-title{display:none}.llms-sd-pagination{margin-top:24px}.llms-sd-pagination:before,.llms-sd-pagination:after{content:" ";display:table}.llms-sd-pagination:after{clear:both}.llms-sd-pagination .llms-button-secondary{display:inline-block}.llms-sd-pagination .llms-button-secondary.prev{float:right}.llms-sd-pagination .llms-button-secondary.next{float:left}.llms-sd-notification-center .llms-notification{z-index:1}.llms-table{border:1px solid #efefef;width:100%}.llms-table thead th,.llms-table thead td{font-weight:700}.llms-table tbody tr:nth-child(odd) td,.llms-table tbody tr:nth-child(odd) th{background:#f9f9f9}.llms-table tbody tr:last-child{border-bottom-width:0}.llms-table tfoot tr{background:#f9f9f9}.llms-table tfoot tr .llms-pagination .page-numbers{margin:0}.llms-table tfoot tr .llms-table-sort{text-align:left}.llms-table tfoot tr .llms-table-sort form,.llms-table tfoot tr .llms-table-sort select,.llms-table tfoot tr .llms-table-sort input,.llms-table tfoot tr .llms-table-sort button{margin:0}.llms-table th{font-weight:700}.llms-table th,.llms-table td{border-bottom:1px solid #efefef;padding:8px 12px}.llms-table th:first-child,.llms-table td:first-child{padding-right:12px}.llms-table th:last-child,.llms-table td:last-child{padding-left:12px}#page .llms-table tfoot label{display:inline}#page .llms-table tfoot select{height:auto}/*!
+.llms-pagination ul:before,.llms-pagination ul:after,.llms-student-dashboard .llms-sd-items:before,.llms-form-fields:before,.llms-checkout-cols-2:before,.llms-access-plans:before,.llms-course-navigation:before,.llms-loop-list:before,.llms-cols:before,.llms-student-dashboard .llms-sd-items:after,.llms-form-fields:after,.llms-checkout-cols-2:after,.llms-access-plans:after,.llms-course-navigation:after,.llms-loop-list:after,.llms-cols:after{content:" ";display:table}.llms-pagination ul:after,.llms-student-dashboard .llms-sd-items:after,.llms-form-fields:after,.llms-checkout-cols-2:after,.llms-access-plans:after,.llms-course-navigation:after,.llms-loop-list:after,.llms-cols:after{clear:both}.llms-cols .llms-col{width:100%}@media all and (min-width: 600px){.llms-cols [class*=llms-col-]{float:right}}.llms-flex-cols{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.llms-flex-cols [class*=llms-col]{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;width:100%}@media all and (min-width: 600px){.llms-cols .llms-col-1,.llms-flex-cols .llms-col-1{width:100%}.llms-cols .llms-col-2,.llms-flex-cols .llms-col-2{width:50%}.llms-cols .llms-col-3,.llms-flex-cols .llms-col-3{width:33.3333333333%}.llms-cols .llms-col-4,.llms-flex-cols .llms-col-4{width:25%}.llms-cols .llms-col-5,.llms-flex-cols .llms-col-5{width:20%}.llms-cols .llms-col-6,.llms-flex-cols .llms-col-6{width:16.6666666667%}.llms-cols .llms-col-7,.llms-flex-cols .llms-col-7{width:14.2857142857%}.llms-cols .llms-col-8,.llms-flex-cols .llms-col-8{width:12.5%}.llms-cols .llms-col-9,.llms-flex-cols .llms-col-9{width:11.1111111111%}.llms-cols .llms-col-10,.llms-flex-cols .llms-col-10{width:10%}.llms-cols .llms-col-11,.llms-flex-cols .llms-col-11{width:9.0909090909%}.llms-cols .llms-col-12,.llms-flex-cols .llms-col-12{width:8.3333333333%}}.llms-button-action,.llms-button-danger,.llms-button-primary,.llms-button-secondary{border:none;border-radius:0;color:#fefefe;cursor:pointer;font-size:16px;font-weight:300;text-decoration:none;text-shadow:none;line-height:1;margin:0;max-width:100%;padding:12px 24px;position:relative;-webkit-transition:all .5s ease;transition:all .5s ease}.llms-button-action:disabled,.llms-button-danger:disabled,.llms-button-primary:disabled,.llms-button-secondary:disabled{opacity:.5}.llms-button-action:hover,.llms-button-action:active,.llms-button-danger:hover,.llms-button-danger:active,.llms-button-primary:hover,.llms-button-primary:active,.llms-button-secondary:hover,.llms-button-secondary:active{color:#fefefe}.llms-button-action:focus,.llms-button-danger:focus,.llms-button-primary:focus,.llms-button-secondary:focus{color:#fefefe}.llms-button-action.auto,.llms-button-danger.auto,.llms-button-primary.auto,.llms-button-secondary.auto{width:auto}.llms-button-action.full,.llms-button-danger.full,.llms-button-primary.full,.llms-button-secondary.full{display:block;text-align:center;width:100%}.llms-button-action.square,.llms-button-danger.square,.llms-button-primary.square,.llms-button-secondary.square{padding:12px}.llms-button-action.small,.llms-button-danger.small,.llms-button-primary.small,.llms-button-secondary.small{font-size:13px;padding:8px 14px}.llms-button-action.small.square,.llms-button-danger.small.square,.llms-button-primary.small.square,.llms-button-secondary.small.square{padding:8px}.llms-button-action.large,.llms-button-danger.large,.llms-button-primary.large,.llms-button-secondary.large{font-size:18px;line-height:1.2;padding:16px 32px}.llms-button-action.large.square,.llms-button-danger.large.square,.llms-button-primary.large.square,.llms-button-secondary.large.square{padding:16px}.llms-button-action.large .fa,.llms-button-danger.large .fa,.llms-button-primary.large .fa,.llms-button-secondary.large .fa{right:-7px;position:relative}.llms-button-primary{background:#2295ff}.llms-button-primary:hover,.llms-button-primary.clicked{background:#0077e4}.llms-button-primary:focus,.llms-button-primary:active{background:#4ba9ff}.llms-button-secondary{background:#e1e1e1;color:#414141}.llms-button-secondary:hover{color:#414141;background:#cdcdcd}.llms-button-secondary:focus,.llms-button-secondary:active{color:#414141;background:#ebebeb}.llms-button-action{background:#f8954f}.llms-button-action:hover,.llms-button-action.clicked{background:#f67d28}.llms-button-action:focus,.llms-button-action:active{background:#faad76}.llms-button-danger{background:#e5554e}.llms-button-danger:hover{background:#e0332a}.llms-button-danger:focus,.llms-button-danger:active{background:#e86660}.llms-donut{background-color:#f1f1f1;background-image:none;border-radius:50%;color:#ef476f;height:200px;overflow:hidden;position:relative;width:200px}.llms-donut:before,.llms-donut:after{content:" ";display:table}.llms-donut:after{clear:both}.llms-donut svg{overflow:visible !important;pointer-events:none;width:100%}.llms-donut svg path{fill:none;stroke-width:35px;stroke:#ef476f}.llms-donut.mini{height:36px;width:36px}.llms-donut.mini .percentage{font-size:10px}.llms-donut.small{height:100px;width:100px}.llms-donut.small .percentage{font-size:18px}.llms-donut.medium{height:130px;width:130px}.llms-donut.medium .percentage{font-size:26px}.llms-donut.large{height:260px;width:260px}.llms-donut.large .percentage{font-size:48px}.llms-donut .inside{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#fff;border-radius:50%;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;height:80%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;right:50%;position:absolute;text-align:center;-webkit-transform:translate(50%, -50%);transform:translate(50%, -50%);width:80%;top:50%;z-index:3}.llms-donut .percentage{line-height:1.2;font-size:34px}.llms-donut .caption{font-size:50%}.lifterlms [data-tip],.lifterlms [data-title-default],.lifterlms [data-title-active],.llms-metabox [data-tip],.llms-metabox [data-title-default],.llms-metabox [data-title-active],.llms-mb-container [data-tip],.llms-mb-container [data-title-default],.llms-mb-container [data-title-active],.llms-quiz-wrapper [data-tip],.llms-quiz-wrapper [data-title-default],.llms-quiz-wrapper [data-title-active]{position:relative}.lifterlms [data-tip].tip--top-right:before,.lifterlms [data-title-default].tip--top-right:before,.lifterlms [data-title-active].tip--top-right:before,.llms-metabox [data-tip].tip--top-right:before,.llms-metabox [data-title-default].tip--top-right:before,.llms-metabox [data-title-active].tip--top-right:before,.llms-mb-container [data-tip].tip--top-right:before,.llms-mb-container [data-title-default].tip--top-right:before,.llms-mb-container [data-title-active].tip--top-right:before,.llms-quiz-wrapper [data-tip].tip--top-right:before,.llms-quiz-wrapper [data-title-default].tip--top-right:before,.llms-quiz-wrapper [data-title-active].tip--top-right:before{bottom:100%;right:-10px}.lifterlms [data-tip].tip--top-right:hover:before,.lifterlms [data-title-default].tip--top-right:hover:before,.lifterlms [data-title-active].tip--top-right:hover:before,.llms-metabox [data-tip].tip--top-right:hover:before,.llms-metabox [data-title-default].tip--top-right:hover:before,.llms-metabox [data-title-active].tip--top-right:hover:before,.llms-mb-container [data-tip].tip--top-right:hover:before,.llms-mb-container [data-title-default].tip--top-right:hover:before,.llms-mb-container [data-title-active].tip--top-right:hover:before,.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before{bottom:calc(100% + 6px)}.lifterlms [data-tip].tip--top-right:after,.lifterlms [data-title-default].tip--top-right:after,.lifterlms [data-title-active].tip--top-right:after,.llms-metabox [data-tip].tip--top-right:after,.llms-metabox [data-title-default].tip--top-right:after,.llms-metabox [data-title-active].tip--top-right:after,.llms-mb-container [data-tip].tip--top-right:after,.llms-mb-container [data-title-default].tip--top-right:after,.llms-mb-container [data-title-active].tip--top-right:after,.llms-quiz-wrapper [data-tip].tip--top-right:after,.llms-quiz-wrapper [data-title-default].tip--top-right:after,.llms-quiz-wrapper [data-title-active].tip--top-right:after{border-top-color:#444;right:6px;top:0}.lifterlms [data-tip].tip--top-right:hover:after,.lifterlms [data-title-default].tip--top-right:hover:after,.lifterlms [data-title-active].tip--top-right:hover:after,.llms-metabox [data-tip].tip--top-right:hover:after,.llms-metabox [data-title-default].tip--top-right:hover:after,.llms-metabox [data-title-active].tip--top-right:hover:after,.llms-mb-container [data-tip].tip--top-right:hover:after,.llms-mb-container [data-title-default].tip--top-right:hover:after,.llms-mb-container [data-title-active].tip--top-right:hover:after,.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after{top:-6px}.lifterlms [data-tip].tip--top-left:before,.lifterlms [data-title-default].tip--top-left:before,.lifterlms [data-title-active].tip--top-left:before,.llms-metabox [data-tip].tip--top-left:before,.llms-metabox [data-title-default].tip--top-left:before,.llms-metabox [data-title-active].tip--top-left:before,.llms-mb-container [data-tip].tip--top-left:before,.llms-mb-container [data-title-default].tip--top-left:before,.llms-mb-container [data-title-active].tip--top-left:before,.llms-quiz-wrapper [data-tip].tip--top-left:before,.llms-quiz-wrapper [data-title-default].tip--top-left:before,.llms-quiz-wrapper [data-title-active].tip--top-left:before{bottom:100%;left:-10px}.lifterlms [data-tip].tip--top-left:hover:before,.lifterlms [data-title-default].tip--top-left:hover:before,.lifterlms [data-title-active].tip--top-left:hover:before,.llms-metabox [data-tip].tip--top-left:hover:before,.llms-metabox [data-title-default].tip--top-left:hover:before,.llms-metabox [data-title-active].tip--top-left:hover:before,.llms-mb-container [data-tip].tip--top-left:hover:before,.llms-mb-container [data-title-default].tip--top-left:hover:before,.llms-mb-container [data-title-active].tip--top-left:hover:before,.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before{bottom:calc(100% + 6px)}.lifterlms [data-tip].tip--top-left:after,.lifterlms [data-title-default].tip--top-left:after,.lifterlms [data-title-active].tip--top-left:after,.llms-metabox [data-tip].tip--top-left:after,.llms-metabox [data-title-default].tip--top-left:after,.llms-metabox [data-title-active].tip--top-left:after,.llms-mb-container [data-tip].tip--top-left:after,.llms-mb-container [data-title-default].tip--top-left:after,.llms-mb-container [data-title-active].tip--top-left:after,.llms-quiz-wrapper [data-tip].tip--top-left:after,.llms-quiz-wrapper [data-title-default].tip--top-left:after,.llms-quiz-wrapper [data-title-active].tip--top-left:after{border-top-color:#444;left:6px;top:0}.lifterlms [data-tip].tip--top-left:hover:after,.lifterlms [data-title-default].tip--top-left:hover:after,.lifterlms [data-title-active].tip--top-left:hover:after,.llms-metabox [data-tip].tip--top-left:hover:after,.llms-metabox [data-title-default].tip--top-left:hover:after,.llms-metabox [data-title-active].tip--top-left:hover:after,.llms-mb-container [data-tip].tip--top-left:hover:after,.llms-mb-container [data-title-default].tip--top-left:hover:after,.llms-mb-container [data-title-active].tip--top-left:hover:after,.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after{top:-6px}.lifterlms [data-tip].tip--bottom-left:before,.lifterlms [data-title-default].tip--bottom-left:before,.lifterlms [data-title-active].tip--bottom-left:before,.llms-metabox [data-tip].tip--bottom-left:before,.llms-metabox [data-title-default].tip--bottom-left:before,.llms-metabox [data-title-active].tip--bottom-left:before,.llms-mb-container [data-tip].tip--bottom-left:before,.llms-mb-container [data-title-default].tip--bottom-left:before,.llms-mb-container [data-title-active].tip--bottom-left:before,.llms-quiz-wrapper [data-tip].tip--bottom-left:before,.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,.llms-quiz-wrapper [data-title-active].tip--bottom-left:before{top:100%;left:-10px}.lifterlms [data-tip].tip--bottom-left:hover:before,.lifterlms [data-title-default].tip--bottom-left:hover:before,.lifterlms [data-title-active].tip--bottom-left:hover:before,.llms-metabox [data-tip].tip--bottom-left:hover:before,.llms-metabox [data-title-default].tip--bottom-left:hover:before,.llms-metabox [data-title-active].tip--bottom-left:hover:before,.llms-mb-container [data-tip].tip--bottom-left:hover:before,.llms-mb-container [data-title-default].tip--bottom-left:hover:before,.llms-mb-container [data-title-active].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before{top:calc(100% + 6px)}.lifterlms [data-tip].tip--bottom-left:after,.lifterlms [data-title-default].tip--bottom-left:after,.lifterlms [data-title-active].tip--bottom-left:after,.llms-metabox [data-tip].tip--bottom-left:after,.llms-metabox [data-title-default].tip--bottom-left:after,.llms-metabox [data-title-active].tip--bottom-left:after,.llms-mb-container [data-tip].tip--bottom-left:after,.llms-mb-container [data-title-default].tip--bottom-left:after,.llms-mb-container [data-title-active].tip--bottom-left:after,.llms-quiz-wrapper [data-tip].tip--bottom-left:after,.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,.llms-quiz-wrapper [data-title-active].tip--bottom-left:after{border-bottom-color:#444;left:6px;bottom:0}.lifterlms [data-tip].tip--bottom-left:hover:after,.lifterlms [data-title-default].tip--bottom-left:hover:after,.lifterlms [data-title-active].tip--bottom-left:hover:after,.llms-metabox [data-tip].tip--bottom-left:hover:after,.llms-metabox [data-title-default].tip--bottom-left:hover:after,.llms-metabox [data-title-active].tip--bottom-left:hover:after,.llms-mb-container [data-tip].tip--bottom-left:hover:after,.llms-mb-container [data-title-default].tip--bottom-left:hover:after,.llms-mb-container [data-title-active].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after{bottom:-6px}.lifterlms [data-tip].tip--bottom-right:before,.lifterlms [data-title-default].tip--bottom-right:before,.lifterlms [data-title-active].tip--bottom-right:before,.llms-metabox [data-tip].tip--bottom-right:before,.llms-metabox [data-title-default].tip--bottom-right:before,.llms-metabox [data-title-active].tip--bottom-right:before,.llms-mb-container [data-tip].tip--bottom-right:before,.llms-mb-container [data-title-default].tip--bottom-right:before,.llms-mb-container [data-title-active].tip--bottom-right:before,.llms-quiz-wrapper [data-tip].tip--bottom-right:before,.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,.llms-quiz-wrapper [data-title-active].tip--bottom-right:before{top:100%;right:-10px}.lifterlms [data-tip].tip--bottom-right:hover:before,.lifterlms [data-title-default].tip--bottom-right:hover:before,.lifterlms [data-title-active].tip--bottom-right:hover:before,.llms-metabox [data-tip].tip--bottom-right:hover:before,.llms-metabox [data-title-default].tip--bottom-right:hover:before,.llms-metabox [data-title-active].tip--bottom-right:hover:before,.llms-mb-container [data-tip].tip--bottom-right:hover:before,.llms-mb-container [data-title-default].tip--bottom-right:hover:before,.llms-mb-container [data-title-active].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before{top:calc(100% + 6px)}.lifterlms [data-tip].tip--bottom-right:after,.lifterlms [data-title-default].tip--bottom-right:after,.lifterlms [data-title-active].tip--bottom-right:after,.llms-metabox [data-tip].tip--bottom-right:after,.llms-metabox [data-title-default].tip--bottom-right:after,.llms-metabox [data-title-active].tip--bottom-right:after,.llms-mb-container [data-tip].tip--bottom-right:after,.llms-mb-container [data-title-default].tip--bottom-right:after,.llms-mb-container [data-title-active].tip--bottom-right:after,.llms-quiz-wrapper [data-tip].tip--bottom-right:after,.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,.llms-quiz-wrapper [data-title-active].tip--bottom-right:after{border-bottom-color:#444;right:6px;bottom:0}.lifterlms [data-tip].tip--bottom-right:hover:after,.lifterlms [data-title-default].tip--bottom-right:hover:after,.lifterlms [data-title-active].tip--bottom-right:hover:after,.llms-metabox [data-tip].tip--bottom-right:hover:after,.llms-metabox [data-title-default].tip--bottom-right:hover:after,.llms-metabox [data-title-active].tip--bottom-right:hover:after,.llms-mb-container [data-tip].tip--bottom-right:hover:after,.llms-mb-container [data-title-default].tip--bottom-right:hover:after,.llms-mb-container [data-title-active].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after{bottom:-6px}.lifterlms [data-tip]:before,.lifterlms [data-title-default]:before,.lifterlms [data-title-active]:before,.llms-metabox [data-tip]:before,.llms-metabox [data-title-default]:before,.llms-metabox [data-title-active]:before,.llms-mb-container [data-tip]:before,.llms-mb-container [data-title-default]:before,.llms-mb-container [data-title-active]:before,.llms-quiz-wrapper [data-tip]:before,.llms-quiz-wrapper [data-title-default]:before,.llms-quiz-wrapper [data-title-active]:before{background:#444;border-radius:4px;color:#fff;font-size:13px;line-height:1.2;padding:8px;max-width:300px;width:-webkit-max-content;width:-moz-max-content;width:max-content}.lifterlms [data-tip]:after,.lifterlms [data-title-default]:after,.lifterlms [data-title-active]:after,.llms-metabox [data-tip]:after,.llms-metabox [data-title-default]:after,.llms-metabox [data-title-active]:after,.llms-mb-container [data-tip]:after,.llms-mb-container [data-title-default]:after,.llms-mb-container [data-title-active]:after,.llms-quiz-wrapper [data-tip]:after,.llms-quiz-wrapper [data-title-default]:after,.llms-quiz-wrapper [data-title-active]:after{content:"";border:6px solid transparent;height:0;width:0}.lifterlms [data-tip]:before,.lifterlms [data-tip]:after,.lifterlms [data-title-default]:before,.lifterlms [data-title-default]:after,.lifterlms [data-title-active]:before,.lifterlms [data-title-active]:after,.llms-metabox [data-tip]:before,.llms-metabox [data-tip]:after,.llms-metabox [data-title-default]:before,.llms-metabox [data-title-default]:after,.llms-metabox [data-title-active]:before,.llms-metabox [data-title-active]:after,.llms-mb-container [data-tip]:before,.llms-mb-container [data-tip]:after,.llms-mb-container [data-title-default]:before,.llms-mb-container [data-title-default]:after,.llms-mb-container [data-title-active]:before,.llms-mb-container [data-title-active]:after,.llms-quiz-wrapper [data-tip]:before,.llms-quiz-wrapper [data-tip]:after,.llms-quiz-wrapper [data-title-default]:before,.llms-quiz-wrapper [data-title-default]:after,.llms-quiz-wrapper [data-title-active]:before,.llms-quiz-wrapper [data-title-active]:after{opacity:0;-webkit-transition:all .2s .1s ease;transition:all .2s .1s ease;position:absolute;pointer-events:none;visibility:hidden}.lifterlms [data-tip]:hover:before,.lifterlms [data-tip]:hover:after,.lifterlms [data-title-default]:hover:before,.lifterlms [data-title-default]:hover:after,.lifterlms [data-title-active]:hover:before,.lifterlms [data-title-active]:hover:after,.llms-metabox [data-tip]:hover:before,.llms-metabox [data-tip]:hover:after,.llms-metabox [data-title-default]:hover:before,.llms-metabox [data-title-default]:hover:after,.llms-metabox [data-title-active]:hover:before,.llms-metabox [data-title-active]:hover:after,.llms-mb-container [data-tip]:hover:before,.llms-mb-container [data-tip]:hover:after,.llms-mb-container [data-title-default]:hover:before,.llms-mb-container [data-title-default]:hover:after,.llms-mb-container [data-title-active]:hover:before,.llms-mb-container [data-title-active]:hover:after,.llms-quiz-wrapper [data-tip]:hover:before,.llms-quiz-wrapper [data-tip]:hover:after,.llms-quiz-wrapper [data-title-default]:hover:before,.llms-quiz-wrapper [data-title-default]:hover:after,.llms-quiz-wrapper [data-title-active]:hover:before,.llms-quiz-wrapper [data-title-active]:hover:after{opacity:1;-webkit-transition:all .2s .6s ease;transition:all .2s .6s ease;visibility:visible;z-index:99999999}.lifterlms [data-tip]:before,.llms-metabox [data-tip]:before,.llms-mb-container [data-tip]:before,.llms-quiz-wrapper [data-tip]:before{content:attr(data-tip)}.lifterlms [data-tip].active:before,.llms-metabox [data-tip].active:before,.llms-mb-container [data-tip].active:before,.llms-quiz-wrapper [data-tip].active:before{content:attr(data-tip-active)}.llms-membership-image{display:block;margin:0 auto}.llms-course-image{display:block;margin:0 auto;max-width:100%}.llms-featured-image{display:block;margin:0 auto}.llms-image-thumb{width:150px}.llms-video-wrapper .center-video{height:auto;max-width:100%;overflow:hidden;position:relative;padding-top:56.25%;text-align:center}.llms-video-wrapper .center-video>.wp-video,.llms-video-wrapper .center-video .fluid-width-video-wrapper,.llms-video-wrapper .center-video iframe,.llms-video-wrapper .center-video object,.llms-video-wrapper .center-video embed{height:100%;right:0;position:absolute;top:0;width:100%}.llms-video-wrapper .center-video>.wp-video{width:100% !important}.llms-video-wrapper .center-video .fluid-width-video-wrapper{padding-top:0 !important}.clear{clear:both;width:100%}.llms-featured-image{text-align:center}#main-content .llms-payment-options p{margin:0;font-size:16px}.llms-option{display:block;position:relative;margin:20px 0;padding-right:40px;font-size:16px}.llms-option label{cursor:pointer;position:static}.llms-option:first-child{margin-top:0}.llms-option:last-child{margin-bottom:0}#main-content .llms-option:last-child{margin-bottom:0}.llms-option input[type=radio]{display:block;position:absolute;top:3px;right:0;z-index:0}.llms-option input[type=radio]{display:inline-block}.llms-option input[type=radio]+label span.llms-radio{display:none}.llms-option input[type=radio]+label span.llms-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:20;position:absolute;top:0;right:-2px;display:inline-block;width:24px;height:24px;border-radius:50%;cursor:pointer;vertical-align:middle;-webkit-box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.5) 0 0 0 1px;box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.5) 0 0 0 1px;background:#efefef;background-image:radial-gradient(ellipse at center, #e5554e 0%, #e5554e 40%, #efefef 45%);background-repeat:no-repeat;-webkit-transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);transition:background-position .15s cubic-bezier(0.8, 0, 1, 1)}.llms-option input[type=radio]:checked+label span.llms-radio{-webkit-transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1)}.llms-option input[type=radio]+label span.llms-radio{background-position:-24px 0}.llms-option input[type=radio]:checked+label span.llms-radio{background-position:100% 0}.llms-option input[type=submit]{border:none;background:#e5554e;color:#fff;font-size:20px;padding:10px 0;border-radius:3px;cursor:pointer;width:100%}.llms-styled-text{padding:14px 0}.llms-notice-box{border-radius:3px;z-index:10;margin:10px 0;padding:15px 20px;border:1px solid #ccc;list-style-type:none;width:100%;overflow:auto}.llms-notice-box input[type=text]{height:auto}.llms-notice-box .col-1-1{width:100%}.llms-notice-box .col-1-1 input[type=text]{width:100%}.llms-notice-box .col-1-2{width:50%;float:right}@media screen and (max-width: 768px){.llms-notice-box .col-1-2{width:100%}}.llms-notice-box .col-1-3{width:33%;float:right;margin-left:10px}.llms-notice-box .col-1-4{width:25%;float:right;margin-left:10px}@media screen and (max-width: 768px){.llms-notice-box .col-1-4{width:100%}}.llms-notice-box .col-1-6{width:16.6%;float:right;margin-left:10px}.llms-notice-box .col-1-8{width:11%;float:left}.llms-notice-box .llms-pad-right{padding-left:10px}@media screen and (max-width: 768px){.llms-notice-box .llms-pad-right{padding-left:0}}input[type=text].cc_cvv,#cc_cvv{margin-left:0;width:23%;float:left}.llms-clear-box{border-radius:3px;z-index:10;margin:10px 0;padding:15px 20px;list-style-type:none;width:100%;overflow:auto}.llms-price-label{font-weight:normal}.llms-final-price{font-weight:bold;float:left}.llms-center-content{text-align:center}.llms-input-text{background-color:#fff;border:1px solid #ddd;color:#333;font-size:18px;font-weight:300;padding:16px;width:100%}.llms-price{margin-bottom:0;font-weight:bold}.llms-price-loop{margin-bottom:0;font-weight:bold}.courses .entry{padding:0}.list-view .site-content .llms-course-list .hentry,.list-view .site-content .llms-membership-list .hentry{border-top:0;padding-top:0}.llms-content{width:100%}.llms-lesson-button-wrapper{width:100%;display:block;clear:both;text-align:center}.llms-template-wrapper{width:100%;display:block;clear:both}.llms-button-wrapper{width:100%;display:block;clear:both;text-align:center}.llms-styled-select{border:1px solid #ccc;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:3px;overflow:hidden;position:relative}.llms-styled-select,.llms-styled-select select{width:100%}select:focus{outline:none}.llms-styled-select select{height:34px;padding:5px 5px 5px 0;background:transparent;border:none;-webkit-appearance:none;font-size:16px;color:#444}@-moz-document url-prefix(){.--ms-styled-select select{width:110%}}.llms-styled-select .fa-sort-desc{position:absolute;top:0;left:12px;font-size:24px;color:#ccc}select::-ms-expand{display:none}_:-o-prefocus .llms-styled-select,.selector .llms-styled-select{background:none}.llms-form-item-wrapper{margin-bottom:1em}.llms-progress-circle{position:relative;width:200px;height:200px;float:right}.llms-progress-circle-count{top:27%;position:absolute;width:94%;text-align:center;color:#666;font-size:44px}.llms-progress-circle svg{position:absolute;width:200px;height:200px}.llms-progress-circle circle{fill:transparent}svg .llms-background-circle{fill:transparent;stroke-width:10px;stroke:#f1f2f1;stroke-dasharray:430}svg .llms-animated-circle{fill:transparent;stroke-width:10px;stroke:#e5554e;stroke-dasharray:430;stroke-dashoffset:410}.llms-widget-syllabus .llms-lesson.current-lesson .lesson-title{font-weight:700}.llms-widget-syllabus .llms-lesson-complete,.llms-widget-syllabus .lesson-complete-placeholder{font-size:1.2em;margin-left:6px;color:#ccc}.llms-widget-syllabus .llms-lesson-complete.done,.llms-widget-syllabus .lesson-complete-placeholder.done{color:#e5554e}.llms-widget-syllabus .section-title{font-weight:bold}.llms-widget-syllabus .lesson-title a{text-decoration:none}.llms-widget-syllabus .lesson-title a:hover{text-decoration:none !important}.llms-widget-syllabus .lesson-title.done a{color:#999;text-decoration:line-through}.llms-widget-syllabus ul{list-style-type:none}.llms-widget-syllabus ul li{list-style-type:none}.llms-widget-syllabus ul li ul li{margin:0 0 2px 0;padding:0}.llms-remove-coupon{float:left}.llms-lesson-link-locked,.llms-lesson-link-locked:hover{background:#f1f1f1;-webkit-box-shadow:0 1px 2px 0 rgba(1,1,1,.4);box-shadow:0 1px 2px 0 rgba(1,1,1,.4);display:block;color:#a6a6a6;min-height:85px;padding:15px;text-decoration:none;position:relative}.llms-lesson-preview.is-complete .llms-lesson-link-locked{padding-right:75px}.llms-lesson-tooltip{display:none;position:absolute;color:#000;background-color:silver;padding:.25em;border-radius:2px;z-index:100;top:0;right:50%;text-align:center;-webkit-transform:translateX(50%) translateY(-100%);transform:translateX(50%) translateY(-100%)}.llms-lesson-tooltip:after{content:"";width:0;height:0;border-top:8px solid silver;border-right:8px solid transparent;border-left:8px solid transparent;position:absolute;bottom:-8px;right:50%;-webkit-transform:translateX(50%);transform:translateX(50%)}.llms-lesson-tooltip.active{display:inline-block}.llms-loop-list{list-style:none;margin:0 -10px;padding:0}@media all and (min-width: 600px){.llms-loop-list.cols-1 .llms-loop-item{width:100%}.llms-loop-list.cols-2 .llms-loop-item{width:50%}.llms-loop-list.cols-3 .llms-loop-item{width:33.3333333333%}.llms-loop-list.cols-4 .llms-loop-item{width:25%}.llms-loop-list.cols-5 .llms-loop-item{width:20%}.llms-loop-list.cols-6 .llms-loop-item{width:16.6666666667%}}.llms-loop-item{float:right;list-style:none;margin:0;padding:0;width:100%}.llms-loop-item-content{background:#f1f1f1;padding-bottom:10px;margin:10px}.llms-loop-item-content:hover{background:#eaeaea}.llms-loop-item-content .llms-loop-link{color:#212121;display:block}.llms-loop-item-content .llms-loop-link:visited{color:#212121}.llms-loop-item-content .llms-featured-image{display:block;max-width:100%}.llms-loop-item-content .llms-loop-title{margin-top:5px}.llms-loop-item-content .llms-loop-title:hover{color:#2295ff}.llms-loop-item-content .llms-meta,.llms-loop-item-content .llms-author,.llms-loop-item-content .llms-loop-title{padding:0 10px}.llms-loop-item-content .llms-meta,.llms-loop-item-content .llms-author{color:#444;display:block;font-size:13px;margin-bottom:3px}.llms-loop-item-content .llms-meta:last-child,.llms-loop-item-content .llms-author:last-child{margin-bottom:0}.llms-loop-item-content .llms-featured-img-wrap{overflow:hidden}.llms-loop-item-content p{margin-bottom:0}.llms-loop-item-content .llms-progress{margin:0;height:.4em}.llms-loop-item-content .llms-progress .progress__indicator{display:none}.llms-loop-item-content .llms-progress .llms-progress-bar{background-color:#f6f6f6;left:0;top:0}.course .llms-meta-info{margin:20px 0}.course .llms-meta-info .llms-meta-title{margin-bottom:5px}.course .llms-meta-info .llms-meta p{margin-bottom:0}.course .llms-meta-info .llms-meta span{font-weight:700}.course .llms-course-progress{margin:40px auto;max-width:480px;text-align:center}.llms-syllabus-wrapper{margin:15px;text-align:center}.llms-syllabus-wrapper .llms-section-title{margin:25px 0 0}.llms-course-navigation .llms-prev-lesson,.llms-course-navigation .llms-next-lesson,.llms-course-navigation .llms-back-to-course{width:49%}.llms-course-navigation .llms-prev-lesson,.llms-course-navigation .llms-back-to-course{float:right;margin-left:.5%}.llms-course-navigation .llms-next-lesson,.llms-course-navigation .llms-prev-lesson+.llms-back-to-course{float:left;margin-right:.5%}.llms-lesson-preview{display:inline-block;margin-top:15px;max-width:100%;position:relative;width:480px}.llms-lesson-preview .llms-lesson-link{background:#f1f1f1;color:#212121;display:block;padding:15px;text-decoration:none}.llms-lesson-preview .llms-lesson-link:before,.llms-lesson-preview .llms-lesson-link:after{content:" ";display:table}.llms-lesson-preview .llms-lesson-link:after{clear:both}.llms-lesson-preview .llms-lesson-link:hover{background:#eaeaea}.llms-lesson-preview .llms-lesson-link:visited{color:#212121}.llms-lesson-preview .llms-lesson-thumbnail{margin-bottom:10px}.llms-lesson-preview .llms-lesson-thumbnail img{display:block;width:100%}.llms-lesson-preview .llms-pre-text{text-align:right}.llms-lesson-preview .llms-lesson-title{font-weight:700;margin:0 auto 10px;text-align:right}.llms-lesson-preview .llms-lesson-title:last-child{margin-bottom:0}.llms-lesson-preview .llms-lesson-excerpt{text-align:right}.llms-lesson-preview .llms-main{float:right;width:100%}.llms-lesson-preview .llms-extra{float:left;width:15%}.llms-lesson-preview .llms-extra+.llms-main{width:85%}.llms-lesson-preview .llms-lesson-counter,.llms-lesson-preview .llms-free-lesson-svg,.llms-lesson-preview .llms-lesson-complete,.llms-lesson-preview .llms-lesson-complete-placeholder{display:block;font-size:32px;margin-bottom:15px}.llms-lesson-preview.is-free .llms-lesson-complete,.llms-lesson-preview.is-complete .llms-lesson-complete{color:#2295ff}.llms-lesson-preview .llms-icon-free{background:#2295ff;border-radius:4px;color:#f1f1f1;display:inline-block;padding:5px 6px 4px;line-height:1;font-size:14px}.llms-lesson-preview.is-incomplete .llms-lesson-complete{color:#cacaca}.llms-lesson-preview .llms-lesson-counter{font-size:16px;line-height:1}.llms-lesson-preview .llms-free-lesson-svg{fill:currentColor;height:23px;width:50px}.llms-lesson-preview p{margin-bottom:0}.llms-progress{clear:both;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;position:relative;height:1em;width:100%;margin:15px 0}.llms-progress .llms-progress-bar{background-color:#f1f2f1;position:relative;height:.4em;top:.3em;width:100%}.llms-progress .progress-bar-complete{background-color:#ef476f;height:100%}.progress__indicator{float:left;text-align:left;height:1em;line-height:1em;margin-right:5px;white-space:nowrap}.llms-author .name{margin-right:5px}.llms-author .label{margin-right:5px}.llms-author .avatar{border-radius:50%}.llms-author .bio{margin-top:5px}.llms-instructor-info .llms-instructors .llms-col:first-child .llms-author{margin-right:0}.llms-instructor-info .llms-instructors .llms-col:last-child .llms-author{margin-left:0}.llms-instructor-info .llms-instructors .llms-author{background:#f5f5f5;border-top:4px solid #2295ff;text-align:center;margin:45px 5px 5px;padding:0 10px 10px}.llms-instructor-info .llms-instructors .llms-author .avatar{background:#2295ff;border:4px solid #2295ff;display:block;margin:-35px auto 10px}.llms-instructor-info .llms-instructors .llms-author .llms-author-info{display:block}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.name{font-weight:700}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.label{font-size:85%}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.bio{font-size:90%;margin-bottom:0}.llms-notice{background:rgba(34,149,255,.3);border-color:#2295ff;border-style:solid;border-width:3px;padding:10px;margin-bottom:10px}.llms-notice p:last-child,.llms-notice ul:last-child{margin-bottom:0}.llms-notice li{list-style-type:none}.llms-notice.llms-debug{background:rgba(202,202,202,.3);border-color:#cacaca}.llms-notice.llms-error{background:rgba(229,85,78,.3);border-color:#e5554e}.llms-notice.llms-success{background:rgba(131,195,115,.3);border-color:#83c373}.entry-content .llms-notice{margin:0 0 10px}.entry-content .llms-notice li{list-style-type:none}ul.llms-achievements-loop,.lifterlms ul.llms-achievements-loop,ul.llms-certificates-loop,.lifterlms ul.llms-certificates-loop{list-style-type:none;margin:0 -10px;padding:0}ul.llms-achievements-loop:before,ul.llms-achievements-loop:after,.lifterlms ul.llms-achievements-loop:before,.lifterlms ul.llms-achievements-loop:after,ul.llms-certificates-loop:before,ul.llms-certificates-loop:after,.lifterlms ul.llms-certificates-loop:before,.lifterlms ul.llms-certificates-loop:after{content:" ";display:table}ul.llms-achievements-loop:after,.lifterlms ul.llms-achievements-loop:after,ul.llms-certificates-loop:after,.lifterlms ul.llms-certificates-loop:after{clear:both}ul.llms-achievements-loop li.llms-achievement-loop-item,ul.llms-achievements-loop li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop li.llms-certificate-loop-item,ul.llms-certificates-loop li.llms-achievement-loop-item,ul.llms-certificates-loop li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop li.llms-certificate-loop-item{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;float:right;list-style-type:none;margin:0;padding:10px;width:100%}@media all and (min-width: 600px){ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item{width:100%}ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item{width:50%}ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item{width:33.3333333333%}ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item{width:25%}ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item{width:20%}}.llms-achievement,.llms-certificate{background:#f1f1f1;border:none;color:inherit;display:block;text-decoration:none;width:100%}.llms-achievement:hover,.llms-certificate:hover{background:#eaeaea}.llms-achievement .llms-achievement-img,.llms-certificate .llms-achievement-img{display:block;margin:0;width:100%}.llms-achievement .llms-achievement-title,.llms-certificate .llms-achievement-title{font-size:16px;margin:0;padding:10px;text-align:center}.llms-achievement .llms-certificate-title,.llms-certificate .llms-certificate-title{font-size:16px;margin:0;padding:0 0 10px}.llms-achievement .llms-achievement-info,.llms-achievement .llms-achievement-date,.llms-certificate .llms-achievement-info,.llms-certificate .llms-achievement-date{display:none}.llms-achievement .llms-achievement-content,.llms-certificate .llms-achievement-content{padding:20px}.llms-achievement .llms-achievement-content:empty,.llms-certificate .llms-achievement-content:empty{padding:0}.llms-achievement .llms-achievement-content *:last-child,.llms-certificate .llms-achievement-content *:last-child{margin-bottom:0}.llms-certificate{border:4px double #f1f1f1;padding:20px 10px;background:#fff;text-align:center}.llms-certificate:hover{background:#fff;border-color:#eaeaea}.llms-achievement-modal .llms-achievement{background:#fff}.llms-achievement-modal .llms-achievement-info{display:block}.llms-achievement-modal .llms-achievement-title{display:none}.llms-notification{background:#fff;-webkit-box-shadow:0 1px 2px -2px #333,0 1px 1px -1px #333;box-shadow:0 1px 2px -2px #333,0 1px 1px -1px #333;border-top:4px solid #2295ff;right:12px;opacity:0;padding:12px;position:fixed;left:12px;top:24px;-webkit-transition:opacity .4s ease-in-out,left .4s ease-in-out;transition:opacity .4s ease-in-out,left .4s ease-in-out;visibility:none;width:auto;z-index:9999999}.llms-notification:before,.llms-notification:after{content:" ";display:table}.llms-notification:after{clear:both}.llms-notification.visible{opacity:1;-webkit-transition:opacity .4s ease-in-out,left .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,-webkit-transform .2s ease-in-out;transition:opacity .4s ease-in-out,left .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,-webkit-transform .2s ease-in-out;transition:opacity .4s ease-in-out,left .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,transform .2s ease-in-out;transition:opacity .4s ease-in-out,left .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,transform .2s ease-in-out,-webkit-transform .2s ease-in-out;visibility:visible}.llms-notification.visible:hover .llms-notification-dismiss{opacity:1}.llms-notification .llms-notification-content{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.llms-notification .llms-notification-main{-ms-flex-item-align:start;align-self:flex-start;-webkit-box-flex:4;-ms-flex:4;flex:4;-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.llms-notification .llms-notification-title{font-size:18px;margin:0}.llms-notification .llms-notification-body{font-size:14px;line-height:1.4}.llms-notification .llms-notification-body p,.llms-notification .llms-notification-body li{font-size:inherit}.llms-notification .llms-notification-body p{margin-bottom:8px}.llms-notification .llms-notification-body .llms-mini-cert{background:#f6f6f6;border:1px solid #d0d0d0;-webkit-box-shadow:inset 0 0 0 3px #fefefe,inset 0 0 0 4px #dedede;box-shadow:inset 0 0 0 3px #fefefe,inset 0 0 0 4px #dedede;padding:16px 16px 24px;margin-top:12px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert-title{font-size:16px;font-weight:700;margin:12px auto;text-align:center}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body{width:100%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(1){width:65%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(2){width:35%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(3){width:85%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(4){width:75%;margin-top:18px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(5){width:70%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(6){margin-right:12px;margin-bottom:-24px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(7){width:65%;margin-left:12px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-line{border-radius:2px;height:8px;background:#b0b0b0;background-image:-webkit-gradient(linear, right top, left top, from(#b0b0b0), color-stop(20%, #a0a0a0), color-stop(40%, #b0b0b0), to(#b0b0b0));background-image:linear-gradient(to left, #b0b0b0 0%, #a0a0a0 20%, #b0b0b0 40%, #b0b0b0 100%);background-repeat:no-repeat;margin:4px auto}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-dot{background:#b0b0b0;border-radius:50%;display:inline-block;content:"";height:24px;width:24px}.llms-notification .llms-notification-body .llms-mini-cert p{margin-bottom:0}.llms-notification .llms-notification-aside{-ms-flex-item-align:start;align-self:flex-start;-webkit-box-flex:1;-ms-flex:1;flex:1;margin-left:12px;-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.llms-notification .llms-notification-icon{display:block;max-width:64px}.llms-notification .llms-notification-footer{border-top:1px solid #e5e5e5;font-size:12px;margin-top:12px;padding:6px 6px 0;text-align:left}.llms-notification .llms-notification-dismiss{color:#e5554e;cursor:pointer;font-size:22px;position:absolute;left:10px;top:8px;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out}.llms-sd-notification-center .llms-notification-list,.llms-sd-notification-center .llms-notification-list-item{list-style-type:none;margin:0;padding:0}.llms-sd-notification-center .llms-notification-list-item:hover .llms-notification{background:#fcfcfc}.llms-sd-notification-center .llms-notification{opacity:1;border-top:1px solid #e5e5e5;right:auto;padding:24px;position:relative;left:auto;top:auto;visibility:visible;width:auto}.llms-sd-notification-center .llms-notification .llms-notification-aside{max-width:64px}.llms-sd-notification-center .llms-notification .llms-notification-footer{border:none;padding:0;text-align:right}.llms-sd-notification-center .llms-notification .llms-progress{display:none !important}.llms-sd-notification-center .llms-notification .llms-notification-date{color:#515151;float:right;margin-left:6px}.llms-sd-notification-center .llms-notification .llms-mini-cert{margin:0 auto;max-width:380px}@media all and (min-width: 480px){.llms-notification{right:auto;left:-800px;width:360px}.llms-notification.visible{left:24px}.llms-notification .llms-notification-dismiss{opacity:0}}.llms-pagination ul{list-style-type:none}.llms-pagination ul li{float:right}.llms-pagination ul li a{border-bottom:0;text-decoration:none}.llms-pagination ul li .page-numbers{padding:.5em;text-decoration:underline}.llms-pagination ul li .page-numbers.current{text-decoration:none}.llms-tooltip{background:#2a2a2a;border-radius:4px;color:#fff;font-size:14px;line-height:1.2;opacity:0;top:-20px;padding:8px 12px;right:50%;position:absolute;pointer-events:none;-webkit-transform:translateX(50%);transform:translateX(50%);-webkit-transition:opacity .2s ease,top .2s ease;transition:opacity .2s ease,top .2s ease;max-width:320px}.llms-tooltip.show{top:-28px;opacity:1}.llms-tooltip:after{bottom:-8px;border-top:8px solid #2a2a2a;border-right:8px solid transparent;border-left:8px solid transparent;content:"";height:0;right:50%;position:absolute;-webkit-transform:translateX(50%);transform:translateX(50%);width:0}.webui-popover-title{font-size:initial;font-weight:initial;line-height:initial}.webui-popover-inverse .webui-popover-inner .close{color:#fff;opacity:.6;text-shadow:none}.webui-popover-inverse .webui-popover-inner .close:hover{opacity:.8}.webui-popover-inverse .webui-popover-content a{color:#fff;text-decoration:underline}.webui-popover-inverse .webui-popover-content a:hover{text-decoration:none}.single-llms_quiz .llms-quiz-attempt-results{margin:0;padding:0;list-style-type:none}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question{background:#efefef;margin:0 0 10px;position:relative}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer{color:inherit;display:block;padding:10px 10px 10px 35px;text-decoration:none}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:before,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:after{content:" ";display:table}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:after{clear:both}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect{background:rgba(255,146,43,.2)}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon{background-color:#ff922b}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct{background:rgba(131,195,115,.2)}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon{background-color:#83c373}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect{background:rgba(229,85,78,.2)}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon{background-color:#e5554e}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title{float:right;margin:0;line-height:1}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points{float:left;line-height:1}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip{position:absolute;left:-12px;top:-2px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon{color:rgba(255,255,255,.65);border-radius:50%;font-size:30px;height:40px;line-height:40px;text-align:center;width:40px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main{display:none;padding:0 10px 10px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label{font-weight:700;margin-bottom:10px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers{margin:0;padding:0}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer{padding:0;margin:0 30px 0 0}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child{list-style-type:none;margin-right:0}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img{height:auto;max-width:200px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section{border-top:2px solid rgba(255,255,255,.5);margin-top:20px;padding-top:20px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child{border-top:none;margin-top:0;padding-top:0}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers{list-style-type:none;margin:0;padding:0}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer{display:inline-block;list-style-type:none;margin:0;padding:5px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed{opacity:.5}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title{font-style:italic;font-weight:normal}.single-llms_quiz .llms-return{margin-bottom:10px}.single-llms_quiz .llms-quiz-results:before,.single-llms_quiz .llms-quiz-results:after{content:" ";display:table}.single-llms_quiz .llms-quiz-results:after{clear:both}.single-llms_quiz .llms-quiz-results .llms-donut.passing{color:#83c373}.single-llms_quiz .llms-quiz-results .llms-donut.passing svg path{stroke:#83c373}.single-llms_quiz .llms-quiz-results .llms-donut.pending{color:#555}.single-llms_quiz .llms-quiz-results .llms-donut.pending svg path{stroke:#555}.single-llms_quiz .llms-quiz-results .llms-donut.failing{color:#e5554e}.single-llms_quiz .llms-quiz-results .llms-donut.failing svg path{stroke:#e5554e}.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside,.single-llms_quiz .llms-quiz-results .llms-quiz-results-main,.single-llms_quiz .llms-quiz-results .llms-quiz-results-history{margin-bottom:20px}@media all and (min-width: 600px){.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside{float:right;width:220px}.single-llms_quiz .llms-quiz-results .llms-quiz-results-main,.single-llms_quiz .llms-quiz-results .llms-quiz-results-history{float:right;width:calc(100% - 300px)}}.single-llms_quiz ul.llms-quiz-meta-info,.single-llms_quiz ul.llms-quiz-meta-info li{list-style-type:none;margin:0;padding:0}.single-llms_quiz ul.llms-quiz-meta-info{margin-bottom:10px}.single-llms_quiz .llms-quiz-buttons{margin-top:10px;text-align:right}.single-llms_quiz .llms-quiz-buttons form{display:inline-block}.llms-quiz-question-wrapper{min-height:140px;position:relative}.llms-quiz-question-wrapper .llms-quiz-loading{bottom:20px;right:0;position:absolute;left:0;text-align:center;z-index:1}.llms-quiz-ui{background:#fcfcfc;padding:20px;position:relative}.llms-quiz-ui .llms-quiz-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 0 30px}.llms-quiz-ui .llms-progress{background-color:#f1f2f1;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;height:8px;margin:0;overflow:hidden}.llms-quiz-ui .llms-progress .progress-bar-complete{-webkit-transition:width .3s ease-in;transition:width .3s ease-in;width:0}.llms-quiz-ui .llms-error{background:#e5554e;border-radius:4px;color:#fff;margin:10px 0;padding:10px}.llms-quiz-ui .llms-error:before,.llms-quiz-ui .llms-error:after{content:" ";display:table}.llms-quiz-ui .llms-error:after{clear:both}.llms-quiz-ui .llms-error a{color:rgba(255,255,255,.6);float:left;font-size:22px;line-height:1;text-decoration:none}.llms-quiz-ui .llms-quiz-counter{display:none;color:#6a6a6a;float:left;font-size:18px}.llms-quiz-ui .llms-quiz-counter .llms-sep{margin:0 5px}.llms-quiz-ui .llms-quiz-nav{margin-top:20px}.llms-quiz-ui .llms-quiz-nav button{margin:0 0 0 10px}.llms-question-wrapper .llms-question-text{font-size:30px;font-weight:400;margin-bottom:15px}.llms-question-wrapper ol.llms-question-choices{list-style-type:none;margin:0;padding:0}.llms-question-wrapper ol.llms-question-choices li.llms-choice{border-bottom:1px solid #e8e8e8;margin:0;padding:0;position:relative}.llms-question-wrapper ol.llms-question-choices li.llms-choice:last-child{border-bottom:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture{border-bottom:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture label{display:inline-block;padding:0}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-marker{bottom:10px;margin:0;position:absolute;left:10px}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image{margin:2px;padding:20px;-webkit-transition:background .4s ease;transition:background .4s ease}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image img{display:block;width:100%}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture input:checked~.llms-choice-image{background:#efefef}.llms-question-wrapper ol.llms-question-choices li.llms-choice input{display:none;right:0;pointer-events:none;position:absolute;top:0;visibility:hidden}.llms-question-wrapper ol.llms-question-choices li.llms-choice label{display:block;margin:0;padding:10px 20px;position:relative}.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .iterator{display:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .fa{display:inline}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker{background:#f0f0f0;display:inline-block;font-size:20px;height:40px;line-height:40px;margin-left:10px;text-align:center;-webkit-transition:all .2s ease;transition:all .2s ease;vertical-align:middle;width:40px}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker .fa{display:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--lister,.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--checkbox{border-radius:4px}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--radio{border-radius:50%}.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked+.llms-marker{background:#ef476f;color:#fff}.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked+.llms-marker .iterator{display:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked+.llms-marker .fa{display:inline}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-choice-text{display:inline-block;font-size:18px;font-weight:400;line-height:1.6;margin-bottom:0;vertical-align:middle;width:calc(100% - 60px)}.llms-quiz-timer{background:#fff;border:1px solid #83c373;border-radius:4px;color:#83c373;float:left;font-size:18px;line-height:1;margin-right:20px;padding:8px 12px;position:relative;white-space:nowrap;z-index:1}.llms-quiz-timer.color-half{border-color:#ff922b;color:#ff922b}.llms-quiz-timer.color-empty{border-color:#e5554e;color:#e5554e}.llms-quiz-timer .llms-tiles{display:inline-block;margin-right:5px}.voucher-expand{display:none}@media all and (min-width: 600px){.llms-access-plans.cols-1 .llms-access-plan{width:100%}.llms-access-plans.cols-2 .llms-access-plan{width:50%}.llms-access-plans.cols-3 .llms-access-plan{width:33.3333333333%}.llms-access-plans.cols-4 .llms-access-plan{width:25%}.llms-access-plans.cols-5 .llms-access-plan{width:20%}}.llms-free-enroll-form{margin-bottom:0}.llms-access-plan{-webkit-box-sizing:border-box;box-sizing:border-box;float:right;text-align:center;width:100%}.llms-access-plan .llms-access-plan-footer,.llms-access-plan .llms-access-plan-content{background:#f1f1f1}.llms-access-plan.featured .llms-access-plan-featured{background:#4ba9ff}.llms-access-plan.featured .llms-access-plan-footer,.llms-access-plan.featured .llms-access-plan-content{border-right:3px solid #2295ff;border-left:3px solid #2295ff}.llms-access-plan.featured .llms-access-plan-footer{border-bottom-color:#2295ff}.llms-access-plan.on-sale .price-regular{text-decoration:line-through}.llms-access-plan .stamp{background:#2295ff;color:#fff;font-size:11px;font-style:normal;font-weight:300;padding:2px 3px;vertical-align:top}.llms-access-plan .llms-access-plan-restrictions ul{margin:0}.llms-access-plan-featured{color:#fff;font-size:14px;font-weight:400;margin:0 2px 0 2px}.llms-access-plan-content{margin:0 2px 0}.llms-access-plan-content .llms-access-plan-pricing{padding:10px 0 0}.llms-access-plan-title{background:#2295ff;color:#fff;margin-bottom:0;padding:10px}.llms-access-plan-pricing .llms-price-currency-symbol{font-size:14px;vertical-align:top}.llms-access-plan-price{font-size:18px;font-variant:small-caps;line-height:20px}.llms-access-plan-price .lifterlms-price{font-weight:700}.llms-access-plan-price.sale{padding:5px 0;border-top:1px solid #d0d0d0;border-bottom:1px solid #d0d0d0}.llms-access-plan-trial,.llms-access-plan-schedule,.llms-access-plan-sale-end,.llms-access-plan-expiration{font-size:15px;font-variant:small-caps;line-height:1.2}.llms-access-plan-description{font-size:16px;padding:10px 10px 0}.llms-access-plan-description ul{margin:0}.llms-access-plan-description ul li{border-bottom:1px solid #d0d0d0;list-style-type:none}.llms-access-plan-description ul li:last-child{border-bottom:none}.llms-access-plan-description div:last-child,.llms-access-plan-description img:last-child,.llms-access-plan-description p:last-child,.llms-access-plan-description ul:last-child,.llms-access-plan-description li:last-child{margin-bottom:0}.llms-access-plan-restrictions .stamp{vertical-align:baseline}.llms-access-plan-restrictions ul{margin:0}.llms-access-plan-restrictions ul li{font-size:12px;line-height:14px;list-style-type:none}.llms-access-plan-restrictions a{color:#f8954f}.llms-access-plan-restrictions a:hover{color:#f67d28}.llms-access-plan-footer{border-bottom:3px solid #f1f1f1;padding:10px;margin:0 2px 2px 2px}.llms-access-plan-footer .llms-access-plan-pricing{padding:0 0 10px}.webui-popover-content .llms-members-only-restrictions{text-align:center}.webui-popover-content .llms-members-only-restrictions ul,.webui-popover-content .llms-members-only-restrictions ol,.webui-popover-content .llms-members-only-restrictions li,.webui-popover-content .llms-members-only-restrictions p{margin:0;padding:0}.webui-popover-content .llms-members-only-restrictions ul,.webui-popover-content .llms-members-only-restrictions ol,.webui-popover-content .llms-members-only-restrictions li{list-style-type:none}.webui-popover-content .llms-members-only-restrictions li{padding:8px 0;border-top:1px solid #3b3b3b}.webui-popover-content .llms-members-only-restrictions li:first-child{border-top:none}.webui-popover-content .llms-members-only-restrictions li a{display:block}.llms-checkout-wrapper form.llms-login{border:3px solid #2295ff;display:none;margin-bottom:10px}.llms-checkout-wrapper .llms-form-heading{background:#2295ff;color:#fff;margin:0 0 5px;padding:10px}.llms-checkout{background:#fff;position:relative}@media all and (min-width: 800px){.llms-checkout-cols-2 .llms-checkout-col{float:right}.llms-checkout-cols-2 .llms-checkout-col.llms-col-1{margin-left:5px;width:calc(58% - 5px)}.llms-checkout-cols-2 .llms-checkout-col.llms-col-2{margin-right:5px;width:calc(42% - 5px)}.llms-checkout-cols-2 .llms-checkout-col.llms-col-2 button{width:100%}}.llms-checkout-section{border:3px solid #2295ff;margin-bottom:10px;position:relative}.llms-checkout-section-content{margin:10px}.llms-checkout-section-content.llms-form-fields{margin:0px}.llms-checkout-section-content .llms-label{font-weight:400;font-variant:small-caps;text-transform:lowercase}.llms-checkout-section-content .llms-order-summary{list-style-type:none;margin:0;padding:0}.llms-checkout-section-content .llms-order-summary li{list-style-type:none}.llms-checkout-section-content .llms-order-summary li.llms-pricing.on-sale .price-regular,.llms-checkout-section-content .llms-order-summary li.llms-pricing.has-coupon .price-regular{text-decoration:line-through}.llms-checkout-section-content .llms-coupon-wrapper{border-top:1px solid #dadada;margin-top:10px;padding-top:10px}.llms-checkout-section-content .llms-coupon-wrapper .llms-coupon-entry{display:none;margin-top:10px}.llms-form-field.llms-payment-gateway-option label+span.llms-description{display:inline-block;margin-right:5px}.llms-form-field.llms-payment-gateway-option .llms-description a{border:none;-webkit-box-shadow:none;box-shadow:none;text-decoration:none}.llms-form-field.llms-payment-gateway-option .llms-description img{display:inline;max-height:22px;vertical-align:middle}.llms-checkout-wrapper ul.llms-payment-gateways{margin:5px 0 0;padding:0}ul.llms-payment-gateways{list-style-type:none}ul.llms-payment-gateways li:last-child:after{border-bottom:1px solid #dadada;content:"";display:block;margin:10px}ul.llms-payment-gateways .llms-payment-gateway{margin-bottom:5px;list-style-type:none}ul.llms-payment-gateways .llms-payment-gateway:last-child{margin-bottom:none}ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-payment-gateway-option label{font-weight:700}ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields{display:block}ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields .llms-notice{margin-right:10px;margin-left:10px}ul.llms-payment-gateways .llms-payment-gateway .llms-form-field{padding-bottom:0}ul.llms-payment-gateways .llms-gateway-description{margin-right:40px}ul.llms-payment-gateways .llms-gateway-fields{display:none;margin:5px 0 20px}ul.llms-payment-gateways .llms-payment-gateway-error{padding:0 10px}.llms-checkout-confirm{margin:0 10px}.llms-payment-method{margin:10px 10px 0}.llms-gateway-description p{font-size:85%;font-style:italic;margin-bottom:0}.llms-form-fields{-webkit-box-sizing:border-box;box-sizing:border-box}.llms-form-fields *{-webkit-box-sizing:border-box;box-sizing:border-box}.llms-form-fields.flush .llms-form-field{padding:0 0 10px}.llms-form-fields .wp-block-columns,.llms-form-fields .wp-block-column{margin-bottom:0}.llms-form-heading{padding:0 10px 10px}.llms-form-field{float:right;padding:0 10px 10px;position:relative;width:100%}.llms-form-field label:empty:after{content:" "}.llms-form-field.valid input[type=date],.llms-form-field.valid input[type=time],.llms-form-field.valid input[type=datetime-local],.llms-form-field.valid input[type=week],.llms-form-field.valid input[type=month],.llms-form-field.valid input[type=text],.llms-form-field.valid input[type=email],.llms-form-field.valid input[type=url],.llms-form-field.valid input[type=password],.llms-form-field.valid input[type=search],.llms-form-field.valid input[type=tel],.llms-form-field.valid input[type=number],.llms-form-field.valid textarea,.llms-form-field.valid select{background:rgba(131,195,115,.3);border-color:#83c373}.llms-form-field.error input[type=date],.llms-form-field.error input[type=time],.llms-form-field.error input[type=datetime-local],.llms-form-field.error input[type=week],.llms-form-field.error input[type=month],.llms-form-field.error input[type=text],.llms-form-field.error input[type=email],.llms-form-field.error input[type=url],.llms-form-field.error input[type=password],.llms-form-field.error input[type=search],.llms-form-field.error input[type=tel],.llms-form-field.error input[type=number],.llms-form-field.error textarea,.llms-form-field.error select,.llms-form-field.invalid input[type=date],.llms-form-field.invalid input[type=time],.llms-form-field.invalid input[type=datetime-local],.llms-form-field.invalid input[type=week],.llms-form-field.invalid input[type=month],.llms-form-field.invalid input[type=text],.llms-form-field.invalid input[type=email],.llms-form-field.invalid input[type=url],.llms-form-field.invalid input[type=password],.llms-form-field.invalid input[type=search],.llms-form-field.invalid input[type=tel],.llms-form-field.invalid input[type=number],.llms-form-field.invalid textarea,.llms-form-field.invalid select{background:rgba(229,85,78,.3);border-color:#e5554e}.llms-form-field.llms-visually-hidden-field{display:none}.llms-form-field.align-right{text-align:left}@media screen and (min-width: 600px){.llms-form-field.llms-cols-1{width:8.3333333333%}.llms-form-field.llms-cols-2{width:16.6666666667%}.llms-form-field.llms-cols-3{width:25%}.llms-form-field.llms-cols-4{width:33.3333333333%}.llms-form-field.llms-cols-5{width:41.6666666667%}.llms-form-field.llms-cols-6{width:50%}.llms-form-field.llms-cols-7{width:58.3333333333%}.llms-form-field.llms-cols-8{width:66.6666666667%}.llms-form-field.llms-cols-9{width:75%}.llms-form-field.llms-cols-10{width:83.3333333333%}.llms-form-field.llms-cols-11{width:91.6666666667%}.llms-form-field.llms-cols-12{width:100%}}.llms-form-field.type-hidden{padding:0}.llms-form-field.type-radio input,.llms-form-field.type-radio label,.llms-form-field.type-checkbox input,.llms-form-field.type-checkbox label{display:inline-block;width:auto}.llms-form-field.type-radio input,.llms-form-field.type-checkbox input{margin-left:5px}.llms-form-field.type-radio label+.llms-description,.llms-form-field.type-checkbox label+.llms-description{display:block}.llms-form-field.type-radio:not(.is-group) input[type=radio]{position:absolute;opacity:0;visibility:none}.llms-form-field.type-radio:not(.is-group) label:before{background:#fafafa;background-position:-24px 0;background-repeat:no-repeat;border-radius:50%;-webkit-box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.35) 0 0 0 1px;box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.35) 0 0 0 1px;content:"";cursor:pointer;display:inline-block;height:22px;margin-left:5px;position:relative;-webkit-transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);top:-3px;vertical-align:middle;width:22px;z-index:2}.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked+label:before{-webkit-transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);background-position:100% 0;background-image:radial-gradient(ellipse at center, #2295ff 0%, #2295ff 40%, #fafafa 45%)}.llms-form-field .llms-input-group{margin-top:5px}.llms-form-field .llms-input-group .llms-form-field{padding:0 5px 5px 0}.llms-form-field.type-reset button:not(.auto),.llms-form-field.type-button button:not(.auto),.llms-form-field.type-submit button:not(.auto){width:100%}.llms-form-field .llms-description{font-size:14px;font-style:italic}.llms-form-field .llms-required{color:#e5554e;margin-right:4px}.llms-form-field input,.llms-form-field textarea,.llms-form-field select{width:100%;margin-bottom:5px}.llms-form-field .select2-container .select2-selection--single{height:auto;padding:4px 6px}.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%}.llms-password-strength-meter{border:1px solid #dadada;display:none;font-size:10px;margin-top:-10px;padding:1px;position:relative;text-align:center}.llms-password-strength-meter:before{bottom:0;content:"";right:0;position:absolute;top:0;-webkit-transition:width .4s ease;transition:width .4s ease}.llms-password-strength-meter.mismatch,.llms-password-strength-meter.too-short,.llms-password-strength-meter.very-weak{border-color:#e35b5b}.llms-password-strength-meter.mismatch:before,.llms-password-strength-meter.too-short:before,.llms-password-strength-meter.very-weak:before{background:rgba(227,91,91,.25);width:25%}.llms-password-strength-meter.too-short:before{width:0}.llms-password-strength-meter.weak{border-color:#f78b53}.llms-password-strength-meter.weak:before{background:rgba(247,139,83,.25);width:50%}.llms-password-strength-meter.medium{border-color:#ffc733}.llms-password-strength-meter.medium:before{background:rgba(255,199,51,.25);width:75%}.llms-password-strength-meter.strong{border-color:#83c373}.llms-password-strength-meter.strong:before{background:rgba(131,195,115,.25);width:100%}.llms-widget-syllabus--collapsible .llms-section .section-header{cursor:pointer}.llms-widget-syllabus--collapsible .llms-section.llms-section--opened .llms-collapse-caret .fa-caret-right{display:none}.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-collapse-caret .fa-caret-down{display:none}.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-lesson{display:none}.llms-widget-syllabus--collapsible .llms-syllabus-footer{text-align:right}.llms-student-dashboard .llms-sd-title{margin:25px 0}.llms-student-dashboard .llms-sd-items{list-style-type:none;margin:0;padding:0}.llms-student-dashboard .llms-sd-item{float:right;list-style-type:none;margin:0;padding:0}.llms-student-dashboard .llms-sd-item:last-child .llms-sep{display:none}.llms-student-dashboard .llms-sd-item .llms-sep{color:#333;margin:0 5px}.llms-student-dashboard .llms-sd-section{margin-bottom:25px}.llms-student-dashboard .llms-sd-section .llms-sd-section-footer{margin-top:10px}.llms-student-dashboard .orders-table{border:1px solid #f5f5f5;width:100%}.llms-student-dashboard .orders-table thead{display:none}.llms-student-dashboard .orders-table thead th,.llms-student-dashboard .orders-table thead td{font-weight:700}@media all and (min-width: 600px){.llms-student-dashboard .orders-table thead{display:table-header-group}}.llms-student-dashboard .orders-table tbody tr:nth-child(even) td,.llms-student-dashboard .orders-table tbody tr:nth-child(even) th{background:#f9f9f9}.llms-student-dashboard .orders-table tfoot th,.llms-student-dashboard .orders-table tfoot td{padding:10px;text-align:left}.llms-student-dashboard .orders-table tfoot th:last-child,.llms-student-dashboard .orders-table tfoot td:last-child{border-bottom-width:0}.llms-student-dashboard .orders-table th{font-weight:700}.llms-student-dashboard .orders-table th,.llms-student-dashboard .orders-table td{border-color:#efefef;border-style:solid;border-width:0;display:block;padding:8px 12px;text-align:center}.llms-student-dashboard .orders-table th .llms-button-primary,.llms-student-dashboard .orders-table td .llms-button-primary{display:inline-block}.llms-student-dashboard .orders-table th:last-child,.llms-student-dashboard .orders-table td:last-child{border-bottom-width:1px}.llms-student-dashboard .orders-table th:before,.llms-student-dashboard .orders-table td:before{content:attr(data-label)}@media all and (min-width: 600px){.llms-student-dashboard .orders-table th,.llms-student-dashboard .orders-table td{border-bottom-width:1px;display:table-cell;text-align:right}.llms-student-dashboard .orders-table th:first-child,.llms-student-dashboard .orders-table td:first-child{width:220px}.llms-student-dashboard .orders-table th:before,.llms-student-dashboard .orders-table td:before{display:none}}@media all and (min-width: 600px){.llms-student-dashboard .orders-table.transactions th:first-child{width:auto}}.llms-student-dashboard .llms-status{border-radius:3px;border-bottom:1px solid #fff;display:inline-block;font-size:80%;padding:3px 6px;vertical-align:middle}.llms-student-dashboard .llms-status.llms-size--large{font-size:105%;padding:6px 12px}.llms-student-dashboard .llms-status.llms-active,.llms-student-dashboard .llms-status.llms-completed,.llms-student-dashboard .llms-status.llms-pass,.llms-student-dashboard .llms-status.llms-txn-succeeded{color:#1f3818;background-color:#83c373}.llms-student-dashboard .llms-status.llms-fail,.llms-student-dashboard .llms-status.llms-failed,.llms-student-dashboard .llms-status.llms-expired,.llms-student-dashboard .llms-status.llms-cancelled,.llms-student-dashboard .llms-status.llms-txn-failed{color:#5a110d;background-color:#e5554e}.llms-student-dashboard .llms-status.llms-incomplete,.llms-student-dashboard .llms-status.llms-on-hold,.llms-student-dashboard .llms-status.llms-pending,.llms-student-dashboard .llms-status.llms-pending-cancel,.llms-student-dashboard .llms-status.llms-refunded,.llms-student-dashboard .llms-status.llms-txn-pending,.llms-student-dashboard .llms-status.llms-txn-refunded{color:#664200;background-color:orange}.llms-student-dashboard .llms-person-form-wrapper .llms-change-password{display:none}@media all and (min-width: 600px){.llms-student-dashboard .order-primary{float:right;width:68%}}@media all and (min-width: 600px){.llms-student-dashboard .order-secondary{float:right;width:32%}}.llms-student-dashboard .order-secondary form{margin-bottom:0}@media all and (min-width: 600px){.llms-student-dashboard .llms-view-order.llms-stack-cols .order-primary,.llms-student-dashboard .llms-view-order.llms-stack-cols .order-secondary{float:none;width:100%}}.llms-student-dashboard .llms-switch-payment-source .llms-notice,.llms-student-dashboard .llms-switch-payment-source .entry-content .llms-notice{margin-right:10px;margin-left:10px}.llms-student-dashboard .llms-switch-payment-source-main{border:none;display:none;margin:0}.llms-student-dashboard .llms-switch-payment-source-main ul.llms-payment-gateways{padding:10px 15px 0;margin:0}.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method,.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary{padding:0 25px 10px;margin:0;list-style-type:none}.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method li,.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary li{list-style-type:none}.llms-student-dashboard .llms-loop-list{margin:0 -10px}.llms-sd-grades .llms-table .llms-progress{display:block;margin:0}.llms-sd-grades .llms-table .llms-progress .llms-progress-bar{top:0;height:1.4em}.llms-sd-grades .llms-table .llms-progress .progress__indicator{font-size:1em;position:relative;left:.4em;top:.2em;z-index:1}.llms-table.llms-single-course-grades tbody tr:first-child td,.llms-table.llms-single-course-grades tbody tr:first-child th{background-color:#eaeaea}.llms-table.llms-single-course-grades th{font-weight:400}.llms-table.llms-single-course-grades td .llms-donut{display:inline-block;vertical-align:middle}.llms-table.llms-single-course-grades td .llms-status{margin-left:4px}.llms-table.llms-single-course-grades td .llms-donut+.llms-status{margin-right:4px}.llms-table.llms-single-course-grades th.llms-section_title{font-size:110%;font-weight:700}.llms-table.llms-single-course-grades td.llms-lesson_title{padding-right:36px;max-width:40%}.llms-table.llms-single-course-grades td.llms-associated_quiz .llms-donut{display:inline-block;margin-left:5px;vertical-align:middle}.llms-table.llms-single-course-grades td.llms-lesson_title a[href="#"]{pointer-events:none}.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"]{color:inherit;position:relative}.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"] .llms-tooltip{max-width:380px;width:380px}.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"] .llms-tooltip.show{top:-54px}.llms-sd-widgets{display:-webkit-box;display:-ms-flexbox;display:flex}.llms-sd-widgets .llms-sd-widget{background:#f9f9f9;-webkit-box-flex:1;-ms-flex:1;flex:1;margin:10px 10px 20px;padding:0 0 20px}.llms-sd-widgets .llms-sd-widget:first-child{margin-right:0}.llms-sd-widgets .llms-sd-widget:last-child{margin-left:0}.llms-sd-widgets .llms-sd-widget .llms-sd-widget-title{background:#2295ff;color:#fff;font-size:18px;line-height:1;margin:0 0 20px;padding:10px}.llms-sd-widgets .llms-sd-widget .llms-sd-widget-empty{font-size:14px;font-style:italic;opacity:.5;text-align:center}.llms-sd-widgets .llms-sd-widget .llms-donut{margin:0 auto}.llms-sd-widgets .llms-sd-widget .llms-sd-date{opacity:.8;text-align:center;font-size:22px;line-height:1.1}.llms-sd-widgets .llms-sd-widget .llms-sd-date span{display:block}.llms-sd-widgets .llms-sd-widget .llms-sd-date span.day{font-size:52px}.llms-sd-widgets .llms-sd-widget .llms-sd-date span.diff{font-size:12px;font-style:italic;margin-top:8px;opacity:.75}.llms-sd-widgets .llms-sd-widget .llms-achievement{background:transparent;margin:0 auto;max-width:120px}.llms-sd-widgets .llms-sd-widget .llms-achievement .llms-achievement-title{display:none}.llms-sd-pagination{margin-top:24px}.llms-sd-pagination:before,.llms-sd-pagination:after{content:" ";display:table}.llms-sd-pagination:after{clear:both}.llms-sd-pagination .llms-button-secondary{display:inline-block}.llms-sd-pagination .llms-button-secondary.prev{float:right}.llms-sd-pagination .llms-button-secondary.next{float:left}.llms-sd-notification-center .llms-notification{z-index:1}.llms-table{border:1px solid #efefef;width:100%}.llms-table thead th,.llms-table thead td{font-weight:700}.llms-table tbody tr:nth-child(odd) td,.llms-table tbody tr:nth-child(odd) th{background:#f9f9f9}.llms-table tbody tr:last-child{border-bottom-width:0}.llms-table tfoot tr{background:#f9f9f9}.llms-table tfoot tr .llms-pagination .page-numbers{margin:0}.llms-table tfoot tr .llms-table-sort{text-align:left}.llms-table tfoot tr .llms-table-sort form,.llms-table tfoot tr .llms-table-sort select,.llms-table tfoot tr .llms-table-sort input,.llms-table tfoot tr .llms-table-sort button{margin:0}.llms-table th{font-weight:700}.llms-table th,.llms-table td{border-bottom:1px solid #efefef;padding:8px 12px}.llms-table th:first-child,.llms-table td:first-child{padding-right:12px}.llms-table th:last-child,.llms-table td:last-child{padding-left:12px}#page .llms-table tfoot label{display:inline}#page .llms-table tfoot select{height:auto}/*!
* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/@font-face{font-family:"FontAwesome";src:url("../fonts/fontawesome-webfont.eot?v=4.7.0");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"),url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-right:0;margin-right:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;right:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{right:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:right}.fa-pull-right{float:left}.fa.fa-pull-left{margin-left:.3em}.fa.fa-pull-right{margin-right:.3em}.pull-right{float:left}.pull-left{float:right}.fa.pull-left{margin-left:.3em}.fa.pull-right{margin-right:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(-270deg);transform:rotate(-270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{-webkit-filter:none;filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;right:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-vcard:before,.fa-address-card:before{content:""}.fa-vcard-o:before,.fa-address-card-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.llms-spinning{background:rgba(250,250,250,.7);bottom:0;display:none;right:0;position:absolute;left:0;top:0}.llms-spinner{-webkit-animation:llms-spinning 1.5s linear infinite;animation:llms-spinning 1.5s linear infinite;-webkit-box-sizing:border-box;box-sizing:border-box;border:4px solid #313131;border-radius:50%;height:40px;right:50%;margin-right:-20px;margin-top:-20px;position:absolute;top:50%;width:40px}.llms-spinner.small{border-width:2px;height:20px;margin-right:-10px;margin-top:-10px;width:20px}@-webkit-keyframes llms-spinning{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}50%{border-radius:5%}100%{-webkit-transform:rotate(-220deg);transform:rotate(-220deg)}}@keyframes llms-spinning{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}50%{border-radius:5%}100%{-webkit-transform:rotate(-220deg);transform:rotate(-220deg)}}
diff --git a/assets/css/lifterlms.css b/assets/css/lifterlms.css
index 5da4d5b556..7ed7edb3b1 100644
--- a/assets/css/lifterlms.css
+++ b/assets/css/lifterlms.css
@@ -734,11 +734,6 @@
text-align: center;
}
-/* Genesis Overrides */
-h1, h2, h3, h4, h5, h6 {
- font-weight: 300;
-}
-
#main-content .llms-payment-options p {
margin: 0;
font-size: 16px;
diff --git a/assets/css/lifterlms.min.css b/assets/css/lifterlms.min.css
index c5aa9991b9..14acac5cca 100644
--- a/assets/css/lifterlms.min.css
+++ b/assets/css/lifterlms.min.css
@@ -1,4 +1,4 @@
-.llms-pagination ul:before,.llms-pagination ul:after,.llms-student-dashboard .llms-sd-items:before,.llms-form-fields:before,.llms-checkout-cols-2:before,.llms-access-plans:before,.llms-course-navigation:before,.llms-loop-list:before,.llms-cols:before,.llms-student-dashboard .llms-sd-items:after,.llms-form-fields:after,.llms-checkout-cols-2:after,.llms-access-plans:after,.llms-course-navigation:after,.llms-loop-list:after,.llms-cols:after{content:" ";display:table}.llms-pagination ul:after,.llms-student-dashboard .llms-sd-items:after,.llms-form-fields:after,.llms-checkout-cols-2:after,.llms-access-plans:after,.llms-course-navigation:after,.llms-loop-list:after,.llms-cols:after{clear:both}.llms-cols .llms-col{width:100%}@media all and (min-width: 600px){.llms-cols [class*=llms-col-]{float:left}}.llms-flex-cols{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.llms-flex-cols [class*=llms-col]{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;width:100%}@media all and (min-width: 600px){.llms-cols .llms-col-1,.llms-flex-cols .llms-col-1{width:100%}.llms-cols .llms-col-2,.llms-flex-cols .llms-col-2{width:50%}.llms-cols .llms-col-3,.llms-flex-cols .llms-col-3{width:33.3333333333%}.llms-cols .llms-col-4,.llms-flex-cols .llms-col-4{width:25%}.llms-cols .llms-col-5,.llms-flex-cols .llms-col-5{width:20%}.llms-cols .llms-col-6,.llms-flex-cols .llms-col-6{width:16.6666666667%}.llms-cols .llms-col-7,.llms-flex-cols .llms-col-7{width:14.2857142857%}.llms-cols .llms-col-8,.llms-flex-cols .llms-col-8{width:12.5%}.llms-cols .llms-col-9,.llms-flex-cols .llms-col-9{width:11.1111111111%}.llms-cols .llms-col-10,.llms-flex-cols .llms-col-10{width:10%}.llms-cols .llms-col-11,.llms-flex-cols .llms-col-11{width:9.0909090909%}.llms-cols .llms-col-12,.llms-flex-cols .llms-col-12{width:8.3333333333%}}.llms-button-action,.llms-button-danger,.llms-button-primary,.llms-button-secondary{border:none;border-radius:0;color:#fefefe;cursor:pointer;font-size:16px;font-weight:300;text-decoration:none;text-shadow:none;line-height:1;margin:0;max-width:100%;padding:12px 24px;position:relative;-webkit-transition:all .5s ease;transition:all .5s ease}.llms-button-action:disabled,.llms-button-danger:disabled,.llms-button-primary:disabled,.llms-button-secondary:disabled{opacity:.5}.llms-button-action:hover,.llms-button-action:active,.llms-button-danger:hover,.llms-button-danger:active,.llms-button-primary:hover,.llms-button-primary:active,.llms-button-secondary:hover,.llms-button-secondary:active{color:#fefefe}.llms-button-action:focus,.llms-button-danger:focus,.llms-button-primary:focus,.llms-button-secondary:focus{color:#fefefe}.llms-button-action.auto,.llms-button-danger.auto,.llms-button-primary.auto,.llms-button-secondary.auto{width:auto}.llms-button-action.full,.llms-button-danger.full,.llms-button-primary.full,.llms-button-secondary.full{display:block;text-align:center;width:100%}.llms-button-action.square,.llms-button-danger.square,.llms-button-primary.square,.llms-button-secondary.square{padding:12px}.llms-button-action.small,.llms-button-danger.small,.llms-button-primary.small,.llms-button-secondary.small{font-size:13px;padding:8px 14px}.llms-button-action.small.square,.llms-button-danger.small.square,.llms-button-primary.small.square,.llms-button-secondary.small.square{padding:8px}.llms-button-action.large,.llms-button-danger.large,.llms-button-primary.large,.llms-button-secondary.large{font-size:18px;line-height:1.2;padding:16px 32px}.llms-button-action.large.square,.llms-button-danger.large.square,.llms-button-primary.large.square,.llms-button-secondary.large.square{padding:16px}.llms-button-action.large .fa,.llms-button-danger.large .fa,.llms-button-primary.large .fa,.llms-button-secondary.large .fa{left:-7px;position:relative}.llms-button-primary{background:#2295ff}.llms-button-primary:hover,.llms-button-primary.clicked{background:#0077e4}.llms-button-primary:focus,.llms-button-primary:active{background:#4ba9ff}.llms-button-secondary{background:#e1e1e1;color:#414141}.llms-button-secondary:hover{color:#414141;background:#cdcdcd}.llms-button-secondary:focus,.llms-button-secondary:active{color:#414141;background:#ebebeb}.llms-button-action{background:#f8954f}.llms-button-action:hover,.llms-button-action.clicked{background:#f67d28}.llms-button-action:focus,.llms-button-action:active{background:#faad76}.llms-button-danger{background:#e5554e}.llms-button-danger:hover{background:#e0332a}.llms-button-danger:focus,.llms-button-danger:active{background:#e86660}.llms-donut{background-color:#f1f1f1;background-image:none;border-radius:50%;color:#ef476f;height:200px;overflow:hidden;position:relative;width:200px}.llms-donut:before,.llms-donut:after{content:" ";display:table}.llms-donut:after{clear:both}.llms-donut svg{overflow:visible !important;pointer-events:none;width:100%}.llms-donut svg path{fill:none;stroke-width:35px;stroke:#ef476f}.llms-donut.mini{height:36px;width:36px}.llms-donut.mini .percentage{font-size:10px}.llms-donut.small{height:100px;width:100px}.llms-donut.small .percentage{font-size:18px}.llms-donut.medium{height:130px;width:130px}.llms-donut.medium .percentage{font-size:26px}.llms-donut.large{height:260px;width:260px}.llms-donut.large .percentage{font-size:48px}.llms-donut .inside{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#fff;border-radius:50%;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;height:80%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;left:50%;position:absolute;text-align:center;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:80%;top:50%;z-index:3}.llms-donut .percentage{line-height:1.2;font-size:34px}.llms-donut .caption{font-size:50%}.lifterlms [data-tip],.lifterlms [data-title-default],.lifterlms [data-title-active],.llms-metabox [data-tip],.llms-metabox [data-title-default],.llms-metabox [data-title-active],.llms-mb-container [data-tip],.llms-mb-container [data-title-default],.llms-mb-container [data-title-active],.llms-quiz-wrapper [data-tip],.llms-quiz-wrapper [data-title-default],.llms-quiz-wrapper [data-title-active]{position:relative}.lifterlms [data-tip].tip--top-right:before,.lifterlms [data-title-default].tip--top-right:before,.lifterlms [data-title-active].tip--top-right:before,.llms-metabox [data-tip].tip--top-right:before,.llms-metabox [data-title-default].tip--top-right:before,.llms-metabox [data-title-active].tip--top-right:before,.llms-mb-container [data-tip].tip--top-right:before,.llms-mb-container [data-title-default].tip--top-right:before,.llms-mb-container [data-title-active].tip--top-right:before,.llms-quiz-wrapper [data-tip].tip--top-right:before,.llms-quiz-wrapper [data-title-default].tip--top-right:before,.llms-quiz-wrapper [data-title-active].tip--top-right:before{bottom:100%;left:-10px}.lifterlms [data-tip].tip--top-right:hover:before,.lifterlms [data-title-default].tip--top-right:hover:before,.lifterlms [data-title-active].tip--top-right:hover:before,.llms-metabox [data-tip].tip--top-right:hover:before,.llms-metabox [data-title-default].tip--top-right:hover:before,.llms-metabox [data-title-active].tip--top-right:hover:before,.llms-mb-container [data-tip].tip--top-right:hover:before,.llms-mb-container [data-title-default].tip--top-right:hover:before,.llms-mb-container [data-title-active].tip--top-right:hover:before,.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before{bottom:calc(100% + 6px)}.lifterlms [data-tip].tip--top-right:after,.lifterlms [data-title-default].tip--top-right:after,.lifterlms [data-title-active].tip--top-right:after,.llms-metabox [data-tip].tip--top-right:after,.llms-metabox [data-title-default].tip--top-right:after,.llms-metabox [data-title-active].tip--top-right:after,.llms-mb-container [data-tip].tip--top-right:after,.llms-mb-container [data-title-default].tip--top-right:after,.llms-mb-container [data-title-active].tip--top-right:after,.llms-quiz-wrapper [data-tip].tip--top-right:after,.llms-quiz-wrapper [data-title-default].tip--top-right:after,.llms-quiz-wrapper [data-title-active].tip--top-right:after{border-top-color:#444;left:6px;top:0}.lifterlms [data-tip].tip--top-right:hover:after,.lifterlms [data-title-default].tip--top-right:hover:after,.lifterlms [data-title-active].tip--top-right:hover:after,.llms-metabox [data-tip].tip--top-right:hover:after,.llms-metabox [data-title-default].tip--top-right:hover:after,.llms-metabox [data-title-active].tip--top-right:hover:after,.llms-mb-container [data-tip].tip--top-right:hover:after,.llms-mb-container [data-title-default].tip--top-right:hover:after,.llms-mb-container [data-title-active].tip--top-right:hover:after,.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after{top:-6px}.lifterlms [data-tip].tip--top-left:before,.lifterlms [data-title-default].tip--top-left:before,.lifterlms [data-title-active].tip--top-left:before,.llms-metabox [data-tip].tip--top-left:before,.llms-metabox [data-title-default].tip--top-left:before,.llms-metabox [data-title-active].tip--top-left:before,.llms-mb-container [data-tip].tip--top-left:before,.llms-mb-container [data-title-default].tip--top-left:before,.llms-mb-container [data-title-active].tip--top-left:before,.llms-quiz-wrapper [data-tip].tip--top-left:before,.llms-quiz-wrapper [data-title-default].tip--top-left:before,.llms-quiz-wrapper [data-title-active].tip--top-left:before{bottom:100%;right:-10px}.lifterlms [data-tip].tip--top-left:hover:before,.lifterlms [data-title-default].tip--top-left:hover:before,.lifterlms [data-title-active].tip--top-left:hover:before,.llms-metabox [data-tip].tip--top-left:hover:before,.llms-metabox [data-title-default].tip--top-left:hover:before,.llms-metabox [data-title-active].tip--top-left:hover:before,.llms-mb-container [data-tip].tip--top-left:hover:before,.llms-mb-container [data-title-default].tip--top-left:hover:before,.llms-mb-container [data-title-active].tip--top-left:hover:before,.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before{bottom:calc(100% + 6px)}.lifterlms [data-tip].tip--top-left:after,.lifterlms [data-title-default].tip--top-left:after,.lifterlms [data-title-active].tip--top-left:after,.llms-metabox [data-tip].tip--top-left:after,.llms-metabox [data-title-default].tip--top-left:after,.llms-metabox [data-title-active].tip--top-left:after,.llms-mb-container [data-tip].tip--top-left:after,.llms-mb-container [data-title-default].tip--top-left:after,.llms-mb-container [data-title-active].tip--top-left:after,.llms-quiz-wrapper [data-tip].tip--top-left:after,.llms-quiz-wrapper [data-title-default].tip--top-left:after,.llms-quiz-wrapper [data-title-active].tip--top-left:after{border-top-color:#444;right:6px;top:0}.lifterlms [data-tip].tip--top-left:hover:after,.lifterlms [data-title-default].tip--top-left:hover:after,.lifterlms [data-title-active].tip--top-left:hover:after,.llms-metabox [data-tip].tip--top-left:hover:after,.llms-metabox [data-title-default].tip--top-left:hover:after,.llms-metabox [data-title-active].tip--top-left:hover:after,.llms-mb-container [data-tip].tip--top-left:hover:after,.llms-mb-container [data-title-default].tip--top-left:hover:after,.llms-mb-container [data-title-active].tip--top-left:hover:after,.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after{top:-6px}.lifterlms [data-tip].tip--bottom-left:before,.lifterlms [data-title-default].tip--bottom-left:before,.lifterlms [data-title-active].tip--bottom-left:before,.llms-metabox [data-tip].tip--bottom-left:before,.llms-metabox [data-title-default].tip--bottom-left:before,.llms-metabox [data-title-active].tip--bottom-left:before,.llms-mb-container [data-tip].tip--bottom-left:before,.llms-mb-container [data-title-default].tip--bottom-left:before,.llms-mb-container [data-title-active].tip--bottom-left:before,.llms-quiz-wrapper [data-tip].tip--bottom-left:before,.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,.llms-quiz-wrapper [data-title-active].tip--bottom-left:before{top:100%;right:-10px}.lifterlms [data-tip].tip--bottom-left:hover:before,.lifterlms [data-title-default].tip--bottom-left:hover:before,.lifterlms [data-title-active].tip--bottom-left:hover:before,.llms-metabox [data-tip].tip--bottom-left:hover:before,.llms-metabox [data-title-default].tip--bottom-left:hover:before,.llms-metabox [data-title-active].tip--bottom-left:hover:before,.llms-mb-container [data-tip].tip--bottom-left:hover:before,.llms-mb-container [data-title-default].tip--bottom-left:hover:before,.llms-mb-container [data-title-active].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before{top:calc(100% + 6px)}.lifterlms [data-tip].tip--bottom-left:after,.lifterlms [data-title-default].tip--bottom-left:after,.lifterlms [data-title-active].tip--bottom-left:after,.llms-metabox [data-tip].tip--bottom-left:after,.llms-metabox [data-title-default].tip--bottom-left:after,.llms-metabox [data-title-active].tip--bottom-left:after,.llms-mb-container [data-tip].tip--bottom-left:after,.llms-mb-container [data-title-default].tip--bottom-left:after,.llms-mb-container [data-title-active].tip--bottom-left:after,.llms-quiz-wrapper [data-tip].tip--bottom-left:after,.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,.llms-quiz-wrapper [data-title-active].tip--bottom-left:after{border-bottom-color:#444;right:6px;bottom:0}.lifterlms [data-tip].tip--bottom-left:hover:after,.lifterlms [data-title-default].tip--bottom-left:hover:after,.lifterlms [data-title-active].tip--bottom-left:hover:after,.llms-metabox [data-tip].tip--bottom-left:hover:after,.llms-metabox [data-title-default].tip--bottom-left:hover:after,.llms-metabox [data-title-active].tip--bottom-left:hover:after,.llms-mb-container [data-tip].tip--bottom-left:hover:after,.llms-mb-container [data-title-default].tip--bottom-left:hover:after,.llms-mb-container [data-title-active].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after{bottom:-6px}.lifterlms [data-tip].tip--bottom-right:before,.lifterlms [data-title-default].tip--bottom-right:before,.lifterlms [data-title-active].tip--bottom-right:before,.llms-metabox [data-tip].tip--bottom-right:before,.llms-metabox [data-title-default].tip--bottom-right:before,.llms-metabox [data-title-active].tip--bottom-right:before,.llms-mb-container [data-tip].tip--bottom-right:before,.llms-mb-container [data-title-default].tip--bottom-right:before,.llms-mb-container [data-title-active].tip--bottom-right:before,.llms-quiz-wrapper [data-tip].tip--bottom-right:before,.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,.llms-quiz-wrapper [data-title-active].tip--bottom-right:before{top:100%;left:-10px}.lifterlms [data-tip].tip--bottom-right:hover:before,.lifterlms [data-title-default].tip--bottom-right:hover:before,.lifterlms [data-title-active].tip--bottom-right:hover:before,.llms-metabox [data-tip].tip--bottom-right:hover:before,.llms-metabox [data-title-default].tip--bottom-right:hover:before,.llms-metabox [data-title-active].tip--bottom-right:hover:before,.llms-mb-container [data-tip].tip--bottom-right:hover:before,.llms-mb-container [data-title-default].tip--bottom-right:hover:before,.llms-mb-container [data-title-active].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before{top:calc(100% + 6px)}.lifterlms [data-tip].tip--bottom-right:after,.lifterlms [data-title-default].tip--bottom-right:after,.lifterlms [data-title-active].tip--bottom-right:after,.llms-metabox [data-tip].tip--bottom-right:after,.llms-metabox [data-title-default].tip--bottom-right:after,.llms-metabox [data-title-active].tip--bottom-right:after,.llms-mb-container [data-tip].tip--bottom-right:after,.llms-mb-container [data-title-default].tip--bottom-right:after,.llms-mb-container [data-title-active].tip--bottom-right:after,.llms-quiz-wrapper [data-tip].tip--bottom-right:after,.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,.llms-quiz-wrapper [data-title-active].tip--bottom-right:after{border-bottom-color:#444;left:6px;bottom:0}.lifterlms [data-tip].tip--bottom-right:hover:after,.lifterlms [data-title-default].tip--bottom-right:hover:after,.lifterlms [data-title-active].tip--bottom-right:hover:after,.llms-metabox [data-tip].tip--bottom-right:hover:after,.llms-metabox [data-title-default].tip--bottom-right:hover:after,.llms-metabox [data-title-active].tip--bottom-right:hover:after,.llms-mb-container [data-tip].tip--bottom-right:hover:after,.llms-mb-container [data-title-default].tip--bottom-right:hover:after,.llms-mb-container [data-title-active].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after{bottom:-6px}.lifterlms [data-tip]:before,.lifterlms [data-title-default]:before,.lifterlms [data-title-active]:before,.llms-metabox [data-tip]:before,.llms-metabox [data-title-default]:before,.llms-metabox [data-title-active]:before,.llms-mb-container [data-tip]:before,.llms-mb-container [data-title-default]:before,.llms-mb-container [data-title-active]:before,.llms-quiz-wrapper [data-tip]:before,.llms-quiz-wrapper [data-title-default]:before,.llms-quiz-wrapper [data-title-active]:before{background:#444;border-radius:4px;color:#fff;font-size:13px;line-height:1.2;padding:8px;max-width:300px;width:-webkit-max-content;width:-moz-max-content;width:max-content}.lifterlms [data-tip]:after,.lifterlms [data-title-default]:after,.lifterlms [data-title-active]:after,.llms-metabox [data-tip]:after,.llms-metabox [data-title-default]:after,.llms-metabox [data-title-active]:after,.llms-mb-container [data-tip]:after,.llms-mb-container [data-title-default]:after,.llms-mb-container [data-title-active]:after,.llms-quiz-wrapper [data-tip]:after,.llms-quiz-wrapper [data-title-default]:after,.llms-quiz-wrapper [data-title-active]:after{content:"";border:6px solid transparent;height:0;width:0}.lifterlms [data-tip]:before,.lifterlms [data-tip]:after,.lifterlms [data-title-default]:before,.lifterlms [data-title-default]:after,.lifterlms [data-title-active]:before,.lifterlms [data-title-active]:after,.llms-metabox [data-tip]:before,.llms-metabox [data-tip]:after,.llms-metabox [data-title-default]:before,.llms-metabox [data-title-default]:after,.llms-metabox [data-title-active]:before,.llms-metabox [data-title-active]:after,.llms-mb-container [data-tip]:before,.llms-mb-container [data-tip]:after,.llms-mb-container [data-title-default]:before,.llms-mb-container [data-title-default]:after,.llms-mb-container [data-title-active]:before,.llms-mb-container [data-title-active]:after,.llms-quiz-wrapper [data-tip]:before,.llms-quiz-wrapper [data-tip]:after,.llms-quiz-wrapper [data-title-default]:before,.llms-quiz-wrapper [data-title-default]:after,.llms-quiz-wrapper [data-title-active]:before,.llms-quiz-wrapper [data-title-active]:after{opacity:0;-webkit-transition:all .2s .1s ease;transition:all .2s .1s ease;position:absolute;pointer-events:none;visibility:hidden}.lifterlms [data-tip]:hover:before,.lifterlms [data-tip]:hover:after,.lifterlms [data-title-default]:hover:before,.lifterlms [data-title-default]:hover:after,.lifterlms [data-title-active]:hover:before,.lifterlms [data-title-active]:hover:after,.llms-metabox [data-tip]:hover:before,.llms-metabox [data-tip]:hover:after,.llms-metabox [data-title-default]:hover:before,.llms-metabox [data-title-default]:hover:after,.llms-metabox [data-title-active]:hover:before,.llms-metabox [data-title-active]:hover:after,.llms-mb-container [data-tip]:hover:before,.llms-mb-container [data-tip]:hover:after,.llms-mb-container [data-title-default]:hover:before,.llms-mb-container [data-title-default]:hover:after,.llms-mb-container [data-title-active]:hover:before,.llms-mb-container [data-title-active]:hover:after,.llms-quiz-wrapper [data-tip]:hover:before,.llms-quiz-wrapper [data-tip]:hover:after,.llms-quiz-wrapper [data-title-default]:hover:before,.llms-quiz-wrapper [data-title-default]:hover:after,.llms-quiz-wrapper [data-title-active]:hover:before,.llms-quiz-wrapper [data-title-active]:hover:after{opacity:1;-webkit-transition:all .2s .6s ease;transition:all .2s .6s ease;visibility:visible;z-index:99999999}.lifterlms [data-tip]:before,.llms-metabox [data-tip]:before,.llms-mb-container [data-tip]:before,.llms-quiz-wrapper [data-tip]:before{content:attr(data-tip)}.lifterlms [data-tip].active:before,.llms-metabox [data-tip].active:before,.llms-mb-container [data-tip].active:before,.llms-quiz-wrapper [data-tip].active:before{content:attr(data-tip-active)}.llms-membership-image{display:block;margin:0 auto}.llms-course-image{display:block;margin:0 auto;max-width:100%}.llms-featured-image{display:block;margin:0 auto}.llms-image-thumb{width:150px}.llms-video-wrapper .center-video{height:auto;max-width:100%;overflow:hidden;position:relative;padding-top:56.25%;text-align:center}.llms-video-wrapper .center-video>.wp-video,.llms-video-wrapper .center-video .fluid-width-video-wrapper,.llms-video-wrapper .center-video iframe,.llms-video-wrapper .center-video object,.llms-video-wrapper .center-video embed{height:100%;left:0;position:absolute;top:0;width:100%}.llms-video-wrapper .center-video>.wp-video{width:100% !important}.llms-video-wrapper .center-video .fluid-width-video-wrapper{padding-top:0 !important}.clear{clear:both;width:100%}.llms-featured-image{text-align:center}h1,h2,h3,h4,h5,h6{font-weight:300}#main-content .llms-payment-options p{margin:0;font-size:16px}.llms-option{display:block;position:relative;margin:20px 0;padding-left:40px;font-size:16px}.llms-option label{cursor:pointer;position:static}.llms-option:first-child{margin-top:0}.llms-option:last-child{margin-bottom:0}#main-content .llms-option:last-child{margin-bottom:0}.llms-option input[type=radio]{display:block;position:absolute;top:3px;left:0;z-index:0}.llms-option input[type=radio]{display:inline-block}.llms-option input[type=radio]+label span.llms-radio{display:none}.llms-option input[type=radio]+label span.llms-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:20;position:absolute;top:0;left:-2px;display:inline-block;width:24px;height:24px;border-radius:50%;cursor:pointer;vertical-align:middle;-webkit-box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.5) 0 0 0 1px;box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.5) 0 0 0 1px;background:#efefef;background-image:radial-gradient(ellipse at center, #e5554e 0%, #e5554e 40%, #efefef 45%);background-repeat:no-repeat;-webkit-transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);transition:background-position .15s cubic-bezier(0.8, 0, 1, 1)}.llms-option input[type=radio]:checked+label span.llms-radio{-webkit-transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1)}.llms-option input[type=radio]+label span.llms-radio{background-position:-24px 0}.llms-option input[type=radio]:checked+label span.llms-radio{background-position:0 0}.llms-option input[type=submit]{border:none;background:#e5554e;color:#fff;font-size:20px;padding:10px 0;border-radius:3px;cursor:pointer;width:100%}.llms-styled-text{padding:14px 0}.llms-notice-box{border-radius:3px;z-index:10;margin:10px 0;padding:15px 20px;border:1px solid #ccc;list-style-type:none;width:100%;overflow:auto}.llms-notice-box input[type=text]{height:auto}.llms-notice-box .col-1-1{width:100%}.llms-notice-box .col-1-1 input[type=text]{width:100%}.llms-notice-box .col-1-2{width:50%;float:left}@media screen and (max-width: 768px){.llms-notice-box .col-1-2{width:100%}}.llms-notice-box .col-1-3{width:33%;float:left;margin-right:10px}.llms-notice-box .col-1-4{width:25%;float:left;margin-right:10px}@media screen and (max-width: 768px){.llms-notice-box .col-1-4{width:100%}}.llms-notice-box .col-1-6{width:16.6%;float:left;margin-right:10px}.llms-notice-box .col-1-8{width:11%;float:right}.llms-notice-box .llms-pad-right{padding-right:10px}@media screen and (max-width: 768px){.llms-notice-box .llms-pad-right{padding-right:0}}input[type=text].cc_cvv,#cc_cvv{margin-right:0;width:23%;float:right}.llms-clear-box{border-radius:3px;z-index:10;margin:10px 0;padding:15px 20px;list-style-type:none;width:100%;overflow:auto}.llms-price-label{font-weight:normal}.llms-final-price{font-weight:bold;float:right}.llms-center-content{text-align:center}.llms-input-text{background-color:#fff;border:1px solid #ddd;color:#333;font-size:18px;font-weight:300;padding:16px;width:100%}.llms-price{margin-bottom:0;font-weight:bold}.llms-price-loop{margin-bottom:0;font-weight:bold}.courses .entry{padding:0}.list-view .site-content .llms-course-list .hentry,.list-view .site-content .llms-membership-list .hentry{border-top:0;padding-top:0}.llms-content{width:100%}.llms-lesson-button-wrapper{width:100%;display:block;clear:both;text-align:center}.llms-template-wrapper{width:100%;display:block;clear:both}.llms-button-wrapper{width:100%;display:block;clear:both;text-align:center}.llms-styled-select{border:1px solid #ccc;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:3px;overflow:hidden;position:relative}.llms-styled-select,.llms-styled-select select{width:100%}select:focus{outline:none}.llms-styled-select select{height:34px;padding:5px 0 5px 5px;background:transparent;border:none;-webkit-appearance:none;font-size:16px;color:#444}@-moz-document url-prefix(){.--ms-styled-select select{width:110%}}.llms-styled-select .fa-sort-desc{position:absolute;top:0;right:12px;font-size:24px;color:#ccc}select::-ms-expand{display:none}_:-o-prefocus .llms-styled-select,.selector .llms-styled-select{background:none}.llms-form-item-wrapper{margin-bottom:1em}.llms-progress-circle{position:relative;width:200px;height:200px;float:left}.llms-progress-circle-count{top:27%;position:absolute;width:94%;text-align:center;color:#666;font-size:44px}.llms-progress-circle svg{position:absolute;width:200px;height:200px}.llms-progress-circle circle{fill:transparent}svg .llms-background-circle{fill:transparent;stroke-width:10px;stroke:#f1f2f1;stroke-dasharray:430}svg .llms-animated-circle{fill:transparent;stroke-width:10px;stroke:#e5554e;stroke-dasharray:430;stroke-dashoffset:410}.llms-widget-syllabus .llms-lesson.current-lesson .lesson-title{font-weight:700}.llms-widget-syllabus .llms-lesson-complete,.llms-widget-syllabus .lesson-complete-placeholder{font-size:1.2em;margin-right:6px;color:#ccc}.llms-widget-syllabus .llms-lesson-complete.done,.llms-widget-syllabus .lesson-complete-placeholder.done{color:#e5554e}.llms-widget-syllabus .section-title{font-weight:bold}.llms-widget-syllabus .lesson-title a{text-decoration:none}.llms-widget-syllabus .lesson-title a:hover{text-decoration:none !important}.llms-widget-syllabus .lesson-title.done a{color:#999;text-decoration:line-through}.llms-widget-syllabus ul{list-style-type:none}.llms-widget-syllabus ul li{list-style-type:none}.llms-widget-syllabus ul li ul li{margin:0 0 2px 0;padding:0}.llms-remove-coupon{float:right}.llms-lesson-link-locked,.llms-lesson-link-locked:hover{background:#f1f1f1;-webkit-box-shadow:0 1px 2px 0 rgba(1,1,1,.4);box-shadow:0 1px 2px 0 rgba(1,1,1,.4);display:block;color:#a6a6a6;min-height:85px;padding:15px;text-decoration:none;position:relative}.llms-lesson-preview.is-complete .llms-lesson-link-locked{padding-left:75px}.llms-lesson-tooltip{display:none;position:absolute;color:#000;background-color:silver;padding:.25em;border-radius:2px;z-index:100;top:0;left:50%;text-align:center;-webkit-transform:translateX(-50%) translateY(-100%);transform:translateX(-50%) translateY(-100%)}.llms-lesson-tooltip:after{content:"";width:0;height:0;border-top:8px solid silver;border-left:8px solid transparent;border-right:8px solid transparent;position:absolute;bottom:-8px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.llms-lesson-tooltip.active{display:inline-block}.llms-loop-list{list-style:none;margin:0 -10px;padding:0}@media all and (min-width: 600px){.llms-loop-list.cols-1 .llms-loop-item{width:100%}.llms-loop-list.cols-2 .llms-loop-item{width:50%}.llms-loop-list.cols-3 .llms-loop-item{width:33.3333333333%}.llms-loop-list.cols-4 .llms-loop-item{width:25%}.llms-loop-list.cols-5 .llms-loop-item{width:20%}.llms-loop-list.cols-6 .llms-loop-item{width:16.6666666667%}}.llms-loop-item{float:left;list-style:none;margin:0;padding:0;width:100%}.llms-loop-item-content{background:#f1f1f1;padding-bottom:10px;margin:10px}.llms-loop-item-content:hover{background:#eaeaea}.llms-loop-item-content .llms-loop-link{color:#212121;display:block}.llms-loop-item-content .llms-loop-link:visited{color:#212121}.llms-loop-item-content .llms-featured-image{display:block;max-width:100%}.llms-loop-item-content .llms-loop-title{margin-top:5px}.llms-loop-item-content .llms-loop-title:hover{color:#2295ff}.llms-loop-item-content .llms-meta,.llms-loop-item-content .llms-author,.llms-loop-item-content .llms-loop-title{padding:0 10px}.llms-loop-item-content .llms-meta,.llms-loop-item-content .llms-author{color:#444;display:block;font-size:13px;margin-bottom:3px}.llms-loop-item-content .llms-meta:last-child,.llms-loop-item-content .llms-author:last-child{margin-bottom:0}.llms-loop-item-content .llms-featured-img-wrap{overflow:hidden}.llms-loop-item-content p{margin-bottom:0}.llms-loop-item-content .llms-progress{margin:0;height:.4em}.llms-loop-item-content .llms-progress .progress__indicator{display:none}.llms-loop-item-content .llms-progress .llms-progress-bar{background-color:#f6f6f6;right:0;top:0}.course .llms-meta-info{margin:20px 0}.course .llms-meta-info .llms-meta-title{margin-bottom:5px}.course .llms-meta-info .llms-meta p{margin-bottom:0}.course .llms-meta-info .llms-meta span{font-weight:700}.course .llms-course-progress{margin:40px auto;max-width:480px;text-align:center}.llms-syllabus-wrapper{margin:15px;text-align:center}.llms-syllabus-wrapper .llms-section-title{margin:25px 0 0}.llms-course-navigation .llms-prev-lesson,.llms-course-navigation .llms-next-lesson,.llms-course-navigation .llms-back-to-course{width:49%}.llms-course-navigation .llms-prev-lesson,.llms-course-navigation .llms-back-to-course{float:left;margin-right:.5%}.llms-course-navigation .llms-next-lesson,.llms-course-navigation .llms-prev-lesson+.llms-back-to-course{float:right;margin-left:.5%}.llms-lesson-preview{display:inline-block;margin-top:15px;max-width:100%;position:relative;width:480px}.llms-lesson-preview .llms-lesson-link{background:#f1f1f1;color:#212121;display:block;padding:15px;text-decoration:none}.llms-lesson-preview .llms-lesson-link:before,.llms-lesson-preview .llms-lesson-link:after{content:" ";display:table}.llms-lesson-preview .llms-lesson-link:after{clear:both}.llms-lesson-preview .llms-lesson-link:hover{background:#eaeaea}.llms-lesson-preview .llms-lesson-link:visited{color:#212121}.llms-lesson-preview .llms-lesson-thumbnail{margin-bottom:10px}.llms-lesson-preview .llms-lesson-thumbnail img{display:block;width:100%}.llms-lesson-preview .llms-pre-text{text-align:left}.llms-lesson-preview .llms-lesson-title{font-weight:700;margin:0 auto 10px;text-align:left}.llms-lesson-preview .llms-lesson-title:last-child{margin-bottom:0}.llms-lesson-preview .llms-lesson-excerpt{text-align:left}.llms-lesson-preview .llms-main{float:left;width:100%}.llms-lesson-preview .llms-extra{float:right;width:15%}.llms-lesson-preview .llms-extra+.llms-main{width:85%}.llms-lesson-preview .llms-lesson-counter,.llms-lesson-preview .llms-free-lesson-svg,.llms-lesson-preview .llms-lesson-complete,.llms-lesson-preview .llms-lesson-complete-placeholder{display:block;font-size:32px;margin-bottom:15px}.llms-lesson-preview.is-free .llms-lesson-complete,.llms-lesson-preview.is-complete .llms-lesson-complete{color:#2295ff}.llms-lesson-preview .llms-icon-free{background:#2295ff;border-radius:4px;color:#f1f1f1;display:inline-block;padding:5px 6px 4px;line-height:1;font-size:14px}.llms-lesson-preview.is-incomplete .llms-lesson-complete{color:#cacaca}.llms-lesson-preview .llms-lesson-counter{font-size:16px;line-height:1}.llms-lesson-preview .llms-free-lesson-svg{fill:currentColor;height:23px;width:50px}.llms-lesson-preview p{margin-bottom:0}.llms-progress{clear:both;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;position:relative;height:1em;width:100%;margin:15px 0}.llms-progress .llms-progress-bar{background-color:#f1f2f1;position:relative;height:.4em;top:.3em;width:100%}.llms-progress .progress-bar-complete{background-color:#ef476f;height:100%}.progress__indicator{float:right;text-align:right;height:1em;line-height:1em;margin-left:5px;white-space:nowrap}.llms-author .name{margin-left:5px}.llms-author .label{margin-left:5px}.llms-author .avatar{border-radius:50%}.llms-author .bio{margin-top:5px}.llms-instructor-info .llms-instructors .llms-col:first-child .llms-author{margin-left:0}.llms-instructor-info .llms-instructors .llms-col:last-child .llms-author{margin-right:0}.llms-instructor-info .llms-instructors .llms-author{background:#f5f5f5;border-top:4px solid #2295ff;text-align:center;margin:45px 5px 5px;padding:0 10px 10px}.llms-instructor-info .llms-instructors .llms-author .avatar{background:#2295ff;border:4px solid #2295ff;display:block;margin:-35px auto 10px}.llms-instructor-info .llms-instructors .llms-author .llms-author-info{display:block}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.name{font-weight:700}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.label{font-size:85%}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.bio{font-size:90%;margin-bottom:0}.llms-notice{background:rgba(34,149,255,.3);border-color:#2295ff;border-style:solid;border-width:3px;padding:10px;margin-bottom:10px}.llms-notice p:last-child,.llms-notice ul:last-child{margin-bottom:0}.llms-notice li{list-style-type:none}.llms-notice.llms-debug{background:rgba(202,202,202,.3);border-color:#cacaca}.llms-notice.llms-error{background:rgba(229,85,78,.3);border-color:#e5554e}.llms-notice.llms-success{background:rgba(131,195,115,.3);border-color:#83c373}.entry-content .llms-notice{margin:0 0 10px}.entry-content .llms-notice li{list-style-type:none}ul.llms-achievements-loop,.lifterlms ul.llms-achievements-loop,ul.llms-certificates-loop,.lifterlms ul.llms-certificates-loop{list-style-type:none;margin:0 -10px;padding:0}ul.llms-achievements-loop:before,ul.llms-achievements-loop:after,.lifterlms ul.llms-achievements-loop:before,.lifterlms ul.llms-achievements-loop:after,ul.llms-certificates-loop:before,ul.llms-certificates-loop:after,.lifterlms ul.llms-certificates-loop:before,.lifterlms ul.llms-certificates-loop:after{content:" ";display:table}ul.llms-achievements-loop:after,.lifterlms ul.llms-achievements-loop:after,ul.llms-certificates-loop:after,.lifterlms ul.llms-certificates-loop:after{clear:both}ul.llms-achievements-loop li.llms-achievement-loop-item,ul.llms-achievements-loop li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop li.llms-certificate-loop-item,ul.llms-certificates-loop li.llms-achievement-loop-item,ul.llms-certificates-loop li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop li.llms-certificate-loop-item{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;float:left;list-style-type:none;margin:0;padding:10px;width:100%}@media all and (min-width: 600px){ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item{width:100%}ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item{width:50%}ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item{width:33.3333333333%}ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item{width:25%}ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item{width:20%}}.llms-achievement,.llms-certificate{background:#f1f1f1;border:none;color:inherit;display:block;text-decoration:none;width:100%}.llms-achievement:hover,.llms-certificate:hover{background:#eaeaea}.llms-achievement .llms-achievement-img,.llms-certificate .llms-achievement-img{display:block;margin:0;width:100%}.llms-achievement .llms-achievement-title,.llms-certificate .llms-achievement-title{font-size:16px;margin:0;padding:10px;text-align:center}.llms-achievement .llms-certificate-title,.llms-certificate .llms-certificate-title{font-size:16px;margin:0;padding:0 0 10px}.llms-achievement .llms-achievement-info,.llms-achievement .llms-achievement-date,.llms-certificate .llms-achievement-info,.llms-certificate .llms-achievement-date{display:none}.llms-achievement .llms-achievement-content,.llms-certificate .llms-achievement-content{padding:20px}.llms-achievement .llms-achievement-content:empty,.llms-certificate .llms-achievement-content:empty{padding:0}.llms-achievement .llms-achievement-content *:last-child,.llms-certificate .llms-achievement-content *:last-child{margin-bottom:0}.llms-certificate{border:4px double #f1f1f1;padding:20px 10px;background:#fff;text-align:center}.llms-certificate:hover{background:#fff;border-color:#eaeaea}.llms-achievement-modal .llms-achievement{background:#fff}.llms-achievement-modal .llms-achievement-info{display:block}.llms-achievement-modal .llms-achievement-title{display:none}.llms-notification{background:#fff;-webkit-box-shadow:0 1px 2px -2px #333,0 1px 1px -1px #333;box-shadow:0 1px 2px -2px #333,0 1px 1px -1px #333;border-top:4px solid #2295ff;left:12px;opacity:0;padding:12px;position:fixed;right:12px;top:24px;-webkit-transition:opacity .4s ease-in-out,right .4s ease-in-out;transition:opacity .4s ease-in-out,right .4s ease-in-out;visibility:none;width:auto;z-index:9999999}.llms-notification:before,.llms-notification:after{content:" ";display:table}.llms-notification:after{clear:both}.llms-notification.visible{opacity:1;-webkit-transition:opacity .4s ease-in-out,right .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,-webkit-transform .2s ease-in-out;transition:opacity .4s ease-in-out,right .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,-webkit-transform .2s ease-in-out;transition:opacity .4s ease-in-out,right .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,transform .2s ease-in-out;transition:opacity .4s ease-in-out,right .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,transform .2s ease-in-out,-webkit-transform .2s ease-in-out;visibility:visible}.llms-notification.visible:hover .llms-notification-dismiss{opacity:1}.llms-notification .llms-notification-content{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.llms-notification .llms-notification-main{-ms-flex-item-align:start;align-self:flex-start;-webkit-box-flex:4;-ms-flex:4;flex:4;-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.llms-notification .llms-notification-title{font-size:18px;margin:0}.llms-notification .llms-notification-body{font-size:14px;line-height:1.4}.llms-notification .llms-notification-body p,.llms-notification .llms-notification-body li{font-size:inherit}.llms-notification .llms-notification-body p{margin-bottom:8px}.llms-notification .llms-notification-body .llms-mini-cert{background:#f6f6f6;border:1px solid #d0d0d0;-webkit-box-shadow:inset 0 0 0 3px #fefefe,inset 0 0 0 4px #dedede;box-shadow:inset 0 0 0 3px #fefefe,inset 0 0 0 4px #dedede;padding:16px 16px 24px;margin-top:12px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert-title{font-size:16px;font-weight:700;margin:12px auto;text-align:center}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body{width:100%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(1){width:65%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(2){width:35%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(3){width:85%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(4){width:75%;margin-top:18px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(5){width:70%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(6){margin-left:12px;margin-bottom:-24px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(7){width:65%;margin-right:12px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-line{border-radius:2px;height:8px;background:#b0b0b0;background-image:-webkit-gradient(linear, left top, right top, from(#b0b0b0), color-stop(20%, #a0a0a0), color-stop(40%, #b0b0b0), to(#b0b0b0));background-image:linear-gradient(to right, #b0b0b0 0%, #a0a0a0 20%, #b0b0b0 40%, #b0b0b0 100%);background-repeat:no-repeat;margin:4px auto}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-dot{background:#b0b0b0;border-radius:50%;display:inline-block;content:"";height:24px;width:24px}.llms-notification .llms-notification-body .llms-mini-cert p{margin-bottom:0}.llms-notification .llms-notification-aside{-ms-flex-item-align:start;align-self:flex-start;-webkit-box-flex:1;-ms-flex:1;flex:1;margin-right:12px;-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.llms-notification .llms-notification-icon{display:block;max-width:64px}.llms-notification .llms-notification-footer{border-top:1px solid #e5e5e5;font-size:12px;margin-top:12px;padding:6px 6px 0;text-align:right}.llms-notification .llms-notification-dismiss{color:#e5554e;cursor:pointer;font-size:22px;position:absolute;right:10px;top:8px;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out}.llms-sd-notification-center .llms-notification-list,.llms-sd-notification-center .llms-notification-list-item{list-style-type:none;margin:0;padding:0}.llms-sd-notification-center .llms-notification-list-item:hover .llms-notification{background:#fcfcfc}.llms-sd-notification-center .llms-notification{opacity:1;border-top:1px solid #e5e5e5;left:auto;padding:24px;position:relative;right:auto;top:auto;visibility:visible;width:auto}.llms-sd-notification-center .llms-notification .llms-notification-aside{max-width:64px}.llms-sd-notification-center .llms-notification .llms-notification-footer{border:none;padding:0;text-align:left}.llms-sd-notification-center .llms-notification .llms-progress{display:none !important}.llms-sd-notification-center .llms-notification .llms-notification-date{color:#515151;float:left;margin-right:6px}.llms-sd-notification-center .llms-notification .llms-mini-cert{margin:0 auto;max-width:380px}@media all and (min-width: 480px){.llms-notification{left:auto;right:-800px;width:360px}.llms-notification.visible{right:24px}.llms-notification .llms-notification-dismiss{opacity:0}}.llms-pagination ul{list-style-type:none}.llms-pagination ul li{float:left}.llms-pagination ul li a{border-bottom:0;text-decoration:none}.llms-pagination ul li .page-numbers{padding:.5em;text-decoration:underline}.llms-pagination ul li .page-numbers.current{text-decoration:none}.llms-tooltip{background:#2a2a2a;border-radius:4px;color:#fff;font-size:14px;line-height:1.2;opacity:0;top:-20px;padding:8px 12px;left:50%;position:absolute;pointer-events:none;-webkit-transform:translateX(-50%);transform:translateX(-50%);-webkit-transition:opacity .2s ease,top .2s ease;transition:opacity .2s ease,top .2s ease;max-width:320px}.llms-tooltip.show{top:-28px;opacity:1}.llms-tooltip:after{bottom:-8px;border-top:8px solid #2a2a2a;border-left:8px solid transparent;border-right:8px solid transparent;content:"";height:0;left:50%;position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:0}.webui-popover-title{font-size:initial;font-weight:initial;line-height:initial}.webui-popover-inverse .webui-popover-inner .close{color:#fff;opacity:.6;text-shadow:none}.webui-popover-inverse .webui-popover-inner .close:hover{opacity:.8}.webui-popover-inverse .webui-popover-content a{color:#fff;text-decoration:underline}.webui-popover-inverse .webui-popover-content a:hover{text-decoration:none}.single-llms_quiz .llms-quiz-attempt-results{margin:0;padding:0;list-style-type:none}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question{background:#efefef;margin:0 0 10px;position:relative}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer{color:inherit;display:block;padding:10px 35px 10px 10px;text-decoration:none}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:before,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:after{content:" ";display:table}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:after{clear:both}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect{background:rgba(255,146,43,.2)}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon{background-color:#ff922b}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct{background:rgba(131,195,115,.2)}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon{background-color:#83c373}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect{background:rgba(229,85,78,.2)}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon{background-color:#e5554e}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title{float:left;margin:0;line-height:1}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points{float:right;line-height:1}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip{position:absolute;right:-12px;top:-2px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon{color:rgba(255,255,255,.65);border-radius:50%;font-size:30px;height:40px;line-height:40px;text-align:center;width:40px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main{display:none;padding:0 10px 10px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label{font-weight:700;margin-bottom:10px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers{margin:0;padding:0}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer{padding:0;margin:0 0 0 30px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child{list-style-type:none;margin-left:0}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img{height:auto;max-width:200px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section{border-top:2px solid rgba(255,255,255,.5);margin-top:20px;padding-top:20px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child{border-top:none;margin-top:0;padding-top:0}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers{list-style-type:none;margin:0;padding:0}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer{display:inline-block;list-style-type:none;margin:0;padding:5px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed{opacity:.5}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title{font-style:italic;font-weight:normal}.single-llms_quiz .llms-return{margin-bottom:10px}.single-llms_quiz .llms-quiz-results:before,.single-llms_quiz .llms-quiz-results:after{content:" ";display:table}.single-llms_quiz .llms-quiz-results:after{clear:both}.single-llms_quiz .llms-quiz-results .llms-donut.passing{color:#83c373}.single-llms_quiz .llms-quiz-results .llms-donut.passing svg path{stroke:#83c373}.single-llms_quiz .llms-quiz-results .llms-donut.pending{color:#555}.single-llms_quiz .llms-quiz-results .llms-donut.pending svg path{stroke:#555}.single-llms_quiz .llms-quiz-results .llms-donut.failing{color:#e5554e}.single-llms_quiz .llms-quiz-results .llms-donut.failing svg path{stroke:#e5554e}.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside,.single-llms_quiz .llms-quiz-results .llms-quiz-results-main,.single-llms_quiz .llms-quiz-results .llms-quiz-results-history{margin-bottom:20px}@media all and (min-width: 600px){.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside{float:left;width:220px}.single-llms_quiz .llms-quiz-results .llms-quiz-results-main,.single-llms_quiz .llms-quiz-results .llms-quiz-results-history{float:left;width:calc(100% - 300px)}}.single-llms_quiz ul.llms-quiz-meta-info,.single-llms_quiz ul.llms-quiz-meta-info li{list-style-type:none;margin:0;padding:0}.single-llms_quiz ul.llms-quiz-meta-info{margin-bottom:10px}.single-llms_quiz .llms-quiz-buttons{margin-top:10px;text-align:left}.single-llms_quiz .llms-quiz-buttons form{display:inline-block}.llms-quiz-question-wrapper{min-height:140px;position:relative}.llms-quiz-question-wrapper .llms-quiz-loading{bottom:20px;left:0;position:absolute;right:0;text-align:center;z-index:1}.llms-quiz-ui{background:#fcfcfc;padding:20px;position:relative}.llms-quiz-ui .llms-quiz-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 0 30px}.llms-quiz-ui .llms-progress{background-color:#f1f2f1;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;height:8px;margin:0;overflow:hidden}.llms-quiz-ui .llms-progress .progress-bar-complete{-webkit-transition:width .3s ease-in;transition:width .3s ease-in;width:0}.llms-quiz-ui .llms-error{background:#e5554e;border-radius:4px;color:#fff;margin:10px 0;padding:10px}.llms-quiz-ui .llms-error:before,.llms-quiz-ui .llms-error:after{content:" ";display:table}.llms-quiz-ui .llms-error:after{clear:both}.llms-quiz-ui .llms-error a{color:rgba(255,255,255,.6);float:right;font-size:22px;line-height:1;text-decoration:none}.llms-quiz-ui .llms-quiz-counter{display:none;color:#6a6a6a;float:right;font-size:18px}.llms-quiz-ui .llms-quiz-counter .llms-sep{margin:0 5px}.llms-quiz-ui .llms-quiz-nav{margin-top:20px}.llms-quiz-ui .llms-quiz-nav button{margin:0 10px 0 0}.llms-question-wrapper .llms-question-text{font-size:30px;font-weight:400;margin-bottom:15px}.llms-question-wrapper ol.llms-question-choices{list-style-type:none;margin:0;padding:0}.llms-question-wrapper ol.llms-question-choices li.llms-choice{border-bottom:1px solid #e8e8e8;margin:0;padding:0;position:relative}.llms-question-wrapper ol.llms-question-choices li.llms-choice:last-child{border-bottom:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture{border-bottom:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture label{display:inline-block;padding:0}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-marker{bottom:10px;margin:0;position:absolute;right:10px}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image{margin:2px;padding:20px;-webkit-transition:background .4s ease;transition:background .4s ease}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image img{display:block;width:100%}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture input:checked~.llms-choice-image{background:#efefef}.llms-question-wrapper ol.llms-question-choices li.llms-choice input{display:none;left:0;pointer-events:none;position:absolute;top:0;visibility:hidden}.llms-question-wrapper ol.llms-question-choices li.llms-choice label{display:block;margin:0;padding:10px 20px;position:relative}.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .iterator{display:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .fa{display:inline}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker{background:#f0f0f0;display:inline-block;font-size:20px;height:40px;line-height:40px;margin-right:10px;text-align:center;-webkit-transition:all .2s ease;transition:all .2s ease;vertical-align:middle;width:40px}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker .fa{display:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--lister,.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--checkbox{border-radius:4px}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--radio{border-radius:50%}.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked+.llms-marker{background:#ef476f;color:#fff}.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked+.llms-marker .iterator{display:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked+.llms-marker .fa{display:inline}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-choice-text{display:inline-block;font-size:18px;font-weight:400;line-height:1.6;margin-bottom:0;vertical-align:middle;width:calc(100% - 60px)}.llms-quiz-timer{background:#fff;border:1px solid #83c373;border-radius:4px;color:#83c373;float:right;font-size:18px;line-height:1;margin-left:20px;padding:8px 12px;position:relative;white-space:nowrap;z-index:1}.llms-quiz-timer.color-half{border-color:#ff922b;color:#ff922b}.llms-quiz-timer.color-empty{border-color:#e5554e;color:#e5554e}.llms-quiz-timer .llms-tiles{display:inline-block;margin-left:5px}.voucher-expand{display:none}@media all and (min-width: 600px){.llms-access-plans.cols-1 .llms-access-plan{width:100%}.llms-access-plans.cols-2 .llms-access-plan{width:50%}.llms-access-plans.cols-3 .llms-access-plan{width:33.3333333333%}.llms-access-plans.cols-4 .llms-access-plan{width:25%}.llms-access-plans.cols-5 .llms-access-plan{width:20%}}.llms-free-enroll-form{margin-bottom:0}.llms-access-plan{-webkit-box-sizing:border-box;box-sizing:border-box;float:left;text-align:center;width:100%}.llms-access-plan .llms-access-plan-footer,.llms-access-plan .llms-access-plan-content{background:#f1f1f1}.llms-access-plan.featured .llms-access-plan-featured{background:#4ba9ff}.llms-access-plan.featured .llms-access-plan-footer,.llms-access-plan.featured .llms-access-plan-content{border-left:3px solid #2295ff;border-right:3px solid #2295ff}.llms-access-plan.featured .llms-access-plan-footer{border-bottom-color:#2295ff}.llms-access-plan.on-sale .price-regular{text-decoration:line-through}.llms-access-plan .stamp{background:#2295ff;color:#fff;font-size:11px;font-style:normal;font-weight:300;padding:2px 3px;vertical-align:top}.llms-access-plan .llms-access-plan-restrictions ul{margin:0}.llms-access-plan-featured{color:#fff;font-size:14px;font-weight:400;margin:0 2px 0 2px}.llms-access-plan-content{margin:0 2px 0}.llms-access-plan-content .llms-access-plan-pricing{padding:10px 0 0}.llms-access-plan-title{background:#2295ff;color:#fff;margin-bottom:0;padding:10px}.llms-access-plan-pricing .llms-price-currency-symbol{font-size:14px;vertical-align:top}.llms-access-plan-price{font-size:18px;font-variant:small-caps;line-height:20px}.llms-access-plan-price .lifterlms-price{font-weight:700}.llms-access-plan-price.sale{padding:5px 0;border-top:1px solid #d0d0d0;border-bottom:1px solid #d0d0d0}.llms-access-plan-trial,.llms-access-plan-schedule,.llms-access-plan-sale-end,.llms-access-plan-expiration{font-size:15px;font-variant:small-caps;line-height:1.2}.llms-access-plan-description{font-size:16px;padding:10px 10px 0}.llms-access-plan-description ul{margin:0}.llms-access-plan-description ul li{border-bottom:1px solid #d0d0d0;list-style-type:none}.llms-access-plan-description ul li:last-child{border-bottom:none}.llms-access-plan-description div:last-child,.llms-access-plan-description img:last-child,.llms-access-plan-description p:last-child,.llms-access-plan-description ul:last-child,.llms-access-plan-description li:last-child{margin-bottom:0}.llms-access-plan-restrictions .stamp{vertical-align:baseline}.llms-access-plan-restrictions ul{margin:0}.llms-access-plan-restrictions ul li{font-size:12px;line-height:14px;list-style-type:none}.llms-access-plan-restrictions a{color:#f8954f}.llms-access-plan-restrictions a:hover{color:#f67d28}.llms-access-plan-footer{border-bottom:3px solid #f1f1f1;padding:10px;margin:0 2px 2px 2px}.llms-access-plan-footer .llms-access-plan-pricing{padding:0 0 10px}.webui-popover-content .llms-members-only-restrictions{text-align:center}.webui-popover-content .llms-members-only-restrictions ul,.webui-popover-content .llms-members-only-restrictions ol,.webui-popover-content .llms-members-only-restrictions li,.webui-popover-content .llms-members-only-restrictions p{margin:0;padding:0}.webui-popover-content .llms-members-only-restrictions ul,.webui-popover-content .llms-members-only-restrictions ol,.webui-popover-content .llms-members-only-restrictions li{list-style-type:none}.webui-popover-content .llms-members-only-restrictions li{padding:8px 0;border-top:1px solid #3b3b3b}.webui-popover-content .llms-members-only-restrictions li:first-child{border-top:none}.webui-popover-content .llms-members-only-restrictions li a{display:block}.llms-checkout-wrapper form.llms-login{border:3px solid #2295ff;display:none;margin-bottom:10px}.llms-checkout-wrapper .llms-form-heading{background:#2295ff;color:#fff;margin:0 0 5px;padding:10px}.llms-checkout{background:#fff;position:relative}@media all and (min-width: 800px){.llms-checkout-cols-2 .llms-checkout-col{float:left}.llms-checkout-cols-2 .llms-checkout-col.llms-col-1{margin-right:5px;width:calc(58% - 5px)}.llms-checkout-cols-2 .llms-checkout-col.llms-col-2{margin-left:5px;width:calc(42% - 5px)}.llms-checkout-cols-2 .llms-checkout-col.llms-col-2 button{width:100%}}.llms-checkout-section{border:3px solid #2295ff;margin-bottom:10px;position:relative}.llms-checkout-section-content{margin:10px}.llms-checkout-section-content.llms-form-fields{margin:0px}.llms-checkout-section-content .llms-label{font-weight:400;font-variant:small-caps;text-transform:lowercase}.llms-checkout-section-content .llms-order-summary{list-style-type:none;margin:0;padding:0}.llms-checkout-section-content .llms-order-summary li{list-style-type:none}.llms-checkout-section-content .llms-order-summary li.llms-pricing.on-sale .price-regular,.llms-checkout-section-content .llms-order-summary li.llms-pricing.has-coupon .price-regular{text-decoration:line-through}.llms-checkout-section-content .llms-coupon-wrapper{border-top:1px solid #dadada;margin-top:10px;padding-top:10px}.llms-checkout-section-content .llms-coupon-wrapper .llms-coupon-entry{display:none;margin-top:10px}.llms-form-field.llms-payment-gateway-option label+span.llms-description{display:inline-block;margin-left:5px}.llms-form-field.llms-payment-gateway-option .llms-description a{border:none;-webkit-box-shadow:none;box-shadow:none;text-decoration:none}.llms-form-field.llms-payment-gateway-option .llms-description img{display:inline;max-height:22px;vertical-align:middle}.llms-checkout-wrapper ul.llms-payment-gateways{margin:5px 0 0;padding:0}ul.llms-payment-gateways{list-style-type:none}ul.llms-payment-gateways li:last-child:after{border-bottom:1px solid #dadada;content:"";display:block;margin:10px}ul.llms-payment-gateways .llms-payment-gateway{margin-bottom:5px;list-style-type:none}ul.llms-payment-gateways .llms-payment-gateway:last-child{margin-bottom:none}ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-payment-gateway-option label{font-weight:700}ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields{display:block}ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields .llms-notice{margin-left:10px;margin-right:10px}ul.llms-payment-gateways .llms-payment-gateway .llms-form-field{padding-bottom:0}ul.llms-payment-gateways .llms-gateway-description{margin-left:40px}ul.llms-payment-gateways .llms-gateway-fields{display:none;margin:5px 0 20px}ul.llms-payment-gateways .llms-payment-gateway-error{padding:0 10px}.llms-checkout-confirm{margin:0 10px}.llms-payment-method{margin:10px 10px 0}.llms-gateway-description p{font-size:85%;font-style:italic;margin-bottom:0}.llms-form-fields{-webkit-box-sizing:border-box;box-sizing:border-box}.llms-form-fields *{-webkit-box-sizing:border-box;box-sizing:border-box}.llms-form-fields.flush .llms-form-field{padding:0 0 10px}.llms-form-fields .wp-block-columns,.llms-form-fields .wp-block-column{margin-bottom:0}.llms-form-heading{padding:0 10px 10px}.llms-form-field{float:left;padding:0 10px 10px;position:relative;width:100%}.llms-form-field label:empty:after{content:" "}.llms-form-field.valid input[type=date],.llms-form-field.valid input[type=time],.llms-form-field.valid input[type=datetime-local],.llms-form-field.valid input[type=week],.llms-form-field.valid input[type=month],.llms-form-field.valid input[type=text],.llms-form-field.valid input[type=email],.llms-form-field.valid input[type=url],.llms-form-field.valid input[type=password],.llms-form-field.valid input[type=search],.llms-form-field.valid input[type=tel],.llms-form-field.valid input[type=number],.llms-form-field.valid textarea,.llms-form-field.valid select{background:rgba(131,195,115,.3);border-color:#83c373}.llms-form-field.error input[type=date],.llms-form-field.error input[type=time],.llms-form-field.error input[type=datetime-local],.llms-form-field.error input[type=week],.llms-form-field.error input[type=month],.llms-form-field.error input[type=text],.llms-form-field.error input[type=email],.llms-form-field.error input[type=url],.llms-form-field.error input[type=password],.llms-form-field.error input[type=search],.llms-form-field.error input[type=tel],.llms-form-field.error input[type=number],.llms-form-field.error textarea,.llms-form-field.error select,.llms-form-field.invalid input[type=date],.llms-form-field.invalid input[type=time],.llms-form-field.invalid input[type=datetime-local],.llms-form-field.invalid input[type=week],.llms-form-field.invalid input[type=month],.llms-form-field.invalid input[type=text],.llms-form-field.invalid input[type=email],.llms-form-field.invalid input[type=url],.llms-form-field.invalid input[type=password],.llms-form-field.invalid input[type=search],.llms-form-field.invalid input[type=tel],.llms-form-field.invalid input[type=number],.llms-form-field.invalid textarea,.llms-form-field.invalid select{background:rgba(229,85,78,.3);border-color:#e5554e}.llms-form-field.llms-visually-hidden-field{display:none}.llms-form-field.align-right{text-align:right}@media screen and (min-width: 600px){.llms-form-field.llms-cols-1{width:8.3333333333%}.llms-form-field.llms-cols-2{width:16.6666666667%}.llms-form-field.llms-cols-3{width:25%}.llms-form-field.llms-cols-4{width:33.3333333333%}.llms-form-field.llms-cols-5{width:41.6666666667%}.llms-form-field.llms-cols-6{width:50%}.llms-form-field.llms-cols-7{width:58.3333333333%}.llms-form-field.llms-cols-8{width:66.6666666667%}.llms-form-field.llms-cols-9{width:75%}.llms-form-field.llms-cols-10{width:83.3333333333%}.llms-form-field.llms-cols-11{width:91.6666666667%}.llms-form-field.llms-cols-12{width:100%}}.llms-form-field.type-hidden{padding:0}.llms-form-field.type-radio input,.llms-form-field.type-radio label,.llms-form-field.type-checkbox input,.llms-form-field.type-checkbox label{display:inline-block;width:auto}.llms-form-field.type-radio input,.llms-form-field.type-checkbox input{margin-right:5px}.llms-form-field.type-radio label+.llms-description,.llms-form-field.type-checkbox label+.llms-description{display:block}.llms-form-field.type-radio:not(.is-group) input[type=radio]{position:absolute;opacity:0;visibility:none}.llms-form-field.type-radio:not(.is-group) label:before{background:#fafafa;background-position:-24px 0;background-repeat:no-repeat;border-radius:50%;-webkit-box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.35) 0 0 0 1px;box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.35) 0 0 0 1px;content:"";cursor:pointer;display:inline-block;height:22px;margin-right:5px;position:relative;-webkit-transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);top:-3px;vertical-align:middle;width:22px;z-index:2}.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked+label:before{-webkit-transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);background-position:0 0;background-image:radial-gradient(ellipse at center, #2295ff 0%, #2295ff 40%, #fafafa 45%)}.llms-form-field .llms-input-group{margin-top:5px}.llms-form-field .llms-input-group .llms-form-field{padding:0 0 5px 5px}.llms-form-field.type-reset button:not(.auto),.llms-form-field.type-button button:not(.auto),.llms-form-field.type-submit button:not(.auto){width:100%}.llms-form-field .llms-description{font-size:14px;font-style:italic}.llms-form-field .llms-required{color:#e5554e;margin-left:4px}.llms-form-field input,.llms-form-field textarea,.llms-form-field select{width:100%;margin-bottom:5px}.llms-form-field .select2-container .select2-selection--single{height:auto;padding:4px 6px}.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%}.llms-password-strength-meter{border:1px solid #dadada;display:none;font-size:10px;margin-top:-10px;padding:1px;position:relative;text-align:center}.llms-password-strength-meter:before{bottom:0;content:"";left:0;position:absolute;top:0;-webkit-transition:width .4s ease;transition:width .4s ease}.llms-password-strength-meter.mismatch,.llms-password-strength-meter.too-short,.llms-password-strength-meter.very-weak{border-color:#e35b5b}.llms-password-strength-meter.mismatch:before,.llms-password-strength-meter.too-short:before,.llms-password-strength-meter.very-weak:before{background:rgba(227,91,91,.25);width:25%}.llms-password-strength-meter.too-short:before{width:0}.llms-password-strength-meter.weak{border-color:#f78b53}.llms-password-strength-meter.weak:before{background:rgba(247,139,83,.25);width:50%}.llms-password-strength-meter.medium{border-color:#ffc733}.llms-password-strength-meter.medium:before{background:rgba(255,199,51,.25);width:75%}.llms-password-strength-meter.strong{border-color:#83c373}.llms-password-strength-meter.strong:before{background:rgba(131,195,115,.25);width:100%}.llms-widget-syllabus--collapsible .llms-section .section-header{cursor:pointer}.llms-widget-syllabus--collapsible .llms-section.llms-section--opened .llms-collapse-caret .fa-caret-right{display:none}.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-collapse-caret .fa-caret-down{display:none}.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-lesson{display:none}.llms-widget-syllabus--collapsible .llms-syllabus-footer{text-align:left}.llms-student-dashboard .llms-sd-title{margin:25px 0}.llms-student-dashboard .llms-sd-items{list-style-type:none;margin:0;padding:0}.llms-student-dashboard .llms-sd-item{float:left;list-style-type:none;margin:0;padding:0}.llms-student-dashboard .llms-sd-item:last-child .llms-sep{display:none}.llms-student-dashboard .llms-sd-item .llms-sep{color:#333;margin:0 5px}.llms-student-dashboard .llms-sd-section{margin-bottom:25px}.llms-student-dashboard .llms-sd-section .llms-sd-section-footer{margin-top:10px}.llms-student-dashboard .orders-table{border:1px solid #f5f5f5;width:100%}.llms-student-dashboard .orders-table thead{display:none}.llms-student-dashboard .orders-table thead th,.llms-student-dashboard .orders-table thead td{font-weight:700}@media all and (min-width: 600px){.llms-student-dashboard .orders-table thead{display:table-header-group}}.llms-student-dashboard .orders-table tbody tr:nth-child(even) td,.llms-student-dashboard .orders-table tbody tr:nth-child(even) th{background:#f9f9f9}.llms-student-dashboard .orders-table tfoot th,.llms-student-dashboard .orders-table tfoot td{padding:10px;text-align:right}.llms-student-dashboard .orders-table tfoot th:last-child,.llms-student-dashboard .orders-table tfoot td:last-child{border-bottom-width:0}.llms-student-dashboard .orders-table th{font-weight:700}.llms-student-dashboard .orders-table th,.llms-student-dashboard .orders-table td{border-color:#efefef;border-style:solid;border-width:0;display:block;padding:8px 12px;text-align:center}.llms-student-dashboard .orders-table th .llms-button-primary,.llms-student-dashboard .orders-table td .llms-button-primary{display:inline-block}.llms-student-dashboard .orders-table th:last-child,.llms-student-dashboard .orders-table td:last-child{border-bottom-width:1px}.llms-student-dashboard .orders-table th:before,.llms-student-dashboard .orders-table td:before{content:attr(data-label)}@media all and (min-width: 600px){.llms-student-dashboard .orders-table th,.llms-student-dashboard .orders-table td{border-bottom-width:1px;display:table-cell;text-align:left}.llms-student-dashboard .orders-table th:first-child,.llms-student-dashboard .orders-table td:first-child{width:220px}.llms-student-dashboard .orders-table th:before,.llms-student-dashboard .orders-table td:before{display:none}}@media all and (min-width: 600px){.llms-student-dashboard .orders-table.transactions th:first-child{width:auto}}.llms-student-dashboard .llms-status{border-radius:3px;border-bottom:1px solid #fff;display:inline-block;font-size:80%;padding:3px 6px;vertical-align:middle}.llms-student-dashboard .llms-status.llms-size--large{font-size:105%;padding:6px 12px}.llms-student-dashboard .llms-status.llms-active,.llms-student-dashboard .llms-status.llms-completed,.llms-student-dashboard .llms-status.llms-pass,.llms-student-dashboard .llms-status.llms-txn-succeeded{color:#1f3818;background-color:#83c373}.llms-student-dashboard .llms-status.llms-fail,.llms-student-dashboard .llms-status.llms-failed,.llms-student-dashboard .llms-status.llms-expired,.llms-student-dashboard .llms-status.llms-cancelled,.llms-student-dashboard .llms-status.llms-txn-failed{color:#5a110d;background-color:#e5554e}.llms-student-dashboard .llms-status.llms-incomplete,.llms-student-dashboard .llms-status.llms-on-hold,.llms-student-dashboard .llms-status.llms-pending,.llms-student-dashboard .llms-status.llms-pending-cancel,.llms-student-dashboard .llms-status.llms-refunded,.llms-student-dashboard .llms-status.llms-txn-pending,.llms-student-dashboard .llms-status.llms-txn-refunded{color:#664200;background-color:orange}.llms-student-dashboard .llms-person-form-wrapper .llms-change-password{display:none}@media all and (min-width: 600px){.llms-student-dashboard .order-primary{float:left;width:68%}}@media all and (min-width: 600px){.llms-student-dashboard .order-secondary{float:left;width:32%}}.llms-student-dashboard .order-secondary form{margin-bottom:0}@media all and (min-width: 600px){.llms-student-dashboard .llms-view-order.llms-stack-cols .order-primary,.llms-student-dashboard .llms-view-order.llms-stack-cols .order-secondary{float:none;width:100%}}.llms-student-dashboard .llms-switch-payment-source .llms-notice,.llms-student-dashboard .llms-switch-payment-source .entry-content .llms-notice{margin-left:10px;margin-right:10px}.llms-student-dashboard .llms-switch-payment-source-main{border:none;display:none;margin:0}.llms-student-dashboard .llms-switch-payment-source-main ul.llms-payment-gateways{padding:10px 15px 0;margin:0}.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method,.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary{padding:0 25px 10px;margin:0;list-style-type:none}.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method li,.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary li{list-style-type:none}.llms-student-dashboard .llms-loop-list{margin:0 -10px}.llms-sd-grades .llms-table .llms-progress{display:block;margin:0}.llms-sd-grades .llms-table .llms-progress .llms-progress-bar{top:0;height:1.4em}.llms-sd-grades .llms-table .llms-progress .progress__indicator{font-size:1em;position:relative;right:.4em;top:.2em;z-index:1}.llms-table.llms-single-course-grades tbody tr:first-child td,.llms-table.llms-single-course-grades tbody tr:first-child th{background-color:#eaeaea}.llms-table.llms-single-course-grades th{font-weight:400}.llms-table.llms-single-course-grades td .llms-donut{display:inline-block;vertical-align:middle}.llms-table.llms-single-course-grades td .llms-status{margin-right:4px}.llms-table.llms-single-course-grades td .llms-donut+.llms-status{margin-left:4px}.llms-table.llms-single-course-grades th.llms-section_title{font-size:110%;font-weight:700}.llms-table.llms-single-course-grades td.llms-lesson_title{padding-left:36px;max-width:40%}.llms-table.llms-single-course-grades td.llms-associated_quiz .llms-donut{display:inline-block;margin-right:5px;vertical-align:middle}.llms-table.llms-single-course-grades td.llms-lesson_title a[href="#"]{pointer-events:none}.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"]{color:inherit;position:relative}.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"] .llms-tooltip{max-width:380px;width:380px}.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"] .llms-tooltip.show{top:-54px}.llms-sd-widgets{display:-webkit-box;display:-ms-flexbox;display:flex}.llms-sd-widgets .llms-sd-widget{background:#f9f9f9;-webkit-box-flex:1;-ms-flex:1;flex:1;margin:10px 10px 20px;padding:0 0 20px}.llms-sd-widgets .llms-sd-widget:first-child{margin-left:0}.llms-sd-widgets .llms-sd-widget:last-child{margin-right:0}.llms-sd-widgets .llms-sd-widget .llms-sd-widget-title{background:#2295ff;color:#fff;font-size:18px;line-height:1;margin:0 0 20px;padding:10px}.llms-sd-widgets .llms-sd-widget .llms-sd-widget-empty{font-size:14px;font-style:italic;opacity:.5;text-align:center}.llms-sd-widgets .llms-sd-widget .llms-donut{margin:0 auto}.llms-sd-widgets .llms-sd-widget .llms-sd-date{opacity:.8;text-align:center;font-size:22px;line-height:1.1}.llms-sd-widgets .llms-sd-widget .llms-sd-date span{display:block}.llms-sd-widgets .llms-sd-widget .llms-sd-date span.day{font-size:52px}.llms-sd-widgets .llms-sd-widget .llms-sd-date span.diff{font-size:12px;font-style:italic;margin-top:8px;opacity:.75}.llms-sd-widgets .llms-sd-widget .llms-achievement{background:transparent;margin:0 auto;max-width:120px}.llms-sd-widgets .llms-sd-widget .llms-achievement .llms-achievement-title{display:none}.llms-sd-pagination{margin-top:24px}.llms-sd-pagination:before,.llms-sd-pagination:after{content:" ";display:table}.llms-sd-pagination:after{clear:both}.llms-sd-pagination .llms-button-secondary{display:inline-block}.llms-sd-pagination .llms-button-secondary.prev{float:left}.llms-sd-pagination .llms-button-secondary.next{float:right}.llms-sd-notification-center .llms-notification{z-index:1}.llms-table{border:1px solid #efefef;width:100%}.llms-table thead th,.llms-table thead td{font-weight:700}.llms-table tbody tr:nth-child(odd) td,.llms-table tbody tr:nth-child(odd) th{background:#f9f9f9}.llms-table tbody tr:last-child{border-bottom-width:0}.llms-table tfoot tr{background:#f9f9f9}.llms-table tfoot tr .llms-pagination .page-numbers{margin:0}.llms-table tfoot tr .llms-table-sort{text-align:right}.llms-table tfoot tr .llms-table-sort form,.llms-table tfoot tr .llms-table-sort select,.llms-table tfoot tr .llms-table-sort input,.llms-table tfoot tr .llms-table-sort button{margin:0}.llms-table th{font-weight:700}.llms-table th,.llms-table td{border-bottom:1px solid #efefef;padding:8px 12px}.llms-table th:first-child,.llms-table td:first-child{padding-left:12px}.llms-table th:last-child,.llms-table td:last-child{padding-right:12px}#page .llms-table tfoot label{display:inline}#page .llms-table tfoot select{height:auto}/*!
+.llms-pagination ul:before,.llms-pagination ul:after,.llms-student-dashboard .llms-sd-items:before,.llms-form-fields:before,.llms-checkout-cols-2:before,.llms-access-plans:before,.llms-course-navigation:before,.llms-loop-list:before,.llms-cols:before,.llms-student-dashboard .llms-sd-items:after,.llms-form-fields:after,.llms-checkout-cols-2:after,.llms-access-plans:after,.llms-course-navigation:after,.llms-loop-list:after,.llms-cols:after{content:" ";display:table}.llms-pagination ul:after,.llms-student-dashboard .llms-sd-items:after,.llms-form-fields:after,.llms-checkout-cols-2:after,.llms-access-plans:after,.llms-course-navigation:after,.llms-loop-list:after,.llms-cols:after{clear:both}.llms-cols .llms-col{width:100%}@media all and (min-width: 600px){.llms-cols [class*=llms-col-]{float:left}}.llms-flex-cols{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.llms-flex-cols [class*=llms-col]{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;width:100%}@media all and (min-width: 600px){.llms-cols .llms-col-1,.llms-flex-cols .llms-col-1{width:100%}.llms-cols .llms-col-2,.llms-flex-cols .llms-col-2{width:50%}.llms-cols .llms-col-3,.llms-flex-cols .llms-col-3{width:33.3333333333%}.llms-cols .llms-col-4,.llms-flex-cols .llms-col-4{width:25%}.llms-cols .llms-col-5,.llms-flex-cols .llms-col-5{width:20%}.llms-cols .llms-col-6,.llms-flex-cols .llms-col-6{width:16.6666666667%}.llms-cols .llms-col-7,.llms-flex-cols .llms-col-7{width:14.2857142857%}.llms-cols .llms-col-8,.llms-flex-cols .llms-col-8{width:12.5%}.llms-cols .llms-col-9,.llms-flex-cols .llms-col-9{width:11.1111111111%}.llms-cols .llms-col-10,.llms-flex-cols .llms-col-10{width:10%}.llms-cols .llms-col-11,.llms-flex-cols .llms-col-11{width:9.0909090909%}.llms-cols .llms-col-12,.llms-flex-cols .llms-col-12{width:8.3333333333%}}.llms-button-action,.llms-button-danger,.llms-button-primary,.llms-button-secondary{border:none;border-radius:0;color:#fefefe;cursor:pointer;font-size:16px;font-weight:300;text-decoration:none;text-shadow:none;line-height:1;margin:0;max-width:100%;padding:12px 24px;position:relative;-webkit-transition:all .5s ease;transition:all .5s ease}.llms-button-action:disabled,.llms-button-danger:disabled,.llms-button-primary:disabled,.llms-button-secondary:disabled{opacity:.5}.llms-button-action:hover,.llms-button-action:active,.llms-button-danger:hover,.llms-button-danger:active,.llms-button-primary:hover,.llms-button-primary:active,.llms-button-secondary:hover,.llms-button-secondary:active{color:#fefefe}.llms-button-action:focus,.llms-button-danger:focus,.llms-button-primary:focus,.llms-button-secondary:focus{color:#fefefe}.llms-button-action.auto,.llms-button-danger.auto,.llms-button-primary.auto,.llms-button-secondary.auto{width:auto}.llms-button-action.full,.llms-button-danger.full,.llms-button-primary.full,.llms-button-secondary.full{display:block;text-align:center;width:100%}.llms-button-action.square,.llms-button-danger.square,.llms-button-primary.square,.llms-button-secondary.square{padding:12px}.llms-button-action.small,.llms-button-danger.small,.llms-button-primary.small,.llms-button-secondary.small{font-size:13px;padding:8px 14px}.llms-button-action.small.square,.llms-button-danger.small.square,.llms-button-primary.small.square,.llms-button-secondary.small.square{padding:8px}.llms-button-action.large,.llms-button-danger.large,.llms-button-primary.large,.llms-button-secondary.large{font-size:18px;line-height:1.2;padding:16px 32px}.llms-button-action.large.square,.llms-button-danger.large.square,.llms-button-primary.large.square,.llms-button-secondary.large.square{padding:16px}.llms-button-action.large .fa,.llms-button-danger.large .fa,.llms-button-primary.large .fa,.llms-button-secondary.large .fa{left:-7px;position:relative}.llms-button-primary{background:#2295ff}.llms-button-primary:hover,.llms-button-primary.clicked{background:#0077e4}.llms-button-primary:focus,.llms-button-primary:active{background:#4ba9ff}.llms-button-secondary{background:#e1e1e1;color:#414141}.llms-button-secondary:hover{color:#414141;background:#cdcdcd}.llms-button-secondary:focus,.llms-button-secondary:active{color:#414141;background:#ebebeb}.llms-button-action{background:#f8954f}.llms-button-action:hover,.llms-button-action.clicked{background:#f67d28}.llms-button-action:focus,.llms-button-action:active{background:#faad76}.llms-button-danger{background:#e5554e}.llms-button-danger:hover{background:#e0332a}.llms-button-danger:focus,.llms-button-danger:active{background:#e86660}.llms-donut{background-color:#f1f1f1;background-image:none;border-radius:50%;color:#ef476f;height:200px;overflow:hidden;position:relative;width:200px}.llms-donut:before,.llms-donut:after{content:" ";display:table}.llms-donut:after{clear:both}.llms-donut svg{overflow:visible !important;pointer-events:none;width:100%}.llms-donut svg path{fill:none;stroke-width:35px;stroke:#ef476f}.llms-donut.mini{height:36px;width:36px}.llms-donut.mini .percentage{font-size:10px}.llms-donut.small{height:100px;width:100px}.llms-donut.small .percentage{font-size:18px}.llms-donut.medium{height:130px;width:130px}.llms-donut.medium .percentage{font-size:26px}.llms-donut.large{height:260px;width:260px}.llms-donut.large .percentage{font-size:48px}.llms-donut .inside{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#fff;border-radius:50%;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;height:80%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;left:50%;position:absolute;text-align:center;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:80%;top:50%;z-index:3}.llms-donut .percentage{line-height:1.2;font-size:34px}.llms-donut .caption{font-size:50%}.lifterlms [data-tip],.lifterlms [data-title-default],.lifterlms [data-title-active],.llms-metabox [data-tip],.llms-metabox [data-title-default],.llms-metabox [data-title-active],.llms-mb-container [data-tip],.llms-mb-container [data-title-default],.llms-mb-container [data-title-active],.llms-quiz-wrapper [data-tip],.llms-quiz-wrapper [data-title-default],.llms-quiz-wrapper [data-title-active]{position:relative}.lifterlms [data-tip].tip--top-right:before,.lifterlms [data-title-default].tip--top-right:before,.lifterlms [data-title-active].tip--top-right:before,.llms-metabox [data-tip].tip--top-right:before,.llms-metabox [data-title-default].tip--top-right:before,.llms-metabox [data-title-active].tip--top-right:before,.llms-mb-container [data-tip].tip--top-right:before,.llms-mb-container [data-title-default].tip--top-right:before,.llms-mb-container [data-title-active].tip--top-right:before,.llms-quiz-wrapper [data-tip].tip--top-right:before,.llms-quiz-wrapper [data-title-default].tip--top-right:before,.llms-quiz-wrapper [data-title-active].tip--top-right:before{bottom:100%;left:-10px}.lifterlms [data-tip].tip--top-right:hover:before,.lifterlms [data-title-default].tip--top-right:hover:before,.lifterlms [data-title-active].tip--top-right:hover:before,.llms-metabox [data-tip].tip--top-right:hover:before,.llms-metabox [data-title-default].tip--top-right:hover:before,.llms-metabox [data-title-active].tip--top-right:hover:before,.llms-mb-container [data-tip].tip--top-right:hover:before,.llms-mb-container [data-title-default].tip--top-right:hover:before,.llms-mb-container [data-title-active].tip--top-right:hover:before,.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before{bottom:calc(100% + 6px)}.lifterlms [data-tip].tip--top-right:after,.lifterlms [data-title-default].tip--top-right:after,.lifterlms [data-title-active].tip--top-right:after,.llms-metabox [data-tip].tip--top-right:after,.llms-metabox [data-title-default].tip--top-right:after,.llms-metabox [data-title-active].tip--top-right:after,.llms-mb-container [data-tip].tip--top-right:after,.llms-mb-container [data-title-default].tip--top-right:after,.llms-mb-container [data-title-active].tip--top-right:after,.llms-quiz-wrapper [data-tip].tip--top-right:after,.llms-quiz-wrapper [data-title-default].tip--top-right:after,.llms-quiz-wrapper [data-title-active].tip--top-right:after{border-top-color:#444;left:6px;top:0}.lifterlms [data-tip].tip--top-right:hover:after,.lifterlms [data-title-default].tip--top-right:hover:after,.lifterlms [data-title-active].tip--top-right:hover:after,.llms-metabox [data-tip].tip--top-right:hover:after,.llms-metabox [data-title-default].tip--top-right:hover:after,.llms-metabox [data-title-active].tip--top-right:hover:after,.llms-mb-container [data-tip].tip--top-right:hover:after,.llms-mb-container [data-title-default].tip--top-right:hover:after,.llms-mb-container [data-title-active].tip--top-right:hover:after,.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after{top:-6px}.lifterlms [data-tip].tip--top-left:before,.lifterlms [data-title-default].tip--top-left:before,.lifterlms [data-title-active].tip--top-left:before,.llms-metabox [data-tip].tip--top-left:before,.llms-metabox [data-title-default].tip--top-left:before,.llms-metabox [data-title-active].tip--top-left:before,.llms-mb-container [data-tip].tip--top-left:before,.llms-mb-container [data-title-default].tip--top-left:before,.llms-mb-container [data-title-active].tip--top-left:before,.llms-quiz-wrapper [data-tip].tip--top-left:before,.llms-quiz-wrapper [data-title-default].tip--top-left:before,.llms-quiz-wrapper [data-title-active].tip--top-left:before{bottom:100%;right:-10px}.lifterlms [data-tip].tip--top-left:hover:before,.lifterlms [data-title-default].tip--top-left:hover:before,.lifterlms [data-title-active].tip--top-left:hover:before,.llms-metabox [data-tip].tip--top-left:hover:before,.llms-metabox [data-title-default].tip--top-left:hover:before,.llms-metabox [data-title-active].tip--top-left:hover:before,.llms-mb-container [data-tip].tip--top-left:hover:before,.llms-mb-container [data-title-default].tip--top-left:hover:before,.llms-mb-container [data-title-active].tip--top-left:hover:before,.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before{bottom:calc(100% + 6px)}.lifterlms [data-tip].tip--top-left:after,.lifterlms [data-title-default].tip--top-left:after,.lifterlms [data-title-active].tip--top-left:after,.llms-metabox [data-tip].tip--top-left:after,.llms-metabox [data-title-default].tip--top-left:after,.llms-metabox [data-title-active].tip--top-left:after,.llms-mb-container [data-tip].tip--top-left:after,.llms-mb-container [data-title-default].tip--top-left:after,.llms-mb-container [data-title-active].tip--top-left:after,.llms-quiz-wrapper [data-tip].tip--top-left:after,.llms-quiz-wrapper [data-title-default].tip--top-left:after,.llms-quiz-wrapper [data-title-active].tip--top-left:after{border-top-color:#444;right:6px;top:0}.lifterlms [data-tip].tip--top-left:hover:after,.lifterlms [data-title-default].tip--top-left:hover:after,.lifterlms [data-title-active].tip--top-left:hover:after,.llms-metabox [data-tip].tip--top-left:hover:after,.llms-metabox [data-title-default].tip--top-left:hover:after,.llms-metabox [data-title-active].tip--top-left:hover:after,.llms-mb-container [data-tip].tip--top-left:hover:after,.llms-mb-container [data-title-default].tip--top-left:hover:after,.llms-mb-container [data-title-active].tip--top-left:hover:after,.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after{top:-6px}.lifterlms [data-tip].tip--bottom-left:before,.lifterlms [data-title-default].tip--bottom-left:before,.lifterlms [data-title-active].tip--bottom-left:before,.llms-metabox [data-tip].tip--bottom-left:before,.llms-metabox [data-title-default].tip--bottom-left:before,.llms-metabox [data-title-active].tip--bottom-left:before,.llms-mb-container [data-tip].tip--bottom-left:before,.llms-mb-container [data-title-default].tip--bottom-left:before,.llms-mb-container [data-title-active].tip--bottom-left:before,.llms-quiz-wrapper [data-tip].tip--bottom-left:before,.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,.llms-quiz-wrapper [data-title-active].tip--bottom-left:before{top:100%;right:-10px}.lifterlms [data-tip].tip--bottom-left:hover:before,.lifterlms [data-title-default].tip--bottom-left:hover:before,.lifterlms [data-title-active].tip--bottom-left:hover:before,.llms-metabox [data-tip].tip--bottom-left:hover:before,.llms-metabox [data-title-default].tip--bottom-left:hover:before,.llms-metabox [data-title-active].tip--bottom-left:hover:before,.llms-mb-container [data-tip].tip--bottom-left:hover:before,.llms-mb-container [data-title-default].tip--bottom-left:hover:before,.llms-mb-container [data-title-active].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before{top:calc(100% + 6px)}.lifterlms [data-tip].tip--bottom-left:after,.lifterlms [data-title-default].tip--bottom-left:after,.lifterlms [data-title-active].tip--bottom-left:after,.llms-metabox [data-tip].tip--bottom-left:after,.llms-metabox [data-title-default].tip--bottom-left:after,.llms-metabox [data-title-active].tip--bottom-left:after,.llms-mb-container [data-tip].tip--bottom-left:after,.llms-mb-container [data-title-default].tip--bottom-left:after,.llms-mb-container [data-title-active].tip--bottom-left:after,.llms-quiz-wrapper [data-tip].tip--bottom-left:after,.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,.llms-quiz-wrapper [data-title-active].tip--bottom-left:after{border-bottom-color:#444;right:6px;bottom:0}.lifterlms [data-tip].tip--bottom-left:hover:after,.lifterlms [data-title-default].tip--bottom-left:hover:after,.lifterlms [data-title-active].tip--bottom-left:hover:after,.llms-metabox [data-tip].tip--bottom-left:hover:after,.llms-metabox [data-title-default].tip--bottom-left:hover:after,.llms-metabox [data-title-active].tip--bottom-left:hover:after,.llms-mb-container [data-tip].tip--bottom-left:hover:after,.llms-mb-container [data-title-default].tip--bottom-left:hover:after,.llms-mb-container [data-title-active].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after{bottom:-6px}.lifterlms [data-tip].tip--bottom-right:before,.lifterlms [data-title-default].tip--bottom-right:before,.lifterlms [data-title-active].tip--bottom-right:before,.llms-metabox [data-tip].tip--bottom-right:before,.llms-metabox [data-title-default].tip--bottom-right:before,.llms-metabox [data-title-active].tip--bottom-right:before,.llms-mb-container [data-tip].tip--bottom-right:before,.llms-mb-container [data-title-default].tip--bottom-right:before,.llms-mb-container [data-title-active].tip--bottom-right:before,.llms-quiz-wrapper [data-tip].tip--bottom-right:before,.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,.llms-quiz-wrapper [data-title-active].tip--bottom-right:before{top:100%;left:-10px}.lifterlms [data-tip].tip--bottom-right:hover:before,.lifterlms [data-title-default].tip--bottom-right:hover:before,.lifterlms [data-title-active].tip--bottom-right:hover:before,.llms-metabox [data-tip].tip--bottom-right:hover:before,.llms-metabox [data-title-default].tip--bottom-right:hover:before,.llms-metabox [data-title-active].tip--bottom-right:hover:before,.llms-mb-container [data-tip].tip--bottom-right:hover:before,.llms-mb-container [data-title-default].tip--bottom-right:hover:before,.llms-mb-container [data-title-active].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before{top:calc(100% + 6px)}.lifterlms [data-tip].tip--bottom-right:after,.lifterlms [data-title-default].tip--bottom-right:after,.lifterlms [data-title-active].tip--bottom-right:after,.llms-metabox [data-tip].tip--bottom-right:after,.llms-metabox [data-title-default].tip--bottom-right:after,.llms-metabox [data-title-active].tip--bottom-right:after,.llms-mb-container [data-tip].tip--bottom-right:after,.llms-mb-container [data-title-default].tip--bottom-right:after,.llms-mb-container [data-title-active].tip--bottom-right:after,.llms-quiz-wrapper [data-tip].tip--bottom-right:after,.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,.llms-quiz-wrapper [data-title-active].tip--bottom-right:after{border-bottom-color:#444;left:6px;bottom:0}.lifterlms [data-tip].tip--bottom-right:hover:after,.lifterlms [data-title-default].tip--bottom-right:hover:after,.lifterlms [data-title-active].tip--bottom-right:hover:after,.llms-metabox [data-tip].tip--bottom-right:hover:after,.llms-metabox [data-title-default].tip--bottom-right:hover:after,.llms-metabox [data-title-active].tip--bottom-right:hover:after,.llms-mb-container [data-tip].tip--bottom-right:hover:after,.llms-mb-container [data-title-default].tip--bottom-right:hover:after,.llms-mb-container [data-title-active].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after{bottom:-6px}.lifterlms [data-tip]:before,.lifterlms [data-title-default]:before,.lifterlms [data-title-active]:before,.llms-metabox [data-tip]:before,.llms-metabox [data-title-default]:before,.llms-metabox [data-title-active]:before,.llms-mb-container [data-tip]:before,.llms-mb-container [data-title-default]:before,.llms-mb-container [data-title-active]:before,.llms-quiz-wrapper [data-tip]:before,.llms-quiz-wrapper [data-title-default]:before,.llms-quiz-wrapper [data-title-active]:before{background:#444;border-radius:4px;color:#fff;font-size:13px;line-height:1.2;padding:8px;max-width:300px;width:-webkit-max-content;width:-moz-max-content;width:max-content}.lifterlms [data-tip]:after,.lifterlms [data-title-default]:after,.lifterlms [data-title-active]:after,.llms-metabox [data-tip]:after,.llms-metabox [data-title-default]:after,.llms-metabox [data-title-active]:after,.llms-mb-container [data-tip]:after,.llms-mb-container [data-title-default]:after,.llms-mb-container [data-title-active]:after,.llms-quiz-wrapper [data-tip]:after,.llms-quiz-wrapper [data-title-default]:after,.llms-quiz-wrapper [data-title-active]:after{content:"";border:6px solid transparent;height:0;width:0}.lifterlms [data-tip]:before,.lifterlms [data-tip]:after,.lifterlms [data-title-default]:before,.lifterlms [data-title-default]:after,.lifterlms [data-title-active]:before,.lifterlms [data-title-active]:after,.llms-metabox [data-tip]:before,.llms-metabox [data-tip]:after,.llms-metabox [data-title-default]:before,.llms-metabox [data-title-default]:after,.llms-metabox [data-title-active]:before,.llms-metabox [data-title-active]:after,.llms-mb-container [data-tip]:before,.llms-mb-container [data-tip]:after,.llms-mb-container [data-title-default]:before,.llms-mb-container [data-title-default]:after,.llms-mb-container [data-title-active]:before,.llms-mb-container [data-title-active]:after,.llms-quiz-wrapper [data-tip]:before,.llms-quiz-wrapper [data-tip]:after,.llms-quiz-wrapper [data-title-default]:before,.llms-quiz-wrapper [data-title-default]:after,.llms-quiz-wrapper [data-title-active]:before,.llms-quiz-wrapper [data-title-active]:after{opacity:0;-webkit-transition:all .2s .1s ease;transition:all .2s .1s ease;position:absolute;pointer-events:none;visibility:hidden}.lifterlms [data-tip]:hover:before,.lifterlms [data-tip]:hover:after,.lifterlms [data-title-default]:hover:before,.lifterlms [data-title-default]:hover:after,.lifterlms [data-title-active]:hover:before,.lifterlms [data-title-active]:hover:after,.llms-metabox [data-tip]:hover:before,.llms-metabox [data-tip]:hover:after,.llms-metabox [data-title-default]:hover:before,.llms-metabox [data-title-default]:hover:after,.llms-metabox [data-title-active]:hover:before,.llms-metabox [data-title-active]:hover:after,.llms-mb-container [data-tip]:hover:before,.llms-mb-container [data-tip]:hover:after,.llms-mb-container [data-title-default]:hover:before,.llms-mb-container [data-title-default]:hover:after,.llms-mb-container [data-title-active]:hover:before,.llms-mb-container [data-title-active]:hover:after,.llms-quiz-wrapper [data-tip]:hover:before,.llms-quiz-wrapper [data-tip]:hover:after,.llms-quiz-wrapper [data-title-default]:hover:before,.llms-quiz-wrapper [data-title-default]:hover:after,.llms-quiz-wrapper [data-title-active]:hover:before,.llms-quiz-wrapper [data-title-active]:hover:after{opacity:1;-webkit-transition:all .2s .6s ease;transition:all .2s .6s ease;visibility:visible;z-index:99999999}.lifterlms [data-tip]:before,.llms-metabox [data-tip]:before,.llms-mb-container [data-tip]:before,.llms-quiz-wrapper [data-tip]:before{content:attr(data-tip)}.lifterlms [data-tip].active:before,.llms-metabox [data-tip].active:before,.llms-mb-container [data-tip].active:before,.llms-quiz-wrapper [data-tip].active:before{content:attr(data-tip-active)}.llms-membership-image{display:block;margin:0 auto}.llms-course-image{display:block;margin:0 auto;max-width:100%}.llms-featured-image{display:block;margin:0 auto}.llms-image-thumb{width:150px}.llms-video-wrapper .center-video{height:auto;max-width:100%;overflow:hidden;position:relative;padding-top:56.25%;text-align:center}.llms-video-wrapper .center-video>.wp-video,.llms-video-wrapper .center-video .fluid-width-video-wrapper,.llms-video-wrapper .center-video iframe,.llms-video-wrapper .center-video object,.llms-video-wrapper .center-video embed{height:100%;left:0;position:absolute;top:0;width:100%}.llms-video-wrapper .center-video>.wp-video{width:100% !important}.llms-video-wrapper .center-video .fluid-width-video-wrapper{padding-top:0 !important}.clear{clear:both;width:100%}.llms-featured-image{text-align:center}#main-content .llms-payment-options p{margin:0;font-size:16px}.llms-option{display:block;position:relative;margin:20px 0;padding-left:40px;font-size:16px}.llms-option label{cursor:pointer;position:static}.llms-option:first-child{margin-top:0}.llms-option:last-child{margin-bottom:0}#main-content .llms-option:last-child{margin-bottom:0}.llms-option input[type=radio]{display:block;position:absolute;top:3px;left:0;z-index:0}.llms-option input[type=radio]{display:inline-block}.llms-option input[type=radio]+label span.llms-radio{display:none}.llms-option input[type=radio]+label span.llms-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:20;position:absolute;top:0;left:-2px;display:inline-block;width:24px;height:24px;border-radius:50%;cursor:pointer;vertical-align:middle;-webkit-box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.5) 0 0 0 1px;box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.5) 0 0 0 1px;background:#efefef;background-image:radial-gradient(ellipse at center, #e5554e 0%, #e5554e 40%, #efefef 45%);background-repeat:no-repeat;-webkit-transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);transition:background-position .15s cubic-bezier(0.8, 0, 1, 1)}.llms-option input[type=radio]:checked+label span.llms-radio{-webkit-transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1)}.llms-option input[type=radio]+label span.llms-radio{background-position:-24px 0}.llms-option input[type=radio]:checked+label span.llms-radio{background-position:0 0}.llms-option input[type=submit]{border:none;background:#e5554e;color:#fff;font-size:20px;padding:10px 0;border-radius:3px;cursor:pointer;width:100%}.llms-styled-text{padding:14px 0}.llms-notice-box{border-radius:3px;z-index:10;margin:10px 0;padding:15px 20px;border:1px solid #ccc;list-style-type:none;width:100%;overflow:auto}.llms-notice-box input[type=text]{height:auto}.llms-notice-box .col-1-1{width:100%}.llms-notice-box .col-1-1 input[type=text]{width:100%}.llms-notice-box .col-1-2{width:50%;float:left}@media screen and (max-width: 768px){.llms-notice-box .col-1-2{width:100%}}.llms-notice-box .col-1-3{width:33%;float:left;margin-right:10px}.llms-notice-box .col-1-4{width:25%;float:left;margin-right:10px}@media screen and (max-width: 768px){.llms-notice-box .col-1-4{width:100%}}.llms-notice-box .col-1-6{width:16.6%;float:left;margin-right:10px}.llms-notice-box .col-1-8{width:11%;float:right}.llms-notice-box .llms-pad-right{padding-right:10px}@media screen and (max-width: 768px){.llms-notice-box .llms-pad-right{padding-right:0}}input[type=text].cc_cvv,#cc_cvv{margin-right:0;width:23%;float:right}.llms-clear-box{border-radius:3px;z-index:10;margin:10px 0;padding:15px 20px;list-style-type:none;width:100%;overflow:auto}.llms-price-label{font-weight:normal}.llms-final-price{font-weight:bold;float:right}.llms-center-content{text-align:center}.llms-input-text{background-color:#fff;border:1px solid #ddd;color:#333;font-size:18px;font-weight:300;padding:16px;width:100%}.llms-price{margin-bottom:0;font-weight:bold}.llms-price-loop{margin-bottom:0;font-weight:bold}.courses .entry{padding:0}.list-view .site-content .llms-course-list .hentry,.list-view .site-content .llms-membership-list .hentry{border-top:0;padding-top:0}.llms-content{width:100%}.llms-lesson-button-wrapper{width:100%;display:block;clear:both;text-align:center}.llms-template-wrapper{width:100%;display:block;clear:both}.llms-button-wrapper{width:100%;display:block;clear:both;text-align:center}.llms-styled-select{border:1px solid #ccc;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:3px;overflow:hidden;position:relative}.llms-styled-select,.llms-styled-select select{width:100%}select:focus{outline:none}.llms-styled-select select{height:34px;padding:5px 0 5px 5px;background:transparent;border:none;-webkit-appearance:none;font-size:16px;color:#444}@-moz-document url-prefix(){.--ms-styled-select select{width:110%}}.llms-styled-select .fa-sort-desc{position:absolute;top:0;right:12px;font-size:24px;color:#ccc}select::-ms-expand{display:none}_:-o-prefocus .llms-styled-select,.selector .llms-styled-select{background:none}.llms-form-item-wrapper{margin-bottom:1em}.llms-progress-circle{position:relative;width:200px;height:200px;float:left}.llms-progress-circle-count{top:27%;position:absolute;width:94%;text-align:center;color:#666;font-size:44px}.llms-progress-circle svg{position:absolute;width:200px;height:200px}.llms-progress-circle circle{fill:transparent}svg .llms-background-circle{fill:transparent;stroke-width:10px;stroke:#f1f2f1;stroke-dasharray:430}svg .llms-animated-circle{fill:transparent;stroke-width:10px;stroke:#e5554e;stroke-dasharray:430;stroke-dashoffset:410}.llms-widget-syllabus .llms-lesson.current-lesson .lesson-title{font-weight:700}.llms-widget-syllabus .llms-lesson-complete,.llms-widget-syllabus .lesson-complete-placeholder{font-size:1.2em;margin-right:6px;color:#ccc}.llms-widget-syllabus .llms-lesson-complete.done,.llms-widget-syllabus .lesson-complete-placeholder.done{color:#e5554e}.llms-widget-syllabus .section-title{font-weight:bold}.llms-widget-syllabus .lesson-title a{text-decoration:none}.llms-widget-syllabus .lesson-title a:hover{text-decoration:none !important}.llms-widget-syllabus .lesson-title.done a{color:#999;text-decoration:line-through}.llms-widget-syllabus ul{list-style-type:none}.llms-widget-syllabus ul li{list-style-type:none}.llms-widget-syllabus ul li ul li{margin:0 0 2px 0;padding:0}.llms-remove-coupon{float:right}.llms-lesson-link-locked,.llms-lesson-link-locked:hover{background:#f1f1f1;-webkit-box-shadow:0 1px 2px 0 rgba(1,1,1,.4);box-shadow:0 1px 2px 0 rgba(1,1,1,.4);display:block;color:#a6a6a6;min-height:85px;padding:15px;text-decoration:none;position:relative}.llms-lesson-preview.is-complete .llms-lesson-link-locked{padding-left:75px}.llms-lesson-tooltip{display:none;position:absolute;color:#000;background-color:silver;padding:.25em;border-radius:2px;z-index:100;top:0;left:50%;text-align:center;-webkit-transform:translateX(-50%) translateY(-100%);transform:translateX(-50%) translateY(-100%)}.llms-lesson-tooltip:after{content:"";width:0;height:0;border-top:8px solid silver;border-left:8px solid transparent;border-right:8px solid transparent;position:absolute;bottom:-8px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.llms-lesson-tooltip.active{display:inline-block}.llms-loop-list{list-style:none;margin:0 -10px;padding:0}@media all and (min-width: 600px){.llms-loop-list.cols-1 .llms-loop-item{width:100%}.llms-loop-list.cols-2 .llms-loop-item{width:50%}.llms-loop-list.cols-3 .llms-loop-item{width:33.3333333333%}.llms-loop-list.cols-4 .llms-loop-item{width:25%}.llms-loop-list.cols-5 .llms-loop-item{width:20%}.llms-loop-list.cols-6 .llms-loop-item{width:16.6666666667%}}.llms-loop-item{float:left;list-style:none;margin:0;padding:0;width:100%}.llms-loop-item-content{background:#f1f1f1;padding-bottom:10px;margin:10px}.llms-loop-item-content:hover{background:#eaeaea}.llms-loop-item-content .llms-loop-link{color:#212121;display:block}.llms-loop-item-content .llms-loop-link:visited{color:#212121}.llms-loop-item-content .llms-featured-image{display:block;max-width:100%}.llms-loop-item-content .llms-loop-title{margin-top:5px}.llms-loop-item-content .llms-loop-title:hover{color:#2295ff}.llms-loop-item-content .llms-meta,.llms-loop-item-content .llms-author,.llms-loop-item-content .llms-loop-title{padding:0 10px}.llms-loop-item-content .llms-meta,.llms-loop-item-content .llms-author{color:#444;display:block;font-size:13px;margin-bottom:3px}.llms-loop-item-content .llms-meta:last-child,.llms-loop-item-content .llms-author:last-child{margin-bottom:0}.llms-loop-item-content .llms-featured-img-wrap{overflow:hidden}.llms-loop-item-content p{margin-bottom:0}.llms-loop-item-content .llms-progress{margin:0;height:.4em}.llms-loop-item-content .llms-progress .progress__indicator{display:none}.llms-loop-item-content .llms-progress .llms-progress-bar{background-color:#f6f6f6;right:0;top:0}.course .llms-meta-info{margin:20px 0}.course .llms-meta-info .llms-meta-title{margin-bottom:5px}.course .llms-meta-info .llms-meta p{margin-bottom:0}.course .llms-meta-info .llms-meta span{font-weight:700}.course .llms-course-progress{margin:40px auto;max-width:480px;text-align:center}.llms-syllabus-wrapper{margin:15px;text-align:center}.llms-syllabus-wrapper .llms-section-title{margin:25px 0 0}.llms-course-navigation .llms-prev-lesson,.llms-course-navigation .llms-next-lesson,.llms-course-navigation .llms-back-to-course{width:49%}.llms-course-navigation .llms-prev-lesson,.llms-course-navigation .llms-back-to-course{float:left;margin-right:.5%}.llms-course-navigation .llms-next-lesson,.llms-course-navigation .llms-prev-lesson+.llms-back-to-course{float:right;margin-left:.5%}.llms-lesson-preview{display:inline-block;margin-top:15px;max-width:100%;position:relative;width:480px}.llms-lesson-preview .llms-lesson-link{background:#f1f1f1;color:#212121;display:block;padding:15px;text-decoration:none}.llms-lesson-preview .llms-lesson-link:before,.llms-lesson-preview .llms-lesson-link:after{content:" ";display:table}.llms-lesson-preview .llms-lesson-link:after{clear:both}.llms-lesson-preview .llms-lesson-link:hover{background:#eaeaea}.llms-lesson-preview .llms-lesson-link:visited{color:#212121}.llms-lesson-preview .llms-lesson-thumbnail{margin-bottom:10px}.llms-lesson-preview .llms-lesson-thumbnail img{display:block;width:100%}.llms-lesson-preview .llms-pre-text{text-align:left}.llms-lesson-preview .llms-lesson-title{font-weight:700;margin:0 auto 10px;text-align:left}.llms-lesson-preview .llms-lesson-title:last-child{margin-bottom:0}.llms-lesson-preview .llms-lesson-excerpt{text-align:left}.llms-lesson-preview .llms-main{float:left;width:100%}.llms-lesson-preview .llms-extra{float:right;width:15%}.llms-lesson-preview .llms-extra+.llms-main{width:85%}.llms-lesson-preview .llms-lesson-counter,.llms-lesson-preview .llms-free-lesson-svg,.llms-lesson-preview .llms-lesson-complete,.llms-lesson-preview .llms-lesson-complete-placeholder{display:block;font-size:32px;margin-bottom:15px}.llms-lesson-preview.is-free .llms-lesson-complete,.llms-lesson-preview.is-complete .llms-lesson-complete{color:#2295ff}.llms-lesson-preview .llms-icon-free{background:#2295ff;border-radius:4px;color:#f1f1f1;display:inline-block;padding:5px 6px 4px;line-height:1;font-size:14px}.llms-lesson-preview.is-incomplete .llms-lesson-complete{color:#cacaca}.llms-lesson-preview .llms-lesson-counter{font-size:16px;line-height:1}.llms-lesson-preview .llms-free-lesson-svg{fill:currentColor;height:23px;width:50px}.llms-lesson-preview p{margin-bottom:0}.llms-progress{clear:both;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;position:relative;height:1em;width:100%;margin:15px 0}.llms-progress .llms-progress-bar{background-color:#f1f2f1;position:relative;height:.4em;top:.3em;width:100%}.llms-progress .progress-bar-complete{background-color:#ef476f;height:100%}.progress__indicator{float:right;text-align:right;height:1em;line-height:1em;margin-left:5px;white-space:nowrap}.llms-author .name{margin-left:5px}.llms-author .label{margin-left:5px}.llms-author .avatar{border-radius:50%}.llms-author .bio{margin-top:5px}.llms-instructor-info .llms-instructors .llms-col:first-child .llms-author{margin-left:0}.llms-instructor-info .llms-instructors .llms-col:last-child .llms-author{margin-right:0}.llms-instructor-info .llms-instructors .llms-author{background:#f5f5f5;border-top:4px solid #2295ff;text-align:center;margin:45px 5px 5px;padding:0 10px 10px}.llms-instructor-info .llms-instructors .llms-author .avatar{background:#2295ff;border:4px solid #2295ff;display:block;margin:-35px auto 10px}.llms-instructor-info .llms-instructors .llms-author .llms-author-info{display:block}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.name{font-weight:700}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.label{font-size:85%}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.bio{font-size:90%;margin-bottom:0}.llms-notice{background:rgba(34,149,255,.3);border-color:#2295ff;border-style:solid;border-width:3px;padding:10px;margin-bottom:10px}.llms-notice p:last-child,.llms-notice ul:last-child{margin-bottom:0}.llms-notice li{list-style-type:none}.llms-notice.llms-debug{background:rgba(202,202,202,.3);border-color:#cacaca}.llms-notice.llms-error{background:rgba(229,85,78,.3);border-color:#e5554e}.llms-notice.llms-success{background:rgba(131,195,115,.3);border-color:#83c373}.entry-content .llms-notice{margin:0 0 10px}.entry-content .llms-notice li{list-style-type:none}ul.llms-achievements-loop,.lifterlms ul.llms-achievements-loop,ul.llms-certificates-loop,.lifterlms ul.llms-certificates-loop{list-style-type:none;margin:0 -10px;padding:0}ul.llms-achievements-loop:before,ul.llms-achievements-loop:after,.lifterlms ul.llms-achievements-loop:before,.lifterlms ul.llms-achievements-loop:after,ul.llms-certificates-loop:before,ul.llms-certificates-loop:after,.lifterlms ul.llms-certificates-loop:before,.lifterlms ul.llms-certificates-loop:after{content:" ";display:table}ul.llms-achievements-loop:after,.lifterlms ul.llms-achievements-loop:after,ul.llms-certificates-loop:after,.lifterlms ul.llms-certificates-loop:after{clear:both}ul.llms-achievements-loop li.llms-achievement-loop-item,ul.llms-achievements-loop li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop li.llms-certificate-loop-item,ul.llms-certificates-loop li.llms-achievement-loop-item,ul.llms-certificates-loop li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop li.llms-certificate-loop-item{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;float:left;list-style-type:none;margin:0;padding:10px;width:100%}@media all and (min-width: 600px){ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item{width:100%}ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item{width:50%}ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item{width:33.3333333333%}ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item{width:25%}ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item{width:20%}}.llms-achievement,.llms-certificate{background:#f1f1f1;border:none;color:inherit;display:block;text-decoration:none;width:100%}.llms-achievement:hover,.llms-certificate:hover{background:#eaeaea}.llms-achievement .llms-achievement-img,.llms-certificate .llms-achievement-img{display:block;margin:0;width:100%}.llms-achievement .llms-achievement-title,.llms-certificate .llms-achievement-title{font-size:16px;margin:0;padding:10px;text-align:center}.llms-achievement .llms-certificate-title,.llms-certificate .llms-certificate-title{font-size:16px;margin:0;padding:0 0 10px}.llms-achievement .llms-achievement-info,.llms-achievement .llms-achievement-date,.llms-certificate .llms-achievement-info,.llms-certificate .llms-achievement-date{display:none}.llms-achievement .llms-achievement-content,.llms-certificate .llms-achievement-content{padding:20px}.llms-achievement .llms-achievement-content:empty,.llms-certificate .llms-achievement-content:empty{padding:0}.llms-achievement .llms-achievement-content *:last-child,.llms-certificate .llms-achievement-content *:last-child{margin-bottom:0}.llms-certificate{border:4px double #f1f1f1;padding:20px 10px;background:#fff;text-align:center}.llms-certificate:hover{background:#fff;border-color:#eaeaea}.llms-achievement-modal .llms-achievement{background:#fff}.llms-achievement-modal .llms-achievement-info{display:block}.llms-achievement-modal .llms-achievement-title{display:none}.llms-notification{background:#fff;-webkit-box-shadow:0 1px 2px -2px #333,0 1px 1px -1px #333;box-shadow:0 1px 2px -2px #333,0 1px 1px -1px #333;border-top:4px solid #2295ff;left:12px;opacity:0;padding:12px;position:fixed;right:12px;top:24px;-webkit-transition:opacity .4s ease-in-out,right .4s ease-in-out;transition:opacity .4s ease-in-out,right .4s ease-in-out;visibility:none;width:auto;z-index:9999999}.llms-notification:before,.llms-notification:after{content:" ";display:table}.llms-notification:after{clear:both}.llms-notification.visible{opacity:1;-webkit-transition:opacity .4s ease-in-out,right .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,-webkit-transform .2s ease-in-out;transition:opacity .4s ease-in-out,right .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,-webkit-transform .2s ease-in-out;transition:opacity .4s ease-in-out,right .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,transform .2s ease-in-out;transition:opacity .4s ease-in-out,right .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,transform .2s ease-in-out,-webkit-transform .2s ease-in-out;visibility:visible}.llms-notification.visible:hover .llms-notification-dismiss{opacity:1}.llms-notification .llms-notification-content{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.llms-notification .llms-notification-main{-ms-flex-item-align:start;align-self:flex-start;-webkit-box-flex:4;-ms-flex:4;flex:4;-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.llms-notification .llms-notification-title{font-size:18px;margin:0}.llms-notification .llms-notification-body{font-size:14px;line-height:1.4}.llms-notification .llms-notification-body p,.llms-notification .llms-notification-body li{font-size:inherit}.llms-notification .llms-notification-body p{margin-bottom:8px}.llms-notification .llms-notification-body .llms-mini-cert{background:#f6f6f6;border:1px solid #d0d0d0;-webkit-box-shadow:inset 0 0 0 3px #fefefe,inset 0 0 0 4px #dedede;box-shadow:inset 0 0 0 3px #fefefe,inset 0 0 0 4px #dedede;padding:16px 16px 24px;margin-top:12px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert-title{font-size:16px;font-weight:700;margin:12px auto;text-align:center}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body{width:100%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(1){width:65%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(2){width:35%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(3){width:85%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(4){width:75%;margin-top:18px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(5){width:70%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(6){margin-left:12px;margin-bottom:-24px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(7){width:65%;margin-right:12px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-line{border-radius:2px;height:8px;background:#b0b0b0;background-image:-webkit-gradient(linear, left top, right top, from(#b0b0b0), color-stop(20%, #a0a0a0), color-stop(40%, #b0b0b0), to(#b0b0b0));background-image:linear-gradient(to right, #b0b0b0 0%, #a0a0a0 20%, #b0b0b0 40%, #b0b0b0 100%);background-repeat:no-repeat;margin:4px auto}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-dot{background:#b0b0b0;border-radius:50%;display:inline-block;content:"";height:24px;width:24px}.llms-notification .llms-notification-body .llms-mini-cert p{margin-bottom:0}.llms-notification .llms-notification-aside{-ms-flex-item-align:start;align-self:flex-start;-webkit-box-flex:1;-ms-flex:1;flex:1;margin-right:12px;-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.llms-notification .llms-notification-icon{display:block;max-width:64px}.llms-notification .llms-notification-footer{border-top:1px solid #e5e5e5;font-size:12px;margin-top:12px;padding:6px 6px 0;text-align:right}.llms-notification .llms-notification-dismiss{color:#e5554e;cursor:pointer;font-size:22px;position:absolute;right:10px;top:8px;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out}.llms-sd-notification-center .llms-notification-list,.llms-sd-notification-center .llms-notification-list-item{list-style-type:none;margin:0;padding:0}.llms-sd-notification-center .llms-notification-list-item:hover .llms-notification{background:#fcfcfc}.llms-sd-notification-center .llms-notification{opacity:1;border-top:1px solid #e5e5e5;left:auto;padding:24px;position:relative;right:auto;top:auto;visibility:visible;width:auto}.llms-sd-notification-center .llms-notification .llms-notification-aside{max-width:64px}.llms-sd-notification-center .llms-notification .llms-notification-footer{border:none;padding:0;text-align:left}.llms-sd-notification-center .llms-notification .llms-progress{display:none !important}.llms-sd-notification-center .llms-notification .llms-notification-date{color:#515151;float:left;margin-right:6px}.llms-sd-notification-center .llms-notification .llms-mini-cert{margin:0 auto;max-width:380px}@media all and (min-width: 480px){.llms-notification{left:auto;right:-800px;width:360px}.llms-notification.visible{right:24px}.llms-notification .llms-notification-dismiss{opacity:0}}.llms-pagination ul{list-style-type:none}.llms-pagination ul li{float:left}.llms-pagination ul li a{border-bottom:0;text-decoration:none}.llms-pagination ul li .page-numbers{padding:.5em;text-decoration:underline}.llms-pagination ul li .page-numbers.current{text-decoration:none}.llms-tooltip{background:#2a2a2a;border-radius:4px;color:#fff;font-size:14px;line-height:1.2;opacity:0;top:-20px;padding:8px 12px;left:50%;position:absolute;pointer-events:none;-webkit-transform:translateX(-50%);transform:translateX(-50%);-webkit-transition:opacity .2s ease,top .2s ease;transition:opacity .2s ease,top .2s ease;max-width:320px}.llms-tooltip.show{top:-28px;opacity:1}.llms-tooltip:after{bottom:-8px;border-top:8px solid #2a2a2a;border-left:8px solid transparent;border-right:8px solid transparent;content:"";height:0;left:50%;position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:0}.webui-popover-title{font-size:initial;font-weight:initial;line-height:initial}.webui-popover-inverse .webui-popover-inner .close{color:#fff;opacity:.6;text-shadow:none}.webui-popover-inverse .webui-popover-inner .close:hover{opacity:.8}.webui-popover-inverse .webui-popover-content a{color:#fff;text-decoration:underline}.webui-popover-inverse .webui-popover-content a:hover{text-decoration:none}.single-llms_quiz .llms-quiz-attempt-results{margin:0;padding:0;list-style-type:none}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question{background:#efefef;margin:0 0 10px;position:relative}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer{color:inherit;display:block;padding:10px 35px 10px 10px;text-decoration:none}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:before,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:after{content:" ";display:table}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:after{clear:both}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect{background:rgba(255,146,43,.2)}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon{background-color:#ff922b}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct{background:rgba(131,195,115,.2)}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon{background-color:#83c373}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect{background:rgba(229,85,78,.2)}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon{background-color:#e5554e}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title{float:left;margin:0;line-height:1}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points{float:right;line-height:1}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip{position:absolute;right:-12px;top:-2px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon{color:rgba(255,255,255,.65);border-radius:50%;font-size:30px;height:40px;line-height:40px;text-align:center;width:40px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main{display:none;padding:0 10px 10px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label{font-weight:700;margin-bottom:10px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers{margin:0;padding:0}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer{padding:0;margin:0 0 0 30px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child{list-style-type:none;margin-left:0}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img{height:auto;max-width:200px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section{border-top:2px solid rgba(255,255,255,.5);margin-top:20px;padding-top:20px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child{border-top:none;margin-top:0;padding-top:0}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers{list-style-type:none;margin:0;padding:0}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer,.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer{display:inline-block;list-style-type:none;margin:0;padding:5px}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed{opacity:.5}.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title{font-style:italic;font-weight:normal}.single-llms_quiz .llms-return{margin-bottom:10px}.single-llms_quiz .llms-quiz-results:before,.single-llms_quiz .llms-quiz-results:after{content:" ";display:table}.single-llms_quiz .llms-quiz-results:after{clear:both}.single-llms_quiz .llms-quiz-results .llms-donut.passing{color:#83c373}.single-llms_quiz .llms-quiz-results .llms-donut.passing svg path{stroke:#83c373}.single-llms_quiz .llms-quiz-results .llms-donut.pending{color:#555}.single-llms_quiz .llms-quiz-results .llms-donut.pending svg path{stroke:#555}.single-llms_quiz .llms-quiz-results .llms-donut.failing{color:#e5554e}.single-llms_quiz .llms-quiz-results .llms-donut.failing svg path{stroke:#e5554e}.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside,.single-llms_quiz .llms-quiz-results .llms-quiz-results-main,.single-llms_quiz .llms-quiz-results .llms-quiz-results-history{margin-bottom:20px}@media all and (min-width: 600px){.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside{float:left;width:220px}.single-llms_quiz .llms-quiz-results .llms-quiz-results-main,.single-llms_quiz .llms-quiz-results .llms-quiz-results-history{float:left;width:calc(100% - 300px)}}.single-llms_quiz ul.llms-quiz-meta-info,.single-llms_quiz ul.llms-quiz-meta-info li{list-style-type:none;margin:0;padding:0}.single-llms_quiz ul.llms-quiz-meta-info{margin-bottom:10px}.single-llms_quiz .llms-quiz-buttons{margin-top:10px;text-align:left}.single-llms_quiz .llms-quiz-buttons form{display:inline-block}.llms-quiz-question-wrapper{min-height:140px;position:relative}.llms-quiz-question-wrapper .llms-quiz-loading{bottom:20px;left:0;position:absolute;right:0;text-align:center;z-index:1}.llms-quiz-ui{background:#fcfcfc;padding:20px;position:relative}.llms-quiz-ui .llms-quiz-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 0 30px}.llms-quiz-ui .llms-progress{background-color:#f1f2f1;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;height:8px;margin:0;overflow:hidden}.llms-quiz-ui .llms-progress .progress-bar-complete{-webkit-transition:width .3s ease-in;transition:width .3s ease-in;width:0}.llms-quiz-ui .llms-error{background:#e5554e;border-radius:4px;color:#fff;margin:10px 0;padding:10px}.llms-quiz-ui .llms-error:before,.llms-quiz-ui .llms-error:after{content:" ";display:table}.llms-quiz-ui .llms-error:after{clear:both}.llms-quiz-ui .llms-error a{color:rgba(255,255,255,.6);float:right;font-size:22px;line-height:1;text-decoration:none}.llms-quiz-ui .llms-quiz-counter{display:none;color:#6a6a6a;float:right;font-size:18px}.llms-quiz-ui .llms-quiz-counter .llms-sep{margin:0 5px}.llms-quiz-ui .llms-quiz-nav{margin-top:20px}.llms-quiz-ui .llms-quiz-nav button{margin:0 10px 0 0}.llms-question-wrapper .llms-question-text{font-size:30px;font-weight:400;margin-bottom:15px}.llms-question-wrapper ol.llms-question-choices{list-style-type:none;margin:0;padding:0}.llms-question-wrapper ol.llms-question-choices li.llms-choice{border-bottom:1px solid #e8e8e8;margin:0;padding:0;position:relative}.llms-question-wrapper ol.llms-question-choices li.llms-choice:last-child{border-bottom:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture{border-bottom:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture label{display:inline-block;padding:0}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-marker{bottom:10px;margin:0;position:absolute;right:10px}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image{margin:2px;padding:20px;-webkit-transition:background .4s ease;transition:background .4s ease}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image img{display:block;width:100%}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture input:checked~.llms-choice-image{background:#efefef}.llms-question-wrapper ol.llms-question-choices li.llms-choice input{display:none;left:0;pointer-events:none;position:absolute;top:0;visibility:hidden}.llms-question-wrapper ol.llms-question-choices li.llms-choice label{display:block;margin:0;padding:10px 20px;position:relative}.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .iterator{display:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .fa{display:inline}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker{background:#f0f0f0;display:inline-block;font-size:20px;height:40px;line-height:40px;margin-right:10px;text-align:center;-webkit-transition:all .2s ease;transition:all .2s ease;vertical-align:middle;width:40px}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker .fa{display:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--lister,.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--checkbox{border-radius:4px}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--radio{border-radius:50%}.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked+.llms-marker{background:#ef476f;color:#fff}.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked+.llms-marker .iterator{display:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked+.llms-marker .fa{display:inline}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-choice-text{display:inline-block;font-size:18px;font-weight:400;line-height:1.6;margin-bottom:0;vertical-align:middle;width:calc(100% - 60px)}.llms-quiz-timer{background:#fff;border:1px solid #83c373;border-radius:4px;color:#83c373;float:right;font-size:18px;line-height:1;margin-left:20px;padding:8px 12px;position:relative;white-space:nowrap;z-index:1}.llms-quiz-timer.color-half{border-color:#ff922b;color:#ff922b}.llms-quiz-timer.color-empty{border-color:#e5554e;color:#e5554e}.llms-quiz-timer .llms-tiles{display:inline-block;margin-left:5px}.voucher-expand{display:none}@media all and (min-width: 600px){.llms-access-plans.cols-1 .llms-access-plan{width:100%}.llms-access-plans.cols-2 .llms-access-plan{width:50%}.llms-access-plans.cols-3 .llms-access-plan{width:33.3333333333%}.llms-access-plans.cols-4 .llms-access-plan{width:25%}.llms-access-plans.cols-5 .llms-access-plan{width:20%}}.llms-free-enroll-form{margin-bottom:0}.llms-access-plan{-webkit-box-sizing:border-box;box-sizing:border-box;float:left;text-align:center;width:100%}.llms-access-plan .llms-access-plan-footer,.llms-access-plan .llms-access-plan-content{background:#f1f1f1}.llms-access-plan.featured .llms-access-plan-featured{background:#4ba9ff}.llms-access-plan.featured .llms-access-plan-footer,.llms-access-plan.featured .llms-access-plan-content{border-left:3px solid #2295ff;border-right:3px solid #2295ff}.llms-access-plan.featured .llms-access-plan-footer{border-bottom-color:#2295ff}.llms-access-plan.on-sale .price-regular{text-decoration:line-through}.llms-access-plan .stamp{background:#2295ff;color:#fff;font-size:11px;font-style:normal;font-weight:300;padding:2px 3px;vertical-align:top}.llms-access-plan .llms-access-plan-restrictions ul{margin:0}.llms-access-plan-featured{color:#fff;font-size:14px;font-weight:400;margin:0 2px 0 2px}.llms-access-plan-content{margin:0 2px 0}.llms-access-plan-content .llms-access-plan-pricing{padding:10px 0 0}.llms-access-plan-title{background:#2295ff;color:#fff;margin-bottom:0;padding:10px}.llms-access-plan-pricing .llms-price-currency-symbol{font-size:14px;vertical-align:top}.llms-access-plan-price{font-size:18px;font-variant:small-caps;line-height:20px}.llms-access-plan-price .lifterlms-price{font-weight:700}.llms-access-plan-price.sale{padding:5px 0;border-top:1px solid #d0d0d0;border-bottom:1px solid #d0d0d0}.llms-access-plan-trial,.llms-access-plan-schedule,.llms-access-plan-sale-end,.llms-access-plan-expiration{font-size:15px;font-variant:small-caps;line-height:1.2}.llms-access-plan-description{font-size:16px;padding:10px 10px 0}.llms-access-plan-description ul{margin:0}.llms-access-plan-description ul li{border-bottom:1px solid #d0d0d0;list-style-type:none}.llms-access-plan-description ul li:last-child{border-bottom:none}.llms-access-plan-description div:last-child,.llms-access-plan-description img:last-child,.llms-access-plan-description p:last-child,.llms-access-plan-description ul:last-child,.llms-access-plan-description li:last-child{margin-bottom:0}.llms-access-plan-restrictions .stamp{vertical-align:baseline}.llms-access-plan-restrictions ul{margin:0}.llms-access-plan-restrictions ul li{font-size:12px;line-height:14px;list-style-type:none}.llms-access-plan-restrictions a{color:#f8954f}.llms-access-plan-restrictions a:hover{color:#f67d28}.llms-access-plan-footer{border-bottom:3px solid #f1f1f1;padding:10px;margin:0 2px 2px 2px}.llms-access-plan-footer .llms-access-plan-pricing{padding:0 0 10px}.webui-popover-content .llms-members-only-restrictions{text-align:center}.webui-popover-content .llms-members-only-restrictions ul,.webui-popover-content .llms-members-only-restrictions ol,.webui-popover-content .llms-members-only-restrictions li,.webui-popover-content .llms-members-only-restrictions p{margin:0;padding:0}.webui-popover-content .llms-members-only-restrictions ul,.webui-popover-content .llms-members-only-restrictions ol,.webui-popover-content .llms-members-only-restrictions li{list-style-type:none}.webui-popover-content .llms-members-only-restrictions li{padding:8px 0;border-top:1px solid #3b3b3b}.webui-popover-content .llms-members-only-restrictions li:first-child{border-top:none}.webui-popover-content .llms-members-only-restrictions li a{display:block}.llms-checkout-wrapper form.llms-login{border:3px solid #2295ff;display:none;margin-bottom:10px}.llms-checkout-wrapper .llms-form-heading{background:#2295ff;color:#fff;margin:0 0 5px;padding:10px}.llms-checkout{background:#fff;position:relative}@media all and (min-width: 800px){.llms-checkout-cols-2 .llms-checkout-col{float:left}.llms-checkout-cols-2 .llms-checkout-col.llms-col-1{margin-right:5px;width:calc(58% - 5px)}.llms-checkout-cols-2 .llms-checkout-col.llms-col-2{margin-left:5px;width:calc(42% - 5px)}.llms-checkout-cols-2 .llms-checkout-col.llms-col-2 button{width:100%}}.llms-checkout-section{border:3px solid #2295ff;margin-bottom:10px;position:relative}.llms-checkout-section-content{margin:10px}.llms-checkout-section-content.llms-form-fields{margin:0px}.llms-checkout-section-content .llms-label{font-weight:400;font-variant:small-caps;text-transform:lowercase}.llms-checkout-section-content .llms-order-summary{list-style-type:none;margin:0;padding:0}.llms-checkout-section-content .llms-order-summary li{list-style-type:none}.llms-checkout-section-content .llms-order-summary li.llms-pricing.on-sale .price-regular,.llms-checkout-section-content .llms-order-summary li.llms-pricing.has-coupon .price-regular{text-decoration:line-through}.llms-checkout-section-content .llms-coupon-wrapper{border-top:1px solid #dadada;margin-top:10px;padding-top:10px}.llms-checkout-section-content .llms-coupon-wrapper .llms-coupon-entry{display:none;margin-top:10px}.llms-form-field.llms-payment-gateway-option label+span.llms-description{display:inline-block;margin-left:5px}.llms-form-field.llms-payment-gateway-option .llms-description a{border:none;-webkit-box-shadow:none;box-shadow:none;text-decoration:none}.llms-form-field.llms-payment-gateway-option .llms-description img{display:inline;max-height:22px;vertical-align:middle}.llms-checkout-wrapper ul.llms-payment-gateways{margin:5px 0 0;padding:0}ul.llms-payment-gateways{list-style-type:none}ul.llms-payment-gateways li:last-child:after{border-bottom:1px solid #dadada;content:"";display:block;margin:10px}ul.llms-payment-gateways .llms-payment-gateway{margin-bottom:5px;list-style-type:none}ul.llms-payment-gateways .llms-payment-gateway:last-child{margin-bottom:none}ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-payment-gateway-option label{font-weight:700}ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields{display:block}ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields .llms-notice{margin-left:10px;margin-right:10px}ul.llms-payment-gateways .llms-payment-gateway .llms-form-field{padding-bottom:0}ul.llms-payment-gateways .llms-gateway-description{margin-left:40px}ul.llms-payment-gateways .llms-gateway-fields{display:none;margin:5px 0 20px}ul.llms-payment-gateways .llms-payment-gateway-error{padding:0 10px}.llms-checkout-confirm{margin:0 10px}.llms-payment-method{margin:10px 10px 0}.llms-gateway-description p{font-size:85%;font-style:italic;margin-bottom:0}.llms-form-fields{-webkit-box-sizing:border-box;box-sizing:border-box}.llms-form-fields *{-webkit-box-sizing:border-box;box-sizing:border-box}.llms-form-fields.flush .llms-form-field{padding:0 0 10px}.llms-form-fields .wp-block-columns,.llms-form-fields .wp-block-column{margin-bottom:0}.llms-form-heading{padding:0 10px 10px}.llms-form-field{float:left;padding:0 10px 10px;position:relative;width:100%}.llms-form-field label:empty:after{content:" "}.llms-form-field.valid input[type=date],.llms-form-field.valid input[type=time],.llms-form-field.valid input[type=datetime-local],.llms-form-field.valid input[type=week],.llms-form-field.valid input[type=month],.llms-form-field.valid input[type=text],.llms-form-field.valid input[type=email],.llms-form-field.valid input[type=url],.llms-form-field.valid input[type=password],.llms-form-field.valid input[type=search],.llms-form-field.valid input[type=tel],.llms-form-field.valid input[type=number],.llms-form-field.valid textarea,.llms-form-field.valid select{background:rgba(131,195,115,.3);border-color:#83c373}.llms-form-field.error input[type=date],.llms-form-field.error input[type=time],.llms-form-field.error input[type=datetime-local],.llms-form-field.error input[type=week],.llms-form-field.error input[type=month],.llms-form-field.error input[type=text],.llms-form-field.error input[type=email],.llms-form-field.error input[type=url],.llms-form-field.error input[type=password],.llms-form-field.error input[type=search],.llms-form-field.error input[type=tel],.llms-form-field.error input[type=number],.llms-form-field.error textarea,.llms-form-field.error select,.llms-form-field.invalid input[type=date],.llms-form-field.invalid input[type=time],.llms-form-field.invalid input[type=datetime-local],.llms-form-field.invalid input[type=week],.llms-form-field.invalid input[type=month],.llms-form-field.invalid input[type=text],.llms-form-field.invalid input[type=email],.llms-form-field.invalid input[type=url],.llms-form-field.invalid input[type=password],.llms-form-field.invalid input[type=search],.llms-form-field.invalid input[type=tel],.llms-form-field.invalid input[type=number],.llms-form-field.invalid textarea,.llms-form-field.invalid select{background:rgba(229,85,78,.3);border-color:#e5554e}.llms-form-field.llms-visually-hidden-field{display:none}.llms-form-field.align-right{text-align:right}@media screen and (min-width: 600px){.llms-form-field.llms-cols-1{width:8.3333333333%}.llms-form-field.llms-cols-2{width:16.6666666667%}.llms-form-field.llms-cols-3{width:25%}.llms-form-field.llms-cols-4{width:33.3333333333%}.llms-form-field.llms-cols-5{width:41.6666666667%}.llms-form-field.llms-cols-6{width:50%}.llms-form-field.llms-cols-7{width:58.3333333333%}.llms-form-field.llms-cols-8{width:66.6666666667%}.llms-form-field.llms-cols-9{width:75%}.llms-form-field.llms-cols-10{width:83.3333333333%}.llms-form-field.llms-cols-11{width:91.6666666667%}.llms-form-field.llms-cols-12{width:100%}}.llms-form-field.type-hidden{padding:0}.llms-form-field.type-radio input,.llms-form-field.type-radio label,.llms-form-field.type-checkbox input,.llms-form-field.type-checkbox label{display:inline-block;width:auto}.llms-form-field.type-radio input,.llms-form-field.type-checkbox input{margin-right:5px}.llms-form-field.type-radio label+.llms-description,.llms-form-field.type-checkbox label+.llms-description{display:block}.llms-form-field.type-radio:not(.is-group) input[type=radio]{position:absolute;opacity:0;visibility:none}.llms-form-field.type-radio:not(.is-group) label:before{background:#fafafa;background-position:-24px 0;background-repeat:no-repeat;border-radius:50%;-webkit-box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.35) 0 0 0 1px;box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.35) 0 0 0 1px;content:"";cursor:pointer;display:inline-block;height:22px;margin-right:5px;position:relative;-webkit-transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);top:-3px;vertical-align:middle;width:22px;z-index:2}.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked+label:before{-webkit-transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);background-position:0 0;background-image:radial-gradient(ellipse at center, #2295ff 0%, #2295ff 40%, #fafafa 45%)}.llms-form-field .llms-input-group{margin-top:5px}.llms-form-field .llms-input-group .llms-form-field{padding:0 0 5px 5px}.llms-form-field.type-reset button:not(.auto),.llms-form-field.type-button button:not(.auto),.llms-form-field.type-submit button:not(.auto){width:100%}.llms-form-field .llms-description{font-size:14px;font-style:italic}.llms-form-field .llms-required{color:#e5554e;margin-left:4px}.llms-form-field input,.llms-form-field textarea,.llms-form-field select{width:100%;margin-bottom:5px}.llms-form-field .select2-container .select2-selection--single{height:auto;padding:4px 6px}.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%}.llms-password-strength-meter{border:1px solid #dadada;display:none;font-size:10px;margin-top:-10px;padding:1px;position:relative;text-align:center}.llms-password-strength-meter:before{bottom:0;content:"";left:0;position:absolute;top:0;-webkit-transition:width .4s ease;transition:width .4s ease}.llms-password-strength-meter.mismatch,.llms-password-strength-meter.too-short,.llms-password-strength-meter.very-weak{border-color:#e35b5b}.llms-password-strength-meter.mismatch:before,.llms-password-strength-meter.too-short:before,.llms-password-strength-meter.very-weak:before{background:rgba(227,91,91,.25);width:25%}.llms-password-strength-meter.too-short:before{width:0}.llms-password-strength-meter.weak{border-color:#f78b53}.llms-password-strength-meter.weak:before{background:rgba(247,139,83,.25);width:50%}.llms-password-strength-meter.medium{border-color:#ffc733}.llms-password-strength-meter.medium:before{background:rgba(255,199,51,.25);width:75%}.llms-password-strength-meter.strong{border-color:#83c373}.llms-password-strength-meter.strong:before{background:rgba(131,195,115,.25);width:100%}.llms-widget-syllabus--collapsible .llms-section .section-header{cursor:pointer}.llms-widget-syllabus--collapsible .llms-section.llms-section--opened .llms-collapse-caret .fa-caret-right{display:none}.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-collapse-caret .fa-caret-down{display:none}.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-lesson{display:none}.llms-widget-syllabus--collapsible .llms-syllabus-footer{text-align:left}.llms-student-dashboard .llms-sd-title{margin:25px 0}.llms-student-dashboard .llms-sd-items{list-style-type:none;margin:0;padding:0}.llms-student-dashboard .llms-sd-item{float:left;list-style-type:none;margin:0;padding:0}.llms-student-dashboard .llms-sd-item:last-child .llms-sep{display:none}.llms-student-dashboard .llms-sd-item .llms-sep{color:#333;margin:0 5px}.llms-student-dashboard .llms-sd-section{margin-bottom:25px}.llms-student-dashboard .llms-sd-section .llms-sd-section-footer{margin-top:10px}.llms-student-dashboard .orders-table{border:1px solid #f5f5f5;width:100%}.llms-student-dashboard .orders-table thead{display:none}.llms-student-dashboard .orders-table thead th,.llms-student-dashboard .orders-table thead td{font-weight:700}@media all and (min-width: 600px){.llms-student-dashboard .orders-table thead{display:table-header-group}}.llms-student-dashboard .orders-table tbody tr:nth-child(even) td,.llms-student-dashboard .orders-table tbody tr:nth-child(even) th{background:#f9f9f9}.llms-student-dashboard .orders-table tfoot th,.llms-student-dashboard .orders-table tfoot td{padding:10px;text-align:right}.llms-student-dashboard .orders-table tfoot th:last-child,.llms-student-dashboard .orders-table tfoot td:last-child{border-bottom-width:0}.llms-student-dashboard .orders-table th{font-weight:700}.llms-student-dashboard .orders-table th,.llms-student-dashboard .orders-table td{border-color:#efefef;border-style:solid;border-width:0;display:block;padding:8px 12px;text-align:center}.llms-student-dashboard .orders-table th .llms-button-primary,.llms-student-dashboard .orders-table td .llms-button-primary{display:inline-block}.llms-student-dashboard .orders-table th:last-child,.llms-student-dashboard .orders-table td:last-child{border-bottom-width:1px}.llms-student-dashboard .orders-table th:before,.llms-student-dashboard .orders-table td:before{content:attr(data-label)}@media all and (min-width: 600px){.llms-student-dashboard .orders-table th,.llms-student-dashboard .orders-table td{border-bottom-width:1px;display:table-cell;text-align:left}.llms-student-dashboard .orders-table th:first-child,.llms-student-dashboard .orders-table td:first-child{width:220px}.llms-student-dashboard .orders-table th:before,.llms-student-dashboard .orders-table td:before{display:none}}@media all and (min-width: 600px){.llms-student-dashboard .orders-table.transactions th:first-child{width:auto}}.llms-student-dashboard .llms-status{border-radius:3px;border-bottom:1px solid #fff;display:inline-block;font-size:80%;padding:3px 6px;vertical-align:middle}.llms-student-dashboard .llms-status.llms-size--large{font-size:105%;padding:6px 12px}.llms-student-dashboard .llms-status.llms-active,.llms-student-dashboard .llms-status.llms-completed,.llms-student-dashboard .llms-status.llms-pass,.llms-student-dashboard .llms-status.llms-txn-succeeded{color:#1f3818;background-color:#83c373}.llms-student-dashboard .llms-status.llms-fail,.llms-student-dashboard .llms-status.llms-failed,.llms-student-dashboard .llms-status.llms-expired,.llms-student-dashboard .llms-status.llms-cancelled,.llms-student-dashboard .llms-status.llms-txn-failed{color:#5a110d;background-color:#e5554e}.llms-student-dashboard .llms-status.llms-incomplete,.llms-student-dashboard .llms-status.llms-on-hold,.llms-student-dashboard .llms-status.llms-pending,.llms-student-dashboard .llms-status.llms-pending-cancel,.llms-student-dashboard .llms-status.llms-refunded,.llms-student-dashboard .llms-status.llms-txn-pending,.llms-student-dashboard .llms-status.llms-txn-refunded{color:#664200;background-color:orange}.llms-student-dashboard .llms-person-form-wrapper .llms-change-password{display:none}@media all and (min-width: 600px){.llms-student-dashboard .order-primary{float:left;width:68%}}@media all and (min-width: 600px){.llms-student-dashboard .order-secondary{float:left;width:32%}}.llms-student-dashboard .order-secondary form{margin-bottom:0}@media all and (min-width: 600px){.llms-student-dashboard .llms-view-order.llms-stack-cols .order-primary,.llms-student-dashboard .llms-view-order.llms-stack-cols .order-secondary{float:none;width:100%}}.llms-student-dashboard .llms-switch-payment-source .llms-notice,.llms-student-dashboard .llms-switch-payment-source .entry-content .llms-notice{margin-left:10px;margin-right:10px}.llms-student-dashboard .llms-switch-payment-source-main{border:none;display:none;margin:0}.llms-student-dashboard .llms-switch-payment-source-main ul.llms-payment-gateways{padding:10px 15px 0;margin:0}.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method,.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary{padding:0 25px 10px;margin:0;list-style-type:none}.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method li,.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary li{list-style-type:none}.llms-student-dashboard .llms-loop-list{margin:0 -10px}.llms-sd-grades .llms-table .llms-progress{display:block;margin:0}.llms-sd-grades .llms-table .llms-progress .llms-progress-bar{top:0;height:1.4em}.llms-sd-grades .llms-table .llms-progress .progress__indicator{font-size:1em;position:relative;right:.4em;top:.2em;z-index:1}.llms-table.llms-single-course-grades tbody tr:first-child td,.llms-table.llms-single-course-grades tbody tr:first-child th{background-color:#eaeaea}.llms-table.llms-single-course-grades th{font-weight:400}.llms-table.llms-single-course-grades td .llms-donut{display:inline-block;vertical-align:middle}.llms-table.llms-single-course-grades td .llms-status{margin-right:4px}.llms-table.llms-single-course-grades td .llms-donut+.llms-status{margin-left:4px}.llms-table.llms-single-course-grades th.llms-section_title{font-size:110%;font-weight:700}.llms-table.llms-single-course-grades td.llms-lesson_title{padding-left:36px;max-width:40%}.llms-table.llms-single-course-grades td.llms-associated_quiz .llms-donut{display:inline-block;margin-right:5px;vertical-align:middle}.llms-table.llms-single-course-grades td.llms-lesson_title a[href="#"]{pointer-events:none}.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"]{color:inherit;position:relative}.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"] .llms-tooltip{max-width:380px;width:380px}.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"] .llms-tooltip.show{top:-54px}.llms-sd-widgets{display:-webkit-box;display:-ms-flexbox;display:flex}.llms-sd-widgets .llms-sd-widget{background:#f9f9f9;-webkit-box-flex:1;-ms-flex:1;flex:1;margin:10px 10px 20px;padding:0 0 20px}.llms-sd-widgets .llms-sd-widget:first-child{margin-left:0}.llms-sd-widgets .llms-sd-widget:last-child{margin-right:0}.llms-sd-widgets .llms-sd-widget .llms-sd-widget-title{background:#2295ff;color:#fff;font-size:18px;line-height:1;margin:0 0 20px;padding:10px}.llms-sd-widgets .llms-sd-widget .llms-sd-widget-empty{font-size:14px;font-style:italic;opacity:.5;text-align:center}.llms-sd-widgets .llms-sd-widget .llms-donut{margin:0 auto}.llms-sd-widgets .llms-sd-widget .llms-sd-date{opacity:.8;text-align:center;font-size:22px;line-height:1.1}.llms-sd-widgets .llms-sd-widget .llms-sd-date span{display:block}.llms-sd-widgets .llms-sd-widget .llms-sd-date span.day{font-size:52px}.llms-sd-widgets .llms-sd-widget .llms-sd-date span.diff{font-size:12px;font-style:italic;margin-top:8px;opacity:.75}.llms-sd-widgets .llms-sd-widget .llms-achievement{background:transparent;margin:0 auto;max-width:120px}.llms-sd-widgets .llms-sd-widget .llms-achievement .llms-achievement-title{display:none}.llms-sd-pagination{margin-top:24px}.llms-sd-pagination:before,.llms-sd-pagination:after{content:" ";display:table}.llms-sd-pagination:after{clear:both}.llms-sd-pagination .llms-button-secondary{display:inline-block}.llms-sd-pagination .llms-button-secondary.prev{float:left}.llms-sd-pagination .llms-button-secondary.next{float:right}.llms-sd-notification-center .llms-notification{z-index:1}.llms-table{border:1px solid #efefef;width:100%}.llms-table thead th,.llms-table thead td{font-weight:700}.llms-table tbody tr:nth-child(odd) td,.llms-table tbody tr:nth-child(odd) th{background:#f9f9f9}.llms-table tbody tr:last-child{border-bottom-width:0}.llms-table tfoot tr{background:#f9f9f9}.llms-table tfoot tr .llms-pagination .page-numbers{margin:0}.llms-table tfoot tr .llms-table-sort{text-align:right}.llms-table tfoot tr .llms-table-sort form,.llms-table tfoot tr .llms-table-sort select,.llms-table tfoot tr .llms-table-sort input,.llms-table tfoot tr .llms-table-sort button{margin:0}.llms-table th{font-weight:700}.llms-table th,.llms-table td{border-bottom:1px solid #efefef;padding:8px 12px}.llms-table th:first-child,.llms-table td:first-child{padding-left:12px}.llms-table th:last-child,.llms-table td:last-child{padding-right:12px}#page .llms-table tfoot label{display:inline}#page .llms-table tfoot select{height:auto}/*!
* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/@font-face{font-family:"FontAwesome";src:url("../fonts/fontawesome-webfont.eot?v=4.7.0");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"),url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{-webkit-filter:none;filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-vcard:before,.fa-address-card:before{content:""}.fa-vcard-o:before,.fa-address-card-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.llms-spinning{background:rgba(250,250,250,.7);bottom:0;display:none;left:0;position:absolute;right:0;top:0}.llms-spinner{-webkit-animation:llms-spinning 1.5s linear infinite;animation:llms-spinning 1.5s linear infinite;-webkit-box-sizing:border-box;box-sizing:border-box;border:4px solid #313131;border-radius:50%;height:40px;left:50%;margin-left:-20px;margin-top:-20px;position:absolute;top:50%;width:40px}.llms-spinner.small{border-width:2px;height:20px;margin-left:-10px;margin-top:-10px;width:20px}@-webkit-keyframes llms-spinning{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}50%{border-radius:5%}100%{-webkit-transform:rotate(220deg);transform:rotate(220deg)}}@keyframes llms-spinning{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}50%{border-radius:5%}100%{-webkit-transform:rotate(220deg);transform:rotate(220deg)}}
diff --git a/assets/css/llms-admin-addons.css.map b/assets/css/llms-admin-addons.css.map
new file mode 100644
index 0000000000..78576eca3e
--- /dev/null
+++ b/assets/css/llms-admin-addons.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"assets/css/llms-admin-addons.css","mappings":";;;AAKC;EACC;AAJF;AAOC;EACC;AALF;;AAUA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAPD;AAQC;EACC;AANF;AASC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAPF;AAUC;EACC;EACA;AARF;AASE;EACC;EACA;EACA;EACA;AAPH;AASE;EACC;AAPH;;ACjDC;EAEI;EACA;ADmDL;ACjDC;EACI;ADmDL;AASC;EACC;EACA;EACA;EACA;AAPF;AASE;EAND;IAOE;IACA;IACA;EAND;EAOC;IACC;EALF;EAOC;IACC;EALF;AACF;AAUC;EAEC;EACA;EACA;EACA;AATF;AAWE;EACC;EACA;EACA;AATH;AAYE;EACC;AAVH;AAWG;EACC;EACA;EACA;AATJ;AAWG;EACC;EACA;AATJ;AAaE;EACC;AAXH;AAYG;EACC;AAVJ;AAYG;EACC;EACA;AAVJ;AAYG;EACC;EACA;EACA;EACA;AAVJ;AAcE;EACC;EACA;EACA;EACA;AAZH;AAcG;EACC;EACA;EACA;AAZJ;AAeG;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAdJ;AAgBI;EACC;AAdL;AAeK;EAAoB;AAZzB;AAaK;EAAoB;AAVzB;AAaI;EACC;EACA;EACA;EACA;EACA;EACA;EACA;AAXL;AAcI;EAAoB;AAXxB;AAYI;EAAoB;AATxB;AAWI;;EAEC;EACA;AATL;AAYI;EACC;AAVL;AAWK;EACC;AATN;AAaI;EACC;EACA;AAXL;AAiBK;EACC;AAfN;AAsBK;EACC;AApBN;AA2BK;EACC;AAzBN;AA+BG;EACC;EACA;EACA;AA7BJ;AA8BI;EACC;AA5BL;AAgCG;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AA9BJ;AA+BI;EACC;EACA;AA7BL;AA+BI;EACC;EACA;EACA;EACA;EACA;AA7BL;AA+BI;EACC;EACA;EACA;EACA;AA7BL;AAgCI;EACC;AA9BL;AA+BK;EACC;AA7BN,C","sources":["webpack://lifterlms/./src/scss/admin-addons.scss","webpack://lifterlms/./assets/scss/_includes/_mixins.scss"],"sourcesContent":["@import '@lifterlms/brand/sass/colors';\n@import \"../../assets/scss/_includes/mixins\";\n\n.wrap.lifterlms-addons {\n\n\t.wp-heading-inline {\n\t\tvertical-align: middle;\n\t}\n\n\t.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item:after {\n\t\tmargin: 0 3px;\n\t}\n\n}\n\n.llms-addons-bulk-actions {\n\tbackground: #fff;\n\tborder: 1px solid #ddd;\n\tbox-shadow: inset 0 1px 0 rgba(255,255,255,.2), inset 0 -1px 0 rgba(0,0,0,.1);\n\tpadding: 40px;\n\tleft: 50%;\n\tmargin-left: -100px;\n\tposition: fixed;\n\ttext-align: center;\n\ttransition: top 0.2s ease;\n\ttop: -100%;\n\twidth: 240px;\n\tz-index: 1;\n\t&.active {\n\t\ttop: 80px;\n\t}\n\n\t.llms-bulk-close {\n\t\tbackground: #fff;\n\t\tborder: 1px solid #ddd;\n\t\tborder-bottom-width: 0;\n\t\tborder-left-width: 0;\n\t\tborder-radius: 50%;\n\t\tcolor: llms-color( wp-red-50 );\n\t\tfont-size: 25px;\n\t\theight: 25px;\n\t\tpadding: 5px;\n\t\tposition: absolute;\n\t\tright: -10px;\n\t\ttop: -10px;\n\t\twidth: 25px;\n\t}\n\n\t.llms-bulk-desc {\n\t\tfont-size: 18px;\n\t\tmargin-bottom: 20px;\n\t\t.fa {\n\t\t\tcolor: llms-color( llms-blue );\n\t\t\tdisplay: block;\n\t\t\tfont-size: 30px;\n\t\t\tmargin-bottom: 10px;\n\t\t}\n\t\t&.deactivate .fa {\n\t\t\tcolor: #777;\n\t\t}\n\t}\n\n}\n\n.llms-addons-wrap {\n\n\t@include clearfix();\n\n\t.llms-add-on-item {\n\t\tdisplay: block;\n\t\tlist-style: none;\n\t\tmargin-bottom: 20px;\n\t\tposition: relative;\n\n\t\t@media only screen and ( min-width: 680px ) {\n\t\t\tfloat: left;\n\t\t\tmargin-right: 30px;\n\t\t\twidth: calc( 33.333% - 20px );\n\t\t\t&:nth-of-type(3n) {\n\t\t\t\tmargin-right: 0;\n\t\t\t}\n\t\t\t&:nth-of-type(3n+1) {\n\t\t\t\tclear: left;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t.llms-add-on {\n\n\t\tbackground-color: #f5f5f5;\n\t\tborder: 1px solid #ddd;\n\t\tbox-shadow: inset 0 1px 0 rgba(255,255,255,.2), inset 0 -1px 0 rgba(0,0,0,.1);\n\t\tposition: relative;\n\n\t\t.llms-add-on-link {\n\t\t\tcolor: #444;\n\t\t\tdisplay: block;\n\t\t\ttext-decoration: none;\n\t\t}\n\n\t\theader {\n\t\t\tmargin-bottom: 0;\n\t\t\th4 {\n\t\t\t\tcolor: #23282d;\n\t\t\t\tfont-size: 16px;\n\t\t\t\tmargin: 8px 8px 0;\n\t\t\t}\n\t\t\timg {\n\t\t\t\tdisplay: block;\n\t\t\t\tmax-width: 100%;\n\t\t\t}\n\t\t}\n\n\t\tsection {\n\t\t\tpadding: 8px;\n\t\t\tp {\n\t\t\t\tmargin: 0 0 8px;\n\t\t\t}\n\t\t\tul, li {\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\t\t\t}\n\t\t\timg {\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\twidth: 18px;\n\t\t\t\tvertical-align: bottom;\n\t\t\t}\n\t\t}\n\n\t\tfooter.llms-actions {\n\t\t\tbackground: #e8e8e8;\n\t\t\tborder-top: 1px solid #ddd;\n\t\t\tpadding: 16px 8px;\n\t\t\tmargin-top: 8px;\n\n\t\t\ta.open-plugin-details-modal {\n\t\t\t\tfont-size: 18px;\n\t\t\t\tpadding: 5px;\n\t\t\t\tvertical-align: middle;\n\t\t\t}\n\n\t\t\t.llms-status-icon {\n\n\t\t\t\tbackground: #ececec;\n\t\t\t\tborder: 1px solid #b7b7b7;\n\t\t\t\tcolor: #444;\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tmargin-right: 4px;\n\t\t\t\tpadding: 8px;\n\t\t\t\ttext-decoration: none;\n\t\t\t\tvertical-align: middle;\n\n\t\t\t\t&:hover {\n\t\t\t\t\tbackground: #f0f0f0;\n\t\t\t\t\t.fa.show-on-hover { display: inline-block; }\n\t\t\t\t\t.fa.hide-on-hover { display: none; }\n\t\t\t\t}\n\n\t\t\t\t.fa {\n\t\t\t\t\tcolor: #777;\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t\theight: 16px;\n\t\t\t\t\ttext-align: center;\n\t\t\t\t\tmargin-right: 2px;\n\t\t\t\t\twidth: 16px;\n\t\t\t\t}\n\n\t\t\t\t.fa.show-on-hover { display: none; }\n\t\t\t\t.fa.hide-on-hover { display: inline-block; }\n\n\t\t\t\tinput,\n\t\t\t\tinput + .fa {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t\tcolor: llms-color( llms-blue ) !important;\n\t\t\t\t}\n\n\t\t\t\tinput:checked + .fa {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\t& + .fa {\n\t\t\t\t\t\tdisplay: none;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t.llms-status-text {\n\t\t\t\t\tfont-weight: 400;\n\t\t\t\t\tfont-size: 14px;\n\t\t\t\t}\n\n\n\t\t\t\t&.status--installed,\n\t\t\t\t&.status--license_active {\n\t\t\t\t\t.fa {\n\t\t\t\t\t\tcolor: llms-color( wp-green-50 );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// &.status--uninstalled,\n\t\t\t\t&.status--active,\n\t\t\t\t&.status--license_inactive {\n\t\t\t\t\t.fa {\n\t\t\t\t\t\tcolor: llms-color( wp-red-50 );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t&.external.status--none,\n\t\t\t\t&.external.status--license_active, // fixes xapi\n\t\t\t\t&.external.status--license_inactive { // fixes xapi\n\t\t\t\t\t.fa {\n\t\t\t\t\t\tcolor: llms-color( llms-blue );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t.llms-button-secondary {\n\t\t\t\tborder: 1px solid #b7b7b7;\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tfloat: right;\n\t\t\t\t&:hover {\n\t\t\t\t\tbackground: #f0f0f0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-addon-actions {\n\t\t\t\tbackground: #f0f0f0;\n\t\t\t\tborder: 1px solid #b7b7b7;\n\t\t\t\tbox-shadow: inset 0 1px 0 rgba(255,255,255,.2), inset 0 -1px 0 rgba(0,0,0,.1);\n\t\t\t\tdisplay: none;\n\t\t\t\tleft: 16px;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 16px;\n\t\t\t\tposition: absolute;\n\t\t\t\tright: 16px;\n\t\t\t\tz-index: 1;\n\t\t\t\t&:before, &:after {\n\t\t\t\t\tcontent: '';\n\t\t\t\t\tposition: absolute;\n\t\t\t\t}\n\t\t\t\t&:before {\n\t\t\t\t\tborder: 10px solid transparent;\n\t\t\t\t\tborder-bottom-color: #b7b7b7;\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\ttop: -20px;\n\t\t\t\t\tright: 34px;\n\t\t\t\t}\n\t\t\t\t&:after {\n\t\t\t\t\tborder: 8px solid transparent;\n\t\t\t\t\tborder-bottom-color: #f0f0f0;\n\t\t\t\t\ttop: -16px;\n\t\t\t\t\tright: 36px;\n\t\t\t\t}\n\n\t\t\t\tli {\n\t\t\t\t\tmargin-bottom: 8px;\n\t\t\t\t\t&:last-child {\n\t\t\t\t\t\tmargin-bottom: 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n","\n@mixin clearfix() {\n\t&:before,\n\t&:after {\n\t content: \" \";\n\t display: table;\n\t}\n\t&:after {\n\t clear: both;\n\t}\n}\n\n//\n// Positioning mixin\n//\n// @param [string] $position: position\n// @param [list] $args (()): offsets list\n//\n// @source http://hugogiraudel.com/2013/08/05/offsets-sass-mixin/\n//\n@mixin position($position, $args: ()) {\n\t$offsets: top right bottom left;\n\tposition: $position;\n\n\t@each $offset in $offsets {\n\t\t$index: index($args, $offset);\n\n\t\t@if $index {\n\t\t\t@if $index == length($args) {\n\t\t\t\t#{$offset}: 0;\n\t\t\t}\n\t\t\t@else {\n\t\t\t\t$next: nth($args, $index + 1);\n\t\t\t\t@if is-valid-length($next) {\n\t\t\t\t\t#{$offset}: $next;\n\t\t\t\t}\n\t\t\t\t@else if index($offsets, $next) {\n\t\t\t\t\t#{$offset}: 0;\n\t\t\t\t}\n\t\t\t\t@else {\n\t\t\t\t\t@warn \"Invalid value `#{$next}` for offset `#{$offset}`.\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n//\n// Function checking if $value is a valid length\n// @param [literal] $value: value to test\n// @return [bool]\n//\n@function is-valid-length($value) {\n\t$r: (type-of($value) == \"number\" and not unitless($value)) or (index(auto initial inherit 0, $value) != null);\n\t@return $r;\n}\n\n//\n// Shorthands\n//\n@mixin absolute($args: ()) {\n\t@include position(absolute, $args);\n}\n\n@mixin fixed($args: ()) {\n\t@include position(fixed, $args);\n}\n\n@mixin relative($args: ()) {\n\t@include position(relative, $args);\n}\n\n\n\n@mixin order_status_badges() {\n\n\t.llms-status {\n\t\tborder-radius: 3px;\n\t\tborder-bottom: 1px solid #fff;\n\t\tdisplay: inline-block;\n\t\tfont-size: 80%;\n\t\tpadding: 3px 6px;\n\t\tvertical-align: middle;\n\n\t\t&.llms-size--large {\n\t\t\tfont-size: 105%;\n\t\t\tpadding: 6px 12px;\n\t\t}\n\n\t\t&.llms-active,\n\t\t&.llms-completed,\n\t\t&.llms-pass, // quiz\n\t\t&.llms-txn-succeeded {\n\t\t\tcolor: darken( $color-green, 45 );\n\t\t\tbackground-color: $color-green;\n\t\t}\n\n\t\t&.llms-fail, // quiz\n\t\t&.llms-failed,\n\t\t&.llms-expired,\n\t\t&.llms-cancelled,\n\t\t&.llms-txn-failed {\n\t\t\tcolor: darken( $color-red, 40 );\n\t\t\tbackground-color: $color-red;\n\t\t}\n\n\t\t&.llms-incomplete, // assignment\n\t\t&.llms-on-hold,\n\t\t&.llms-pending,\n\t\t&.llms-pending-cancel,\n\t\t&.llms-refunded,\n\t\t&.llms-txn-pending,\n\t\t&.llms-txn-refunded {\n\t\t\tcolor: darken( orange, 30 );\n\t\t\tbackground-color: orange;\n\t\t}\n\n\t}\n\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/assets/maps/css/lifterlms.css.map b/assets/maps/css/lifterlms.css.map
index 27eec10ec4..125284af8d 100644
--- a/assets/maps/css/lifterlms.css.map
+++ b/assets/maps/css/lifterlms.css.map
@@ -1 +1 @@
-{"version":3,"sources":["lifterlms.css","_includes/_extends.scss","_includes/_grid.scss","_includes/_buttons.scss","_includes/_vars.scss","_includes/_llms-donut.scss","_includes/_mixins.scss","_includes/_tooltip.scss","frontend/_main.scss","frontend/_loop.scss","frontend/_course.scss","frontend/_syllabus.scss","frontend/_llms-progress.scss","frontend/_llms-author.scss","frontend/_notices.scss","frontend/_llms-achievements-certs.scss","frontend/_llms-notifications.scss","frontend/_llms-pagination.scss","frontend/_tooltip.scss","_includes/_quiz-result-question-list.scss","frontend/_llms-quizzes.scss","frontend/_voucher.scss","frontend/_llms-access-plans.scss","frontend/_checkout.scss","_includes/_llms-form-field.scss","frontend/_llms-outline-collapse.scss","frontend/_student-dashboard.scss","frontend/_llms-table.scss","_includes/vendor/_font-awesome.scss","_includes/_spinner.scss"],"names":[],"mappings":"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AA;A5B6qGF;;A4B3qGA;EACE,gBAAA;A5B8qGF;;A4B5qGA;EACE,gBAAA;A5B+qGF;;A4B7qGA;EACE,gBAAA;A5BgrGF;;A4B9qGA;;EAEE,gBAAA;A5BirGF;;A4B/qGA;EACE,gBAAA;A5BkrGF;;A4BhrGA;EACE,gBAAA;A5BmrGF;;A4BjrGA;EACE,gBAAA;A5BorGF;;A4BlrGA;EACE,gBAAA;A5BqrGF;;A4BnrGA;EACE,gBAAA;A5BsrGF;;A4BprGA;EACE,gBAAA;A5BurGF;;A4BrrGA;EACE,gBAAA;A5BwrGF;;A4BtrGA;EACE,gBAAA;A5ByrGF;;A4BvrGA;EACE,gBAAA;A5B0rGF;;A4BxrGA;EACE,gBAAA;A5B2rGF;;A4BzrGA;EACE,gBAAA;A5B4rGF;;A4B1rGA;EACE,gBAAA;A5B6rGF;;A4B3rGA;EACE,gBAAA;A5B8rGF;;A4B5rGA;EACE,gBAAA;A5B+rGF;;A4B7rGA;EACE,gBAAA;A5BgsGF;;A4B9rGA;EACE,gBAAA;A5BisGF;;A4B/rGA;EACE,gBAAA;A5BksGF;;A4BhsGA;EACE,gBAAA;A5BmsGF;;A4BjsGA;EACE,gBAAA;A5BosGF;;A4BlsGA;EACE,gBAAA;A5BqsGF;;A4BnsGA;EACE,gBAAA;A5BssGF;;A4BpsGA;EACE,gBAAA;A5BusGF;;A4BrsGA;EACE,gBAAA;A5BwsGF;;A4BtsGA;EACE,gBAAA;A5BysGF;;A4BvsGA;EACE,gBAAA;A5B0sGF;;A4BxsGA;EACE,gBAAA;A5B2sGF;;A4BzsGA;;EAEE,gBAAA;A5B4sGF;;A4B1sGA;EACE,gBAAA;A5B6sGF;;A4B3sGA;EACE,gBAAA;A5B8sGF;;A4B5sGA;;;EAGE,gBAAA;A5B+sGF;;A4B7sGA;EACE,gBAAA;A5BgtGF;;A4B9sGA;EACE,gBAAA;A5BitGF;;A4B/sGA;EACE,gBAAA;A5BktGF;;A4BhtGA;EACE,gBAAA;A5BmtGF;;A4BjtGA;;EAEE,gBAAA;A5BotGF;;A4BltGA;EACE,gBAAA;A5BqtGF;;A4BntGA;EACE,gBAAA;A5BstGF;;A4BptGA;EACE,gBAAA;A5ButGF;;A4BrtGA;EACE,gBAAA;A5BwtGF;;A4BttGA;EACE,gBAAA;A5BytGF;;A4BvtGA;EACE,gBAAA;A5B0tGF;;A4BxtGA;EACE,gBAAA;A5B2tGF;;A4BztGA;EACE,gBAAA;A5B4tGF;;A4B1tGA;EACE,gBAAA;A5B6tGF;;A4B3tGA;EACE,gBAAA;A5B8tGF;;A4B5tGA;EACE,gBAAA;A5B+tGF;;A4B7tGA;EACE,gBAAA;A5BguGF;;A4B9tGA;EACE,gBAAA;A5BiuGF;;A4B/tGA;EACE,gBAAA;A5BkuGF;;A4BhuGA;EACE,gBAAA;A5BmuGF;;A4BjuGA;EACE,gBAAA;A5BouGF;;A4BluGA;EACE,gBAAA;A5BquGF;;A4BnuGA;EACE,gBAAA;A5BsuGF;;A4BpuGA;EACE,gBAAA;A5BuuGF;;A4BruGA;EACE,gBAAA;A5BwuGF;;A4BtuGA;EACE,gBAAA;A5ByuGF;;A4BvuGA;EACE,gBAAA;A5B0uGF;;A4BxuGA;EACE,gBAAA;A5B2uGF;;A4BzuGA;EACE,gBAAA;A5B4uGF;;A4B1uGA;EACE,gBAAA;A5B6uGF;;A4B3uGA;EACE,gBAAA;A5B8uGF;;A4B5uGA;EACE,gBAAA;A5B+uGF;;A4B7uGA;EACE,gBAAA;A5BgvGF;;A4B9uGA;EACE,gBAAA;A5BivGF;;A4B/uGA;;EAEE,gBAAA;A5BkvGF;;A4BhvGA;EACE,gBAAA;A5BmvGF;;A4BjvGA;EACE,gBAAA;A5BovGF;;A4BlvGA;EACE,gBAAA;A5BqvGF;;A4BnvGA;EACE,gBAAA;A5BsvGF;;A4BpvGA;EACE,gBAAA;A5BuvGF;;A4BrvGA;EACE,gBAAA;A5BwvGF;;A4BtvGA;EACE,gBAAA;A5ByvGF;;A4BvvGA;EACE,gBAAA;A5B0vGF;;A4BxvGA;EACE,gBAAA;A5B2vGF;;A4BzvGA;EACE,gBAAA;A5B4vGF;;A4B1vGA;EACE,gBAAA;A5B6vGF;;A4B3vGA;;EAEE,gBAAA;A5B8vGF;;A4B5vGA;EACE,gBAAA;A5B+vGF;;A4B7vGA;EACE,gBAAA;A5BgwGF;;A4B9vGA;EACE,gBAAA;A5BiwGF;;A4B/vGA;EACE,gBAAA;A5BkwGF;;A4BhwGA;EACE,gBAAA;A5BmwGF;;A4BjwGA;EACE,gBAAA;A5BowGF;;A4BlwGA;EACE,gBAAA;A5BqwGF;;A4BnwGA;EACE,gBAAA;A5BswGF;;A4BpwGA;EACE,gBAAA;A5BuwGF;;A4BrwGA;EACE,gBAAA;A5BwwGF;;A4BtwGA;EACE,gBAAA;A5BywGF;;A4BvwGA;EACE,gBAAA;A5B0wGF;;A4BxwGA;EACE,gBAAA;A5B2wGF;;A4BzwGA;;EAEE,gBAAA;A5B4wGF;;A4B1wGA;EACE,gBAAA;A5B6wGF;;A4B3wGA;EACE,gBAAA;A5B8wGF;;A4B5wGA;EACE,gBAAA;A5B+wGF;;A4B7wGA;EACE,gBAAA;A5BgxGF;;A4B9wGA;;EAEE,gBAAA;A5BixGF;;A4B/wGA;EACE,gBAAA;A5BkxGF;;A4BhxGA;EACE,gBAAA;A5BmxGF;;A4BjxGA;EACE,gBAAA;A5BoxGF;;A4BlxGA;EACE,gBAAA;A5BqxGF;;A4BnxGA;EACE,gBAAA;A5BsxGF;;A4BpxGA;EACE,gBAAA;A5BuxGF;;A4BrxGA;EACE,gBAAA;A5BwxGF;;A4BtxGA;EACE,gBAAA;A5ByxGF;;A4BvxGA;EACE,gBAAA;A5B0xGF;;A4BxxGA;EACE,gBAAA;A5B2xGF;;A4BzxGA;EACE,gBAAA;A5B4xGF;;A4B1xGA;EACE,gBAAA;A5B6xGF;;A4B3xGA;EACE,gBAAA;A5B8xGF;;A4B5xGA;EACE,gBAAA;A5B+xGF;;A4B7xGA;EACE,gBAAA;A5BgyGF;;A4B9xGA;EACE,gBAAA;A5BiyGF;;A4B/xGA;EACE,gBAAA;A5BkyGF;;A4BhyGA;EACE,gBAAA;A5BmyGF;;A4BjyGA;EACE,gBAAA;A5BoyGF;;A4BlyGA;;EAEE,gBAAA;A5BqyGF;;A4BnyGA;EACE,gBAAA;A5BsyGF;;A4BpyGA;EACE,gBAAA;A5BuyGF;;A4BryGA;EACE,gBAAA;A5BwyGF;;A4BtyGA;;EAEE,gBAAA;A5ByyGF;;A4BvyGA;EACE,gBAAA;A5B0yGF;;A4BxyGA;EACE,gBAAA;A5B2yGF;;A4BzyGA;EACE,gBAAA;A5B4yGF;;A4B1yGA;EACE,gBAAA;A5B6yGF;;A4B3yGA;EACE,gBAAA;A5B8yGF;;A4B5yGA;EACE,gBAAA;A5B+yGF;;A4B7yGA;EACE,gBAAA;A5BgzGF;;A4B9yGA;EACE,gBAAA;A5BizGF;;A4B/yGA;EACE,gBAAA;A5BkzGF;;A4BhzGA;EACE,gBAAA;A5BmzGF;;A4BjzGA;EACE,gBAAA;A5BozGF;;A4BlzGA;EACE,gBAAA;A5BqzGF;;A4BnzGA;EACE,gBAAA;A5BszGF;;A4BpzGA;EACE,gBAAA;A5BuzGF;;A4BrzGA;EACE,gBAAA;A5BwzGF;;A4BtzGA;EACE,gBAAA;A5ByzGF;;A4BvzGA;EACE,gBAAA;A5B0zGF;;A4BxzGA;EACE,gBAAA;A5B2zGF;;A4BzzGA;;EAEE,gBAAA;A5B4zGF;;A4B1zGA;;EAEE,gBAAA;A5B6zGF;;A4B3zGA;EACE,gBAAA;A5B8zGF;;A4B5zGA;EACE,gBAAA;A5B+zGF;;A4B7zGA;;EAEE,gBAAA;A5Bg0GF;;A4B9zGA;;EAEE,gBAAA;A5Bi0GF;;A4B/zGA;EACE,gBAAA;A5Bk0GF;;A4Bh0GA;;EAEE,gBAAA;A5Bm0GF;;A4Bj0GA;EACE,gBAAA;A5Bo0GF;;A4Bl0GA;;;EAGE,gBAAA;A5Bq0GF;;A4Bn0GA;EACE,gBAAA;A5Bs0GF;;A4Bp0GA;EACE,gBAAA;A5Bu0GF;;A4Br0GA;EACE,gBAAA;A5Bw0GF;;A4Bt0GA;EACE,gBAAA;A5By0GF;;A4Bv0GA;EACE,gBAAA;A5B00GF;;A4Bx0GA;EACE,gBAAA;A5B20GF;;A4Bz0GA;EACE,gBAAA;A5B40GF;;A4B10GA;EACE,gBAAA;A5B60GF;;A4B30GA;EACE,gBAAA;A5B80GF;;A4B50GA;EACE,gBAAA;A5B+0GF;;A4B70GA;EACE,gBAAA;A5Bg1GF;;A4B90GA;EACE,gBAAA;A5Bi1GF;;A4B/0GA;EACE,gBAAA;A5Bk1GF;;A4Bh1GA;EACE,gBAAA;A5Bm1GF;;A4Bj1GA;EACE,gBAAA;A5Bo1GF;;A4Bl1GA;EACE,gBAAA;A5Bq1GF;;A4Bn1GA;EACE,gBAAA;A5Bs1GF;;A4Bp1GA;;EAEE,gBAAA;A5Bu1GF;;A4Br1GA;;EAEE,gBAAA;A5Bw1GF;;A4Bt1GA;;EAEE,gBAAA;A5By1GF;;A4Bv1GA;EACE,gBAAA;A5B01GF;;A4Bx1GA;EACE,gBAAA;A5B21GF;;A4Bz1GA;;EAEE,gBAAA;A5B41GF;;A4B11GA;;EAEE,gBAAA;A5B61GF;;A4B31GA;;EAEE,gBAAA;A5B81GF;;A4B51GA;EACE,gBAAA;A5B+1GF;;A4B71GA;EACE,gBAAA;A5Bg2GF;;A4B91GA;;EAEE,gBAAA;A5Bi2GF;;A4B/1GA;EACE,gBAAA;A5Bk2GF;;A4Bh2GA;EACE,gBAAA;A5Bm2GF;;A4Bj2GA;;EAEE,gBAAA;A5Bo2GF;;A4Bl2GA;EACE,gBAAA;A5Bq2GF;;A4Bn2GA;EACE,gBAAA;A5Bs2GF;;A4Bp2GA;EACE,gBAAA;A5Bu2GF;;A4Br2GA;EACE,gBAAA;A5Bw2GF;;A4Bt2GA;EACE,gBAAA;A5By2GF;;A4Bv2GA;EACE,gBAAA;A5B02GF;;A4Bx2GA;EACE,gBAAA;A5B22GF;;A4Bz2GA;EACE,gBAAA;A5B42GF;;A4B12GA;EACE,gBAAA;A5B62GF;;A4B32GA;EACE,gBAAA;A5B82GF;;A4B52GA;EACE,gBAAA;A5B+2GF;;A4B72GA;EACE,gBAAA;A5Bg3GF;;A4B92GA;EACE,gBAAA;A5Bi3GF;;A4B/2GA;EACE,gBAAA;A5Bk3GF;;A4Bh3GA;EACE,gBAAA;A5Bm3GF;;A4Bj3GA;EACE,gBAAA;A5Bo3GF;;A4Bl3GA;EACE,gBAAA;A5Bq3GF;;A4Bn3GA;EACE,gBAAA;A5Bs3GF;;A4Bp3GA;EACE,gBAAA;A5Bu3GF;;A4Br3GA;EACE,gBAAA;A5Bw3GF;;A4Bt3GA;EACE,gBAAA;A5By3GF;;A4Bv3GA;EACE,gBAAA;A5B03GF;;A4Bx3GA;EACE,gBAAA;A5B23GF;;A4Bz3GA;EACE,gBAAA;A5B43GF;;A4B13GA;EACE,gBAAA;A5B63GF;;A4B33GA;EACE,gBAAA;A5B83GF;;A4B53GA;EACE,gBAAA;A5B+3GF;;A4B73GA;EACE,gBAAA;A5Bg4GF;;A4B93GA;EACE,gBAAA;A5Bi4GF;;A4B/3GA;EACE,gBAAA;A5Bk4GF;;A4Bh4GA;;EAEE,gBAAA;A5Bm4GF;;A4Bj4GA;EACE,gBAAA;A5Bo4GF;;A4Bl4GA;EACE,gBAAA;A5Bq4GF;;A4Bn4GA;EACE,gBAAA;A5Bs4GF;;A4Bp4GA;EACE,gBAAA;A5Bu4GF;;A4Br4GA;EACE,gBAAA;A5Bw4GF;;A4Bt4GA;;EAEE,gBAAA;A5By4GF;;A4Bv4GA;EACE,gBAAA;A5B04GF;;A4Bx4GA;EACE,gBAAA;A5B24GF;;A4Bz4GA;EACE,gBAAA;A5B44GF;;A4B14GA;EACE,gBAAA;A5B64GF;;A4B34GA;EACE,gBAAA;A5B84GF;;A4B54GA;EACE,gBAAA;A5B+4GF;;A4B74GA;EACE,gBAAA;A5Bg5GF;;A4B94GA;EACE,gBAAA;A5Bi5GF;;A4B/4GA;EACE,gBAAA;A5Bk5GF;;A4Bh5GA;EACE,gBAAA;A5Bm5GF;;A4Bj5GA;EACE,gBAAA;A5Bo5GF;;A4Bl5GA;EACE,gBAAA;A5Bq5GF;;A4Bn5GA;;EAEE,gBAAA;A5Bs5GF;;A4Bp5GA;;;EAGE,gBAAA;A5Bu5GF;;A4Br5GA;EACE,gBAAA;A5Bw5GF;;A4Bt5GA;EACE,gBAAA;A5By5GF;;A4Bv5GA;EACE,gBAAA;A5B05GF;;A4Bx5GA;;EAEE,gBAAA;A5B25GF;;A4Bz5GA;EACE,gBAAA;A5B45GF;;A4B15GA;EACE,gBAAA;A5B65GF;;A4B35GA;EACE,gBAAA;A5B85GF;;A4B55GA;EACE,gBAAA;A5B+5GF;;A4B75GA;EACE,gBAAA;A5Bg6GF;;A4B95GA;EACE,gBAAA;A5Bi6GF;;A4B/5GA;EACE,gBAAA;A5Bk6GF;;A4Bh6GA;EACE,gBAAA;A5Bm6GF;;A4Bj6GA;EACE,gBAAA;A5Bo6GF;;A4Bl6GA;EACE,gBAAA;A5Bq6GF;;A4Bn6GA;EACE,gBAAA;A5Bs6GF;;A4Bp6GA;EACE,gBAAA;A5Bu6GF;;A4Br6GA;EACE,gBAAA;A5Bw6GF;;A4Bt6GA;EACE,gBAAA;A5By6GF;;A4Bv6GA;EACE,gBAAA;A5B06GF;;A4Bx6GA;EACE,gBAAA;A5B26GF;;A4Bz6GA;EACE,gBAAA;A5B46GF;;A4B16GA;EACE,gBAAA;A5B66GF;;A4B36GA;EACE,gBAAA;A5B86GF;;A4B56GA;EACE,gBAAA;A5B+6GF;;A4B76GA;EACE,gBAAA;A5Bg7GF;;A4B96GA;EACE,gBAAA;A5Bi7GF;;A4B/6GA;EACE,gBAAA;A5Bk7GF;;A4Bh7GA;EACE,gBAAA;A5Bm7GF;;A4Bj7GA;EACE,gBAAA;A5Bo7GF;;A4Bl7GA;EACE,gBAAA;A5Bq7GF;;A4Bn7GA;EACE,gBAAA;A5Bs7GF;;A4Bp7GA;EACE,gBAAA;A5Bu7GF;;A4Br7GA;EACE,gBAAA;A5Bw7GF;;A4Bt7GA;EACE,gBAAA;A5By7GF;;A4Bv7GA;EACE,gBAAA;A5B07GF;;A4Bx7GA;EACE,gBAAA;A5B27GF;;A4Bz7GA;EACE,gBAAA;A5B47GF;;A4B17GA;EACE,gBAAA;A5B67GF;;A4B37GA;EACE,gBAAA;A5B87GF;;A4B57GA;EACE,gBAAA;A5B+7GF;;A4B77GA;EACE,gBAAA;A5Bg8GF;;A4B97GA;;EAEE,gBAAA;A5Bi8GF;;A4B/7GA;;EAEE,gBAAA;A5Bk8GF;;A4Bh8GA;;EAEE,gBAAA;A5Bm8GF;;A4Bj8GA;;EAEE,gBAAA;A5Bo8GF;;A4Bl8GA;EACE,gBAAA;A5Bq8GF;;A4Bn8GA;;EAEE,gBAAA;A5Bs8GF;;A4Bp8GA;;EAEE,gBAAA;A5Bu8GF;;A4Br8GA;;;;EAIE,gBAAA;A5Bw8GF;;A4Bt8GA;;;EAGE,gBAAA;A5By8GF;;A4Bv8GA;;EAEE,gBAAA;A5B08GF;;A4Bx8GA;;EAEE,gBAAA;A5B28GF;;A4Bz8GA;EACE,gBAAA;A5B48GF;;A4B18GA;EACE,gBAAA;A5B68GF;;A4B38GA;EACE,gBAAA;A5B88GF;;A4B58GA;EACE,gBAAA;A5B+8GF;;A4B78GA;EACE,gBAAA;A5Bg9GF;;A4B98GA;EACE,gBAAA;A5Bi9GF;;A4B/8GA;EACE,gBAAA;A5Bk9GF;;A4Bh9GA;EACE,gBAAA;A5Bm9GF;;A4Bj9GA;EACE,gBAAA;A5Bo9GF;;A4Bl9GA;EACE,gBAAA;A5Bq9GF;;A4Bn9GA;EACE,gBAAA;A5Bs9GF;;A4Bp9GA;EACE,gBAAA;A5Bu9GF;;A4Br9GA;EACE,gBAAA;A5Bw9GF;;A4Bt9GA;EACE,gBAAA;A5By9GF;;A4Bv9GA;EACE,gBAAA;A5B09GF;;A4Bx9GA;EACE,gBAAA;A5B29GF;;A4Bz9GA;EACE,gBAAA;A5B49GF;;A4B19GA;EACE,gBAAA;A5B69GF;;A4B39GA;EACE,gBAAA;A5B89GF;;A4B59GA;EACE,gBAAA;A5B+9GF;;A4B79GA;EACE,gBAAA;A5Bg+GF;;A4B99GA;EACE,gBAAA;A5Bi+GF;;A4B/9GA;EACE,gBAAA;A5Bk+GF;;A4Bh+GA;EACE,gBAAA;A5Bm+GF;;A4Bj+GA;EACE,gBAAA;A5Bo+GF;;A4Bl+GA;EACE,gBAAA;A5Bq+GF;;A4Bn+GA;EACE,gBAAA;A5Bs+GF;;A4Bp+GA;EACE,gBAAA;A5Bu+GF;;A4Br+GA;EACE,gBAAA;A5Bw+GF;;A4Bt+GA;EACE,gBAAA;A5By+GF;;A4Bv+GA;EACE,gBAAA;A5B0+GF;;A4Bx+GA;EACE,gBAAA;A5B2+GF;;A4Bz+GA;EACE,gBAAA;A5B4+GF;;A4B1+GA;EACE,gBAAA;A5B6+GF;;A4B3+GA;EACE,gBAAA;A5B8+GF;;A4B5+GA;EACE,gBAAA;A5B++GF;;A4B7+GA;EACE,gBAAA;A5Bg/GF;;A4B9+GA;EACE,gBAAA;A5Bi/GF;;A4B/+GA;;EAEE,gBAAA;A5Bk/GF;;A4Bh/GA;EACE,gBAAA;A5Bm/GF;;A4Bj/GA;EACE,gBAAA;A5Bo/GF;;A4Bl/GA;EACE,gBAAA;A5Bq/GF;;A4Bn/GA;EACE,gBAAA;A5Bs/GF;;A4Bp/GA;EACE,gBAAA;A5Bu/GF;;A4Br/GA;EACE,gBAAA;A5Bw/GF;;A4Bt/GA;EACE,gBAAA;A5By/GF;;A4Bv/GA;EACE,gBAAA;A5B0/GF;;A4Bx/GA;EACE,gBAAA;A5B2/GF;;A4Bz/GA;EACE,gBAAA;A5B4/GF;;A4B1/GA;EACE,gBAAA;A5B6/GF;;A4B3/GA;;EAEE,gBAAA;A5B8/GF;;A4B5/GA;EACE,gBAAA;A5B+/GF;;A4B7/GA;EACE,gBAAA;A5BggHF;;A4B9/GA;EACE,gBAAA;A5BigHF;;A4B//GA;;EAEE,gBAAA;A5BkgHF;;A4BhgHA;EACE,gBAAA;A5BmgHF;;A4BjgHA;EACE,gBAAA;A5BogHF;;A4BlgHA;EACE,gBAAA;A5BqgHF;;A4BngHA;EACE,gBAAA;A5BsgHF;;A4BpgHA;EACE,gBAAA;A5BugHF;;A4BrgHA;EACE,gBAAA;A5BwgHF;;A4BtgHA;;;EAGE,gBAAA;A5BygHF;;A4BvgHA;;EAEE,gBAAA;A5B0gHF;;A4BxgHA;EACE,gBAAA;A5B2gHF;;A4BzgHA;EACE,gBAAA;A5B4gHF;;A4B1gHA;EACE,gBAAA;A5B6gHF;;A4B3gHA;EACE,gBAAA;A5B8gHF;;A4B5gHA;EACE,gBAAA;A5B+gHF;;A4B7gHA;EACE,gBAAA;A5BghHF;;A4B9gHA;EACE,gBAAA;A5BihHF;;A4B/gHA;EACE,gBAAA;A5BkhHF;;A4BhhHA;EACE,gBAAA;A5BmhHF;;A4BjhHA;EACE,gBAAA;A5BohHF;;A4BlhHA;EACE,gBAAA;A5BqhHF;;A4BnhHA;EACE,gBAAA;A5BshHF;;A4BphHA;EACE,gBAAA;A5BuhHF;;A4BrhHA;EACE,gBAAA;A5BwhHF;;A4BthHA;EACE,gBAAA;A5ByhHF;;A4BvhHA;EACE,gBAAA;A5B0hHF;;A4BxhHA;EACE,gBAAA;A5B2hHF;;A4BzhHA;EACE,gBAAA;A5B4hHF;;A4B1hHA;EACE,gBAAA;A5B6hHF;;A4B3hHA;EACE,gBAAA;A5B8hHF;;A4B5hHA;EACE,gBAAA;A5B+hHF;;A4B7hHA;EACE,gBAAA;A5BgiHF;;A4B9hHA;EACE,gBAAA;A5BiiHF;;A4B/hHA;EACE,gBAAA;A5BkiHF;;A4BhiHA;EACE,gBAAA;A5BmiHF;;A4BjiHA;;EAEE,gBAAA;A5BoiHF;;A4BliHA;;EAEE,gBAAA;A5BqiHF;;A4BniHA;EACE,gBAAA;A5BsiHF;;A4BpiHA;EACE,gBAAA;A5BuiHF;;A4BriHA;EACE,gBAAA;A5BwiHF;;A4BtiHA;EACE,gBAAA;A5ByiHF;;A4BviHA;EACE,gBAAA;A5B0iHF;;A4BxiHA;EACE,gBAAA;A5B2iHF;;A4BziHA;EACE,gBAAA;A5B4iHF;;A4B1iHA;EACE,gBAAA;A5B6iHF;;A4B3iHA;EACE,gBAAA;A5B8iHF;;A4B5iHA;;;EAGE,gBAAA;A5B+iHF;;A4B7iHA;;EAEE,gBAAA;A5BgjHF;;A4B9iHA;;EAEE,gBAAA;A5BijHF;;A4B/iHA;;EAEE,gBAAA;A5BkjHF;;A4BhjHA;EACE,gBAAA;A5BmjHF;;A4BjjHA;EACE,gBAAA;A5BojHF;;A4BljHA;EACE,gBAAA;A5BqjHF;;A4BnjHA;EACE,gBAAA;A5BsjHF;;A4BpjHA;;;;;EAKE,gBAAA;A5BujHF;;A4BrjHA;EACE,gBAAA;A5BwjHF;;A4BtjHA;;;EAGE,gBAAA;A5ByjHF;;A4BvjHA;;EAEE,gBAAA;A5B0jHF;;A4BxjHA;EACE,gBAAA;A5B2jHF;;A4BzjHA;EACE,gBAAA;A5B4jHF;;A4B1jHA;;;EAGE,gBAAA;A5B6jHF;;A4B3jHA;EACE,gBAAA;A5B8jHF;;A4B5jHA;EACE,gBAAA;A5B+jHF;;A4B7jHA;;EAEE,gBAAA;A5BgkHF;;A4B9jHA;;EAEE,gBAAA;A5BikHF;;A4B/jHA;;EAEE,gBAAA;A5BkkHF;;A4BhkHA;EACE,gBAAA;A5BmkHF;;A4BjkHA;EACE,gBAAA;A5BokHF;;A4BlkHA;EACE,gBAAA;A5BqkHF;;A4BnkHA;EACE,gBAAA;A5BskHF;;A4BpkHA;EACE,gBAAA;A5BukHF;;A4BrkHA;EACE,gBAAA;A5BwkHF;;A4BtkHA;EACE,gBAAA;A5BykHF;;A4BvkHA;EACE,gBAAA;A5B0kHF;;A4BxkHA;;EAEE,gBAAA;A5B2kHF;;A4BzkHA;EACE,gBAAA;A5B4kHF;;A4B1kHA;EACE,gBAAA;A5B6kHF;;A4B3kHA;EACE,gBAAA;A5B8kHF;;A4B5kHA;EACE,gBAAA;A5B+kHF;;A4B7kHA;EACE,gBAAA;A5BglHF;;A4B9kHA;EACE,gBAAA;A5BilHF;;A4B/kHA;EACE,gBAAA;A5BklHF;;A4BhlHA;EACE,gBAAA;A5BmlHF;;A4BjlHA;EACE,gBAAA;A5BolHF;;A4BllHA;EACE,gBAAA;A5BqlHF;;A4BnlHA;EACE,gBAAA;A5BslHF;;A4BplHA;EACE,gBAAA;A5BulHF;;A4BrlHA;EACE,gBAAA;A5BwlHF;;A4BtlHA;EACE,gBAAA;A5BylHF;;A4BvlHA;EACE,gBAAA;A5B0lHF;;A4BxlHA;EACE,gBAAA;A5B2lHF;;A4BzlHA;EACE,gBAAA;A5B4lHF;;A4B1lHA;EACE,gBAAA;A5B6lHF;;A4B3lHA;EACE,gBAAA;A5B8lHF;;A4B5lHA;EACE,gBAAA;A5B+lHF;;A4B7lHA;EACE,gBAAA;A5BgmHF;;A4B9lHA;EACE,gBAAA;A5BimHF;;A4B/lHA;EACE,gBAAA;A5BkmHF;;A4BhmHA;EACE,gBAAA;A5BmmHF;;A4BjmHA;EACE,gBAAA;A5BomHF;;A4BlmHA;EACE,gBAAA;A5BqmHF;;A4BnmHA;EACE,gBAAA;A5BsmHF;;A4BpmHA;EACE,gBAAA;A5BumHF;;A4BrmHA;EACE,gBAAA;A5BwmHF;;A4BtmHA;EACE,gBAAA;A5BymHF;;A4BvmHA;EACE,gBAAA;A5B0mHF;;A4BxmHA;EACE,gBAAA;A5B2mHF;;A4BzmHA;EACE,gBAAA;A5B4mHF;;A4B1mHA;EACE,gBAAA;A5B6mHF;;A4B3mHA;EACE,gBAAA;A5B8mHF;;A4B5mHA;EACE,gBAAA;A5B+mHF;;A4B7mHA;EACE,gBAAA;A5BgnHF;;A4B9mHA;;;EAGE,gBAAA;A5BinHF;;A4B/mHA;EACE,gBAAA;A5BknHF;;A4BhnHA;EACE,gBAAA;A5BmnHF;;A4BjnHA;EACE,gBAAA;A5BonHF;;A4BlnHA;EACE,gBAAA;A5BqnHF;;A4BnnHA;EACE,gBAAA;A5BsnHF;;A4BpnHA;EACE,gBAAA;A5BunHF;;A4BrnHA;EACE,gBAAA;A5BwnHF;;A4BtnHA;EACE,gBAAA;A5BynHF;;A4BvnHA;EACE,gBAAA;A5B0nHF;;A4BxnHA;EACE,gBAAA;A5B2nHF;;A4BznHA;EACE,gBAAA;A5B4nHF;;A4B1nHA;EACE,gBAAA;A5B6nHF;;A4B3nHA;EACE,gBAAA;A5B8nHF;;A4B5nHA;EACE,gBAAA;A5B+nHF;;A4B7nHA;EACE,gBAAA;A5BgoHF;;A4B9nHA;EACE,gBAAA;A5BioHF;;A4B/nHA;EACE,gBAAA;A5BkoHF;;A4BhoHA;EACE,gBAAA;A5BmoHF;;A4BjoHA;EACE,gBAAA;A5BooHF;;A4BloHA;EACE,gBAAA;A5BqoHF;;A4BnoHA;EACE,gBAAA;A5BsoHF;;A4BpoHA;;EAEE,gBAAA;A5BuoHF;;A4BroHA;EACE,gBAAA;A5BwoHF;;A4BtoHA;EACE,gBAAA;A5ByoHF;;A4BvoHA;EACE,gBAAA;A5B0oHF;;A4BxoHA;EACE,gBAAA;A5B2oHF;;A4BzoHA;EACE,gBAAA;A5B4oHF;;A4B1oHA;EACE,gBAAA;A5B6oHF;;A4B3oHA;EACE,gBAAA;A5B8oHF;;A4B5oHA;EACE,gBAAA;A5B+oHF;;A4B7oHA;EACE,gBAAA;A5BgpHF;;A4B9oHA;EACE,gBAAA;A5BipHF;;A4B/oHA;EACE,gBAAA;A5BkpHF;;A4BhpHA;EACE,gBAAA;A5BmpHF;;A4BjpHA;EACE,gBAAA;A5BopHF;;A4BlpHA;EACE,gBAAA;A5BqpHF;;A4BnpHA;EACE,gBAAA;A5BspHF;;A4BppHA;;EAEE,gBAAA;A5BupHF;;A4BrpHA;EACE,gBAAA;A5BwpHF;;A4BtpHA;EACE,gBAAA;A5BypHF;;A4BvpHA;EACE,gBAAA;A5B0pHF;;A4BxpHA;EACE,gBAAA;A5B2pHF;;A4BzpHA;;EAEE,gBAAA;A5B4pHF;;A4B1pHA;EACE,gBAAA;A5B6pHF;;A4B3pHA;EACE,gBAAA;A5B8pHF;;A4B5pHA;EACE,gBAAA;A5B+pHF;;A4B7pHA;;;EAGE,gBAAA;A5BgqHF;;A4B9pHA;;EAEE,gBAAA;A5BiqHF;;A4B/pHA;;EAEE,gBAAA;A5BkqHF;;A4BhqHA;;EAEE,gBAAA;A5BmqHF;;A4BjqHA;;EAEE,gBAAA;A5BoqHF;;A4BlqHA;EACE,gBAAA;A5BqqHF;;A4BnqHA;EACE,gBAAA;A5BsqHF;;A4BpqHA;EACE,gBAAA;A5BuqHF;;A4BrqHA;EACE,gBAAA;A5BwqHF;;A4BtqHA;EACE,gBAAA;A5ByqHF;;A4BvqHA;EACE,gBAAA;A5B0qHF;;A4BxqHA;EACE,gBAAA;A5B2qHF;;A4BzqHA;EACE,gBAAA;A5B4qHF;;A4B1qHA;EACE,gBAAA;A5B6qHF;;A4B3qHA;EACE,gBAAA;A5B8qHF;;A4B5qHA;EACE,gBAAA;A5B+qHF;;A4B7qHA;;EAEE,gBAAA;A5BgrHF;;A4B9qHA;;EAEE,gBAAA;A5BirHF;;A4B/qHA;;EAEE,gBAAA;A5BkrHF;;A4BhrHA;EACE,gBAAA;A5BmrHF;;A4BjrHA;;EAEE,gBAAA;A5BorHF;;A4BlrHA;;EAEE,gBAAA;A5BqrHF;;A4BnrHA;EACE,gBAAA;A5BsrHF;;A4BprHA;EACE,gBAAA;A5BurHF;;A4BrrHA;EACE,gBAAA;A5BwrHF;;A4BtrHA;EACE,gBAAA;A5ByrHF;;A4BvrHA;EACE,gBAAA;A5B0rHF;;A4BxrHA;EACE,gBAAA;A5B2rHF;;A4BzrHA;EACE,gBAAA;A5B4rHF;;A4B1rHA;EACE,gBAAA;A5B6rHF;;A4B3rHA;EACE,gBAAA;A5B8rHF;;A4B5rHA;EACE,gBAAA;A5B+rHF;;A4B7rHA;EACE,gBAAA;A5BgsHF;;A4B9rHA;EACE,gBAAA;A5BisHF;;A4B/rHA;EACE,gBAAA;A5BksHF;;A4BhsHA;EACE,gBAAA;A5BmsHF;;A4BjsHA;EACE,gBAAA;A5BosHF;;A4BlsHA;EACE,gBAAA;A5BqsHF;;A4BnsHA;EACE,gBAAA;A5BssHF;;A4BpsHA;EACE,gBAAA;A5BusHF;;A4BrsHA;EACE,gBAAA;A5BwsHF;;A4BtsHA;EACE,gBAAA;A5BysHF;;A4BvsHA;;EAEE,gBAAA;A5B0sHF;;A4BxsHA;EACE,gBAAA;A5B2sHF;;A4BzsHA;EACE,gBAAA;A5B4sHF;;A4B1sHA;EACE,gBAAA;A5B6sHF;;A4B3sHA;EACE,gBAAA;A5B8sHF;;A4B5sHA;EACE,gBAAA;A5B+sHF;;A4B7sHA;EACE,gBAAA;A5BgtHF;;A4B9sHA;EACE,gBAAA;A5BitHF;;A4B/sHA;EACE,gBAAA;A5BktHF;;A4BhtHA;EACE,gBAAA;A5BmtHF;;A4BjtHA;EACE,gBAAA;A5BotHF;;A4BltHA;EACE,gBAAA;A5BqtHF;;A4BntHA;EACE,gBAAA;A5BstHF;;A4BptHA;EACE,gBAAA;A5ButHF;;A4BrtHA;EACE,gBAAA;A5BwtHF;;A4BttHA;EACE,gBAAA;A5BytHF;;A4BvtHA;EACE,gBAAA;A5B0tHF;;A4BxtHA;EACE,gBAAA;A5B2tHF;;A4BztHA;EACE,gBAAA;A5B4tHF;;A4B1tHA;EACE,gBAAA;A5B6tHF;;A4B3tHA;EACE,gBAAA;A5B8tHF;;A4B5tHA;EACE,gBAAA;A5B+tHF;;A4B7tHA;EACE,gBAAA;A5BguHF;;A4B9tHA;EACE,gBAAA;A5BiuHF;;A4B/tHA;EACE,gBAAA;A5BkuHF;;A4BhuHA;EACE,gBAAA;A5BmuHF;;A4BjuHA;EACE,gBAAA;A5BouHF;;A4BluHA;EACE,gBAAA;A5BquHF;;A4BnuHA;EACE,gBAAA;A5BsuHF;;A4BpuHA;EACE,gBAAA;A5BuuHF;;A4BruHA;EACE,gBAAA;A5BwuHF;;A4BtuHA;EACE,gBAAA;A5ByuHF;;A4BvuHA;EACE,gBAAA;A5B0uHF;;A4BxuHA;EACE,gBAAA;A5B2uHF;;A4BzuHA;EACE,gBAAA;A5B4uHF;;A4B1uHA;EACE,gBAAA;A5B6uHF;;A4B3uHA;EACE,gBAAA;A5B8uHF;;A4B5uHA;EACE,gBAAA;A5B+uHF;;A4B7uHA;EACE,gBAAA;A5BgvHF;;A4B9uHA;EACE,gBAAA;A5BivHF;;A4B/uHA;EACE,gBAAA;A5BkvHF;;A4BhvHA;EACE,gBAAA;A5BmvHF;;A4BjvHA;EACE,gBAAA;A5BovHF;;A4BlvHA;EACE,gBAAA;A5BqvHF;;A4BnvHA;EACE,gBAAA;A5BsvHF;;A4BpvHA;EACE,gBAAA;A5BuvHF;;A4BrvHA;EACE,gBAAA;A5BwvHF;;A4BtvHA;EACE,gBAAA;A5ByvHF;;A4BvvHA;EACE,gBAAA;A5B0vHF;;A4BxvHA;EACE,gBAAA;A5B2vHF;;A4BzvHA;EACE,gBAAA;A5B4vHF;;A4B1vHA;;EAEE,gBAAA;A5B6vHF;;A4B3vHA;;;EAGE,gBAAA;A5B8vHF;;A4B5vHA;EACE,gBAAA;A5B+vHF;;A4B7vHA;EACE,gBAAA;A5BgwHF;;A4B9vHA;;EAEE,gBAAA;A5BiwHF;;A4B/vHA;EACE,gBAAA;A5BkwHF;;A4BhwHA;EACE,gBAAA;A5BmwHF;;A4BjwHA;EACE,gBAAA;A5BowHF;;A4BlwHA;EACE,gBAAA;A5BqwHF;;A4BnwHA;EACE,gBAAA;A5BswHF;;A4BpwHA;EACE,gBAAA;A5BuwHF;;A4BrwHA;EACE,gBAAA;A5BwwHF;;A4BtwHA;EACE,gBAAA;A5BywHF;;A4BvwHA;EACE,gBAAA;A5B0wHF;;A4BxwHA;EACE,gBAAA;A5B2wHF;;A4BzwHA;;EAEE,gBAAA;A5B4wHF;;A4B1wHA;;EAEE,gBAAA;A5B6wHF;;A4B3wHA;EACE,gBAAA;A5B8wHF;;A4B5wHA;EACE,gBAAA;A5B+wHF;;A4B7wHA;EACE,gBAAA;A5BgxHF;;A4B9wHA;EACE,gBAAA;A5BixHF;;A4B/wHA;EACE,gBAAA;A5BkxHF;;A4BhxHA;EACE,gBAAA;A5BmxHF;;A4BjxHA;;EAEE,gBAAA;A5BoxHF;;A4BlxHA;;EAEE,gBAAA;A5BqxHF;;A4BnxHA;EACE,gBAAA;A5BsxHF;;A4BpxHA;EACE,gBAAA;A5BuxHF;;A4BrxHA;EACE,gBAAA;A5BwxHF;;A4BtxHA;EACE,gBAAA;A5ByxHF;;A4BvxHA;;EAEE,gBAAA;A5B0xHF;;A4BxxHA;;EAEE,gBAAA;A5B2xHF;;A4BzxHA;EACE,gBAAA;A5B4xHF;;A4B1xHA;EACE,gBAAA;A5B6xHF;;A4B3xHA;EACE,gBAAA;A5B8xHF;;A4B5xHA;;;EAGE,gBAAA;A5B+xHF;;A4B7xHA;;EAEE,gBAAA;A5BgyHF;;A4B9xHA;;EAEE,gBAAA;A5BiyHF;;A4B/xHA;;EAEE,gBAAA;A5BkyHF;;A4BhyHA;;EAEE,gBAAA;A5BmyHF;;A4BjyHA;EACE,gBAAA;A5BoyHF;;A4BlyHA;;;EAGE,gBAAA;A5BqyHF;;A4BnyHA;EACE,gBAAA;A5BsyHF;;A4BpyHA;EACE,gBAAA;A5BuyHF;;A4BryHA;EACE,gBAAA;A5BwyHF;;A4BtyHA;EACE,gBAAA;A5ByyHF;;A4BvyHA;;EAEE,gBAAA;A5B0yHF;;A4BxyHA;;EAEE,gBAAA;A5B2yHF;;A4BzyHA;EACE,gBAAA;A5B4yHF;;A4B1yHA;EACE,gBAAA;A5B6yHF;;A4B3yHA;EACE,gBAAA;A5B8yHF;;A4B5yHA;EACE,gBAAA;A5B+yHF;;A4B7yHA;EACE,gBAAA;A5BgzHF;;A4B9yHA;EACE,gBAAA;A5BizHF;;A4B/yHA;EACE,gBAAA;A5BkzHF;;A4BhzHA;EACE,gBAAA;A5BmzHF;;A4BjzHA;EACE,gBAAA;A5BozHF;;A4BlzHA;EACE,gBAAA;A5BqzHF;;A4BnzHA;EACE,gBAAA;A5BszHF;;A4BpzHA;EACE,kBAAA;EACA,UAAA;EACA,WAAA;EACA,UAAA;EACA,YAAA;EACA,gBAAA;EACA,sBAAA;EACA,SAAA;A5BuzHF;;A4BrzHA;;EAEE,gBAAA;EACA,WAAA;EACA,YAAA;EACA,SAAA;EACA,iBAAA;EACA,UAAA;A5BwzHF;;A6BvlMA;EACC,oCAAA;EACA,SAAA;EACA,aAAA;EACA,OAAA;EACA,kBAAA;EACA,QAAA;EACA,MAAA;A7B0lMD;;A6BvlMA;EACC,qDAAA;UAAA,6CAAA;EACA,8BAAA;UAAA,sBAAA;EACA,yBAAA;EACA,kBAAA;EACA,YAAA;EACA,SAAA;EACA,kBAAA;EACA,iBAAA;EACA,kBAAA;EACA,QAAA;EACA,WAAA;A7B0lMD;A6BxlMC;EACC,iBAAA;EACA,YAAA;EACA,kBAAA;EACA,iBAAA;EACA,WAAA;A7B0lMF;;A6BtlMA;EACC;IACC,+BAAA;YAAA,uBAAA;E7BylMA;E6BvlMD;IACC,iBAAA;E7BylMA;E6BvlMD;IACC,iCAAA;YAAA,yBAAA;E7BylMA;AACF;;A6BlmMA;EACC;IACC,+BAAA;YAAA,uBAAA;E7BylMA;E6BvlMD;IACC,iBAAA;E7BylMA;E6BvlMD;IACC,iCAAA;YAAA,yBAAA;E7BylMA;AACF","file":"../../css/lifterlms.css","sourcesContent":["@charset \"UTF-8\";\n.llms-pagination ul:before, .llms-pagination ul:after,\n.llms-student-dashboard .llms-sd-items:before,\n.llms-form-fields:before,\n.llms-checkout-cols-2:before,\n.llms-access-plans:before,\n.llms-course-navigation:before,\n.llms-loop-list:before,\n.llms-cols:before,\n.llms-student-dashboard .llms-sd-items:after,\n.llms-form-fields:after,\n.llms-checkout-cols-2:after,\n.llms-access-plans:after,\n.llms-course-navigation:after,\n.llms-loop-list:after,\n.llms-cols:after {\n content: \" \";\n display: table;\n}\n.llms-pagination ul:after,\n.llms-student-dashboard .llms-sd-items:after,\n.llms-form-fields:after,\n.llms-checkout-cols-2:after,\n.llms-access-plans:after,\n.llms-course-navigation:after,\n.llms-loop-list:after,\n.llms-cols:after {\n clear: both;\n}\n\n.llms-cols .llms-col {\n width: 100%;\n}\n@media all and (min-width: 600px) {\n .llms-cols [class*=llms-col-] {\n float: left;\n }\n}\n\n.llms-flex-cols {\n display: flex;\n flex-flow: row wrap;\n}\n.llms-flex-cols [class*=llms-col] {\n flex: 0 1 auto;\n width: 100%;\n}\n\n@media all and (min-width: 600px) {\n .llms-cols .llms-col-1, .llms-flex-cols .llms-col-1 {\n width: 100%;\n }\n .llms-cols .llms-col-2, .llms-flex-cols .llms-col-2 {\n width: 50%;\n }\n .llms-cols .llms-col-3, .llms-flex-cols .llms-col-3 {\n width: 33.3333333333%;\n }\n .llms-cols .llms-col-4, .llms-flex-cols .llms-col-4 {\n width: 25%;\n }\n .llms-cols .llms-col-5, .llms-flex-cols .llms-col-5 {\n width: 20%;\n }\n .llms-cols .llms-col-6, .llms-flex-cols .llms-col-6 {\n width: 16.6666666667%;\n }\n .llms-cols .llms-col-7, .llms-flex-cols .llms-col-7 {\n width: 14.2857142857%;\n }\n .llms-cols .llms-col-8, .llms-flex-cols .llms-col-8 {\n width: 12.5%;\n }\n .llms-cols .llms-col-9, .llms-flex-cols .llms-col-9 {\n width: 11.1111111111%;\n }\n .llms-cols .llms-col-10, .llms-flex-cols .llms-col-10 {\n width: 10%;\n }\n .llms-cols .llms-col-11, .llms-flex-cols .llms-col-11 {\n width: 9.0909090909%;\n }\n .llms-cols .llms-col-12, .llms-flex-cols .llms-col-12 {\n width: 8.3333333333%;\n }\n}\n.llms-button-action,\n.llms-button-danger,\n.llms-button-primary,\n.llms-button-secondary {\n border: none;\n border-radius: 0;\n color: #fefefe;\n cursor: pointer;\n font-size: 16px;\n font-weight: 300;\n text-decoration: none;\n text-shadow: none;\n line-height: 1;\n margin: 0;\n max-width: 100%;\n padding: 12px 24px;\n position: relative;\n transition: all 0.5s ease;\n}\n.llms-button-action:disabled,\n.llms-button-danger:disabled,\n.llms-button-primary:disabled,\n.llms-button-secondary:disabled {\n opacity: 0.5;\n}\n.llms-button-action:hover, .llms-button-action:active,\n.llms-button-danger:hover,\n.llms-button-danger:active,\n.llms-button-primary:hover,\n.llms-button-primary:active,\n.llms-button-secondary:hover,\n.llms-button-secondary:active {\n color: #fefefe;\n}\n.llms-button-action:focus,\n.llms-button-danger:focus,\n.llms-button-primary:focus,\n.llms-button-secondary:focus {\n color: #fefefe;\n}\n.llms-button-action.auto,\n.llms-button-danger.auto,\n.llms-button-primary.auto,\n.llms-button-secondary.auto {\n width: auto;\n}\n.llms-button-action.full,\n.llms-button-danger.full,\n.llms-button-primary.full,\n.llms-button-secondary.full {\n display: block;\n text-align: center;\n width: 100%;\n}\n.llms-button-action.square,\n.llms-button-danger.square,\n.llms-button-primary.square,\n.llms-button-secondary.square {\n padding: 12px;\n}\n.llms-button-action.small,\n.llms-button-danger.small,\n.llms-button-primary.small,\n.llms-button-secondary.small {\n font-size: 13px;\n padding: 8px 14px;\n}\n.llms-button-action.small.square,\n.llms-button-danger.small.square,\n.llms-button-primary.small.square,\n.llms-button-secondary.small.square {\n padding: 8px;\n}\n.llms-button-action.large,\n.llms-button-danger.large,\n.llms-button-primary.large,\n.llms-button-secondary.large {\n font-size: 18px;\n line-height: 1.2;\n padding: 16px 32px;\n}\n.llms-button-action.large.square,\n.llms-button-danger.large.square,\n.llms-button-primary.large.square,\n.llms-button-secondary.large.square {\n padding: 16px;\n}\n.llms-button-action.large .fa,\n.llms-button-danger.large .fa,\n.llms-button-primary.large .fa,\n.llms-button-secondary.large .fa {\n left: -7px;\n position: relative;\n}\n\n.llms-button-primary {\n background: #2295ff;\n}\n.llms-button-primary:hover, .llms-button-primary.clicked {\n background: #0077e4;\n}\n.llms-button-primary:focus, .llms-button-primary:active {\n background: #4ba9ff;\n}\n\n.llms-button-secondary {\n background: #e1e1e1;\n color: #414141;\n}\n.llms-button-secondary:hover {\n color: #414141;\n background: #cdcdcd;\n}\n.llms-button-secondary:focus, .llms-button-secondary:active {\n color: #414141;\n background: #ebebeb;\n}\n\n.llms-button-action {\n background: #f8954f;\n}\n.llms-button-action:hover, .llms-button-action.clicked {\n background: #f67d28;\n}\n.llms-button-action:focus, .llms-button-action:active {\n background: #faad76;\n}\n\n.llms-button-danger {\n background: #e5554e;\n}\n.llms-button-danger:hover {\n background: #e0332a;\n}\n.llms-button-danger:focus, .llms-button-danger:active {\n background: #e86660;\n}\n\n.llms-donut {\n background-color: #f1f1f1;\n background-image: none;\n border-radius: 50%;\n color: #ef476f;\n height: 200px;\n overflow: hidden;\n position: relative;\n width: 200px;\n}\n.llms-donut:before, .llms-donut:after {\n content: \" \";\n display: table;\n}\n.llms-donut:after {\n clear: both;\n}\n.llms-donut svg {\n overflow: visible !important;\n pointer-events: none;\n width: 100%;\n}\n.llms-donut svg path {\n fill: none;\n stroke-width: 35px;\n stroke: #ef476f;\n}\n.llms-donut.mini {\n height: 36px;\n width: 36px;\n}\n.llms-donut.mini .percentage {\n font-size: 10px;\n}\n.llms-donut.small {\n height: 100px;\n width: 100px;\n}\n.llms-donut.small .percentage {\n font-size: 18px;\n}\n.llms-donut.medium {\n height: 130px;\n width: 130px;\n}\n.llms-donut.medium .percentage {\n font-size: 26px;\n}\n.llms-donut.large {\n height: 260px;\n width: 260px;\n}\n.llms-donut.large .percentage {\n font-size: 48px;\n}\n.llms-donut .inside {\n align-items: center;\n background: #fff;\n border-radius: 50%;\n box-sizing: border-box;\n display: flex;\n flex-wrap: wrap;\n height: 80%;\n justify-content: center;\n left: 50%;\n position: absolute;\n text-align: center;\n transform: translate(-50%, -50%);\n width: 80%;\n top: 50%;\n z-index: 3;\n}\n.llms-donut .percentage {\n line-height: 1.2;\n font-size: 34px;\n}\n.llms-donut .caption {\n font-size: 50%;\n}\n\n.lifterlms [data-tip],\n.lifterlms [data-title-default],\n.lifterlms [data-title-active],\n.llms-metabox [data-tip],\n.llms-metabox [data-title-default],\n.llms-metabox [data-title-active],\n.llms-mb-container [data-tip],\n.llms-mb-container [data-title-default],\n.llms-mb-container [data-title-active],\n.llms-quiz-wrapper [data-tip],\n.llms-quiz-wrapper [data-title-default],\n.llms-quiz-wrapper [data-title-active] {\n position: relative;\n}\n.lifterlms [data-tip].tip--top-right:before,\n.lifterlms [data-title-default].tip--top-right:before,\n.lifterlms [data-title-active].tip--top-right:before,\n.llms-metabox [data-tip].tip--top-right:before,\n.llms-metabox [data-title-default].tip--top-right:before,\n.llms-metabox [data-title-active].tip--top-right:before,\n.llms-mb-container [data-tip].tip--top-right:before,\n.llms-mb-container [data-title-default].tip--top-right:before,\n.llms-mb-container [data-title-active].tip--top-right:before,\n.llms-quiz-wrapper [data-tip].tip--top-right:before,\n.llms-quiz-wrapper [data-title-default].tip--top-right:before,\n.llms-quiz-wrapper [data-title-active].tip--top-right:before {\n bottom: 100%;\n left: -10px;\n}\n.lifterlms [data-tip].tip--top-right:hover:before,\n.lifterlms [data-title-default].tip--top-right:hover:before,\n.lifterlms [data-title-active].tip--top-right:hover:before,\n.llms-metabox [data-tip].tip--top-right:hover:before,\n.llms-metabox [data-title-default].tip--top-right:hover:before,\n.llms-metabox [data-title-active].tip--top-right:hover:before,\n.llms-mb-container [data-tip].tip--top-right:hover:before,\n.llms-mb-container [data-title-default].tip--top-right:hover:before,\n.llms-mb-container [data-title-active].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before {\n bottom: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--top-right:after,\n.lifterlms [data-title-default].tip--top-right:after,\n.lifterlms [data-title-active].tip--top-right:after,\n.llms-metabox [data-tip].tip--top-right:after,\n.llms-metabox [data-title-default].tip--top-right:after,\n.llms-metabox [data-title-active].tip--top-right:after,\n.llms-mb-container [data-tip].tip--top-right:after,\n.llms-mb-container [data-title-default].tip--top-right:after,\n.llms-mb-container [data-title-active].tip--top-right:after,\n.llms-quiz-wrapper [data-tip].tip--top-right:after,\n.llms-quiz-wrapper [data-title-default].tip--top-right:after,\n.llms-quiz-wrapper [data-title-active].tip--top-right:after {\n border-top-color: #444;\n left: 6px;\n top: 0;\n}\n.lifterlms [data-tip].tip--top-right:hover:after,\n.lifterlms [data-title-default].tip--top-right:hover:after,\n.lifterlms [data-title-active].tip--top-right:hover:after,\n.llms-metabox [data-tip].tip--top-right:hover:after,\n.llms-metabox [data-title-default].tip--top-right:hover:after,\n.llms-metabox [data-title-active].tip--top-right:hover:after,\n.llms-mb-container [data-tip].tip--top-right:hover:after,\n.llms-mb-container [data-title-default].tip--top-right:hover:after,\n.llms-mb-container [data-title-active].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after {\n top: -6px;\n}\n.lifterlms [data-tip].tip--top-left:before,\n.lifterlms [data-title-default].tip--top-left:before,\n.lifterlms [data-title-active].tip--top-left:before,\n.llms-metabox [data-tip].tip--top-left:before,\n.llms-metabox [data-title-default].tip--top-left:before,\n.llms-metabox [data-title-active].tip--top-left:before,\n.llms-mb-container [data-tip].tip--top-left:before,\n.llms-mb-container [data-title-default].tip--top-left:before,\n.llms-mb-container [data-title-active].tip--top-left:before,\n.llms-quiz-wrapper [data-tip].tip--top-left:before,\n.llms-quiz-wrapper [data-title-default].tip--top-left:before,\n.llms-quiz-wrapper [data-title-active].tip--top-left:before {\n bottom: 100%;\n right: -10px;\n}\n.lifterlms [data-tip].tip--top-left:hover:before,\n.lifterlms [data-title-default].tip--top-left:hover:before,\n.lifterlms [data-title-active].tip--top-left:hover:before,\n.llms-metabox [data-tip].tip--top-left:hover:before,\n.llms-metabox [data-title-default].tip--top-left:hover:before,\n.llms-metabox [data-title-active].tip--top-left:hover:before,\n.llms-mb-container [data-tip].tip--top-left:hover:before,\n.llms-mb-container [data-title-default].tip--top-left:hover:before,\n.llms-mb-container [data-title-active].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before {\n bottom: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--top-left:after,\n.lifterlms [data-title-default].tip--top-left:after,\n.lifterlms [data-title-active].tip--top-left:after,\n.llms-metabox [data-tip].tip--top-left:after,\n.llms-metabox [data-title-default].tip--top-left:after,\n.llms-metabox [data-title-active].tip--top-left:after,\n.llms-mb-container [data-tip].tip--top-left:after,\n.llms-mb-container [data-title-default].tip--top-left:after,\n.llms-mb-container [data-title-active].tip--top-left:after,\n.llms-quiz-wrapper [data-tip].tip--top-left:after,\n.llms-quiz-wrapper [data-title-default].tip--top-left:after,\n.llms-quiz-wrapper [data-title-active].tip--top-left:after {\n border-top-color: #444;\n right: 6px;\n top: 0;\n}\n.lifterlms [data-tip].tip--top-left:hover:after,\n.lifterlms [data-title-default].tip--top-left:hover:after,\n.lifterlms [data-title-active].tip--top-left:hover:after,\n.llms-metabox [data-tip].tip--top-left:hover:after,\n.llms-metabox [data-title-default].tip--top-left:hover:after,\n.llms-metabox [data-title-active].tip--top-left:hover:after,\n.llms-mb-container [data-tip].tip--top-left:hover:after,\n.llms-mb-container [data-title-default].tip--top-left:hover:after,\n.llms-mb-container [data-title-active].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after {\n top: -6px;\n}\n.lifterlms [data-tip].tip--bottom-left:before,\n.lifterlms [data-title-default].tip--bottom-left:before,\n.lifterlms [data-title-active].tip--bottom-left:before,\n.llms-metabox [data-tip].tip--bottom-left:before,\n.llms-metabox [data-title-default].tip--bottom-left:before,\n.llms-metabox [data-title-active].tip--bottom-left:before,\n.llms-mb-container [data-tip].tip--bottom-left:before,\n.llms-mb-container [data-title-default].tip--bottom-left:before,\n.llms-mb-container [data-title-active].tip--bottom-left:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:before {\n top: 100%;\n right: -10px;\n}\n.lifterlms [data-tip].tip--bottom-left:hover:before,\n.lifterlms [data-title-default].tip--bottom-left:hover:before,\n.lifterlms [data-title-active].tip--bottom-left:hover:before,\n.llms-metabox [data-tip].tip--bottom-left:hover:before,\n.llms-metabox [data-title-default].tip--bottom-left:hover:before,\n.llms-metabox [data-title-active].tip--bottom-left:hover:before,\n.llms-mb-container [data-tip].tip--bottom-left:hover:before,\n.llms-mb-container [data-title-default].tip--bottom-left:hover:before,\n.llms-mb-container [data-title-active].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before {\n top: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--bottom-left:after,\n.lifterlms [data-title-default].tip--bottom-left:after,\n.lifterlms [data-title-active].tip--bottom-left:after,\n.llms-metabox [data-tip].tip--bottom-left:after,\n.llms-metabox [data-title-default].tip--bottom-left:after,\n.llms-metabox [data-title-active].tip--bottom-left:after,\n.llms-mb-container [data-tip].tip--bottom-left:after,\n.llms-mb-container [data-title-default].tip--bottom-left:after,\n.llms-mb-container [data-title-active].tip--bottom-left:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:after {\n border-bottom-color: #444;\n right: 6px;\n bottom: 0;\n}\n.lifterlms [data-tip].tip--bottom-left:hover:after,\n.lifterlms [data-title-default].tip--bottom-left:hover:after,\n.lifterlms [data-title-active].tip--bottom-left:hover:after,\n.llms-metabox [data-tip].tip--bottom-left:hover:after,\n.llms-metabox [data-title-default].tip--bottom-left:hover:after,\n.llms-metabox [data-title-active].tip--bottom-left:hover:after,\n.llms-mb-container [data-tip].tip--bottom-left:hover:after,\n.llms-mb-container [data-title-default].tip--bottom-left:hover:after,\n.llms-mb-container [data-title-active].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after {\n bottom: -6px;\n}\n.lifterlms [data-tip].tip--bottom-right:before,\n.lifterlms [data-title-default].tip--bottom-right:before,\n.lifterlms [data-title-active].tip--bottom-right:before,\n.llms-metabox [data-tip].tip--bottom-right:before,\n.llms-metabox [data-title-default].tip--bottom-right:before,\n.llms-metabox [data-title-active].tip--bottom-right:before,\n.llms-mb-container [data-tip].tip--bottom-right:before,\n.llms-mb-container [data-title-default].tip--bottom-right:before,\n.llms-mb-container [data-title-active].tip--bottom-right:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:before {\n top: 100%;\n left: -10px;\n}\n.lifterlms [data-tip].tip--bottom-right:hover:before,\n.lifterlms [data-title-default].tip--bottom-right:hover:before,\n.lifterlms [data-title-active].tip--bottom-right:hover:before,\n.llms-metabox [data-tip].tip--bottom-right:hover:before,\n.llms-metabox [data-title-default].tip--bottom-right:hover:before,\n.llms-metabox [data-title-active].tip--bottom-right:hover:before,\n.llms-mb-container [data-tip].tip--bottom-right:hover:before,\n.llms-mb-container [data-title-default].tip--bottom-right:hover:before,\n.llms-mb-container [data-title-active].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before {\n top: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--bottom-right:after,\n.lifterlms [data-title-default].tip--bottom-right:after,\n.lifterlms [data-title-active].tip--bottom-right:after,\n.llms-metabox [data-tip].tip--bottom-right:after,\n.llms-metabox [data-title-default].tip--bottom-right:after,\n.llms-metabox [data-title-active].tip--bottom-right:after,\n.llms-mb-container [data-tip].tip--bottom-right:after,\n.llms-mb-container [data-title-default].tip--bottom-right:after,\n.llms-mb-container [data-title-active].tip--bottom-right:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:after {\n border-bottom-color: #444;\n left: 6px;\n bottom: 0;\n}\n.lifterlms [data-tip].tip--bottom-right:hover:after,\n.lifterlms [data-title-default].tip--bottom-right:hover:after,\n.lifterlms [data-title-active].tip--bottom-right:hover:after,\n.llms-metabox [data-tip].tip--bottom-right:hover:after,\n.llms-metabox [data-title-default].tip--bottom-right:hover:after,\n.llms-metabox [data-title-active].tip--bottom-right:hover:after,\n.llms-mb-container [data-tip].tip--bottom-right:hover:after,\n.llms-mb-container [data-title-default].tip--bottom-right:hover:after,\n.llms-mb-container [data-title-active].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after {\n bottom: -6px;\n}\n.lifterlms [data-tip]:before,\n.lifterlms [data-title-default]:before,\n.lifterlms [data-title-active]:before,\n.llms-metabox [data-tip]:before,\n.llms-metabox [data-title-default]:before,\n.llms-metabox [data-title-active]:before,\n.llms-mb-container [data-tip]:before,\n.llms-mb-container [data-title-default]:before,\n.llms-mb-container [data-title-active]:before,\n.llms-quiz-wrapper [data-tip]:before,\n.llms-quiz-wrapper [data-title-default]:before,\n.llms-quiz-wrapper [data-title-active]:before {\n background: #444;\n border-radius: 4px;\n color: #fff;\n font-size: 13px;\n line-height: 1.2;\n padding: 8px;\n max-width: 300px;\n width: max-content;\n}\n.lifterlms [data-tip]:after,\n.lifterlms [data-title-default]:after,\n.lifterlms [data-title-active]:after,\n.llms-metabox [data-tip]:after,\n.llms-metabox [data-title-default]:after,\n.llms-metabox [data-title-active]:after,\n.llms-mb-container [data-tip]:after,\n.llms-mb-container [data-title-default]:after,\n.llms-mb-container [data-title-active]:after,\n.llms-quiz-wrapper [data-tip]:after,\n.llms-quiz-wrapper [data-title-default]:after,\n.llms-quiz-wrapper [data-title-active]:after {\n content: \"\";\n border: 6px solid transparent;\n height: 0;\n width: 0;\n}\n.lifterlms [data-tip]:before, .lifterlms [data-tip]:after,\n.lifterlms [data-title-default]:before,\n.lifterlms [data-title-default]:after,\n.lifterlms [data-title-active]:before,\n.lifterlms [data-title-active]:after,\n.llms-metabox [data-tip]:before,\n.llms-metabox [data-tip]:after,\n.llms-metabox [data-title-default]:before,\n.llms-metabox [data-title-default]:after,\n.llms-metabox [data-title-active]:before,\n.llms-metabox [data-title-active]:after,\n.llms-mb-container [data-tip]:before,\n.llms-mb-container [data-tip]:after,\n.llms-mb-container [data-title-default]:before,\n.llms-mb-container [data-title-default]:after,\n.llms-mb-container [data-title-active]:before,\n.llms-mb-container [data-title-active]:after,\n.llms-quiz-wrapper [data-tip]:before,\n.llms-quiz-wrapper [data-tip]:after,\n.llms-quiz-wrapper [data-title-default]:before,\n.llms-quiz-wrapper [data-title-default]:after,\n.llms-quiz-wrapper [data-title-active]:before,\n.llms-quiz-wrapper [data-title-active]:after {\n opacity: 0;\n transition: all 0.2s 0.1s ease;\n position: absolute;\n pointer-events: none;\n visibility: hidden;\n}\n.lifterlms [data-tip]:hover:before, .lifterlms [data-tip]:hover:after,\n.lifterlms [data-title-default]:hover:before,\n.lifterlms [data-title-default]:hover:after,\n.lifterlms [data-title-active]:hover:before,\n.lifterlms [data-title-active]:hover:after,\n.llms-metabox [data-tip]:hover:before,\n.llms-metabox [data-tip]:hover:after,\n.llms-metabox [data-title-default]:hover:before,\n.llms-metabox [data-title-default]:hover:after,\n.llms-metabox [data-title-active]:hover:before,\n.llms-metabox [data-title-active]:hover:after,\n.llms-mb-container [data-tip]:hover:before,\n.llms-mb-container [data-tip]:hover:after,\n.llms-mb-container [data-title-default]:hover:before,\n.llms-mb-container [data-title-default]:hover:after,\n.llms-mb-container [data-title-active]:hover:before,\n.llms-mb-container [data-title-active]:hover:after,\n.llms-quiz-wrapper [data-tip]:hover:before,\n.llms-quiz-wrapper [data-tip]:hover:after,\n.llms-quiz-wrapper [data-title-default]:hover:before,\n.llms-quiz-wrapper [data-title-default]:hover:after,\n.llms-quiz-wrapper [data-title-active]:hover:before,\n.llms-quiz-wrapper [data-title-active]:hover:after {\n opacity: 1;\n transition: all 0.2s 0.6s ease;\n visibility: visible;\n z-index: 99999999;\n}\n.lifterlms [data-tip]:before,\n.llms-metabox [data-tip]:before,\n.llms-mb-container [data-tip]:before,\n.llms-quiz-wrapper [data-tip]:before {\n content: attr(data-tip);\n}\n.lifterlms [data-tip].active:before,\n.llms-metabox [data-tip].active:before,\n.llms-mb-container [data-tip].active:before,\n.llms-quiz-wrapper [data-tip].active:before {\n content: attr(data-tip-active);\n}\n\n.llms-membership-image {\n display: block;\n margin: 0 auto;\n}\n\n.llms-course-image {\n display: block;\n margin: 0 auto;\n max-width: 100%;\n}\n\n.llms-featured-image {\n display: block;\n margin: 0 auto;\n}\n\n.llms-image-thumb {\n width: 150px;\n}\n\n.llms-video-wrapper .center-video {\n height: auto;\n max-width: 100%;\n overflow: hidden;\n position: relative;\n padding-top: 56.25%;\n text-align: center;\n}\n.llms-video-wrapper .center-video > .wp-video,\n.llms-video-wrapper .center-video .fluid-width-video-wrapper,\n.llms-video-wrapper .center-video iframe, .llms-video-wrapper .center-video object, .llms-video-wrapper .center-video embed {\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.llms-video-wrapper .center-video > .wp-video {\n width: 100% !important;\n}\n.llms-video-wrapper .center-video .fluid-width-video-wrapper {\n padding-top: 0 !important;\n}\n\n.clear {\n clear: both;\n width: 100%;\n}\n\n.llms-featured-image {\n text-align: center;\n}\n\n/* Genesis Overrides */\nh1, h2, h3, h4, h5, h6 {\n font-weight: 300;\n}\n\n#main-content .llms-payment-options p {\n margin: 0;\n font-size: 16px;\n}\n\n.llms-option {\n display: block;\n position: relative;\n margin: 20px 0;\n padding-left: 40px;\n font-size: 16px;\n}\n.llms-option label {\n cursor: pointer;\n position: static;\n}\n\n.llms-option:first-child {\n margin-top: 0;\n}\n\n.llms-option:last-child {\n margin-bottom: 0;\n}\n\n#main-content .llms-option:last-child {\n margin-bottom: 0;\n}\n\n.llms-option input[type=radio] {\n display: block;\n position: absolute;\n top: 3px;\n left: 0;\n z-index: 0;\n}\n\n.llms-option input[type=radio] {\n display: inline-block;\n}\n\n.llms-option input[type=radio] + label span.llms-radio {\n display: none;\n}\n\n.llms-option input[type=radio] + label span.llms-radio {\n appearance: none;\n z-index: 20;\n position: absolute;\n top: 0;\n left: -2px;\n display: inline-block;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n cursor: pointer;\n vertical-align: middle;\n box-shadow: rgba(255, 255, 255, 0.15) 0 1px 1px, inset rgba(0, 0, 0, 0.5) 0 0 0 1px;\n background: #efefef;\n background-image: radial-gradient(ellipse at center, #e5554e 0%, #e5554e 40%, #efefef 45%);\n background-repeat: no-repeat;\n transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n}\n\n.llms-option input[type=radio]:checked + label span.llms-radio {\n transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n}\n\n.llms-option input[type=radio] + label span.llms-radio {\n background-position: -24px 0;\n}\n\n.llms-option input[type=radio]:checked + label span.llms-radio {\n background-position: 0 0;\n}\n\n.llms-option input[type=submit] {\n border: none;\n background: #e5554e;\n color: #fff;\n font-size: 20px;\n padding: 10px 0;\n border-radius: 3px;\n cursor: pointer;\n width: 100%;\n}\n\n.llms-styled-text {\n padding: 14px 0;\n}\n\n.llms-notice-box {\n border-radius: 3px;\n z-index: 10;\n margin: 10px 0;\n padding: 15px 20px;\n border: 1px solid #ccc;\n list-style-type: none;\n width: 100%;\n overflow: auto;\n}\n.llms-notice-box input[type=text] {\n height: auto;\n}\n.llms-notice-box .col-1-1 {\n width: 100%;\n}\n.llms-notice-box .col-1-1 input[type=text] {\n width: 100%;\n}\n.llms-notice-box .col-1-2 {\n width: 50%;\n float: left;\n}\n@media screen and (max-width: 768px) {\n .llms-notice-box .col-1-2 {\n width: 100%;\n }\n}\n.llms-notice-box .col-1-3 {\n width: 33%;\n float: left;\n margin-right: 10px;\n}\n.llms-notice-box .col-1-4 {\n width: 25%;\n float: left;\n margin-right: 10px;\n}\n@media screen and (max-width: 768px) {\n .llms-notice-box .col-1-4 {\n width: 100%;\n }\n}\n.llms-notice-box .col-1-6 {\n width: 16.6%;\n float: left;\n margin-right: 10px;\n}\n.llms-notice-box .col-1-8 {\n width: 11%;\n float: right;\n}\n.llms-notice-box .llms-pad-right {\n padding-right: 10px;\n}\n@media screen and (max-width: 768px) {\n .llms-notice-box .llms-pad-right {\n padding-right: 0;\n }\n}\n\ninput[type=text].cc_cvv,\n#cc_cvv {\n margin-right: 0;\n width: 23%;\n float: right;\n}\n\n.llms-clear-box {\n border-radius: 3px;\n z-index: 10;\n margin: 10px 0;\n padding: 15px 20px;\n list-style-type: none;\n width: 100%;\n overflow: auto;\n}\n\n.llms-price-label {\n font-weight: normal;\n}\n\n.llms-final-price {\n font-weight: bold;\n float: right;\n}\n\n.llms-center-content {\n text-align: center;\n}\n\n.llms-input-text {\n background-color: #fff;\n border: 1px solid #ddd;\n color: #333;\n font-size: 18px;\n font-weight: 300;\n padding: 16px;\n width: 100%;\n}\n\n.llms-price {\n margin-bottom: 0;\n font-weight: bold;\n}\n\n.llms-price-loop {\n margin-bottom: 0;\n font-weight: bold;\n}\n\n.courses .entry {\n padding: 0;\n}\n\n.list-view .site-content .llms-course-list .hentry, .list-view .site-content .llms-membership-list .hentry {\n border-top: 0;\n padding-top: 0;\n}\n\n.llms-content {\n width: 100%;\n}\n\n.llms-lesson-button-wrapper {\n width: 100%;\n display: block;\n clear: both;\n text-align: center;\n}\n\n.llms-template-wrapper {\n width: 100%;\n display: block;\n clear: both;\n}\n\n.llms-button-wrapper {\n width: 100%;\n display: block;\n clear: both;\n text-align: center;\n}\n\n.llms-styled-select {\n border: 1px solid #ccc;\n box-sizing: border-box;\n border-radius: 3px;\n overflow: hidden;\n position: relative;\n}\n\n.llms-styled-select, .llms-styled-select select {\n width: 100%;\n}\n\nselect:focus {\n outline: none;\n}\n\n.llms-styled-select select {\n height: 34px;\n padding: 5px 0 5px 5px;\n background: transparent;\n border: none;\n -webkit-appearance: none;\n font-size: 16px;\n color: #444444;\n}\n\n@-moz-document url-prefix() {\n .--ms-styled-select select {\n width: 110%;\n }\n}\n.llms-styled-select .fa-sort-desc {\n position: absolute;\n top: 0;\n right: 12px;\n font-size: 24px;\n color: #ccc;\n}\n\nselect::-ms-expand {\n display: none;\n}\n\n_:-o-prefocus .llms-styled-select, .selector .llms-styled-select {\n background: none;\n}\n\n.llms-form-item-wrapper {\n margin-bottom: 1em;\n}\n\n/* Circle Graph */\n.llms-progress-circle {\n position: relative;\n width: 200px;\n height: 200px;\n float: left;\n}\n\n.llms-progress-circle-count {\n top: 27%;\n position: absolute;\n width: 94%;\n text-align: center;\n color: #666;\n font-size: 44px;\n}\n\n.llms-progress-circle svg {\n position: absolute;\n width: 200px;\n height: 200px;\n}\n\n.llms-progress-circle circle {\n fill: transparent;\n}\n\nsvg .llms-background-circle {\n fill: transparent;\n stroke-width: 10px;\n stroke: #f1f2f1;\n stroke-dasharray: 430;\n}\n\nsvg .llms-animated-circle {\n fill: transparent;\n stroke-width: 10px;\n stroke: #e5554e;\n stroke-dasharray: 430;\n stroke-dashoffset: 410;\n}\n\n.llms-widget-syllabus .llms-lesson.current-lesson .lesson-title {\n font-weight: 700;\n}\n.llms-widget-syllabus .llms-lesson-complete, .llms-widget-syllabus .lesson-complete-placeholder {\n font-size: 1.2em;\n margin-right: 6px;\n color: #ccc;\n}\n.llms-widget-syllabus .llms-lesson-complete.done, .llms-widget-syllabus .lesson-complete-placeholder.done {\n color: #e5554e;\n}\n.llms-widget-syllabus .section-title {\n font-weight: bold;\n}\n.llms-widget-syllabus .lesson-title a {\n text-decoration: none;\n}\n.llms-widget-syllabus .lesson-title a:hover {\n text-decoration: none !important;\n}\n.llms-widget-syllabus .lesson-title.done a {\n color: #999;\n text-decoration: line-through;\n}\n.llms-widget-syllabus ul {\n list-style-type: none;\n}\n.llms-widget-syllabus ul li {\n list-style-type: none;\n}\n.llms-widget-syllabus ul li ul li {\n margin: 0 0 2px 0;\n padding: 0;\n}\n\n.llms-remove-coupon {\n float: right;\n}\n\n.llms-lesson-link-locked, .llms-lesson-link-locked:hover {\n background: #f1f1f1;\n box-shadow: 0 1px 2px 0 rgba(1, 1, 1, 0.4);\n display: block;\n color: #a6a6a6;\n min-height: 85px;\n padding: 15px;\n text-decoration: none;\n position: relative;\n}\n\n.llms-lesson-preview.is-complete .llms-lesson-link-locked {\n padding-left: 75px;\n}\n\n.llms-lesson-tooltip {\n display: none;\n position: absolute;\n color: #000000;\n background-color: #c0c0c0;\n padding: 0.25em;\n border-radius: 2px;\n z-index: 100;\n top: 0;\n left: 50%;\n text-align: center;\n -webkit-transform: translateX(-50%) translateY(-100%);\n transform: translateX(-50%) translateY(-100%);\n}\n\n/* arrows - :after */\n.llms-lesson-tooltip:after {\n content: \"\";\n width: 0;\n height: 0;\n border-top: 8px solid #c0c0c0;\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n position: absolute;\n bottom: -8px;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.llms-lesson-tooltip.active {\n display: inline-block;\n}\n\n.llms-loop-list {\n list-style: none;\n margin: 0 -10px;\n padding: 0;\n}\n@media all and (min-width: 600px) {\n .llms-loop-list.cols-1 .llms-loop-item {\n width: 100%;\n }\n .llms-loop-list.cols-2 .llms-loop-item {\n width: 50%;\n }\n .llms-loop-list.cols-3 .llms-loop-item {\n width: 33.3333333333%;\n }\n .llms-loop-list.cols-4 .llms-loop-item {\n width: 25%;\n }\n .llms-loop-list.cols-5 .llms-loop-item {\n width: 20%;\n }\n .llms-loop-list.cols-6 .llms-loop-item {\n width: 16.6666666667%;\n }\n}\n\n.llms-loop-item {\n float: left;\n list-style: none;\n margin: 0;\n padding: 0;\n width: 100%;\n}\n\n.llms-loop-item-content {\n background: #f1f1f1;\n padding-bottom: 10px;\n margin: 10px;\n}\n.llms-loop-item-content:hover {\n background: #eaeaea;\n}\n.llms-loop-item-content .llms-loop-link {\n color: #212121;\n display: block;\n}\n.llms-loop-item-content .llms-loop-link:visited {\n color: #212121;\n}\n.llms-loop-item-content .llms-featured-image {\n display: block;\n max-width: 100%;\n}\n.llms-loop-item-content .llms-loop-title {\n margin-top: 5px;\n}\n.llms-loop-item-content .llms-loop-title:hover {\n color: #2295ff;\n}\n.llms-loop-item-content .llms-meta,\n.llms-loop-item-content .llms-author,\n.llms-loop-item-content .llms-loop-title {\n padding: 0 10px;\n}\n.llms-loop-item-content .llms-meta,\n.llms-loop-item-content .llms-author {\n color: #444;\n display: block;\n font-size: 13px;\n margin-bottom: 3px;\n}\n.llms-loop-item-content .llms-meta:last-child,\n.llms-loop-item-content .llms-author:last-child {\n margin-bottom: 0;\n}\n.llms-loop-item-content .llms-featured-img-wrap {\n overflow: hidden;\n}\n.llms-loop-item-content p {\n margin-bottom: 0;\n}\n.llms-loop-item-content .llms-progress {\n margin: 0;\n height: 0.4em;\n}\n.llms-loop-item-content .llms-progress .progress__indicator {\n display: none;\n}\n.llms-loop-item-content .llms-progress .llms-progress-bar {\n background-color: #f6f6f6;\n right: 0;\n top: 0;\n}\n\n.course .llms-meta-info {\n margin: 20px 0;\n}\n.course .llms-meta-info .llms-meta-title {\n margin-bottom: 5px;\n}\n.course .llms-meta-info .llms-meta p {\n margin-bottom: 0;\n}\n.course .llms-meta-info .llms-meta span {\n font-weight: 700;\n}\n.course .llms-course-progress {\n margin: 40px auto;\n max-width: 480px;\n text-align: center;\n}\n\n.llms-syllabus-wrapper {\n margin: 15px;\n text-align: center;\n}\n.llms-syllabus-wrapper .llms-section-title {\n margin: 25px 0 0;\n}\n\n.llms-course-navigation .llms-prev-lesson,\n.llms-course-navigation .llms-next-lesson,\n.llms-course-navigation .llms-back-to-course {\n width: 49%;\n}\n.llms-course-navigation .llms-prev-lesson,\n.llms-course-navigation .llms-back-to-course {\n float: left;\n margin-right: 0.5%;\n}\n.llms-course-navigation .llms-next-lesson,\n.llms-course-navigation .llms-prev-lesson + .llms-back-to-course {\n float: right;\n margin-left: 0.5%;\n}\n\n.llms-lesson-preview {\n display: inline-block;\n margin-top: 15px;\n max-width: 100%;\n position: relative;\n width: 480px;\n}\n.llms-lesson-preview .llms-lesson-link {\n background: #f1f1f1;\n color: #212121;\n display: block;\n padding: 15px;\n text-decoration: none;\n}\n.llms-lesson-preview .llms-lesson-link:before, .llms-lesson-preview .llms-lesson-link:after {\n content: \" \";\n display: table;\n}\n.llms-lesson-preview .llms-lesson-link:after {\n clear: both;\n}\n.llms-lesson-preview .llms-lesson-link:hover {\n background: #eaeaea;\n}\n.llms-lesson-preview .llms-lesson-link:visited {\n color: #212121;\n}\n.llms-lesson-preview .llms-lesson-thumbnail {\n margin-bottom: 10px;\n}\n.llms-lesson-preview .llms-lesson-thumbnail img {\n display: block;\n width: 100%;\n}\n.llms-lesson-preview .llms-pre-text {\n text-align: left;\n}\n.llms-lesson-preview .llms-lesson-title {\n font-weight: 700;\n margin: 0 auto 10px;\n text-align: left;\n}\n.llms-lesson-preview .llms-lesson-title:last-child {\n margin-bottom: 0;\n}\n.llms-lesson-preview .llms-lesson-excerpt {\n text-align: left;\n}\n.llms-lesson-preview .llms-main {\n float: left;\n width: 100%;\n}\n.llms-lesson-preview .llms-extra {\n float: right;\n width: 15%;\n}\n.llms-lesson-preview .llms-extra + .llms-main {\n width: 85%;\n}\n.llms-lesson-preview .llms-lesson-counter,\n.llms-lesson-preview .llms-free-lesson-svg,\n.llms-lesson-preview .llms-lesson-complete,\n.llms-lesson-preview .llms-lesson-complete-placeholder {\n display: block;\n font-size: 32px;\n margin-bottom: 15px;\n}\n.llms-lesson-preview.is-free .llms-lesson-complete, .llms-lesson-preview.is-complete .llms-lesson-complete {\n color: #2295ff;\n}\n.llms-lesson-preview .llms-icon-free {\n background: #2295ff;\n border-radius: 4px;\n color: #f1f1f1;\n display: inline-block;\n padding: 5px 6px 4px;\n line-height: 1;\n font-size: 14px;\n}\n.llms-lesson-preview.is-incomplete .llms-lesson-complete {\n color: #cacaca;\n}\n.llms-lesson-preview .llms-lesson-counter {\n font-size: 16px;\n line-height: 1;\n}\n.llms-lesson-preview .llms-free-lesson-svg {\n fill: currentColor;\n height: 23px;\n width: 50px;\n}\n.llms-lesson-preview p {\n margin-bottom: 0;\n}\n\n/* progress bar */\n.llms-progress {\n clear: both;\n display: flex;\n flex-direction: row-reverse;\n position: relative;\n height: 1em;\n width: 100%;\n margin: 15px 0;\n}\n\n.llms-progress .llms-progress-bar {\n background-color: #f1f2f1;\n position: relative;\n height: 0.4em;\n top: 0.3em;\n width: 100%;\n}\n\n.llms-progress .progress-bar-complete {\n background-color: #ef476f;\n height: 100%;\n}\n\n.progress__indicator {\n float: right;\n text-align: right;\n height: 1em;\n line-height: 1em;\n margin-left: 5px;\n white-space: nowrap;\n}\n\n.llms-author .name {\n margin-left: 5px;\n}\n.llms-author .label {\n margin-left: 5px;\n}\n.llms-author .avatar {\n border-radius: 50%;\n}\n.llms-author .bio {\n margin-top: 5px;\n}\n\n.llms-instructor-info .llms-instructors .llms-col:first-child .llms-author {\n margin-left: 0;\n}\n.llms-instructor-info .llms-instructors .llms-col:last-child .llms-author {\n margin-right: 0;\n}\n.llms-instructor-info .llms-instructors .llms-author {\n background: #f5f5f5;\n border-top: 4px solid #2295ff;\n text-align: center;\n margin: 45px 5px 5px;\n padding: 0 10px 10px;\n}\n.llms-instructor-info .llms-instructors .llms-author .avatar {\n background: #2295ff;\n border: 4px solid #2295ff;\n display: block;\n margin: -35px auto 10px;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info {\n display: block;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info.name {\n font-weight: 700;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info.label {\n font-size: 85%;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info.bio {\n font-size: 90%;\n margin-bottom: 0;\n}\n\n.llms-notice {\n background: rgba(34, 149, 255, 0.3);\n border-color: #2295ff;\n border-style: solid;\n border-width: 3px;\n padding: 10px;\n margin-bottom: 10px;\n}\n.llms-notice p:last-child, .llms-notice ul:last-child {\n margin-bottom: 0;\n}\n.llms-notice li {\n list-style-type: none;\n}\n.llms-notice.llms-debug {\n background: rgba(202, 202, 202, 0.3);\n border-color: #cacaca;\n}\n.llms-notice.llms-error {\n background: rgba(229, 85, 78, 0.3);\n border-color: #e5554e;\n}\n.llms-notice.llms-success {\n background: rgba(131, 195, 115, 0.3);\n border-color: #83c373;\n}\n\n.entry-content .llms-notice {\n margin: 0 0 10px;\n}\n.entry-content .llms-notice li {\n list-style-type: none;\n}\n\nul.llms-achievements-loop,\n.lifterlms ul.llms-achievements-loop,\nul.llms-certificates-loop,\n.lifterlms ul.llms-certificates-loop {\n list-style-type: none;\n margin: 0 -10px;\n padding: 0;\n}\nul.llms-achievements-loop:before, ul.llms-achievements-loop:after,\n.lifterlms ul.llms-achievements-loop:before,\n.lifterlms ul.llms-achievements-loop:after,\nul.llms-certificates-loop:before,\nul.llms-certificates-loop:after,\n.lifterlms ul.llms-certificates-loop:before,\n.lifterlms ul.llms-certificates-loop:after {\n content: \" \";\n display: table;\n}\nul.llms-achievements-loop:after,\n.lifterlms ul.llms-achievements-loop:after,\nul.llms-certificates-loop:after,\n.lifterlms ul.llms-certificates-loop:after {\n clear: both;\n}\nul.llms-achievements-loop li.llms-achievement-loop-item,\nul.llms-achievements-loop li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop li.llms-certificate-loop-item,\nul.llms-certificates-loop li.llms-achievement-loop-item,\nul.llms-certificates-loop li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop li.llms-certificate-loop-item {\n box-sizing: border-box;\n display: block;\n float: left;\n list-style-type: none;\n margin: 0;\n padding: 10px;\n width: 100%;\n}\n@media all and (min-width: 600px) {\n ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item {\n width: 100%;\n }\n ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item {\n width: 50%;\n }\n ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item {\n width: 33.3333333333%;\n }\n ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item {\n width: 25%;\n }\n ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item {\n width: 20%;\n }\n}\n\n.llms-achievement,\n.llms-certificate {\n background: #f1f1f1;\n border: none;\n color: inherit;\n display: block;\n text-decoration: none;\n width: 100%;\n}\n.llms-achievement:hover,\n.llms-certificate:hover {\n background: #eaeaea;\n}\n.llms-achievement .llms-achievement-img,\n.llms-certificate .llms-achievement-img {\n display: block;\n margin: 0;\n width: 100%;\n}\n.llms-achievement .llms-achievement-title,\n.llms-certificate .llms-achievement-title {\n font-size: 16px;\n margin: 0;\n padding: 10px;\n text-align: center;\n}\n.llms-achievement .llms-certificate-title,\n.llms-certificate .llms-certificate-title {\n font-size: 16px;\n margin: 0;\n padding: 0 0 10px;\n}\n.llms-achievement .llms-achievement-info,\n.llms-achievement .llms-achievement-date,\n.llms-certificate .llms-achievement-info,\n.llms-certificate .llms-achievement-date {\n display: none;\n}\n.llms-achievement .llms-achievement-content,\n.llms-certificate .llms-achievement-content {\n padding: 20px;\n}\n.llms-achievement .llms-achievement-content:empty,\n.llms-certificate .llms-achievement-content:empty {\n padding: 0;\n}\n.llms-achievement .llms-achievement-content *:last-child,\n.llms-certificate .llms-achievement-content *:last-child {\n margin-bottom: 0;\n}\n\n.llms-certificate {\n border: 4px double #f1f1f1;\n padding: 20px 10px;\n background: #fff;\n text-align: center;\n}\n.llms-certificate:hover {\n background: #fff;\n border-color: #eaeaea;\n}\n\n.llms-achievement-modal .llms-achievement {\n background: #fff;\n}\n.llms-achievement-modal .llms-achievement-info {\n display: block;\n}\n.llms-achievement-modal .llms-achievement-title {\n display: none;\n}\n\n.llms-notification {\n background: #fff;\n box-shadow: 0 1px 2px -2px #333, 0 1px 1px -1px #333;\n border-top: 4px solid #2295ff;\n left: 12px;\n opacity: 0;\n padding: 12px;\n position: fixed;\n right: 12px;\n top: 24px;\n transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out;\n visibility: none;\n width: auto;\n z-index: 9999999;\n}\n.llms-notification:before, .llms-notification:after {\n content: \" \";\n display: table;\n}\n.llms-notification:after {\n clear: both;\n}\n.llms-notification.visible {\n opacity: 1;\n transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, transform 0.2s ease-in-out;\n visibility: visible;\n}\n.llms-notification.visible:hover .llms-notification-dismiss {\n opacity: 1;\n}\n.llms-notification .llms-notification-content {\n align-items: center;\n display: flex;\n}\n.llms-notification .llms-notification-main {\n align-self: flex-start;\n flex: 4;\n order: 2;\n}\n.llms-notification .llms-notification-title {\n font-size: 18px;\n margin: 0;\n}\n.llms-notification .llms-notification-body {\n font-size: 14px;\n line-height: 1.4;\n}\n.llms-notification .llms-notification-body p, .llms-notification .llms-notification-body li {\n font-size: inherit;\n}\n.llms-notification .llms-notification-body p {\n margin-bottom: 8px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert {\n background: #f6f6f6;\n border: 1px solid #d0d0d0;\n box-shadow: inset 0 0 0 3px #fefefe, inset 0 0 0 4px #dedede;\n padding: 16px 16px 24px;\n margin-top: 12px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert-title {\n font-size: 16px;\n font-weight: 700;\n margin: 12px auto;\n text-align: center;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body {\n width: 100%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(1) {\n width: 65%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(2) {\n width: 35%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(3) {\n width: 85%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(4) {\n width: 75%;\n margin-top: 18px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(5) {\n width: 70%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(6) {\n margin-left: 12px;\n margin-bottom: -24px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(7) {\n width: 65%;\n margin-right: 12px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-line {\n border-radius: 2px;\n height: 8px;\n background: #b0b0b0;\n background-image: linear-gradient(to right, #b0b0b0 0%, #a0a0a0 20%, #b0b0b0 40%, #b0b0b0 100%);\n background-repeat: no-repeat;\n margin: 4px auto;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-dot {\n background: #b0b0b0;\n border-radius: 50%;\n display: inline-block;\n content: \"\";\n height: 24px;\n width: 24px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert p {\n margin-bottom: 0;\n}\n.llms-notification .llms-notification-aside {\n align-self: flex-start;\n flex: 1;\n margin-right: 12px;\n order: 1;\n}\n.llms-notification .llms-notification-icon {\n display: block;\n max-width: 64px;\n}\n.llms-notification .llms-notification-footer {\n border-top: 1px solid #e5e5e5;\n font-size: 12px;\n margin-top: 12px;\n padding: 6px 6px 0;\n text-align: right;\n}\n.llms-notification .llms-notification-dismiss {\n color: #e5554e;\n cursor: pointer;\n font-size: 22px;\n position: absolute;\n right: 10px;\n top: 8px;\n transition: opacity 0.4s ease-in-out;\n}\n\n.llms-sd-notification-center .llms-notification-list,\n.llms-sd-notification-center .llms-notification-list-item {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-sd-notification-center .llms-notification-list-item:hover .llms-notification {\n background: #fcfcfc;\n}\n.llms-sd-notification-center .llms-notification {\n opacity: 1;\n border-top: 1px solid #e5e5e5;\n left: auto;\n padding: 24px;\n position: relative;\n right: auto;\n top: auto;\n visibility: visible;\n width: auto;\n}\n.llms-sd-notification-center .llms-notification .llms-notification-aside {\n max-width: 64px;\n}\n.llms-sd-notification-center .llms-notification .llms-notification-footer {\n border: none;\n padding: 0;\n text-align: left;\n}\n.llms-sd-notification-center .llms-notification .llms-progress {\n display: none !important;\n}\n.llms-sd-notification-center .llms-notification .llms-notification-date {\n color: #515151;\n float: left;\n margin-right: 6px;\n}\n.llms-sd-notification-center .llms-notification .llms-mini-cert {\n margin: 0 auto;\n max-width: 380px;\n}\n\n@media all and (min-width: 480px) {\n .llms-notification {\n left: auto;\n right: -800px;\n width: 360px;\n }\n .llms-notification.visible {\n right: 24px;\n }\n .llms-notification .llms-notification-dismiss {\n opacity: 0;\n }\n}\n.llms-pagination ul {\n list-style-type: none;\n}\n.llms-pagination ul li {\n float: left;\n}\n.llms-pagination ul li a {\n border-bottom: 0;\n text-decoration: none;\n}\n.llms-pagination ul li .page-numbers {\n padding: 0.5em;\n text-decoration: underline;\n}\n.llms-pagination ul li .page-numbers.current {\n text-decoration: none;\n}\n\n.llms-tooltip {\n background: #2a2a2a;\n border-radius: 4px;\n color: #fff;\n font-size: 14px;\n line-height: 1.2;\n opacity: 0;\n top: -20px;\n padding: 8px 12px;\n left: 50%;\n position: absolute;\n pointer-events: none;\n transform: translateX(-50%);\n transition: opacity 0.2s ease, top 0.2s ease;\n max-width: 320px;\n}\n.llms-tooltip.show {\n top: -28px;\n opacity: 1;\n}\n.llms-tooltip:after {\n bottom: -8px;\n border-top: 8px solid #2a2a2a;\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n content: \"\";\n height: 0;\n left: 50%;\n position: absolute;\n transform: translateX(-50%);\n width: 0;\n}\n\n.webui-popover-title {\n font-size: initial;\n font-weight: initial;\n line-height: initial;\n}\n\n.webui-popover-inverse .webui-popover-inner .close {\n color: #fff;\n opacity: 0.6;\n text-shadow: none;\n}\n.webui-popover-inverse .webui-popover-inner .close:hover {\n opacity: 0.8;\n}\n.webui-popover-inverse .webui-popover-content a {\n color: #fff;\n text-decoration: underline;\n}\n.webui-popover-inverse .webui-popover-content a:hover {\n text-decoration: none;\n}\n\n.single-llms_quiz .llms-quiz-attempt-results {\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question {\n background: #efefef;\n margin: 0 0 10px;\n position: relative;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer {\n color: inherit;\n display: block;\n padding: 10px 35px 10px 10px;\n text-decoration: none;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:before, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:after {\n content: \" \";\n display: table;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:after {\n clear: both;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect {\n background: rgba(255, 146, 43, 0.2);\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon {\n background-color: #ff922b;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct {\n background: rgba(131, 195, 115, 0.2);\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon {\n background-color: #83c373;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect {\n background: rgba(229, 85, 78, 0.2);\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon {\n background-color: #e5554e;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title {\n float: left;\n margin: 0;\n line-height: 1;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points {\n float: right;\n line-height: 1;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip {\n position: absolute;\n right: -12px;\n top: -2px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon {\n color: rgba(255, 255, 255, 0.65);\n border-radius: 50%;\n font-size: 30px;\n height: 40px;\n line-height: 40px;\n text-align: center;\n width: 40px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main {\n display: none;\n padding: 0 10px 10px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label {\n font-weight: 700;\n margin-bottom: 10px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers {\n margin: 0;\n padding: 0;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {\n padding: 0;\n margin: 0 0 0 30px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child {\n list-style-type: none;\n margin-left: 0;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img {\n height: auto;\n max-width: 200px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section {\n border-top: 2px solid rgba(255, 255, 255, 0.5);\n margin-top: 20px;\n padding-top: 20px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child {\n border-top: none;\n margin-top: 0;\n padding-top: 0;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {\n display: inline-block;\n list-style-type: none;\n margin: 0;\n padding: 5px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed {\n opacity: 0.5;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title {\n font-style: italic;\n font-weight: normal;\n}\n.single-llms_quiz .llms-return {\n margin-bottom: 10px;\n}\n.single-llms_quiz .llms-quiz-results:before, .single-llms_quiz .llms-quiz-results:after {\n content: \" \";\n display: table;\n}\n.single-llms_quiz .llms-quiz-results:after {\n clear: both;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.passing {\n color: #83c373;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.passing svg path {\n stroke: #83c373;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.pending {\n color: #555;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.pending svg path {\n stroke: #555;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.failing {\n color: #e5554e;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.failing svg path {\n stroke: #e5554e;\n}\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside,\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-main,\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-history {\n margin-bottom: 20px;\n}\n@media all and (min-width: 600px) {\n .single-llms_quiz .llms-quiz-results .llms-quiz-results-aside {\n float: left;\n width: 220px;\n }\n .single-llms_quiz .llms-quiz-results .llms-quiz-results-main,\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-history {\n float: left;\n width: calc(100% - 300px);\n }\n}\n.single-llms_quiz ul.llms-quiz-meta-info,\n.single-llms_quiz ul.llms-quiz-meta-info li {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.single-llms_quiz ul.llms-quiz-meta-info {\n margin-bottom: 10px;\n}\n.single-llms_quiz .llms-quiz-buttons {\n margin-top: 10px;\n text-align: left;\n}\n.single-llms_quiz .llms-quiz-buttons form {\n display: inline-block;\n}\n\n.llms-quiz-question-wrapper {\n min-height: 140px;\n position: relative;\n}\n.llms-quiz-question-wrapper .llms-quiz-loading {\n bottom: 20px;\n left: 0;\n position: absolute;\n right: 0;\n text-align: center;\n z-index: 1;\n}\n\n.llms-quiz-ui {\n background: #fcfcfc;\n padding: 20px;\n position: relative;\n}\n.llms-quiz-ui .llms-quiz-header {\n align-items: center;\n display: flex;\n margin: 0 0 30px;\n}\n.llms-quiz-ui .llms-progress {\n background-color: #f1f2f1;\n flex-direction: row;\n height: 8px;\n margin: 0;\n overflow: hidden;\n}\n.llms-quiz-ui .llms-progress .progress-bar-complete {\n transition: width 0.3s ease-in;\n width: 0;\n}\n.llms-quiz-ui .llms-error {\n background: #e5554e;\n border-radius: 4px;\n color: #fff;\n margin: 10px 0;\n padding: 10px;\n}\n.llms-quiz-ui .llms-error:before, .llms-quiz-ui .llms-error:after {\n content: \" \";\n display: table;\n}\n.llms-quiz-ui .llms-error:after {\n clear: both;\n}\n.llms-quiz-ui .llms-error a {\n color: rgba(255, 255, 255, 0.6);\n float: right;\n font-size: 22px;\n line-height: 1;\n text-decoration: none;\n}\n.llms-quiz-ui .llms-quiz-counter {\n display: none;\n color: #6a6a6a;\n float: right;\n font-size: 18px;\n}\n.llms-quiz-ui .llms-quiz-counter .llms-sep {\n margin: 0 5px;\n}\n.llms-quiz-ui .llms-quiz-nav {\n margin-top: 20px;\n}\n.llms-quiz-ui .llms-quiz-nav button {\n margin: 0 10px 0 0;\n}\n\n.llms-question-wrapper .llms-question-text {\n font-size: 30px;\n font-weight: 400;\n margin-bottom: 15px;\n}\n.llms-question-wrapper ol.llms-question-choices {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice {\n border-bottom: 1px solid #e8e8e8;\n margin: 0;\n padding: 0;\n position: relative;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice:last-child {\n border-bottom: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture {\n border-bottom: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture label {\n display: inline-block;\n padding: 0;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-marker {\n bottom: 10px;\n margin: 0;\n position: absolute;\n right: 10px;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image {\n margin: 2px;\n padding: 20px;\n transition: background 0.4s ease;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image img {\n display: block;\n width: 100%;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture input:checked ~ .llms-choice-image {\n background: #efefef;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input {\n display: none;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n visibility: hidden;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice label {\n display: block;\n margin: 0;\n padding: 10px 20px;\n position: relative;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .iterator {\n display: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .fa {\n display: inline;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker {\n background: #f0f0f0;\n display: inline-block;\n font-size: 20px;\n height: 40px;\n line-height: 40px;\n margin-right: 10px;\n text-align: center;\n transition: all 0.2s ease;\n vertical-align: middle;\n width: 40px;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker .fa {\n display: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--lister, .llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--checkbox {\n border-radius: 4px;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--radio {\n border-radius: 50%;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker {\n background: #ef476f;\n color: #fff;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker .iterator {\n display: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker .fa {\n display: inline;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-choice-text {\n display: inline-block;\n font-size: 18px;\n font-weight: 400;\n line-height: 1.6;\n margin-bottom: 0;\n vertical-align: middle;\n width: calc(100% - 60px);\n}\n\n.llms-quiz-timer {\n background: #fff;\n border: 1px solid #83c373;\n border-radius: 4px;\n color: #83c373;\n float: right;\n font-size: 18px;\n line-height: 1;\n margin-left: 20px;\n padding: 8px 12px;\n position: relative;\n white-space: nowrap;\n z-index: 1;\n}\n.llms-quiz-timer.color-half {\n border-color: #ff922b;\n color: #ff922b;\n}\n.llms-quiz-timer.color-empty {\n border-color: #e5554e;\n color: #e5554e;\n}\n.llms-quiz-timer .llms-tiles {\n display: inline-block;\n margin-left: 5px;\n}\n\n.voucher-expand {\n display: none;\n}\n\n@media all and (min-width: 600px) {\n .llms-access-plans.cols-1 .llms-access-plan {\n width: 100%;\n }\n .llms-access-plans.cols-2 .llms-access-plan {\n width: 50%;\n }\n .llms-access-plans.cols-3 .llms-access-plan {\n width: 33.3333333333%;\n }\n .llms-access-plans.cols-4 .llms-access-plan {\n width: 25%;\n }\n .llms-access-plans.cols-5 .llms-access-plan {\n width: 20%;\n }\n}\n\n.llms-free-enroll-form {\n margin-bottom: 0;\n}\n\n.llms-access-plan {\n box-sizing: border-box;\n float: left;\n text-align: center;\n width: 100%;\n}\n.llms-access-plan .llms-access-plan-footer,\n.llms-access-plan .llms-access-plan-content {\n background: #f1f1f1;\n}\n.llms-access-plan.featured .llms-access-plan-featured {\n background: #4ba9ff;\n}\n.llms-access-plan.featured .llms-access-plan-footer,\n.llms-access-plan.featured .llms-access-plan-content {\n border-left: 3px solid #2295ff;\n border-right: 3px solid #2295ff;\n}\n.llms-access-plan.featured .llms-access-plan-footer {\n border-bottom-color: #2295ff;\n}\n.llms-access-plan.on-sale .price-regular {\n text-decoration: line-through;\n}\n.llms-access-plan .stamp {\n background: #2295ff;\n color: #fff;\n font-size: 11px;\n font-style: normal;\n font-weight: 300;\n padding: 2px 3px;\n vertical-align: top;\n}\n.llms-access-plan .llms-access-plan-restrictions ul {\n margin: 0;\n}\n\n.llms-access-plan-featured {\n color: #fff;\n font-size: 14px;\n font-weight: 400;\n margin: 0 2px 0 2px;\n}\n\n.llms-access-plan-content {\n margin: 0 2px 0;\n}\n.llms-access-plan-content .llms-access-plan-pricing {\n padding: 10px 0 0;\n}\n\n.llms-access-plan-title {\n background: #2295ff;\n color: #fff;\n margin-bottom: 0;\n padding: 10px;\n}\n\n.llms-access-plan-pricing .llms-price-currency-symbol {\n font-size: 14px;\n vertical-align: top;\n}\n\n.llms-access-plan-price {\n font-size: 18px;\n font-variant: small-caps;\n line-height: 20px;\n}\n.llms-access-plan-price .lifterlms-price {\n font-weight: 700;\n}\n.llms-access-plan-price.sale {\n padding: 5px 0;\n border-top: 1px solid #d0d0d0;\n border-bottom: 1px solid #d0d0d0;\n}\n\n.llms-access-plan-trial,\n.llms-access-plan-schedule,\n.llms-access-plan-sale-end,\n.llms-access-plan-expiration {\n font-size: 15px;\n font-variant: small-caps;\n line-height: 1.2;\n}\n\n.llms-access-plan-description {\n font-size: 16px;\n padding: 10px 10px 0;\n}\n.llms-access-plan-description ul {\n margin: 0;\n}\n.llms-access-plan-description ul li {\n border-bottom: 1px solid #d0d0d0;\n list-style-type: none;\n}\n.llms-access-plan-description ul li:last-child {\n border-bottom: none;\n}\n.llms-access-plan-description div:last-child, .llms-access-plan-description img:last-child, .llms-access-plan-description p:last-child, .llms-access-plan-description ul:last-child, .llms-access-plan-description li:last-child {\n margin-bottom: 0;\n}\n\n.llms-access-plan-restrictions .stamp {\n vertical-align: baseline;\n}\n.llms-access-plan-restrictions ul {\n margin: 0;\n}\n.llms-access-plan-restrictions ul li {\n font-size: 12px;\n line-height: 14px;\n list-style-type: none;\n}\n.llms-access-plan-restrictions a {\n color: #f8954f;\n}\n.llms-access-plan-restrictions a:hover {\n color: #f67d28;\n}\n\n.llms-access-plan-footer {\n border-bottom: 3px solid #f1f1f1;\n padding: 10px;\n margin: 0 2px 2px 2px;\n}\n.llms-access-plan-footer .llms-access-plan-pricing {\n padding: 0 0 10px;\n}\n\n.webui-popover-content .llms-members-only-restrictions {\n text-align: center;\n}\n.webui-popover-content .llms-members-only-restrictions ul, .webui-popover-content .llms-members-only-restrictions ol, .webui-popover-content .llms-members-only-restrictions li, .webui-popover-content .llms-members-only-restrictions p {\n margin: 0;\n padding: 0;\n}\n.webui-popover-content .llms-members-only-restrictions ul, .webui-popover-content .llms-members-only-restrictions ol, .webui-popover-content .llms-members-only-restrictions li {\n list-style-type: none;\n}\n.webui-popover-content .llms-members-only-restrictions li {\n padding: 8px 0;\n border-top: 1px solid #3b3b3b;\n}\n.webui-popover-content .llms-members-only-restrictions li:first-child {\n border-top: none;\n}\n.webui-popover-content .llms-members-only-restrictions li a {\n display: block;\n}\n\n.llms-checkout-wrapper form.llms-login {\n border: 3px solid #2295ff;\n display: none;\n margin-bottom: 10px;\n}\n.llms-checkout-wrapper .llms-form-heading {\n background: #2295ff;\n color: #fff;\n margin: 0 0 5px;\n padding: 10px;\n}\n\n.llms-checkout {\n background: #fff;\n position: relative;\n}\n\n@media all and (min-width: 800px) {\n .llms-checkout-cols-2 .llms-checkout-col {\n float: left;\n }\n .llms-checkout-cols-2 .llms-checkout-col.llms-col-1 {\n margin-right: 5px;\n width: calc(58% - 5px);\n }\n .llms-checkout-cols-2 .llms-checkout-col.llms-col-2 {\n margin-left: 5px;\n width: calc(42% - 5px);\n }\n .llms-checkout-cols-2 .llms-checkout-col.llms-col-2 button {\n width: 100%;\n }\n}\n\n.llms-checkout-section {\n border: 3px solid #2295ff;\n margin-bottom: 10px;\n position: relative;\n}\n\n.llms-checkout-section-content {\n margin: 10px;\n}\n.llms-checkout-section-content.llms-form-fields {\n margin: 0px;\n}\n.llms-checkout-section-content .llms-label {\n font-weight: 400;\n font-variant: small-caps;\n text-transform: lowercase;\n}\n.llms-checkout-section-content .llms-order-summary {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-checkout-section-content .llms-order-summary li {\n list-style-type: none;\n}\n.llms-checkout-section-content .llms-order-summary li.llms-pricing.on-sale .price-regular, .llms-checkout-section-content .llms-order-summary li.llms-pricing.has-coupon .price-regular {\n text-decoration: line-through;\n}\n.llms-checkout-section-content .llms-coupon-wrapper {\n border-top: 1px solid #dadada;\n margin-top: 10px;\n padding-top: 10px;\n}\n.llms-checkout-section-content .llms-coupon-wrapper .llms-coupon-entry {\n display: none;\n margin-top: 10px;\n}\n\n.llms-form-field.llms-payment-gateway-option label + span.llms-description {\n display: inline-block;\n margin-left: 5px;\n}\n.llms-form-field.llms-payment-gateway-option .llms-description a {\n border: none;\n box-shadow: none;\n text-decoration: none;\n}\n.llms-form-field.llms-payment-gateway-option .llms-description img {\n display: inline;\n max-height: 22px;\n vertical-align: middle;\n}\n\n.llms-checkout-wrapper ul.llms-payment-gateways {\n margin: 5px 0 0;\n padding: 0;\n}\n\nul.llms-payment-gateways {\n list-style-type: none;\n}\nul.llms-payment-gateways li:last-child:after {\n border-bottom: 1px solid #dadada;\n content: \"\";\n display: block;\n margin: 10px;\n}\nul.llms-payment-gateways .llms-payment-gateway {\n margin-bottom: 5px;\n list-style-type: none;\n}\nul.llms-payment-gateways .llms-payment-gateway:last-child {\n margin-bottom: none;\n}\nul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-payment-gateway-option label {\n font-weight: 700;\n}\nul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields {\n display: block;\n}\nul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields .llms-notice {\n margin-left: 10px;\n margin-right: 10px;\n}\nul.llms-payment-gateways .llms-payment-gateway .llms-form-field {\n padding-bottom: 0;\n}\nul.llms-payment-gateways .llms-gateway-description {\n margin-left: 40px;\n}\nul.llms-payment-gateways .llms-gateway-fields {\n display: none;\n margin: 5px 0 20px;\n}\nul.llms-payment-gateways .llms-payment-gateway-error {\n padding: 0 10px;\n}\n\n.llms-checkout-confirm {\n margin: 0 10px;\n}\n\n.llms-payment-method {\n margin: 10px 10px 0;\n}\n\n.llms-gateway-description p {\n font-size: 85%;\n font-style: italic;\n margin-bottom: 0;\n}\n\n.llms-form-fields {\n box-sizing: border-box;\n}\n.llms-form-fields * {\n box-sizing: border-box;\n}\n.llms-form-fields.flush .llms-form-field {\n padding: 0 0 10px;\n}\n.llms-form-fields .wp-block-columns, .llms-form-fields .wp-block-column {\n margin-bottom: 0;\n}\n\n.llms-form-heading {\n padding: 0 10px 10px;\n}\n\n.llms-form-field {\n float: left;\n padding: 0 10px 10px;\n position: relative;\n width: 100%;\n}\n.llms-form-field label:empty:after {\n content: \" \";\n}\n.llms-form-field.valid input[type=date], .llms-form-field.valid input[type=time], .llms-form-field.valid input[type=datetime-local], .llms-form-field.valid input[type=week], .llms-form-field.valid input[type=month], .llms-form-field.valid input[type=text], .llms-form-field.valid input[type=email], .llms-form-field.valid input[type=url], .llms-form-field.valid input[type=password], .llms-form-field.valid input[type=search], .llms-form-field.valid input[type=tel], .llms-form-field.valid input[type=number], .llms-form-field.valid textarea, .llms-form-field.valid select {\n background: rgba(131, 195, 115, 0.3);\n border-color: #83c373;\n}\n.llms-form-field.error input[type=date], .llms-form-field.error input[type=time], .llms-form-field.error input[type=datetime-local], .llms-form-field.error input[type=week], .llms-form-field.error input[type=month], .llms-form-field.error input[type=text], .llms-form-field.error input[type=email], .llms-form-field.error input[type=url], .llms-form-field.error input[type=password], .llms-form-field.error input[type=search], .llms-form-field.error input[type=tel], .llms-form-field.error input[type=number], .llms-form-field.error textarea, .llms-form-field.error select, .llms-form-field.invalid input[type=date], .llms-form-field.invalid input[type=time], .llms-form-field.invalid input[type=datetime-local], .llms-form-field.invalid input[type=week], .llms-form-field.invalid input[type=month], .llms-form-field.invalid input[type=text], .llms-form-field.invalid input[type=email], .llms-form-field.invalid input[type=url], .llms-form-field.invalid input[type=password], .llms-form-field.invalid input[type=search], .llms-form-field.invalid input[type=tel], .llms-form-field.invalid input[type=number], .llms-form-field.invalid textarea, .llms-form-field.invalid select {\n background: rgba(229, 85, 78, 0.3);\n border-color: #e5554e;\n}\n.llms-form-field.llms-visually-hidden-field {\n display: none;\n}\n.llms-form-field.align-right {\n text-align: right;\n}\n@media screen and (min-width: 600px) {\n .llms-form-field.llms-cols-1 {\n width: 8.3333333333%;\n }\n .llms-form-field.llms-cols-2 {\n width: 16.6666666667%;\n }\n .llms-form-field.llms-cols-3 {\n width: 25%;\n }\n .llms-form-field.llms-cols-4 {\n width: 33.3333333333%;\n }\n .llms-form-field.llms-cols-5 {\n width: 41.6666666667%;\n }\n .llms-form-field.llms-cols-6 {\n width: 50%;\n }\n .llms-form-field.llms-cols-7 {\n width: 58.3333333333%;\n }\n .llms-form-field.llms-cols-8 {\n width: 66.6666666667%;\n }\n .llms-form-field.llms-cols-9 {\n width: 75%;\n }\n .llms-form-field.llms-cols-10 {\n width: 83.3333333333%;\n }\n .llms-form-field.llms-cols-11 {\n width: 91.6666666667%;\n }\n .llms-form-field.llms-cols-12 {\n width: 100%;\n }\n}\n.llms-form-field.type-hidden {\n padding: 0;\n}\n.llms-form-field.type-radio input,\n.llms-form-field.type-radio label, .llms-form-field.type-checkbox input,\n.llms-form-field.type-checkbox label {\n display: inline-block;\n width: auto;\n}\n.llms-form-field.type-radio input, .llms-form-field.type-checkbox input {\n margin-right: 5px;\n}\n.llms-form-field.type-radio label + .llms-description, .llms-form-field.type-checkbox label + .llms-description {\n display: block;\n}\n.llms-form-field.type-radio:not(.is-group) input[type=radio] {\n position: absolute;\n opacity: 0;\n visibility: none;\n}\n.llms-form-field.type-radio:not(.is-group) label:before {\n background: #fafafa;\n background-position: -24px 0;\n background-repeat: no-repeat;\n border-radius: 50%;\n box-shadow: rgba(255, 255, 255, 0.15) 0 1px 1px, inset rgba(0, 0, 0, 0.35) 0 0 0 1px;\n content: \"\";\n cursor: pointer;\n display: inline-block;\n height: 22px;\n margin-right: 5px;\n position: relative;\n transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n top: -3px;\n vertical-align: middle;\n width: 22px;\n z-index: 2;\n}\n.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked + label:before {\n transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n background-position: 0 0;\n background-image: radial-gradient(ellipse at center, #2295ff 0%, #2295ff 40%, #fafafa 45%);\n}\n.llms-form-field .llms-input-group {\n margin-top: 5px;\n}\n.llms-form-field .llms-input-group .llms-form-field {\n padding: 0 0 5px 5px;\n}\n.llms-form-field.type-reset button:not(.auto), .llms-form-field.type-button button:not(.auto), .llms-form-field.type-submit button:not(.auto) {\n width: 100%;\n}\n.llms-form-field .llms-description {\n font-size: 14px;\n font-style: italic;\n}\n.llms-form-field .llms-required {\n color: #e5554e;\n margin-left: 4px;\n}\n.llms-form-field input, .llms-form-field textarea, .llms-form-field select {\n width: 100%;\n margin-bottom: 5px;\n}\n.llms-form-field .select2-container .select2-selection--single {\n height: auto;\n padding: 4px 6px;\n}\n.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow {\n height: 100%;\n}\n\n.llms-password-strength-meter {\n border: 1px solid #dadada;\n display: none;\n font-size: 10px;\n margin-top: -10px;\n padding: 1px;\n position: relative;\n text-align: center;\n}\n.llms-password-strength-meter:before {\n bottom: 0;\n content: \"\";\n left: 0;\n position: absolute;\n top: 0;\n transition: width 0.4s ease;\n}\n.llms-password-strength-meter.mismatch, .llms-password-strength-meter.too-short, .llms-password-strength-meter.very-weak {\n border-color: #e35b5b;\n}\n.llms-password-strength-meter.mismatch:before, .llms-password-strength-meter.too-short:before, .llms-password-strength-meter.very-weak:before {\n background: rgba(227, 91, 91, 0.25);\n width: 25%;\n}\n.llms-password-strength-meter.too-short:before {\n width: 0;\n}\n.llms-password-strength-meter.weak {\n border-color: #f78b53;\n}\n.llms-password-strength-meter.weak:before {\n background: rgba(247, 139, 83, 0.25);\n width: 50%;\n}\n.llms-password-strength-meter.medium {\n border-color: #ffc733;\n}\n.llms-password-strength-meter.medium:before {\n background: rgba(255, 199, 51, 0.25);\n width: 75%;\n}\n.llms-password-strength-meter.strong {\n border-color: #83c373;\n}\n.llms-password-strength-meter.strong:before {\n background: rgba(131, 195, 115, 0.25);\n width: 100%;\n}\n\n.llms-widget-syllabus--collapsible .llms-section .section-header {\n cursor: pointer;\n}\n.llms-widget-syllabus--collapsible .llms-section.llms-section--opened .llms-collapse-caret .fa-caret-right {\n display: none;\n}\n.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-collapse-caret .fa-caret-down {\n display: none;\n}\n.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-lesson {\n display: none;\n}\n.llms-widget-syllabus--collapsible .llms-syllabus-footer {\n text-align: left;\n}\n\n.llms-student-dashboard {\n /**\n * Dashboard Home\n */\n}\n.llms-student-dashboard .llms-sd-title {\n margin: 25px 0;\n}\n.llms-student-dashboard .llms-sd-items {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-student-dashboard .llms-sd-item {\n float: left;\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-student-dashboard .llms-sd-item:last-child .llms-sep {\n display: none;\n}\n.llms-student-dashboard .llms-sd-item .llms-sep {\n color: #333;\n margin: 0 5px;\n}\n.llms-student-dashboard .llms-sd-section {\n margin-bottom: 25px;\n}\n.llms-student-dashboard .llms-sd-section .llms-sd-section-footer {\n margin-top: 10px;\n}\n.llms-student-dashboard .orders-table {\n border: 1px solid #f5f5f5;\n width: 100%;\n}\n.llms-student-dashboard .orders-table thead {\n display: none;\n}\n.llms-student-dashboard .orders-table thead th, .llms-student-dashboard .orders-table thead td {\n font-weight: 700;\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .orders-table thead {\n display: table-header-group;\n }\n}\n.llms-student-dashboard .orders-table tbody tr:nth-child(even) td, .llms-student-dashboard .orders-table tbody tr:nth-child(even) th {\n background: #f9f9f9;\n}\n.llms-student-dashboard .orders-table tfoot th, .llms-student-dashboard .orders-table tfoot td {\n padding: 10px;\n text-align: right;\n}\n.llms-student-dashboard .orders-table tfoot th:last-child, .llms-student-dashboard .orders-table tfoot td:last-child {\n border-bottom-width: 0;\n}\n.llms-student-dashboard .orders-table th {\n font-weight: 700;\n}\n.llms-student-dashboard .orders-table th, .llms-student-dashboard .orders-table td {\n border-color: #efefef;\n border-style: solid;\n border-width: 0;\n display: block;\n padding: 8px 12px;\n text-align: center;\n}\n.llms-student-dashboard .orders-table th .llms-button-primary, .llms-student-dashboard .orders-table td .llms-button-primary {\n display: inline-block;\n}\n.llms-student-dashboard .orders-table th:last-child, .llms-student-dashboard .orders-table td:last-child {\n border-bottom-width: 1px;\n}\n.llms-student-dashboard .orders-table th:before, .llms-student-dashboard .orders-table td:before {\n content: attr(data-label);\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .orders-table th, .llms-student-dashboard .orders-table td {\n border-bottom-width: 1px;\n display: table-cell;\n text-align: left;\n }\n .llms-student-dashboard .orders-table th:first-child, .llms-student-dashboard .orders-table td:first-child {\n width: 220px;\n }\n .llms-student-dashboard .orders-table th:before, .llms-student-dashboard .orders-table td:before {\n display: none;\n }\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .orders-table.transactions th:first-child {\n width: auto;\n }\n}\n.llms-student-dashboard .llms-status {\n border-radius: 3px;\n border-bottom: 1px solid #fff;\n display: inline-block;\n font-size: 80%;\n padding: 3px 6px;\n vertical-align: middle;\n}\n.llms-student-dashboard .llms-status.llms-size--large {\n font-size: 105%;\n padding: 6px 12px;\n}\n.llms-student-dashboard .llms-status.llms-active, .llms-student-dashboard .llms-status.llms-completed, .llms-student-dashboard .llms-status.llms-pass, .llms-student-dashboard .llms-status.llms-txn-succeeded {\n color: #1f3818;\n background-color: #83c373;\n}\n.llms-student-dashboard .llms-status.llms-fail, .llms-student-dashboard .llms-status.llms-failed, .llms-student-dashboard .llms-status.llms-expired, .llms-student-dashboard .llms-status.llms-cancelled, .llms-student-dashboard .llms-status.llms-txn-failed {\n color: #5a110d;\n background-color: #e5554e;\n}\n.llms-student-dashboard .llms-status.llms-incomplete, .llms-student-dashboard .llms-status.llms-on-hold, .llms-student-dashboard .llms-status.llms-pending, .llms-student-dashboard .llms-status.llms-pending-cancel, .llms-student-dashboard .llms-status.llms-refunded, .llms-student-dashboard .llms-status.llms-txn-pending, .llms-student-dashboard .llms-status.llms-txn-refunded {\n color: #664200;\n background-color: orange;\n}\n.llms-student-dashboard .llms-person-form-wrapper .llms-change-password {\n display: none;\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .order-primary {\n float: left;\n width: 68%;\n }\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .order-secondary {\n float: left;\n width: 32%;\n }\n}\n.llms-student-dashboard .order-secondary form {\n margin-bottom: 0;\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .llms-view-order.llms-stack-cols .order-primary,\n.llms-student-dashboard .llms-view-order.llms-stack-cols .order-secondary {\n float: none;\n width: 100%;\n }\n}\n.llms-student-dashboard .llms-switch-payment-source .llms-notice,\n.llms-student-dashboard .llms-switch-payment-source .entry-content .llms-notice {\n margin-left: 10px;\n margin-right: 10px;\n}\n.llms-student-dashboard .llms-switch-payment-source-main {\n border: none;\n display: none;\n margin: 0;\n}\n.llms-student-dashboard .llms-switch-payment-source-main ul.llms-payment-gateways {\n padding: 10px 15px 0;\n margin: 0;\n}\n.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method,\n.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary {\n padding: 0 25px 10px;\n margin: 0;\n list-style-type: none;\n}\n.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method li,\n.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary li {\n list-style-type: none;\n}\n.llms-student-dashboard .llms-loop-list {\n margin: 0 -10px;\n}\n\n.llms-sd-grades .llms-table .llms-progress {\n display: block;\n margin: 0;\n}\n.llms-sd-grades .llms-table .llms-progress .llms-progress-bar {\n top: 0;\n height: 1.4em;\n}\n.llms-sd-grades .llms-table .llms-progress .progress__indicator {\n font-size: 1em;\n position: relative;\n right: 0.4em;\n top: 0.2em;\n z-index: 1;\n}\n\n.llms-table.llms-single-course-grades tbody tr:first-child td, .llms-table.llms-single-course-grades tbody tr:first-child th {\n background-color: #eaeaea;\n}\n.llms-table.llms-single-course-grades th {\n font-weight: 400;\n}\n.llms-table.llms-single-course-grades td .llms-donut {\n display: inline-block;\n vertical-align: middle;\n}\n.llms-table.llms-single-course-grades td .llms-status {\n margin-right: 4px;\n}\n.llms-table.llms-single-course-grades td .llms-donut + .llms-status {\n margin-left: 4px;\n}\n.llms-table.llms-single-course-grades th.llms-section_title {\n font-size: 110%;\n font-weight: 700;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title {\n padding-left: 36px;\n max-width: 40%;\n}\n.llms-table.llms-single-course-grades td.llms-associated_quiz .llms-donut {\n display: inline-block;\n margin-right: 5px;\n vertical-align: middle;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href=\"#\"] {\n pointer-events: none;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href^=\"#\"] {\n color: inherit;\n position: relative;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href^=\"#\"] .llms-tooltip {\n max-width: 380px;\n width: 380px;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href^=\"#\"] .llms-tooltip.show {\n top: -54px;\n}\n\n.llms-sd-widgets {\n display: flex;\n}\n.llms-sd-widgets .llms-sd-widget {\n background: #f9f9f9;\n flex: 1;\n margin: 10px 10px 20px;\n padding: 0 0 20px;\n}\n.llms-sd-widgets .llms-sd-widget:first-child {\n margin-left: 0;\n}\n.llms-sd-widgets .llms-sd-widget:last-child {\n margin-right: 0;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-widget-title {\n background: #2295ff;\n color: #fff;\n font-size: 18px;\n line-height: 1;\n margin: 0 0 20px;\n padding: 10px;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-widget-empty {\n font-size: 14px;\n font-style: italic;\n opacity: 0.5;\n text-align: center;\n}\n.llms-sd-widgets .llms-sd-widget .llms-donut {\n margin: 0 auto;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date {\n opacity: 0.8;\n text-align: center;\n font-size: 22px;\n line-height: 1.1;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date span {\n display: block;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date span.day {\n font-size: 52px;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date span.diff {\n font-size: 12px;\n font-style: italic;\n margin-top: 8px;\n opacity: 0.75;\n}\n.llms-sd-widgets .llms-sd-widget .llms-achievement {\n background: transparent;\n margin: 0 auto;\n max-width: 120px;\n}\n.llms-sd-widgets .llms-sd-widget .llms-achievement .llms-achievement-title {\n display: none;\n}\n\n.llms-sd-pagination {\n margin-top: 24px;\n}\n.llms-sd-pagination:before, .llms-sd-pagination:after {\n content: \" \";\n display: table;\n}\n.llms-sd-pagination:after {\n clear: both;\n}\n.llms-sd-pagination .llms-button-secondary {\n display: inline-block;\n}\n.llms-sd-pagination .llms-button-secondary.prev {\n float: left;\n}\n.llms-sd-pagination .llms-button-secondary.next {\n float: right;\n}\n\n.llms-sd-notification-center .llms-notification {\n z-index: 1;\n}\n\n.llms-table {\n border: 1px solid #efefef;\n width: 100%;\n}\n.llms-table thead th, .llms-table thead td {\n font-weight: 700;\n}\n.llms-table tbody tr:nth-child(odd) td, .llms-table tbody tr:nth-child(odd) th {\n background: #f9f9f9;\n}\n.llms-table tbody tr:last-child {\n border-bottom-width: 0;\n}\n.llms-table tfoot tr {\n background: #f9f9f9;\n}\n.llms-table tfoot tr .llms-pagination .page-numbers {\n margin: 0;\n}\n.llms-table tfoot tr .llms-table-sort {\n text-align: right;\n}\n.llms-table tfoot tr .llms-table-sort form, .llms-table tfoot tr .llms-table-sort select, .llms-table tfoot tr .llms-table-sort input, .llms-table tfoot tr .llms-table-sort button {\n margin: 0;\n}\n.llms-table th {\n font-weight: 700;\n}\n.llms-table th, .llms-table td {\n border-bottom: 1px solid #efefef;\n padding: 8px 12px;\n}\n.llms-table th:first-child, .llms-table td:first-child {\n padding-left: 12px;\n}\n.llms-table th:last-child, .llms-table td:last-child {\n padding-right: 12px;\n}\n\n#page .llms-table tfoot label {\n display: inline;\n}\n\n#page .llms-table tfoot select {\n height: auto;\n}\n\n/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: \"FontAwesome\";\n src: url(\"../fonts/fontawesome-webfont.eot?v=4.7.0\");\n src: url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0\") format(\"embedded-opentype\"), url(\"../fonts/fontawesome-webfont.woff2?v=4.7.0\") format(\"woff2\"), url(\"../fonts/fontawesome-webfont.woff?v=4.7.0\") format(\"woff\"), url(\"../fonts/fontawesome-webfont.ttf?v=4.7.0\") format(\"truetype\"), url(\"../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular\") format(\"svg\");\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n\n.fa-border {\n padding: 0.2em 0.25em 0.15em;\n border: solid 0.08em #eeeeee;\n border-radius: 0.1em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left {\n margin-right: 0.3em;\n}\n\n.fa.fa-pull-right {\n margin-left: 0.3em;\n}\n\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n\n.pull-left {\n float: left;\n}\n\n.fa.pull-left {\n margin-right: 0.3em;\n}\n\n.fa.pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none;\n}\n\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n\n.fa-stack-1x {\n line-height: inherit;\n}\n\n.fa-stack-2x {\n font-size: 2em;\n}\n\n.fa-inverse {\n color: #ffffff;\n}\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n\n.fa-music:before {\n content: \"\\f001\";\n}\n\n.fa-search:before {\n content: \"\\f002\";\n}\n\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n\n.fa-heart:before {\n content: \"\\f004\";\n}\n\n.fa-star:before {\n content: \"\\f005\";\n}\n\n.fa-star-o:before {\n content: \"\\f006\";\n}\n\n.fa-user:before {\n content: \"\\f007\";\n}\n\n.fa-film:before {\n content: \"\\f008\";\n}\n\n.fa-th-large:before {\n content: \"\\f009\";\n}\n\n.fa-th:before {\n content: \"\\f00a\";\n}\n\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n\n.fa-check:before {\n content: \"\\f00c\";\n}\n\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n\n.fa-power-off:before {\n content: \"\\f011\";\n}\n\n.fa-signal:before {\n content: \"\\f012\";\n}\n\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n\n.fa-home:before {\n content: \"\\f015\";\n}\n\n.fa-file-o:before {\n content: \"\\f016\";\n}\n\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n\n.fa-road:before {\n content: \"\\f018\";\n}\n\n.fa-download:before {\n content: \"\\f019\";\n}\n\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n\n.fa-refresh:before {\n content: \"\\f021\";\n}\n\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n\n.fa-lock:before {\n content: \"\\f023\";\n}\n\n.fa-flag:before {\n content: \"\\f024\";\n}\n\n.fa-headphones:before {\n content: \"\\f025\";\n}\n\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n\n.fa-tag:before {\n content: \"\\f02b\";\n}\n\n.fa-tags:before {\n content: \"\\f02c\";\n}\n\n.fa-book:before {\n content: \"\\f02d\";\n}\n\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n\n.fa-print:before {\n content: \"\\f02f\";\n}\n\n.fa-camera:before {\n content: \"\\f030\";\n}\n\n.fa-font:before {\n content: \"\\f031\";\n}\n\n.fa-bold:before {\n content: \"\\f032\";\n}\n\n.fa-italic:before {\n content: \"\\f033\";\n}\n\n.fa-text-height:before {\n content: \"\\f034\";\n}\n\n.fa-text-width:before {\n content: \"\\f035\";\n}\n\n.fa-align-left:before {\n content: \"\\f036\";\n}\n\n.fa-align-center:before {\n content: \"\\f037\";\n}\n\n.fa-align-right:before {\n content: \"\\f038\";\n}\n\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n\n.fa-list:before {\n content: \"\\f03a\";\n}\n\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n\n.fa-indent:before {\n content: \"\\f03c\";\n}\n\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n\n.fa-pencil:before {\n content: \"\\f040\";\n}\n\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n\n.fa-adjust:before {\n content: \"\\f042\";\n}\n\n.fa-tint:before {\n content: \"\\f043\";\n}\n\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n\n.fa-arrows:before {\n content: \"\\f047\";\n}\n\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n\n.fa-backward:before {\n content: \"\\f04a\";\n}\n\n.fa-play:before {\n content: \"\\f04b\";\n}\n\n.fa-pause:before {\n content: \"\\f04c\";\n}\n\n.fa-stop:before {\n content: \"\\f04d\";\n}\n\n.fa-forward:before {\n content: \"\\f04e\";\n}\n\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n\n.fa-eject:before {\n content: \"\\f052\";\n}\n\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n\n.fa-ban:before {\n content: \"\\f05e\";\n}\n\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n\n.fa-expand:before {\n content: \"\\f065\";\n}\n\n.fa-compress:before {\n content: \"\\f066\";\n}\n\n.fa-plus:before {\n content: \"\\f067\";\n}\n\n.fa-minus:before {\n content: \"\\f068\";\n}\n\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n\n.fa-gift:before {\n content: \"\\f06b\";\n}\n\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n\n.fa-fire:before {\n content: \"\\f06d\";\n}\n\n.fa-eye:before {\n content: \"\\f06e\";\n}\n\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n\n.fa-plane:before {\n content: \"\\f072\";\n}\n\n.fa-calendar:before {\n content: \"\\f073\";\n}\n\n.fa-random:before {\n content: \"\\f074\";\n}\n\n.fa-comment:before {\n content: \"\\f075\";\n}\n\n.fa-magnet:before {\n content: \"\\f076\";\n}\n\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n\n.fa-retweet:before {\n content: \"\\f079\";\n}\n\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n\n.fa-folder:before {\n content: \"\\f07b\";\n}\n\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n\n.fa-key:before {\n content: \"\\f084\";\n}\n\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n\n.fa-comments:before {\n content: \"\\f086\";\n}\n\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n\n.fa-star-half:before {\n content: \"\\f089\";\n}\n\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n\n.fa-trophy:before {\n content: \"\\f091\";\n}\n\n.fa-github-square:before {\n content: \"\\f092\";\n}\n\n.fa-upload:before {\n content: \"\\f093\";\n}\n\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n\n.fa-phone:before {\n content: \"\\f095\";\n}\n\n.fa-square-o:before {\n content: \"\\f096\";\n}\n\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n\n.fa-twitter:before {\n content: \"\\f099\";\n}\n\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n\n.fa-github:before {\n content: \"\\f09b\";\n}\n\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n\n.fa-square:before {\n content: \"\\f0c8\";\n}\n\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n\n.fa-table:before {\n content: \"\\f0ce\";\n}\n\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n\n.fa-money:before {\n content: \"\\f0d6\";\n}\n\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n\n.fa-columns:before {\n content: \"\\f0db\";\n}\n\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n\n.fa-desktop:before {\n content: \"\\f108\";\n}\n\n.fa-laptop:before {\n content: \"\\f109\";\n}\n\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n\n.fa-spinner:before {\n content: \"\\f110\";\n}\n\n.fa-circle:before {\n content: \"\\f111\";\n}\n\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n\n.fa-terminal:before {\n content: \"\\f120\";\n}\n\n.fa-code:before {\n content: \"\\f121\";\n}\n\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n\n.fa-crop:before {\n content: \"\\f125\";\n}\n\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n\n.fa-question:before {\n content: \"\\f128\";\n}\n\n.fa-info:before {\n content: \"\\f129\";\n}\n\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n\n.fa-microphone:before {\n content: \"\\f130\";\n}\n\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n\n.fa-shield:before {\n content: \"\\f132\";\n}\n\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n\n.fa-rocket:before {\n content: \"\\f135\";\n}\n\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n\n.fa-html5:before {\n content: \"\\f13b\";\n}\n\n.fa-css3:before {\n content: \"\\f13c\";\n}\n\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n\n.fa-ticket:before {\n content: \"\\f145\";\n}\n\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n\n.fa-level-up:before {\n content: \"\\f148\";\n}\n\n.fa-level-down:before {\n content: \"\\f149\";\n}\n\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n\n.fa-compass:before {\n content: \"\\f14e\";\n}\n\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n\n.fa-gbp:before {\n content: \"\\f154\";\n}\n\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n\n.fa-file:before {\n content: \"\\f15b\";\n}\n\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n\n.fa-youtube:before {\n content: \"\\f167\";\n}\n\n.fa-xing:before {\n content: \"\\f168\";\n}\n\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n\n.fa-adn:before {\n content: \"\\f170\";\n}\n\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n\n.fa-apple:before {\n content: \"\\f179\";\n}\n\n.fa-windows:before {\n content: \"\\f17a\";\n}\n\n.fa-android:before {\n content: \"\\f17b\";\n}\n\n.fa-linux:before {\n content: \"\\f17c\";\n}\n\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n\n.fa-skype:before {\n content: \"\\f17e\";\n}\n\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n\n.fa-trello:before {\n content: \"\\f181\";\n}\n\n.fa-female:before {\n content: \"\\f182\";\n}\n\n.fa-male:before {\n content: \"\\f183\";\n}\n\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n\n.fa-archive:before {\n content: \"\\f187\";\n}\n\n.fa-bug:before {\n content: \"\\f188\";\n}\n\n.fa-vk:before {\n content: \"\\f189\";\n}\n\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n\n.fa-renren:before {\n content: \"\\f18b\";\n}\n\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n\n.fa-slack:before {\n content: \"\\f198\";\n}\n\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n\n.fa-openid:before {\n content: \"\\f19b\";\n}\n\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n\n.fa-google:before {\n content: \"\\f1a0\";\n}\n\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n\n.fa-language:before {\n content: \"\\f1ab\";\n}\n\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n\n.fa-building:before {\n content: \"\\f1ad\";\n}\n\n.fa-child:before {\n content: \"\\f1ae\";\n}\n\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n\n.fa-database:before {\n content: \"\\f1c0\";\n}\n\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n\n.fa-git:before {\n content: \"\\f1d3\";\n}\n\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n\n.fa-history:before {\n content: \"\\f1da\";\n}\n\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n\n.fa-header:before {\n content: \"\\f1dc\";\n}\n\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n\n.fa-at:before {\n content: \"\\f1fa\";\n}\n\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n\n.fa-bus:before {\n content: \"\\f207\";\n}\n\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n\n.fa-angellist:before {\n content: \"\\f209\";\n}\n\n.fa-cc:before {\n content: \"\\f20a\";\n}\n\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n\n.fa-diamond:before {\n content: \"\\f219\";\n}\n\n.fa-ship:before {\n content: \"\\f21a\";\n}\n\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n\n.fa-venus:before {\n content: \"\\f221\";\n}\n\n.fa-mars:before {\n content: \"\\f222\";\n}\n\n.fa-mercury:before {\n content: \"\\f223\";\n}\n\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n\n.fa-server:before {\n content: \"\\f233\";\n}\n\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n\n.fa-user-times:before {\n content: \"\\f235\";\n}\n\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n\n.fa-train:before {\n content: \"\\f238\";\n}\n\n.fa-subway:before {\n content: \"\\f239\";\n}\n\n.fa-medium:before {\n content: \"\\f23a\";\n}\n\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n\n.fa-object-group:before {\n content: \"\\f247\";\n}\n\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n\n.fa-clone:before {\n content: \"\\f24d\";\n}\n\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n\n.fa-registered:before {\n content: \"\\f25d\";\n}\n\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n\n.fa-gg:before {\n content: \"\\f260\";\n}\n\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n\n.fa-safari:before {\n content: \"\\f267\";\n}\n\n.fa-chrome:before {\n content: \"\\f268\";\n}\n\n.fa-firefox:before {\n content: \"\\f269\";\n}\n\n.fa-opera:before {\n content: \"\\f26a\";\n}\n\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n\n.fa-contao:before {\n content: \"\\f26d\";\n}\n\n.fa-500px:before {\n content: \"\\f26e\";\n}\n\n.fa-amazon:before {\n content: \"\\f270\";\n}\n\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n\n.fa-industry:before {\n content: \"\\f275\";\n}\n\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n\n.fa-map-o:before {\n content: \"\\f278\";\n}\n\n.fa-map:before {\n content: \"\\f279\";\n}\n\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n\n.fa-edge:before {\n content: \"\\f282\";\n}\n\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n\n.fa-modx:before {\n content: \"\\f285\";\n}\n\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n\n.fa-usb:before {\n content: \"\\f287\";\n}\n\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n\n.fa-percent:before {\n content: \"\\f295\";\n}\n\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n\n.fa-envira:before {\n content: \"\\f299\";\n}\n\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n\n.fa-blind:before {\n content: \"\\f29d\";\n}\n\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n\n.llms-spinning {\n background: rgba(250, 250, 250, 0.7);\n bottom: 0;\n display: none;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.llms-spinner {\n animation: llms-spinning 1.5s linear infinite;\n box-sizing: border-box;\n border: 4px solid #313131;\n border-radius: 50%;\n height: 40px;\n left: 50%;\n margin-left: -20px;\n margin-top: -20px;\n position: absolute;\n top: 50%;\n width: 40px;\n}\n.llms-spinner.small {\n border-width: 2px;\n height: 20px;\n margin-left: -10px;\n margin-top: -10px;\n width: 20px;\n}\n\n@keyframes llms-spinning {\n 0% {\n transform: rotate(0deg);\n }\n 50% {\n border-radius: 5%;\n }\n 100% {\n transform: rotate(220deg);\n }\n}","%cf,\n%clearfix {\n\t&:before,\n\t&:after {\n\t content: \" \";\n\t display: table;\n\t}\n\n\t&:after {\n \tclear: both;\n\t}\n}\n\n\n\n%llms-element {\n\tbackground: $el-background;\n\tbox-shadow: $el-box-shadow;\n\tdisplay: block;\n\tcolor: #212121;\n\tmin-height: 85px;\n\tpadding: 15px;\n\ttext-decoration: none;\n\tposition: relative;\n\ttransition: background .4s ease;\n\n\t&:hover {\n\t\tbackground: $el-background-hover;\n\t}\n}\n","//\n// Floated columns.\n//\n// Utilized prior to the introduction of `.llms-flex-cols`. Prefer\n// usage of flex cols for new code where possible.\n//\n.llms-cols {\n\t@extend %clearfix;\n\n\t.llms-col { width: 100%; }\n\n\t@media all and (min-width: 600px) {\n\t\t[class*=\"llms-col-\"] {\n\t\t\tfloat: left;\n\t\t}\n\t}\n\n}\n\n//\n// Flex-box columns.\n//\n// Preferred over floated `.llms-cols` wherever possible.\n//\n.llms-flex-cols {\n\tdisplay: flex;\n\tflex-flow: row wrap;\n\n\t[class*=\"llms-col\"] {\n\t\tflex: 0 1 auto;\n\t\twidth: 100%;\n\t}\n}\n\n@media all and (min-width: 600px) {\n\t.llms-cols, .llms-flex-cols {\n\t\t$cols: 1;\n\t\t@while $cols <= 12 {\n\t\t\t.llms-col-#{$cols} {\n\t\t\t\twidth: calc( 100% / $cols );\n\t\t\t}\n\t\t\t$cols: $cols + 1;\n\t\t}\n\t}\n}\n\n",".llms-button-action,\n.llms-button-danger,\n.llms-button-primary,\n.llms-button-secondary {\n\tborder:none;\n\tborder-radius: 0;\n\tcolor: $color-white;\n\tcursor: pointer;\n\tfont-size: 16px;\n\tfont-weight: 300;\n\ttext-decoration: none;\n\ttext-shadow: none;\n\tline-height: 1;\n\tmargin: 0;\n\tmax-width: 100%;\n\tpadding: 12px 24px;\n\tposition: relative;\n\ttransition: all .5s ease;\n\n\t&:disabled {\n\t\topacity: 0.5;\n\t}\n\t&:hover, &:active {\n\t\tcolor: $color-white;\n\t}\n\t&:focus {\n\t\tcolor: $color-white;\n\t}\n\n\t&.auto {\n\t\twidth: auto;\n\t}\n\n\t&.full {\n\t\tdisplay: block;\n\t\ttext-align: center;\n\t\twidth: 100%;\n\t}\n\n\t&.square {\n\t\tpadding: 12px;\n\t}\n\n\t&.small {\n\t\tfont-size: 13px;\n\t\tpadding: 8px 14px;\n\t\t&.square { padding: 8px; }\n\t}\n\n\t&.large {\n\t\tfont-size: 18px;\n\t\tline-height: 1.2;\n\t\tpadding: 16px 32px;\n\t\t&.square { padding: 16px; }\n\t\t.fa {\n\t\t\tleft: -7px;\n\t\t\tposition: relative;\n\t\t}\n\t}\n\n\n}\n\n.llms-button-primary {\n\tbackground: $color-brand-blue;\n\t&:hover,\n\t&.clicked {\n\t\tbackground: $color-brand-blue-dark;\n\t}\n\t&:focus,\n\t&:active {\n\t\tbackground: $color-brand-blue-light;\n\t}\n}\n\n.llms-button-secondary {\n\tbackground: #e1e1e1;\n\tcolor: #414141;\n\t&:hover {\n\t\tcolor: #414141;\n\t\tbackground: darken( #e1e1e1, 8 );\n\t}\n\t&:focus,\n\t&:active {\n\t\tcolor: #414141;\n\t\tbackground: lighten( #e1e1e1, 4 );\n\t}\n}\n\n.llms-button-action {\n\tbackground: $color-brand-orange;\n\t&:hover,\n\t&.clicked {\n\t\tbackground: $color-brand-orange-dark;\n\t}\n\t&:focus,\n\t&:active {\n\t\tbackground: $color-brand-orange-light;\n\t}\n}\n\n.llms-button-danger {\n\tbackground: $color-danger;\n\t&:hover {\n\t\tbackground: darken( $color-danger, 8 );\n\t}\n\t&:focus,\n\t&:active {\n\t\tbackground: lighten( $color-danger, 4 );\n\t}\n}\n","// ----- LifterLMS Brand Colors ----- \\\\\n$color-brand-dark-blue: #243c56;\n\n$color-brand-blue: #2295ff;\n$color-brand-blue-dark: darken( $color-brand-blue, 12 ); // #0077e4\n$color-brand-blue-light: lighten( $color-brand-blue, 8 );\n\n$color-brand-orange: #f8954f;\n$color-brand-orange-dark: #f67d28;\n$color-brand-orange-light: lighten( $color-brand-orange, 8 );\n\n$color-brand-aqua: #17bebb;\n\n$color-brand-pink: #ef476f;\n\n\n\n// ----- name our versions of common colors ----- \\\\\n$color-black: #010101;\n$color-green: #83c373;\n$color-blue: $color-brand-blue;\n$color-red: #e5554e;\n$color-white: #fefefe;\n$color-aqua: #35bbaa;\n$color-purple: #845ef7;\n$color-orange: #ff922b;\n\n$color-red-hover: darken($color-red,5);\n\n\n// ----- state / action names ----- \\\\\n$color-success: $color-green;\n$color-danger: $color-red;\n\n\n\n\n\n\n\n\n$color-lightgrey:\t\t#ccc;\n$color-grey: \t\t\t#999;\n$color-darkgrey:\t\t#666;\n$color-cinder:\t\t\t#444;\n$color-lightblue:\t\t#33b1cb;\n$color-darkblue:\t\t#0185a3;\n\n\n\n\n\n\n\n\n\n\n\n\n$color-border: #efefef;\n\n$el-box-shadow: 0 1px 2px 0 rgba($color-black,0.4);\n$el-background: #f1f1f1;\n$el-background-hover: #eaeaea;\n\n$break-xsmall: 320px;\n$break-small: 641px;\n$break-medium: 768px;\n$break-large: 1024px;\n",".llms-donut {\n\n\t@include clearfix;\n\n\tbackground-color: #f1f1f1;\n\tbackground-image: none;\n\tborder-radius: 50%;\n\tcolor: $color-brand-pink;\n\theight: 200px;\n\toverflow: hidden;\n\tposition: relative;\n\twidth: 200px;\n\n\tsvg {\n\t\toverflow: visible !important;\n\t\tpointer-events: none;\n\t\twidth: 100%;\n\t}\n\n\tsvg path {\n\t\tfill: none;\n\t\tstroke-width: 35px;\n\t\tstroke: $color-brand-pink;\n\t}\n\n\t&.mini {\n\t\theight: 36px;\n\t\twidth: 36px;\n\t\t.percentage {\n\t\t\tfont-size: 10px;\n\t\t}\n\t}\n\t&.small {\n\t\theight: 100px;\n\t\twidth: 100px;\n\t\t.percentage {\n\t\t\tfont-size: 18px;\n\t\t}\n\t}\n\t&.medium {\n\t\theight: 130px;\n\t\twidth: 130px;\n\t\t.percentage {\n\t\t\tfont-size: 26px;\n\t\t}\n\t}\n\t&.large {\n\t\theight: 260px;\n\t\twidth: 260px;\n\t\t.percentage {\n\t\t\tfont-size: 48px;\n\t\t}\n\t}\n\n\t.inside {\n\t\talign-items: center;\n\t\tbackground: #fff;\n\t\tborder-radius: 50%;\n\t\tbox-sizing: border-box;\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\theight: 80%;\n\t\tjustify-content: center;\n\t\tleft: 50%;\n\t\tposition: absolute;\n\t\ttext-align: center;\n\t\ttransform: translate(-50%, -50%);\n\t\twidth: 80%;\n\t\ttop: 50%;\n\t\tz-index: 3;\n\t}\n\n\t.percentage {\n\t\tline-height: 1.2;\n\t\tfont-size: 34px;\n\t}\n\n\t.caption {\n\t\tfont-size: 50%;\n\t}\n\n}\n","\n@mixin clearfix() {\n\t&:before,\n\t&:after {\n\t content: \" \";\n\t display: table;\n\t}\n\t&:after {\n\t clear: both;\n\t}\n}\n\n//\n// Positioning mixin\n//\n// @param [string] $position: position\n// @param [list] $args (()): offsets list\n//\n// @source http://hugogiraudel.com/2013/08/05/offsets-sass-mixin/\n//\n@mixin position($position, $args: ()) {\n\t$offsets: top right bottom left;\n\tposition: $position;\n\n\t@each $offset in $offsets {\n\t\t$index: index($args, $offset);\n\n\t\t@if $index {\n\t\t\t@if $index == length($args) {\n\t\t\t\t#{$offset}: 0;\n\t\t\t}\n\t\t\t@else {\n\t\t\t\t$next: nth($args, $index + 1);\n\t\t\t\t@if is-valid-length($next) {\n\t\t\t\t\t#{$offset}: $next;\n\t\t\t\t}\n\t\t\t\t@else if index($offsets, $next) {\n\t\t\t\t\t#{$offset}: 0;\n\t\t\t\t}\n\t\t\t\t@else {\n\t\t\t\t\t@warn \"Invalid value `#{$next}` for offset `#{$offset}`.\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n//\n// Function checking if $value is a valid length\n// @param [literal] $value: value to test\n// @return [bool]\n//\n@function is-valid-length($value) {\n\t$r: (type-of($value) == \"number\" and not unitless($value)) or (index(auto initial inherit 0, $value) != null);\n\t@return $r;\n}\n\n//\n// Shorthands\n//\n@mixin absolute($args: ()) {\n\t@include position(absolute, $args);\n}\n\n@mixin fixed($args: ()) {\n\t@include position(fixed, $args);\n}\n\n@mixin relative($args: ()) {\n\t@include position(relative, $args);\n}\n\n\n\n@mixin order_status_badges() {\n\n\t.llms-status {\n\t\tborder-radius: 3px;\n\t\tborder-bottom: 1px solid #fff;\n\t\tdisplay: inline-block;\n\t\tfont-size: 80%;\n\t\tpadding: 3px 6px;\n\t\tvertical-align: middle;\n\n\t\t&.llms-size--large {\n\t\t\tfont-size: 105%;\n\t\t\tpadding: 6px 12px;\n\t\t}\n\n\t\t&.llms-active,\n\t\t&.llms-completed,\n\t\t&.llms-pass, // quiz\n\t\t&.llms-txn-succeeded {\n\t\t\tcolor: darken( $color-green, 45 );\n\t\t\tbackground-color: $color-green;\n\t\t}\n\n\t\t&.llms-fail, // quiz\n\t\t&.llms-failed,\n\t\t&.llms-expired,\n\t\t&.llms-cancelled,\n\t\t&.llms-txn-failed {\n\t\t\tcolor: darken( $color-red, 40 );\n\t\t\tbackground-color: $color-red;\n\t\t}\n\n\t\t&.llms-incomplete, // assignment\n\t\t&.llms-on-hold,\n\t\t&.llms-pending,\n\t\t&.llms-pending-cancel,\n\t\t&.llms-refunded,\n\t\t&.llms-txn-pending,\n\t\t&.llms-txn-refunded {\n\t\t\tcolor: darken( orange, 30 );\n\t\t\tbackground-color: orange;\n\t\t}\n\n\t}\n\n}\n",".lifterlms, // Settings & Course Builder.\n.llms-metabox, // Some Metaboxes.\n.llms-mb-container, // Other Metaboxes.\n.llms-quiz-wrapper { // Quiz results.\n\n\t[data-tip],\n\t[data-title-default],\n\t[data-title-active] {\n\n\t\t$bgcolor: #444;\n\n\t\tposition: relative;\n\n\t\t&.tip--top-right {\n\t\t\t&:before {\n\t\t\t\tbottom: 100%;\n\t\t\t\tleft: -10px;\n\t\t\t}\n\t\t\t&:hover:before {\n\t\t\t\tbottom: calc( 100% + 6px );\n\t\t\t}\n\t\t\t&:after {\n\t\t\t\tborder-top-color: $bgcolor;\n\t\t\t\tleft: 6px;\n\t\t\t\ttop: 0;\n\t\t\t}\n\t\t\t&:hover:after {\n\t\t\t\ttop: -6px;\n\t\t\t}\n\t\t}\n\n\n\t\t&.tip--top-left {\n\t\t\t&:before {\n\t\t\t\tbottom: 100%;\n\t\t\t\tright: -10px;\n\t\t\t}\n\t\t\t&:hover:before {\n\t\t\t\tbottom: calc( 100% + 6px );\n\t\t\t}\n\t\t\t&:after {\n\t\t\t\tborder-top-color: $bgcolor;\n\t\t\t\tright: 6px;\n\t\t\t\ttop: 0;\n\t\t\t}\n\t\t\t&:hover:after {\n\t\t\t\ttop: -6px;\n\t\t\t}\n\t\t}\n\n\n\n\t\t&.tip--bottom-left {\n\t\t\t&:before {\n\t\t\t\ttop: 100%;\n\t\t\t\tright: -10px;\n\t\t\t}\n\t\t\t&:hover:before {\n\t\t\t\ttop: calc( 100% + 6px );\n\t\t\t}\n\t\t\t&:after {\n\t\t\t\tborder-bottom-color: $bgcolor;\n\t\t\t\tright: 6px;\n\t\t\t\tbottom: 0;\n\t\t\t}\n\t\t\t&:hover:after {\n\t\t\t\tbottom: -6px;\n\t\t\t}\n\t\t}\n\n\t\t&.tip--bottom-right {\n\t\t\t&:before {\n\t\t\t\ttop: 100%;\n\t\t\t\tleft: -10px;\n\t\t\t}\n\t\t\t&:hover:before {\n\t\t\t\ttop: calc( 100% + 6px );\n\t\t\t}\n\t\t\t&:after {\n\t\t\t\tborder-bottom-color: $bgcolor;\n\t\t\t\tleft: 6px;\n\t\t\t\tbottom: 0;\n\t\t\t}\n\t\t\t&:hover:after {\n\t\t\t\tbottom: -6px;\n\t\t\t}\n\t\t}\n\n\t\t&:before {\n\t\t\tbackground: $bgcolor;\n\t\t\tborder-radius: 4px;\n\t\t\tcolor: #fff;\n\t\t\tfont-size: 13px;\n\t\t\tline-height: 1.2;\n\t\t\tpadding: 8px;\n\t\t\tmax-width: 300px;\n\t\t\twidth: max-content;\n\t\t}\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tborder: 6px solid transparent;\n\t\t\theight: 0;\n\t\t\twidth: 0;\n\t\t}\n\n\t\t&:before,\n\t\t&:after {\n\t\t\topacity: 0;\n\t\t\ttransition: all 0.2s 0.1s ease;\n\t\t\tposition: absolute;\n\t\t\tpointer-events: none;\n\t\t\tvisibility: hidden;\n\t\t}\n\t\t&:hover:before,\n\t\t&:hover:after {\n\t\t\topacity: 1;\n\t\t\ttransition: all 0.2s 0.6s ease;\n\t\t\tvisibility: visible;\n\t\t\tz-index: 99999999;\n\t\t}\n\n\t}\n\n\t[data-tip] {\n\t\t&:before {\n\t\t\tcontent: attr(data-tip);\n\t\t}\n\t}\n\t[data-tip].active {\n\t\t&:before {\n\t\t\tcontent: attr(data-tip-active);\n\t\t}\n\t}\n\n}\n","\n\n\n\n.llms-membership-image {\n display: block;\n margin: 0 auto;\n}\n\n\n\n.llms-course-image {\n display: block;\n margin: 0 auto;\n max-width: 100%;\n}\n.llms-featured-image {\n display: block;\n margin: 0 auto;\n}\n.llms-image-thumb {\n width: 150px;\n}\n\n// Responsive Videos.\n.llms-video-wrapper {\n\n\t.center-video {\n\t\theight: auto;\n\t\tmax-width: 100%;\n\t\toverflow: hidden;\n\t\tposition: relative;\n\t\tpadding-top: 56.25%;\n\t\ttext-align: center;\n\n\t\t& > .wp-video,\n\t\t.fluid-width-video-wrapper,\n\t\tiframe, object, embed {\n\t\t\theight: 100%;\n\t\t\tleft: 0;\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t& > .wp-video {\n\t\t\twidth: 100% !important;\n\t\t}\n\t\t.fluid-width-video-wrapper {\n\t\t\tpadding-top: 0 !important;\n\t\t}\n\t}\n\n}\n\n\n\n\n\n\n\n\n\n\n\n.clear {\n clear: both;\n width: 100%;\n}\n.llms-featured-image {\n text-align: center;\n}\n\n/* Genesis Overrides */\nh1, h2, h3, h4, h5, h6 {\n font-weight: 300;\n}\n\n#main-content .llms-payment-options p {\n margin: 0;\n font-size: 16px;\n}\n\n.llms-option {\n display: block;\n position: relative;\n margin: 20px 0;\n padding-left:40px;\n font-size: 16px;\n\n label {\n cursor: pointer;\n position: static;\n }\n}\n.llms-option:first-child {\n margin-top:0;\n}\n.llms-option:last-child {\n margin-bottom:0;\n}\n#main-content .llms-option:last-child {\n margin-bottom:0;\n}\n\n.llms-option input[type=\"radio\"] {\n display: block;\n position: absolute;\n top:3px;\n left:0;\n z-index: 0;\n}\n\n.llms-option input[type=\"radio\"] {\n display: inline-block;\n}\n.llms-option input[type=\"radio\"] + label span.llms-radio {\n display: none;\n}\n\n.llms-option input[type=\"radio\"] + label span.llms-radio {\n appearance: none;\n\n z-index: 20;\n position: absolute;\n top: 0;\n left: -2px;\n display: inline-block;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n cursor: pointer;\n vertical-align: middle;\n box-shadow: hsla(0,0%,100%,.15) 0 1px 1px, inset hsla(0,0%,0%,.5) 0 0 0 1px;\n\n background: #efefef;\n background-image: radial-gradient(ellipse at center, $color-red 0%,$color-red 40%,#efefef 45%);\n background-repeat: no-repeat;\n\n transition: background-position .15s cubic-bezier(.8, 0, 1, 1);\n}\n.llms-option input[type=\"radio\"]:checked + label span.llms-radio {\n transition: background-position .2s .15s cubic-bezier(0, 0, .2, 1);\n}\n\n.llms-option input[type=\"radio\"] + label span.llms-radio {\n background-position: -24px 0;\n}\n.llms-option input[type=\"radio\"]:checked + label span.llms-radio {\n background-position: 0 0;\n}\n\n.llms-option input[type=\"submit\"] {\n border:none;\n background:$color-red;\n color:#fff;\n font-size:20px;\n padding:10px 0;\n border-radius:3px;\n cursor:pointer;\n width:100%;\n}\n.llms-styled-text {\n padding: 14px 0;\n}\n.llms-notice-box {\n border-radius: 3px;\n z-index: 10;\n margin: 10px 0;\n padding: 15px 20px;\n //background: #fffef4;\n border: 1px solid #ccc;\n list-style-type: none;\n width: 100%;\n overflow: auto;\n input[type=\"text\"] {\n height: auto;\n }\n .col-1-1 {\n width: 100%;\n input[type=text] {\n width: 100%;\n }\n }\n .col-1-2 {\n width: 50%;\n float: left;\n @media screen and (max-width: $break-medium) {\n width: 100%;\n }\n }\n .col-1-3 {\n width: 33%;\n float: left;\n margin-right: 10px;\n }\n .col-1-4 {\n width: 25%;\n float: left;\n margin-right: 10px;\n @media screen and (max-width: $break-medium) {\n width: 100%;\n }\n }\n .col-1-6 {\n width: 16.6%;\n float: left;\n margin-right: 10px;\n }\n .col-1-8 {\n width: 11%;\n float: right;\n }\n .llms-pad-right {\n padding-right: 10px;\n @media screen and (max-width: $break-medium) {\n padding-right: 0;\n }\n }\n}\ninput[type=\"text\"].cc_cvv,\n#cc_cvv {\n margin-right: 0;\n width: 23%;\n float: right;\n}\n.llms-clear-box {\n border-radius: 3px;\n z-index: 10;\n margin: 10px 0;\n padding: 15px 20px;\n list-style-type: none;\n width: 100%;\n overflow: auto;\n}\n.llms-price-label {\n font-weight: normal;\n}\n.llms-final-price {\n font-weight: bold;\n float: right;\n}\n.llms-center-content {\n text-align: center;\n}\n.llms-input-text {\n background-color: #fff;\n border: 1px solid #ddd;\n color: #333;\n font-size: 18px;\n font-weight: 300;\n padding: 16px;\n width: 100%;\n}\n.llms-price {\n margin-bottom: 0;\n font-weight: bold;\n}\n.llms-price-loop {\n margin-bottom: 0;\n font-weight: bold;\n}\n\n// hentry overrides\n.courses .entry {\n padding: 0\n}\n.list-view .site-content .llms-course-list .hentry, .list-view .site-content .llms-membership-list .hentry {\n border-top: 0;\n padding-top: 0;\n}\n.llms-content {\n width: 100%;\n}\n\n.llms-lesson-button-wrapper {\n width: 100%;\n display: block;\n clear: both;\n text-align: center;\n}\n.llms-template-wrapper {\n width: 100%;\n display: block;\n clear: both;\n}\n.llms-button-wrapper {\n width: 100%;\n display: block;\n clear: both;\n text-align: center;\n}\n\n\n//custom select box\n.llms-styled-select {\n border: 1px solid #ccc;\n box-sizing: border-box;\n border-radius: 3px;\n overflow: hidden;\n position: relative;\n}\n.llms-styled-select, .llms-styled-select select {\n width: 100%;\n}\nselect:focus { outline: none; }\n.llms-styled-select select {\n height: 34px;\n padding: 5px 0 5px 5px;\n background: transparent;\n border: none;\n -webkit-appearance: none;\n font-size: 16px;\n color: #444444;\n}\n\n@-moz-document url-prefix(){\n .--ms-styled-select select { width: 110%; }\n}\n\n.llms-styled-select .fa-sort-desc {\n position: absolute;\n top: 0;\n right: 12px;\n font-size: 24px;\n color: #ccc;\n}\n\nselect::-ms-expand { display: none; }\n\n_:-o-prefocus, .selector {\n .llms-styled-select { background: none; }\n}\n\n.llms-form-item-wrapper {\n margin-bottom: 1em;\n}\n\n/* Circle Graph */\n.llms-progress-circle {\n position: relative;\n width: 200px;\n height: 200px;\n float: left;\n}\n\n.llms-progress-circle-count {\n top: 27%;\n position: absolute;\n width: 94%;\n text-align: center;\n color: #666;\n font-size:44px;\n}\n.llms-progress-circle svg {\n position: absolute;\n width: 200px;\n height: 200px;\n}\n.llms-progress-circle circle {\n fill: transparent;\n}\nsvg .llms-background-circle {\n fill: transparent;\n stroke-width: 10px;\n stroke: #f1f2f1;\n stroke-dasharray: 430;\n}\n\nsvg .llms-animated-circle {\n fill: transparent;\n stroke-width: 10px;\n stroke: #e5554e;\n stroke-dasharray: 430;\n stroke-dashoffset: 430 - 20\n}\n\n\n\n\n\n\n\n.llms-widget-syllabus {\n\n .llms-lesson.current-lesson .lesson-title {\n \tfont-weight: 700;\n }\n\n .llms-lesson-complete, .lesson-complete-placeholder {\n font-size: 1.2em;\n margin-right: 6px;\n color: #ccc;\n &.done {\n color: #e5554e;\n }\n }.section-title {\n font-weight: bold;\n }.lesson-title {\n a {\n text-decoration: none;\n &:hover {\n text-decoration: none !important;\n }\n }\n &.done {\n a {\n color: #999;\n text-decoration: line-through;\n }\n }\n }\n ul {\n list-style-type: none;\n li {\n list-style-type: none;\n ul li {\n margin: 0 0 2px 0;\n padding: 0;\n }\n }\n }\n}\n\n\n\n.llms-remove-coupon {\n float: right;\n}\n\n\n\n\n\n.llms-lesson-link-locked, .llms-lesson-link-locked:hover {\n background: #f1f1f1;\n box-shadow: 0 1px 2px 0 rgba(1, 1, 1, 0.4);\n display: block;\n color: #a6a6a6;\n min-height: 85px;\n padding: 15px;\n text-decoration: none;\n position: relative;\n}\n\n.llms-lesson-preview.is-complete .llms-lesson-link-locked {\n padding-left: 75px;\n}\n\n.llms-lesson-tooltip { \tdisplay: none;\n\t\t\t\tposition:absolute;\n\t\t\t\tcolor: #000000;\n\t\t\t\tbackground-color: #c0c0c0;\n\t\t\t\tpadding:.25em;\n\t\t\t\tborder-radius: 2px;\n\t\t\t\tz-index: 100;\n \t\t\t\ttop:0;\n \t\t\tleft:50%;\n \t\t\ttext-align: center;\n \t\t\t-webkit-transform: translateX(-50%) translateY(-100%);\n \t\t\t transform: translateX(-50%) translateY(-100%);\n\t\t\t}\n\n/* arrows - :after */\n.llms-lesson-tooltip:after {\n content: \"\";\n width: 0;\n height: 0;\n border-top: 8px solid #c0c0c0;\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n position:absolute;\n bottom:-8px;\n left:50%;\n transform: translateX(-50%);\n}\n\n.llms-lesson-tooltip.active {\n display: inline-block;\n}\n",".llms-loop-list {\n\t@extend %clearfix;\n\n\tlist-style: none;\n\tmargin: 0 -10px;\n\tpadding: 0;\n\n\t@media all and (min-width: 600px) {\n\t\t$cols: 1;\n\t\t@while $cols <= 6 {\n\t\t\t&.cols-#{$cols} .llms-loop-item {\n\t\t\t\twidth: calc( 100% / $cols );\n\t\t\t}\n\t\t\t$cols: $cols + 1;\n\t\t}\n\t}\n\n\n}\n\n.llms-loop-item {\n\tfloat: left;\n\tlist-style: none;\n\tmargin: 0;\n\tpadding: 0;\n\twidth: 100%;\n}\n\n\n\t.llms-loop-item-content {\n\t\tbackground: #f1f1f1;\n\t\tpadding-bottom: 10px;\n\t\tmargin: 10px;\n\n\t\t&:hover {\n\t\t\tbackground: #eaeaea;\n\t\t}\n\n\t\t.llms-loop-link {\n\t\t\tcolor: #212121;\n\t\t\tdisplay: block;\n\t\t\t&:visited {\n\t\t\t\tcolor: #212121;\n\t\t\t}\n\t\t}\n\n\t\t.llms-featured-image {\n\t\t\tdisplay: block;\n\t\t\tmax-width: 100%;\n\t\t}\n\n\t\t.llms-loop-title {\n\t\t\tmargin-top: 5px;\n\t\t\t&:hover {\n\t\t\t\tcolor: $color-brand-blue;\n\t\t\t}\n\t\t}\n\n\t\t.llms-meta,\n\t\t.llms-author,\n\t\t.llms-loop-title {\n\t\t\tpadding: 0 10px;\n\t\t}\n\n\t\t.llms-meta,\n\t\t.llms-author {\n\t\t\tcolor: #444;\n\t\t\tdisplay: block;\n\t\t\tfont-size: 13px;\n\t\t\tmargin-bottom: 3px;\n\t\t\t&:last-child {\n\t\t\t\tmargin-bottom: 0;\n\t\t\t}\n\t\t}\n\n\t\t.llms-featured-img-wrap {\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\tp {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t\t.llms-progress {\n\t\t\tmargin: 0;\n\t\t\theight: .4em;\n\n\t\t\t.progress__indicator {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t.llms-progress-bar {\n\t\t\t\tbackground-color: #f6f6f6;\n\t\t\t\tright: 0;\n\t\t\t\ttop: 0;\n\t\t\t}\n\t\t}\n\n\t}\n\n\n\n// .llms-membership-list .memberships {\n// border-top: 1px solid #f6f6f6;\n// width: 100%;\n// display: inline-block;\n// text-align: center;\n// list-style: none;\n// clear: both;\n// margin: 0;\n// padding: 0;\n// }\n\n\n\n// .llms-course-list {\n\n// .llms-membership-link {\n// @extend %llms-element;\n\n// display: block\n// }\n\n// .llms-membership-footer {\n// border-top: 3px solid $color-white;\n// margin: 15px -15px 0;\n// padding: 15px 15px 0;\n// text-align: center;\n// }\n\n// }\n\n\n\n\n// .llms-membership-list .memberships li {\n// width: 300px;\n// margin: 15px;\n// list-style: none;\n// vertical-align: top;\n// display: inline-block;\n// text-align: left;\n// }\n\n// .llms-membership-list .memberships li.first {\n// margin-left: 0;\n// }\n\n// .llms-membership-list .memberships li.last {\n// margin-right: 15px;\n// }\n\n// .llms-membership-list .memberships li .llms-title {\n// display: block;\n// font-weight: 700;\n// margin-bottom: .5em;\n// font-size: 18px;\n// text-decoration: none;\n// line-height: 30px;\n// }\n\n// .llms-membership-list .memberships li .llms-price {\n// display: block;\n// font-weight: 700;\n// // margin-bottom: .5em;\n// // font-size: 24px;\n// text-decoration: none;\n// line-height: 30px;\n// }\n\n// .llms-course-list {\n// //margin: 30px 0;\n// padding: 30px;\n// //background: #FFF;\n// // border-radius: 2px;\n// display: inline-block;\n// width: 100%;\n// box-sizing: border-box;\n\n// .llms-course-link {\n// @extend %llms-element;\n\n// display: block\n// }\n\n// .llms-course-footer {\n// border-top: 3px solid $color-white;\n// margin: 15px -15px 0;\n// padding: 15px 15px 0;\n// text-align: center;\n// }\n\n// .llms-progress {\n// margin-top: 0;\n// // .progress-bar {\n// // background-color: $color-white;\n// // }\n// }\n\n// }\n\n// .llms-course-list .courses {\n// //border-top: 1px solid #f6f6f6;\n// width: 100%;\n// display: inline-block;\n// text-align: center;\n// list-style: none;\n// clear: both;\n// margin: 0;\n// padding: 0;\n// }\n\n// .llms-course-list .courses li {\n// width: 300px;\n// padding-top: 0; // twentyfifteen compat\n// margin: 15px;\n// list-style: none;\n// vertical-align: top;\n// display: inline-block;\n// text-align: left;\n// }\n// @media screen and (max-width: $break-small) {\n// .llms-course-list {\n// padding: 30px 10px;\n\n// .courses li {\n// width: auto;\n// }\n// }\n// }\n\n// // .llms-course-list .courses li.first {\n// // \tmargin-left: 0;\n// // }\n\n// .llms-course-list .courses li.last {\n// margin-right: 15px;\n// }\n\n// .llms-course-list .courses li .llms-title {\n// display: block;\n// font-weight: 700;\n// margin-bottom: .5em;\n// font-size: 18px;\n// text-decoration: none;\n// line-height: 30px;\n// }\n\n// .llms-course-list .courses li .llms-price {\n// display: block;\n// font-weight: 700;\n// // margin-bottom: .5em;\n// // font-size: 24px;\n// text-decoration: none;\n// line-height: 30px;\n// }\n\n\n\n\n// .courses a.llms-course-link:hover {\n// text-decoration: none;\n// }\n",".course {\n\t.llms-meta-info {\n\t\tmargin: 20px 0;\n\t\t.llms-meta-title {\n\t\t\tmargin-bottom: 5px;\n\t\t}\n\t\t.llms-meta {\n\t\t\tp {\n\t\t\t\tmargin-bottom: 0;\n\t\t\t}\n\t\t\tspan {\n\t\t\t\tfont-weight: 700;\n\t\t\t}\n\t\t}\n\t}\n\t.llms-course-progress {\n\t\tmargin: 40px auto;\n\t\tmax-width: 480px;\n\t\ttext-align: center;\n\t}\n}\n",".llms-syllabus-wrapper {\n\n\tmargin: 15px;\n\ttext-align: center;\n\n\t.llms-section-title {\n\t\tmargin: 25px 0 0;\n\t}\n\n}\n\n.llms-course-navigation {\n\t@extend %clearfix;\n\n\t.llms-prev-lesson,\n\t.llms-next-lesson,\n\t.llms-back-to-course {\n\t\twidth: 49%;\n\t}\n\n\t.llms-prev-lesson,\n\t.llms-back-to-course {\n\t\tfloat: left;\n\t\tmargin-right: 0.5%;\n\t}\n\n\t.llms-next-lesson,\n\t.llms-prev-lesson + .llms-back-to-course {\n\t\tfloat: right;\n\t\tmargin-left: 0.5%;\n\t}\n\n}\n\n.llms-lesson-preview {\n\tdisplay: inline-block;\n\tmargin-top: 15px;\n\tmax-width: 100%;\n\tposition: relative;\n\twidth: 480px;\n\n\t.llms-lesson-link {\n\t\tbackground: #f1f1f1;\n\t\tcolor: #212121;\n\t\tdisplay: block;\n\t\t// height: 100%;\n\t\tpadding: 15px;\n\t\ttext-decoration: none;\n\n\t\t@include clearfix();\n\n\t\t&:hover {\n\t\t\tbackground: #eaeaea;\n\t\t}\n\n\t\t&:visited {\n\t\t\tcolor: #212121;\n\t\t}\n\n\t}\n\n\t.llms-lesson-thumbnail {\n\t\tmargin-bottom: 10px;\n\t\timg {\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t}\n\t}\n\n\t.llms-pre-text {\n\t\ttext-align: left;\n\t}\n\n\t.llms-lesson-title {\n\t\tfont-weight: 700;\n\t\tmargin: 0 auto 10px;\n\t\ttext-align: left;\n\t\t&:last-child {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t}\n\n\t.llms-lesson-excerpt {\n\t\ttext-align: left;\n\t}\n\n\t.llms-main {\n\t\tfloat: left;\n\t\twidth: 100%;\n\t}\n\t.llms-extra {\n\t\tfloat: right;\n\t\twidth: 15%;\n\t}\n\n\t.llms-extra + .llms-main {\n\t\twidth: 85%;\n\t}\n\n\t.llms-lesson-counter,\n\t.llms-free-lesson-svg,\n\t.llms-lesson-complete,\n\t.llms-lesson-complete-placeholder {\n\t\tdisplay: block;\n\t\tfont-size: 32px;\n\t\tmargin-bottom: 15px;\n\t}\n\n\t&.is-free,\n\t&.is-complete {\n\t\t.llms-lesson-complete {\n\t\t\tcolor: $color-brand-blue;\n\t\t}\n\t}\n\n\t.llms-icon-free {\n\t\tbackground: $color-brand-blue;\n\t\tborder-radius: 4px;\n\t\tcolor: #f1f1f1;\n\t\tdisplay: inline-block;\n\t\tpadding: 5px 6px 4px;\n\t\tline-height: 1;\n\t\tfont-size: 14px;\n\t}\n\n\t&.is-incomplete {\n\t\t.llms-lesson-complete {\n\t\t\tcolor: #cacaca;\n\t\t}\n\t}\n\n\t.llms-lesson-counter {\n\t\tfont-size: 16px;\n\t\tline-height: 1;\n\t}\n\n\t.llms-free-lesson-svg {\n\t\tfill: currentColor;\n\t\theight: 23px;\n\t\twidth: 50px;\n\t}\n\n\tp {\n\t\tmargin-bottom: 0;\n\t}\n\n}\n","/* progress bar */\n.llms-progress {\n\tclear: both;\n\tdisplay: flex;\n\tflex-direction: row-reverse;\n\tposition: relative;\n\theight: 1em;\n\twidth: 100%;\n\tmargin: 15px 0;\n}\n\n.llms-progress .llms-progress-bar {\n\tbackground-color: #f1f2f1;\n\tposition: relative;\n\theight: .4em;\n\ttop: .3em;\n\twidth: 100%;\n}\n\n.llms-progress .progress-bar-complete {\n\tbackground-color: $color-brand-pink;\n\theight: 100%;\n}\n\n.progress__indicator {\n\tfloat: right;\n\ttext-align: right;\n\theight: 1em;\n\tline-height: 1em;\n\tmargin-left: 5px;\n\twhite-space: nowrap;\n}\n",".llms-author {\n\t.name {\n\t\tmargin-left: 5px;\n\t}\n\t.label {\n\t\tmargin-left: 5px;\n\t}\n\t.avatar {\n\t\tborder-radius: 50%;\n\t}\n\t.bio {\n\t\tmargin-top: 5px;\n\t}\n}\n\n\n.llms-instructor-info {\n\t.llms-instructors {\n\n\t\t.llms-col {\n\t\t\t&:first-child .llms-author {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t&:last-child .llms-author {\n\t\t\t\tmargin-right: 0;\n\t\t\t}\n\t\t}\n\n\t\t.llms-author {\n\n\t\t\tbackground: #f5f5f5;\n\t\t\tborder-top: 4px solid $color-brand-blue;\n\t\t\ttext-align: center;\n\t\t\tmargin: 45px 5px 5px;\n\t\t\tpadding: 0 10px 10px;\n\n\t\t\t.avatar {\n\t\t\t\tbackground: $color-brand-blue;\n\t\t\t\tborder: 4px solid $color-brand-blue;\n\t\t\t\tdisplay: block;\n\t\t\t\tmargin: -35px auto 10px;\n\t\t\t}\n\n\t\t\t.llms-author-info {\n\t\t\t\tdisplay: block;\n\t\t\t\t// margin: 0 0 5px;\n\t\t\t\t&.name {\n\t\t\t\t\tfont-weight: 700;\n\t\t\t\t}\n\t\t\t\t&.label {\n\t\t\t\t\tfont-size: 85%;\n\t\t\t\t}\n\t\t\t\t&.bio {\n\t\t\t\t\tfont-size: 90%;\n\t\t\t\t\tmargin-bottom: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n}\n",".llms-notice {\n\tbackground: rgba( $color-brand-blue, .3 );\n\tborder-color: $color-brand-blue;\n\tborder-style: solid;\n\tborder-width: 3px;\n\tpadding: 10px;\n\tmargin-bottom: 10px;\n\n\tp, ul {\n\t\t&:last-child { margin-bottom: 0; }\n\t}\n\n\tli {\n\t\tlist-style-type: none;\n\t}\n\n\t&.llms-debug {\n\t\tbackground: rgba( #cacaca, .3 );\n\t\tborder-color: #cacaca;\n\t}\n\n\t&.llms-error {\n\t\tbackground: rgba( $color-red, .3 );\n\t\tborder-color: $color-red;\n\t}\n\n\t&.llms-success {\n\t\tbackground: rgba( $color-green, .3 );\n\t\tborder-color: $color-green;\n\t}\n\n}\n\n// this helps genesis and numerous other themes out a bit\n// by being slightly more specific\n.entry-content .llms-notice {\n\tmargin: 0 0 10px;\n\tli {\n\t\tlist-style-type: none;\n\t}\n}\n","ul.llms-achievements-loop,\n.lifterlms ul.llms-achievements-loop,\nul.llms-certificates-loop,\n.lifterlms ul.llms-certificates-loop {\n\n\t@include clearfix();\n\tlist-style-type: none;\n\tmargin: 0 -10px;\n\tpadding: 0;\n\n\tli.llms-achievement-loop-item,\n\tli.llms-certificate-loop-item {\n\t\tbox-sizing: border-box;\n\t\tdisplay: block;\n\t\tfloat: left;\n\t\tlist-style-type: none;\n\t\tmargin: 0;\n\t\tpadding: 10px;\n\t\twidth: 100%;\n\t}\n\n\t@media all and (min-width: 600px) {\n\t\t$cols: 1;\n\t\t@while $cols <= 5 {\n\t\t\t&.loop-cols-#{$cols} li.llms-achievement-loop-item,\n\t\t\t&.loop-cols-#{$cols} li.llms-certificate-loop-item {\n\t\t\t\twidth: calc( 100% / $cols );\n\t\t\t}\n\t\t\t$cols: $cols + 1;\n\t\t}\n\t}\n\n}\n\n.llms-achievement,\n.llms-certificate {\n\n\tbackground: #f1f1f1;\n\tborder: none;\n\tcolor: inherit;\n\tdisplay: block;\n\ttext-decoration: none;\n\twidth: 100%;\n\n\t&:hover {\n\t\tbackground: #eaeaea;\n\t}\n\n\t.llms-achievement-img {\n\t\tdisplay: block;\n\t\tmargin: 0;\n\t\twidth: 100%;\n\t}\n\n\t.llms-achievement-title {\n\t\tfont-size: 16px;\n\t\tmargin: 0;\n\t\tpadding: 10px;\n\t\ttext-align: center;\n\t}\n\n\t.llms-certificate-title {\n\t\tfont-size: 16px;\n\t\tmargin: 0;\n\t\tpadding: 0 0 10px;\n\t}\n\n\t.llms-achievement-info,\n\t.llms-achievement-date {\n\t\tdisplay: none;\n\t}\n\n\t.llms-achievement-content {\n\t\tpadding: 20px;\n\t\t&:empty {\n\t\t\tpadding: 0;\n\t\t}\n\t\t*:last-child {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t}\n\n}\n\n.llms-certificate {\n\tborder: 4px double #f1f1f1;\n\tpadding: 20px 10px;\n\tbackground: #fff;\n\ttext-align: center;\n\t&:hover {\n\t\tbackground: #fff;\n\t\tborder-color: #eaeaea;\n\t}\n}\n\n.llms-achievement-modal {\n\t.llms-achievement {\n\t\tbackground: #fff;\n\t}\n\t.llms-achievement-info {\n\t\tdisplay: block;\n\t}\n\t.llms-achievement-title {\n\t\tdisplay: none;\n\t}\n}\n",".llms-notification {\n\n\t@include clearfix();\n\n\tbackground: #fff;\n\tbox-shadow: 0 1px 2px -2px #333, 0 1px 1px -1px #333;\n\tborder-top: 4px solid $color-blue;\n\tleft: 12px;\n\topacity: 0;\n\tpadding: 12px;\n\tposition: fixed;\n\tright: 12px;\n\ttop: 24px;\n\ttransition:\n\t\topacity 0.4s ease-in-out,\n\t\tright 0.4s ease-in-out,\n\t;\n\tvisibility: none;\n\twidth: auto;\n\tz-index: 9999999;\n\n\t&.visible {\n\t\topacity: 1;\n\t\ttransition:\n\t\t\topacity 0.4s ease-in-out,\n\t\t\tright 0.4s ease-in-out,\n\t\t\ttop 0.1s ease-in-out,\n\t\t\tbackground 0.2s ease-in-out,\n\t\t\ttransform 0.2s ease-in-out\n\t\t;\n\t\tvisibility: visible;\n\n\t\t&:hover {\n\t\t\t.llms-notification-dismiss {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t.llms-notification-content {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\n\t}\n\n\t\t.llms-notification-main {\n\t\t\talign-self: flex-start;\n\t\t\tflex: 4;\n\t\t\torder: 2;\n\t\t}\n\n\t\t\t.llms-notification-title {\n\t\t\t\tfont-size: 18px;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.llms-notification-body {\n\t\t\t\tfont-size: 14px;\n\t\t\t\tline-height: 1.4;\n\t\t\t\tp, li {\n\t\t\t\t\tfont-size: inherit;\n\t\t\t\t}\n\t\t\t\tp {\n\t\t\t\t\tmargin-bottom: 8px;\n\t\t\t\t}\n\n\t\t\t\t.llms-mini-cert {\n\t\t\t\t\tbackground: #f6f6f6;\n\t\t\t\t\tborder: 1px solid #d0d0d0;\n\t\t\t\t\tbox-shadow: inset 0 0 0 3px #fefefe, inset 0 0 0 4px #dedede;\n\t\t\t\t\tpadding: 16px 16px 24px;\n\t\t\t\t\tmargin-top: 12px;\n\t\t\t\t\t.llms-mini-cert-title {\n\t\t\t\t\t\tfont-size: 16px;\n\t\t\t\t\t\tfont-weight: 700;\n\t\t\t\t\t\tmargin: 12px auto;\n\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t}\n\t\t\t\t\t.llms-mini-cert--body {\n\t\t\t\t\t\twidth: 100%;\n\t\t\t\t\t\t> div {\n\t\t\t\t\t\t\t&:nth-child(1) { width:65%; }\n\t\t\t\t\t\t\t&:nth-child(2) { width:35%; }\n\t\t\t\t\t\t\t&:nth-child(3) { width:85%; }\n\t\t\t\t\t\t\t&:nth-child(4) { width:75%; margin-top: 18px; }\n\t\t\t\t\t\t\t&:nth-child(5) { width:70%; }\n\t\t\t\t\t\t\t&:nth-child(6) { margin-left: 12px; margin-bottom:-24px; } // Dot.\n\t\t\t\t\t\t\t&:nth-child(7) { width:65%; margin-right: 12px; }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t.llms-mini-cert--mock-line {\n\t\t\t\t\t\tborder-radius: 2px;\n\t\t\t\t\t\theight: 8px;\n\t\t\t\t\t\tbackground: #b0b0b0;\n\t\t\t\t\t\tbackground-image: linear-gradient( to right, #b0b0b0 0%, #a0a0a0 20%, #b0b0b0 40%, #b0b0b0 100% );\n\t\t\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\t\t\tmargin: 4px auto;\n\t\t\t\t\t}\n\t\t\t\t\t.llms-mini-cert--mock-dot {\n\t\t\t\t\t\tbackground: #b0b0b0;\n\t\t\t\t\t\tborder-radius: 50%;\n\t\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\t\tcontent: '';\n\t\t\t\t\t\theight: 24px;\n\t\t\t\t\t\twidth: 24px;\n\t\t\t\t\t}\n\t\t\t\t\tp { margin-bottom: 0; }\n\t\t\t\t}\n\t\t\t}\n\n\t\t.llms-notification-aside {\n\t\t\talign-self: flex-start;\n\t\t\tflex: 1;\n\t\t\tmargin-right: 12px;\n\t\t\torder: 1;\n\t\t}\n\n\t\t\t.llms-notification-icon {\n\t\t\t\tdisplay: block;\n\t\t\t\tmax-width: 64px;\n\t\t\t}\n\n\t.llms-notification-footer {\n\t\tborder-top: 1px solid #e5e5e5;\n\t\tfont-size: 12px;\n\t\tmargin-top: 12px;\n\t\tpadding: 6px 6px 0;\n\t\ttext-align: right;\n\t}\n\n\t.llms-notification-dismiss {\n\t\tcolor: $color-danger;\n\t\tcursor: pointer;\n\t\tfont-size: 22px;\n\t\tposition: absolute;\n\t\tright: 10px;\n\t\ttop: 8px;\n\t\ttransition: opacity 0.4s ease-in-out;\n\t}\n\n}\n\n.llms-sd-notification-center {\n\n\t.llms-notification-list,\n\t.llms-notification-list-item {\n\t\tlist-style-type: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.llms-notification-list-item {\n\t\t&:hover .llms-notification {\n\t\t\tbackground: #fcfcfc;\n\t\t}\n\t}\n\n\t.llms-notification {\n\t\topacity: 1;\n\t\tborder-top: 1px solid #e5e5e5;\n\t\tleft: auto;\n\t\tpadding: 24px;\n\t\tposition: relative;\n\t\tright: auto;\n\t\ttop: auto;\n\t\tvisibility: visible;\n\t\twidth: auto;\n\t\t.llms-notification-aside {\n\t\t\tmax-width: 64px;\n\t\t}\n\t\t.llms-notification-footer {\n\t\t\tborder: none;\n\t\t\tpadding: 0;\n\t\t\ttext-align: left;\n\t\t}\n\t\t.llms-progress {\n\t\t\tdisplay: none !important;\n\t\t}\n\t\t.llms-notification-date {\n\t\t\tcolor: #515151;\n\t\t\tfloat: left;\n\t\t\tmargin-right: 6px;\n\t\t}\n\t\t.llms-mini-cert {\n\t\t\tmargin: 0 auto;\n\t\t\tmax-width: 380px;\n\t\t}\n\t}\n}\n\n@media all and (min-width: 480px) {\n\t.llms-notification {\n\t\tleft: auto;\n\t\tright: -800px;\n\t\twidth: 360px;\n\t\t&.visible {\n\t\t\tright: 24px;\n\t\t}\n\t\t.llms-notification-dismiss {\n\t\t\topacity: 0;\n\t\t}\n\t}\n}\n",".llms-pagination {\n\n\tul {\n\t\tlist-style-type: none;\n\t\t@extend %cf;\n\n\t\tli {\n\n\t\t\tfloat: left;\n\n\t\t\ta {\n\t\t\t\tborder-bottom: 0;\n\t\t\t\ttext-decoration: none;\n\t\t\t}\n\n\t\t\t.page-numbers {\n\t\t\t\tpadding: 0.5em;\n\t\t\t\ttext-decoration: underline;\n\n\t\t\t\t&.current {\n\t\t\t\t\ttext-decoration: none;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}",".llms-tooltip {\n\n\tbackground: #2a2a2a;\n\tborder-radius: 4px;\n\tcolor: #fff;\n\tfont-size: 14px;\n\tline-height: 1.2;\n\topacity: 0;\n\ttop: -20px;\n\tpadding: 8px 12px;\n\tleft: 50%;\n\tposition: absolute;\n\tpointer-events: none;\n\ttransform: translateX( -50% );\n\ttransition: opacity .2s ease, top .2s ease;\n\tmax-width: 320px;\n\n\t&.show {\n\t\ttop: -28px;\n\t\topacity: 1;\n\t}\n\n\t&:after {\n\n\t\tbottom: -8px;\n\t\tborder-top: 8px solid #2a2a2a;\n\t\tborder-left: 8px solid transparent;\n\t\tborder-right: 8px solid transparent;\n\t\tcontent: '';\n\t\theight: 0;\n\t\tleft: 50%;\n\t\tposition: absolute;\n\t\ttransform: translateX( -50% );\n\t\twidth: 0;\n\n\t}\n\n}\n\n\n\n.webui-popover-title {\n\tfont-size: initial;\n\tfont-weight: initial;\n\tline-height: initial;\n}\n.webui-popover-inverse {\n\t.webui-popover-inner .close {\n\t\tcolor: #fff;\n\t\topacity: 0.6;\n\t\ttext-shadow: none;\n\t\t&:hover {\n\t\t\topacity: 0.8;\n\t\t}\n\t}\n\t.webui-popover-content a {\n\t\tcolor: #fff;\n\t\ttext-decoration: underline;\n\t\t&:hover {\n\t\t\ttext-decoration: none;\n\t\t}\n\t}\n}\n",".llms-quiz-attempt-results {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style-type: none;\n\n\t.llms-quiz-attempt-question {\n\t\tbackground: #efefef;\n\t\tmargin: 0 0 10px;\n\t\tposition: relative;\n\n\t\t.toggle-answer {\n\t\t\t@include clearfix();\n\t\t\tcolor: inherit;\n\t\t\tdisplay: block;\n\t\t\tpadding: 10px 35px 10px 10px;\n\t\t\ttext-decoration: none;\n\t\t}\n\n\t\t&.status--waiting.correct,\n\t\t&.status--waiting.incorrect {\n\t\t\tbackground: rgba( $color-orange, 0.2 );\n\t\t\t.llms-status-icon {\n\t\t\t\tbackground-color: $color-orange;\n\t\t\t}\n\t\t}\n\n\t\t&.status--graded.correct {\n\t\t\tbackground: rgba( $color-green, 0.2 );\n\t\t\t.llms-status-icon {\n\t\t\t\tbackground-color: $color-green;\n\t\t\t}\n\t\t}\n\t\t&.status--graded.incorrect {\n\t\t\tbackground: rgba( $color-red, 0.2 );\n\t\t\t.llms-status-icon {\n\t\t\t\tbackground-color: $color-red;\n\t\t\t}\n\t\t}\n\n\t\t.llms-question-title {\n\t\t\tfloat: left;\n\t\t\tmargin: 0;\n\t\t\tline-height: 1;\n\t\t}\n\n\t\t.llms-points {\n\t\t\tfloat: right;\n\t\t\tline-height: 1;\n\t\t}\n\n\t\t.llms-status-icon-tip {\n\t\t\tposition: absolute;\n\t\t\tright: -12px;\n\t\t\ttop: -2px;\n\t\t}\n\n\t\t.llms-status-icon {\n\t\t\tcolor: rgba( 255, 255, 255, 0.65 );\n\t\t\tborder-radius: 50%;\n\t\t\tfont-size: 30px;\n\t\t\theight: 40px;\n\t\t\tline-height: 40px;\n\t\t\ttext-align: center;\n\t\t\twidth: 40px;\n\t\t}\n\n\t\t.llms-quiz-attempt-question-main {\n\t\t\tdisplay: none;\n\t\t\tpadding: 0 10px 10px;\n\n\t\t\t.llms-quiz-results-label {\n\t\t\t\tfont-weight: 700;\n\t\t\t\tmargin-bottom: 10px;\n\t\t\t}\n\n\t\t\tul.llms-quiz-attempt-answers {\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\t\t\t\tli.llms-quiz-attempt-answer {\n\t\t\t\t\tpadding: 0;\n\t\t\t\t\tmargin: 0 0 0 30px;\n\t\t\t\t\t&:only-child {\n\t\t\t\t\t\tlist-style-type: none;\n\t\t\t\t\t\tmargin-left: 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\timg {\n\t\t\t\theight: auto;\n\t\t\t\tmax-width: 200px;\n\t\t\t}\n\n\t\t\t.llms-quiz-attempt-answer-section {\n\t\t\t\tborder-top: 2px solid rgba( #fff, 0.5 );\n\t\t\t\tmargin-top: 20px;\n\t\t\t\tpadding-top: 20px;\n\t\t\t\t&:first-child {\n\t\t\t\t\tborder-top: none;\n\t\t\t\t\tmargin-top: 0;\n\t\t\t\t\tpadding-top: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t&.type--picture_choice,\n\t\t&.type--picture_reorder {\n\t\t\tul.llms-quiz-attempt-answers {\n\t\t\t\tlist-style-type: none;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\n\t\t\t\tli.llms-quiz-attempt-answer {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\tlist-style-type: none;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: 5px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&.type--removed {\n\t\t\t.llms-question-title {\n\t\t\t\tfont-style: italic;\n\t\t\t\tfont-weight: normal;\n\t\t\t}\n\t\t\topacity: .5;\n\t\t}\n\n\t}\n}\n",".single-llms_quiz {\n\n\t@import \"../_includes/quiz-result-question-list\";\n\n\t.llms-return {\n\t\tmargin-bottom: 10px;\n\t}\n\n\t.llms-quiz-results {\n\t\t@include clearfix();\n\n\t\t.llms-donut {\n\t\t\t&.passing {\n\t\t\t\tcolor: $color-success;\n\t\t\t\tsvg path {\n\t\t\t\t\tstroke: $color-success;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&.pending {\n\t\t\t\tcolor: #555;\n\t\t\t\tsvg path {\n\t\t\t\t\tstroke: #555;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&.failing {\n\t\t\t\tcolor: $color-danger;\n\t\t\t\tsvg path {\n\t\t\t\t\tstroke: $color-danger;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.llms-quiz-results-aside,\n\t\t.llms-quiz-results-main,\n\t\t.llms-quiz-results-history {\n\t\t\tmargin-bottom: 20px;\n\t\t}\n\n\n\t\t@media all and (min-width: 600px) {\n\t\t\t.llms-quiz-results-aside {\n\t\t\t\tfloat: left;\n\t\t\t\twidth: 220px;\n\t\t\t}\n\t\t\t.llms-quiz-results-main,\n\t\t\t.llms-quiz-results-history {\n\t\t\t\tfloat: left;\n\t\t\t\twidth: calc( 100% - 300px );\n\t\t\t}\n\t\t}\n\n\t}\n\n\tul.llms-quiz-meta-info,\n\tul.llms-quiz-meta-info li {\n\t\tlist-style-type: none;\n\t\tmargin: 0;\n\t\tpadding: 0\n\t}\n\n\tul.llms-quiz-meta-info {\n\t\tmargin-bottom: 10px;\n\t}\n\n\t.llms-quiz-buttons {\n\t\tmargin-top: 10px;\n\t\ttext-align: left;\n\n\t\tform { display: inline-block; }\n\t}\n\n}\n\n.llms-quiz-question-wrapper {\n\tmin-height: 140px;\n\tposition: relative;\n\t.llms-quiz-loading {\n\t\tbottom: 20px;\n\t\tleft: 0;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttext-align: center;\n\t\tz-index: 1;\n\t}\n}\n\n.llms-quiz-ui {\n\tbackground: #fcfcfc;\n\tpadding: 20px;\n\tposition: relative;\n\n\t.llms-quiz-header {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tmargin: 0 0 30px;\n\t}\n\n\t.llms-progress {\n\t\tbackground-color: #f1f2f1;\n\t\tflex-direction: row;\n\t\theight: 8px;\n\t\tmargin: 0;\n\t\toverflow: hidden;\n\t\t.progress-bar-complete {\n\t\t\ttransition: width 0.3s ease-in;\n\t\t\twidth: 0;\n\t\t}\n\t}\n\n\t.llms-error {\n\t\t@include clearfix();\n\t\tbackground: $color-danger;\n\t\tborder-radius: 4px;\n\t\tcolor: #fff;\n\t\tmargin: 10px 0;\n\t\tpadding: 10px;\n\n\t\ta {\n\t\t\tcolor: rgba( #fff, 0.6 );\n\t\t\tfloat: right;\n\t\t\tfont-size: 22px;\n\t\t\tline-height: 1;\n\t\t\ttext-decoration: none;\n\t\t}\n\n\t}\n\n\t.llms-quiz-counter {\n\t\tdisplay: none;\n\n\t\tcolor: #6a6a6a;\n\t\tfloat: right;\n\t\tfont-size: 18px;\n\n\t\t.llms-sep {\n\t\t\tmargin: 0 5px;\n\t\t}\n\t}\n\n\t.llms-quiz-nav {\n\t\tmargin-top: 20px;\n\t\tbutton {\n\t\t\tmargin: 0 10px 0 0;\n\t\t}\n\t}\n\n}\n\n// single question wrapper\n.llms-question-wrapper {\n\n\t.llms-question-text {\n\t\tfont-size: 30px;\n\t\tfont-weight: 400;\n\t\tmargin-bottom: 15px;\n\t}\n\n\tol.llms-question-choices {\n\t\tlist-style-type: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\n\t\tli.llms-choice {\n\t\t\tborder-bottom: 1px solid #e8e8e8;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tposition: relative;\n\n\t\t\t&:last-child {\n\t\t\t\tborder-bottom: none;\n\t\t\t}\n\n\t\t\t&.type--picture {\n\t\t\t\tborder-bottom: none;\n\t\t\t\tlabel {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\tpadding: 0;\n\t\t\t\t}\n\t\t\t\t.llms-marker {\n\t\t\t\t\tbottom: 10px;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tright: 10px;\n\t\t\t\t}\n\t\t\t\t.llms-choice-image {\n\t\t\t\t\tmargin: 2px;\n\t\t\t\t\tpadding: 20px;\n\t\t\t\t\ttransition: background 0.4s ease;\n\t\t\t\t\timg {\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\twidth: 100%;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tinput:checked ~ .llms-choice-image {\n\t\t\t\t\tbackground: #efefef\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tinput {\n\t\t\t\tdisplay: none;\n\t\t\t\tleft: 0;\n\t\t\t\tpointer-events: none;\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tvisibility: hidden;\n\t\t\t}\n\n\t\t\tlabel {\n\t\t\t\tdisplay: block;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 10px 20px;\n\t\t\t\tposition: relative;\n\t\t\t\t// &:hover {\n\t\t\t\t&.hovered {\n\t\t\t\t\t.llms-marker:not(.type--lister) {\n\t\t\t\t\t\t.iterator {\n\t\t\t\t\t\t\tdisplay: none;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.fa {\n\t\t\t\t\t\t\tdisplay: inline;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-marker {\n\n\t\t\t\tbackground: #f0f0f0;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tfont-size: 20px;\n\t\t\t\theight: 40px;\n\t\t\t\tline-height: 40px;\n\t\t\t\tmargin-right: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\ttransition: all 0.2s ease;\n\t\t\t\tvertical-align: middle;\n\t\t\t\twidth: 40px;\n\n\t\t\t\t.fa {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t&.type--lister,\n\t\t\t\t&.type--checkbox { border-radius: 4px; }\n\t\t\t\t&.type--radio { border-radius: 50%; }\n\n\t\t\t}\n\n\t\t\tinput:checked + .llms-marker {\n\t\t\t\tbackground: $color-brand-pink;\n\t\t\t\tcolor: #fff;\n\t\t\t\t.iterator {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t\t.fa {\n\t\t\t\t\tdisplay: inline;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-choice-text {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tfont-size: 18px;\n\t\t\t\tfont-weight: 400;\n\t\t\t\tline-height: 1.6;\n\t\t\t\tmargin-bottom: 0;\n\t\t\t\tvertical-align: middle;\n\t\t\t\twidth: calc( 100% - 60px );\n\t\t\t}\n\n\t\t}\n\t}\n\n}\n\n.llms-quiz-timer {\n\tbackground: #fff;\n\tborder: 1px solid $color-green;\n\tborder-radius: 4px;\n\tcolor: $color-green;\n\tfloat: right;\n\tfont-size: 18px;\n\tline-height: 1;\n\tmargin-left: 20px;\n\tpadding: 8px 12px;\n\tposition: relative;\n\twhite-space: nowrap;\n\tz-index: 1;\n\n\t&.color-half {\n\t\tborder-color: $color-orange;\n\t\tcolor: $color-orange\n\t}\n\n\t&.color-empty {\n\t\tborder-color: $color-danger;\n\t\tcolor: $color-danger\n\t}\n\n\t.llms-tiles {\n\t\tdisplay: inline-block;\n\t\tmargin-left: 5px;\n\t}\n}\n\n\n// /* My Quizzes */\n// .llms-quiz-results {\n// @extend %cf;\n// font-family: \"Open Sans\",Verdana,Geneva,sans-serif,sans-serif;\n// position: relative;\n// }\n// .llms-quiz-results > h3 {\n// background-color: #f5f5f5;\n// padding: 4px;\n// }\n\n// .llms-quiz-result-details {\n// float: left;\n// ul {\n// list-style-type: none;\n// float: left;\n// li {\n// list-style-type: none;\n// font-size: 20px;\n// }\n// }\n// }\n// .llms-attempts {\n// font-weight: bold;\n// }\n\n// .llms-pass-perc {\n// font-weight: bold;\n// }\n// .llms-content-block {\n// margin: 6px 0;\n// }\n// .llms-question-wrapper {\n// margin: 40px 0 20px 0;\n// }\n// .llms-question-count {\n// margin-bottom: 20px;\n// }\n\n\n",".voucher-expand {\n\tdisplay: none;\n}",".llms-access-plans {\n\t@extend %clearfix;\n\n\t@media all and (min-width: 600px) {\n\t\t$cols: 1;\n\t\t@while $cols <= 5 {\n\t\t\t&.cols-#{$cols} .llms-access-plan {\n\t\t\t\twidth: calc( 100% / $cols );\n\t\t\t}\n\t\t\t$cols: $cols + 1;\n\t\t}\n\t}\n\n}\n\n.llms-free-enroll-form {\n\tmargin-bottom: 0;\n}\n\n.llms-access-plan {\n\tbox-sizing: border-box;\n\tfloat: left;\n\ttext-align: center;\n\twidth: 100%;\n\n\t.llms-access-plan-footer,\n\t.llms-access-plan-content {\n\t\tbackground: #f1f1f1;\n\t}\n\n\t&.featured {\n\n\t\t.llms-access-plan-featured {\n\t\t\tbackground: lighten( $color-brand-blue, 8 );\n\t\t}\n\n\t\t.llms-access-plan-footer,\n\t\t.llms-access-plan-content {\n\t\t\tborder-left: 3px solid $color-brand-blue;\n\t\t\tborder-right: 3px solid $color-brand-blue;\n\t\t}\n\n\t\t.llms-access-plan-footer {\n\t\t\tborder-bottom-color: $color-brand-blue;\n\t\t}\n\n\t}\n\n\t&.on-sale {\n\t\t.price-regular { text-decoration: line-through; }\n\t}\n\n\t.stamp {\n\t\tbackground: $color-brand-blue;\n\t\tcolor: #fff;\n\t\tfont-size: 11px;\n\t\tfont-style: normal;\n\t\tfont-weight: 300;\n\t\tpadding: 2px 3px;\n\t\tvertical-align: top;\n\t}\n\n\t.llms-access-plan-restrictions ul { margin: 0; }\n\n}\n\t.llms-access-plan-featured {\n\t\tcolor: #fff;\n\t\tfont-size: 14px;\n\t\tfont-weight: 400;\n\t\tmargin: 0 2px 0 2px;\n\t}\n\n\t.llms-access-plan-content {\n\t\tmargin: 0 2px 0;\n\n\t\t.llms-access-plan-pricing {\n\t\t\tpadding: 10px 0 0;\n\t\t}\n\t}\n\n\t\t.llms-access-plan-title {\n\t\t\tbackground: $color-brand-blue;\n\t\t\tcolor: #fff;\n\t\t\tmargin-bottom: 0;\n\t\t\tpadding: 10px;\n\t\t}\n\n\t\t.llms-access-plan-pricing {\n\n\t\t\t.llms-price-currency-symbol {\n\t\t\t\tfont-size: 14px;\n\t\t\t\tvertical-align: top;\n\t\t\t}\n\n\t\t}\n\n\t\t\t.llms-access-plan-price {\n\t\t\t\tfont-size: 18px;\n\t\t\t\tfont-variant: small-caps;\n\t\t\t\tline-height: 20px;\n\n\t\t\t\t.lifterlms-price {\n\t\t\t\t\tfont-weight: 700;\n\t\t\t\t}\n\n\t\t\t\t&.sale {\n\t\t\t\t\tpadding: 5px 0;\n\t\t\t\t\tborder-top: 1px solid #d0d0d0;\n\t\t\t\t\tborder-bottom: 1px solid #d0d0d0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-access-plan-trial,\n\t\t\t.llms-access-plan-schedule,\n\t\t\t.llms-access-plan-sale-end,\n\t\t\t.llms-access-plan-expiration {\n\t\t\t\tfont-size: 15px;\n\t\t\t\tfont-variant: small-caps;\n\t\t\t\tline-height: 1.2;\n\t\t\t}\n\n\t\t.llms-access-plan-description {\n\t\t\tfont-size: 16px;\n\t\t\tpadding: 10px 10px 0;\n\n\t\t\tul {\n\t\t\t\tmargin: 0;\n\t\t\t\tli {\n\t\t\t\t\tborder-bottom: 1px solid #d0d0d0;\n\t\t\t\t\tlist-style-type: none;\n\t\t\t\t\t&:last-child {\n\t\t\t\t\t\tborder-bottom: none;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdiv, img, p, ul, li {\n\t\t\t\t&:last-child { margin-bottom: 0; }\n\t\t\t}\n\t\t}\n\n\t\t.llms-access-plan-restrictions {\n\t\t\t.stamp {\n\t\t\t\tvertical-align: baseline;\n\t\t\t}\n\t\t\tul {\n\t\t\t\tmargin: 0;\n\t\t\t\tli {\n\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\tline-height: 14px;\n\t\t\t\t\tlist-style-type: none;\n\t\t\t\t}\n\t\t\t}\n\t\t\ta {\n\t\t\t\tcolor: $color-brand-orange;\n\t\t\t\t&:hover {\n\t\t\t\t\tcolor: $color-brand-orange-dark;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t.llms-access-plan-footer {\n\t\tborder-bottom: 3px solid #f1f1f1;\n\t\tpadding: 10px;\n\t\tmargin: 0 2px 2px 2px;\n\n\t\t.llms-access-plan-pricing {\n\t\t\tpadding: 0 0 10px;\n\t\t}\n\t}\n\n\n.webui-popover-content .llms-members-only-restrictions {\n\ttext-align: center;\n\tul,ol,li,p {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\tul,ol,li {\n\t\tlist-style-type: none;\n\t}\n\tli {\n\t\tpadding: 8px 0;\n\t\tborder-top: 1px solid #3b3b3b;\n\t\t&:first-child {\n\t\t\tborder-top: none;\n\t\t}\n\t\ta {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n",".llms-checkout-wrapper {\n\tform.llms-login {\n\t\tborder: 3px solid $color-brand-blue;\n\t\tdisplay: none;\n\t\tmargin-bottom: 10px;\n\t}\n\t.llms-form-heading {\n\t\tbackground: $color-brand-blue;\n\t\tcolor: #fff;\n\t\tmargin: 0 0 5px;\n\t\tpadding: 10px;\n\t}\n}\n\n.llms-checkout {\n\tbackground: #fff;\n\tposition: relative;\n}\n\n.llms-checkout-cols-2 {\n\t@extend %clearfix;\n\n\t@media all and (min-width: 800px) {\n\n\t\t.llms-checkout-col {\n\t\t\tfloat: left;\n\n\t\t\t&.llms-col-1 {\n\t\t\t\tmargin-right: 5px;\n\t\t\t\twidth: calc( 58% - 5px );\n\t\t\t}\n\t\t\t&.llms-col-2 {\n\t\t\t\tmargin-left: 5px;\n\t\t\t\twidth: calc( 42% - 5px );\n\n\t\t\t\tbutton {\n\t\t\t\t\twidth: 100%;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n}\n\n\t.llms-checkout-section {\n\t\tborder: 3px solid $color-brand-blue;\n\t\tmargin-bottom: 10px;\n\t\tposition: relative;\n\t}\n\n\t\t.llms-checkout-section-content {\n\t\t\tmargin: 10px;\n\t\t\t&.llms-form-fields {\n\t\t\t\tmargin: 0px;\n\t\t\t}\n\n\t\t\t.llms-label {\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-variant: small-caps;\n\t\t\t\ttext-transform: lowercase;\n\t\t\t}\n\n\t\t\t.llms-order-summary {\n\t\t\t\tlist-style-type: none;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\n\t\t\t\tli { list-style-type: none; }\n\n\t\t\t\tli.llms-pricing {\n\t\t\t\t\t&.on-sale,\n\t\t\t\t\t&.has-coupon {\n\t\t\t\t\t\t.price-regular { text-decoration: line-through; }\n\t\t\t\t\t}\n\t\t\t\t}\n\n\n\t\t\t}\n\n\t\t\t.llms-coupon-wrapper {\n\t\t\t\tborder-top: 1px solid #dadada;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\tpadding-top: 10px;\n\n\t\t\t\t.llms-coupon-entry {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t\tmargin-top: 10px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t.llms-form-field.llms-payment-gateway-option {\n\n\t\t\tlabel + span.llms-description {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmargin-left: 5px;\n\t\t\t}\n\n\t\t\t.llms-description {\n\t\t\t\ta {\n\t\t\t\t\tborder: none;\n\t\t\t\t\tbox-shadow: none;\n\t\t\t\t\ttext-decoration: none;\n\t\t\t\t}\n\t\t\t\timg {\n\t\t\t\t\tdisplay: inline;\n\t\t\t\t\tmax-height: 22px;\n\t\t\t\t\tvertical-align: middle;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t.llms-checkout-wrapper ul.llms-payment-gateways {\n\t\t\tmargin: 5px 0 0;\n\t\t\tpadding: 0;\n\t\t}\n\t\tul.llms-payment-gateways {\n\t\t\tlist-style-type: none;\n\n\t\t\tli:last-child:after {\n\t\t\t\tborder-bottom: 1px solid #dadada;\n\t\t\t\tcontent: '';\n\t\t\t\tdisplay: block;\n\t\t\t\tmargin: 10px;\n\t\t\t}\n\n\t\t\t.llms-payment-gateway {\n\t\t\t\tmargin-bottom: 5px;\n\t\t\t\tlist-style-type: none;\n\t\t\t\t&:last-child {\n\t\t\t\t\tmargin-bottom: none;\n\t\t\t\t}\n\n\t\t\t\t&.is-selected {\n\t\t\t\t\t.llms-payment-gateway-option label {\n\t\t\t\t\t\tfont-weight: 700;\n\t\t\t\t\t}\n\t\t\t\t\t.llms-gateway-fields {\n\t\t\t\t\t\tdisplay: block;\n\n\t\t\t\t\t\t.llms-notice {\n\t\t\t\t\t\t\tmargin-left: 10px;\n\t\t\t\t\t\t\tmargin-right: 10px;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t.llms-form-field {\n\t\t\t\t\tpadding-bottom: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t\t.llms-gateway-description {\n\t\t\t\t\tmargin-left: 40px;\n\t\t\t\t}\n\n\t\t\t\t.llms-gateway-fields {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t\tmargin: 5px 0 20px;\n\t\t\t\t}\n\n\t\t\t.llms-payment-gateway-error {\n\t\t\t\tpadding: 0 10px;\n\t\t\t}\n\t\t}\n\n\t\t.llms-checkout-confirm {\n\t\t\tmargin: 0 10px;\n\t\t}\n\n\t\t.llms-payment-method {\n\t\t\tmargin: 10px 10px 0;\n\t\t}\n\n\t\t.llms-gateway-description {\n\t\t\tp {\n\t\t\t\tfont-size: 85%;\n\t\t\t\tfont-style: italic;\n\t\t\t\tmargin-bottom: 0;\n\t\t\t}\n\t\t}\n",".llms-form-fields {\n\t@extend %clearfix;\n\tbox-sizing: border-box;\n\t& * {\n\t\tbox-sizing: border-box;\n\t}\n\t&.flush {\n\t\t.llms-form-field {\n\t\t\tpadding: 0 0 10px;\n\t\t}\n\t}\n\n\t.wp-block-columns, .wp-block-column {\n\t\tmargin-bottom: 0;\n\t}\n}\n\n\t.llms-form-heading {\n\t\tpadding: 0 10px 10px;\n\t}\n\n\t.llms-form-field {\n\t\tfloat: left;\n\t\tpadding: 0 10px 10px;\n\t\tposition: relative;\n\t\twidth: 100%;\n\n\t\t// Ensure \"empty\" labels don't break the layout.\n\t\t// See the billing_address_2 field which has no label.\n\t\tlabel:empty:after {\n\t\t\tcontent: '\\00a0';\n\t\t}\n\n\t\t&.valid {\n\t\t\tinput[type=\"date\"], input[type=\"time\"], input[type=\"datetime-local\"], input[type=\"week\"], input[type=\"month\"], input[type=\"text\"], input[type=\"email\"], input[type=\"url\"], input[type=\"password\"], input[type=\"search\"], input[type=\"tel\"], input[type=\"number\"], textarea, select {\n\t\t\t\tbackground: rgba( #83c373, .3 );\n\t\t\t\tborder-color: #83c373;\n\t\t\t}\n\t\t}\n\n\t\t&.error,\n\t\t&.invalid {\n\t\t\tinput[type=\"date\"], input[type=\"time\"], input[type=\"datetime-local\"], input[type=\"week\"], input[type=\"month\"], input[type=\"text\"], input[type=\"email\"], input[type=\"url\"], input[type=\"password\"], input[type=\"search\"], input[type=\"tel\"], input[type=\"number\"], textarea, select {\n\t\t\t\tbackground: rgba( $color-red, .3 );\n\t\t\t\tborder-color: $color-red;\n\t\t\t}\n\t\t}\n\n\t\t&.llms-visually-hidden-field {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t&.align-right {\n\t\t\ttext-align: right;\n\t\t}\n\n\t\t@media screen and ( min-width: 600px ) {\n\t\t\t$i: 1;\n\t\t\t@while $i <= 12 {\n\t\t\t\t&.llms-cols-#{$i} {\n\t\t\t\t\twidth: calc( $i / 12 ) * 100%;\n\t\t\t\t\t$i: $i + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&.type-hidden { padding: 0; }\n\n\t\t&.type-radio,\n\t\t&.type-checkbox {\n\t\t\tinput,\n\t\t\tlabel {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\twidth: auto;\n\t\t\t}\n\t\t\tinput {\n\t\t\t\tmargin-right: 5px;\n\t\t\t}\n\t\t\tlabel + .llms-description {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\n\t\t&.type-radio:not(.is-group) {\n\n\t\t\tinput[type=\"radio\"] {\n\t\t\t\tposition: absolute;\n\t\t\t\topacity: 0;\n\t\t\t\tvisibility: none;\n\t\t\t}\n\n\t\t\tlabel:before {\n\t\t\t\tbackground: #fafafa;\n\t\t\t\tbackground-position: -24px 0;\n\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tbox-shadow: hsla( 0,0%,100%,.15) 0 1px 1px, inset hsla(0,0%,0%,.35) 0 0 0 1px;\n\t\t\t\tcontent: '';\n\t\t\t\tcursor: pointer;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\theight: 22px;\n\t\t\t\tmargin-right: 5px;\n\t\t\t\tposition: relative;\n\t\t\t\ttransition: background-position .15s cubic-bezier(.8, 0, 1, 1);\n\t\t\t\ttop: -3px;\n\t\t\t\tvertical-align: middle;\n\t\t\t\twidth: 22px;\n\t\t\t\tz-index: 2;\n\t\t\t}\n\n\t\t\tinput[type=\"radio\"]:checked + label:before {\n\t\t\t\ttransition: background-position .2s .15s cubic-bezier(0, 0, .2, 1);\n\t\t\t\tbackground-position: 0 0;\n\t\t\t\tbackground-image: radial-gradient(ellipse at center, $color-brand-blue 0%,$color-brand-blue 40%, #fafafa 45%);\n\t\t\t}\n\n\t\t}\n\n\t\t.llms-input-group {\n\t\t\tmargin-top: 5px;\n\t\t\t.llms-form-field {\n\t\t\t\tpadding: 0 0 5px 5px;\n\t\t\t}\n\t\t}\n\n\t\t&.type-reset,\n\t\t&.type-button,\n\t\t&.type-submit {\n\t\t\tbutton:not(.auto) { width: 100%; }\n\t\t}\n\n\t\t.llms-description {\n\t\t\tfont-size: 14px;\n\t\t\tfont-style: italic;\n\t\t}\n\n\t\t.llms-required {\n\t\t\tcolor: $color-red;\n\t\t\tmargin-left: 4px;\n\t\t}\n\n\t\tinput, textarea, select {\n\t\t\twidth: 100%;\n\t\t\tmargin-bottom: 5px;\n\t\t}\n\n\t\t.select2-container .select2-selection--single {\n\t\t\theight: auto;\n\t\t\tpadding: 4px 6px;\n\t\t}\n\t\t.select2-container--default .select2-selection--single .select2-selection__arrow {\n\t\t\theight: 100%;\n\t\t}\n\n\t}\n\n\n\t.llms-password-strength-meter {\n\t\tborder: 1px solid #dadada;\n\t\tdisplay: none;\n\t\tfont-size: 10px;\n\t\tmargin-top: -10px;\n\t\tpadding: 1px;\n\t\tposition: relative;\n\t\ttext-align: center;\n\n\t\t&:before {\n\t\t\tbottom: 0;\n\t\t\tcontent: '';\n\t\t\tleft: 0;\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\ttransition: width .4s ease;\n\t\t}\n\n\t\t&.mismatch,\n\t\t&.too-short,\n\t\t&.very-weak {\n\t\t\tborder-color: #e35b5b;\n\t\t\t&:before {\n\t\t\t\tbackground: rgba( #e35b5b, 0.25 );\n\t\t\t\twidth: 25%;\n\t\t\t}\n\t\t}\n\n\t\t&.too-short:before {\n\t\t\twidth: 0;\n\t\t}\n\n\t\t&.weak {\n\t\t\tborder-color: #f78b53;\n\t\t\t&:before {\n\t\t\t\tbackground: rgba( #f78b53, 0.25 );\n\t\t\t\twidth: 50%;\n\t\t\t}\n\t\t}\n\n\t\t&.medium {\n\t\t\tborder-color: #ffc733;\n\t\t\t&:before {\n\t\t\t\tbackground: rgba( #ffc733, 0.25 );\n\t\t\t\twidth: 75%;\n\t\t\t}\n\t\t}\n\n\t\t&.strong {\n\t\t\tborder-color: #83c373;\n\t\t\t&:before {\n\t\t\t\tbackground: rgba( #83c373, 0.25 );\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\t}\n",".llms-widget-syllabus--collapsible {\n\n\t.llms-section {\n\n\t\t.section-header {\n\n\t\t\tcursor: pointer;\n\n\t\t}\n\n\t\t&.llms-section--opened {\n\n\t\t\t.llms-collapse-caret {\n\t\t\t\t.fa-caret-right { display: none; }\n\t\t\t}\n\n\t\t}\n\n\t\t&.llms-section--closed {\n\n\t\t\t.llms-collapse-caret {\n\t\t\t\t.fa-caret-down { display: none; }\n\t\t\t}\n\n\t\t\t.llms-lesson {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t.llms-syllabus-footer {\n\n\t\ttext-align: left;\n\n\t}\n\n}\n",".llms-student-dashboard {\n\n\t.llms-sd-nav {}\n\n\t.llms-sd-title {\n\t\tmargin: 25px 0;\n\t}\n\n\t.llms-sd-items { // ul\n\t\t@extend %clearfix;\n\t\tlist-style-type: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\t\t.llms-sd-item { // li\n\t\t\tfloat: left;\n\t\t\tlist-style-type: none;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\n\t\t\t&:last-child {\n\t\t\t\t.llms-sep {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-sep {\n\t\t\t\tcolor: #333;\n\t\t\t\tmargin: 0 5px;\n\t\t\t}\n\t\t}\n\n\t.llms-sd-section {\n\t\tmargin-bottom: 25px;\n\t\t.llms-sd-section-footer {\n\t\t\tmargin-top: 10px;\n\t\t}\n\t}\n\n\t.orders-table {\n\n\t\tborder: 1px solid #f5f5f5;\n\t\twidth: 100%;\n\n\t\tthead {\n\t\t\tdisplay: none;\n\t\t\tth,td {\n\t\t\t\tfont-weight: 700;\n\t\t\t}\n\t\t\t@media all and ( min-width: 600px ) {\n\t\t\t\tdisplay: table-header-group;\n\t\t\t}\n\t\t}\n\n\t\ttbody {\n\t\t\ttr:nth-child( even ) {\n\t\t\t\ttd, th {\n\t\t\t\t\tbackground: #f9f9f9;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttfoot {\n\t\t\tth, td {\n\t\t\t\tpadding: 10px;\n\t\t\t\ttext-align: right;\n\t\t\t\t&:last-child { border-bottom-width: 0; }\n\t\t\t}\n\t\t}\n\n\t\tth {\n\t\t\tfont-weight: 700;\n\t\t}\n\n\t\tth, td {\n\t\t\tborder-color: #efefef;\n\t\t\tborder-style: solid;\n\t\t\tborder-width: 0;\n\t\t\tdisplay: block;\n\t\t\tpadding: 8px 12px;\n\t\t\ttext-align: center;\n\n\t\t\t.llms-button-primary {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n\n\t\t\t&:last-child {\n\t\t\t\tborder-bottom-width: 1px;\n\t\t\t}\n\n\t\t\t&:before {\n\t\t\t\tcontent: attr( data-label );\n\t\t\t}\n\n\t\t\t@media all and ( min-width: 600px ) {\n\t\t\t\tborder-bottom-width: 1px;\n\t\t\t\tdisplay: table-cell;\n\t\t\t\ttext-align: left;\n\t\t\t\t&:first-child { width: 220px; }\n\t\t\t\t&:before { display: none; }\n\t\t\t}\n\n\t\t}\n\n\t\t@media all and ( min-width: 600px ) {\n\t\t\t&.transactions th:first-child {width: auto; }\n\t\t}\n\n\t}\n\n\t@include order_status_badges();\n\n\t.llms-person-form-wrapper {\n\t\t.llms-change-password { display: none; }\n\t}\n\n\t.order-primary {\n\n\t\t@media all and ( min-width: 600px ) {\n\t\t\tfloat: left;\n\t\t\twidth: 68%;\n\t\t}\n\n\t}\n\t.order-secondary {\n\n\t\t@media all and ( min-width: 600px ) {\n\t\t\tfloat: left;\n\t\t\twidth: 32%;\n\t\t}\n\n\t\tform {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t}\n\n\t// stack columns when alternate layout declared via filter\n\t@media all and ( min-width: 600px ) {\n\t\t.llms-view-order.llms-stack-cols {\n\t\t\t.order-primary,\n\t\t\t.order-secondary {\n\t\t\t\tfloat: none;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\t}\n\n\t.llms-switch-payment-source {\n\t\t.llms-notice,\n\t\t.entry-content .llms-notice {\n\t\t\tmargin-left: 10px;\n\t\t\tmargin-right: 10px;\n\t\t}\n\t}\n\n\t.llms-switch-payment-source-main {\n\t\tborder: none;\n\t\tdisplay: none;\n\t\tmargin: 0;\n\t\tul.llms-payment-gateways {\n\t\t\tpadding: 10px 15px 0;\n\t\t\tmargin: 0;\n\t\t}\n\t\t.llms-payment-method,\n\t\tul.llms-order-summary {\n\t\t\tpadding: 0 25px 10px;\n\t\t\tmargin: 0;\n\t\t\tlist-style-type: none;\n\t\t\tli { list-style-type: none; }\n\t\t}\n\t}\n\n\t/**\n\t * Dashboard Home\n\t */\n\t.llms-loop-list {\n\t\tmargin: 0 -10px;\n\t}\n\n}\n\n// My Grades course list\n.llms-sd-grades {\n\t.llms-table {\n\t\t.llms-progress {\n\t\t\tdisplay: block;\n\t\t\tmargin: 0;\n\t\t\t.llms-progress-bar {\n\t\t\t\ttop: 0;\n\t\t\t\theight: 1.4em;\n\t\t\t}\n\t\t\t.progress__indicator {\n\t\t\t\tfont-size: 1em;\n\t\t\t\tposition: relative;\n\t\t\t\tright: 0.4em;\n\t\t\t\ttop: 0.2em;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n// grades table for a single course\n.llms-table.llms-single-course-grades {\n\n\ttbody {\n\t\ttr:first-child td, tr:first-child th {\n\t\t\tbackground-color: #eaeaea;\n\t\t}\n\t}\n\n\tth {\n\t\tfont-weight: 400;\n\t}\n\n\ttd {\n\t\t.llms-donut {\n\t\t\tdisplay: inline-block;\n\t\t\tvertical-align: middle;\n\t\t}\n\t\t.llms-status {\n\t\t\tmargin-right: 4px;\n\t\t}\n\t\t.llms-donut + .llms-status {\n\t\t\tmargin-left: 4px;\n\t\t}\n\t}\n\n\tth.llms-section_title {\n\t\tfont-size: 110%;\n\t\tfont-weight: 700;\n\t}\n\n\ttd.llms-lesson_title {\n\t\tpadding-left: 36px;\n\t\tmax-width: 40%;\n\t}\n\ttd.llms-associated_quiz {\n\t\t.llms-donut {\n\t\t\tdisplay: inline-block;\n\t\t\tmargin-right: 5px;\n\t\t\tvertical-align: middle;\n\t\t}\n\t}\n\ttd.llms-lesson_title {\n\t\ta[href=\"#\"] {\n\t\t\tpointer-events: none;\n\t\t}\n\t\ta[href^=\"#\"] {\n\t\t\tcolor: inherit;\n\t\t\tposition: relative;\n\t\t\t.llms-tooltip {\n\t\t\t\tmax-width: 380px;\n\t\t\t\twidth: 380px;\n\t\t\t\t&.show {\n\t\t\t\t\ttop: -54px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n.llms-sd-widgets {\n\tdisplay: flex;\n\n\t.llms-sd-widget {\n\t\tbackground: #f9f9f9;\n\t\tflex: 1;\n\t\tmargin: 10px 10px 20px;\n\t\tpadding: 0 0 20px;\n\t\t&:first-child {\n\t\t\tmargin-left: 0;\n\t\t}\n\t\t&:last-child {\n\t\t\tmargin-right: 0;\n\t\t}\n\n\t\t.llms-sd-widget-title {\n\t\t\tbackground: $color-brand-blue;\n\t\t\tcolor: #fff;\n\t\t\tfont-size: 18px;\n\t\t\tline-height: 1;\n\t\t\tmargin: 0 0 20px;\n\t\t\tpadding: 10px;\n\t\t}\n\n\t\t.llms-sd-widget-empty {\n\t\t\tfont-size: 14px;\n\t\t\tfont-style: italic;\n\t\t\topacity: 0.5;\n\t\t\ttext-align: center;\n\t\t}\n\n\t\t.llms-donut {\n\t\t\tmargin: 0 auto;\n\t\t}\n\n\t\t.llms-sd-date {\n\t\t\topacity: 0.8;\n\t\t\ttext-align: center;\n\t\t\tfont-size: 22px;\n\t\t\tline-height: 1.1;\n\t\t\tspan {\n\t\t\t\tdisplay: block;\n\t\t\t\t&.day {\n\t\t\t\t\tfont-size: 52px;\n\t\t\t\t}\n\t\t\t\t&.diff {\n\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\tfont-style: italic;\n\t\t\t\t\tmargin-top: 8px;\n\t\t\t\t\topacity: 0.75;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.llms-achievement {\n\t\t\tbackground: transparent;\n\t\t\tmargin: 0 auto;\n\t\t\tmax-width: 120px;\n\t\t\t.llms-achievement-title {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\n\t}\n\n\n}\n\n\n.llms-sd-pagination {\n\tmargin-top: 24px;\n\t@include clearfix;\n\t.llms-button-secondary {\n\t\tdisplay: inline-block;\n\t\t&.prev { float: left; }\n\t\t&.next { float: right; }\n\t}\n}\n\n\n.llms-sd-notification-center {\n\t.llms-notification {\n\t\tz-index: 1;\n\t}\n}\n",".llms-table {\n\tborder: 1px solid #efefef;\n\twidth: 100%;\n\n\tthead {\n\t\tth,td {\n\t\t\tfont-weight: 700;\n\t\t}\n\t}\n\n\ttbody {\n\t\ttr:nth-child( odd ) {\n\t\t\ttd, th {\n\t\t\t\tbackground: #f9f9f9;\n\t\t\t}\n\t\t}\n\t\ttr:last-child {\n\t\t\tborder-bottom-width: 0;\n\t\t}\n\t}\n\n\ttfoot {\n\t\ttr {\n\t\t\tbackground: #f9f9f9;\n\t\t\t.llms-pagination .page-numbers {\n\t\t\t\tmargin: 0;\n\t\t\t}\n\t\t\t.llms-table-sort {\n\t\t\t\ttext-align: right;\n\t\t\t\tform, select, input, button {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tth {\n\t\tfont-weight: 700;\n\t}\n\n\tth, td {\n\t\tborder-bottom: 1px solid #efefef;\n\t\tpadding: 8px 12px;\n\n\t\t// launchpad compat...\n\t\t&:first-child { padding-left: 12px; }\n\t\t&:last-child { padding-right: 12px; }\n\n\t}\n\n}\n\n// launchpad compat...\n#page .llms-table tfoot label {\n\tdisplay: inline;\n}\n#page .llms-table tfoot select {\n\theight: auto;\n}\n","/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: 'FontAwesome';\n src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');\n src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n.fa-2x {\n font-size: 2em;\n}\n.fa-3x {\n font-size: 3em;\n}\n.fa-4x {\n font-size: 4em;\n}\n.fa-5x {\n font-size: 5em;\n}\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n.fa-ul > li {\n position: relative;\n}\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n.fa-border {\n padding: .2em .25em .15em;\n border: solid 0.08em #eeeeee;\n border-radius: .1em;\n}\n.fa-pull-left {\n float: left;\n}\n.fa-pull-right {\n float: right;\n}\n.fa.fa-pull-left {\n margin-right: .3em;\n}\n.fa.fa-pull-right {\n margin-left: .3em;\n}\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n.pull-left {\n float: left;\n}\n.fa.pull-left {\n margin-right: .3em;\n}\n.fa.pull-right {\n margin-left: .3em;\n}\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none;\n}\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n.fa-stack-1x {\n line-height: inherit;\n}\n.fa-stack-2x {\n font-size: 2em;\n}\n.fa-inverse {\n color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n.fa-music:before {\n content: \"\\f001\";\n}\n.fa-search:before {\n content: \"\\f002\";\n}\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n.fa-heart:before {\n content: \"\\f004\";\n}\n.fa-star:before {\n content: \"\\f005\";\n}\n.fa-star-o:before {\n content: \"\\f006\";\n}\n.fa-user:before {\n content: \"\\f007\";\n}\n.fa-film:before {\n content: \"\\f008\";\n}\n.fa-th-large:before {\n content: \"\\f009\";\n}\n.fa-th:before {\n content: \"\\f00a\";\n}\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n.fa-check:before {\n content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n.fa-power-off:before {\n content: \"\\f011\";\n}\n.fa-signal:before {\n content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n.fa-home:before {\n content: \"\\f015\";\n}\n.fa-file-o:before {\n content: \"\\f016\";\n}\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n.fa-road:before {\n content: \"\\f018\";\n}\n.fa-download:before {\n content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n.fa-refresh:before {\n content: \"\\f021\";\n}\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n.fa-lock:before {\n content: \"\\f023\";\n}\n.fa-flag:before {\n content: \"\\f024\";\n}\n.fa-headphones:before {\n content: \"\\f025\";\n}\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n.fa-tag:before {\n content: \"\\f02b\";\n}\n.fa-tags:before {\n content: \"\\f02c\";\n}\n.fa-book:before {\n content: \"\\f02d\";\n}\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n.fa-print:before {\n content: \"\\f02f\";\n}\n.fa-camera:before {\n content: \"\\f030\";\n}\n.fa-font:before {\n content: \"\\f031\";\n}\n.fa-bold:before {\n content: \"\\f032\";\n}\n.fa-italic:before {\n content: \"\\f033\";\n}\n.fa-text-height:before {\n content: \"\\f034\";\n}\n.fa-text-width:before {\n content: \"\\f035\";\n}\n.fa-align-left:before {\n content: \"\\f036\";\n}\n.fa-align-center:before {\n content: \"\\f037\";\n}\n.fa-align-right:before {\n content: \"\\f038\";\n}\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n.fa-list:before {\n content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n.fa-indent:before {\n content: \"\\f03c\";\n}\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n.fa-pencil:before {\n content: \"\\f040\";\n}\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n.fa-adjust:before {\n content: \"\\f042\";\n}\n.fa-tint:before {\n content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n.fa-arrows:before {\n content: \"\\f047\";\n}\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n.fa-backward:before {\n content: \"\\f04a\";\n}\n.fa-play:before {\n content: \"\\f04b\";\n}\n.fa-pause:before {\n content: \"\\f04c\";\n}\n.fa-stop:before {\n content: \"\\f04d\";\n}\n.fa-forward:before {\n content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n.fa-eject:before {\n content: \"\\f052\";\n}\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n.fa-ban:before {\n content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n.fa-expand:before {\n content: \"\\f065\";\n}\n.fa-compress:before {\n content: \"\\f066\";\n}\n.fa-plus:before {\n content: \"\\f067\";\n}\n.fa-minus:before {\n content: \"\\f068\";\n}\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n.fa-gift:before {\n content: \"\\f06b\";\n}\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n.fa-fire:before {\n content: \"\\f06d\";\n}\n.fa-eye:before {\n content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n.fa-plane:before {\n content: \"\\f072\";\n}\n.fa-calendar:before {\n content: \"\\f073\";\n}\n.fa-random:before {\n content: \"\\f074\";\n}\n.fa-comment:before {\n content: \"\\f075\";\n}\n.fa-magnet:before {\n content: \"\\f076\";\n}\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n.fa-retweet:before {\n content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n.fa-folder:before {\n content: \"\\f07b\";\n}\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n.fa-key:before {\n content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n.fa-comments:before {\n content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n.fa-star-half:before {\n content: \"\\f089\";\n}\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n.fa-trophy:before {\n content: \"\\f091\";\n}\n.fa-github-square:before {\n content: \"\\f092\";\n}\n.fa-upload:before {\n content: \"\\f093\";\n}\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n.fa-phone:before {\n content: \"\\f095\";\n}\n.fa-square-o:before {\n content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n.fa-twitter:before {\n content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n.fa-github:before {\n content: \"\\f09b\";\n}\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n.fa-square:before {\n content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n.fa-table:before {\n content: \"\\f0ce\";\n}\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n.fa-money:before {\n content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n.fa-columns:before {\n content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n.fa-desktop:before {\n content: \"\\f108\";\n}\n.fa-laptop:before {\n content: \"\\f109\";\n}\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n.fa-spinner:before {\n content: \"\\f110\";\n}\n.fa-circle:before {\n content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n.fa-terminal:before {\n content: \"\\f120\";\n}\n.fa-code:before {\n content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n.fa-crop:before {\n content: \"\\f125\";\n}\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n.fa-question:before {\n content: \"\\f128\";\n}\n.fa-info:before {\n content: \"\\f129\";\n}\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n.fa-microphone:before {\n content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n.fa-shield:before {\n content: \"\\f132\";\n}\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n.fa-rocket:before {\n content: \"\\f135\";\n}\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n.fa-html5:before {\n content: \"\\f13b\";\n}\n.fa-css3:before {\n content: \"\\f13c\";\n}\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n.fa-ticket:before {\n content: \"\\f145\";\n}\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n.fa-level-up:before {\n content: \"\\f148\";\n}\n.fa-level-down:before {\n content: \"\\f149\";\n}\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n.fa-compass:before {\n content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n.fa-gbp:before {\n content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n.fa-file:before {\n content: \"\\f15b\";\n}\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n.fa-youtube:before {\n content: \"\\f167\";\n}\n.fa-xing:before {\n content: \"\\f168\";\n}\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n.fa-adn:before {\n content: \"\\f170\";\n}\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n.fa-apple:before {\n content: \"\\f179\";\n}\n.fa-windows:before {\n content: \"\\f17a\";\n}\n.fa-android:before {\n content: \"\\f17b\";\n}\n.fa-linux:before {\n content: \"\\f17c\";\n}\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n.fa-skype:before {\n content: \"\\f17e\";\n}\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n.fa-trello:before {\n content: \"\\f181\";\n}\n.fa-female:before {\n content: \"\\f182\";\n}\n.fa-male:before {\n content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n.fa-archive:before {\n content: \"\\f187\";\n}\n.fa-bug:before {\n content: \"\\f188\";\n}\n.fa-vk:before {\n content: \"\\f189\";\n}\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n.fa-renren:before {\n content: \"\\f18b\";\n}\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n.fa-slack:before {\n content: \"\\f198\";\n}\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n.fa-openid:before {\n content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n.fa-google:before {\n content: \"\\f1a0\";\n}\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n.fa-language:before {\n content: \"\\f1ab\";\n}\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n.fa-building:before {\n content: \"\\f1ad\";\n}\n.fa-child:before {\n content: \"\\f1ae\";\n}\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n.fa-database:before {\n content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n.fa-git:before {\n content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n.fa-history:before {\n content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n.fa-header:before {\n content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n.fa-at:before {\n content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n.fa-bus:before {\n content: \"\\f207\";\n}\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n.fa-angellist:before {\n content: \"\\f209\";\n}\n.fa-cc:before {\n content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n.fa-diamond:before {\n content: \"\\f219\";\n}\n.fa-ship:before {\n content: \"\\f21a\";\n}\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n.fa-venus:before {\n content: \"\\f221\";\n}\n.fa-mars:before {\n content: \"\\f222\";\n}\n.fa-mercury:before {\n content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n.fa-server:before {\n content: \"\\f233\";\n}\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n.fa-user-times:before {\n content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n.fa-train:before {\n content: \"\\f238\";\n}\n.fa-subway:before {\n content: \"\\f239\";\n}\n.fa-medium:before {\n content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n.fa-object-group:before {\n content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n.fa-clone:before {\n content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n.fa-registered:before {\n content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n.fa-gg:before {\n content: \"\\f260\";\n}\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n.fa-safari:before {\n content: \"\\f267\";\n}\n.fa-chrome:before {\n content: \"\\f268\";\n}\n.fa-firefox:before {\n content: \"\\f269\";\n}\n.fa-opera:before {\n content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n.fa-contao:before {\n content: \"\\f26d\";\n}\n.fa-500px:before {\n content: \"\\f26e\";\n}\n.fa-amazon:before {\n content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n.fa-industry:before {\n content: \"\\f275\";\n}\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n.fa-map-o:before {\n content: \"\\f278\";\n}\n.fa-map:before {\n content: \"\\f279\";\n}\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n.fa-edge:before {\n content: \"\\f282\";\n}\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n.fa-modx:before {\n content: \"\\f285\";\n}\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n.fa-usb:before {\n content: \"\\f287\";\n}\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n.fa-percent:before {\n content: \"\\f295\";\n}\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n.fa-envira:before {\n content: \"\\f299\";\n}\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n.fa-blind:before {\n content: \"\\f29d\";\n}\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n",".llms-spinning {\n\tbackground: rgba( 250, 250, 250, 0.7 );\n\tbottom: 0;\n\tdisplay: none;\n\tleft: 0;\n\tposition: absolute;\n\tright: 0;\n\ttop: 0;\n}\n\n.llms-spinner {\n\tanimation: llms-spinning 1.5s linear infinite;\n\tbox-sizing: border-box;\n\tborder: 4px solid #313131;\n\tborder-radius: 50%;\n\theight: 40px;\n\tleft: 50%;\n\tmargin-left: -20px;\n\tmargin-top: -20px;\n\tposition: absolute;\n\ttop: 50%;\n\twidth: 40px;\n\n\t&.small {\n\t\tborder-width: 2px;\n\t\theight: 20px;\n\t\tmargin-left: -10px;\n\t\tmargin-top: -10px;\n\t\twidth: 20px;\n\t}\n}\n\n@keyframes llms-spinning{\n\t0% {\n\t\ttransform: rotate(0deg)\n\t}\n\t50% {\n\t\tborder-radius: 5%;\n\t}\n\t100% {\n\t\ttransform: rotate(220deg)\n\t}\n}\n"],"sourceRoot":"../../scss"}
\ No newline at end of file
+{"version":3,"sources":["lifterlms.css","_includes/_extends.scss","_includes/_grid.scss","_includes/_buttons.scss","_includes/_vars.scss","_includes/_llms-donut.scss","_includes/_mixins.scss","_includes/_tooltip.scss","frontend/_main.scss","frontend/_loop.scss","frontend/_course.scss","frontend/_syllabus.scss","frontend/_llms-progress.scss","frontend/_llms-author.scss","frontend/_notices.scss","frontend/_llms-achievements-certs.scss","frontend/_llms-notifications.scss","frontend/_llms-pagination.scss","frontend/_tooltip.scss","_includes/_quiz-result-question-list.scss","frontend/_llms-quizzes.scss","frontend/_voucher.scss","frontend/_llms-access-plans.scss","frontend/_checkout.scss","_includes/_llms-form-field.scss","frontend/_llms-outline-collapse.scss","frontend/_student-dashboard.scss","frontend/_llms-table.scss","_includes/vendor/_font-awesome.scss","_includes/_spinner.scss"],"names":[],"mappings":"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F;;A4BvqGA;EACE,gBAAA;A5B0qGF;;A4BxqGA;EACE,gBAAA;A5B2qGF;;A4BzqGA;;EAEE,gBAAA;A5B4qGF;;A4B1qGA;EACE,gBAAA;A5B6qGF;;A4B3qGA;EACE,gBAAA;A5B8qGF;;A4B5qGA;EACE,gBAAA;A5B+qGF;;A4B7qGA;EACE,gBAAA;A5BgrGF;;A4B9qGA;EACE,gBAAA;A5BirGF;;A4B/qGA;EACE,gBAAA;A5BkrGF;;A4BhrGA;EACE,gBAAA;A5BmrGF;;A4BjrGA;EACE,gBAAA;A5BorGF;;A4BlrGA;EACE,gBAAA;A5BqrGF;;A4BnrGA;EACE,gBAAA;A5BsrGF;;A4BprGA;EACE,gBAAA;A5BurGF;;A4BrrGA;EACE,gBAAA;A5BwrGF;;A4BtrGA;EACE,gBAAA;A5ByrGF;;A4BvrGA;EACE,gBAAA;A5B0rGF;;A4BxrGA;EACE,gBAAA;A5B2rGF;;A4BzrGA;EACE,gBAAA;A5B4rGF;;A4B1rGA;EACE,gBAAA;A5B6rGF;;A4B3rGA;EACE,gBAAA;A5B8rGF;;A4B5rGA;EACE,gBAAA;A5B+rGF;;A4B7rGA;EACE,gBAAA;A5BgsGF;;A4B9rGA;EACE,gBAAA;A5BisGF;;A4B/rGA;EACE,gBAAA;A5BksGF;;A4BhsGA;EACE,gBAAA;A5BmsGF;;A4BjsGA;EACE,gBAAA;A5BosGF;;A4BlsGA;EACE,gBAAA;A5BqsGF;;A4BnsGA;EACE,gBAAA;A5BssGF;;A4BpsGA;;EAEE,gBAAA;A5BusGF;;A4BrsGA;EACE,gBAAA;A5BwsGF;;A4BtsGA;EACE,gBAAA;A5BysGF;;A4BvsGA;;;EAGE,gBAAA;A5B0sGF;;A4BxsGA;EACE,gBAAA;A5B2sGF;;A4BzsGA;EACE,gBAAA;A5B4sGF;;A4B1sGA;EACE,gBAAA;A5B6sGF;;A4B3sGA;EACE,gBAAA;A5B8sGF;;A4B5sGA;;EAEE,gBAAA;A5B+sGF;;A4B7sGA;EACE,gBAAA;A5BgtGF;;A4B9sGA;EACE,gBAAA;A5BitGF;;A4B/sGA;EACE,gBAAA;A5BktGF;;A4BhtGA;EACE,gBAAA;A5BmtGF;;A4BjtGA;EACE,gBAAA;A5BotGF;;A4BltGA;EACE,gBAAA;A5BqtGF;;A4BntGA;EACE,gBAAA;A5BstGF;;A4BptGA;EACE,gBAAA;A5ButGF;;A4BrtGA;EACE,gBAAA;A5BwtGF;;A4BttGA;EACE,gBAAA;A5BytGF;;A4BvtGA;EACE,gBAAA;A5B0tGF;;A4BxtGA;EACE,gBAAA;A5B2tGF;;A4BztGA;EACE,gBAAA;A5B4tGF;;A4B1tGA;EACE,gBAAA;A5B6tGF;;A4B3tGA;EACE,gBAAA;A5B8tGF;;A4B5tGA;EACE,gBAAA;A5B+tGF;;A4B7tGA;EACE,gBAAA;A5BguGF;;A4B9tGA;EACE,gBAAA;A5BiuGF;;A4B/tGA;EACE,gBAAA;A5BkuGF;;A4BhuGA;EACE,gBAAA;A5BmuGF;;A4BjuGA;EACE,gBAAA;A5BouGF;;A4BluGA;EACE,gBAAA;A5BquGF;;A4BnuGA;EACE,gBAAA;A5BsuGF;;A4BpuGA;EACE,gBAAA;A5BuuGF;;A4BruGA;EACE,gBAAA;A5BwuGF;;A4BtuGA;EACE,gBAAA;A5ByuGF;;A4BvuGA;EACE,gBAAA;A5B0uGF;;A4BxuGA;EACE,gBAAA;A5B2uGF;;A4BzuGA;EACE,gBAAA;A5B4uGF;;A4B1uGA;;EAEE,gBAAA;A5B6uGF;;A4B3uGA;EACE,gBAAA;A5B8uGF;;A4B5uGA;EACE,gBAAA;A5B+uGF;;A4B7uGA;EACE,gBAAA;A5BgvGF;;A4B9uGA;EACE,gBAAA;A5BivGF;;A4B/uGA;EACE,gBAAA;A5BkvGF;;A4BhvGA;EACE,gBAAA;A5BmvGF;;A4BjvGA;EACE,gBAAA;A5BovGF;;A4BlvGA;EACE,gBAAA;A5BqvGF;;A4BnvGA;EACE,gBAAA;A5BsvGF;;A4BpvGA;EACE,gBAAA;A5BuvGF;;A4BrvGA;EACE,gBAAA;A5BwvGF;;A4BtvGA;;EAEE,gBAAA;A5ByvGF;;A4BvvGA;EACE,gBAAA;A5B0vGF;;A4BxvGA;EACE,gBAAA;A5B2vGF;;A4BzvGA;EACE,gBAAA;A5B4vGF;;A4B1vGA;EACE,gBAAA;A5B6vGF;;A4B3vGA;EACE,gBAAA;A5B8vGF;;A4B5vGA;EACE,gBAAA;A5B+vGF;;A4B7vGA;EACE,gBAAA;A5BgwGF;;A4B9vGA;EACE,gBAAA;A5BiwGF;;A4B/vGA;EACE,gBAAA;A5BkwGF;;A4BhwGA;EACE,gBAAA;A5BmwGF;;A4BjwGA;EACE,gBAAA;A5BowGF;;A4BlwGA;EACE,gBAAA;A5BqwGF;;A4BnwGA;EACE,gBAAA;A5BswGF;;A4BpwGA;;EAEE,gBAAA;A5BuwGF;;A4BrwGA;EACE,gBAAA;A5BwwGF;;A4BtwGA;EACE,gBAAA;A5BywGF;;A4BvwGA;EACE,gBAAA;A5B0wGF;;A4BxwGA;EACE,gBAAA;A5B2wGF;;A4BzwGA;;EAEE,gBAAA;A5B4wGF;;A4B1wGA;EACE,gBAAA;A5B6wGF;;A4B3wGA;EACE,gBAAA;A5B8wGF;;A4B5wGA;EACE,gBAAA;A5B+wGF;;A4B7wGA;EACE,gBAAA;A5BgxGF;;A4B9wGA;EACE,gBAAA;A5BixGF;;A4B/wGA;EACE,gBAAA;A5BkxGF;;A4BhxGA;EACE,gBAAA;A5BmxGF;;A4BjxGA;EACE,gBAAA;A5BoxGF;;A4BlxGA;EACE,gBAAA;A5BqxGF;;A4BnxGA;EACE,gBAAA;A5BsxGF;;A4BpxGA;EACE,gBAAA;A5BuxGF;;A4BrxGA;EACE,gBAAA;A5BwxGF;;A4BtxGA;EACE,gBAAA;A5ByxGF;;A4BvxGA;EACE,gBAAA;A5B0xGF;;A4BxxGA;EACE,gBAAA;A5B2xGF;;A4BzxGA;EACE,gBAAA;A5B4xGF;;A4B1xGA;EACE,gBAAA;A5B6xGF;;A4B3xGA;EACE,gBAAA;A5B8xGF;;A4B5xGA;EACE,gBAAA;A5B+xGF;;A4B7xGA;;EAEE,gBAAA;A5BgyGF;;A4B9xGA;EACE,gBAAA;A5BiyGF;;A4B/xGA;EACE,gBAAA;A5BkyGF;;A4BhyGA;EACE,gBAAA;A5BmyGF;;A4BjyGA;;EAEE,gBAAA;A5BoyGF;;A4BlyGA;EACE,gBAAA;A5BqyGF;;A4BnyGA;EACE,gBAAA;A5BsyGF;;A4BpyGA;EACE,gBAAA;A5BuyGF;;A4BryGA;EACE,gBAAA;A5BwyGF;;A4BtyGA;EACE,gBAAA;A5ByyGF;;A4BvyGA;EACE,gBAAA;A5B0yGF;;A4BxyGA;EACE,gBAAA;A5B2yGF;;A4BzyGA;EACE,gBAAA;A5B4yGF;;A4B1yGA;EACE,gBAAA;A5B6yGF;;A4B3yGA;EACE,gBAAA;A5B8yGF;;A4B5yGA;EACE,gBAAA;A5B+yGF;;A4B7yGA;EACE,gBAAA;A5BgzGF;;A4B9yGA;EACE,gBAAA;A5BizGF;;A4B/yGA;EACE,gBAAA;A5BkzGF;;A4BhzGA;EACE,gBAAA;A5BmzGF;;A4BjzGA;EACE,gBAAA;A5BozGF;;A4BlzGA;EACE,gBAAA;A5BqzGF;;A4BnzGA;EACE,gBAAA;A5BszGF;;A4BpzGA;;EAEE,gBAAA;A5BuzGF;;A4BrzGA;;EAEE,gBAAA;A5BwzGF;;A4BtzGA;EACE,gBAAA;A5ByzGF;;A4BvzGA;EACE,gBAAA;A5B0zGF;;A4BxzGA;;EAEE,gBAAA;A5B2zGF;;A4BzzGA;;EAEE,gBAAA;A5B4zGF;;A4B1zGA;EACE,gBAAA;A5B6zGF;;A4B3zGA;;EAEE,gBAAA;A5B8zGF;;A4B5zGA;EACE,gBAAA;A5B+zGF;;A4B7zGA;;;EAGE,gBAAA;A5Bg0GF;;A4B9zGA;EACE,gBAAA;A5Bi0GF;;A4B/zGA;EACE,gBAAA;A5Bk0GF;;A4Bh0GA;EACE,gBAAA;A5Bm0GF;;A4Bj0GA;EACE,gBAAA;A5Bo0GF;;A4Bl0GA;EACE,gBAAA;A5Bq0GF;;A4Bn0GA;EACE,gBAAA;A5Bs0GF;;A4Bp0GA;EACE,gBAAA;A5Bu0GF;;A4Br0GA;EACE,gBAAA;A5Bw0GF;;A4Bt0GA;EACE,gBAAA;A5By0GF;;A4Bv0GA;EACE,gBAAA;A5B00GF;;A4Bx0GA;EACE,gBAAA;A5B20GF;;A4Bz0GA;EACE,gBAAA;A5B40GF;;A4B10GA;EACE,gBAAA;A5B60GF;;A4B30GA;EACE,gBAAA;A5B80GF;;A4B50GA;EACE,gBAAA;A5B+0GF;;A4B70GA;EACE,gBAAA;A5Bg1GF;;A4B90GA;EACE,gBAAA;A5Bi1GF;;A4B/0GA;;EAEE,gBAAA;A5Bk1GF;;A4Bh1GA;;EAEE,gBAAA;A5Bm1GF;;A4Bj1GA;;EAEE,gBAAA;A5Bo1GF;;A4Bl1GA;EACE,gBAAA;A5Bq1GF;;A4Bn1GA;EACE,gBAAA;A5Bs1GF;;A4Bp1GA;;EAEE,gBAAA;A5Bu1GF;;A4Br1GA;;EAEE,gBAAA;A5Bw1GF;;A4Bt1GA;;EAEE,gBAAA;A5By1GF;;A4Bv1GA;EACE,gBAAA;A5B01GF;;A4Bx1GA;EACE,gBAAA;A5B21GF;;A4Bz1GA;;EAEE,gBAAA;A5B41GF;;A4B11GA;EACE,gBAAA;A5B61GF;;A4B31GA;EACE,gBAAA;A5B81GF;;A4B51GA;;EAEE,gBAAA;A5B+1GF;;A4B71GA;EACE,gBAAA;A5Bg2GF;;A4B91GA;EACE,gBAAA;A5Bi2GF;;A4B/1GA;EACE,gBAAA;A5Bk2GF;;A4Bh2GA;EACE,gBAAA;A5Bm2GF;;A4Bj2GA;EACE,gBAAA;A5Bo2GF;;A4Bl2GA;EACE,gBAAA;A5Bq2GF;;A4Bn2GA;EACE,gBAAA;A5Bs2GF;;A4Bp2GA;EACE,gBAAA;A5Bu2GF;;A4Br2GA;EACE,gBAAA;A5Bw2GF;;A4Bt2GA;EACE,gBAAA;A5By2GF;;A4Bv2GA;EACE,gBAAA;A5B02GF;;A4Bx2GA;EACE,gBAAA;A5B22GF;;A4Bz2GA;EACE,gBAAA;A5B42GF;;A4B12GA;EACE,gBAAA;A5B62GF;;A4B32GA;EACE,gBAAA;A5B82GF;;A4B52GA;EACE,gBAAA;A5B+2GF;;A4B72GA;EACE,gBAAA;A5Bg3GF;;A4B92GA;EACE,gBAAA;A5Bi3GF;;A4B/2GA;EACE,gBAAA;A5Bk3GF;;A4Bh3GA;EACE,gBAAA;A5Bm3GF;;A4Bj3GA;EACE,gBAAA;A5Bo3GF;;A4Bl3GA;EACE,gBAAA;A5Bq3GF;;A4Bn3GA;EACE,gBAAA;A5Bs3GF;;A4Bp3GA;EACE,gBAAA;A5Bu3GF;;A4Br3GA;EACE,gBAAA;A5Bw3GF;;A4Bt3GA;EACE,gBAAA;A5By3GF;;A4Bv3GA;EACE,gBAAA;A5B03GF;;A4Bx3GA;EACE,gBAAA;A5B23GF;;A4Bz3GA;EACE,gBAAA;A5B43GF;;A4B13GA;EACE,gBAAA;A5B63GF;;A4B33GA;;EAEE,gBAAA;A5B83GF;;A4B53GA;EACE,gBAAA;A5B+3GF;;A4B73GA;EACE,gBAAA;A5Bg4GF;;A4B93GA;EACE,gBAAA;A5Bi4GF;;A4B/3GA;EACE,gBAAA;A5Bk4GF;;A4Bh4GA;EACE,gBAAA;A5Bm4GF;;A4Bj4GA;;EAEE,gBAAA;A5Bo4GF;;A4Bl4GA;EACE,gBAAA;A5Bq4GF;;A4Bn4GA;EACE,gBAAA;A5Bs4GF;;A4Bp4GA;EACE,gBAAA;A5Bu4GF;;A4Br4GA;EACE,gBAAA;A5Bw4GF;;A4Bt4GA;EACE,gBAAA;A5By4GF;;A4Bv4GA;EACE,gBAAA;A5B04GF;;A4Bx4GA;EACE,gBAAA;A5B24GF;;A4Bz4GA;EACE,gBAAA;A5B44GF;;A4B14GA;EACE,gBAAA;A5B64GF;;A4B34GA;EACE,gBAAA;A5B84GF;;A4B54GA;EACE,gBAAA;A5B+4GF;;A4B74GA;EACE,gBAAA;A5Bg5GF;;A4B94GA;;EAEE,gBAAA;A5Bi5GF;;A4B/4GA;;;EAGE,gBAAA;A5Bk5GF;;A4Bh5GA;EACE,gBAAA;A5Bm5GF;;A4Bj5GA;EACE,gBAAA;A5Bo5GF;;A4Bl5GA;EACE,gBAAA;A5Bq5GF;;A4Bn5GA;;EAEE,gBAAA;A5Bs5GF;;A4Bp5GA;EACE,gBAAA;A5Bu5GF;;A4Br5GA;EACE,gBAAA;A5Bw5GF;;A4Bt5GA;EACE,gBAAA;A5By5GF;;A4Bv5GA;EACE,gBAAA;A5B05GF;;A4Bx5GA;EACE,gBAAA;A5B25GF;;A4Bz5GA;EACE,gBAAA;A5B45GF;;A4B15GA;EACE,gBAAA;A5B65GF;;A4B35GA;EACE,gBAAA;A5B85GF;;A4B55GA;EACE,gBAAA;A5B+5GF;;A4B75GA;EACE,gBAAA;A5Bg6GF;;A4B95GA;EACE,gBAAA;A5Bi6GF;;A4B/5GA;EACE,gBAAA;A5Bk6GF;;A4Bh6GA;EACE,gBAAA;A5Bm6GF;;A4Bj6GA;EACE,gBAAA;A5Bo6GF;;A4Bl6GA;EACE,gBAAA;A5Bq6GF;;A4Bn6GA;EACE,gBAAA;A5Bs6GF;;A4Bp6GA;EACE,gBAAA;A5Bu6GF;;A4Br6GA;EACE,gBAAA;A5Bw6GF;;A4Bt6GA;EACE,gBAAA;A5By6GF;;A4Bv6GA;EACE,gBAAA;A5B06GF;;A4Bx6GA;EACE,gBAAA;A5B26GF;;A4Bz6GA;EACE,gBAAA;A5B46GF;;A4B16GA;EACE,gBAAA;A5B66GF;;A4B36GA;EACE,gBAAA;A5B86GF;;A4B56GA;EACE,gBAAA;A5B+6GF;;A4B76GA;EACE,gBAAA;A5Bg7GF;;A4B96GA;EACE,gBAAA;A5Bi7GF;;A4B/6GA;EACE,gBAAA;A5Bk7GF;;A4Bh7GA;EACE,gBAAA;A5Bm7GF;;A4Bj7GA;EACE,gBAAA;A5Bo7GF;;A4Bl7GA;EACE,gBAAA;A5Bq7GF;;A4Bn7GA;EACE,gBAAA;A5Bs7GF;;A4Bp7GA;EACE,gBAAA;A5Bu7GF;;A4Br7GA;EACE,gBAAA;A5Bw7GF;;A4Bt7GA;EACE,gBAAA;A5By7GF;;A4Bv7GA;EACE,gBAAA;A5B07GF;;A4Bx7GA;EACE,gBAAA;A5B27GF;;A4Bz7GA;;EAEE,gBAAA;A5B47GF;;A4B17GA;;EAEE,gBAAA;A5B67GF;;A4B37GA;;EAEE,gBAAA;A5B87GF;;A4B57GA;;EAEE,gBAAA;A5B+7GF;;A4B77GA;EACE,gBAAA;A5Bg8GF;;A4B97GA;;EAEE,gBAAA;A5Bi8GF;;A4B/7GA;;EAEE,gBAAA;A5Bk8GF;;A4Bh8GA;;;;EAIE,gBAAA;A5Bm8GF;;A4Bj8GA;;;EAGE,gBAAA;A5Bo8GF;;A4Bl8GA;;EAEE,gBAAA;A5Bq8GF;;A4Bn8GA;;EAEE,gBAAA;A5Bs8GF;;A4Bp8GA;EACE,gBAAA;A5Bu8GF;;A4Br8GA;EACE,gBAAA;A5Bw8GF;;A4Bt8GA;EACE,gBAAA;A5By8GF;;A4Bv8GA;EACE,gBAAA;A5B08GF;;A4Bx8GA;EACE,gBAAA;A5B28GF;;A4Bz8GA;EACE,gBAAA;A5B48GF;;A4B18GA;EACE,gBAAA;A5B68GF;;A4B38GA;EACE,gBAAA;A5B88GF;;A4B58GA;EACE,gBAAA;A5B+8GF;;A4B78GA;EACE,gBAAA;A5Bg9GF;;A4B98GA;EACE,gBAAA;A5Bi9GF;;A4B/8GA;EACE,gBAAA;A5Bk9GF;;A4Bh9GA;EACE,gBAAA;A5Bm9GF;;A4Bj9GA;EACE,gBAAA;A5Bo9GF;;A4Bl9GA;EACE,gBAAA;A5Bq9GF;;A4Bn9GA;EACE,gBAAA;A5Bs9GF;;A4Bp9GA;EACE,gBAAA;A5Bu9GF;;A4Br9GA;EACE,gBAAA;A5Bw9GF;;A4Bt9GA;EACE,gBAAA;A5By9GF;;A4Bv9GA;EACE,gBAAA;A5B09GF;;A4Bx9GA;EACE,gBAAA;A5B29GF;;A4Bz9GA;EACE,gBAAA;A5B49GF;;A4B19GA;EACE,gBAAA;A5B69GF;;A4B39GA;EACE,gBAAA;A5B89GF;;A4B59GA;EACE,gBAAA;A5B+9GF;;A4B79GA;EACE,gBAAA;A5Bg+GF;;A4B99GA;EACE,gBAAA;A5Bi+GF;;A4B/9GA;EACE,gBAAA;A5Bk+GF;;A4Bh+GA;EACE,gBAAA;A5Bm+GF;;A4Bj+GA;EACE,gBAAA;A5Bo+GF;;A4Bl+GA;EACE,gBAAA;A5Bq+GF;;A4Bn+GA;EACE,gBAAA;A5Bs+GF;;A4Bp+GA;EACE,gBAAA;A5Bu+GF;;A4Br+GA;EACE,gBAAA;A5Bw+GF;;A4Bt+GA;EACE,gBAAA;A5By+GF;;A4Bv+GA;EACE,gBAAA;A5B0+GF;;A4Bx+GA;EACE,gBAAA;A5B2+GF;;A4Bz+GA;EACE,gBAAA;A5B4+GF;;A4B1+GA;;EAEE,gBAAA;A5B6+GF;;A4B3+GA;EACE,gBAAA;A5B8+GF;;A4B5+GA;EACE,gBAAA;A5B++GF;;A4B7+GA;EACE,gBAAA;A5Bg/GF;;A4B9+GA;EACE,gBAAA;A5Bi/GF;;A4B/+GA;EACE,gBAAA;A5Bk/GF;;A4Bh/GA;EACE,gBAAA;A5Bm/GF;;A4Bj/GA;EACE,gBAAA;A5Bo/GF;;A4Bl/GA;EACE,gBAAA;A5Bq/GF;;A4Bn/GA;EACE,gBAAA;A5Bs/GF;;A4Bp/GA;EACE,gBAAA;A5Bu/GF;;A4Br/GA;EACE,gBAAA;A5Bw/GF;;A4Bt/GA;;EAEE,gBAAA;A5By/GF;;A4Bv/GA;EACE,gBAAA;A5B0/GF;;A4Bx/GA;EACE,gBAAA;A5B2/GF;;A4Bz/GA;EACE,gBAAA;A5B4/GF;;A4B1/GA;;EAEE,gBAAA;A5B6/GF;;A4B3/GA;EACE,gBAAA;A5B8/GF;;A4B5/GA;EACE,gBAAA;A5B+/GF;;A4B7/GA;EACE,gBAAA;A5BggHF;;A4B9/GA;EACE,gBAAA;A5BigHF;;A4B//GA;EACE,gBAAA;A5BkgHF;;A4BhgHA;EACE,gBAAA;A5BmgHF;;A4BjgHA;;;EAGE,gBAAA;A5BogHF;;A4BlgHA;;EAEE,gBAAA;A5BqgHF;;A4BngHA;EACE,gBAAA;A5BsgHF;;A4BpgHA;EACE,gBAAA;A5BugHF;;A4BrgHA;EACE,gBAAA;A5BwgHF;;A4BtgHA;EACE,gBAAA;A5BygHF;;A4BvgHA;EACE,gBAAA;A5B0gHF;;A4BxgHA;EACE,gBAAA;A5B2gHF;;A4BzgHA;EACE,gBAAA;A5B4gHF;;A4B1gHA;EACE,gBAAA;A5B6gHF;;A4B3gHA;EACE,gBAAA;A5B8gHF;;A4B5gHA;EACE,gBAAA;A5B+gHF;;A4B7gHA;EACE,gBAAA;A5BghHF;;A4B9gHA;EACE,gBAAA;A5BihHF;;A4B/gHA;EACE,gBAAA;A5BkhHF;;A4BhhHA;EACE,gBAAA;A5BmhHF;;A4BjhHA;EACE,gBAAA;A5BohHF;;A4BlhHA;EACE,gBAAA;A5BqhHF;;A4BnhHA;EACE,gBAAA;A5BshHF;;A4BphHA;EACE,gBAAA;A5BuhHF;;A4BrhHA;EACE,gBAAA;A5BwhHF;;A4BthHA;EACE,gBAAA;A5ByhHF;;A4BvhHA;EACE,gBAAA;A5B0hHF;;A4BxhHA;EACE,gBAAA;A5B2hHF;;A4BzhHA;EACE,gBAAA;A5B4hHF;;A4B1hHA;EACE,gBAAA;A5B6hHF;;A4B3hHA;EACE,gBAAA;A5B8hHF;;A4B5hHA;;EAEE,gBAAA;A5B+hHF;;A4B7hHA;;EAEE,gBAAA;A5BgiHF;;A4B9hHA;EACE,gBAAA;A5BiiHF;;A4B/hHA;EACE,gBAAA;A5BkiHF;;A4BhiHA;EACE,gBAAA;A5BmiHF;;A4BjiHA;EACE,gBAAA;A5BoiHF;;A4BliHA;EACE,gBAAA;A5BqiHF;;A4BniHA;EACE,gBAAA;A5BsiHF;;A4BpiHA;EACE,gBAAA;A5BuiHF;;A4BriHA;EACE,gBAAA;A5BwiHF;;A4BtiHA;EACE,gBAAA;A5ByiHF;;A4BviHA;;;EAGE,gBAAA;A5B0iHF;;A4BxiHA;;EAEE,gBAAA;A5B2iHF;;A4BziHA;;EAEE,gBAAA;A5B4iHF;;A4B1iHA;;EAEE,gBAAA;A5B6iHF;;A4B3iHA;EACE,gBAAA;A5B8iHF;;A4B5iHA;EACE,gBAAA;A5B+iHF;;A4B7iHA;EACE,gBAAA;A5BgjHF;;A4B9iHA;EACE,gBAAA;A5BijHF;;A4B/iHA;;;;;EAKE,gBAAA;A5BkjHF;;A4BhjHA;EACE,gBAAA;A5BmjHF;;A4BjjHA;;;EAGE,gBAAA;A5BojHF;;A4BljHA;;EAEE,gBAAA;A5BqjHF;;A4BnjHA;EACE,gBAAA;A5BsjHF;;A4BpjHA;EACE,gBAAA;A5BujHF;;A4BrjHA;;;EAGE,gBAAA;A5BwjHF;;A4BtjHA;EACE,gBAAA;A5ByjHF;;A4BvjHA;EACE,gBAAA;A5B0jHF;;A4BxjHA;;EAEE,gBAAA;A5B2jHF;;A4BzjHA;;EAEE,gBAAA;A5B4jHF;;A4B1jHA;;EAEE,gBAAA;A5B6jHF;;A4B3jHA;EACE,gBAAA;A5B8jHF;;A4B5jHA;EACE,gBAAA;A5B+jHF;;A4B7jHA;EACE,gBAAA;A5BgkHF;;A4B9jHA;EACE,gBAAA;A5BikHF;;A4B/jHA;EACE,gBAAA;A5BkkHF;;A4BhkHA;EACE,gBAAA;A5BmkHF;;A4BjkHA;EACE,gBAAA;A5BokHF;;A4BlkHA;EACE,gBAAA;A5BqkHF;;A4BnkHA;;EAEE,gBAAA;A5BskHF;;A4BpkHA;EACE,gBAAA;A5BukHF;;A4BrkHA;EACE,gBAAA;A5BwkHF;;A4BtkHA;EACE,gBAAA;A5BykHF;;A4BvkHA;EACE,gBAAA;A5B0kHF;;A4BxkHA;EACE,gBAAA;A5B2kHF;;A4BzkHA;EACE,gBAAA;A5B4kHF;;A4B1kHA;EACE,gBAAA;A5B6kHF;;A4B3kHA;EACE,gBAAA;A5B8kHF;;A4B5kHA;EACE,gBAAA;A5B+kHF;;A4B7kHA;EACE,gBAAA;A5BglHF;;A4B9kHA;EACE,gBAAA;A5BilHF;;A4B/kHA;EACE,gBAAA;A5BklHF;;A4BhlHA;EACE,gBAAA;A5BmlHF;;A4BjlHA;EACE,gBAAA;A5BolHF;;A4BllHA;EACE,gBAAA;A5BqlHF;;A4BnlHA;EACE,gBAAA;A5BslHF;;A4BplHA;EACE,gBAAA;A5BulHF;;A4BrlHA;EACE,gBAAA;A5BwlHF;;A4BtlHA;EACE,gBAAA;A5BylHF;;A4BvlHA;EACE,gBAAA;A5B0lHF;;A4BxlHA;EACE,gBAAA;A5B2lHF;;A4BzlHA;EACE,gBAAA;A5B4lHF;;A4B1lHA;EACE,gBAAA;A5B6lHF;;A4B3lHA;EACE,gBAAA;A5B8lHF;;A4B5lHA;EACE,gBAAA;A5B+lHF;;A4B7lHA;EACE,gBAAA;A5BgmHF;;A4B9lHA;EACE,gBAAA;A5BimHF;;A4B/lHA;EACE,gBAAA;A5BkmHF;;A4BhmHA;EACE,gBAAA;A5BmmHF;;A4BjmHA;EACE,gBAAA;A5BomHF;;A4BlmHA;EACE,gBAAA;A5BqmHF;;A4BnmHA;EACE,gBAAA;A5BsmHF;;A4BpmHA;EACE,gBAAA;A5BumHF;;A4BrmHA;EACE,gBAAA;A5BwmHF;;A4BtmHA;EACE,gBAAA;A5BymHF;;A4BvmHA;EACE,gBAAA;A5B0mHF;;A4BxmHA;EACE,gBAAA;A5B2mHF;;A4BzmHA;;;EAGE,gBAAA;A5B4mHF;;A4B1mHA;EACE,gBAAA;A5B6mHF;;A4B3mHA;EACE,gBAAA;A5B8mHF;;A4B5mHA;EACE,gBAAA;A5B+mHF;;A4B7mHA;EACE,gBAAA;A5BgnHF;;A4B9mHA;EACE,gBAAA;A5BinHF;;A4B/mHA;EACE,gBAAA;A5BknHF;;A4BhnHA;EACE,gBAAA;A5BmnHF;;A4BjnHA;EACE,gBAAA;A5BonHF;;A4BlnHA;EACE,gBAAA;A5BqnHF;;A4BnnHA;EACE,gBAAA;A5BsnHF;;A4BpnHA;EACE,gBAAA;A5BunHF;;A4BrnHA;EACE,gBAAA;A5BwnHF;;A4BtnHA;EACE,gBAAA;A5BynHF;;A4BvnHA;EACE,gBAAA;A5B0nHF;;A4BxnHA;EACE,gBAAA;A5B2nHF;;A4BznHA;EACE,gBAAA;A5B4nHF;;A4B1nHA;EACE,gBAAA;A5B6nHF;;A4B3nHA;EACE,gBAAA;A5B8nHF;;A4B5nHA;EACE,gBAAA;A5B+nHF;;A4B7nHA;EACE,gBAAA;A5BgoHF;;A4B9nHA;EACE,gBAAA;A5BioHF;;A4B/nHA;;EAEE,gBAAA;A5BkoHF;;A4BhoHA;EACE,gBAAA;A5BmoHF;;A4BjoHA;EACE,gBAAA;A5BooHF;;A4BloHA;EACE,gBAAA;A5BqoHF;;A4BnoHA;EACE,gBAAA;A5BsoHF;;A4BpoHA;EACE,gBAAA;A5BuoHF;;A4BroHA;EACE,gBAAA;A5BwoHF;;A4BtoHA;EACE,gBAAA;A5ByoHF;;A4BvoHA;EACE,gBAAA;A5B0oHF;;A4BxoHA;EACE,gBAAA;A5B2oHF;;A4BzoHA;EACE,gBAAA;A5B4oHF;;A4B1oHA;EACE,gBAAA;A5B6oHF;;A4B3oHA;EACE,gBAAA;A5B8oHF;;A4B5oHA;EACE,gBAAA;A5B+oHF;;A4B7oHA;EACE,gBAAA;A5BgpHF;;A4B9oHA;EACE,gBAAA;A5BipHF;;A4B/oHA;;EAEE,gBAAA;A5BkpHF;;A4BhpHA;EACE,gBAAA;A5BmpHF;;A4BjpHA;EACE,gBAAA;A5BopHF;;A4BlpHA;EACE,gBAAA;A5BqpHF;;A4BnpHA;EACE,gBAAA;A5BspHF;;A4BppHA;;EAEE,gBAAA;A5BupHF;;A4BrpHA;EACE,gBAAA;A5BwpHF;;A4BtpHA;EACE,gBAAA;A5BypHF;;A4BvpHA;EACE,gBAAA;A5B0pHF;;A4BxpHA;;;EAGE,gBAAA;A5B2pHF;;A4BzpHA;;EAEE,gBAAA;A5B4pHF;;A4B1pHA;;EAEE,gBAAA;A5B6pHF;;A4B3pHA;;EAEE,gBAAA;A5B8pHF;;A4B5pHA;;EAEE,gBAAA;A5B+pHF;;A4B7pHA;EACE,gBAAA;A5BgqHF;;A4B9pHA;EACE,gBAAA;A5BiqHF;;A4B/pHA;EACE,gBAAA;A5BkqHF;;A4BhqHA;EACE,gBAAA;A5BmqHF;;A4BjqHA;EACE,gBAAA;A5BoqHF;;A4BlqHA;EACE,gBAAA;A5BqqHF;;A4BnqHA;EACE,gBAAA;A5BsqHF;;A4BpqHA;EACE,gBAAA;A5BuqHF;;A4BrqHA;EACE,gBAAA;A5BwqHF;;A4BtqHA;EACE,gBAAA;A5ByqHF;;A4BvqHA;EACE,gBAAA;A5B0qHF;;A4BxqHA;;EAEE,gBAAA;A5B2qHF;;A4BzqHA;;EAEE,gBAAA;A5B4qHF;;A4B1qHA;;EAEE,gBAAA;A5B6qHF;;A4B3qHA;EACE,gBAAA;A5B8qHF;;A4B5qHA;;EAEE,gBAAA;A5B+qHF;;A4B7qHA;;EAEE,gBAAA;A5BgrHF;;A4B9qHA;EACE,gBAAA;A5BirHF;;A4B/qHA;EACE,gBAAA;A5BkrHF;;A4BhrHA;EACE,gBAAA;A5BmrHF;;A4BjrHA;EACE,gBAAA;A5BorHF;;A4BlrHA;EACE,gBAAA;A5BqrHF;;A4BnrHA;EACE,gBAAA;A5BsrHF;;A4BprHA;EACE,gBAAA;A5BurHF;;A4BrrHA;EACE,gBAAA;A5BwrHF;;A4BtrHA;EACE,gBAAA;A5ByrHF;;A4BvrHA;EACE,gBAAA;A5B0rHF;;A4BxrHA;EACE,gBAAA;A5B2rHF;;A4BzrHA;EACE,gBAAA;A5B4rHF;;A4B1rHA;EACE,gBAAA;A5B6rHF;;A4B3rHA;EACE,gBAAA;A5B8rHF;;A4B5rHA;EACE,gBAAA;A5B+rHF;;A4B7rHA;EACE,gBAAA;A5BgsHF;;A4B9rHA;EACE,gBAAA;A5BisHF;;A4B/rHA;EACE,gBAAA;A5BksHF;;A4BhsHA;EACE,gBAAA;A5BmsHF;;A4BjsHA;EACE,gBAAA;A5BosHF;;A4BlsHA;;EAEE,gBAAA;A5BqsHF;;A4BnsHA;EACE,gBAAA;A5BssHF;;A4BpsHA;EACE,gBAAA;A5BusHF;;A4BrsHA;EACE,gBAAA;A5BwsHF;;A4BtsHA;EACE,gBAAA;A5BysHF;;A4BvsHA;EACE,gBAAA;A5B0sHF;;A4BxsHA;EACE,gBAAA;A5B2sHF;;A4BzsHA;EACE,gBAAA;A5B4sHF;;A4B1sHA;EACE,gBAAA;A5B6sHF;;A4B3sHA;EACE,gBAAA;A5B8sHF;;A4B5sHA;EACE,gBAAA;A5B+sHF;;A4B7sHA;EACE,gBAAA;A5BgtHF;;A4B9sHA;EACE,gBAAA;A5BitHF;;A4B/sHA;EACE,gBAAA;A5BktHF;;A4BhtHA;EACE,gBAAA;A5BmtHF;;A4BjtHA;EACE,gBAAA;A5BotHF;;A4BltHA;EACE,gBAAA;A5BqtHF;;A4BntHA;EACE,gBAAA;A5BstHF;;A4BptHA;EACE,gBAAA;A5ButHF;;A4BrtHA;EACE,gBAAA;A5BwtHF;;A4BttHA;EACE,gBAAA;A5BytHF;;A4BvtHA;EACE,gBAAA;A5B0tHF;;A4BxtHA;EACE,gBAAA;A5B2tHF;;A4BztHA;EACE,gBAAA;A5B4tHF;;A4B1tHA;EACE,gBAAA;A5B6tHF;;A4B3tHA;EACE,gBAAA;A5B8tHF;;A4B5tHA;EACE,gBAAA;A5B+tHF;;A4B7tHA;EACE,gBAAA;A5BguHF;;A4B9tHA;EACE,gBAAA;A5BiuHF;;A4B/tHA;EACE,gBAAA;A5BkuHF;;A4BhuHA;EACE,gBAAA;A5BmuHF;;A4BjuHA;EACE,gBAAA;A5BouHF;;A4BluHA;EACE,gBAAA;A5BquHF;;A4BnuHA;EACE,gBAAA;A5BsuHF;;A4BpuHA;EACE,gBAAA;A5BuuHF;;A4BruHA;EACE,gBAAA;A5BwuHF;;A4BtuHA;EACE,gBAAA;A5ByuHF;;A4BvuHA;EACE,gBAAA;A5B0uHF;;A4BxuHA;EACE,gBAAA;A5B2uHF;;A4BzuHA;EACE,gBAAA;A5B4uHF;;A4B1uHA;EACE,gBAAA;A5B6uHF;;A4B3uHA;EACE,gBAAA;A5B8uHF;;A4B5uHA;EACE,gBAAA;A5B+uHF;;A4B7uHA;EACE,gBAAA;A5BgvHF;;A4B9uHA;EACE,gBAAA;A5BivHF;;A4B/uHA;EACE,gBAAA;A5BkvHF;;A4BhvHA;EACE,gBAAA;A5BmvHF;;A4BjvHA;EACE,gBAAA;A5BovHF;;A4BlvHA;EACE,gBAAA;A5BqvHF;;A4BnvHA;EACE,gBAAA;A5BsvHF;;A4BpvHA;EACE,gBAAA;A5BuvHF;;A4BrvHA;;EAEE,gBAAA;A5BwvHF;;A4BtvHA;;;EAGE,gBAAA;A5ByvHF;;A4BvvHA;EACE,gBAAA;A5B0vHF;;A4BxvHA;EACE,gBAAA;A5B2vHF;;A4BzvHA;;EAEE,gBAAA;A5B4vHF;;A4B1vHA;EACE,gBAAA;A5B6vHF;;A4B3vHA;EACE,gBAAA;A5B8vHF;;A4B5vHA;EACE,gBAAA;A5B+vHF;;A4B7vHA;EACE,gBAAA;A5BgwHF;;A4B9vHA;EACE,gBAAA;A5BiwHF;;A4B/vHA;EACE,gBAAA;A5BkwHF;;A4BhwHA;EACE,gBAAA;A5BmwHF;;A4BjwHA;EACE,gBAAA;A5BowHF;;A4BlwHA;EACE,gBAAA;A5BqwHF;;A4BnwHA;EACE,gBAAA;A5BswHF;;A4BpwHA;;EAEE,gBAAA;A5BuwHF;;A4BrwHA;;EAEE,gBAAA;A5BwwHF;;A4BtwHA;EACE,gBAAA;A5BywHF;;A4BvwHA;EACE,gBAAA;A5B0wHF;;A4BxwHA;EACE,gBAAA;A5B2wHF;;A4BzwHA;EACE,gBAAA;A5B4wHF;;A4B1wHA;EACE,gBAAA;A5B6wHF;;A4B3wHA;EACE,gBAAA;A5B8wHF;;A4B5wHA;;EAEE,gBAAA;A5B+wHF;;A4B7wHA;;EAEE,gBAAA;A5BgxHF;;A4B9wHA;EACE,gBAAA;A5BixHF;;A4B/wHA;EACE,gBAAA;A5BkxHF;;A4BhxHA;EACE,gBAAA;A5BmxHF;;A4BjxHA;EACE,gBAAA;A5BoxHF;;A4BlxHA;;EAEE,gBAAA;A5BqxHF;;A4BnxHA;;EAEE,gBAAA;A5BsxHF;;A4BpxHA;EACE,gBAAA;A5BuxHF;;A4BrxHA;EACE,gBAAA;A5BwxHF;;A4BtxHA;EACE,gBAAA;A5ByxHF;;A4BvxHA;;;EAGE,gBAAA;A5B0xHF;;A4BxxHA;;EAEE,gBAAA;A5B2xHF;;A4BzxHA;;EAEE,gBAAA;A5B4xHF;;A4B1xHA;;EAEE,gBAAA;A5B6xHF;;A4B3xHA;;EAEE,gBAAA;A5B8xHF;;A4B5xHA;EACE,gBAAA;A5B+xHF;;A4B7xHA;;;EAGE,gBAAA;A5BgyHF;;A4B9xHA;EACE,gBAAA;A5BiyHF;;A4B/xHA;EACE,gBAAA;A5BkyHF;;A4BhyHA;EACE,gBAAA;A5BmyHF;;A4BjyHA;EACE,gBAAA;A5BoyHF;;A4BlyHA;;EAEE,gBAAA;A5BqyHF;;A4BnyHA;;EAEE,gBAAA;A5BsyHF;;A4BpyHA;EACE,gBAAA;A5BuyHF;;A4BryHA;EACE,gBAAA;A5BwyHF;;A4BtyHA;EACE,gBAAA;A5ByyHF;;A4BvyHA;EACE,gBAAA;A5B0yHF;;A4BxyHA;EACE,gBAAA;A5B2yHF;;A4BzyHA;EACE,gBAAA;A5B4yHF;;A4B1yHA;EACE,gBAAA;A5B6yHF;;A4B3yHA;EACE,gBAAA;A5B8yHF;;A4B5yHA;EACE,gBAAA;A5B+yHF;;A4B7yHA;EACE,gBAAA;A5BgzHF;;A4B9yHA;EACE,gBAAA;A5BizHF;;A4B/yHA;EACE,kBAAA;EACA,UAAA;EACA,WAAA;EACA,UAAA;EACA,YAAA;EACA,gBAAA;EACA,sBAAA;EACA,SAAA;A5BkzHF;;A4BhzHA;;EAEE,gBAAA;EACA,WAAA;EACA,YAAA;EACA,SAAA;EACA,iBAAA;EACA,UAAA;A5BmzHF;;A6BllMA;EACC,oCAAA;EACA,SAAA;EACA,aAAA;EACA,OAAA;EACA,kBAAA;EACA,QAAA;EACA,MAAA;A7BqlMD;;A6BllMA;EACC,qDAAA;UAAA,6CAAA;EACA,8BAAA;UAAA,sBAAA;EACA,yBAAA;EACA,kBAAA;EACA,YAAA;EACA,SAAA;EACA,kBAAA;EACA,iBAAA;EACA,kBAAA;EACA,QAAA;EACA,WAAA;A7BqlMD;A6BnlMC;EACC,iBAAA;EACA,YAAA;EACA,kBAAA;EACA,iBAAA;EACA,WAAA;A7BqlMF;;A6BjlMA;EACC;IACC,+BAAA;YAAA,uBAAA;E7BolMA;E6BllMD;IACC,iBAAA;E7BolMA;E6BllMD;IACC,iCAAA;YAAA,yBAAA;E7BolMA;AACF;;A6B7lMA;EACC;IACC,+BAAA;YAAA,uBAAA;E7BolMA;E6BllMD;IACC,iBAAA;E7BolMA;E6BllMD;IACC,iCAAA;YAAA,yBAAA;E7BolMA;AACF","file":"../../css/lifterlms.css","sourcesContent":["@charset \"UTF-8\";\n.llms-pagination ul:before, .llms-pagination ul:after,\n.llms-student-dashboard .llms-sd-items:before,\n.llms-form-fields:before,\n.llms-checkout-cols-2:before,\n.llms-access-plans:before,\n.llms-course-navigation:before,\n.llms-loop-list:before,\n.llms-cols:before,\n.llms-student-dashboard .llms-sd-items:after,\n.llms-form-fields:after,\n.llms-checkout-cols-2:after,\n.llms-access-plans:after,\n.llms-course-navigation:after,\n.llms-loop-list:after,\n.llms-cols:after {\n content: \" \";\n display: table;\n}\n.llms-pagination ul:after,\n.llms-student-dashboard .llms-sd-items:after,\n.llms-form-fields:after,\n.llms-checkout-cols-2:after,\n.llms-access-plans:after,\n.llms-course-navigation:after,\n.llms-loop-list:after,\n.llms-cols:after {\n clear: both;\n}\n\n.llms-cols .llms-col {\n width: 100%;\n}\n@media all and (min-width: 600px) {\n .llms-cols [class*=llms-col-] {\n float: left;\n }\n}\n\n.llms-flex-cols {\n display: flex;\n flex-flow: row wrap;\n}\n.llms-flex-cols [class*=llms-col] {\n flex: 0 1 auto;\n width: 100%;\n}\n\n@media all and (min-width: 600px) {\n .llms-cols .llms-col-1, .llms-flex-cols .llms-col-1 {\n width: 100%;\n }\n .llms-cols .llms-col-2, .llms-flex-cols .llms-col-2 {\n width: 50%;\n }\n .llms-cols .llms-col-3, .llms-flex-cols .llms-col-3 {\n width: 33.3333333333%;\n }\n .llms-cols .llms-col-4, .llms-flex-cols .llms-col-4 {\n width: 25%;\n }\n .llms-cols .llms-col-5, .llms-flex-cols .llms-col-5 {\n width: 20%;\n }\n .llms-cols .llms-col-6, .llms-flex-cols .llms-col-6 {\n width: 16.6666666667%;\n }\n .llms-cols .llms-col-7, .llms-flex-cols .llms-col-7 {\n width: 14.2857142857%;\n }\n .llms-cols .llms-col-8, .llms-flex-cols .llms-col-8 {\n width: 12.5%;\n }\n .llms-cols .llms-col-9, .llms-flex-cols .llms-col-9 {\n width: 11.1111111111%;\n }\n .llms-cols .llms-col-10, .llms-flex-cols .llms-col-10 {\n width: 10%;\n }\n .llms-cols .llms-col-11, .llms-flex-cols .llms-col-11 {\n width: 9.0909090909%;\n }\n .llms-cols .llms-col-12, .llms-flex-cols .llms-col-12 {\n width: 8.3333333333%;\n }\n}\n.llms-button-action,\n.llms-button-danger,\n.llms-button-primary,\n.llms-button-secondary {\n border: none;\n border-radius: 0;\n color: #fefefe;\n cursor: pointer;\n font-size: 16px;\n font-weight: 300;\n text-decoration: none;\n text-shadow: none;\n line-height: 1;\n margin: 0;\n max-width: 100%;\n padding: 12px 24px;\n position: relative;\n transition: all 0.5s ease;\n}\n.llms-button-action:disabled,\n.llms-button-danger:disabled,\n.llms-button-primary:disabled,\n.llms-button-secondary:disabled {\n opacity: 0.5;\n}\n.llms-button-action:hover, .llms-button-action:active,\n.llms-button-danger:hover,\n.llms-button-danger:active,\n.llms-button-primary:hover,\n.llms-button-primary:active,\n.llms-button-secondary:hover,\n.llms-button-secondary:active {\n color: #fefefe;\n}\n.llms-button-action:focus,\n.llms-button-danger:focus,\n.llms-button-primary:focus,\n.llms-button-secondary:focus {\n color: #fefefe;\n}\n.llms-button-action.auto,\n.llms-button-danger.auto,\n.llms-button-primary.auto,\n.llms-button-secondary.auto {\n width: auto;\n}\n.llms-button-action.full,\n.llms-button-danger.full,\n.llms-button-primary.full,\n.llms-button-secondary.full {\n display: block;\n text-align: center;\n width: 100%;\n}\n.llms-button-action.square,\n.llms-button-danger.square,\n.llms-button-primary.square,\n.llms-button-secondary.square {\n padding: 12px;\n}\n.llms-button-action.small,\n.llms-button-danger.small,\n.llms-button-primary.small,\n.llms-button-secondary.small {\n font-size: 13px;\n padding: 8px 14px;\n}\n.llms-button-action.small.square,\n.llms-button-danger.small.square,\n.llms-button-primary.small.square,\n.llms-button-secondary.small.square {\n padding: 8px;\n}\n.llms-button-action.large,\n.llms-button-danger.large,\n.llms-button-primary.large,\n.llms-button-secondary.large {\n font-size: 18px;\n line-height: 1.2;\n padding: 16px 32px;\n}\n.llms-button-action.large.square,\n.llms-button-danger.large.square,\n.llms-button-primary.large.square,\n.llms-button-secondary.large.square {\n padding: 16px;\n}\n.llms-button-action.large .fa,\n.llms-button-danger.large .fa,\n.llms-button-primary.large .fa,\n.llms-button-secondary.large .fa {\n left: -7px;\n position: relative;\n}\n\n.llms-button-primary {\n background: #2295ff;\n}\n.llms-button-primary:hover, .llms-button-primary.clicked {\n background: #0077e4;\n}\n.llms-button-primary:focus, .llms-button-primary:active {\n background: #4ba9ff;\n}\n\n.llms-button-secondary {\n background: #e1e1e1;\n color: #414141;\n}\n.llms-button-secondary:hover {\n color: #414141;\n background: #cdcdcd;\n}\n.llms-button-secondary:focus, .llms-button-secondary:active {\n color: #414141;\n background: #ebebeb;\n}\n\n.llms-button-action {\n background: #f8954f;\n}\n.llms-button-action:hover, .llms-button-action.clicked {\n background: #f67d28;\n}\n.llms-button-action:focus, .llms-button-action:active {\n background: #faad76;\n}\n\n.llms-button-danger {\n background: #e5554e;\n}\n.llms-button-danger:hover {\n background: #e0332a;\n}\n.llms-button-danger:focus, .llms-button-danger:active {\n background: #e86660;\n}\n\n.llms-donut {\n background-color: #f1f1f1;\n background-image: none;\n border-radius: 50%;\n color: #ef476f;\n height: 200px;\n overflow: hidden;\n position: relative;\n width: 200px;\n}\n.llms-donut:before, .llms-donut:after {\n content: \" \";\n display: table;\n}\n.llms-donut:after {\n clear: both;\n}\n.llms-donut svg {\n overflow: visible !important;\n pointer-events: none;\n width: 100%;\n}\n.llms-donut svg path {\n fill: none;\n stroke-width: 35px;\n stroke: #ef476f;\n}\n.llms-donut.mini {\n height: 36px;\n width: 36px;\n}\n.llms-donut.mini .percentage {\n font-size: 10px;\n}\n.llms-donut.small {\n height: 100px;\n width: 100px;\n}\n.llms-donut.small .percentage {\n font-size: 18px;\n}\n.llms-donut.medium {\n height: 130px;\n width: 130px;\n}\n.llms-donut.medium .percentage {\n font-size: 26px;\n}\n.llms-donut.large {\n height: 260px;\n width: 260px;\n}\n.llms-donut.large .percentage {\n font-size: 48px;\n}\n.llms-donut .inside {\n align-items: center;\n background: #fff;\n border-radius: 50%;\n box-sizing: border-box;\n display: flex;\n flex-wrap: wrap;\n height: 80%;\n justify-content: center;\n left: 50%;\n position: absolute;\n text-align: center;\n transform: translate(-50%, -50%);\n width: 80%;\n top: 50%;\n z-index: 3;\n}\n.llms-donut .percentage {\n line-height: 1.2;\n font-size: 34px;\n}\n.llms-donut .caption {\n font-size: 50%;\n}\n\n.lifterlms [data-tip],\n.lifterlms [data-title-default],\n.lifterlms [data-title-active],\n.llms-metabox [data-tip],\n.llms-metabox [data-title-default],\n.llms-metabox [data-title-active],\n.llms-mb-container [data-tip],\n.llms-mb-container [data-title-default],\n.llms-mb-container [data-title-active],\n.llms-quiz-wrapper [data-tip],\n.llms-quiz-wrapper [data-title-default],\n.llms-quiz-wrapper [data-title-active] {\n position: relative;\n}\n.lifterlms [data-tip].tip--top-right:before,\n.lifterlms [data-title-default].tip--top-right:before,\n.lifterlms [data-title-active].tip--top-right:before,\n.llms-metabox [data-tip].tip--top-right:before,\n.llms-metabox [data-title-default].tip--top-right:before,\n.llms-metabox [data-title-active].tip--top-right:before,\n.llms-mb-container [data-tip].tip--top-right:before,\n.llms-mb-container [data-title-default].tip--top-right:before,\n.llms-mb-container [data-title-active].tip--top-right:before,\n.llms-quiz-wrapper [data-tip].tip--top-right:before,\n.llms-quiz-wrapper [data-title-default].tip--top-right:before,\n.llms-quiz-wrapper [data-title-active].tip--top-right:before {\n bottom: 100%;\n left: -10px;\n}\n.lifterlms [data-tip].tip--top-right:hover:before,\n.lifterlms [data-title-default].tip--top-right:hover:before,\n.lifterlms [data-title-active].tip--top-right:hover:before,\n.llms-metabox [data-tip].tip--top-right:hover:before,\n.llms-metabox [data-title-default].tip--top-right:hover:before,\n.llms-metabox [data-title-active].tip--top-right:hover:before,\n.llms-mb-container [data-tip].tip--top-right:hover:before,\n.llms-mb-container [data-title-default].tip--top-right:hover:before,\n.llms-mb-container [data-title-active].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before {\n bottom: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--top-right:after,\n.lifterlms [data-title-default].tip--top-right:after,\n.lifterlms [data-title-active].tip--top-right:after,\n.llms-metabox [data-tip].tip--top-right:after,\n.llms-metabox [data-title-default].tip--top-right:after,\n.llms-metabox [data-title-active].tip--top-right:after,\n.llms-mb-container [data-tip].tip--top-right:after,\n.llms-mb-container [data-title-default].tip--top-right:after,\n.llms-mb-container [data-title-active].tip--top-right:after,\n.llms-quiz-wrapper [data-tip].tip--top-right:after,\n.llms-quiz-wrapper [data-title-default].tip--top-right:after,\n.llms-quiz-wrapper [data-title-active].tip--top-right:after {\n border-top-color: #444;\n left: 6px;\n top: 0;\n}\n.lifterlms [data-tip].tip--top-right:hover:after,\n.lifterlms [data-title-default].tip--top-right:hover:after,\n.lifterlms [data-title-active].tip--top-right:hover:after,\n.llms-metabox [data-tip].tip--top-right:hover:after,\n.llms-metabox [data-title-default].tip--top-right:hover:after,\n.llms-metabox [data-title-active].tip--top-right:hover:after,\n.llms-mb-container [data-tip].tip--top-right:hover:after,\n.llms-mb-container [data-title-default].tip--top-right:hover:after,\n.llms-mb-container [data-title-active].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after {\n top: -6px;\n}\n.lifterlms [data-tip].tip--top-left:before,\n.lifterlms [data-title-default].tip--top-left:before,\n.lifterlms [data-title-active].tip--top-left:before,\n.llms-metabox [data-tip].tip--top-left:before,\n.llms-metabox [data-title-default].tip--top-left:before,\n.llms-metabox [data-title-active].tip--top-left:before,\n.llms-mb-container [data-tip].tip--top-left:before,\n.llms-mb-container [data-title-default].tip--top-left:before,\n.llms-mb-container [data-title-active].tip--top-left:before,\n.llms-quiz-wrapper [data-tip].tip--top-left:before,\n.llms-quiz-wrapper [data-title-default].tip--top-left:before,\n.llms-quiz-wrapper [data-title-active].tip--top-left:before {\n bottom: 100%;\n right: -10px;\n}\n.lifterlms [data-tip].tip--top-left:hover:before,\n.lifterlms [data-title-default].tip--top-left:hover:before,\n.lifterlms [data-title-active].tip--top-left:hover:before,\n.llms-metabox [data-tip].tip--top-left:hover:before,\n.llms-metabox [data-title-default].tip--top-left:hover:before,\n.llms-metabox [data-title-active].tip--top-left:hover:before,\n.llms-mb-container [data-tip].tip--top-left:hover:before,\n.llms-mb-container [data-title-default].tip--top-left:hover:before,\n.llms-mb-container [data-title-active].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before {\n bottom: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--top-left:after,\n.lifterlms [data-title-default].tip--top-left:after,\n.lifterlms [data-title-active].tip--top-left:after,\n.llms-metabox [data-tip].tip--top-left:after,\n.llms-metabox [data-title-default].tip--top-left:after,\n.llms-metabox [data-title-active].tip--top-left:after,\n.llms-mb-container [data-tip].tip--top-left:after,\n.llms-mb-container [data-title-default].tip--top-left:after,\n.llms-mb-container [data-title-active].tip--top-left:after,\n.llms-quiz-wrapper [data-tip].tip--top-left:after,\n.llms-quiz-wrapper [data-title-default].tip--top-left:after,\n.llms-quiz-wrapper [data-title-active].tip--top-left:after {\n border-top-color: #444;\n right: 6px;\n top: 0;\n}\n.lifterlms [data-tip].tip--top-left:hover:after,\n.lifterlms [data-title-default].tip--top-left:hover:after,\n.lifterlms [data-title-active].tip--top-left:hover:after,\n.llms-metabox [data-tip].tip--top-left:hover:after,\n.llms-metabox [data-title-default].tip--top-left:hover:after,\n.llms-metabox [data-title-active].tip--top-left:hover:after,\n.llms-mb-container [data-tip].tip--top-left:hover:after,\n.llms-mb-container [data-title-default].tip--top-left:hover:after,\n.llms-mb-container [data-title-active].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after {\n top: -6px;\n}\n.lifterlms [data-tip].tip--bottom-left:before,\n.lifterlms [data-title-default].tip--bottom-left:before,\n.lifterlms [data-title-active].tip--bottom-left:before,\n.llms-metabox [data-tip].tip--bottom-left:before,\n.llms-metabox [data-title-default].tip--bottom-left:before,\n.llms-metabox [data-title-active].tip--bottom-left:before,\n.llms-mb-container [data-tip].tip--bottom-left:before,\n.llms-mb-container [data-title-default].tip--bottom-left:before,\n.llms-mb-container [data-title-active].tip--bottom-left:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:before {\n top: 100%;\n right: -10px;\n}\n.lifterlms [data-tip].tip--bottom-left:hover:before,\n.lifterlms [data-title-default].tip--bottom-left:hover:before,\n.lifterlms [data-title-active].tip--bottom-left:hover:before,\n.llms-metabox [data-tip].tip--bottom-left:hover:before,\n.llms-metabox [data-title-default].tip--bottom-left:hover:before,\n.llms-metabox [data-title-active].tip--bottom-left:hover:before,\n.llms-mb-container [data-tip].tip--bottom-left:hover:before,\n.llms-mb-container [data-title-default].tip--bottom-left:hover:before,\n.llms-mb-container [data-title-active].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before {\n top: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--bottom-left:after,\n.lifterlms [data-title-default].tip--bottom-left:after,\n.lifterlms [data-title-active].tip--bottom-left:after,\n.llms-metabox [data-tip].tip--bottom-left:after,\n.llms-metabox [data-title-default].tip--bottom-left:after,\n.llms-metabox [data-title-active].tip--bottom-left:after,\n.llms-mb-container [data-tip].tip--bottom-left:after,\n.llms-mb-container [data-title-default].tip--bottom-left:after,\n.llms-mb-container [data-title-active].tip--bottom-left:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:after {\n border-bottom-color: #444;\n right: 6px;\n bottom: 0;\n}\n.lifterlms [data-tip].tip--bottom-left:hover:after,\n.lifterlms [data-title-default].tip--bottom-left:hover:after,\n.lifterlms [data-title-active].tip--bottom-left:hover:after,\n.llms-metabox [data-tip].tip--bottom-left:hover:after,\n.llms-metabox [data-title-default].tip--bottom-left:hover:after,\n.llms-metabox [data-title-active].tip--bottom-left:hover:after,\n.llms-mb-container [data-tip].tip--bottom-left:hover:after,\n.llms-mb-container [data-title-default].tip--bottom-left:hover:after,\n.llms-mb-container [data-title-active].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after {\n bottom: -6px;\n}\n.lifterlms [data-tip].tip--bottom-right:before,\n.lifterlms [data-title-default].tip--bottom-right:before,\n.lifterlms [data-title-active].tip--bottom-right:before,\n.llms-metabox [data-tip].tip--bottom-right:before,\n.llms-metabox [data-title-default].tip--bottom-right:before,\n.llms-metabox [data-title-active].tip--bottom-right:before,\n.llms-mb-container [data-tip].tip--bottom-right:before,\n.llms-mb-container [data-title-default].tip--bottom-right:before,\n.llms-mb-container [data-title-active].tip--bottom-right:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:before {\n top: 100%;\n left: -10px;\n}\n.lifterlms [data-tip].tip--bottom-right:hover:before,\n.lifterlms [data-title-default].tip--bottom-right:hover:before,\n.lifterlms [data-title-active].tip--bottom-right:hover:before,\n.llms-metabox [data-tip].tip--bottom-right:hover:before,\n.llms-metabox [data-title-default].tip--bottom-right:hover:before,\n.llms-metabox [data-title-active].tip--bottom-right:hover:before,\n.llms-mb-container [data-tip].tip--bottom-right:hover:before,\n.llms-mb-container [data-title-default].tip--bottom-right:hover:before,\n.llms-mb-container [data-title-active].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before {\n top: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--bottom-right:after,\n.lifterlms [data-title-default].tip--bottom-right:after,\n.lifterlms [data-title-active].tip--bottom-right:after,\n.llms-metabox [data-tip].tip--bottom-right:after,\n.llms-metabox [data-title-default].tip--bottom-right:after,\n.llms-metabox [data-title-active].tip--bottom-right:after,\n.llms-mb-container [data-tip].tip--bottom-right:after,\n.llms-mb-container [data-title-default].tip--bottom-right:after,\n.llms-mb-container [data-title-active].tip--bottom-right:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:after {\n border-bottom-color: #444;\n left: 6px;\n bottom: 0;\n}\n.lifterlms [data-tip].tip--bottom-right:hover:after,\n.lifterlms [data-title-default].tip--bottom-right:hover:after,\n.lifterlms [data-title-active].tip--bottom-right:hover:after,\n.llms-metabox [data-tip].tip--bottom-right:hover:after,\n.llms-metabox [data-title-default].tip--bottom-right:hover:after,\n.llms-metabox [data-title-active].tip--bottom-right:hover:after,\n.llms-mb-container [data-tip].tip--bottom-right:hover:after,\n.llms-mb-container [data-title-default].tip--bottom-right:hover:after,\n.llms-mb-container [data-title-active].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after {\n bottom: -6px;\n}\n.lifterlms [data-tip]:before,\n.lifterlms [data-title-default]:before,\n.lifterlms [data-title-active]:before,\n.llms-metabox [data-tip]:before,\n.llms-metabox [data-title-default]:before,\n.llms-metabox [data-title-active]:before,\n.llms-mb-container [data-tip]:before,\n.llms-mb-container [data-title-default]:before,\n.llms-mb-container [data-title-active]:before,\n.llms-quiz-wrapper [data-tip]:before,\n.llms-quiz-wrapper [data-title-default]:before,\n.llms-quiz-wrapper [data-title-active]:before {\n background: #444;\n border-radius: 4px;\n color: #fff;\n font-size: 13px;\n line-height: 1.2;\n padding: 8px;\n max-width: 300px;\n width: max-content;\n}\n.lifterlms [data-tip]:after,\n.lifterlms [data-title-default]:after,\n.lifterlms [data-title-active]:after,\n.llms-metabox [data-tip]:after,\n.llms-metabox [data-title-default]:after,\n.llms-metabox [data-title-active]:after,\n.llms-mb-container [data-tip]:after,\n.llms-mb-container [data-title-default]:after,\n.llms-mb-container [data-title-active]:after,\n.llms-quiz-wrapper [data-tip]:after,\n.llms-quiz-wrapper [data-title-default]:after,\n.llms-quiz-wrapper [data-title-active]:after {\n content: \"\";\n border: 6px solid transparent;\n height: 0;\n width: 0;\n}\n.lifterlms [data-tip]:before, .lifterlms [data-tip]:after,\n.lifterlms [data-title-default]:before,\n.lifterlms [data-title-default]:after,\n.lifterlms [data-title-active]:before,\n.lifterlms [data-title-active]:after,\n.llms-metabox [data-tip]:before,\n.llms-metabox [data-tip]:after,\n.llms-metabox [data-title-default]:before,\n.llms-metabox [data-title-default]:after,\n.llms-metabox [data-title-active]:before,\n.llms-metabox [data-title-active]:after,\n.llms-mb-container [data-tip]:before,\n.llms-mb-container [data-tip]:after,\n.llms-mb-container [data-title-default]:before,\n.llms-mb-container [data-title-default]:after,\n.llms-mb-container [data-title-active]:before,\n.llms-mb-container [data-title-active]:after,\n.llms-quiz-wrapper [data-tip]:before,\n.llms-quiz-wrapper [data-tip]:after,\n.llms-quiz-wrapper [data-title-default]:before,\n.llms-quiz-wrapper [data-title-default]:after,\n.llms-quiz-wrapper [data-title-active]:before,\n.llms-quiz-wrapper [data-title-active]:after {\n opacity: 0;\n transition: all 0.2s 0.1s ease;\n position: absolute;\n pointer-events: none;\n visibility: hidden;\n}\n.lifterlms [data-tip]:hover:before, .lifterlms [data-tip]:hover:after,\n.lifterlms [data-title-default]:hover:before,\n.lifterlms [data-title-default]:hover:after,\n.lifterlms [data-title-active]:hover:before,\n.lifterlms [data-title-active]:hover:after,\n.llms-metabox [data-tip]:hover:before,\n.llms-metabox [data-tip]:hover:after,\n.llms-metabox [data-title-default]:hover:before,\n.llms-metabox [data-title-default]:hover:after,\n.llms-metabox [data-title-active]:hover:before,\n.llms-metabox [data-title-active]:hover:after,\n.llms-mb-container [data-tip]:hover:before,\n.llms-mb-container [data-tip]:hover:after,\n.llms-mb-container [data-title-default]:hover:before,\n.llms-mb-container [data-title-default]:hover:after,\n.llms-mb-container [data-title-active]:hover:before,\n.llms-mb-container [data-title-active]:hover:after,\n.llms-quiz-wrapper [data-tip]:hover:before,\n.llms-quiz-wrapper [data-tip]:hover:after,\n.llms-quiz-wrapper [data-title-default]:hover:before,\n.llms-quiz-wrapper [data-title-default]:hover:after,\n.llms-quiz-wrapper [data-title-active]:hover:before,\n.llms-quiz-wrapper [data-title-active]:hover:after {\n opacity: 1;\n transition: all 0.2s 0.6s ease;\n visibility: visible;\n z-index: 99999999;\n}\n.lifterlms [data-tip]:before,\n.llms-metabox [data-tip]:before,\n.llms-mb-container [data-tip]:before,\n.llms-quiz-wrapper [data-tip]:before {\n content: attr(data-tip);\n}\n.lifterlms [data-tip].active:before,\n.llms-metabox [data-tip].active:before,\n.llms-mb-container [data-tip].active:before,\n.llms-quiz-wrapper [data-tip].active:before {\n content: attr(data-tip-active);\n}\n\n.llms-membership-image {\n display: block;\n margin: 0 auto;\n}\n\n.llms-course-image {\n display: block;\n margin: 0 auto;\n max-width: 100%;\n}\n\n.llms-featured-image {\n display: block;\n margin: 0 auto;\n}\n\n.llms-image-thumb {\n width: 150px;\n}\n\n.llms-video-wrapper .center-video {\n height: auto;\n max-width: 100%;\n overflow: hidden;\n position: relative;\n padding-top: 56.25%;\n text-align: center;\n}\n.llms-video-wrapper .center-video > .wp-video,\n.llms-video-wrapper .center-video .fluid-width-video-wrapper,\n.llms-video-wrapper .center-video iframe, .llms-video-wrapper .center-video object, .llms-video-wrapper .center-video embed {\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.llms-video-wrapper .center-video > .wp-video {\n width: 100% !important;\n}\n.llms-video-wrapper .center-video .fluid-width-video-wrapper {\n padding-top: 0 !important;\n}\n\n.clear {\n clear: both;\n width: 100%;\n}\n\n.llms-featured-image {\n text-align: center;\n}\n\n#main-content .llms-payment-options p {\n margin: 0;\n font-size: 16px;\n}\n\n.llms-option {\n display: block;\n position: relative;\n margin: 20px 0;\n padding-left: 40px;\n font-size: 16px;\n}\n.llms-option label {\n cursor: pointer;\n position: static;\n}\n\n.llms-option:first-child {\n margin-top: 0;\n}\n\n.llms-option:last-child {\n margin-bottom: 0;\n}\n\n#main-content .llms-option:last-child {\n margin-bottom: 0;\n}\n\n.llms-option input[type=radio] {\n display: block;\n position: absolute;\n top: 3px;\n left: 0;\n z-index: 0;\n}\n\n.llms-option input[type=radio] {\n display: inline-block;\n}\n\n.llms-option input[type=radio] + label span.llms-radio {\n display: none;\n}\n\n.llms-option input[type=radio] + label span.llms-radio {\n appearance: none;\n z-index: 20;\n position: absolute;\n top: 0;\n left: -2px;\n display: inline-block;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n cursor: pointer;\n vertical-align: middle;\n box-shadow: rgba(255, 255, 255, 0.15) 0 1px 1px, inset rgba(0, 0, 0, 0.5) 0 0 0 1px;\n background: #efefef;\n background-image: radial-gradient(ellipse at center, #e5554e 0%, #e5554e 40%, #efefef 45%);\n background-repeat: no-repeat;\n transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n}\n\n.llms-option input[type=radio]:checked + label span.llms-radio {\n transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n}\n\n.llms-option input[type=radio] + label span.llms-radio {\n background-position: -24px 0;\n}\n\n.llms-option input[type=radio]:checked + label span.llms-radio {\n background-position: 0 0;\n}\n\n.llms-option input[type=submit] {\n border: none;\n background: #e5554e;\n color: #fff;\n font-size: 20px;\n padding: 10px 0;\n border-radius: 3px;\n cursor: pointer;\n width: 100%;\n}\n\n.llms-styled-text {\n padding: 14px 0;\n}\n\n.llms-notice-box {\n border-radius: 3px;\n z-index: 10;\n margin: 10px 0;\n padding: 15px 20px;\n border: 1px solid #ccc;\n list-style-type: none;\n width: 100%;\n overflow: auto;\n}\n.llms-notice-box input[type=text] {\n height: auto;\n}\n.llms-notice-box .col-1-1 {\n width: 100%;\n}\n.llms-notice-box .col-1-1 input[type=text] {\n width: 100%;\n}\n.llms-notice-box .col-1-2 {\n width: 50%;\n float: left;\n}\n@media screen and (max-width: 768px) {\n .llms-notice-box .col-1-2 {\n width: 100%;\n }\n}\n.llms-notice-box .col-1-3 {\n width: 33%;\n float: left;\n margin-right: 10px;\n}\n.llms-notice-box .col-1-4 {\n width: 25%;\n float: left;\n margin-right: 10px;\n}\n@media screen and (max-width: 768px) {\n .llms-notice-box .col-1-4 {\n width: 100%;\n }\n}\n.llms-notice-box .col-1-6 {\n width: 16.6%;\n float: left;\n margin-right: 10px;\n}\n.llms-notice-box .col-1-8 {\n width: 11%;\n float: right;\n}\n.llms-notice-box .llms-pad-right {\n padding-right: 10px;\n}\n@media screen and (max-width: 768px) {\n .llms-notice-box .llms-pad-right {\n padding-right: 0;\n }\n}\n\ninput[type=text].cc_cvv,\n#cc_cvv {\n margin-right: 0;\n width: 23%;\n float: right;\n}\n\n.llms-clear-box {\n border-radius: 3px;\n z-index: 10;\n margin: 10px 0;\n padding: 15px 20px;\n list-style-type: none;\n width: 100%;\n overflow: auto;\n}\n\n.llms-price-label {\n font-weight: normal;\n}\n\n.llms-final-price {\n font-weight: bold;\n float: right;\n}\n\n.llms-center-content {\n text-align: center;\n}\n\n.llms-input-text {\n background-color: #fff;\n border: 1px solid #ddd;\n color: #333;\n font-size: 18px;\n font-weight: 300;\n padding: 16px;\n width: 100%;\n}\n\n.llms-price {\n margin-bottom: 0;\n font-weight: bold;\n}\n\n.llms-price-loop {\n margin-bottom: 0;\n font-weight: bold;\n}\n\n.courses .entry {\n padding: 0;\n}\n\n.list-view .site-content .llms-course-list .hentry, .list-view .site-content .llms-membership-list .hentry {\n border-top: 0;\n padding-top: 0;\n}\n\n.llms-content {\n width: 100%;\n}\n\n.llms-lesson-button-wrapper {\n width: 100%;\n display: block;\n clear: both;\n text-align: center;\n}\n\n.llms-template-wrapper {\n width: 100%;\n display: block;\n clear: both;\n}\n\n.llms-button-wrapper {\n width: 100%;\n display: block;\n clear: both;\n text-align: center;\n}\n\n.llms-styled-select {\n border: 1px solid #ccc;\n box-sizing: border-box;\n border-radius: 3px;\n overflow: hidden;\n position: relative;\n}\n\n.llms-styled-select, .llms-styled-select select {\n width: 100%;\n}\n\nselect:focus {\n outline: none;\n}\n\n.llms-styled-select select {\n height: 34px;\n padding: 5px 0 5px 5px;\n background: transparent;\n border: none;\n -webkit-appearance: none;\n font-size: 16px;\n color: #444444;\n}\n\n@-moz-document url-prefix() {\n .--ms-styled-select select {\n width: 110%;\n }\n}\n.llms-styled-select .fa-sort-desc {\n position: absolute;\n top: 0;\n right: 12px;\n font-size: 24px;\n color: #ccc;\n}\n\nselect::-ms-expand {\n display: none;\n}\n\n_:-o-prefocus .llms-styled-select, .selector .llms-styled-select {\n background: none;\n}\n\n.llms-form-item-wrapper {\n margin-bottom: 1em;\n}\n\n/* Circle Graph */\n.llms-progress-circle {\n position: relative;\n width: 200px;\n height: 200px;\n float: left;\n}\n\n.llms-progress-circle-count {\n top: 27%;\n position: absolute;\n width: 94%;\n text-align: center;\n color: #666;\n font-size: 44px;\n}\n\n.llms-progress-circle svg {\n position: absolute;\n width: 200px;\n height: 200px;\n}\n\n.llms-progress-circle circle {\n fill: transparent;\n}\n\nsvg .llms-background-circle {\n fill: transparent;\n stroke-width: 10px;\n stroke: #f1f2f1;\n stroke-dasharray: 430;\n}\n\nsvg .llms-animated-circle {\n fill: transparent;\n stroke-width: 10px;\n stroke: #e5554e;\n stroke-dasharray: 430;\n stroke-dashoffset: 410;\n}\n\n.llms-widget-syllabus .llms-lesson.current-lesson .lesson-title {\n font-weight: 700;\n}\n.llms-widget-syllabus .llms-lesson-complete, .llms-widget-syllabus .lesson-complete-placeholder {\n font-size: 1.2em;\n margin-right: 6px;\n color: #ccc;\n}\n.llms-widget-syllabus .llms-lesson-complete.done, .llms-widget-syllabus .lesson-complete-placeholder.done {\n color: #e5554e;\n}\n.llms-widget-syllabus .section-title {\n font-weight: bold;\n}\n.llms-widget-syllabus .lesson-title a {\n text-decoration: none;\n}\n.llms-widget-syllabus .lesson-title a:hover {\n text-decoration: none !important;\n}\n.llms-widget-syllabus .lesson-title.done a {\n color: #999;\n text-decoration: line-through;\n}\n.llms-widget-syllabus ul {\n list-style-type: none;\n}\n.llms-widget-syllabus ul li {\n list-style-type: none;\n}\n.llms-widget-syllabus ul li ul li {\n margin: 0 0 2px 0;\n padding: 0;\n}\n\n.llms-remove-coupon {\n float: right;\n}\n\n.llms-lesson-link-locked, .llms-lesson-link-locked:hover {\n background: #f1f1f1;\n box-shadow: 0 1px 2px 0 rgba(1, 1, 1, 0.4);\n display: block;\n color: #a6a6a6;\n min-height: 85px;\n padding: 15px;\n text-decoration: none;\n position: relative;\n}\n\n.llms-lesson-preview.is-complete .llms-lesson-link-locked {\n padding-left: 75px;\n}\n\n.llms-lesson-tooltip {\n display: none;\n position: absolute;\n color: #000000;\n background-color: #c0c0c0;\n padding: 0.25em;\n border-radius: 2px;\n z-index: 100;\n top: 0;\n left: 50%;\n text-align: center;\n -webkit-transform: translateX(-50%) translateY(-100%);\n transform: translateX(-50%) translateY(-100%);\n}\n\n/* arrows - :after */\n.llms-lesson-tooltip:after {\n content: \"\";\n width: 0;\n height: 0;\n border-top: 8px solid #c0c0c0;\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n position: absolute;\n bottom: -8px;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.llms-lesson-tooltip.active {\n display: inline-block;\n}\n\n.llms-loop-list {\n list-style: none;\n margin: 0 -10px;\n padding: 0;\n}\n@media all and (min-width: 600px) {\n .llms-loop-list.cols-1 .llms-loop-item {\n width: 100%;\n }\n .llms-loop-list.cols-2 .llms-loop-item {\n width: 50%;\n }\n .llms-loop-list.cols-3 .llms-loop-item {\n width: 33.3333333333%;\n }\n .llms-loop-list.cols-4 .llms-loop-item {\n width: 25%;\n }\n .llms-loop-list.cols-5 .llms-loop-item {\n width: 20%;\n }\n .llms-loop-list.cols-6 .llms-loop-item {\n width: 16.6666666667%;\n }\n}\n\n.llms-loop-item {\n float: left;\n list-style: none;\n margin: 0;\n padding: 0;\n width: 100%;\n}\n\n.llms-loop-item-content {\n background: #f1f1f1;\n padding-bottom: 10px;\n margin: 10px;\n}\n.llms-loop-item-content:hover {\n background: #eaeaea;\n}\n.llms-loop-item-content .llms-loop-link {\n color: #212121;\n display: block;\n}\n.llms-loop-item-content .llms-loop-link:visited {\n color: #212121;\n}\n.llms-loop-item-content .llms-featured-image {\n display: block;\n max-width: 100%;\n}\n.llms-loop-item-content .llms-loop-title {\n margin-top: 5px;\n}\n.llms-loop-item-content .llms-loop-title:hover {\n color: #2295ff;\n}\n.llms-loop-item-content .llms-meta,\n.llms-loop-item-content .llms-author,\n.llms-loop-item-content .llms-loop-title {\n padding: 0 10px;\n}\n.llms-loop-item-content .llms-meta,\n.llms-loop-item-content .llms-author {\n color: #444;\n display: block;\n font-size: 13px;\n margin-bottom: 3px;\n}\n.llms-loop-item-content .llms-meta:last-child,\n.llms-loop-item-content .llms-author:last-child {\n margin-bottom: 0;\n}\n.llms-loop-item-content .llms-featured-img-wrap {\n overflow: hidden;\n}\n.llms-loop-item-content p {\n margin-bottom: 0;\n}\n.llms-loop-item-content .llms-progress {\n margin: 0;\n height: 0.4em;\n}\n.llms-loop-item-content .llms-progress .progress__indicator {\n display: none;\n}\n.llms-loop-item-content .llms-progress .llms-progress-bar {\n background-color: #f6f6f6;\n right: 0;\n top: 0;\n}\n\n.course .llms-meta-info {\n margin: 20px 0;\n}\n.course .llms-meta-info .llms-meta-title {\n margin-bottom: 5px;\n}\n.course .llms-meta-info .llms-meta p {\n margin-bottom: 0;\n}\n.course .llms-meta-info .llms-meta span {\n font-weight: 700;\n}\n.course .llms-course-progress {\n margin: 40px auto;\n max-width: 480px;\n text-align: center;\n}\n\n.llms-syllabus-wrapper {\n margin: 15px;\n text-align: center;\n}\n.llms-syllabus-wrapper .llms-section-title {\n margin: 25px 0 0;\n}\n\n.llms-course-navigation .llms-prev-lesson,\n.llms-course-navigation .llms-next-lesson,\n.llms-course-navigation .llms-back-to-course {\n width: 49%;\n}\n.llms-course-navigation .llms-prev-lesson,\n.llms-course-navigation .llms-back-to-course {\n float: left;\n margin-right: 0.5%;\n}\n.llms-course-navigation .llms-next-lesson,\n.llms-course-navigation .llms-prev-lesson + .llms-back-to-course {\n float: right;\n margin-left: 0.5%;\n}\n\n.llms-lesson-preview {\n display: inline-block;\n margin-top: 15px;\n max-width: 100%;\n position: relative;\n width: 480px;\n}\n.llms-lesson-preview .llms-lesson-link {\n background: #f1f1f1;\n color: #212121;\n display: block;\n padding: 15px;\n text-decoration: none;\n}\n.llms-lesson-preview .llms-lesson-link:before, .llms-lesson-preview .llms-lesson-link:after {\n content: \" \";\n display: table;\n}\n.llms-lesson-preview .llms-lesson-link:after {\n clear: both;\n}\n.llms-lesson-preview .llms-lesson-link:hover {\n background: #eaeaea;\n}\n.llms-lesson-preview .llms-lesson-link:visited {\n color: #212121;\n}\n.llms-lesson-preview .llms-lesson-thumbnail {\n margin-bottom: 10px;\n}\n.llms-lesson-preview .llms-lesson-thumbnail img {\n display: block;\n width: 100%;\n}\n.llms-lesson-preview .llms-pre-text {\n text-align: left;\n}\n.llms-lesson-preview .llms-lesson-title {\n font-weight: 700;\n margin: 0 auto 10px;\n text-align: left;\n}\n.llms-lesson-preview .llms-lesson-title:last-child {\n margin-bottom: 0;\n}\n.llms-lesson-preview .llms-lesson-excerpt {\n text-align: left;\n}\n.llms-lesson-preview .llms-main {\n float: left;\n width: 100%;\n}\n.llms-lesson-preview .llms-extra {\n float: right;\n width: 15%;\n}\n.llms-lesson-preview .llms-extra + .llms-main {\n width: 85%;\n}\n.llms-lesson-preview .llms-lesson-counter,\n.llms-lesson-preview .llms-free-lesson-svg,\n.llms-lesson-preview .llms-lesson-complete,\n.llms-lesson-preview .llms-lesson-complete-placeholder {\n display: block;\n font-size: 32px;\n margin-bottom: 15px;\n}\n.llms-lesson-preview.is-free .llms-lesson-complete, .llms-lesson-preview.is-complete .llms-lesson-complete {\n color: #2295ff;\n}\n.llms-lesson-preview .llms-icon-free {\n background: #2295ff;\n border-radius: 4px;\n color: #f1f1f1;\n display: inline-block;\n padding: 5px 6px 4px;\n line-height: 1;\n font-size: 14px;\n}\n.llms-lesson-preview.is-incomplete .llms-lesson-complete {\n color: #cacaca;\n}\n.llms-lesson-preview .llms-lesson-counter {\n font-size: 16px;\n line-height: 1;\n}\n.llms-lesson-preview .llms-free-lesson-svg {\n fill: currentColor;\n height: 23px;\n width: 50px;\n}\n.llms-lesson-preview p {\n margin-bottom: 0;\n}\n\n/* progress bar */\n.llms-progress {\n clear: both;\n display: flex;\n flex-direction: row-reverse;\n position: relative;\n height: 1em;\n width: 100%;\n margin: 15px 0;\n}\n\n.llms-progress .llms-progress-bar {\n background-color: #f1f2f1;\n position: relative;\n height: 0.4em;\n top: 0.3em;\n width: 100%;\n}\n\n.llms-progress .progress-bar-complete {\n background-color: #ef476f;\n height: 100%;\n}\n\n.progress__indicator {\n float: right;\n text-align: right;\n height: 1em;\n line-height: 1em;\n margin-left: 5px;\n white-space: nowrap;\n}\n\n.llms-author .name {\n margin-left: 5px;\n}\n.llms-author .label {\n margin-left: 5px;\n}\n.llms-author .avatar {\n border-radius: 50%;\n}\n.llms-author .bio {\n margin-top: 5px;\n}\n\n.llms-instructor-info .llms-instructors .llms-col:first-child .llms-author {\n margin-left: 0;\n}\n.llms-instructor-info .llms-instructors .llms-col:last-child .llms-author {\n margin-right: 0;\n}\n.llms-instructor-info .llms-instructors .llms-author {\n background: #f5f5f5;\n border-top: 4px solid #2295ff;\n text-align: center;\n margin: 45px 5px 5px;\n padding: 0 10px 10px;\n}\n.llms-instructor-info .llms-instructors .llms-author .avatar {\n background: #2295ff;\n border: 4px solid #2295ff;\n display: block;\n margin: -35px auto 10px;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info {\n display: block;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info.name {\n font-weight: 700;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info.label {\n font-size: 85%;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info.bio {\n font-size: 90%;\n margin-bottom: 0;\n}\n\n.llms-notice {\n background: rgba(34, 149, 255, 0.3);\n border-color: #2295ff;\n border-style: solid;\n border-width: 3px;\n padding: 10px;\n margin-bottom: 10px;\n}\n.llms-notice p:last-child, .llms-notice ul:last-child {\n margin-bottom: 0;\n}\n.llms-notice li {\n list-style-type: none;\n}\n.llms-notice.llms-debug {\n background: rgba(202, 202, 202, 0.3);\n border-color: #cacaca;\n}\n.llms-notice.llms-error {\n background: rgba(229, 85, 78, 0.3);\n border-color: #e5554e;\n}\n.llms-notice.llms-success {\n background: rgba(131, 195, 115, 0.3);\n border-color: #83c373;\n}\n\n.entry-content .llms-notice {\n margin: 0 0 10px;\n}\n.entry-content .llms-notice li {\n list-style-type: none;\n}\n\nul.llms-achievements-loop,\n.lifterlms ul.llms-achievements-loop,\nul.llms-certificates-loop,\n.lifterlms ul.llms-certificates-loop {\n list-style-type: none;\n margin: 0 -10px;\n padding: 0;\n}\nul.llms-achievements-loop:before, ul.llms-achievements-loop:after,\n.lifterlms ul.llms-achievements-loop:before,\n.lifterlms ul.llms-achievements-loop:after,\nul.llms-certificates-loop:before,\nul.llms-certificates-loop:after,\n.lifterlms ul.llms-certificates-loop:before,\n.lifterlms ul.llms-certificates-loop:after {\n content: \" \";\n display: table;\n}\nul.llms-achievements-loop:after,\n.lifterlms ul.llms-achievements-loop:after,\nul.llms-certificates-loop:after,\n.lifterlms ul.llms-certificates-loop:after {\n clear: both;\n}\nul.llms-achievements-loop li.llms-achievement-loop-item,\nul.llms-achievements-loop li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop li.llms-certificate-loop-item,\nul.llms-certificates-loop li.llms-achievement-loop-item,\nul.llms-certificates-loop li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop li.llms-certificate-loop-item {\n box-sizing: border-box;\n display: block;\n float: left;\n list-style-type: none;\n margin: 0;\n padding: 10px;\n width: 100%;\n}\n@media all and (min-width: 600px) {\n ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item {\n width: 100%;\n }\n ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item {\n width: 50%;\n }\n ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item {\n width: 33.3333333333%;\n }\n ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item {\n width: 25%;\n }\n ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item {\n width: 20%;\n }\n}\n\n.llms-achievement,\n.llms-certificate {\n background: #f1f1f1;\n border: none;\n color: inherit;\n display: block;\n text-decoration: none;\n width: 100%;\n}\n.llms-achievement:hover,\n.llms-certificate:hover {\n background: #eaeaea;\n}\n.llms-achievement .llms-achievement-img,\n.llms-certificate .llms-achievement-img {\n display: block;\n margin: 0;\n width: 100%;\n}\n.llms-achievement .llms-achievement-title,\n.llms-certificate .llms-achievement-title {\n font-size: 16px;\n margin: 0;\n padding: 10px;\n text-align: center;\n}\n.llms-achievement .llms-certificate-title,\n.llms-certificate .llms-certificate-title {\n font-size: 16px;\n margin: 0;\n padding: 0 0 10px;\n}\n.llms-achievement .llms-achievement-info,\n.llms-achievement .llms-achievement-date,\n.llms-certificate .llms-achievement-info,\n.llms-certificate .llms-achievement-date {\n display: none;\n}\n.llms-achievement .llms-achievement-content,\n.llms-certificate .llms-achievement-content {\n padding: 20px;\n}\n.llms-achievement .llms-achievement-content:empty,\n.llms-certificate .llms-achievement-content:empty {\n padding: 0;\n}\n.llms-achievement .llms-achievement-content *:last-child,\n.llms-certificate .llms-achievement-content *:last-child {\n margin-bottom: 0;\n}\n\n.llms-certificate {\n border: 4px double #f1f1f1;\n padding: 20px 10px;\n background: #fff;\n text-align: center;\n}\n.llms-certificate:hover {\n background: #fff;\n border-color: #eaeaea;\n}\n\n.llms-achievement-modal .llms-achievement {\n background: #fff;\n}\n.llms-achievement-modal .llms-achievement-info {\n display: block;\n}\n.llms-achievement-modal .llms-achievement-title {\n display: none;\n}\n\n.llms-notification {\n background: #fff;\n box-shadow: 0 1px 2px -2px #333, 0 1px 1px -1px #333;\n border-top: 4px solid #2295ff;\n left: 12px;\n opacity: 0;\n padding: 12px;\n position: fixed;\n right: 12px;\n top: 24px;\n transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out;\n visibility: none;\n width: auto;\n z-index: 9999999;\n}\n.llms-notification:before, .llms-notification:after {\n content: \" \";\n display: table;\n}\n.llms-notification:after {\n clear: both;\n}\n.llms-notification.visible {\n opacity: 1;\n transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, transform 0.2s ease-in-out;\n visibility: visible;\n}\n.llms-notification.visible:hover .llms-notification-dismiss {\n opacity: 1;\n}\n.llms-notification .llms-notification-content {\n align-items: center;\n display: flex;\n}\n.llms-notification .llms-notification-main {\n align-self: flex-start;\n flex: 4;\n order: 2;\n}\n.llms-notification .llms-notification-title {\n font-size: 18px;\n margin: 0;\n}\n.llms-notification .llms-notification-body {\n font-size: 14px;\n line-height: 1.4;\n}\n.llms-notification .llms-notification-body p, .llms-notification .llms-notification-body li {\n font-size: inherit;\n}\n.llms-notification .llms-notification-body p {\n margin-bottom: 8px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert {\n background: #f6f6f6;\n border: 1px solid #d0d0d0;\n box-shadow: inset 0 0 0 3px #fefefe, inset 0 0 0 4px #dedede;\n padding: 16px 16px 24px;\n margin-top: 12px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert-title {\n font-size: 16px;\n font-weight: 700;\n margin: 12px auto;\n text-align: center;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body {\n width: 100%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(1) {\n width: 65%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(2) {\n width: 35%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(3) {\n width: 85%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(4) {\n width: 75%;\n margin-top: 18px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(5) {\n width: 70%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(6) {\n margin-left: 12px;\n margin-bottom: -24px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(7) {\n width: 65%;\n margin-right: 12px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-line {\n border-radius: 2px;\n height: 8px;\n background: #b0b0b0;\n background-image: linear-gradient(to right, #b0b0b0 0%, #a0a0a0 20%, #b0b0b0 40%, #b0b0b0 100%);\n background-repeat: no-repeat;\n margin: 4px auto;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-dot {\n background: #b0b0b0;\n border-radius: 50%;\n display: inline-block;\n content: \"\";\n height: 24px;\n width: 24px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert p {\n margin-bottom: 0;\n}\n.llms-notification .llms-notification-aside {\n align-self: flex-start;\n flex: 1;\n margin-right: 12px;\n order: 1;\n}\n.llms-notification .llms-notification-icon {\n display: block;\n max-width: 64px;\n}\n.llms-notification .llms-notification-footer {\n border-top: 1px solid #e5e5e5;\n font-size: 12px;\n margin-top: 12px;\n padding: 6px 6px 0;\n text-align: right;\n}\n.llms-notification .llms-notification-dismiss {\n color: #e5554e;\n cursor: pointer;\n font-size: 22px;\n position: absolute;\n right: 10px;\n top: 8px;\n transition: opacity 0.4s ease-in-out;\n}\n\n.llms-sd-notification-center .llms-notification-list,\n.llms-sd-notification-center .llms-notification-list-item {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-sd-notification-center .llms-notification-list-item:hover .llms-notification {\n background: #fcfcfc;\n}\n.llms-sd-notification-center .llms-notification {\n opacity: 1;\n border-top: 1px solid #e5e5e5;\n left: auto;\n padding: 24px;\n position: relative;\n right: auto;\n top: auto;\n visibility: visible;\n width: auto;\n}\n.llms-sd-notification-center .llms-notification .llms-notification-aside {\n max-width: 64px;\n}\n.llms-sd-notification-center .llms-notification .llms-notification-footer {\n border: none;\n padding: 0;\n text-align: left;\n}\n.llms-sd-notification-center .llms-notification .llms-progress {\n display: none !important;\n}\n.llms-sd-notification-center .llms-notification .llms-notification-date {\n color: #515151;\n float: left;\n margin-right: 6px;\n}\n.llms-sd-notification-center .llms-notification .llms-mini-cert {\n margin: 0 auto;\n max-width: 380px;\n}\n\n@media all and (min-width: 480px) {\n .llms-notification {\n left: auto;\n right: -800px;\n width: 360px;\n }\n .llms-notification.visible {\n right: 24px;\n }\n .llms-notification .llms-notification-dismiss {\n opacity: 0;\n }\n}\n.llms-pagination ul {\n list-style-type: none;\n}\n.llms-pagination ul li {\n float: left;\n}\n.llms-pagination ul li a {\n border-bottom: 0;\n text-decoration: none;\n}\n.llms-pagination ul li .page-numbers {\n padding: 0.5em;\n text-decoration: underline;\n}\n.llms-pagination ul li .page-numbers.current {\n text-decoration: none;\n}\n\n.llms-tooltip {\n background: #2a2a2a;\n border-radius: 4px;\n color: #fff;\n font-size: 14px;\n line-height: 1.2;\n opacity: 0;\n top: -20px;\n padding: 8px 12px;\n left: 50%;\n position: absolute;\n pointer-events: none;\n transform: translateX(-50%);\n transition: opacity 0.2s ease, top 0.2s ease;\n max-width: 320px;\n}\n.llms-tooltip.show {\n top: -28px;\n opacity: 1;\n}\n.llms-tooltip:after {\n bottom: -8px;\n border-top: 8px solid #2a2a2a;\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n content: \"\";\n height: 0;\n left: 50%;\n position: absolute;\n transform: translateX(-50%);\n width: 0;\n}\n\n.webui-popover-title {\n font-size: initial;\n font-weight: initial;\n line-height: initial;\n}\n\n.webui-popover-inverse .webui-popover-inner .close {\n color: #fff;\n opacity: 0.6;\n text-shadow: none;\n}\n.webui-popover-inverse .webui-popover-inner .close:hover {\n opacity: 0.8;\n}\n.webui-popover-inverse .webui-popover-content a {\n color: #fff;\n text-decoration: underline;\n}\n.webui-popover-inverse .webui-popover-content a:hover {\n text-decoration: none;\n}\n\n.single-llms_quiz .llms-quiz-attempt-results {\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question {\n background: #efefef;\n margin: 0 0 10px;\n position: relative;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer {\n color: inherit;\n display: block;\n padding: 10px 35px 10px 10px;\n text-decoration: none;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:before, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:after {\n content: \" \";\n display: table;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:after {\n clear: both;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect {\n background: rgba(255, 146, 43, 0.2);\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon {\n background-color: #ff922b;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct {\n background: rgba(131, 195, 115, 0.2);\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon {\n background-color: #83c373;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect {\n background: rgba(229, 85, 78, 0.2);\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon {\n background-color: #e5554e;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title {\n float: left;\n margin: 0;\n line-height: 1;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points {\n float: right;\n line-height: 1;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip {\n position: absolute;\n right: -12px;\n top: -2px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon {\n color: rgba(255, 255, 255, 0.65);\n border-radius: 50%;\n font-size: 30px;\n height: 40px;\n line-height: 40px;\n text-align: center;\n width: 40px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main {\n display: none;\n padding: 0 10px 10px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label {\n font-weight: 700;\n margin-bottom: 10px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers {\n margin: 0;\n padding: 0;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {\n padding: 0;\n margin: 0 0 0 30px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child {\n list-style-type: none;\n margin-left: 0;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img {\n height: auto;\n max-width: 200px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section {\n border-top: 2px solid rgba(255, 255, 255, 0.5);\n margin-top: 20px;\n padding-top: 20px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child {\n border-top: none;\n margin-top: 0;\n padding-top: 0;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {\n display: inline-block;\n list-style-type: none;\n margin: 0;\n padding: 5px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed {\n opacity: 0.5;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title {\n font-style: italic;\n font-weight: normal;\n}\n.single-llms_quiz .llms-return {\n margin-bottom: 10px;\n}\n.single-llms_quiz .llms-quiz-results:before, .single-llms_quiz .llms-quiz-results:after {\n content: \" \";\n display: table;\n}\n.single-llms_quiz .llms-quiz-results:after {\n clear: both;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.passing {\n color: #83c373;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.passing svg path {\n stroke: #83c373;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.pending {\n color: #555;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.pending svg path {\n stroke: #555;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.failing {\n color: #e5554e;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.failing svg path {\n stroke: #e5554e;\n}\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside,\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-main,\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-history {\n margin-bottom: 20px;\n}\n@media all and (min-width: 600px) {\n .single-llms_quiz .llms-quiz-results .llms-quiz-results-aside {\n float: left;\n width: 220px;\n }\n .single-llms_quiz .llms-quiz-results .llms-quiz-results-main,\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-history {\n float: left;\n width: calc(100% - 300px);\n }\n}\n.single-llms_quiz ul.llms-quiz-meta-info,\n.single-llms_quiz ul.llms-quiz-meta-info li {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.single-llms_quiz ul.llms-quiz-meta-info {\n margin-bottom: 10px;\n}\n.single-llms_quiz .llms-quiz-buttons {\n margin-top: 10px;\n text-align: left;\n}\n.single-llms_quiz .llms-quiz-buttons form {\n display: inline-block;\n}\n\n.llms-quiz-question-wrapper {\n min-height: 140px;\n position: relative;\n}\n.llms-quiz-question-wrapper .llms-quiz-loading {\n bottom: 20px;\n left: 0;\n position: absolute;\n right: 0;\n text-align: center;\n z-index: 1;\n}\n\n.llms-quiz-ui {\n background: #fcfcfc;\n padding: 20px;\n position: relative;\n}\n.llms-quiz-ui .llms-quiz-header {\n align-items: center;\n display: flex;\n margin: 0 0 30px;\n}\n.llms-quiz-ui .llms-progress {\n background-color: #f1f2f1;\n flex-direction: row;\n height: 8px;\n margin: 0;\n overflow: hidden;\n}\n.llms-quiz-ui .llms-progress .progress-bar-complete {\n transition: width 0.3s ease-in;\n width: 0;\n}\n.llms-quiz-ui .llms-error {\n background: #e5554e;\n border-radius: 4px;\n color: #fff;\n margin: 10px 0;\n padding: 10px;\n}\n.llms-quiz-ui .llms-error:before, .llms-quiz-ui .llms-error:after {\n content: \" \";\n display: table;\n}\n.llms-quiz-ui .llms-error:after {\n clear: both;\n}\n.llms-quiz-ui .llms-error a {\n color: rgba(255, 255, 255, 0.6);\n float: right;\n font-size: 22px;\n line-height: 1;\n text-decoration: none;\n}\n.llms-quiz-ui .llms-quiz-counter {\n display: none;\n color: #6a6a6a;\n float: right;\n font-size: 18px;\n}\n.llms-quiz-ui .llms-quiz-counter .llms-sep {\n margin: 0 5px;\n}\n.llms-quiz-ui .llms-quiz-nav {\n margin-top: 20px;\n}\n.llms-quiz-ui .llms-quiz-nav button {\n margin: 0 10px 0 0;\n}\n\n.llms-question-wrapper .llms-question-text {\n font-size: 30px;\n font-weight: 400;\n margin-bottom: 15px;\n}\n.llms-question-wrapper ol.llms-question-choices {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice {\n border-bottom: 1px solid #e8e8e8;\n margin: 0;\n padding: 0;\n position: relative;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice:last-child {\n border-bottom: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture {\n border-bottom: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture label {\n display: inline-block;\n padding: 0;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-marker {\n bottom: 10px;\n margin: 0;\n position: absolute;\n right: 10px;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image {\n margin: 2px;\n padding: 20px;\n transition: background 0.4s ease;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image img {\n display: block;\n width: 100%;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture input:checked ~ .llms-choice-image {\n background: #efefef;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input {\n display: none;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n visibility: hidden;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice label {\n display: block;\n margin: 0;\n padding: 10px 20px;\n position: relative;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .iterator {\n display: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .fa {\n display: inline;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker {\n background: #f0f0f0;\n display: inline-block;\n font-size: 20px;\n height: 40px;\n line-height: 40px;\n margin-right: 10px;\n text-align: center;\n transition: all 0.2s ease;\n vertical-align: middle;\n width: 40px;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker .fa {\n display: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--lister, .llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--checkbox {\n border-radius: 4px;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--radio {\n border-radius: 50%;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker {\n background: #ef476f;\n color: #fff;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker .iterator {\n display: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker .fa {\n display: inline;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-choice-text {\n display: inline-block;\n font-size: 18px;\n font-weight: 400;\n line-height: 1.6;\n margin-bottom: 0;\n vertical-align: middle;\n width: calc(100% - 60px);\n}\n\n.llms-quiz-timer {\n background: #fff;\n border: 1px solid #83c373;\n border-radius: 4px;\n color: #83c373;\n float: right;\n font-size: 18px;\n line-height: 1;\n margin-left: 20px;\n padding: 8px 12px;\n position: relative;\n white-space: nowrap;\n z-index: 1;\n}\n.llms-quiz-timer.color-half {\n border-color: #ff922b;\n color: #ff922b;\n}\n.llms-quiz-timer.color-empty {\n border-color: #e5554e;\n color: #e5554e;\n}\n.llms-quiz-timer .llms-tiles {\n display: inline-block;\n margin-left: 5px;\n}\n\n.voucher-expand {\n display: none;\n}\n\n@media all and (min-width: 600px) {\n .llms-access-plans.cols-1 .llms-access-plan {\n width: 100%;\n }\n .llms-access-plans.cols-2 .llms-access-plan {\n width: 50%;\n }\n .llms-access-plans.cols-3 .llms-access-plan {\n width: 33.3333333333%;\n }\n .llms-access-plans.cols-4 .llms-access-plan {\n width: 25%;\n }\n .llms-access-plans.cols-5 .llms-access-plan {\n width: 20%;\n }\n}\n\n.llms-free-enroll-form {\n margin-bottom: 0;\n}\n\n.llms-access-plan {\n box-sizing: border-box;\n float: left;\n text-align: center;\n width: 100%;\n}\n.llms-access-plan .llms-access-plan-footer,\n.llms-access-plan .llms-access-plan-content {\n background: #f1f1f1;\n}\n.llms-access-plan.featured .llms-access-plan-featured {\n background: #4ba9ff;\n}\n.llms-access-plan.featured .llms-access-plan-footer,\n.llms-access-plan.featured .llms-access-plan-content {\n border-left: 3px solid #2295ff;\n border-right: 3px solid #2295ff;\n}\n.llms-access-plan.featured .llms-access-plan-footer {\n border-bottom-color: #2295ff;\n}\n.llms-access-plan.on-sale .price-regular {\n text-decoration: line-through;\n}\n.llms-access-plan .stamp {\n background: #2295ff;\n color: #fff;\n font-size: 11px;\n font-style: normal;\n font-weight: 300;\n padding: 2px 3px;\n vertical-align: top;\n}\n.llms-access-plan .llms-access-plan-restrictions ul {\n margin: 0;\n}\n\n.llms-access-plan-featured {\n color: #fff;\n font-size: 14px;\n font-weight: 400;\n margin: 0 2px 0 2px;\n}\n\n.llms-access-plan-content {\n margin: 0 2px 0;\n}\n.llms-access-plan-content .llms-access-plan-pricing {\n padding: 10px 0 0;\n}\n\n.llms-access-plan-title {\n background: #2295ff;\n color: #fff;\n margin-bottom: 0;\n padding: 10px;\n}\n\n.llms-access-plan-pricing .llms-price-currency-symbol {\n font-size: 14px;\n vertical-align: top;\n}\n\n.llms-access-plan-price {\n font-size: 18px;\n font-variant: small-caps;\n line-height: 20px;\n}\n.llms-access-plan-price .lifterlms-price {\n font-weight: 700;\n}\n.llms-access-plan-price.sale {\n padding: 5px 0;\n border-top: 1px solid #d0d0d0;\n border-bottom: 1px solid #d0d0d0;\n}\n\n.llms-access-plan-trial,\n.llms-access-plan-schedule,\n.llms-access-plan-sale-end,\n.llms-access-plan-expiration {\n font-size: 15px;\n font-variant: small-caps;\n line-height: 1.2;\n}\n\n.llms-access-plan-description {\n font-size: 16px;\n padding: 10px 10px 0;\n}\n.llms-access-plan-description ul {\n margin: 0;\n}\n.llms-access-plan-description ul li {\n border-bottom: 1px solid #d0d0d0;\n list-style-type: none;\n}\n.llms-access-plan-description ul li:last-child {\n border-bottom: none;\n}\n.llms-access-plan-description div:last-child, .llms-access-plan-description img:last-child, .llms-access-plan-description p:last-child, .llms-access-plan-description ul:last-child, .llms-access-plan-description li:last-child {\n margin-bottom: 0;\n}\n\n.llms-access-plan-restrictions .stamp {\n vertical-align: baseline;\n}\n.llms-access-plan-restrictions ul {\n margin: 0;\n}\n.llms-access-plan-restrictions ul li {\n font-size: 12px;\n line-height: 14px;\n list-style-type: none;\n}\n.llms-access-plan-restrictions a {\n color: #f8954f;\n}\n.llms-access-plan-restrictions a:hover {\n color: #f67d28;\n}\n\n.llms-access-plan-footer {\n border-bottom: 3px solid #f1f1f1;\n padding: 10px;\n margin: 0 2px 2px 2px;\n}\n.llms-access-plan-footer .llms-access-plan-pricing {\n padding: 0 0 10px;\n}\n\n.webui-popover-content .llms-members-only-restrictions {\n text-align: center;\n}\n.webui-popover-content .llms-members-only-restrictions ul, .webui-popover-content .llms-members-only-restrictions ol, .webui-popover-content .llms-members-only-restrictions li, .webui-popover-content .llms-members-only-restrictions p {\n margin: 0;\n padding: 0;\n}\n.webui-popover-content .llms-members-only-restrictions ul, .webui-popover-content .llms-members-only-restrictions ol, .webui-popover-content .llms-members-only-restrictions li {\n list-style-type: none;\n}\n.webui-popover-content .llms-members-only-restrictions li {\n padding: 8px 0;\n border-top: 1px solid #3b3b3b;\n}\n.webui-popover-content .llms-members-only-restrictions li:first-child {\n border-top: none;\n}\n.webui-popover-content .llms-members-only-restrictions li a {\n display: block;\n}\n\n.llms-checkout-wrapper form.llms-login {\n border: 3px solid #2295ff;\n display: none;\n margin-bottom: 10px;\n}\n.llms-checkout-wrapper .llms-form-heading {\n background: #2295ff;\n color: #fff;\n margin: 0 0 5px;\n padding: 10px;\n}\n\n.llms-checkout {\n background: #fff;\n position: relative;\n}\n\n@media all and (min-width: 800px) {\n .llms-checkout-cols-2 .llms-checkout-col {\n float: left;\n }\n .llms-checkout-cols-2 .llms-checkout-col.llms-col-1 {\n margin-right: 5px;\n width: calc(58% - 5px);\n }\n .llms-checkout-cols-2 .llms-checkout-col.llms-col-2 {\n margin-left: 5px;\n width: calc(42% - 5px);\n }\n .llms-checkout-cols-2 .llms-checkout-col.llms-col-2 button {\n width: 100%;\n }\n}\n\n.llms-checkout-section {\n border: 3px solid #2295ff;\n margin-bottom: 10px;\n position: relative;\n}\n\n.llms-checkout-section-content {\n margin: 10px;\n}\n.llms-checkout-section-content.llms-form-fields {\n margin: 0px;\n}\n.llms-checkout-section-content .llms-label {\n font-weight: 400;\n font-variant: small-caps;\n text-transform: lowercase;\n}\n.llms-checkout-section-content .llms-order-summary {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-checkout-section-content .llms-order-summary li {\n list-style-type: none;\n}\n.llms-checkout-section-content .llms-order-summary li.llms-pricing.on-sale .price-regular, .llms-checkout-section-content .llms-order-summary li.llms-pricing.has-coupon .price-regular {\n text-decoration: line-through;\n}\n.llms-checkout-section-content .llms-coupon-wrapper {\n border-top: 1px solid #dadada;\n margin-top: 10px;\n padding-top: 10px;\n}\n.llms-checkout-section-content .llms-coupon-wrapper .llms-coupon-entry {\n display: none;\n margin-top: 10px;\n}\n\n.llms-form-field.llms-payment-gateway-option label + span.llms-description {\n display: inline-block;\n margin-left: 5px;\n}\n.llms-form-field.llms-payment-gateway-option .llms-description a {\n border: none;\n box-shadow: none;\n text-decoration: none;\n}\n.llms-form-field.llms-payment-gateway-option .llms-description img {\n display: inline;\n max-height: 22px;\n vertical-align: middle;\n}\n\n.llms-checkout-wrapper ul.llms-payment-gateways {\n margin: 5px 0 0;\n padding: 0;\n}\n\nul.llms-payment-gateways {\n list-style-type: none;\n}\nul.llms-payment-gateways li:last-child:after {\n border-bottom: 1px solid #dadada;\n content: \"\";\n display: block;\n margin: 10px;\n}\nul.llms-payment-gateways .llms-payment-gateway {\n margin-bottom: 5px;\n list-style-type: none;\n}\nul.llms-payment-gateways .llms-payment-gateway:last-child {\n margin-bottom: none;\n}\nul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-payment-gateway-option label {\n font-weight: 700;\n}\nul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields {\n display: block;\n}\nul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields .llms-notice {\n margin-left: 10px;\n margin-right: 10px;\n}\nul.llms-payment-gateways .llms-payment-gateway .llms-form-field {\n padding-bottom: 0;\n}\nul.llms-payment-gateways .llms-gateway-description {\n margin-left: 40px;\n}\nul.llms-payment-gateways .llms-gateway-fields {\n display: none;\n margin: 5px 0 20px;\n}\nul.llms-payment-gateways .llms-payment-gateway-error {\n padding: 0 10px;\n}\n\n.llms-checkout-confirm {\n margin: 0 10px;\n}\n\n.llms-payment-method {\n margin: 10px 10px 0;\n}\n\n.llms-gateway-description p {\n font-size: 85%;\n font-style: italic;\n margin-bottom: 0;\n}\n\n.llms-form-fields {\n box-sizing: border-box;\n}\n.llms-form-fields * {\n box-sizing: border-box;\n}\n.llms-form-fields.flush .llms-form-field {\n padding: 0 0 10px;\n}\n.llms-form-fields .wp-block-columns, .llms-form-fields .wp-block-column {\n margin-bottom: 0;\n}\n\n.llms-form-heading {\n padding: 0 10px 10px;\n}\n\n.llms-form-field {\n float: left;\n padding: 0 10px 10px;\n position: relative;\n width: 100%;\n}\n.llms-form-field label:empty:after {\n content: \" \";\n}\n.llms-form-field.valid input[type=date], .llms-form-field.valid input[type=time], .llms-form-field.valid input[type=datetime-local], .llms-form-field.valid input[type=week], .llms-form-field.valid input[type=month], .llms-form-field.valid input[type=text], .llms-form-field.valid input[type=email], .llms-form-field.valid input[type=url], .llms-form-field.valid input[type=password], .llms-form-field.valid input[type=search], .llms-form-field.valid input[type=tel], .llms-form-field.valid input[type=number], .llms-form-field.valid textarea, .llms-form-field.valid select {\n background: rgba(131, 195, 115, 0.3);\n border-color: #83c373;\n}\n.llms-form-field.error input[type=date], .llms-form-field.error input[type=time], .llms-form-field.error input[type=datetime-local], .llms-form-field.error input[type=week], .llms-form-field.error input[type=month], .llms-form-field.error input[type=text], .llms-form-field.error input[type=email], .llms-form-field.error input[type=url], .llms-form-field.error input[type=password], .llms-form-field.error input[type=search], .llms-form-field.error input[type=tel], .llms-form-field.error input[type=number], .llms-form-field.error textarea, .llms-form-field.error select, .llms-form-field.invalid input[type=date], .llms-form-field.invalid input[type=time], .llms-form-field.invalid input[type=datetime-local], .llms-form-field.invalid input[type=week], .llms-form-field.invalid input[type=month], .llms-form-field.invalid input[type=text], .llms-form-field.invalid input[type=email], .llms-form-field.invalid input[type=url], .llms-form-field.invalid input[type=password], .llms-form-field.invalid input[type=search], .llms-form-field.invalid input[type=tel], .llms-form-field.invalid input[type=number], .llms-form-field.invalid textarea, .llms-form-field.invalid select {\n background: rgba(229, 85, 78, 0.3);\n border-color: #e5554e;\n}\n.llms-form-field.llms-visually-hidden-field {\n display: none;\n}\n.llms-form-field.align-right {\n text-align: right;\n}\n@media screen and (min-width: 600px) {\n .llms-form-field.llms-cols-1 {\n width: 8.3333333333%;\n }\n .llms-form-field.llms-cols-2 {\n width: 16.6666666667%;\n }\n .llms-form-field.llms-cols-3 {\n width: 25%;\n }\n .llms-form-field.llms-cols-4 {\n width: 33.3333333333%;\n }\n .llms-form-field.llms-cols-5 {\n width: 41.6666666667%;\n }\n .llms-form-field.llms-cols-6 {\n width: 50%;\n }\n .llms-form-field.llms-cols-7 {\n width: 58.3333333333%;\n }\n .llms-form-field.llms-cols-8 {\n width: 66.6666666667%;\n }\n .llms-form-field.llms-cols-9 {\n width: 75%;\n }\n .llms-form-field.llms-cols-10 {\n width: 83.3333333333%;\n }\n .llms-form-field.llms-cols-11 {\n width: 91.6666666667%;\n }\n .llms-form-field.llms-cols-12 {\n width: 100%;\n }\n}\n.llms-form-field.type-hidden {\n padding: 0;\n}\n.llms-form-field.type-radio input,\n.llms-form-field.type-radio label, .llms-form-field.type-checkbox input,\n.llms-form-field.type-checkbox label {\n display: inline-block;\n width: auto;\n}\n.llms-form-field.type-radio input, .llms-form-field.type-checkbox input {\n margin-right: 5px;\n}\n.llms-form-field.type-radio label + .llms-description, .llms-form-field.type-checkbox label + .llms-description {\n display: block;\n}\n.llms-form-field.type-radio:not(.is-group) input[type=radio] {\n position: absolute;\n opacity: 0;\n visibility: none;\n}\n.llms-form-field.type-radio:not(.is-group) label:before {\n background: #fafafa;\n background-position: -24px 0;\n background-repeat: no-repeat;\n border-radius: 50%;\n box-shadow: rgba(255, 255, 255, 0.15) 0 1px 1px, inset rgba(0, 0, 0, 0.35) 0 0 0 1px;\n content: \"\";\n cursor: pointer;\n display: inline-block;\n height: 22px;\n margin-right: 5px;\n position: relative;\n transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n top: -3px;\n vertical-align: middle;\n width: 22px;\n z-index: 2;\n}\n.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked + label:before {\n transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n background-position: 0 0;\n background-image: radial-gradient(ellipse at center, #2295ff 0%, #2295ff 40%, #fafafa 45%);\n}\n.llms-form-field .llms-input-group {\n margin-top: 5px;\n}\n.llms-form-field .llms-input-group .llms-form-field {\n padding: 0 0 5px 5px;\n}\n.llms-form-field.type-reset button:not(.auto), .llms-form-field.type-button button:not(.auto), .llms-form-field.type-submit button:not(.auto) {\n width: 100%;\n}\n.llms-form-field .llms-description {\n font-size: 14px;\n font-style: italic;\n}\n.llms-form-field .llms-required {\n color: #e5554e;\n margin-left: 4px;\n}\n.llms-form-field input, .llms-form-field textarea, .llms-form-field select {\n width: 100%;\n margin-bottom: 5px;\n}\n.llms-form-field .select2-container .select2-selection--single {\n height: auto;\n padding: 4px 6px;\n}\n.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow {\n height: 100%;\n}\n\n.llms-password-strength-meter {\n border: 1px solid #dadada;\n display: none;\n font-size: 10px;\n margin-top: -10px;\n padding: 1px;\n position: relative;\n text-align: center;\n}\n.llms-password-strength-meter:before {\n bottom: 0;\n content: \"\";\n left: 0;\n position: absolute;\n top: 0;\n transition: width 0.4s ease;\n}\n.llms-password-strength-meter.mismatch, .llms-password-strength-meter.too-short, .llms-password-strength-meter.very-weak {\n border-color: #e35b5b;\n}\n.llms-password-strength-meter.mismatch:before, .llms-password-strength-meter.too-short:before, .llms-password-strength-meter.very-weak:before {\n background: rgba(227, 91, 91, 0.25);\n width: 25%;\n}\n.llms-password-strength-meter.too-short:before {\n width: 0;\n}\n.llms-password-strength-meter.weak {\n border-color: #f78b53;\n}\n.llms-password-strength-meter.weak:before {\n background: rgba(247, 139, 83, 0.25);\n width: 50%;\n}\n.llms-password-strength-meter.medium {\n border-color: #ffc733;\n}\n.llms-password-strength-meter.medium:before {\n background: rgba(255, 199, 51, 0.25);\n width: 75%;\n}\n.llms-password-strength-meter.strong {\n border-color: #83c373;\n}\n.llms-password-strength-meter.strong:before {\n background: rgba(131, 195, 115, 0.25);\n width: 100%;\n}\n\n.llms-widget-syllabus--collapsible .llms-section .section-header {\n cursor: pointer;\n}\n.llms-widget-syllabus--collapsible .llms-section.llms-section--opened .llms-collapse-caret .fa-caret-right {\n display: none;\n}\n.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-collapse-caret .fa-caret-down {\n display: none;\n}\n.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-lesson {\n display: none;\n}\n.llms-widget-syllabus--collapsible .llms-syllabus-footer {\n text-align: left;\n}\n\n.llms-student-dashboard {\n /**\n * Dashboard Home\n */\n}\n.llms-student-dashboard .llms-sd-title {\n margin: 25px 0;\n}\n.llms-student-dashboard .llms-sd-items {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-student-dashboard .llms-sd-item {\n float: left;\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-student-dashboard .llms-sd-item:last-child .llms-sep {\n display: none;\n}\n.llms-student-dashboard .llms-sd-item .llms-sep {\n color: #333;\n margin: 0 5px;\n}\n.llms-student-dashboard .llms-sd-section {\n margin-bottom: 25px;\n}\n.llms-student-dashboard .llms-sd-section .llms-sd-section-footer {\n margin-top: 10px;\n}\n.llms-student-dashboard .orders-table {\n border: 1px solid #f5f5f5;\n width: 100%;\n}\n.llms-student-dashboard .orders-table thead {\n display: none;\n}\n.llms-student-dashboard .orders-table thead th, .llms-student-dashboard .orders-table thead td {\n font-weight: 700;\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .orders-table thead {\n display: table-header-group;\n }\n}\n.llms-student-dashboard .orders-table tbody tr:nth-child(even) td, .llms-student-dashboard .orders-table tbody tr:nth-child(even) th {\n background: #f9f9f9;\n}\n.llms-student-dashboard .orders-table tfoot th, .llms-student-dashboard .orders-table tfoot td {\n padding: 10px;\n text-align: right;\n}\n.llms-student-dashboard .orders-table tfoot th:last-child, .llms-student-dashboard .orders-table tfoot td:last-child {\n border-bottom-width: 0;\n}\n.llms-student-dashboard .orders-table th {\n font-weight: 700;\n}\n.llms-student-dashboard .orders-table th, .llms-student-dashboard .orders-table td {\n border-color: #efefef;\n border-style: solid;\n border-width: 0;\n display: block;\n padding: 8px 12px;\n text-align: center;\n}\n.llms-student-dashboard .orders-table th .llms-button-primary, .llms-student-dashboard .orders-table td .llms-button-primary {\n display: inline-block;\n}\n.llms-student-dashboard .orders-table th:last-child, .llms-student-dashboard .orders-table td:last-child {\n border-bottom-width: 1px;\n}\n.llms-student-dashboard .orders-table th:before, .llms-student-dashboard .orders-table td:before {\n content: attr(data-label);\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .orders-table th, .llms-student-dashboard .orders-table td {\n border-bottom-width: 1px;\n display: table-cell;\n text-align: left;\n }\n .llms-student-dashboard .orders-table th:first-child, .llms-student-dashboard .orders-table td:first-child {\n width: 220px;\n }\n .llms-student-dashboard .orders-table th:before, .llms-student-dashboard .orders-table td:before {\n display: none;\n }\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .orders-table.transactions th:first-child {\n width: auto;\n }\n}\n.llms-student-dashboard .llms-status {\n border-radius: 3px;\n border-bottom: 1px solid #fff;\n display: inline-block;\n font-size: 80%;\n padding: 3px 6px;\n vertical-align: middle;\n}\n.llms-student-dashboard .llms-status.llms-size--large {\n font-size: 105%;\n padding: 6px 12px;\n}\n.llms-student-dashboard .llms-status.llms-active, .llms-student-dashboard .llms-status.llms-completed, .llms-student-dashboard .llms-status.llms-pass, .llms-student-dashboard .llms-status.llms-txn-succeeded {\n color: #1f3818;\n background-color: #83c373;\n}\n.llms-student-dashboard .llms-status.llms-fail, .llms-student-dashboard .llms-status.llms-failed, .llms-student-dashboard .llms-status.llms-expired, .llms-student-dashboard .llms-status.llms-cancelled, .llms-student-dashboard .llms-status.llms-txn-failed {\n color: #5a110d;\n background-color: #e5554e;\n}\n.llms-student-dashboard .llms-status.llms-incomplete, .llms-student-dashboard .llms-status.llms-on-hold, .llms-student-dashboard .llms-status.llms-pending, .llms-student-dashboard .llms-status.llms-pending-cancel, .llms-student-dashboard .llms-status.llms-refunded, .llms-student-dashboard .llms-status.llms-txn-pending, .llms-student-dashboard .llms-status.llms-txn-refunded {\n color: #664200;\n background-color: orange;\n}\n.llms-student-dashboard .llms-person-form-wrapper .llms-change-password {\n display: none;\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .order-primary {\n float: left;\n width: 68%;\n }\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .order-secondary {\n float: left;\n width: 32%;\n }\n}\n.llms-student-dashboard .order-secondary form {\n margin-bottom: 0;\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .llms-view-order.llms-stack-cols .order-primary,\n.llms-student-dashboard .llms-view-order.llms-stack-cols .order-secondary {\n float: none;\n width: 100%;\n }\n}\n.llms-student-dashboard .llms-switch-payment-source .llms-notice,\n.llms-student-dashboard .llms-switch-payment-source .entry-content .llms-notice {\n margin-left: 10px;\n margin-right: 10px;\n}\n.llms-student-dashboard .llms-switch-payment-source-main {\n border: none;\n display: none;\n margin: 0;\n}\n.llms-student-dashboard .llms-switch-payment-source-main ul.llms-payment-gateways {\n padding: 10px 15px 0;\n margin: 0;\n}\n.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method,\n.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary {\n padding: 0 25px 10px;\n margin: 0;\n list-style-type: none;\n}\n.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method li,\n.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary li {\n list-style-type: none;\n}\n.llms-student-dashboard .llms-loop-list {\n margin: 0 -10px;\n}\n\n.llms-sd-grades .llms-table .llms-progress {\n display: block;\n margin: 0;\n}\n.llms-sd-grades .llms-table .llms-progress .llms-progress-bar {\n top: 0;\n height: 1.4em;\n}\n.llms-sd-grades .llms-table .llms-progress .progress__indicator {\n font-size: 1em;\n position: relative;\n right: 0.4em;\n top: 0.2em;\n z-index: 1;\n}\n\n.llms-table.llms-single-course-grades tbody tr:first-child td, .llms-table.llms-single-course-grades tbody tr:first-child th {\n background-color: #eaeaea;\n}\n.llms-table.llms-single-course-grades th {\n font-weight: 400;\n}\n.llms-table.llms-single-course-grades td .llms-donut {\n display: inline-block;\n vertical-align: middle;\n}\n.llms-table.llms-single-course-grades td .llms-status {\n margin-right: 4px;\n}\n.llms-table.llms-single-course-grades td .llms-donut + .llms-status {\n margin-left: 4px;\n}\n.llms-table.llms-single-course-grades th.llms-section_title {\n font-size: 110%;\n font-weight: 700;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title {\n padding-left: 36px;\n max-width: 40%;\n}\n.llms-table.llms-single-course-grades td.llms-associated_quiz .llms-donut {\n display: inline-block;\n margin-right: 5px;\n vertical-align: middle;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href=\"#\"] {\n pointer-events: none;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href^=\"#\"] {\n color: inherit;\n position: relative;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href^=\"#\"] .llms-tooltip {\n max-width: 380px;\n width: 380px;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href^=\"#\"] .llms-tooltip.show {\n top: -54px;\n}\n\n.llms-sd-widgets {\n display: flex;\n}\n.llms-sd-widgets .llms-sd-widget {\n background: #f9f9f9;\n flex: 1;\n margin: 10px 10px 20px;\n padding: 0 0 20px;\n}\n.llms-sd-widgets .llms-sd-widget:first-child {\n margin-left: 0;\n}\n.llms-sd-widgets .llms-sd-widget:last-child {\n margin-right: 0;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-widget-title {\n background: #2295ff;\n color: #fff;\n font-size: 18px;\n line-height: 1;\n margin: 0 0 20px;\n padding: 10px;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-widget-empty {\n font-size: 14px;\n font-style: italic;\n opacity: 0.5;\n text-align: center;\n}\n.llms-sd-widgets .llms-sd-widget .llms-donut {\n margin: 0 auto;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date {\n opacity: 0.8;\n text-align: center;\n font-size: 22px;\n line-height: 1.1;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date span {\n display: block;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date span.day {\n font-size: 52px;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date span.diff {\n font-size: 12px;\n font-style: italic;\n margin-top: 8px;\n opacity: 0.75;\n}\n.llms-sd-widgets .llms-sd-widget .llms-achievement {\n background: transparent;\n margin: 0 auto;\n max-width: 120px;\n}\n.llms-sd-widgets .llms-sd-widget .llms-achievement .llms-achievement-title {\n display: none;\n}\n\n.llms-sd-pagination {\n margin-top: 24px;\n}\n.llms-sd-pagination:before, .llms-sd-pagination:after {\n content: \" \";\n display: table;\n}\n.llms-sd-pagination:after {\n clear: both;\n}\n.llms-sd-pagination .llms-button-secondary {\n display: inline-block;\n}\n.llms-sd-pagination .llms-button-secondary.prev {\n float: left;\n}\n.llms-sd-pagination .llms-button-secondary.next {\n float: right;\n}\n\n.llms-sd-notification-center .llms-notification {\n z-index: 1;\n}\n\n.llms-table {\n border: 1px solid #efefef;\n width: 100%;\n}\n.llms-table thead th, .llms-table thead td {\n font-weight: 700;\n}\n.llms-table tbody tr:nth-child(odd) td, .llms-table tbody tr:nth-child(odd) th {\n background: #f9f9f9;\n}\n.llms-table tbody tr:last-child {\n border-bottom-width: 0;\n}\n.llms-table tfoot tr {\n background: #f9f9f9;\n}\n.llms-table tfoot tr .llms-pagination .page-numbers {\n margin: 0;\n}\n.llms-table tfoot tr .llms-table-sort {\n text-align: right;\n}\n.llms-table tfoot tr .llms-table-sort form, .llms-table tfoot tr .llms-table-sort select, .llms-table tfoot tr .llms-table-sort input, .llms-table tfoot tr .llms-table-sort button {\n margin: 0;\n}\n.llms-table th {\n font-weight: 700;\n}\n.llms-table th, .llms-table td {\n border-bottom: 1px solid #efefef;\n padding: 8px 12px;\n}\n.llms-table th:first-child, .llms-table td:first-child {\n padding-left: 12px;\n}\n.llms-table th:last-child, .llms-table td:last-child {\n padding-right: 12px;\n}\n\n#page .llms-table tfoot label {\n display: inline;\n}\n\n#page .llms-table tfoot select {\n height: auto;\n}\n\n/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: \"FontAwesome\";\n src: url(\"../fonts/fontawesome-webfont.eot?v=4.7.0\");\n src: url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0\") format(\"embedded-opentype\"), url(\"../fonts/fontawesome-webfont.woff2?v=4.7.0\") format(\"woff2\"), url(\"../fonts/fontawesome-webfont.woff?v=4.7.0\") format(\"woff\"), url(\"../fonts/fontawesome-webfont.ttf?v=4.7.0\") format(\"truetype\"), url(\"../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular\") format(\"svg\");\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n\n.fa-border {\n padding: 0.2em 0.25em 0.15em;\n border: solid 0.08em #eeeeee;\n border-radius: 0.1em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left {\n margin-right: 0.3em;\n}\n\n.fa.fa-pull-right {\n margin-left: 0.3em;\n}\n\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n\n.pull-left {\n float: left;\n}\n\n.fa.pull-left {\n margin-right: 0.3em;\n}\n\n.fa.pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none;\n}\n\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n\n.fa-stack-1x {\n line-height: inherit;\n}\n\n.fa-stack-2x {\n font-size: 2em;\n}\n\n.fa-inverse {\n color: #ffffff;\n}\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n\n.fa-music:before {\n content: \"\\f001\";\n}\n\n.fa-search:before {\n content: \"\\f002\";\n}\n\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n\n.fa-heart:before {\n content: \"\\f004\";\n}\n\n.fa-star:before {\n content: \"\\f005\";\n}\n\n.fa-star-o:before {\n content: \"\\f006\";\n}\n\n.fa-user:before {\n content: \"\\f007\";\n}\n\n.fa-film:before {\n content: \"\\f008\";\n}\n\n.fa-th-large:before {\n content: \"\\f009\";\n}\n\n.fa-th:before {\n content: \"\\f00a\";\n}\n\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n\n.fa-check:before {\n content: \"\\f00c\";\n}\n\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n\n.fa-power-off:before {\n content: \"\\f011\";\n}\n\n.fa-signal:before {\n content: \"\\f012\";\n}\n\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n\n.fa-home:before {\n content: \"\\f015\";\n}\n\n.fa-file-o:before {\n content: \"\\f016\";\n}\n\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n\n.fa-road:before {\n content: \"\\f018\";\n}\n\n.fa-download:before {\n content: \"\\f019\";\n}\n\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n\n.fa-refresh:before {\n content: \"\\f021\";\n}\n\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n\n.fa-lock:before {\n content: \"\\f023\";\n}\n\n.fa-flag:before {\n content: \"\\f024\";\n}\n\n.fa-headphones:before {\n content: \"\\f025\";\n}\n\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n\n.fa-tag:before {\n content: \"\\f02b\";\n}\n\n.fa-tags:before {\n content: \"\\f02c\";\n}\n\n.fa-book:before {\n content: \"\\f02d\";\n}\n\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n\n.fa-print:before {\n content: \"\\f02f\";\n}\n\n.fa-camera:before {\n content: \"\\f030\";\n}\n\n.fa-font:before {\n content: \"\\f031\";\n}\n\n.fa-bold:before {\n content: \"\\f032\";\n}\n\n.fa-italic:before {\n content: \"\\f033\";\n}\n\n.fa-text-height:before {\n content: \"\\f034\";\n}\n\n.fa-text-width:before {\n content: \"\\f035\";\n}\n\n.fa-align-left:before {\n content: \"\\f036\";\n}\n\n.fa-align-center:before {\n content: \"\\f037\";\n}\n\n.fa-align-right:before {\n content: \"\\f038\";\n}\n\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n\n.fa-list:before {\n content: \"\\f03a\";\n}\n\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n\n.fa-indent:before {\n content: \"\\f03c\";\n}\n\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n\n.fa-pencil:before {\n content: \"\\f040\";\n}\n\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n\n.fa-adjust:before {\n content: \"\\f042\";\n}\n\n.fa-tint:before {\n content: \"\\f043\";\n}\n\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n\n.fa-arrows:before {\n content: \"\\f047\";\n}\n\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n\n.fa-backward:before {\n content: \"\\f04a\";\n}\n\n.fa-play:before {\n content: \"\\f04b\";\n}\n\n.fa-pause:before {\n content: \"\\f04c\";\n}\n\n.fa-stop:before {\n content: \"\\f04d\";\n}\n\n.fa-forward:before {\n content: \"\\f04e\";\n}\n\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n\n.fa-eject:before {\n content: \"\\f052\";\n}\n\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n\n.fa-ban:before {\n content: \"\\f05e\";\n}\n\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n\n.fa-expand:before {\n content: \"\\f065\";\n}\n\n.fa-compress:before {\n content: \"\\f066\";\n}\n\n.fa-plus:before {\n content: \"\\f067\";\n}\n\n.fa-minus:before {\n content: \"\\f068\";\n}\n\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n\n.fa-gift:before {\n content: \"\\f06b\";\n}\n\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n\n.fa-fire:before {\n content: \"\\f06d\";\n}\n\n.fa-eye:before {\n content: \"\\f06e\";\n}\n\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n\n.fa-plane:before {\n content: \"\\f072\";\n}\n\n.fa-calendar:before {\n content: \"\\f073\";\n}\n\n.fa-random:before {\n content: \"\\f074\";\n}\n\n.fa-comment:before {\n content: \"\\f075\";\n}\n\n.fa-magnet:before {\n content: \"\\f076\";\n}\n\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n\n.fa-retweet:before {\n content: \"\\f079\";\n}\n\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n\n.fa-folder:before {\n content: \"\\f07b\";\n}\n\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n\n.fa-key:before {\n content: \"\\f084\";\n}\n\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n\n.fa-comments:before {\n content: \"\\f086\";\n}\n\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n\n.fa-star-half:before {\n content: \"\\f089\";\n}\n\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n\n.fa-trophy:before {\n content: \"\\f091\";\n}\n\n.fa-github-square:before {\n content: \"\\f092\";\n}\n\n.fa-upload:before {\n content: \"\\f093\";\n}\n\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n\n.fa-phone:before {\n content: \"\\f095\";\n}\n\n.fa-square-o:before {\n content: \"\\f096\";\n}\n\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n\n.fa-twitter:before {\n content: \"\\f099\";\n}\n\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n\n.fa-github:before {\n content: \"\\f09b\";\n}\n\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n\n.fa-square:before {\n content: \"\\f0c8\";\n}\n\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n\n.fa-table:before {\n content: \"\\f0ce\";\n}\n\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n\n.fa-money:before {\n content: \"\\f0d6\";\n}\n\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n\n.fa-columns:before {\n content: \"\\f0db\";\n}\n\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n\n.fa-desktop:before {\n content: \"\\f108\";\n}\n\n.fa-laptop:before {\n content: \"\\f109\";\n}\n\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n\n.fa-spinner:before {\n content: \"\\f110\";\n}\n\n.fa-circle:before {\n content: \"\\f111\";\n}\n\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n\n.fa-terminal:before {\n content: \"\\f120\";\n}\n\n.fa-code:before {\n content: \"\\f121\";\n}\n\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n\n.fa-crop:before {\n content: \"\\f125\";\n}\n\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n\n.fa-question:before {\n content: \"\\f128\";\n}\n\n.fa-info:before {\n content: \"\\f129\";\n}\n\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n\n.fa-microphone:before {\n content: \"\\f130\";\n}\n\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n\n.fa-shield:before {\n content: \"\\f132\";\n}\n\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n\n.fa-rocket:before {\n content: \"\\f135\";\n}\n\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n\n.fa-html5:before {\n content: \"\\f13b\";\n}\n\n.fa-css3:before {\n content: \"\\f13c\";\n}\n\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n\n.fa-ticket:before {\n content: \"\\f145\";\n}\n\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n\n.fa-level-up:before {\n content: \"\\f148\";\n}\n\n.fa-level-down:before {\n content: \"\\f149\";\n}\n\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n\n.fa-compass:before {\n content: \"\\f14e\";\n}\n\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n\n.fa-gbp:before {\n content: \"\\f154\";\n}\n\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n\n.fa-file:before {\n content: \"\\f15b\";\n}\n\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n\n.fa-youtube:before {\n content: \"\\f167\";\n}\n\n.fa-xing:before {\n content: \"\\f168\";\n}\n\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n\n.fa-adn:before {\n content: \"\\f170\";\n}\n\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n\n.fa-apple:before {\n content: \"\\f179\";\n}\n\n.fa-windows:before {\n content: \"\\f17a\";\n}\n\n.fa-android:before {\n content: \"\\f17b\";\n}\n\n.fa-linux:before {\n content: \"\\f17c\";\n}\n\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n\n.fa-skype:before {\n content: \"\\f17e\";\n}\n\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n\n.fa-trello:before {\n content: \"\\f181\";\n}\n\n.fa-female:before {\n content: \"\\f182\";\n}\n\n.fa-male:before {\n content: \"\\f183\";\n}\n\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n\n.fa-archive:before {\n content: \"\\f187\";\n}\n\n.fa-bug:before {\n content: \"\\f188\";\n}\n\n.fa-vk:before {\n content: \"\\f189\";\n}\n\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n\n.fa-renren:before {\n content: \"\\f18b\";\n}\n\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n\n.fa-slack:before {\n content: \"\\f198\";\n}\n\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n\n.fa-openid:before {\n content: \"\\f19b\";\n}\n\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n\n.fa-google:before {\n content: \"\\f1a0\";\n}\n\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n\n.fa-language:before {\n content: \"\\f1ab\";\n}\n\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n\n.fa-building:before {\n content: \"\\f1ad\";\n}\n\n.fa-child:before {\n content: \"\\f1ae\";\n}\n\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n\n.fa-database:before {\n content: \"\\f1c0\";\n}\n\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n\n.fa-git:before {\n content: \"\\f1d3\";\n}\n\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n\n.fa-history:before {\n content: \"\\f1da\";\n}\n\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n\n.fa-header:before {\n content: \"\\f1dc\";\n}\n\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n\n.fa-at:before {\n content: \"\\f1fa\";\n}\n\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n\n.fa-bus:before {\n content: \"\\f207\";\n}\n\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n\n.fa-angellist:before {\n content: \"\\f209\";\n}\n\n.fa-cc:before {\n content: \"\\f20a\";\n}\n\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n\n.fa-diamond:before {\n content: \"\\f219\";\n}\n\n.fa-ship:before {\n content: \"\\f21a\";\n}\n\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n\n.fa-venus:before {\n content: \"\\f221\";\n}\n\n.fa-mars:before {\n content: \"\\f222\";\n}\n\n.fa-mercury:before {\n content: \"\\f223\";\n}\n\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n\n.fa-server:before {\n content: \"\\f233\";\n}\n\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n\n.fa-user-times:before {\n content: \"\\f235\";\n}\n\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n\n.fa-train:before {\n content: \"\\f238\";\n}\n\n.fa-subway:before {\n content: \"\\f239\";\n}\n\n.fa-medium:before {\n content: \"\\f23a\";\n}\n\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n\n.fa-object-group:before {\n content: \"\\f247\";\n}\n\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n\n.fa-clone:before {\n content: \"\\f24d\";\n}\n\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n\n.fa-registered:before {\n content: \"\\f25d\";\n}\n\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n\n.fa-gg:before {\n content: \"\\f260\";\n}\n\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n\n.fa-safari:before {\n content: \"\\f267\";\n}\n\n.fa-chrome:before {\n content: \"\\f268\";\n}\n\n.fa-firefox:before {\n content: \"\\f269\";\n}\n\n.fa-opera:before {\n content: \"\\f26a\";\n}\n\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n\n.fa-contao:before {\n content: \"\\f26d\";\n}\n\n.fa-500px:before {\n content: \"\\f26e\";\n}\n\n.fa-amazon:before {\n content: \"\\f270\";\n}\n\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n\n.fa-industry:before {\n content: \"\\f275\";\n}\n\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n\n.fa-map-o:before {\n content: \"\\f278\";\n}\n\n.fa-map:before {\n content: \"\\f279\";\n}\n\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n\n.fa-edge:before {\n content: \"\\f282\";\n}\n\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n\n.fa-modx:before {\n content: \"\\f285\";\n}\n\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n\n.fa-usb:before {\n content: \"\\f287\";\n}\n\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n\n.fa-percent:before {\n content: \"\\f295\";\n}\n\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n\n.fa-envira:before {\n content: \"\\f299\";\n}\n\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n\n.fa-blind:before {\n content: \"\\f29d\";\n}\n\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n\n.llms-spinning {\n background: rgba(250, 250, 250, 0.7);\n bottom: 0;\n display: none;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.llms-spinner {\n animation: llms-spinning 1.5s linear infinite;\n box-sizing: border-box;\n border: 4px solid #313131;\n border-radius: 50%;\n height: 40px;\n left: 50%;\n margin-left: -20px;\n margin-top: -20px;\n position: absolute;\n top: 50%;\n width: 40px;\n}\n.llms-spinner.small {\n border-width: 2px;\n height: 20px;\n margin-left: -10px;\n margin-top: -10px;\n width: 20px;\n}\n\n@keyframes llms-spinning {\n 0% {\n transform: rotate(0deg);\n }\n 50% {\n border-radius: 5%;\n }\n 100% {\n transform: rotate(220deg);\n }\n}","%cf,\n%clearfix {\n\t&:before,\n\t&:after {\n\t content: \" \";\n\t display: table;\n\t}\n\n\t&:after {\n \tclear: both;\n\t}\n}\n\n\n\n%llms-element {\n\tbackground: $el-background;\n\tbox-shadow: $el-box-shadow;\n\tdisplay: block;\n\tcolor: #212121;\n\tmin-height: 85px;\n\tpadding: 15px;\n\ttext-decoration: none;\n\tposition: relative;\n\ttransition: background .4s ease;\n\n\t&:hover {\n\t\tbackground: $el-background-hover;\n\t}\n}\n","//\n// Floated columns.\n//\n// Utilized prior to the introduction of `.llms-flex-cols`. Prefer\n// usage of flex cols for new code where possible.\n//\n.llms-cols {\n\t@extend %clearfix;\n\n\t.llms-col { width: 100%; }\n\n\t@media all and (min-width: 600px) {\n\t\t[class*=\"llms-col-\"] {\n\t\t\tfloat: left;\n\t\t}\n\t}\n\n}\n\n//\n// Flex-box columns.\n//\n// Preferred over floated `.llms-cols` wherever possible.\n//\n.llms-flex-cols {\n\tdisplay: flex;\n\tflex-flow: row wrap;\n\n\t[class*=\"llms-col\"] {\n\t\tflex: 0 1 auto;\n\t\twidth: 100%;\n\t}\n}\n\n@media all and (min-width: 600px) {\n\t.llms-cols, .llms-flex-cols {\n\t\t$cols: 1;\n\t\t@while $cols <= 12 {\n\t\t\t.llms-col-#{$cols} {\n\t\t\t\twidth: calc( 100% / $cols );\n\t\t\t}\n\t\t\t$cols: $cols + 1;\n\t\t}\n\t}\n}\n\n",".llms-button-action,\n.llms-button-danger,\n.llms-button-primary,\n.llms-button-secondary {\n\tborder:none;\n\tborder-radius: 0;\n\tcolor: $color-white;\n\tcursor: pointer;\n\tfont-size: 16px;\n\tfont-weight: 300;\n\ttext-decoration: none;\n\ttext-shadow: none;\n\tline-height: 1;\n\tmargin: 0;\n\tmax-width: 100%;\n\tpadding: 12px 24px;\n\tposition: relative;\n\ttransition: all .5s ease;\n\n\t&:disabled {\n\t\topacity: 0.5;\n\t}\n\t&:hover, &:active {\n\t\tcolor: $color-white;\n\t}\n\t&:focus {\n\t\tcolor: $color-white;\n\t}\n\n\t&.auto {\n\t\twidth: auto;\n\t}\n\n\t&.full {\n\t\tdisplay: block;\n\t\ttext-align: center;\n\t\twidth: 100%;\n\t}\n\n\t&.square {\n\t\tpadding: 12px;\n\t}\n\n\t&.small {\n\t\tfont-size: 13px;\n\t\tpadding: 8px 14px;\n\t\t&.square { padding: 8px; }\n\t}\n\n\t&.large {\n\t\tfont-size: 18px;\n\t\tline-height: 1.2;\n\t\tpadding: 16px 32px;\n\t\t&.square { padding: 16px; }\n\t\t.fa {\n\t\t\tleft: -7px;\n\t\t\tposition: relative;\n\t\t}\n\t}\n\n\n}\n\n.llms-button-primary {\n\tbackground: $color-brand-blue;\n\t&:hover,\n\t&.clicked {\n\t\tbackground: $color-brand-blue-dark;\n\t}\n\t&:focus,\n\t&:active {\n\t\tbackground: $color-brand-blue-light;\n\t}\n}\n\n.llms-button-secondary {\n\tbackground: #e1e1e1;\n\tcolor: #414141;\n\t&:hover {\n\t\tcolor: #414141;\n\t\tbackground: darken( #e1e1e1, 8 );\n\t}\n\t&:focus,\n\t&:active {\n\t\tcolor: #414141;\n\t\tbackground: lighten( #e1e1e1, 4 );\n\t}\n}\n\n.llms-button-action {\n\tbackground: $color-brand-orange;\n\t&:hover,\n\t&.clicked {\n\t\tbackground: $color-brand-orange-dark;\n\t}\n\t&:focus,\n\t&:active {\n\t\tbackground: $color-brand-orange-light;\n\t}\n}\n\n.llms-button-danger {\n\tbackground: $color-danger;\n\t&:hover {\n\t\tbackground: darken( $color-danger, 8 );\n\t}\n\t&:focus,\n\t&:active {\n\t\tbackground: lighten( $color-danger, 4 );\n\t}\n}\n","// ----- LifterLMS Brand Colors ----- \\\\\n$color-brand-dark-blue: #243c56;\n\n$color-brand-blue: #2295ff;\n$color-brand-blue-dark: darken( $color-brand-blue, 12 ); // #0077e4\n$color-brand-blue-light: lighten( $color-brand-blue, 8 );\n\n$color-brand-orange: #f8954f;\n$color-brand-orange-dark: #f67d28;\n$color-brand-orange-light: lighten( $color-brand-orange, 8 );\n\n$color-brand-aqua: #17bebb;\n\n$color-brand-pink: #ef476f;\n\n\n\n// ----- name our versions of common colors ----- \\\\\n$color-black: #010101;\n$color-green: #83c373;\n$color-blue: $color-brand-blue;\n$color-red: #e5554e;\n$color-white: #fefefe;\n$color-aqua: #35bbaa;\n$color-purple: #845ef7;\n$color-orange: #ff922b;\n\n$color-red-hover: darken($color-red,5);\n\n\n// ----- state / action names ----- \\\\\n$color-success: $color-green;\n$color-danger: $color-red;\n\n\n\n\n\n\n\n\n$color-lightgrey:\t\t#ccc;\n$color-grey: \t\t\t#999;\n$color-darkgrey:\t\t#666;\n$color-cinder:\t\t\t#444;\n$color-lightblue:\t\t#33b1cb;\n$color-darkblue:\t\t#0185a3;\n\n\n\n\n\n\n\n\n\n\n\n\n$color-border: #efefef;\n\n$el-box-shadow: 0 1px 2px 0 rgba($color-black,0.4);\n$el-background: #f1f1f1;\n$el-background-hover: #eaeaea;\n\n$break-xsmall: 320px;\n$break-small: 641px;\n$break-medium: 768px;\n$break-large: 1024px;\n",".llms-donut {\n\n\t@include clearfix;\n\n\tbackground-color: #f1f1f1;\n\tbackground-image: none;\n\tborder-radius: 50%;\n\tcolor: $color-brand-pink;\n\theight: 200px;\n\toverflow: hidden;\n\tposition: relative;\n\twidth: 200px;\n\n\tsvg {\n\t\toverflow: visible !important;\n\t\tpointer-events: none;\n\t\twidth: 100%;\n\t}\n\n\tsvg path {\n\t\tfill: none;\n\t\tstroke-width: 35px;\n\t\tstroke: $color-brand-pink;\n\t}\n\n\t&.mini {\n\t\theight: 36px;\n\t\twidth: 36px;\n\t\t.percentage {\n\t\t\tfont-size: 10px;\n\t\t}\n\t}\n\t&.small {\n\t\theight: 100px;\n\t\twidth: 100px;\n\t\t.percentage {\n\t\t\tfont-size: 18px;\n\t\t}\n\t}\n\t&.medium {\n\t\theight: 130px;\n\t\twidth: 130px;\n\t\t.percentage {\n\t\t\tfont-size: 26px;\n\t\t}\n\t}\n\t&.large {\n\t\theight: 260px;\n\t\twidth: 260px;\n\t\t.percentage {\n\t\t\tfont-size: 48px;\n\t\t}\n\t}\n\n\t.inside {\n\t\talign-items: center;\n\t\tbackground: #fff;\n\t\tborder-radius: 50%;\n\t\tbox-sizing: border-box;\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\theight: 80%;\n\t\tjustify-content: center;\n\t\tleft: 50%;\n\t\tposition: absolute;\n\t\ttext-align: center;\n\t\ttransform: translate(-50%, -50%);\n\t\twidth: 80%;\n\t\ttop: 50%;\n\t\tz-index: 3;\n\t}\n\n\t.percentage {\n\t\tline-height: 1.2;\n\t\tfont-size: 34px;\n\t}\n\n\t.caption {\n\t\tfont-size: 50%;\n\t}\n\n}\n","\n@mixin clearfix() {\n\t&:before,\n\t&:after {\n\t content: \" \";\n\t display: table;\n\t}\n\t&:after {\n\t clear: both;\n\t}\n}\n\n//\n// Positioning mixin\n//\n// @param [string] $position: position\n// @param [list] $args (()): offsets list\n//\n// @source http://hugogiraudel.com/2013/08/05/offsets-sass-mixin/\n//\n@mixin position($position, $args: ()) {\n\t$offsets: top right bottom left;\n\tposition: $position;\n\n\t@each $offset in $offsets {\n\t\t$index: index($args, $offset);\n\n\t\t@if $index {\n\t\t\t@if $index == length($args) {\n\t\t\t\t#{$offset}: 0;\n\t\t\t}\n\t\t\t@else {\n\t\t\t\t$next: nth($args, $index + 1);\n\t\t\t\t@if is-valid-length($next) {\n\t\t\t\t\t#{$offset}: $next;\n\t\t\t\t}\n\t\t\t\t@else if index($offsets, $next) {\n\t\t\t\t\t#{$offset}: 0;\n\t\t\t\t}\n\t\t\t\t@else {\n\t\t\t\t\t@warn \"Invalid value `#{$next}` for offset `#{$offset}`.\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n//\n// Function checking if $value is a valid length\n// @param [literal] $value: value to test\n// @return [bool]\n//\n@function is-valid-length($value) {\n\t$r: (type-of($value) == \"number\" and not unitless($value)) or (index(auto initial inherit 0, $value) != null);\n\t@return $r;\n}\n\n//\n// Shorthands\n//\n@mixin absolute($args: ()) {\n\t@include position(absolute, $args);\n}\n\n@mixin fixed($args: ()) {\n\t@include position(fixed, $args);\n}\n\n@mixin relative($args: ()) {\n\t@include position(relative, $args);\n}\n\n\n\n@mixin order_status_badges() {\n\n\t.llms-status {\n\t\tborder-radius: 3px;\n\t\tborder-bottom: 1px solid #fff;\n\t\tdisplay: inline-block;\n\t\tfont-size: 80%;\n\t\tpadding: 3px 6px;\n\t\tvertical-align: middle;\n\n\t\t&.llms-size--large {\n\t\t\tfont-size: 105%;\n\t\t\tpadding: 6px 12px;\n\t\t}\n\n\t\t&.llms-active,\n\t\t&.llms-completed,\n\t\t&.llms-pass, // quiz\n\t\t&.llms-txn-succeeded {\n\t\t\tcolor: darken( $color-green, 45 );\n\t\t\tbackground-color: $color-green;\n\t\t}\n\n\t\t&.llms-fail, // quiz\n\t\t&.llms-failed,\n\t\t&.llms-expired,\n\t\t&.llms-cancelled,\n\t\t&.llms-txn-failed {\n\t\t\tcolor: darken( $color-red, 40 );\n\t\t\tbackground-color: $color-red;\n\t\t}\n\n\t\t&.llms-incomplete, // assignment\n\t\t&.llms-on-hold,\n\t\t&.llms-pending,\n\t\t&.llms-pending-cancel,\n\t\t&.llms-refunded,\n\t\t&.llms-txn-pending,\n\t\t&.llms-txn-refunded {\n\t\t\tcolor: darken( orange, 30 );\n\t\t\tbackground-color: orange;\n\t\t}\n\n\t}\n\n}\n",".lifterlms, // Settings & Course Builder.\n.llms-metabox, // Some Metaboxes.\n.llms-mb-container, // Other Metaboxes.\n.llms-quiz-wrapper { // Quiz results.\n\n\t[data-tip],\n\t[data-title-default],\n\t[data-title-active] {\n\n\t\t$bgcolor: #444;\n\n\t\tposition: relative;\n\n\t\t&.tip--top-right {\n\t\t\t&:before {\n\t\t\t\tbottom: 100%;\n\t\t\t\tleft: -10px;\n\t\t\t}\n\t\t\t&:hover:before {\n\t\t\t\tbottom: calc( 100% + 6px );\n\t\t\t}\n\t\t\t&:after {\n\t\t\t\tborder-top-color: $bgcolor;\n\t\t\t\tleft: 6px;\n\t\t\t\ttop: 0;\n\t\t\t}\n\t\t\t&:hover:after {\n\t\t\t\ttop: -6px;\n\t\t\t}\n\t\t}\n\n\n\t\t&.tip--top-left {\n\t\t\t&:before {\n\t\t\t\tbottom: 100%;\n\t\t\t\tright: -10px;\n\t\t\t}\n\t\t\t&:hover:before {\n\t\t\t\tbottom: calc( 100% + 6px );\n\t\t\t}\n\t\t\t&:after {\n\t\t\t\tborder-top-color: $bgcolor;\n\t\t\t\tright: 6px;\n\t\t\t\ttop: 0;\n\t\t\t}\n\t\t\t&:hover:after {\n\t\t\t\ttop: -6px;\n\t\t\t}\n\t\t}\n\n\n\n\t\t&.tip--bottom-left {\n\t\t\t&:before {\n\t\t\t\ttop: 100%;\n\t\t\t\tright: -10px;\n\t\t\t}\n\t\t\t&:hover:before {\n\t\t\t\ttop: calc( 100% + 6px );\n\t\t\t}\n\t\t\t&:after {\n\t\t\t\tborder-bottom-color: $bgcolor;\n\t\t\t\tright: 6px;\n\t\t\t\tbottom: 0;\n\t\t\t}\n\t\t\t&:hover:after {\n\t\t\t\tbottom: -6px;\n\t\t\t}\n\t\t}\n\n\t\t&.tip--bottom-right {\n\t\t\t&:before {\n\t\t\t\ttop: 100%;\n\t\t\t\tleft: -10px;\n\t\t\t}\n\t\t\t&:hover:before {\n\t\t\t\ttop: calc( 100% + 6px );\n\t\t\t}\n\t\t\t&:after {\n\t\t\t\tborder-bottom-color: $bgcolor;\n\t\t\t\tleft: 6px;\n\t\t\t\tbottom: 0;\n\t\t\t}\n\t\t\t&:hover:after {\n\t\t\t\tbottom: -6px;\n\t\t\t}\n\t\t}\n\n\t\t&:before {\n\t\t\tbackground: $bgcolor;\n\t\t\tborder-radius: 4px;\n\t\t\tcolor: #fff;\n\t\t\tfont-size: 13px;\n\t\t\tline-height: 1.2;\n\t\t\tpadding: 8px;\n\t\t\tmax-width: 300px;\n\t\t\twidth: max-content;\n\t\t}\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tborder: 6px solid transparent;\n\t\t\theight: 0;\n\t\t\twidth: 0;\n\t\t}\n\n\t\t&:before,\n\t\t&:after {\n\t\t\topacity: 0;\n\t\t\ttransition: all 0.2s 0.1s ease;\n\t\t\tposition: absolute;\n\t\t\tpointer-events: none;\n\t\t\tvisibility: hidden;\n\t\t}\n\t\t&:hover:before,\n\t\t&:hover:after {\n\t\t\topacity: 1;\n\t\t\ttransition: all 0.2s 0.6s ease;\n\t\t\tvisibility: visible;\n\t\t\tz-index: 99999999;\n\t\t}\n\n\t}\n\n\t[data-tip] {\n\t\t&:before {\n\t\t\tcontent: attr(data-tip);\n\t\t}\n\t}\n\t[data-tip].active {\n\t\t&:before {\n\t\t\tcontent: attr(data-tip-active);\n\t\t}\n\t}\n\n}\n","\n\n\n\n.llms-membership-image {\n display: block;\n margin: 0 auto;\n}\n\n\n\n.llms-course-image {\n display: block;\n margin: 0 auto;\n max-width: 100%;\n}\n.llms-featured-image {\n display: block;\n margin: 0 auto;\n}\n.llms-image-thumb {\n width: 150px;\n}\n\n// Responsive Videos.\n.llms-video-wrapper {\n\n\t.center-video {\n\t\theight: auto;\n\t\tmax-width: 100%;\n\t\toverflow: hidden;\n\t\tposition: relative;\n\t\tpadding-top: 56.25%;\n\t\ttext-align: center;\n\n\t\t& > .wp-video,\n\t\t.fluid-width-video-wrapper,\n\t\tiframe, object, embed {\n\t\t\theight: 100%;\n\t\t\tleft: 0;\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t& > .wp-video {\n\t\t\twidth: 100% !important;\n\t\t}\n\t\t.fluid-width-video-wrapper {\n\t\t\tpadding-top: 0 !important;\n\t\t}\n\t}\n\n}\n\n\n\n\n\n\n\n\n\n\n\n.clear {\n clear: both;\n width: 100%;\n}\n.llms-featured-image {\n text-align: center;\n}\n\n#main-content .llms-payment-options p {\n margin: 0;\n font-size: 16px;\n}\n\n.llms-option {\n display: block;\n position: relative;\n margin: 20px 0;\n padding-left:40px;\n font-size: 16px;\n\n label {\n cursor: pointer;\n position: static;\n }\n}\n.llms-option:first-child {\n margin-top:0;\n}\n.llms-option:last-child {\n margin-bottom:0;\n}\n#main-content .llms-option:last-child {\n margin-bottom:0;\n}\n\n.llms-option input[type=\"radio\"] {\n display: block;\n position: absolute;\n top:3px;\n left:0;\n z-index: 0;\n}\n\n.llms-option input[type=\"radio\"] {\n display: inline-block;\n}\n.llms-option input[type=\"radio\"] + label span.llms-radio {\n display: none;\n}\n\n.llms-option input[type=\"radio\"] + label span.llms-radio {\n appearance: none;\n\n z-index: 20;\n position: absolute;\n top: 0;\n left: -2px;\n display: inline-block;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n cursor: pointer;\n vertical-align: middle;\n box-shadow: hsla(0,0%,100%,.15) 0 1px 1px, inset hsla(0,0%,0%,.5) 0 0 0 1px;\n\n background: #efefef;\n background-image: radial-gradient(ellipse at center, $color-red 0%,$color-red 40%,#efefef 45%);\n background-repeat: no-repeat;\n\n transition: background-position .15s cubic-bezier(.8, 0, 1, 1);\n}\n.llms-option input[type=\"radio\"]:checked + label span.llms-radio {\n transition: background-position .2s .15s cubic-bezier(0, 0, .2, 1);\n}\n\n.llms-option input[type=\"radio\"] + label span.llms-radio {\n background-position: -24px 0;\n}\n.llms-option input[type=\"radio\"]:checked + label span.llms-radio {\n background-position: 0 0;\n}\n\n.llms-option input[type=\"submit\"] {\n border:none;\n background:$color-red;\n color:#fff;\n font-size:20px;\n padding:10px 0;\n border-radius:3px;\n cursor:pointer;\n width:100%;\n}\n.llms-styled-text {\n padding: 14px 0;\n}\n.llms-notice-box {\n border-radius: 3px;\n z-index: 10;\n margin: 10px 0;\n padding: 15px 20px;\n //background: #fffef4;\n border: 1px solid #ccc;\n list-style-type: none;\n width: 100%;\n overflow: auto;\n input[type=\"text\"] {\n height: auto;\n }\n .col-1-1 {\n width: 100%;\n input[type=text] {\n width: 100%;\n }\n }\n .col-1-2 {\n width: 50%;\n float: left;\n @media screen and (max-width: $break-medium) {\n width: 100%;\n }\n }\n .col-1-3 {\n width: 33%;\n float: left;\n margin-right: 10px;\n }\n .col-1-4 {\n width: 25%;\n float: left;\n margin-right: 10px;\n @media screen and (max-width: $break-medium) {\n width: 100%;\n }\n }\n .col-1-6 {\n width: 16.6%;\n float: left;\n margin-right: 10px;\n }\n .col-1-8 {\n width: 11%;\n float: right;\n }\n .llms-pad-right {\n padding-right: 10px;\n @media screen and (max-width: $break-medium) {\n padding-right: 0;\n }\n }\n}\ninput[type=\"text\"].cc_cvv,\n#cc_cvv {\n margin-right: 0;\n width: 23%;\n float: right;\n}\n.llms-clear-box {\n border-radius: 3px;\n z-index: 10;\n margin: 10px 0;\n padding: 15px 20px;\n list-style-type: none;\n width: 100%;\n overflow: auto;\n}\n.llms-price-label {\n font-weight: normal;\n}\n.llms-final-price {\n font-weight: bold;\n float: right;\n}\n.llms-center-content {\n text-align: center;\n}\n.llms-input-text {\n background-color: #fff;\n border: 1px solid #ddd;\n color: #333;\n font-size: 18px;\n font-weight: 300;\n padding: 16px;\n width: 100%;\n}\n.llms-price {\n margin-bottom: 0;\n font-weight: bold;\n}\n.llms-price-loop {\n margin-bottom: 0;\n font-weight: bold;\n}\n\n// hentry overrides\n.courses .entry {\n padding: 0\n}\n.list-view .site-content .llms-course-list .hentry, .list-view .site-content .llms-membership-list .hentry {\n border-top: 0;\n padding-top: 0;\n}\n.llms-content {\n width: 100%;\n}\n\n.llms-lesson-button-wrapper {\n width: 100%;\n display: block;\n clear: both;\n text-align: center;\n}\n.llms-template-wrapper {\n width: 100%;\n display: block;\n clear: both;\n}\n.llms-button-wrapper {\n width: 100%;\n display: block;\n clear: both;\n text-align: center;\n}\n\n\n//custom select box\n.llms-styled-select {\n border: 1px solid #ccc;\n box-sizing: border-box;\n border-radius: 3px;\n overflow: hidden;\n position: relative;\n}\n.llms-styled-select, .llms-styled-select select {\n width: 100%;\n}\nselect:focus { outline: none; }\n.llms-styled-select select {\n height: 34px;\n padding: 5px 0 5px 5px;\n background: transparent;\n border: none;\n -webkit-appearance: none;\n font-size: 16px;\n color: #444444;\n}\n\n@-moz-document url-prefix(){\n .--ms-styled-select select { width: 110%; }\n}\n\n.llms-styled-select .fa-sort-desc {\n position: absolute;\n top: 0;\n right: 12px;\n font-size: 24px;\n color: #ccc;\n}\n\nselect::-ms-expand { display: none; }\n\n_:-o-prefocus, .selector {\n .llms-styled-select { background: none; }\n}\n\n.llms-form-item-wrapper {\n margin-bottom: 1em;\n}\n\n/* Circle Graph */\n.llms-progress-circle {\n position: relative;\n width: 200px;\n height: 200px;\n float: left;\n}\n\n.llms-progress-circle-count {\n top: 27%;\n position: absolute;\n width: 94%;\n text-align: center;\n color: #666;\n font-size:44px;\n}\n.llms-progress-circle svg {\n position: absolute;\n width: 200px;\n height: 200px;\n}\n.llms-progress-circle circle {\n fill: transparent;\n}\nsvg .llms-background-circle {\n fill: transparent;\n stroke-width: 10px;\n stroke: #f1f2f1;\n stroke-dasharray: 430;\n}\n\nsvg .llms-animated-circle {\n fill: transparent;\n stroke-width: 10px;\n stroke: #e5554e;\n stroke-dasharray: 430;\n stroke-dashoffset: 430 - 20\n}\n\n\n\n\n\n\n\n.llms-widget-syllabus {\n\n .llms-lesson.current-lesson .lesson-title {\n \tfont-weight: 700;\n }\n\n .llms-lesson-complete, .lesson-complete-placeholder {\n font-size: 1.2em;\n margin-right: 6px;\n color: #ccc;\n &.done {\n color: #e5554e;\n }\n }.section-title {\n font-weight: bold;\n }.lesson-title {\n a {\n text-decoration: none;\n &:hover {\n text-decoration: none !important;\n }\n }\n &.done {\n a {\n color: #999;\n text-decoration: line-through;\n }\n }\n }\n ul {\n list-style-type: none;\n li {\n list-style-type: none;\n ul li {\n margin: 0 0 2px 0;\n padding: 0;\n }\n }\n }\n}\n\n\n\n.llms-remove-coupon {\n float: right;\n}\n\n\n\n\n\n.llms-lesson-link-locked, .llms-lesson-link-locked:hover {\n background: #f1f1f1;\n box-shadow: 0 1px 2px 0 rgba(1, 1, 1, 0.4);\n display: block;\n color: #a6a6a6;\n min-height: 85px;\n padding: 15px;\n text-decoration: none;\n position: relative;\n}\n\n.llms-lesson-preview.is-complete .llms-lesson-link-locked {\n padding-left: 75px;\n}\n\n.llms-lesson-tooltip { \tdisplay: none;\n\t\t\t\tposition:absolute;\n\t\t\t\tcolor: #000000;\n\t\t\t\tbackground-color: #c0c0c0;\n\t\t\t\tpadding:.25em;\n\t\t\t\tborder-radius: 2px;\n\t\t\t\tz-index: 100;\n \t\t\t\ttop:0;\n \t\t\tleft:50%;\n \t\t\ttext-align: center;\n \t\t\t-webkit-transform: translateX(-50%) translateY(-100%);\n \t\t\t transform: translateX(-50%) translateY(-100%);\n\t\t\t}\n\n/* arrows - :after */\n.llms-lesson-tooltip:after {\n content: \"\";\n width: 0;\n height: 0;\n border-top: 8px solid #c0c0c0;\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n position:absolute;\n bottom:-8px;\n left:50%;\n transform: translateX(-50%);\n}\n\n.llms-lesson-tooltip.active {\n display: inline-block;\n}\n",".llms-loop-list {\n\t@extend %clearfix;\n\n\tlist-style: none;\n\tmargin: 0 -10px;\n\tpadding: 0;\n\n\t@media all and (min-width: 600px) {\n\t\t$cols: 1;\n\t\t@while $cols <= 6 {\n\t\t\t&.cols-#{$cols} .llms-loop-item {\n\t\t\t\twidth: calc( 100% / $cols );\n\t\t\t}\n\t\t\t$cols: $cols + 1;\n\t\t}\n\t}\n\n\n}\n\n.llms-loop-item {\n\tfloat: left;\n\tlist-style: none;\n\tmargin: 0;\n\tpadding: 0;\n\twidth: 100%;\n}\n\n\n\t.llms-loop-item-content {\n\t\tbackground: #f1f1f1;\n\t\tpadding-bottom: 10px;\n\t\tmargin: 10px;\n\n\t\t&:hover {\n\t\t\tbackground: #eaeaea;\n\t\t}\n\n\t\t.llms-loop-link {\n\t\t\tcolor: #212121;\n\t\t\tdisplay: block;\n\t\t\t&:visited {\n\t\t\t\tcolor: #212121;\n\t\t\t}\n\t\t}\n\n\t\t.llms-featured-image {\n\t\t\tdisplay: block;\n\t\t\tmax-width: 100%;\n\t\t}\n\n\t\t.llms-loop-title {\n\t\t\tmargin-top: 5px;\n\t\t\t&:hover {\n\t\t\t\tcolor: $color-brand-blue;\n\t\t\t}\n\t\t}\n\n\t\t.llms-meta,\n\t\t.llms-author,\n\t\t.llms-loop-title {\n\t\t\tpadding: 0 10px;\n\t\t}\n\n\t\t.llms-meta,\n\t\t.llms-author {\n\t\t\tcolor: #444;\n\t\t\tdisplay: block;\n\t\t\tfont-size: 13px;\n\t\t\tmargin-bottom: 3px;\n\t\t\t&:last-child {\n\t\t\t\tmargin-bottom: 0;\n\t\t\t}\n\t\t}\n\n\t\t.llms-featured-img-wrap {\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\tp {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t\t.llms-progress {\n\t\t\tmargin: 0;\n\t\t\theight: .4em;\n\n\t\t\t.progress__indicator {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t.llms-progress-bar {\n\t\t\t\tbackground-color: #f6f6f6;\n\t\t\t\tright: 0;\n\t\t\t\ttop: 0;\n\t\t\t}\n\t\t}\n\n\t}\n\n\n\n// .llms-membership-list .memberships {\n// border-top: 1px solid #f6f6f6;\n// width: 100%;\n// display: inline-block;\n// text-align: center;\n// list-style: none;\n// clear: both;\n// margin: 0;\n// padding: 0;\n// }\n\n\n\n// .llms-course-list {\n\n// .llms-membership-link {\n// @extend %llms-element;\n\n// display: block\n// }\n\n// .llms-membership-footer {\n// border-top: 3px solid $color-white;\n// margin: 15px -15px 0;\n// padding: 15px 15px 0;\n// text-align: center;\n// }\n\n// }\n\n\n\n\n// .llms-membership-list .memberships li {\n// width: 300px;\n// margin: 15px;\n// list-style: none;\n// vertical-align: top;\n// display: inline-block;\n// text-align: left;\n// }\n\n// .llms-membership-list .memberships li.first {\n// margin-left: 0;\n// }\n\n// .llms-membership-list .memberships li.last {\n// margin-right: 15px;\n// }\n\n// .llms-membership-list .memberships li .llms-title {\n// display: block;\n// font-weight: 700;\n// margin-bottom: .5em;\n// font-size: 18px;\n// text-decoration: none;\n// line-height: 30px;\n// }\n\n// .llms-membership-list .memberships li .llms-price {\n// display: block;\n// font-weight: 700;\n// // margin-bottom: .5em;\n// // font-size: 24px;\n// text-decoration: none;\n// line-height: 30px;\n// }\n\n// .llms-course-list {\n// //margin: 30px 0;\n// padding: 30px;\n// //background: #FFF;\n// // border-radius: 2px;\n// display: inline-block;\n// width: 100%;\n// box-sizing: border-box;\n\n// .llms-course-link {\n// @extend %llms-element;\n\n// display: block\n// }\n\n// .llms-course-footer {\n// border-top: 3px solid $color-white;\n// margin: 15px -15px 0;\n// padding: 15px 15px 0;\n// text-align: center;\n// }\n\n// .llms-progress {\n// margin-top: 0;\n// // .progress-bar {\n// // background-color: $color-white;\n// // }\n// }\n\n// }\n\n// .llms-course-list .courses {\n// //border-top: 1px solid #f6f6f6;\n// width: 100%;\n// display: inline-block;\n// text-align: center;\n// list-style: none;\n// clear: both;\n// margin: 0;\n// padding: 0;\n// }\n\n// .llms-course-list .courses li {\n// width: 300px;\n// padding-top: 0; // twentyfifteen compat\n// margin: 15px;\n// list-style: none;\n// vertical-align: top;\n// display: inline-block;\n// text-align: left;\n// }\n// @media screen and (max-width: $break-small) {\n// .llms-course-list {\n// padding: 30px 10px;\n\n// .courses li {\n// width: auto;\n// }\n// }\n// }\n\n// // .llms-course-list .courses li.first {\n// // \tmargin-left: 0;\n// // }\n\n// .llms-course-list .courses li.last {\n// margin-right: 15px;\n// }\n\n// .llms-course-list .courses li .llms-title {\n// display: block;\n// font-weight: 700;\n// margin-bottom: .5em;\n// font-size: 18px;\n// text-decoration: none;\n// line-height: 30px;\n// }\n\n// .llms-course-list .courses li .llms-price {\n// display: block;\n// font-weight: 700;\n// // margin-bottom: .5em;\n// // font-size: 24px;\n// text-decoration: none;\n// line-height: 30px;\n// }\n\n\n\n\n// .courses a.llms-course-link:hover {\n// text-decoration: none;\n// }\n",".course {\n\t.llms-meta-info {\n\t\tmargin: 20px 0;\n\t\t.llms-meta-title {\n\t\t\tmargin-bottom: 5px;\n\t\t}\n\t\t.llms-meta {\n\t\t\tp {\n\t\t\t\tmargin-bottom: 0;\n\t\t\t}\n\t\t\tspan {\n\t\t\t\tfont-weight: 700;\n\t\t\t}\n\t\t}\n\t}\n\t.llms-course-progress {\n\t\tmargin: 40px auto;\n\t\tmax-width: 480px;\n\t\ttext-align: center;\n\t}\n}\n",".llms-syllabus-wrapper {\n\n\tmargin: 15px;\n\ttext-align: center;\n\n\t.llms-section-title {\n\t\tmargin: 25px 0 0;\n\t}\n\n}\n\n.llms-course-navigation {\n\t@extend %clearfix;\n\n\t.llms-prev-lesson,\n\t.llms-next-lesson,\n\t.llms-back-to-course {\n\t\twidth: 49%;\n\t}\n\n\t.llms-prev-lesson,\n\t.llms-back-to-course {\n\t\tfloat: left;\n\t\tmargin-right: 0.5%;\n\t}\n\n\t.llms-next-lesson,\n\t.llms-prev-lesson + .llms-back-to-course {\n\t\tfloat: right;\n\t\tmargin-left: 0.5%;\n\t}\n\n}\n\n.llms-lesson-preview {\n\tdisplay: inline-block;\n\tmargin-top: 15px;\n\tmax-width: 100%;\n\tposition: relative;\n\twidth: 480px;\n\n\t.llms-lesson-link {\n\t\tbackground: #f1f1f1;\n\t\tcolor: #212121;\n\t\tdisplay: block;\n\t\t// height: 100%;\n\t\tpadding: 15px;\n\t\ttext-decoration: none;\n\n\t\t@include clearfix();\n\n\t\t&:hover {\n\t\t\tbackground: #eaeaea;\n\t\t}\n\n\t\t&:visited {\n\t\t\tcolor: #212121;\n\t\t}\n\n\t}\n\n\t.llms-lesson-thumbnail {\n\t\tmargin-bottom: 10px;\n\t\timg {\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t}\n\t}\n\n\t.llms-pre-text {\n\t\ttext-align: left;\n\t}\n\n\t.llms-lesson-title {\n\t\tfont-weight: 700;\n\t\tmargin: 0 auto 10px;\n\t\ttext-align: left;\n\t\t&:last-child {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t}\n\n\t.llms-lesson-excerpt {\n\t\ttext-align: left;\n\t}\n\n\t.llms-main {\n\t\tfloat: left;\n\t\twidth: 100%;\n\t}\n\t.llms-extra {\n\t\tfloat: right;\n\t\twidth: 15%;\n\t}\n\n\t.llms-extra + .llms-main {\n\t\twidth: 85%;\n\t}\n\n\t.llms-lesson-counter,\n\t.llms-free-lesson-svg,\n\t.llms-lesson-complete,\n\t.llms-lesson-complete-placeholder {\n\t\tdisplay: block;\n\t\tfont-size: 32px;\n\t\tmargin-bottom: 15px;\n\t}\n\n\t&.is-free,\n\t&.is-complete {\n\t\t.llms-lesson-complete {\n\t\t\tcolor: $color-brand-blue;\n\t\t}\n\t}\n\n\t.llms-icon-free {\n\t\tbackground: $color-brand-blue;\n\t\tborder-radius: 4px;\n\t\tcolor: #f1f1f1;\n\t\tdisplay: inline-block;\n\t\tpadding: 5px 6px 4px;\n\t\tline-height: 1;\n\t\tfont-size: 14px;\n\t}\n\n\t&.is-incomplete {\n\t\t.llms-lesson-complete {\n\t\t\tcolor: #cacaca;\n\t\t}\n\t}\n\n\t.llms-lesson-counter {\n\t\tfont-size: 16px;\n\t\tline-height: 1;\n\t}\n\n\t.llms-free-lesson-svg {\n\t\tfill: currentColor;\n\t\theight: 23px;\n\t\twidth: 50px;\n\t}\n\n\tp {\n\t\tmargin-bottom: 0;\n\t}\n\n}\n","/* progress bar */\n.llms-progress {\n\tclear: both;\n\tdisplay: flex;\n\tflex-direction: row-reverse;\n\tposition: relative;\n\theight: 1em;\n\twidth: 100%;\n\tmargin: 15px 0;\n}\n\n.llms-progress .llms-progress-bar {\n\tbackground-color: #f1f2f1;\n\tposition: relative;\n\theight: .4em;\n\ttop: .3em;\n\twidth: 100%;\n}\n\n.llms-progress .progress-bar-complete {\n\tbackground-color: $color-brand-pink;\n\theight: 100%;\n}\n\n.progress__indicator {\n\tfloat: right;\n\ttext-align: right;\n\theight: 1em;\n\tline-height: 1em;\n\tmargin-left: 5px;\n\twhite-space: nowrap;\n}\n",".llms-author {\n\t.name {\n\t\tmargin-left: 5px;\n\t}\n\t.label {\n\t\tmargin-left: 5px;\n\t}\n\t.avatar {\n\t\tborder-radius: 50%;\n\t}\n\t.bio {\n\t\tmargin-top: 5px;\n\t}\n}\n\n\n.llms-instructor-info {\n\t.llms-instructors {\n\n\t\t.llms-col {\n\t\t\t&:first-child .llms-author {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t&:last-child .llms-author {\n\t\t\t\tmargin-right: 0;\n\t\t\t}\n\t\t}\n\n\t\t.llms-author {\n\n\t\t\tbackground: #f5f5f5;\n\t\t\tborder-top: 4px solid $color-brand-blue;\n\t\t\ttext-align: center;\n\t\t\tmargin: 45px 5px 5px;\n\t\t\tpadding: 0 10px 10px;\n\n\t\t\t.avatar {\n\t\t\t\tbackground: $color-brand-blue;\n\t\t\t\tborder: 4px solid $color-brand-blue;\n\t\t\t\tdisplay: block;\n\t\t\t\tmargin: -35px auto 10px;\n\t\t\t}\n\n\t\t\t.llms-author-info {\n\t\t\t\tdisplay: block;\n\t\t\t\t// margin: 0 0 5px;\n\t\t\t\t&.name {\n\t\t\t\t\tfont-weight: 700;\n\t\t\t\t}\n\t\t\t\t&.label {\n\t\t\t\t\tfont-size: 85%;\n\t\t\t\t}\n\t\t\t\t&.bio {\n\t\t\t\t\tfont-size: 90%;\n\t\t\t\t\tmargin-bottom: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n}\n",".llms-notice {\n\tbackground: rgba( $color-brand-blue, .3 );\n\tborder-color: $color-brand-blue;\n\tborder-style: solid;\n\tborder-width: 3px;\n\tpadding: 10px;\n\tmargin-bottom: 10px;\n\n\tp, ul {\n\t\t&:last-child { margin-bottom: 0; }\n\t}\n\n\tli {\n\t\tlist-style-type: none;\n\t}\n\n\t&.llms-debug {\n\t\tbackground: rgba( #cacaca, .3 );\n\t\tborder-color: #cacaca;\n\t}\n\n\t&.llms-error {\n\t\tbackground: rgba( $color-red, .3 );\n\t\tborder-color: $color-red;\n\t}\n\n\t&.llms-success {\n\t\tbackground: rgba( $color-green, .3 );\n\t\tborder-color: $color-green;\n\t}\n\n}\n\n// this helps genesis and numerous other themes out a bit\n// by being slightly more specific\n.entry-content .llms-notice {\n\tmargin: 0 0 10px;\n\tli {\n\t\tlist-style-type: none;\n\t}\n}\n","ul.llms-achievements-loop,\n.lifterlms ul.llms-achievements-loop,\nul.llms-certificates-loop,\n.lifterlms ul.llms-certificates-loop {\n\n\t@include clearfix();\n\tlist-style-type: none;\n\tmargin: 0 -10px;\n\tpadding: 0;\n\n\tli.llms-achievement-loop-item,\n\tli.llms-certificate-loop-item {\n\t\tbox-sizing: border-box;\n\t\tdisplay: block;\n\t\tfloat: left;\n\t\tlist-style-type: none;\n\t\tmargin: 0;\n\t\tpadding: 10px;\n\t\twidth: 100%;\n\t}\n\n\t@media all and (min-width: 600px) {\n\t\t$cols: 1;\n\t\t@while $cols <= 5 {\n\t\t\t&.loop-cols-#{$cols} li.llms-achievement-loop-item,\n\t\t\t&.loop-cols-#{$cols} li.llms-certificate-loop-item {\n\t\t\t\twidth: calc( 100% / $cols );\n\t\t\t}\n\t\t\t$cols: $cols + 1;\n\t\t}\n\t}\n\n}\n\n.llms-achievement,\n.llms-certificate {\n\n\tbackground: #f1f1f1;\n\tborder: none;\n\tcolor: inherit;\n\tdisplay: block;\n\ttext-decoration: none;\n\twidth: 100%;\n\n\t&:hover {\n\t\tbackground: #eaeaea;\n\t}\n\n\t.llms-achievement-img {\n\t\tdisplay: block;\n\t\tmargin: 0;\n\t\twidth: 100%;\n\t}\n\n\t.llms-achievement-title {\n\t\tfont-size: 16px;\n\t\tmargin: 0;\n\t\tpadding: 10px;\n\t\ttext-align: center;\n\t}\n\n\t.llms-certificate-title {\n\t\tfont-size: 16px;\n\t\tmargin: 0;\n\t\tpadding: 0 0 10px;\n\t}\n\n\t.llms-achievement-info,\n\t.llms-achievement-date {\n\t\tdisplay: none;\n\t}\n\n\t.llms-achievement-content {\n\t\tpadding: 20px;\n\t\t&:empty {\n\t\t\tpadding: 0;\n\t\t}\n\t\t*:last-child {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t}\n\n}\n\n.llms-certificate {\n\tborder: 4px double #f1f1f1;\n\tpadding: 20px 10px;\n\tbackground: #fff;\n\ttext-align: center;\n\t&:hover {\n\t\tbackground: #fff;\n\t\tborder-color: #eaeaea;\n\t}\n}\n\n.llms-achievement-modal {\n\t.llms-achievement {\n\t\tbackground: #fff;\n\t}\n\t.llms-achievement-info {\n\t\tdisplay: block;\n\t}\n\t.llms-achievement-title {\n\t\tdisplay: none;\n\t}\n}\n",".llms-notification {\n\n\t@include clearfix();\n\n\tbackground: #fff;\n\tbox-shadow: 0 1px 2px -2px #333, 0 1px 1px -1px #333;\n\tborder-top: 4px solid $color-blue;\n\tleft: 12px;\n\topacity: 0;\n\tpadding: 12px;\n\tposition: fixed;\n\tright: 12px;\n\ttop: 24px;\n\ttransition:\n\t\topacity 0.4s ease-in-out,\n\t\tright 0.4s ease-in-out,\n\t;\n\tvisibility: none;\n\twidth: auto;\n\tz-index: 9999999;\n\n\t&.visible {\n\t\topacity: 1;\n\t\ttransition:\n\t\t\topacity 0.4s ease-in-out,\n\t\t\tright 0.4s ease-in-out,\n\t\t\ttop 0.1s ease-in-out,\n\t\t\tbackground 0.2s ease-in-out,\n\t\t\ttransform 0.2s ease-in-out\n\t\t;\n\t\tvisibility: visible;\n\n\t\t&:hover {\n\t\t\t.llms-notification-dismiss {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t.llms-notification-content {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\n\t}\n\n\t\t.llms-notification-main {\n\t\t\talign-self: flex-start;\n\t\t\tflex: 4;\n\t\t\torder: 2;\n\t\t}\n\n\t\t\t.llms-notification-title {\n\t\t\t\tfont-size: 18px;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.llms-notification-body {\n\t\t\t\tfont-size: 14px;\n\t\t\t\tline-height: 1.4;\n\t\t\t\tp, li {\n\t\t\t\t\tfont-size: inherit;\n\t\t\t\t}\n\t\t\t\tp {\n\t\t\t\t\tmargin-bottom: 8px;\n\t\t\t\t}\n\n\t\t\t\t.llms-mini-cert {\n\t\t\t\t\tbackground: #f6f6f6;\n\t\t\t\t\tborder: 1px solid #d0d0d0;\n\t\t\t\t\tbox-shadow: inset 0 0 0 3px #fefefe, inset 0 0 0 4px #dedede;\n\t\t\t\t\tpadding: 16px 16px 24px;\n\t\t\t\t\tmargin-top: 12px;\n\t\t\t\t\t.llms-mini-cert-title {\n\t\t\t\t\t\tfont-size: 16px;\n\t\t\t\t\t\tfont-weight: 700;\n\t\t\t\t\t\tmargin: 12px auto;\n\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t}\n\t\t\t\t\t.llms-mini-cert--body {\n\t\t\t\t\t\twidth: 100%;\n\t\t\t\t\t\t> div {\n\t\t\t\t\t\t\t&:nth-child(1) { width:65%; }\n\t\t\t\t\t\t\t&:nth-child(2) { width:35%; }\n\t\t\t\t\t\t\t&:nth-child(3) { width:85%; }\n\t\t\t\t\t\t\t&:nth-child(4) { width:75%; margin-top: 18px; }\n\t\t\t\t\t\t\t&:nth-child(5) { width:70%; }\n\t\t\t\t\t\t\t&:nth-child(6) { margin-left: 12px; margin-bottom:-24px; } // Dot.\n\t\t\t\t\t\t\t&:nth-child(7) { width:65%; margin-right: 12px; }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t.llms-mini-cert--mock-line {\n\t\t\t\t\t\tborder-radius: 2px;\n\t\t\t\t\t\theight: 8px;\n\t\t\t\t\t\tbackground: #b0b0b0;\n\t\t\t\t\t\tbackground-image: linear-gradient( to right, #b0b0b0 0%, #a0a0a0 20%, #b0b0b0 40%, #b0b0b0 100% );\n\t\t\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\t\t\tmargin: 4px auto;\n\t\t\t\t\t}\n\t\t\t\t\t.llms-mini-cert--mock-dot {\n\t\t\t\t\t\tbackground: #b0b0b0;\n\t\t\t\t\t\tborder-radius: 50%;\n\t\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\t\tcontent: '';\n\t\t\t\t\t\theight: 24px;\n\t\t\t\t\t\twidth: 24px;\n\t\t\t\t\t}\n\t\t\t\t\tp { margin-bottom: 0; }\n\t\t\t\t}\n\t\t\t}\n\n\t\t.llms-notification-aside {\n\t\t\talign-self: flex-start;\n\t\t\tflex: 1;\n\t\t\tmargin-right: 12px;\n\t\t\torder: 1;\n\t\t}\n\n\t\t\t.llms-notification-icon {\n\t\t\t\tdisplay: block;\n\t\t\t\tmax-width: 64px;\n\t\t\t}\n\n\t.llms-notification-footer {\n\t\tborder-top: 1px solid #e5e5e5;\n\t\tfont-size: 12px;\n\t\tmargin-top: 12px;\n\t\tpadding: 6px 6px 0;\n\t\ttext-align: right;\n\t}\n\n\t.llms-notification-dismiss {\n\t\tcolor: $color-danger;\n\t\tcursor: pointer;\n\t\tfont-size: 22px;\n\t\tposition: absolute;\n\t\tright: 10px;\n\t\ttop: 8px;\n\t\ttransition: opacity 0.4s ease-in-out;\n\t}\n\n}\n\n.llms-sd-notification-center {\n\n\t.llms-notification-list,\n\t.llms-notification-list-item {\n\t\tlist-style-type: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.llms-notification-list-item {\n\t\t&:hover .llms-notification {\n\t\t\tbackground: #fcfcfc;\n\t\t}\n\t}\n\n\t.llms-notification {\n\t\topacity: 1;\n\t\tborder-top: 1px solid #e5e5e5;\n\t\tleft: auto;\n\t\tpadding: 24px;\n\t\tposition: relative;\n\t\tright: auto;\n\t\ttop: auto;\n\t\tvisibility: visible;\n\t\twidth: auto;\n\t\t.llms-notification-aside {\n\t\t\tmax-width: 64px;\n\t\t}\n\t\t.llms-notification-footer {\n\t\t\tborder: none;\n\t\t\tpadding: 0;\n\t\t\ttext-align: left;\n\t\t}\n\t\t.llms-progress {\n\t\t\tdisplay: none !important;\n\t\t}\n\t\t.llms-notification-date {\n\t\t\tcolor: #515151;\n\t\t\tfloat: left;\n\t\t\tmargin-right: 6px;\n\t\t}\n\t\t.llms-mini-cert {\n\t\t\tmargin: 0 auto;\n\t\t\tmax-width: 380px;\n\t\t}\n\t}\n}\n\n@media all and (min-width: 480px) {\n\t.llms-notification {\n\t\tleft: auto;\n\t\tright: -800px;\n\t\twidth: 360px;\n\t\t&.visible {\n\t\t\tright: 24px;\n\t\t}\n\t\t.llms-notification-dismiss {\n\t\t\topacity: 0;\n\t\t}\n\t}\n}\n",".llms-pagination {\n\n\tul {\n\t\tlist-style-type: none;\n\t\t@extend %cf;\n\n\t\tli {\n\n\t\t\tfloat: left;\n\n\t\t\ta {\n\t\t\t\tborder-bottom: 0;\n\t\t\t\ttext-decoration: none;\n\t\t\t}\n\n\t\t\t.page-numbers {\n\t\t\t\tpadding: 0.5em;\n\t\t\t\ttext-decoration: underline;\n\n\t\t\t\t&.current {\n\t\t\t\t\ttext-decoration: none;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}",".llms-tooltip {\n\n\tbackground: #2a2a2a;\n\tborder-radius: 4px;\n\tcolor: #fff;\n\tfont-size: 14px;\n\tline-height: 1.2;\n\topacity: 0;\n\ttop: -20px;\n\tpadding: 8px 12px;\n\tleft: 50%;\n\tposition: absolute;\n\tpointer-events: none;\n\ttransform: translateX( -50% );\n\ttransition: opacity .2s ease, top .2s ease;\n\tmax-width: 320px;\n\n\t&.show {\n\t\ttop: -28px;\n\t\topacity: 1;\n\t}\n\n\t&:after {\n\n\t\tbottom: -8px;\n\t\tborder-top: 8px solid #2a2a2a;\n\t\tborder-left: 8px solid transparent;\n\t\tborder-right: 8px solid transparent;\n\t\tcontent: '';\n\t\theight: 0;\n\t\tleft: 50%;\n\t\tposition: absolute;\n\t\ttransform: translateX( -50% );\n\t\twidth: 0;\n\n\t}\n\n}\n\n\n\n.webui-popover-title {\n\tfont-size: initial;\n\tfont-weight: initial;\n\tline-height: initial;\n}\n.webui-popover-inverse {\n\t.webui-popover-inner .close {\n\t\tcolor: #fff;\n\t\topacity: 0.6;\n\t\ttext-shadow: none;\n\t\t&:hover {\n\t\t\topacity: 0.8;\n\t\t}\n\t}\n\t.webui-popover-content a {\n\t\tcolor: #fff;\n\t\ttext-decoration: underline;\n\t\t&:hover {\n\t\t\ttext-decoration: none;\n\t\t}\n\t}\n}\n",".llms-quiz-attempt-results {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style-type: none;\n\n\t.llms-quiz-attempt-question {\n\t\tbackground: #efefef;\n\t\tmargin: 0 0 10px;\n\t\tposition: relative;\n\n\t\t.toggle-answer {\n\t\t\t@include clearfix();\n\t\t\tcolor: inherit;\n\t\t\tdisplay: block;\n\t\t\tpadding: 10px 35px 10px 10px;\n\t\t\ttext-decoration: none;\n\t\t}\n\n\t\t&.status--waiting.correct,\n\t\t&.status--waiting.incorrect {\n\t\t\tbackground: rgba( $color-orange, 0.2 );\n\t\t\t.llms-status-icon {\n\t\t\t\tbackground-color: $color-orange;\n\t\t\t}\n\t\t}\n\n\t\t&.status--graded.correct {\n\t\t\tbackground: rgba( $color-green, 0.2 );\n\t\t\t.llms-status-icon {\n\t\t\t\tbackground-color: $color-green;\n\t\t\t}\n\t\t}\n\t\t&.status--graded.incorrect {\n\t\t\tbackground: rgba( $color-red, 0.2 );\n\t\t\t.llms-status-icon {\n\t\t\t\tbackground-color: $color-red;\n\t\t\t}\n\t\t}\n\n\t\t.llms-question-title {\n\t\t\tfloat: left;\n\t\t\tmargin: 0;\n\t\t\tline-height: 1;\n\t\t}\n\n\t\t.llms-points {\n\t\t\tfloat: right;\n\t\t\tline-height: 1;\n\t\t}\n\n\t\t.llms-status-icon-tip {\n\t\t\tposition: absolute;\n\t\t\tright: -12px;\n\t\t\ttop: -2px;\n\t\t}\n\n\t\t.llms-status-icon {\n\t\t\tcolor: rgba( 255, 255, 255, 0.65 );\n\t\t\tborder-radius: 50%;\n\t\t\tfont-size: 30px;\n\t\t\theight: 40px;\n\t\t\tline-height: 40px;\n\t\t\ttext-align: center;\n\t\t\twidth: 40px;\n\t\t}\n\n\t\t.llms-quiz-attempt-question-main {\n\t\t\tdisplay: none;\n\t\t\tpadding: 0 10px 10px;\n\n\t\t\t.llms-quiz-results-label {\n\t\t\t\tfont-weight: 700;\n\t\t\t\tmargin-bottom: 10px;\n\t\t\t}\n\n\t\t\tul.llms-quiz-attempt-answers {\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\t\t\t\tli.llms-quiz-attempt-answer {\n\t\t\t\t\tpadding: 0;\n\t\t\t\t\tmargin: 0 0 0 30px;\n\t\t\t\t\t&:only-child {\n\t\t\t\t\t\tlist-style-type: none;\n\t\t\t\t\t\tmargin-left: 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\timg {\n\t\t\t\theight: auto;\n\t\t\t\tmax-width: 200px;\n\t\t\t}\n\n\t\t\t.llms-quiz-attempt-answer-section {\n\t\t\t\tborder-top: 2px solid rgba( #fff, 0.5 );\n\t\t\t\tmargin-top: 20px;\n\t\t\t\tpadding-top: 20px;\n\t\t\t\t&:first-child {\n\t\t\t\t\tborder-top: none;\n\t\t\t\t\tmargin-top: 0;\n\t\t\t\t\tpadding-top: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t&.type--picture_choice,\n\t\t&.type--picture_reorder {\n\t\t\tul.llms-quiz-attempt-answers {\n\t\t\t\tlist-style-type: none;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\n\t\t\t\tli.llms-quiz-attempt-answer {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\tlist-style-type: none;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: 5px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&.type--removed {\n\t\t\t.llms-question-title {\n\t\t\t\tfont-style: italic;\n\t\t\t\tfont-weight: normal;\n\t\t\t}\n\t\t\topacity: .5;\n\t\t}\n\n\t}\n}\n",".single-llms_quiz {\n\n\t@import \"../_includes/quiz-result-question-list\";\n\n\t.llms-return {\n\t\tmargin-bottom: 10px;\n\t}\n\n\t.llms-quiz-results {\n\t\t@include clearfix();\n\n\t\t.llms-donut {\n\t\t\t&.passing {\n\t\t\t\tcolor: $color-success;\n\t\t\t\tsvg path {\n\t\t\t\t\tstroke: $color-success;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&.pending {\n\t\t\t\tcolor: #555;\n\t\t\t\tsvg path {\n\t\t\t\t\tstroke: #555;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&.failing {\n\t\t\t\tcolor: $color-danger;\n\t\t\t\tsvg path {\n\t\t\t\t\tstroke: $color-danger;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.llms-quiz-results-aside,\n\t\t.llms-quiz-results-main,\n\t\t.llms-quiz-results-history {\n\t\t\tmargin-bottom: 20px;\n\t\t}\n\n\n\t\t@media all and (min-width: 600px) {\n\t\t\t.llms-quiz-results-aside {\n\t\t\t\tfloat: left;\n\t\t\t\twidth: 220px;\n\t\t\t}\n\t\t\t.llms-quiz-results-main,\n\t\t\t.llms-quiz-results-history {\n\t\t\t\tfloat: left;\n\t\t\t\twidth: calc( 100% - 300px );\n\t\t\t}\n\t\t}\n\n\t}\n\n\tul.llms-quiz-meta-info,\n\tul.llms-quiz-meta-info li {\n\t\tlist-style-type: none;\n\t\tmargin: 0;\n\t\tpadding: 0\n\t}\n\n\tul.llms-quiz-meta-info {\n\t\tmargin-bottom: 10px;\n\t}\n\n\t.llms-quiz-buttons {\n\t\tmargin-top: 10px;\n\t\ttext-align: left;\n\n\t\tform { display: inline-block; }\n\t}\n\n}\n\n.llms-quiz-question-wrapper {\n\tmin-height: 140px;\n\tposition: relative;\n\t.llms-quiz-loading {\n\t\tbottom: 20px;\n\t\tleft: 0;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttext-align: center;\n\t\tz-index: 1;\n\t}\n}\n\n.llms-quiz-ui {\n\tbackground: #fcfcfc;\n\tpadding: 20px;\n\tposition: relative;\n\n\t.llms-quiz-header {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tmargin: 0 0 30px;\n\t}\n\n\t.llms-progress {\n\t\tbackground-color: #f1f2f1;\n\t\tflex-direction: row;\n\t\theight: 8px;\n\t\tmargin: 0;\n\t\toverflow: hidden;\n\t\t.progress-bar-complete {\n\t\t\ttransition: width 0.3s ease-in;\n\t\t\twidth: 0;\n\t\t}\n\t}\n\n\t.llms-error {\n\t\t@include clearfix();\n\t\tbackground: $color-danger;\n\t\tborder-radius: 4px;\n\t\tcolor: #fff;\n\t\tmargin: 10px 0;\n\t\tpadding: 10px;\n\n\t\ta {\n\t\t\tcolor: rgba( #fff, 0.6 );\n\t\t\tfloat: right;\n\t\t\tfont-size: 22px;\n\t\t\tline-height: 1;\n\t\t\ttext-decoration: none;\n\t\t}\n\n\t}\n\n\t.llms-quiz-counter {\n\t\tdisplay: none;\n\n\t\tcolor: #6a6a6a;\n\t\tfloat: right;\n\t\tfont-size: 18px;\n\n\t\t.llms-sep {\n\t\t\tmargin: 0 5px;\n\t\t}\n\t}\n\n\t.llms-quiz-nav {\n\t\tmargin-top: 20px;\n\t\tbutton {\n\t\t\tmargin: 0 10px 0 0;\n\t\t}\n\t}\n\n}\n\n// single question wrapper\n.llms-question-wrapper {\n\n\t.llms-question-text {\n\t\tfont-size: 30px;\n\t\tfont-weight: 400;\n\t\tmargin-bottom: 15px;\n\t}\n\n\tol.llms-question-choices {\n\t\tlist-style-type: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\n\t\tli.llms-choice {\n\t\t\tborder-bottom: 1px solid #e8e8e8;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tposition: relative;\n\n\t\t\t&:last-child {\n\t\t\t\tborder-bottom: none;\n\t\t\t}\n\n\t\t\t&.type--picture {\n\t\t\t\tborder-bottom: none;\n\t\t\t\tlabel {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\tpadding: 0;\n\t\t\t\t}\n\t\t\t\t.llms-marker {\n\t\t\t\t\tbottom: 10px;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tright: 10px;\n\t\t\t\t}\n\t\t\t\t.llms-choice-image {\n\t\t\t\t\tmargin: 2px;\n\t\t\t\t\tpadding: 20px;\n\t\t\t\t\ttransition: background 0.4s ease;\n\t\t\t\t\timg {\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\twidth: 100%;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tinput:checked ~ .llms-choice-image {\n\t\t\t\t\tbackground: #efefef\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tinput {\n\t\t\t\tdisplay: none;\n\t\t\t\tleft: 0;\n\t\t\t\tpointer-events: none;\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tvisibility: hidden;\n\t\t\t}\n\n\t\t\tlabel {\n\t\t\t\tdisplay: block;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 10px 20px;\n\t\t\t\tposition: relative;\n\t\t\t\t// &:hover {\n\t\t\t\t&.hovered {\n\t\t\t\t\t.llms-marker:not(.type--lister) {\n\t\t\t\t\t\t.iterator {\n\t\t\t\t\t\t\tdisplay: none;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.fa {\n\t\t\t\t\t\t\tdisplay: inline;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-marker {\n\n\t\t\t\tbackground: #f0f0f0;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tfont-size: 20px;\n\t\t\t\theight: 40px;\n\t\t\t\tline-height: 40px;\n\t\t\t\tmargin-right: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\ttransition: all 0.2s ease;\n\t\t\t\tvertical-align: middle;\n\t\t\t\twidth: 40px;\n\n\t\t\t\t.fa {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t&.type--lister,\n\t\t\t\t&.type--checkbox { border-radius: 4px; }\n\t\t\t\t&.type--radio { border-radius: 50%; }\n\n\t\t\t}\n\n\t\t\tinput:checked + .llms-marker {\n\t\t\t\tbackground: $color-brand-pink;\n\t\t\t\tcolor: #fff;\n\t\t\t\t.iterator {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t\t.fa {\n\t\t\t\t\tdisplay: inline;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-choice-text {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tfont-size: 18px;\n\t\t\t\tfont-weight: 400;\n\t\t\t\tline-height: 1.6;\n\t\t\t\tmargin-bottom: 0;\n\t\t\t\tvertical-align: middle;\n\t\t\t\twidth: calc( 100% - 60px );\n\t\t\t}\n\n\t\t}\n\t}\n\n}\n\n.llms-quiz-timer {\n\tbackground: #fff;\n\tborder: 1px solid $color-green;\n\tborder-radius: 4px;\n\tcolor: $color-green;\n\tfloat: right;\n\tfont-size: 18px;\n\tline-height: 1;\n\tmargin-left: 20px;\n\tpadding: 8px 12px;\n\tposition: relative;\n\twhite-space: nowrap;\n\tz-index: 1;\n\n\t&.color-half {\n\t\tborder-color: $color-orange;\n\t\tcolor: $color-orange\n\t}\n\n\t&.color-empty {\n\t\tborder-color: $color-danger;\n\t\tcolor: $color-danger\n\t}\n\n\t.llms-tiles {\n\t\tdisplay: inline-block;\n\t\tmargin-left: 5px;\n\t}\n}\n\n\n// /* My Quizzes */\n// .llms-quiz-results {\n// @extend %cf;\n// font-family: \"Open Sans\",Verdana,Geneva,sans-serif,sans-serif;\n// position: relative;\n// }\n// .llms-quiz-results > h3 {\n// background-color: #f5f5f5;\n// padding: 4px;\n// }\n\n// .llms-quiz-result-details {\n// float: left;\n// ul {\n// list-style-type: none;\n// float: left;\n// li {\n// list-style-type: none;\n// font-size: 20px;\n// }\n// }\n// }\n// .llms-attempts {\n// font-weight: bold;\n// }\n\n// .llms-pass-perc {\n// font-weight: bold;\n// }\n// .llms-content-block {\n// margin: 6px 0;\n// }\n// .llms-question-wrapper {\n// margin: 40px 0 20px 0;\n// }\n// .llms-question-count {\n// margin-bottom: 20px;\n// }\n\n\n",".voucher-expand {\n\tdisplay: none;\n}",".llms-access-plans {\n\t@extend %clearfix;\n\n\t@media all and (min-width: 600px) {\n\t\t$cols: 1;\n\t\t@while $cols <= 5 {\n\t\t\t&.cols-#{$cols} .llms-access-plan {\n\t\t\t\twidth: calc( 100% / $cols );\n\t\t\t}\n\t\t\t$cols: $cols + 1;\n\t\t}\n\t}\n\n}\n\n.llms-free-enroll-form {\n\tmargin-bottom: 0;\n}\n\n.llms-access-plan {\n\tbox-sizing: border-box;\n\tfloat: left;\n\ttext-align: center;\n\twidth: 100%;\n\n\t.llms-access-plan-footer,\n\t.llms-access-plan-content {\n\t\tbackground: #f1f1f1;\n\t}\n\n\t&.featured {\n\n\t\t.llms-access-plan-featured {\n\t\t\tbackground: lighten( $color-brand-blue, 8 );\n\t\t}\n\n\t\t.llms-access-plan-footer,\n\t\t.llms-access-plan-content {\n\t\t\tborder-left: 3px solid $color-brand-blue;\n\t\t\tborder-right: 3px solid $color-brand-blue;\n\t\t}\n\n\t\t.llms-access-plan-footer {\n\t\t\tborder-bottom-color: $color-brand-blue;\n\t\t}\n\n\t}\n\n\t&.on-sale {\n\t\t.price-regular { text-decoration: line-through; }\n\t}\n\n\t.stamp {\n\t\tbackground: $color-brand-blue;\n\t\tcolor: #fff;\n\t\tfont-size: 11px;\n\t\tfont-style: normal;\n\t\tfont-weight: 300;\n\t\tpadding: 2px 3px;\n\t\tvertical-align: top;\n\t}\n\n\t.llms-access-plan-restrictions ul { margin: 0; }\n\n}\n\t.llms-access-plan-featured {\n\t\tcolor: #fff;\n\t\tfont-size: 14px;\n\t\tfont-weight: 400;\n\t\tmargin: 0 2px 0 2px;\n\t}\n\n\t.llms-access-plan-content {\n\t\tmargin: 0 2px 0;\n\n\t\t.llms-access-plan-pricing {\n\t\t\tpadding: 10px 0 0;\n\t\t}\n\t}\n\n\t\t.llms-access-plan-title {\n\t\t\tbackground: $color-brand-blue;\n\t\t\tcolor: #fff;\n\t\t\tmargin-bottom: 0;\n\t\t\tpadding: 10px;\n\t\t}\n\n\t\t.llms-access-plan-pricing {\n\n\t\t\t.llms-price-currency-symbol {\n\t\t\t\tfont-size: 14px;\n\t\t\t\tvertical-align: top;\n\t\t\t}\n\n\t\t}\n\n\t\t\t.llms-access-plan-price {\n\t\t\t\tfont-size: 18px;\n\t\t\t\tfont-variant: small-caps;\n\t\t\t\tline-height: 20px;\n\n\t\t\t\t.lifterlms-price {\n\t\t\t\t\tfont-weight: 700;\n\t\t\t\t}\n\n\t\t\t\t&.sale {\n\t\t\t\t\tpadding: 5px 0;\n\t\t\t\t\tborder-top: 1px solid #d0d0d0;\n\t\t\t\t\tborder-bottom: 1px solid #d0d0d0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-access-plan-trial,\n\t\t\t.llms-access-plan-schedule,\n\t\t\t.llms-access-plan-sale-end,\n\t\t\t.llms-access-plan-expiration {\n\t\t\t\tfont-size: 15px;\n\t\t\t\tfont-variant: small-caps;\n\t\t\t\tline-height: 1.2;\n\t\t\t}\n\n\t\t.llms-access-plan-description {\n\t\t\tfont-size: 16px;\n\t\t\tpadding: 10px 10px 0;\n\n\t\t\tul {\n\t\t\t\tmargin: 0;\n\t\t\t\tli {\n\t\t\t\t\tborder-bottom: 1px solid #d0d0d0;\n\t\t\t\t\tlist-style-type: none;\n\t\t\t\t\t&:last-child {\n\t\t\t\t\t\tborder-bottom: none;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdiv, img, p, ul, li {\n\t\t\t\t&:last-child { margin-bottom: 0; }\n\t\t\t}\n\t\t}\n\n\t\t.llms-access-plan-restrictions {\n\t\t\t.stamp {\n\t\t\t\tvertical-align: baseline;\n\t\t\t}\n\t\t\tul {\n\t\t\t\tmargin: 0;\n\t\t\t\tli {\n\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\tline-height: 14px;\n\t\t\t\t\tlist-style-type: none;\n\t\t\t\t}\n\t\t\t}\n\t\t\ta {\n\t\t\t\tcolor: $color-brand-orange;\n\t\t\t\t&:hover {\n\t\t\t\t\tcolor: $color-brand-orange-dark;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t.llms-access-plan-footer {\n\t\tborder-bottom: 3px solid #f1f1f1;\n\t\tpadding: 10px;\n\t\tmargin: 0 2px 2px 2px;\n\n\t\t.llms-access-plan-pricing {\n\t\t\tpadding: 0 0 10px;\n\t\t}\n\t}\n\n\n.webui-popover-content .llms-members-only-restrictions {\n\ttext-align: center;\n\tul,ol,li,p {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\tul,ol,li {\n\t\tlist-style-type: none;\n\t}\n\tli {\n\t\tpadding: 8px 0;\n\t\tborder-top: 1px solid #3b3b3b;\n\t\t&:first-child {\n\t\t\tborder-top: none;\n\t\t}\n\t\ta {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n",".llms-checkout-wrapper {\n\tform.llms-login {\n\t\tborder: 3px solid $color-brand-blue;\n\t\tdisplay: none;\n\t\tmargin-bottom: 10px;\n\t}\n\t.llms-form-heading {\n\t\tbackground: $color-brand-blue;\n\t\tcolor: #fff;\n\t\tmargin: 0 0 5px;\n\t\tpadding: 10px;\n\t}\n}\n\n.llms-checkout {\n\tbackground: #fff;\n\tposition: relative;\n}\n\n.llms-checkout-cols-2 {\n\t@extend %clearfix;\n\n\t@media all and (min-width: 800px) {\n\n\t\t.llms-checkout-col {\n\t\t\tfloat: left;\n\n\t\t\t&.llms-col-1 {\n\t\t\t\tmargin-right: 5px;\n\t\t\t\twidth: calc( 58% - 5px );\n\t\t\t}\n\t\t\t&.llms-col-2 {\n\t\t\t\tmargin-left: 5px;\n\t\t\t\twidth: calc( 42% - 5px );\n\n\t\t\t\tbutton {\n\t\t\t\t\twidth: 100%;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n}\n\n\t.llms-checkout-section {\n\t\tborder: 3px solid $color-brand-blue;\n\t\tmargin-bottom: 10px;\n\t\tposition: relative;\n\t}\n\n\t\t.llms-checkout-section-content {\n\t\t\tmargin: 10px;\n\t\t\t&.llms-form-fields {\n\t\t\t\tmargin: 0px;\n\t\t\t}\n\n\t\t\t.llms-label {\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-variant: small-caps;\n\t\t\t\ttext-transform: lowercase;\n\t\t\t}\n\n\t\t\t.llms-order-summary {\n\t\t\t\tlist-style-type: none;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\n\t\t\t\tli { list-style-type: none; }\n\n\t\t\t\tli.llms-pricing {\n\t\t\t\t\t&.on-sale,\n\t\t\t\t\t&.has-coupon {\n\t\t\t\t\t\t.price-regular { text-decoration: line-through; }\n\t\t\t\t\t}\n\t\t\t\t}\n\n\n\t\t\t}\n\n\t\t\t.llms-coupon-wrapper {\n\t\t\t\tborder-top: 1px solid #dadada;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\tpadding-top: 10px;\n\n\t\t\t\t.llms-coupon-entry {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t\tmargin-top: 10px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t.llms-form-field.llms-payment-gateway-option {\n\n\t\t\tlabel + span.llms-description {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmargin-left: 5px;\n\t\t\t}\n\n\t\t\t.llms-description {\n\t\t\t\ta {\n\t\t\t\t\tborder: none;\n\t\t\t\t\tbox-shadow: none;\n\t\t\t\t\ttext-decoration: none;\n\t\t\t\t}\n\t\t\t\timg {\n\t\t\t\t\tdisplay: inline;\n\t\t\t\t\tmax-height: 22px;\n\t\t\t\t\tvertical-align: middle;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t.llms-checkout-wrapper ul.llms-payment-gateways {\n\t\t\tmargin: 5px 0 0;\n\t\t\tpadding: 0;\n\t\t}\n\t\tul.llms-payment-gateways {\n\t\t\tlist-style-type: none;\n\n\t\t\tli:last-child:after {\n\t\t\t\tborder-bottom: 1px solid #dadada;\n\t\t\t\tcontent: '';\n\t\t\t\tdisplay: block;\n\t\t\t\tmargin: 10px;\n\t\t\t}\n\n\t\t\t.llms-payment-gateway {\n\t\t\t\tmargin-bottom: 5px;\n\t\t\t\tlist-style-type: none;\n\t\t\t\t&:last-child {\n\t\t\t\t\tmargin-bottom: none;\n\t\t\t\t}\n\n\t\t\t\t&.is-selected {\n\t\t\t\t\t.llms-payment-gateway-option label {\n\t\t\t\t\t\tfont-weight: 700;\n\t\t\t\t\t}\n\t\t\t\t\t.llms-gateway-fields {\n\t\t\t\t\t\tdisplay: block;\n\n\t\t\t\t\t\t.llms-notice {\n\t\t\t\t\t\t\tmargin-left: 10px;\n\t\t\t\t\t\t\tmargin-right: 10px;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t.llms-form-field {\n\t\t\t\t\tpadding-bottom: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t\t.llms-gateway-description {\n\t\t\t\t\tmargin-left: 40px;\n\t\t\t\t}\n\n\t\t\t\t.llms-gateway-fields {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t\tmargin: 5px 0 20px;\n\t\t\t\t}\n\n\t\t\t.llms-payment-gateway-error {\n\t\t\t\tpadding: 0 10px;\n\t\t\t}\n\t\t}\n\n\t\t.llms-checkout-confirm {\n\t\t\tmargin: 0 10px;\n\t\t}\n\n\t\t.llms-payment-method {\n\t\t\tmargin: 10px 10px 0;\n\t\t}\n\n\t\t.llms-gateway-description {\n\t\t\tp {\n\t\t\t\tfont-size: 85%;\n\t\t\t\tfont-style: italic;\n\t\t\t\tmargin-bottom: 0;\n\t\t\t}\n\t\t}\n",".llms-form-fields {\n\t@extend %clearfix;\n\tbox-sizing: border-box;\n\t& * {\n\t\tbox-sizing: border-box;\n\t}\n\t&.flush {\n\t\t.llms-form-field {\n\t\t\tpadding: 0 0 10px;\n\t\t}\n\t}\n\n\t.wp-block-columns, .wp-block-column {\n\t\tmargin-bottom: 0;\n\t}\n}\n\n\t.llms-form-heading {\n\t\tpadding: 0 10px 10px;\n\t}\n\n\t.llms-form-field {\n\t\tfloat: left;\n\t\tpadding: 0 10px 10px;\n\t\tposition: relative;\n\t\twidth: 100%;\n\n\t\t// Ensure \"empty\" labels don't break the layout.\n\t\t// See the billing_address_2 field which has no label.\n\t\tlabel:empty:after {\n\t\t\tcontent: '\\00a0';\n\t\t}\n\n\t\t&.valid {\n\t\t\tinput[type=\"date\"], input[type=\"time\"], input[type=\"datetime-local\"], input[type=\"week\"], input[type=\"month\"], input[type=\"text\"], input[type=\"email\"], input[type=\"url\"], input[type=\"password\"], input[type=\"search\"], input[type=\"tel\"], input[type=\"number\"], textarea, select {\n\t\t\t\tbackground: rgba( #83c373, .3 );\n\t\t\t\tborder-color: #83c373;\n\t\t\t}\n\t\t}\n\n\t\t&.error,\n\t\t&.invalid {\n\t\t\tinput[type=\"date\"], input[type=\"time\"], input[type=\"datetime-local\"], input[type=\"week\"], input[type=\"month\"], input[type=\"text\"], input[type=\"email\"], input[type=\"url\"], input[type=\"password\"], input[type=\"search\"], input[type=\"tel\"], input[type=\"number\"], textarea, select {\n\t\t\t\tbackground: rgba( $color-red, .3 );\n\t\t\t\tborder-color: $color-red;\n\t\t\t}\n\t\t}\n\n\t\t&.llms-visually-hidden-field {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t&.align-right {\n\t\t\ttext-align: right;\n\t\t}\n\n\t\t@media screen and ( min-width: 600px ) {\n\t\t\t$i: 1;\n\t\t\t@while $i <= 12 {\n\t\t\t\t&.llms-cols-#{$i} {\n\t\t\t\t\twidth: calc( $i / 12 ) * 100%;\n\t\t\t\t\t$i: $i + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&.type-hidden { padding: 0; }\n\n\t\t&.type-radio,\n\t\t&.type-checkbox {\n\t\t\tinput,\n\t\t\tlabel {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\twidth: auto;\n\t\t\t}\n\t\t\tinput {\n\t\t\t\tmargin-right: 5px;\n\t\t\t}\n\t\t\tlabel + .llms-description {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\n\t\t&.type-radio:not(.is-group) {\n\n\t\t\tinput[type=\"radio\"] {\n\t\t\t\tposition: absolute;\n\t\t\t\topacity: 0;\n\t\t\t\tvisibility: none;\n\t\t\t}\n\n\t\t\tlabel:before {\n\t\t\t\tbackground: #fafafa;\n\t\t\t\tbackground-position: -24px 0;\n\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tbox-shadow: hsla( 0,0%,100%,.15) 0 1px 1px, inset hsla(0,0%,0%,.35) 0 0 0 1px;\n\t\t\t\tcontent: '';\n\t\t\t\tcursor: pointer;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\theight: 22px;\n\t\t\t\tmargin-right: 5px;\n\t\t\t\tposition: relative;\n\t\t\t\ttransition: background-position .15s cubic-bezier(.8, 0, 1, 1);\n\t\t\t\ttop: -3px;\n\t\t\t\tvertical-align: middle;\n\t\t\t\twidth: 22px;\n\t\t\t\tz-index: 2;\n\t\t\t}\n\n\t\t\tinput[type=\"radio\"]:checked + label:before {\n\t\t\t\ttransition: background-position .2s .15s cubic-bezier(0, 0, .2, 1);\n\t\t\t\tbackground-position: 0 0;\n\t\t\t\tbackground-image: radial-gradient(ellipse at center, $color-brand-blue 0%,$color-brand-blue 40%, #fafafa 45%);\n\t\t\t}\n\n\t\t}\n\n\t\t.llms-input-group {\n\t\t\tmargin-top: 5px;\n\t\t\t.llms-form-field {\n\t\t\t\tpadding: 0 0 5px 5px;\n\t\t\t}\n\t\t}\n\n\t\t&.type-reset,\n\t\t&.type-button,\n\t\t&.type-submit {\n\t\t\tbutton:not(.auto) { width: 100%; }\n\t\t}\n\n\t\t.llms-description {\n\t\t\tfont-size: 14px;\n\t\t\tfont-style: italic;\n\t\t}\n\n\t\t.llms-required {\n\t\t\tcolor: $color-red;\n\t\t\tmargin-left: 4px;\n\t\t}\n\n\t\tinput, textarea, select {\n\t\t\twidth: 100%;\n\t\t\tmargin-bottom: 5px;\n\t\t}\n\n\t\t.select2-container .select2-selection--single {\n\t\t\theight: auto;\n\t\t\tpadding: 4px 6px;\n\t\t}\n\t\t.select2-container--default .select2-selection--single .select2-selection__arrow {\n\t\t\theight: 100%;\n\t\t}\n\n\t}\n\n\n\t.llms-password-strength-meter {\n\t\tborder: 1px solid #dadada;\n\t\tdisplay: none;\n\t\tfont-size: 10px;\n\t\tmargin-top: -10px;\n\t\tpadding: 1px;\n\t\tposition: relative;\n\t\ttext-align: center;\n\n\t\t&:before {\n\t\t\tbottom: 0;\n\t\t\tcontent: '';\n\t\t\tleft: 0;\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\ttransition: width .4s ease;\n\t\t}\n\n\t\t&.mismatch,\n\t\t&.too-short,\n\t\t&.very-weak {\n\t\t\tborder-color: #e35b5b;\n\t\t\t&:before {\n\t\t\t\tbackground: rgba( #e35b5b, 0.25 );\n\t\t\t\twidth: 25%;\n\t\t\t}\n\t\t}\n\n\t\t&.too-short:before {\n\t\t\twidth: 0;\n\t\t}\n\n\t\t&.weak {\n\t\t\tborder-color: #f78b53;\n\t\t\t&:before {\n\t\t\t\tbackground: rgba( #f78b53, 0.25 );\n\t\t\t\twidth: 50%;\n\t\t\t}\n\t\t}\n\n\t\t&.medium {\n\t\t\tborder-color: #ffc733;\n\t\t\t&:before {\n\t\t\t\tbackground: rgba( #ffc733, 0.25 );\n\t\t\t\twidth: 75%;\n\t\t\t}\n\t\t}\n\n\t\t&.strong {\n\t\t\tborder-color: #83c373;\n\t\t\t&:before {\n\t\t\t\tbackground: rgba( #83c373, 0.25 );\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\t}\n",".llms-widget-syllabus--collapsible {\n\n\t.llms-section {\n\n\t\t.section-header {\n\n\t\t\tcursor: pointer;\n\n\t\t}\n\n\t\t&.llms-section--opened {\n\n\t\t\t.llms-collapse-caret {\n\t\t\t\t.fa-caret-right { display: none; }\n\t\t\t}\n\n\t\t}\n\n\t\t&.llms-section--closed {\n\n\t\t\t.llms-collapse-caret {\n\t\t\t\t.fa-caret-down { display: none; }\n\t\t\t}\n\n\t\t\t.llms-lesson {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t.llms-syllabus-footer {\n\n\t\ttext-align: left;\n\n\t}\n\n}\n",".llms-student-dashboard {\n\n\t.llms-sd-nav {}\n\n\t.llms-sd-title {\n\t\tmargin: 25px 0;\n\t}\n\n\t.llms-sd-items { // ul\n\t\t@extend %clearfix;\n\t\tlist-style-type: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\t\t.llms-sd-item { // li\n\t\t\tfloat: left;\n\t\t\tlist-style-type: none;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\n\t\t\t&:last-child {\n\t\t\t\t.llms-sep {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-sep {\n\t\t\t\tcolor: #333;\n\t\t\t\tmargin: 0 5px;\n\t\t\t}\n\t\t}\n\n\t.llms-sd-section {\n\t\tmargin-bottom: 25px;\n\t\t.llms-sd-section-footer {\n\t\t\tmargin-top: 10px;\n\t\t}\n\t}\n\n\t.orders-table {\n\n\t\tborder: 1px solid #f5f5f5;\n\t\twidth: 100%;\n\n\t\tthead {\n\t\t\tdisplay: none;\n\t\t\tth,td {\n\t\t\t\tfont-weight: 700;\n\t\t\t}\n\t\t\t@media all and ( min-width: 600px ) {\n\t\t\t\tdisplay: table-header-group;\n\t\t\t}\n\t\t}\n\n\t\ttbody {\n\t\t\ttr:nth-child( even ) {\n\t\t\t\ttd, th {\n\t\t\t\t\tbackground: #f9f9f9;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttfoot {\n\t\t\tth, td {\n\t\t\t\tpadding: 10px;\n\t\t\t\ttext-align: right;\n\t\t\t\t&:last-child { border-bottom-width: 0; }\n\t\t\t}\n\t\t}\n\n\t\tth {\n\t\t\tfont-weight: 700;\n\t\t}\n\n\t\tth, td {\n\t\t\tborder-color: #efefef;\n\t\t\tborder-style: solid;\n\t\t\tborder-width: 0;\n\t\t\tdisplay: block;\n\t\t\tpadding: 8px 12px;\n\t\t\ttext-align: center;\n\n\t\t\t.llms-button-primary {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n\n\t\t\t&:last-child {\n\t\t\t\tborder-bottom-width: 1px;\n\t\t\t}\n\n\t\t\t&:before {\n\t\t\t\tcontent: attr( data-label );\n\t\t\t}\n\n\t\t\t@media all and ( min-width: 600px ) {\n\t\t\t\tborder-bottom-width: 1px;\n\t\t\t\tdisplay: table-cell;\n\t\t\t\ttext-align: left;\n\t\t\t\t&:first-child { width: 220px; }\n\t\t\t\t&:before { display: none; }\n\t\t\t}\n\n\t\t}\n\n\t\t@media all and ( min-width: 600px ) {\n\t\t\t&.transactions th:first-child {width: auto; }\n\t\t}\n\n\t}\n\n\t@include order_status_badges();\n\n\t.llms-person-form-wrapper {\n\t\t.llms-change-password { display: none; }\n\t}\n\n\t.order-primary {\n\n\t\t@media all and ( min-width: 600px ) {\n\t\t\tfloat: left;\n\t\t\twidth: 68%;\n\t\t}\n\n\t}\n\t.order-secondary {\n\n\t\t@media all and ( min-width: 600px ) {\n\t\t\tfloat: left;\n\t\t\twidth: 32%;\n\t\t}\n\n\t\tform {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t}\n\n\t// stack columns when alternate layout declared via filter\n\t@media all and ( min-width: 600px ) {\n\t\t.llms-view-order.llms-stack-cols {\n\t\t\t.order-primary,\n\t\t\t.order-secondary {\n\t\t\t\tfloat: none;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\t}\n\n\t.llms-switch-payment-source {\n\t\t.llms-notice,\n\t\t.entry-content .llms-notice {\n\t\t\tmargin-left: 10px;\n\t\t\tmargin-right: 10px;\n\t\t}\n\t}\n\n\t.llms-switch-payment-source-main {\n\t\tborder: none;\n\t\tdisplay: none;\n\t\tmargin: 0;\n\t\tul.llms-payment-gateways {\n\t\t\tpadding: 10px 15px 0;\n\t\t\tmargin: 0;\n\t\t}\n\t\t.llms-payment-method,\n\t\tul.llms-order-summary {\n\t\t\tpadding: 0 25px 10px;\n\t\t\tmargin: 0;\n\t\t\tlist-style-type: none;\n\t\t\tli { list-style-type: none; }\n\t\t}\n\t}\n\n\t/**\n\t * Dashboard Home\n\t */\n\t.llms-loop-list {\n\t\tmargin: 0 -10px;\n\t}\n\n}\n\n// My Grades course list\n.llms-sd-grades {\n\t.llms-table {\n\t\t.llms-progress {\n\t\t\tdisplay: block;\n\t\t\tmargin: 0;\n\t\t\t.llms-progress-bar {\n\t\t\t\ttop: 0;\n\t\t\t\theight: 1.4em;\n\t\t\t}\n\t\t\t.progress__indicator {\n\t\t\t\tfont-size: 1em;\n\t\t\t\tposition: relative;\n\t\t\t\tright: 0.4em;\n\t\t\t\ttop: 0.2em;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n// grades table for a single course\n.llms-table.llms-single-course-grades {\n\n\ttbody {\n\t\ttr:first-child td, tr:first-child th {\n\t\t\tbackground-color: #eaeaea;\n\t\t}\n\t}\n\n\tth {\n\t\tfont-weight: 400;\n\t}\n\n\ttd {\n\t\t.llms-donut {\n\t\t\tdisplay: inline-block;\n\t\t\tvertical-align: middle;\n\t\t}\n\t\t.llms-status {\n\t\t\tmargin-right: 4px;\n\t\t}\n\t\t.llms-donut + .llms-status {\n\t\t\tmargin-left: 4px;\n\t\t}\n\t}\n\n\tth.llms-section_title {\n\t\tfont-size: 110%;\n\t\tfont-weight: 700;\n\t}\n\n\ttd.llms-lesson_title {\n\t\tpadding-left: 36px;\n\t\tmax-width: 40%;\n\t}\n\ttd.llms-associated_quiz {\n\t\t.llms-donut {\n\t\t\tdisplay: inline-block;\n\t\t\tmargin-right: 5px;\n\t\t\tvertical-align: middle;\n\t\t}\n\t}\n\ttd.llms-lesson_title {\n\t\ta[href=\"#\"] {\n\t\t\tpointer-events: none;\n\t\t}\n\t\ta[href^=\"#\"] {\n\t\t\tcolor: inherit;\n\t\t\tposition: relative;\n\t\t\t.llms-tooltip {\n\t\t\t\tmax-width: 380px;\n\t\t\t\twidth: 380px;\n\t\t\t\t&.show {\n\t\t\t\t\ttop: -54px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n.llms-sd-widgets {\n\tdisplay: flex;\n\n\t.llms-sd-widget {\n\t\tbackground: #f9f9f9;\n\t\tflex: 1;\n\t\tmargin: 10px 10px 20px;\n\t\tpadding: 0 0 20px;\n\t\t&:first-child {\n\t\t\tmargin-left: 0;\n\t\t}\n\t\t&:last-child {\n\t\t\tmargin-right: 0;\n\t\t}\n\n\t\t.llms-sd-widget-title {\n\t\t\tbackground: $color-brand-blue;\n\t\t\tcolor: #fff;\n\t\t\tfont-size: 18px;\n\t\t\tline-height: 1;\n\t\t\tmargin: 0 0 20px;\n\t\t\tpadding: 10px;\n\t\t}\n\n\t\t.llms-sd-widget-empty {\n\t\t\tfont-size: 14px;\n\t\t\tfont-style: italic;\n\t\t\topacity: 0.5;\n\t\t\ttext-align: center;\n\t\t}\n\n\t\t.llms-donut {\n\t\t\tmargin: 0 auto;\n\t\t}\n\n\t\t.llms-sd-date {\n\t\t\topacity: 0.8;\n\t\t\ttext-align: center;\n\t\t\tfont-size: 22px;\n\t\t\tline-height: 1.1;\n\t\t\tspan {\n\t\t\t\tdisplay: block;\n\t\t\t\t&.day {\n\t\t\t\t\tfont-size: 52px;\n\t\t\t\t}\n\t\t\t\t&.diff {\n\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\tfont-style: italic;\n\t\t\t\t\tmargin-top: 8px;\n\t\t\t\t\topacity: 0.75;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.llms-achievement {\n\t\t\tbackground: transparent;\n\t\t\tmargin: 0 auto;\n\t\t\tmax-width: 120px;\n\t\t\t.llms-achievement-title {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\n\t}\n\n\n}\n\n\n.llms-sd-pagination {\n\tmargin-top: 24px;\n\t@include clearfix;\n\t.llms-button-secondary {\n\t\tdisplay: inline-block;\n\t\t&.prev { float: left; }\n\t\t&.next { float: right; }\n\t}\n}\n\n\n.llms-sd-notification-center {\n\t.llms-notification {\n\t\tz-index: 1;\n\t}\n}\n",".llms-table {\n\tborder: 1px solid #efefef;\n\twidth: 100%;\n\n\tthead {\n\t\tth,td {\n\t\t\tfont-weight: 700;\n\t\t}\n\t}\n\n\ttbody {\n\t\ttr:nth-child( odd ) {\n\t\t\ttd, th {\n\t\t\t\tbackground: #f9f9f9;\n\t\t\t}\n\t\t}\n\t\ttr:last-child {\n\t\t\tborder-bottom-width: 0;\n\t\t}\n\t}\n\n\ttfoot {\n\t\ttr {\n\t\t\tbackground: #f9f9f9;\n\t\t\t.llms-pagination .page-numbers {\n\t\t\t\tmargin: 0;\n\t\t\t}\n\t\t\t.llms-table-sort {\n\t\t\t\ttext-align: right;\n\t\t\t\tform, select, input, button {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tth {\n\t\tfont-weight: 700;\n\t}\n\n\tth, td {\n\t\tborder-bottom: 1px solid #efefef;\n\t\tpadding: 8px 12px;\n\n\t\t// launchpad compat...\n\t\t&:first-child { padding-left: 12px; }\n\t\t&:last-child { padding-right: 12px; }\n\n\t}\n\n}\n\n// launchpad compat...\n#page .llms-table tfoot label {\n\tdisplay: inline;\n}\n#page .llms-table tfoot select {\n\theight: auto;\n}\n","/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: 'FontAwesome';\n src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');\n src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n.fa-2x {\n font-size: 2em;\n}\n.fa-3x {\n font-size: 3em;\n}\n.fa-4x {\n font-size: 4em;\n}\n.fa-5x {\n font-size: 5em;\n}\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n.fa-ul > li {\n position: relative;\n}\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n.fa-border {\n padding: .2em .25em .15em;\n border: solid 0.08em #eeeeee;\n border-radius: .1em;\n}\n.fa-pull-left {\n float: left;\n}\n.fa-pull-right {\n float: right;\n}\n.fa.fa-pull-left {\n margin-right: .3em;\n}\n.fa.fa-pull-right {\n margin-left: .3em;\n}\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n.pull-left {\n float: left;\n}\n.fa.pull-left {\n margin-right: .3em;\n}\n.fa.pull-right {\n margin-left: .3em;\n}\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none;\n}\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n.fa-stack-1x {\n line-height: inherit;\n}\n.fa-stack-2x {\n font-size: 2em;\n}\n.fa-inverse {\n color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n.fa-music:before {\n content: \"\\f001\";\n}\n.fa-search:before {\n content: \"\\f002\";\n}\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n.fa-heart:before {\n content: \"\\f004\";\n}\n.fa-star:before {\n content: \"\\f005\";\n}\n.fa-star-o:before {\n content: \"\\f006\";\n}\n.fa-user:before {\n content: \"\\f007\";\n}\n.fa-film:before {\n content: \"\\f008\";\n}\n.fa-th-large:before {\n content: \"\\f009\";\n}\n.fa-th:before {\n content: \"\\f00a\";\n}\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n.fa-check:before {\n content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n.fa-power-off:before {\n content: \"\\f011\";\n}\n.fa-signal:before {\n content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n.fa-home:before {\n content: \"\\f015\";\n}\n.fa-file-o:before {\n content: \"\\f016\";\n}\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n.fa-road:before {\n content: \"\\f018\";\n}\n.fa-download:before {\n content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n.fa-refresh:before {\n content: \"\\f021\";\n}\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n.fa-lock:before {\n content: \"\\f023\";\n}\n.fa-flag:before {\n content: \"\\f024\";\n}\n.fa-headphones:before {\n content: \"\\f025\";\n}\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n.fa-tag:before {\n content: \"\\f02b\";\n}\n.fa-tags:before {\n content: \"\\f02c\";\n}\n.fa-book:before {\n content: \"\\f02d\";\n}\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n.fa-print:before {\n content: \"\\f02f\";\n}\n.fa-camera:before {\n content: \"\\f030\";\n}\n.fa-font:before {\n content: \"\\f031\";\n}\n.fa-bold:before {\n content: \"\\f032\";\n}\n.fa-italic:before {\n content: \"\\f033\";\n}\n.fa-text-height:before {\n content: \"\\f034\";\n}\n.fa-text-width:before {\n content: \"\\f035\";\n}\n.fa-align-left:before {\n content: \"\\f036\";\n}\n.fa-align-center:before {\n content: \"\\f037\";\n}\n.fa-align-right:before {\n content: \"\\f038\";\n}\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n.fa-list:before {\n content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n.fa-indent:before {\n content: \"\\f03c\";\n}\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n.fa-pencil:before {\n content: \"\\f040\";\n}\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n.fa-adjust:before {\n content: \"\\f042\";\n}\n.fa-tint:before {\n content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n.fa-arrows:before {\n content: \"\\f047\";\n}\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n.fa-backward:before {\n content: \"\\f04a\";\n}\n.fa-play:before {\n content: \"\\f04b\";\n}\n.fa-pause:before {\n content: \"\\f04c\";\n}\n.fa-stop:before {\n content: \"\\f04d\";\n}\n.fa-forward:before {\n content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n.fa-eject:before {\n content: \"\\f052\";\n}\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n.fa-ban:before {\n content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n.fa-expand:before {\n content: \"\\f065\";\n}\n.fa-compress:before {\n content: \"\\f066\";\n}\n.fa-plus:before {\n content: \"\\f067\";\n}\n.fa-minus:before {\n content: \"\\f068\";\n}\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n.fa-gift:before {\n content: \"\\f06b\";\n}\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n.fa-fire:before {\n content: \"\\f06d\";\n}\n.fa-eye:before {\n content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n.fa-plane:before {\n content: \"\\f072\";\n}\n.fa-calendar:before {\n content: \"\\f073\";\n}\n.fa-random:before {\n content: \"\\f074\";\n}\n.fa-comment:before {\n content: \"\\f075\";\n}\n.fa-magnet:before {\n content: \"\\f076\";\n}\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n.fa-retweet:before {\n content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n.fa-folder:before {\n content: \"\\f07b\";\n}\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n.fa-key:before {\n content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n.fa-comments:before {\n content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n.fa-star-half:before {\n content: \"\\f089\";\n}\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n.fa-trophy:before {\n content: \"\\f091\";\n}\n.fa-github-square:before {\n content: \"\\f092\";\n}\n.fa-upload:before {\n content: \"\\f093\";\n}\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n.fa-phone:before {\n content: \"\\f095\";\n}\n.fa-square-o:before {\n content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n.fa-twitter:before {\n content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n.fa-github:before {\n content: \"\\f09b\";\n}\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n.fa-square:before {\n content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n.fa-table:before {\n content: \"\\f0ce\";\n}\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n.fa-money:before {\n content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n.fa-columns:before {\n content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n.fa-desktop:before {\n content: \"\\f108\";\n}\n.fa-laptop:before {\n content: \"\\f109\";\n}\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n.fa-spinner:before {\n content: \"\\f110\";\n}\n.fa-circle:before {\n content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n.fa-terminal:before {\n content: \"\\f120\";\n}\n.fa-code:before {\n content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n.fa-crop:before {\n content: \"\\f125\";\n}\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n.fa-question:before {\n content: \"\\f128\";\n}\n.fa-info:before {\n content: \"\\f129\";\n}\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n.fa-microphone:before {\n content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n.fa-shield:before {\n content: \"\\f132\";\n}\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n.fa-rocket:before {\n content: \"\\f135\";\n}\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n.fa-html5:before {\n content: \"\\f13b\";\n}\n.fa-css3:before {\n content: \"\\f13c\";\n}\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n.fa-ticket:before {\n content: \"\\f145\";\n}\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n.fa-level-up:before {\n content: \"\\f148\";\n}\n.fa-level-down:before {\n content: \"\\f149\";\n}\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n.fa-compass:before {\n content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n.fa-gbp:before {\n content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n.fa-file:before {\n content: \"\\f15b\";\n}\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n.fa-youtube:before {\n content: \"\\f167\";\n}\n.fa-xing:before {\n content: \"\\f168\";\n}\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n.fa-adn:before {\n content: \"\\f170\";\n}\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n.fa-apple:before {\n content: \"\\f179\";\n}\n.fa-windows:before {\n content: \"\\f17a\";\n}\n.fa-android:before {\n content: \"\\f17b\";\n}\n.fa-linux:before {\n content: \"\\f17c\";\n}\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n.fa-skype:before {\n content: \"\\f17e\";\n}\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n.fa-trello:before {\n content: \"\\f181\";\n}\n.fa-female:before {\n content: \"\\f182\";\n}\n.fa-male:before {\n content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n.fa-archive:before {\n content: \"\\f187\";\n}\n.fa-bug:before {\n content: \"\\f188\";\n}\n.fa-vk:before {\n content: \"\\f189\";\n}\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n.fa-renren:before {\n content: \"\\f18b\";\n}\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n.fa-slack:before {\n content: \"\\f198\";\n}\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n.fa-openid:before {\n content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n.fa-google:before {\n content: \"\\f1a0\";\n}\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n.fa-language:before {\n content: \"\\f1ab\";\n}\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n.fa-building:before {\n content: \"\\f1ad\";\n}\n.fa-child:before {\n content: \"\\f1ae\";\n}\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n.fa-database:before {\n content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n.fa-git:before {\n content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n.fa-history:before {\n content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n.fa-header:before {\n content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n.fa-at:before {\n content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n.fa-bus:before {\n content: \"\\f207\";\n}\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n.fa-angellist:before {\n content: \"\\f209\";\n}\n.fa-cc:before {\n content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n.fa-diamond:before {\n content: \"\\f219\";\n}\n.fa-ship:before {\n content: \"\\f21a\";\n}\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n.fa-venus:before {\n content: \"\\f221\";\n}\n.fa-mars:before {\n content: \"\\f222\";\n}\n.fa-mercury:before {\n content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n.fa-server:before {\n content: \"\\f233\";\n}\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n.fa-user-times:before {\n content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n.fa-train:before {\n content: \"\\f238\";\n}\n.fa-subway:before {\n content: \"\\f239\";\n}\n.fa-medium:before {\n content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n.fa-object-group:before {\n content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n.fa-clone:before {\n content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n.fa-registered:before {\n content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n.fa-gg:before {\n content: \"\\f260\";\n}\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n.fa-safari:before {\n content: \"\\f267\";\n}\n.fa-chrome:before {\n content: \"\\f268\";\n}\n.fa-firefox:before {\n content: \"\\f269\";\n}\n.fa-opera:before {\n content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n.fa-contao:before {\n content: \"\\f26d\";\n}\n.fa-500px:before {\n content: \"\\f26e\";\n}\n.fa-amazon:before {\n content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n.fa-industry:before {\n content: \"\\f275\";\n}\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n.fa-map-o:before {\n content: \"\\f278\";\n}\n.fa-map:before {\n content: \"\\f279\";\n}\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n.fa-edge:before {\n content: \"\\f282\";\n}\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n.fa-modx:before {\n content: \"\\f285\";\n}\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n.fa-usb:before {\n content: \"\\f287\";\n}\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n.fa-percent:before {\n content: \"\\f295\";\n}\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n.fa-envira:before {\n content: \"\\f299\";\n}\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n.fa-blind:before {\n content: \"\\f29d\";\n}\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n",".llms-spinning {\n\tbackground: rgba( 250, 250, 250, 0.7 );\n\tbottom: 0;\n\tdisplay: none;\n\tleft: 0;\n\tposition: absolute;\n\tright: 0;\n\ttop: 0;\n}\n\n.llms-spinner {\n\tanimation: llms-spinning 1.5s linear infinite;\n\tbox-sizing: border-box;\n\tborder: 4px solid #313131;\n\tborder-radius: 50%;\n\theight: 40px;\n\tleft: 50%;\n\tmargin-left: -20px;\n\tmargin-top: -20px;\n\tposition: absolute;\n\ttop: 50%;\n\twidth: 40px;\n\n\t&.small {\n\t\tborder-width: 2px;\n\t\theight: 20px;\n\t\tmargin-left: -10px;\n\t\tmargin-top: -10px;\n\t\twidth: 20px;\n\t}\n}\n\n@keyframes llms-spinning{\n\t0% {\n\t\ttransform: rotate(0deg)\n\t}\n\t50% {\n\t\tborder-radius: 5%;\n\t}\n\t100% {\n\t\ttransform: rotate(220deg)\n\t}\n}\n"],"sourceRoot":"../../scss"}
\ No newline at end of file
diff --git a/assets/maps/css/lifterlms.min.css.map b/assets/maps/css/lifterlms.min.css.map
index 9f82f491d0..f2b4b396fe 100644
--- a/assets/maps/css/lifterlms.min.css.map
+++ b/assets/maps/css/lifterlms.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["lifterlms.css"],"names":[],"mappings":"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","file":"../../css/lifterlms.min.css","sourcesContent":["@charset \"UTF-8\";\n.llms-pagination ul:before, .llms-pagination ul:after,\n.llms-student-dashboard .llms-sd-items:before,\n.llms-form-fields:before,\n.llms-checkout-cols-2:before,\n.llms-access-plans:before,\n.llms-course-navigation:before,\n.llms-loop-list:before,\n.llms-cols:before,\n.llms-student-dashboard .llms-sd-items:after,\n.llms-form-fields:after,\n.llms-checkout-cols-2:after,\n.llms-access-plans:after,\n.llms-course-navigation:after,\n.llms-loop-list:after,\n.llms-cols:after {\n content: \" \";\n display: table;\n}\n.llms-pagination ul:after,\n.llms-student-dashboard .llms-sd-items:after,\n.llms-form-fields:after,\n.llms-checkout-cols-2:after,\n.llms-access-plans:after,\n.llms-course-navigation:after,\n.llms-loop-list:after,\n.llms-cols:after {\n clear: both;\n}\n\n.llms-cols .llms-col {\n width: 100%;\n}\n@media all and (min-width: 600px) {\n .llms-cols [class*=llms-col-] {\n float: left;\n }\n}\n\n.llms-flex-cols {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n}\n.llms-flex-cols [class*=llms-col] {\n -webkit-box-flex: 0;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n width: 100%;\n}\n\n@media all and (min-width: 600px) {\n .llms-cols .llms-col-1, .llms-flex-cols .llms-col-1 {\n width: 100%;\n }\n .llms-cols .llms-col-2, .llms-flex-cols .llms-col-2 {\n width: 50%;\n }\n .llms-cols .llms-col-3, .llms-flex-cols .llms-col-3 {\n width: 33.3333333333%;\n }\n .llms-cols .llms-col-4, .llms-flex-cols .llms-col-4 {\n width: 25%;\n }\n .llms-cols .llms-col-5, .llms-flex-cols .llms-col-5 {\n width: 20%;\n }\n .llms-cols .llms-col-6, .llms-flex-cols .llms-col-6 {\n width: 16.6666666667%;\n }\n .llms-cols .llms-col-7, .llms-flex-cols .llms-col-7 {\n width: 14.2857142857%;\n }\n .llms-cols .llms-col-8, .llms-flex-cols .llms-col-8 {\n width: 12.5%;\n }\n .llms-cols .llms-col-9, .llms-flex-cols .llms-col-9 {\n width: 11.1111111111%;\n }\n .llms-cols .llms-col-10, .llms-flex-cols .llms-col-10 {\n width: 10%;\n }\n .llms-cols .llms-col-11, .llms-flex-cols .llms-col-11 {\n width: 9.0909090909%;\n }\n .llms-cols .llms-col-12, .llms-flex-cols .llms-col-12 {\n width: 8.3333333333%;\n }\n}\n.llms-button-action,\n.llms-button-danger,\n.llms-button-primary,\n.llms-button-secondary {\n border: none;\n border-radius: 0;\n color: #fefefe;\n cursor: pointer;\n font-size: 16px;\n font-weight: 300;\n text-decoration: none;\n text-shadow: none;\n line-height: 1;\n margin: 0;\n max-width: 100%;\n padding: 12px 24px;\n position: relative;\n -webkit-transition: all 0.5s ease;\n transition: all 0.5s ease;\n}\n.llms-button-action:disabled,\n.llms-button-danger:disabled,\n.llms-button-primary:disabled,\n.llms-button-secondary:disabled {\n opacity: 0.5;\n}\n.llms-button-action:hover, .llms-button-action:active,\n.llms-button-danger:hover,\n.llms-button-danger:active,\n.llms-button-primary:hover,\n.llms-button-primary:active,\n.llms-button-secondary:hover,\n.llms-button-secondary:active {\n color: #fefefe;\n}\n.llms-button-action:focus,\n.llms-button-danger:focus,\n.llms-button-primary:focus,\n.llms-button-secondary:focus {\n color: #fefefe;\n}\n.llms-button-action.auto,\n.llms-button-danger.auto,\n.llms-button-primary.auto,\n.llms-button-secondary.auto {\n width: auto;\n}\n.llms-button-action.full,\n.llms-button-danger.full,\n.llms-button-primary.full,\n.llms-button-secondary.full {\n display: block;\n text-align: center;\n width: 100%;\n}\n.llms-button-action.square,\n.llms-button-danger.square,\n.llms-button-primary.square,\n.llms-button-secondary.square {\n padding: 12px;\n}\n.llms-button-action.small,\n.llms-button-danger.small,\n.llms-button-primary.small,\n.llms-button-secondary.small {\n font-size: 13px;\n padding: 8px 14px;\n}\n.llms-button-action.small.square,\n.llms-button-danger.small.square,\n.llms-button-primary.small.square,\n.llms-button-secondary.small.square {\n padding: 8px;\n}\n.llms-button-action.large,\n.llms-button-danger.large,\n.llms-button-primary.large,\n.llms-button-secondary.large {\n font-size: 18px;\n line-height: 1.2;\n padding: 16px 32px;\n}\n.llms-button-action.large.square,\n.llms-button-danger.large.square,\n.llms-button-primary.large.square,\n.llms-button-secondary.large.square {\n padding: 16px;\n}\n.llms-button-action.large .fa,\n.llms-button-danger.large .fa,\n.llms-button-primary.large .fa,\n.llms-button-secondary.large .fa {\n left: -7px;\n position: relative;\n}\n\n.llms-button-primary {\n background: #2295ff;\n}\n.llms-button-primary:hover, .llms-button-primary.clicked {\n background: #0077e4;\n}\n.llms-button-primary:focus, .llms-button-primary:active {\n background: #4ba9ff;\n}\n\n.llms-button-secondary {\n background: #e1e1e1;\n color: #414141;\n}\n.llms-button-secondary:hover {\n color: #414141;\n background: #cdcdcd;\n}\n.llms-button-secondary:focus, .llms-button-secondary:active {\n color: #414141;\n background: #ebebeb;\n}\n\n.llms-button-action {\n background: #f8954f;\n}\n.llms-button-action:hover, .llms-button-action.clicked {\n background: #f67d28;\n}\n.llms-button-action:focus, .llms-button-action:active {\n background: #faad76;\n}\n\n.llms-button-danger {\n background: #e5554e;\n}\n.llms-button-danger:hover {\n background: #e0332a;\n}\n.llms-button-danger:focus, .llms-button-danger:active {\n background: #e86660;\n}\n\n.llms-donut {\n background-color: #f1f1f1;\n background-image: none;\n border-radius: 50%;\n color: #ef476f;\n height: 200px;\n overflow: hidden;\n position: relative;\n width: 200px;\n}\n.llms-donut:before, .llms-donut:after {\n content: \" \";\n display: table;\n}\n.llms-donut:after {\n clear: both;\n}\n.llms-donut svg {\n overflow: visible !important;\n pointer-events: none;\n width: 100%;\n}\n.llms-donut svg path {\n fill: none;\n stroke-width: 35px;\n stroke: #ef476f;\n}\n.llms-donut.mini {\n height: 36px;\n width: 36px;\n}\n.llms-donut.mini .percentage {\n font-size: 10px;\n}\n.llms-donut.small {\n height: 100px;\n width: 100px;\n}\n.llms-donut.small .percentage {\n font-size: 18px;\n}\n.llms-donut.medium {\n height: 130px;\n width: 130px;\n}\n.llms-donut.medium .percentage {\n font-size: 26px;\n}\n.llms-donut.large {\n height: 260px;\n width: 260px;\n}\n.llms-donut.large .percentage {\n font-size: 48px;\n}\n.llms-donut .inside {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n background: #fff;\n border-radius: 50%;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n height: 80%;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n left: 50%;\n position: absolute;\n text-align: center;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n width: 80%;\n top: 50%;\n z-index: 3;\n}\n.llms-donut .percentage {\n line-height: 1.2;\n font-size: 34px;\n}\n.llms-donut .caption {\n font-size: 50%;\n}\n\n.lifterlms [data-tip],\n.lifterlms [data-title-default],\n.lifterlms [data-title-active],\n.llms-metabox [data-tip],\n.llms-metabox [data-title-default],\n.llms-metabox [data-title-active],\n.llms-mb-container [data-tip],\n.llms-mb-container [data-title-default],\n.llms-mb-container [data-title-active],\n.llms-quiz-wrapper [data-tip],\n.llms-quiz-wrapper [data-title-default],\n.llms-quiz-wrapper [data-title-active] {\n position: relative;\n}\n.lifterlms [data-tip].tip--top-right:before,\n.lifterlms [data-title-default].tip--top-right:before,\n.lifterlms [data-title-active].tip--top-right:before,\n.llms-metabox [data-tip].tip--top-right:before,\n.llms-metabox [data-title-default].tip--top-right:before,\n.llms-metabox [data-title-active].tip--top-right:before,\n.llms-mb-container [data-tip].tip--top-right:before,\n.llms-mb-container [data-title-default].tip--top-right:before,\n.llms-mb-container [data-title-active].tip--top-right:before,\n.llms-quiz-wrapper [data-tip].tip--top-right:before,\n.llms-quiz-wrapper [data-title-default].tip--top-right:before,\n.llms-quiz-wrapper [data-title-active].tip--top-right:before {\n bottom: 100%;\n left: -10px;\n}\n.lifterlms [data-tip].tip--top-right:hover:before,\n.lifterlms [data-title-default].tip--top-right:hover:before,\n.lifterlms [data-title-active].tip--top-right:hover:before,\n.llms-metabox [data-tip].tip--top-right:hover:before,\n.llms-metabox [data-title-default].tip--top-right:hover:before,\n.llms-metabox [data-title-active].tip--top-right:hover:before,\n.llms-mb-container [data-tip].tip--top-right:hover:before,\n.llms-mb-container [data-title-default].tip--top-right:hover:before,\n.llms-mb-container [data-title-active].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before {\n bottom: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--top-right:after,\n.lifterlms [data-title-default].tip--top-right:after,\n.lifterlms [data-title-active].tip--top-right:after,\n.llms-metabox [data-tip].tip--top-right:after,\n.llms-metabox [data-title-default].tip--top-right:after,\n.llms-metabox [data-title-active].tip--top-right:after,\n.llms-mb-container [data-tip].tip--top-right:after,\n.llms-mb-container [data-title-default].tip--top-right:after,\n.llms-mb-container [data-title-active].tip--top-right:after,\n.llms-quiz-wrapper [data-tip].tip--top-right:after,\n.llms-quiz-wrapper [data-title-default].tip--top-right:after,\n.llms-quiz-wrapper [data-title-active].tip--top-right:after {\n border-top-color: #444;\n left: 6px;\n top: 0;\n}\n.lifterlms [data-tip].tip--top-right:hover:after,\n.lifterlms [data-title-default].tip--top-right:hover:after,\n.lifterlms [data-title-active].tip--top-right:hover:after,\n.llms-metabox [data-tip].tip--top-right:hover:after,\n.llms-metabox [data-title-default].tip--top-right:hover:after,\n.llms-metabox [data-title-active].tip--top-right:hover:after,\n.llms-mb-container [data-tip].tip--top-right:hover:after,\n.llms-mb-container [data-title-default].tip--top-right:hover:after,\n.llms-mb-container [data-title-active].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after {\n top: -6px;\n}\n.lifterlms [data-tip].tip--top-left:before,\n.lifterlms [data-title-default].tip--top-left:before,\n.lifterlms [data-title-active].tip--top-left:before,\n.llms-metabox [data-tip].tip--top-left:before,\n.llms-metabox [data-title-default].tip--top-left:before,\n.llms-metabox [data-title-active].tip--top-left:before,\n.llms-mb-container [data-tip].tip--top-left:before,\n.llms-mb-container [data-title-default].tip--top-left:before,\n.llms-mb-container [data-title-active].tip--top-left:before,\n.llms-quiz-wrapper [data-tip].tip--top-left:before,\n.llms-quiz-wrapper [data-title-default].tip--top-left:before,\n.llms-quiz-wrapper [data-title-active].tip--top-left:before {\n bottom: 100%;\n right: -10px;\n}\n.lifterlms [data-tip].tip--top-left:hover:before,\n.lifterlms [data-title-default].tip--top-left:hover:before,\n.lifterlms [data-title-active].tip--top-left:hover:before,\n.llms-metabox [data-tip].tip--top-left:hover:before,\n.llms-metabox [data-title-default].tip--top-left:hover:before,\n.llms-metabox [data-title-active].tip--top-left:hover:before,\n.llms-mb-container [data-tip].tip--top-left:hover:before,\n.llms-mb-container [data-title-default].tip--top-left:hover:before,\n.llms-mb-container [data-title-active].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before {\n bottom: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--top-left:after,\n.lifterlms [data-title-default].tip--top-left:after,\n.lifterlms [data-title-active].tip--top-left:after,\n.llms-metabox [data-tip].tip--top-left:after,\n.llms-metabox [data-title-default].tip--top-left:after,\n.llms-metabox [data-title-active].tip--top-left:after,\n.llms-mb-container [data-tip].tip--top-left:after,\n.llms-mb-container [data-title-default].tip--top-left:after,\n.llms-mb-container [data-title-active].tip--top-left:after,\n.llms-quiz-wrapper [data-tip].tip--top-left:after,\n.llms-quiz-wrapper [data-title-default].tip--top-left:after,\n.llms-quiz-wrapper [data-title-active].tip--top-left:after {\n border-top-color: #444;\n right: 6px;\n top: 0;\n}\n.lifterlms [data-tip].tip--top-left:hover:after,\n.lifterlms [data-title-default].tip--top-left:hover:after,\n.lifterlms [data-title-active].tip--top-left:hover:after,\n.llms-metabox [data-tip].tip--top-left:hover:after,\n.llms-metabox [data-title-default].tip--top-left:hover:after,\n.llms-metabox [data-title-active].tip--top-left:hover:after,\n.llms-mb-container [data-tip].tip--top-left:hover:after,\n.llms-mb-container [data-title-default].tip--top-left:hover:after,\n.llms-mb-container [data-title-active].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after {\n top: -6px;\n}\n.lifterlms [data-tip].tip--bottom-left:before,\n.lifterlms [data-title-default].tip--bottom-left:before,\n.lifterlms [data-title-active].tip--bottom-left:before,\n.llms-metabox [data-tip].tip--bottom-left:before,\n.llms-metabox [data-title-default].tip--bottom-left:before,\n.llms-metabox [data-title-active].tip--bottom-left:before,\n.llms-mb-container [data-tip].tip--bottom-left:before,\n.llms-mb-container [data-title-default].tip--bottom-left:before,\n.llms-mb-container [data-title-active].tip--bottom-left:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:before {\n top: 100%;\n right: -10px;\n}\n.lifterlms [data-tip].tip--bottom-left:hover:before,\n.lifterlms [data-title-default].tip--bottom-left:hover:before,\n.lifterlms [data-title-active].tip--bottom-left:hover:before,\n.llms-metabox [data-tip].tip--bottom-left:hover:before,\n.llms-metabox [data-title-default].tip--bottom-left:hover:before,\n.llms-metabox [data-title-active].tip--bottom-left:hover:before,\n.llms-mb-container [data-tip].tip--bottom-left:hover:before,\n.llms-mb-container [data-title-default].tip--bottom-left:hover:before,\n.llms-mb-container [data-title-active].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before {\n top: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--bottom-left:after,\n.lifterlms [data-title-default].tip--bottom-left:after,\n.lifterlms [data-title-active].tip--bottom-left:after,\n.llms-metabox [data-tip].tip--bottom-left:after,\n.llms-metabox [data-title-default].tip--bottom-left:after,\n.llms-metabox [data-title-active].tip--bottom-left:after,\n.llms-mb-container [data-tip].tip--bottom-left:after,\n.llms-mb-container [data-title-default].tip--bottom-left:after,\n.llms-mb-container [data-title-active].tip--bottom-left:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:after {\n border-bottom-color: #444;\n right: 6px;\n bottom: 0;\n}\n.lifterlms [data-tip].tip--bottom-left:hover:after,\n.lifterlms [data-title-default].tip--bottom-left:hover:after,\n.lifterlms [data-title-active].tip--bottom-left:hover:after,\n.llms-metabox [data-tip].tip--bottom-left:hover:after,\n.llms-metabox [data-title-default].tip--bottom-left:hover:after,\n.llms-metabox [data-title-active].tip--bottom-left:hover:after,\n.llms-mb-container [data-tip].tip--bottom-left:hover:after,\n.llms-mb-container [data-title-default].tip--bottom-left:hover:after,\n.llms-mb-container [data-title-active].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after {\n bottom: -6px;\n}\n.lifterlms [data-tip].tip--bottom-right:before,\n.lifterlms [data-title-default].tip--bottom-right:before,\n.lifterlms [data-title-active].tip--bottom-right:before,\n.llms-metabox [data-tip].tip--bottom-right:before,\n.llms-metabox [data-title-default].tip--bottom-right:before,\n.llms-metabox [data-title-active].tip--bottom-right:before,\n.llms-mb-container [data-tip].tip--bottom-right:before,\n.llms-mb-container [data-title-default].tip--bottom-right:before,\n.llms-mb-container [data-title-active].tip--bottom-right:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:before {\n top: 100%;\n left: -10px;\n}\n.lifterlms [data-tip].tip--bottom-right:hover:before,\n.lifterlms [data-title-default].tip--bottom-right:hover:before,\n.lifterlms [data-title-active].tip--bottom-right:hover:before,\n.llms-metabox [data-tip].tip--bottom-right:hover:before,\n.llms-metabox [data-title-default].tip--bottom-right:hover:before,\n.llms-metabox [data-title-active].tip--bottom-right:hover:before,\n.llms-mb-container [data-tip].tip--bottom-right:hover:before,\n.llms-mb-container [data-title-default].tip--bottom-right:hover:before,\n.llms-mb-container [data-title-active].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before {\n top: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--bottom-right:after,\n.lifterlms [data-title-default].tip--bottom-right:after,\n.lifterlms [data-title-active].tip--bottom-right:after,\n.llms-metabox [data-tip].tip--bottom-right:after,\n.llms-metabox [data-title-default].tip--bottom-right:after,\n.llms-metabox [data-title-active].tip--bottom-right:after,\n.llms-mb-container [data-tip].tip--bottom-right:after,\n.llms-mb-container [data-title-default].tip--bottom-right:after,\n.llms-mb-container [data-title-active].tip--bottom-right:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:after {\n border-bottom-color: #444;\n left: 6px;\n bottom: 0;\n}\n.lifterlms [data-tip].tip--bottom-right:hover:after,\n.lifterlms [data-title-default].tip--bottom-right:hover:after,\n.lifterlms [data-title-active].tip--bottom-right:hover:after,\n.llms-metabox [data-tip].tip--bottom-right:hover:after,\n.llms-metabox [data-title-default].tip--bottom-right:hover:after,\n.llms-metabox [data-title-active].tip--bottom-right:hover:after,\n.llms-mb-container [data-tip].tip--bottom-right:hover:after,\n.llms-mb-container [data-title-default].tip--bottom-right:hover:after,\n.llms-mb-container [data-title-active].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after {\n bottom: -6px;\n}\n.lifterlms [data-tip]:before,\n.lifterlms [data-title-default]:before,\n.lifterlms [data-title-active]:before,\n.llms-metabox [data-tip]:before,\n.llms-metabox [data-title-default]:before,\n.llms-metabox [data-title-active]:before,\n.llms-mb-container [data-tip]:before,\n.llms-mb-container [data-title-default]:before,\n.llms-mb-container [data-title-active]:before,\n.llms-quiz-wrapper [data-tip]:before,\n.llms-quiz-wrapper [data-title-default]:before,\n.llms-quiz-wrapper [data-title-active]:before {\n background: #444;\n border-radius: 4px;\n color: #fff;\n font-size: 13px;\n line-height: 1.2;\n padding: 8px;\n max-width: 300px;\n width: -webkit-max-content;\n width: -moz-max-content;\n width: max-content;\n}\n.lifterlms [data-tip]:after,\n.lifterlms [data-title-default]:after,\n.lifterlms [data-title-active]:after,\n.llms-metabox [data-tip]:after,\n.llms-metabox [data-title-default]:after,\n.llms-metabox [data-title-active]:after,\n.llms-mb-container [data-tip]:after,\n.llms-mb-container [data-title-default]:after,\n.llms-mb-container [data-title-active]:after,\n.llms-quiz-wrapper [data-tip]:after,\n.llms-quiz-wrapper [data-title-default]:after,\n.llms-quiz-wrapper [data-title-active]:after {\n content: \"\";\n border: 6px solid transparent;\n height: 0;\n width: 0;\n}\n.lifterlms [data-tip]:before, .lifterlms [data-tip]:after,\n.lifterlms [data-title-default]:before,\n.lifterlms [data-title-default]:after,\n.lifterlms [data-title-active]:before,\n.lifterlms [data-title-active]:after,\n.llms-metabox [data-tip]:before,\n.llms-metabox [data-tip]:after,\n.llms-metabox [data-title-default]:before,\n.llms-metabox [data-title-default]:after,\n.llms-metabox [data-title-active]:before,\n.llms-metabox [data-title-active]:after,\n.llms-mb-container [data-tip]:before,\n.llms-mb-container [data-tip]:after,\n.llms-mb-container [data-title-default]:before,\n.llms-mb-container [data-title-default]:after,\n.llms-mb-container [data-title-active]:before,\n.llms-mb-container [data-title-active]:after,\n.llms-quiz-wrapper [data-tip]:before,\n.llms-quiz-wrapper [data-tip]:after,\n.llms-quiz-wrapper [data-title-default]:before,\n.llms-quiz-wrapper [data-title-default]:after,\n.llms-quiz-wrapper [data-title-active]:before,\n.llms-quiz-wrapper [data-title-active]:after {\n opacity: 0;\n -webkit-transition: all 0.2s 0.1s ease;\n transition: all 0.2s 0.1s ease;\n position: absolute;\n pointer-events: none;\n visibility: hidden;\n}\n.lifterlms [data-tip]:hover:before, .lifterlms [data-tip]:hover:after,\n.lifterlms [data-title-default]:hover:before,\n.lifterlms [data-title-default]:hover:after,\n.lifterlms [data-title-active]:hover:before,\n.lifterlms [data-title-active]:hover:after,\n.llms-metabox [data-tip]:hover:before,\n.llms-metabox [data-tip]:hover:after,\n.llms-metabox [data-title-default]:hover:before,\n.llms-metabox [data-title-default]:hover:after,\n.llms-metabox [data-title-active]:hover:before,\n.llms-metabox [data-title-active]:hover:after,\n.llms-mb-container [data-tip]:hover:before,\n.llms-mb-container [data-tip]:hover:after,\n.llms-mb-container [data-title-default]:hover:before,\n.llms-mb-container [data-title-default]:hover:after,\n.llms-mb-container [data-title-active]:hover:before,\n.llms-mb-container [data-title-active]:hover:after,\n.llms-quiz-wrapper [data-tip]:hover:before,\n.llms-quiz-wrapper [data-tip]:hover:after,\n.llms-quiz-wrapper [data-title-default]:hover:before,\n.llms-quiz-wrapper [data-title-default]:hover:after,\n.llms-quiz-wrapper [data-title-active]:hover:before,\n.llms-quiz-wrapper [data-title-active]:hover:after {\n opacity: 1;\n -webkit-transition: all 0.2s 0.6s ease;\n transition: all 0.2s 0.6s ease;\n visibility: visible;\n z-index: 99999999;\n}\n.lifterlms [data-tip]:before,\n.llms-metabox [data-tip]:before,\n.llms-mb-container [data-tip]:before,\n.llms-quiz-wrapper [data-tip]:before {\n content: attr(data-tip);\n}\n.lifterlms [data-tip].active:before,\n.llms-metabox [data-tip].active:before,\n.llms-mb-container [data-tip].active:before,\n.llms-quiz-wrapper [data-tip].active:before {\n content: attr(data-tip-active);\n}\n\n.llms-membership-image {\n display: block;\n margin: 0 auto;\n}\n\n.llms-course-image {\n display: block;\n margin: 0 auto;\n max-width: 100%;\n}\n\n.llms-featured-image {\n display: block;\n margin: 0 auto;\n}\n\n.llms-image-thumb {\n width: 150px;\n}\n\n.llms-video-wrapper .center-video {\n height: auto;\n max-width: 100%;\n overflow: hidden;\n position: relative;\n padding-top: 56.25%;\n text-align: center;\n}\n.llms-video-wrapper .center-video > .wp-video,\n.llms-video-wrapper .center-video .fluid-width-video-wrapper,\n.llms-video-wrapper .center-video iframe, .llms-video-wrapper .center-video object, .llms-video-wrapper .center-video embed {\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.llms-video-wrapper .center-video > .wp-video {\n width: 100% !important;\n}\n.llms-video-wrapper .center-video .fluid-width-video-wrapper {\n padding-top: 0 !important;\n}\n\n.clear {\n clear: both;\n width: 100%;\n}\n\n.llms-featured-image {\n text-align: center;\n}\n\n/* Genesis Overrides */\nh1, h2, h3, h4, h5, h6 {\n font-weight: 300;\n}\n\n#main-content .llms-payment-options p {\n margin: 0;\n font-size: 16px;\n}\n\n.llms-option {\n display: block;\n position: relative;\n margin: 20px 0;\n padding-left: 40px;\n font-size: 16px;\n}\n.llms-option label {\n cursor: pointer;\n position: static;\n}\n\n.llms-option:first-child {\n margin-top: 0;\n}\n\n.llms-option:last-child {\n margin-bottom: 0;\n}\n\n#main-content .llms-option:last-child {\n margin-bottom: 0;\n}\n\n.llms-option input[type=radio] {\n display: block;\n position: absolute;\n top: 3px;\n left: 0;\n z-index: 0;\n}\n\n.llms-option input[type=radio] {\n display: inline-block;\n}\n\n.llms-option input[type=radio] + label span.llms-radio {\n display: none;\n}\n\n.llms-option input[type=radio] + label span.llms-radio {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n z-index: 20;\n position: absolute;\n top: 0;\n left: -2px;\n display: inline-block;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n cursor: pointer;\n vertical-align: middle;\n -webkit-box-shadow: rgba(255, 255, 255, 0.15) 0 1px 1px, inset rgba(0, 0, 0, 0.5) 0 0 0 1px;\n box-shadow: rgba(255, 255, 255, 0.15) 0 1px 1px, inset rgba(0, 0, 0, 0.5) 0 0 0 1px;\n background: #efefef;\n background-image: radial-gradient(ellipse at center, #e5554e 0%, #e5554e 40%, #efefef 45%);\n background-repeat: no-repeat;\n -webkit-transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n}\n\n.llms-option input[type=radio]:checked + label span.llms-radio {\n -webkit-transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n}\n\n.llms-option input[type=radio] + label span.llms-radio {\n background-position: -24px 0;\n}\n\n.llms-option input[type=radio]:checked + label span.llms-radio {\n background-position: 0 0;\n}\n\n.llms-option input[type=submit] {\n border: none;\n background: #e5554e;\n color: #fff;\n font-size: 20px;\n padding: 10px 0;\n border-radius: 3px;\n cursor: pointer;\n width: 100%;\n}\n\n.llms-styled-text {\n padding: 14px 0;\n}\n\n.llms-notice-box {\n border-radius: 3px;\n z-index: 10;\n margin: 10px 0;\n padding: 15px 20px;\n border: 1px solid #ccc;\n list-style-type: none;\n width: 100%;\n overflow: auto;\n}\n.llms-notice-box input[type=text] {\n height: auto;\n}\n.llms-notice-box .col-1-1 {\n width: 100%;\n}\n.llms-notice-box .col-1-1 input[type=text] {\n width: 100%;\n}\n.llms-notice-box .col-1-2 {\n width: 50%;\n float: left;\n}\n@media screen and (max-width: 768px) {\n .llms-notice-box .col-1-2 {\n width: 100%;\n }\n}\n.llms-notice-box .col-1-3 {\n width: 33%;\n float: left;\n margin-right: 10px;\n}\n.llms-notice-box .col-1-4 {\n width: 25%;\n float: left;\n margin-right: 10px;\n}\n@media screen and (max-width: 768px) {\n .llms-notice-box .col-1-4 {\n width: 100%;\n }\n}\n.llms-notice-box .col-1-6 {\n width: 16.6%;\n float: left;\n margin-right: 10px;\n}\n.llms-notice-box .col-1-8 {\n width: 11%;\n float: right;\n}\n.llms-notice-box .llms-pad-right {\n padding-right: 10px;\n}\n@media screen and (max-width: 768px) {\n .llms-notice-box .llms-pad-right {\n padding-right: 0;\n }\n}\n\ninput[type=text].cc_cvv,\n#cc_cvv {\n margin-right: 0;\n width: 23%;\n float: right;\n}\n\n.llms-clear-box {\n border-radius: 3px;\n z-index: 10;\n margin: 10px 0;\n padding: 15px 20px;\n list-style-type: none;\n width: 100%;\n overflow: auto;\n}\n\n.llms-price-label {\n font-weight: normal;\n}\n\n.llms-final-price {\n font-weight: bold;\n float: right;\n}\n\n.llms-center-content {\n text-align: center;\n}\n\n.llms-input-text {\n background-color: #fff;\n border: 1px solid #ddd;\n color: #333;\n font-size: 18px;\n font-weight: 300;\n padding: 16px;\n width: 100%;\n}\n\n.llms-price {\n margin-bottom: 0;\n font-weight: bold;\n}\n\n.llms-price-loop {\n margin-bottom: 0;\n font-weight: bold;\n}\n\n.courses .entry {\n padding: 0;\n}\n\n.list-view .site-content .llms-course-list .hentry, .list-view .site-content .llms-membership-list .hentry {\n border-top: 0;\n padding-top: 0;\n}\n\n.llms-content {\n width: 100%;\n}\n\n.llms-lesson-button-wrapper {\n width: 100%;\n display: block;\n clear: both;\n text-align: center;\n}\n\n.llms-template-wrapper {\n width: 100%;\n display: block;\n clear: both;\n}\n\n.llms-button-wrapper {\n width: 100%;\n display: block;\n clear: both;\n text-align: center;\n}\n\n.llms-styled-select {\n border: 1px solid #ccc;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n border-radius: 3px;\n overflow: hidden;\n position: relative;\n}\n\n.llms-styled-select, .llms-styled-select select {\n width: 100%;\n}\n\nselect:focus {\n outline: none;\n}\n\n.llms-styled-select select {\n height: 34px;\n padding: 5px 0 5px 5px;\n background: transparent;\n border: none;\n -webkit-appearance: none;\n font-size: 16px;\n color: #444444;\n}\n\n@-moz-document url-prefix() {\n .--ms-styled-select select {\n width: 110%;\n }\n}\n.llms-styled-select .fa-sort-desc {\n position: absolute;\n top: 0;\n right: 12px;\n font-size: 24px;\n color: #ccc;\n}\n\nselect::-ms-expand {\n display: none;\n}\n\n_:-o-prefocus .llms-styled-select, .selector .llms-styled-select {\n background: none;\n}\n\n.llms-form-item-wrapper {\n margin-bottom: 1em;\n}\n\n/* Circle Graph */\n.llms-progress-circle {\n position: relative;\n width: 200px;\n height: 200px;\n float: left;\n}\n\n.llms-progress-circle-count {\n top: 27%;\n position: absolute;\n width: 94%;\n text-align: center;\n color: #666;\n font-size: 44px;\n}\n\n.llms-progress-circle svg {\n position: absolute;\n width: 200px;\n height: 200px;\n}\n\n.llms-progress-circle circle {\n fill: transparent;\n}\n\nsvg .llms-background-circle {\n fill: transparent;\n stroke-width: 10px;\n stroke: #f1f2f1;\n stroke-dasharray: 430;\n}\n\nsvg .llms-animated-circle {\n fill: transparent;\n stroke-width: 10px;\n stroke: #e5554e;\n stroke-dasharray: 430;\n stroke-dashoffset: 410;\n}\n\n.llms-widget-syllabus .llms-lesson.current-lesson .lesson-title {\n font-weight: 700;\n}\n.llms-widget-syllabus .llms-lesson-complete, .llms-widget-syllabus .lesson-complete-placeholder {\n font-size: 1.2em;\n margin-right: 6px;\n color: #ccc;\n}\n.llms-widget-syllabus .llms-lesson-complete.done, .llms-widget-syllabus .lesson-complete-placeholder.done {\n color: #e5554e;\n}\n.llms-widget-syllabus .section-title {\n font-weight: bold;\n}\n.llms-widget-syllabus .lesson-title a {\n text-decoration: none;\n}\n.llms-widget-syllabus .lesson-title a:hover {\n text-decoration: none !important;\n}\n.llms-widget-syllabus .lesson-title.done a {\n color: #999;\n text-decoration: line-through;\n}\n.llms-widget-syllabus ul {\n list-style-type: none;\n}\n.llms-widget-syllabus ul li {\n list-style-type: none;\n}\n.llms-widget-syllabus ul li ul li {\n margin: 0 0 2px 0;\n padding: 0;\n}\n\n.llms-remove-coupon {\n float: right;\n}\n\n.llms-lesson-link-locked, .llms-lesson-link-locked:hover {\n background: #f1f1f1;\n -webkit-box-shadow: 0 1px 2px 0 rgba(1, 1, 1, 0.4);\n box-shadow: 0 1px 2px 0 rgba(1, 1, 1, 0.4);\n display: block;\n color: #a6a6a6;\n min-height: 85px;\n padding: 15px;\n text-decoration: none;\n position: relative;\n}\n\n.llms-lesson-preview.is-complete .llms-lesson-link-locked {\n padding-left: 75px;\n}\n\n.llms-lesson-tooltip {\n display: none;\n position: absolute;\n color: #000000;\n background-color: #c0c0c0;\n padding: 0.25em;\n border-radius: 2px;\n z-index: 100;\n top: 0;\n left: 50%;\n text-align: center;\n -webkit-transform: translateX(-50%) translateY(-100%);\n transform: translateX(-50%) translateY(-100%);\n}\n\n/* arrows - :after */\n.llms-lesson-tooltip:after {\n content: \"\";\n width: 0;\n height: 0;\n border-top: 8px solid #c0c0c0;\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n position: absolute;\n bottom: -8px;\n left: 50%;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%);\n}\n\n.llms-lesson-tooltip.active {\n display: inline-block;\n}\n\n.llms-loop-list {\n list-style: none;\n margin: 0 -10px;\n padding: 0;\n}\n@media all and (min-width: 600px) {\n .llms-loop-list.cols-1 .llms-loop-item {\n width: 100%;\n }\n .llms-loop-list.cols-2 .llms-loop-item {\n width: 50%;\n }\n .llms-loop-list.cols-3 .llms-loop-item {\n width: 33.3333333333%;\n }\n .llms-loop-list.cols-4 .llms-loop-item {\n width: 25%;\n }\n .llms-loop-list.cols-5 .llms-loop-item {\n width: 20%;\n }\n .llms-loop-list.cols-6 .llms-loop-item {\n width: 16.6666666667%;\n }\n}\n\n.llms-loop-item {\n float: left;\n list-style: none;\n margin: 0;\n padding: 0;\n width: 100%;\n}\n\n.llms-loop-item-content {\n background: #f1f1f1;\n padding-bottom: 10px;\n margin: 10px;\n}\n.llms-loop-item-content:hover {\n background: #eaeaea;\n}\n.llms-loop-item-content .llms-loop-link {\n color: #212121;\n display: block;\n}\n.llms-loop-item-content .llms-loop-link:visited {\n color: #212121;\n}\n.llms-loop-item-content .llms-featured-image {\n display: block;\n max-width: 100%;\n}\n.llms-loop-item-content .llms-loop-title {\n margin-top: 5px;\n}\n.llms-loop-item-content .llms-loop-title:hover {\n color: #2295ff;\n}\n.llms-loop-item-content .llms-meta,\n.llms-loop-item-content .llms-author,\n.llms-loop-item-content .llms-loop-title {\n padding: 0 10px;\n}\n.llms-loop-item-content .llms-meta,\n.llms-loop-item-content .llms-author {\n color: #444;\n display: block;\n font-size: 13px;\n margin-bottom: 3px;\n}\n.llms-loop-item-content .llms-meta:last-child,\n.llms-loop-item-content .llms-author:last-child {\n margin-bottom: 0;\n}\n.llms-loop-item-content .llms-featured-img-wrap {\n overflow: hidden;\n}\n.llms-loop-item-content p {\n margin-bottom: 0;\n}\n.llms-loop-item-content .llms-progress {\n margin: 0;\n height: 0.4em;\n}\n.llms-loop-item-content .llms-progress .progress__indicator {\n display: none;\n}\n.llms-loop-item-content .llms-progress .llms-progress-bar {\n background-color: #f6f6f6;\n right: 0;\n top: 0;\n}\n\n.course .llms-meta-info {\n margin: 20px 0;\n}\n.course .llms-meta-info .llms-meta-title {\n margin-bottom: 5px;\n}\n.course .llms-meta-info .llms-meta p {\n margin-bottom: 0;\n}\n.course .llms-meta-info .llms-meta span {\n font-weight: 700;\n}\n.course .llms-course-progress {\n margin: 40px auto;\n max-width: 480px;\n text-align: center;\n}\n\n.llms-syllabus-wrapper {\n margin: 15px;\n text-align: center;\n}\n.llms-syllabus-wrapper .llms-section-title {\n margin: 25px 0 0;\n}\n\n.llms-course-navigation .llms-prev-lesson,\n.llms-course-navigation .llms-next-lesson,\n.llms-course-navigation .llms-back-to-course {\n width: 49%;\n}\n.llms-course-navigation .llms-prev-lesson,\n.llms-course-navigation .llms-back-to-course {\n float: left;\n margin-right: 0.5%;\n}\n.llms-course-navigation .llms-next-lesson,\n.llms-course-navigation .llms-prev-lesson + .llms-back-to-course {\n float: right;\n margin-left: 0.5%;\n}\n\n.llms-lesson-preview {\n display: inline-block;\n margin-top: 15px;\n max-width: 100%;\n position: relative;\n width: 480px;\n}\n.llms-lesson-preview .llms-lesson-link {\n background: #f1f1f1;\n color: #212121;\n display: block;\n padding: 15px;\n text-decoration: none;\n}\n.llms-lesson-preview .llms-lesson-link:before, .llms-lesson-preview .llms-lesson-link:after {\n content: \" \";\n display: table;\n}\n.llms-lesson-preview .llms-lesson-link:after {\n clear: both;\n}\n.llms-lesson-preview .llms-lesson-link:hover {\n background: #eaeaea;\n}\n.llms-lesson-preview .llms-lesson-link:visited {\n color: #212121;\n}\n.llms-lesson-preview .llms-lesson-thumbnail {\n margin-bottom: 10px;\n}\n.llms-lesson-preview .llms-lesson-thumbnail img {\n display: block;\n width: 100%;\n}\n.llms-lesson-preview .llms-pre-text {\n text-align: left;\n}\n.llms-lesson-preview .llms-lesson-title {\n font-weight: 700;\n margin: 0 auto 10px;\n text-align: left;\n}\n.llms-lesson-preview .llms-lesson-title:last-child {\n margin-bottom: 0;\n}\n.llms-lesson-preview .llms-lesson-excerpt {\n text-align: left;\n}\n.llms-lesson-preview .llms-main {\n float: left;\n width: 100%;\n}\n.llms-lesson-preview .llms-extra {\n float: right;\n width: 15%;\n}\n.llms-lesson-preview .llms-extra + .llms-main {\n width: 85%;\n}\n.llms-lesson-preview .llms-lesson-counter,\n.llms-lesson-preview .llms-free-lesson-svg,\n.llms-lesson-preview .llms-lesson-complete,\n.llms-lesson-preview .llms-lesson-complete-placeholder {\n display: block;\n font-size: 32px;\n margin-bottom: 15px;\n}\n.llms-lesson-preview.is-free .llms-lesson-complete, .llms-lesson-preview.is-complete .llms-lesson-complete {\n color: #2295ff;\n}\n.llms-lesson-preview .llms-icon-free {\n background: #2295ff;\n border-radius: 4px;\n color: #f1f1f1;\n display: inline-block;\n padding: 5px 6px 4px;\n line-height: 1;\n font-size: 14px;\n}\n.llms-lesson-preview.is-incomplete .llms-lesson-complete {\n color: #cacaca;\n}\n.llms-lesson-preview .llms-lesson-counter {\n font-size: 16px;\n line-height: 1;\n}\n.llms-lesson-preview .llms-free-lesson-svg {\n fill: currentColor;\n height: 23px;\n width: 50px;\n}\n.llms-lesson-preview p {\n margin-bottom: 0;\n}\n\n/* progress bar */\n.llms-progress {\n clear: both;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: reverse;\n -ms-flex-direction: row-reverse;\n flex-direction: row-reverse;\n position: relative;\n height: 1em;\n width: 100%;\n margin: 15px 0;\n}\n\n.llms-progress .llms-progress-bar {\n background-color: #f1f2f1;\n position: relative;\n height: 0.4em;\n top: 0.3em;\n width: 100%;\n}\n\n.llms-progress .progress-bar-complete {\n background-color: #ef476f;\n height: 100%;\n}\n\n.progress__indicator {\n float: right;\n text-align: right;\n height: 1em;\n line-height: 1em;\n margin-left: 5px;\n white-space: nowrap;\n}\n\n.llms-author .name {\n margin-left: 5px;\n}\n.llms-author .label {\n margin-left: 5px;\n}\n.llms-author .avatar {\n border-radius: 50%;\n}\n.llms-author .bio {\n margin-top: 5px;\n}\n\n.llms-instructor-info .llms-instructors .llms-col:first-child .llms-author {\n margin-left: 0;\n}\n.llms-instructor-info .llms-instructors .llms-col:last-child .llms-author {\n margin-right: 0;\n}\n.llms-instructor-info .llms-instructors .llms-author {\n background: #f5f5f5;\n border-top: 4px solid #2295ff;\n text-align: center;\n margin: 45px 5px 5px;\n padding: 0 10px 10px;\n}\n.llms-instructor-info .llms-instructors .llms-author .avatar {\n background: #2295ff;\n border: 4px solid #2295ff;\n display: block;\n margin: -35px auto 10px;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info {\n display: block;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info.name {\n font-weight: 700;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info.label {\n font-size: 85%;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info.bio {\n font-size: 90%;\n margin-bottom: 0;\n}\n\n.llms-notice {\n background: rgba(34, 149, 255, 0.3);\n border-color: #2295ff;\n border-style: solid;\n border-width: 3px;\n padding: 10px;\n margin-bottom: 10px;\n}\n.llms-notice p:last-child, .llms-notice ul:last-child {\n margin-bottom: 0;\n}\n.llms-notice li {\n list-style-type: none;\n}\n.llms-notice.llms-debug {\n background: rgba(202, 202, 202, 0.3);\n border-color: #cacaca;\n}\n.llms-notice.llms-error {\n background: rgba(229, 85, 78, 0.3);\n border-color: #e5554e;\n}\n.llms-notice.llms-success {\n background: rgba(131, 195, 115, 0.3);\n border-color: #83c373;\n}\n\n.entry-content .llms-notice {\n margin: 0 0 10px;\n}\n.entry-content .llms-notice li {\n list-style-type: none;\n}\n\nul.llms-achievements-loop,\n.lifterlms ul.llms-achievements-loop,\nul.llms-certificates-loop,\n.lifterlms ul.llms-certificates-loop {\n list-style-type: none;\n margin: 0 -10px;\n padding: 0;\n}\nul.llms-achievements-loop:before, ul.llms-achievements-loop:after,\n.lifterlms ul.llms-achievements-loop:before,\n.lifterlms ul.llms-achievements-loop:after,\nul.llms-certificates-loop:before,\nul.llms-certificates-loop:after,\n.lifterlms ul.llms-certificates-loop:before,\n.lifterlms ul.llms-certificates-loop:after {\n content: \" \";\n display: table;\n}\nul.llms-achievements-loop:after,\n.lifterlms ul.llms-achievements-loop:after,\nul.llms-certificates-loop:after,\n.lifterlms ul.llms-certificates-loop:after {\n clear: both;\n}\nul.llms-achievements-loop li.llms-achievement-loop-item,\nul.llms-achievements-loop li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop li.llms-certificate-loop-item,\nul.llms-certificates-loop li.llms-achievement-loop-item,\nul.llms-certificates-loop li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop li.llms-certificate-loop-item {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n display: block;\n float: left;\n list-style-type: none;\n margin: 0;\n padding: 10px;\n width: 100%;\n}\n@media all and (min-width: 600px) {\n ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item {\n width: 100%;\n }\n ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item {\n width: 50%;\n }\n ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item {\n width: 33.3333333333%;\n }\n ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item {\n width: 25%;\n }\n ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item {\n width: 20%;\n }\n}\n\n.llms-achievement,\n.llms-certificate {\n background: #f1f1f1;\n border: none;\n color: inherit;\n display: block;\n text-decoration: none;\n width: 100%;\n}\n.llms-achievement:hover,\n.llms-certificate:hover {\n background: #eaeaea;\n}\n.llms-achievement .llms-achievement-img,\n.llms-certificate .llms-achievement-img {\n display: block;\n margin: 0;\n width: 100%;\n}\n.llms-achievement .llms-achievement-title,\n.llms-certificate .llms-achievement-title {\n font-size: 16px;\n margin: 0;\n padding: 10px;\n text-align: center;\n}\n.llms-achievement .llms-certificate-title,\n.llms-certificate .llms-certificate-title {\n font-size: 16px;\n margin: 0;\n padding: 0 0 10px;\n}\n.llms-achievement .llms-achievement-info,\n.llms-achievement .llms-achievement-date,\n.llms-certificate .llms-achievement-info,\n.llms-certificate .llms-achievement-date {\n display: none;\n}\n.llms-achievement .llms-achievement-content,\n.llms-certificate .llms-achievement-content {\n padding: 20px;\n}\n.llms-achievement .llms-achievement-content:empty,\n.llms-certificate .llms-achievement-content:empty {\n padding: 0;\n}\n.llms-achievement .llms-achievement-content *:last-child,\n.llms-certificate .llms-achievement-content *:last-child {\n margin-bottom: 0;\n}\n\n.llms-certificate {\n border: 4px double #f1f1f1;\n padding: 20px 10px;\n background: #fff;\n text-align: center;\n}\n.llms-certificate:hover {\n background: #fff;\n border-color: #eaeaea;\n}\n\n.llms-achievement-modal .llms-achievement {\n background: #fff;\n}\n.llms-achievement-modal .llms-achievement-info {\n display: block;\n}\n.llms-achievement-modal .llms-achievement-title {\n display: none;\n}\n\n.llms-notification {\n background: #fff;\n -webkit-box-shadow: 0 1px 2px -2px #333, 0 1px 1px -1px #333;\n box-shadow: 0 1px 2px -2px #333, 0 1px 1px -1px #333;\n border-top: 4px solid #2295ff;\n left: 12px;\n opacity: 0;\n padding: 12px;\n position: fixed;\n right: 12px;\n top: 24px;\n -webkit-transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out;\n transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out;\n visibility: none;\n width: auto;\n z-index: 9999999;\n}\n.llms-notification:before, .llms-notification:after {\n content: \" \";\n display: table;\n}\n.llms-notification:after {\n clear: both;\n}\n.llms-notification.visible {\n opacity: 1;\n -webkit-transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;\n transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;\n transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, transform 0.2s ease-in-out;\n transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;\n visibility: visible;\n}\n.llms-notification.visible:hover .llms-notification-dismiss {\n opacity: 1;\n}\n.llms-notification .llms-notification-content {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.llms-notification .llms-notification-main {\n -ms-flex-item-align: start;\n align-self: flex-start;\n -webkit-box-flex: 4;\n -ms-flex: 4;\n flex: 4;\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n}\n.llms-notification .llms-notification-title {\n font-size: 18px;\n margin: 0;\n}\n.llms-notification .llms-notification-body {\n font-size: 14px;\n line-height: 1.4;\n}\n.llms-notification .llms-notification-body p, .llms-notification .llms-notification-body li {\n font-size: inherit;\n}\n.llms-notification .llms-notification-body p {\n margin-bottom: 8px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert {\n background: #f6f6f6;\n border: 1px solid #d0d0d0;\n -webkit-box-shadow: inset 0 0 0 3px #fefefe, inset 0 0 0 4px #dedede;\n box-shadow: inset 0 0 0 3px #fefefe, inset 0 0 0 4px #dedede;\n padding: 16px 16px 24px;\n margin-top: 12px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert-title {\n font-size: 16px;\n font-weight: 700;\n margin: 12px auto;\n text-align: center;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body {\n width: 100%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(1) {\n width: 65%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(2) {\n width: 35%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(3) {\n width: 85%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(4) {\n width: 75%;\n margin-top: 18px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(5) {\n width: 70%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(6) {\n margin-left: 12px;\n margin-bottom: -24px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(7) {\n width: 65%;\n margin-right: 12px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-line {\n border-radius: 2px;\n height: 8px;\n background: #b0b0b0;\n background-image: -webkit-gradient(linear, left top, right top, from(#b0b0b0), color-stop(20%, #a0a0a0), color-stop(40%, #b0b0b0), to(#b0b0b0));\n background-image: linear-gradient(to right, #b0b0b0 0%, #a0a0a0 20%, #b0b0b0 40%, #b0b0b0 100%);\n background-repeat: no-repeat;\n margin: 4px auto;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-dot {\n background: #b0b0b0;\n border-radius: 50%;\n display: inline-block;\n content: \"\";\n height: 24px;\n width: 24px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert p {\n margin-bottom: 0;\n}\n.llms-notification .llms-notification-aside {\n -ms-flex-item-align: start;\n align-self: flex-start;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n margin-right: 12px;\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n}\n.llms-notification .llms-notification-icon {\n display: block;\n max-width: 64px;\n}\n.llms-notification .llms-notification-footer {\n border-top: 1px solid #e5e5e5;\n font-size: 12px;\n margin-top: 12px;\n padding: 6px 6px 0;\n text-align: right;\n}\n.llms-notification .llms-notification-dismiss {\n color: #e5554e;\n cursor: pointer;\n font-size: 22px;\n position: absolute;\n right: 10px;\n top: 8px;\n -webkit-transition: opacity 0.4s ease-in-out;\n transition: opacity 0.4s ease-in-out;\n}\n\n.llms-sd-notification-center .llms-notification-list,\n.llms-sd-notification-center .llms-notification-list-item {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-sd-notification-center .llms-notification-list-item:hover .llms-notification {\n background: #fcfcfc;\n}\n.llms-sd-notification-center .llms-notification {\n opacity: 1;\n border-top: 1px solid #e5e5e5;\n left: auto;\n padding: 24px;\n position: relative;\n right: auto;\n top: auto;\n visibility: visible;\n width: auto;\n}\n.llms-sd-notification-center .llms-notification .llms-notification-aside {\n max-width: 64px;\n}\n.llms-sd-notification-center .llms-notification .llms-notification-footer {\n border: none;\n padding: 0;\n text-align: left;\n}\n.llms-sd-notification-center .llms-notification .llms-progress {\n display: none !important;\n}\n.llms-sd-notification-center .llms-notification .llms-notification-date {\n color: #515151;\n float: left;\n margin-right: 6px;\n}\n.llms-sd-notification-center .llms-notification .llms-mini-cert {\n margin: 0 auto;\n max-width: 380px;\n}\n\n@media all and (min-width: 480px) {\n .llms-notification {\n left: auto;\n right: -800px;\n width: 360px;\n }\n .llms-notification.visible {\n right: 24px;\n }\n .llms-notification .llms-notification-dismiss {\n opacity: 0;\n }\n}\n.llms-pagination ul {\n list-style-type: none;\n}\n.llms-pagination ul li {\n float: left;\n}\n.llms-pagination ul li a {\n border-bottom: 0;\n text-decoration: none;\n}\n.llms-pagination ul li .page-numbers {\n padding: 0.5em;\n text-decoration: underline;\n}\n.llms-pagination ul li .page-numbers.current {\n text-decoration: none;\n}\n\n.llms-tooltip {\n background: #2a2a2a;\n border-radius: 4px;\n color: #fff;\n font-size: 14px;\n line-height: 1.2;\n opacity: 0;\n top: -20px;\n padding: 8px 12px;\n left: 50%;\n position: absolute;\n pointer-events: none;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%);\n -webkit-transition: opacity 0.2s ease, top 0.2s ease;\n transition: opacity 0.2s ease, top 0.2s ease;\n max-width: 320px;\n}\n.llms-tooltip.show {\n top: -28px;\n opacity: 1;\n}\n.llms-tooltip:after {\n bottom: -8px;\n border-top: 8px solid #2a2a2a;\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n content: \"\";\n height: 0;\n left: 50%;\n position: absolute;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%);\n width: 0;\n}\n\n.webui-popover-title {\n font-size: initial;\n font-weight: initial;\n line-height: initial;\n}\n\n.webui-popover-inverse .webui-popover-inner .close {\n color: #fff;\n opacity: 0.6;\n text-shadow: none;\n}\n.webui-popover-inverse .webui-popover-inner .close:hover {\n opacity: 0.8;\n}\n.webui-popover-inverse .webui-popover-content a {\n color: #fff;\n text-decoration: underline;\n}\n.webui-popover-inverse .webui-popover-content a:hover {\n text-decoration: none;\n}\n\n.single-llms_quiz .llms-quiz-attempt-results {\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question {\n background: #efefef;\n margin: 0 0 10px;\n position: relative;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer {\n color: inherit;\n display: block;\n padding: 10px 35px 10px 10px;\n text-decoration: none;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:before, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:after {\n content: \" \";\n display: table;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:after {\n clear: both;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect {\n background: rgba(255, 146, 43, 0.2);\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon {\n background-color: #ff922b;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct {\n background: rgba(131, 195, 115, 0.2);\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon {\n background-color: #83c373;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect {\n background: rgba(229, 85, 78, 0.2);\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon {\n background-color: #e5554e;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title {\n float: left;\n margin: 0;\n line-height: 1;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points {\n float: right;\n line-height: 1;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip {\n position: absolute;\n right: -12px;\n top: -2px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon {\n color: rgba(255, 255, 255, 0.65);\n border-radius: 50%;\n font-size: 30px;\n height: 40px;\n line-height: 40px;\n text-align: center;\n width: 40px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main {\n display: none;\n padding: 0 10px 10px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label {\n font-weight: 700;\n margin-bottom: 10px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers {\n margin: 0;\n padding: 0;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {\n padding: 0;\n margin: 0 0 0 30px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child {\n list-style-type: none;\n margin-left: 0;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img {\n height: auto;\n max-width: 200px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section {\n border-top: 2px solid rgba(255, 255, 255, 0.5);\n margin-top: 20px;\n padding-top: 20px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child {\n border-top: none;\n margin-top: 0;\n padding-top: 0;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {\n display: inline-block;\n list-style-type: none;\n margin: 0;\n padding: 5px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed {\n opacity: 0.5;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title {\n font-style: italic;\n font-weight: normal;\n}\n.single-llms_quiz .llms-return {\n margin-bottom: 10px;\n}\n.single-llms_quiz .llms-quiz-results:before, .single-llms_quiz .llms-quiz-results:after {\n content: \" \";\n display: table;\n}\n.single-llms_quiz .llms-quiz-results:after {\n clear: both;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.passing {\n color: #83c373;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.passing svg path {\n stroke: #83c373;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.pending {\n color: #555;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.pending svg path {\n stroke: #555;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.failing {\n color: #e5554e;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.failing svg path {\n stroke: #e5554e;\n}\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside,\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-main,\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-history {\n margin-bottom: 20px;\n}\n@media all and (min-width: 600px) {\n .single-llms_quiz .llms-quiz-results .llms-quiz-results-aside {\n float: left;\n width: 220px;\n }\n .single-llms_quiz .llms-quiz-results .llms-quiz-results-main,\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-history {\n float: left;\n width: calc(100% - 300px);\n }\n}\n.single-llms_quiz ul.llms-quiz-meta-info,\n.single-llms_quiz ul.llms-quiz-meta-info li {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.single-llms_quiz ul.llms-quiz-meta-info {\n margin-bottom: 10px;\n}\n.single-llms_quiz .llms-quiz-buttons {\n margin-top: 10px;\n text-align: left;\n}\n.single-llms_quiz .llms-quiz-buttons form {\n display: inline-block;\n}\n\n.llms-quiz-question-wrapper {\n min-height: 140px;\n position: relative;\n}\n.llms-quiz-question-wrapper .llms-quiz-loading {\n bottom: 20px;\n left: 0;\n position: absolute;\n right: 0;\n text-align: center;\n z-index: 1;\n}\n\n.llms-quiz-ui {\n background: #fcfcfc;\n padding: 20px;\n position: relative;\n}\n.llms-quiz-ui .llms-quiz-header {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n margin: 0 0 30px;\n}\n.llms-quiz-ui .llms-progress {\n background-color: #f1f2f1;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n height: 8px;\n margin: 0;\n overflow: hidden;\n}\n.llms-quiz-ui .llms-progress .progress-bar-complete {\n -webkit-transition: width 0.3s ease-in;\n transition: width 0.3s ease-in;\n width: 0;\n}\n.llms-quiz-ui .llms-error {\n background: #e5554e;\n border-radius: 4px;\n color: #fff;\n margin: 10px 0;\n padding: 10px;\n}\n.llms-quiz-ui .llms-error:before, .llms-quiz-ui .llms-error:after {\n content: \" \";\n display: table;\n}\n.llms-quiz-ui .llms-error:after {\n clear: both;\n}\n.llms-quiz-ui .llms-error a {\n color: rgba(255, 255, 255, 0.6);\n float: right;\n font-size: 22px;\n line-height: 1;\n text-decoration: none;\n}\n.llms-quiz-ui .llms-quiz-counter {\n display: none;\n color: #6a6a6a;\n float: right;\n font-size: 18px;\n}\n.llms-quiz-ui .llms-quiz-counter .llms-sep {\n margin: 0 5px;\n}\n.llms-quiz-ui .llms-quiz-nav {\n margin-top: 20px;\n}\n.llms-quiz-ui .llms-quiz-nav button {\n margin: 0 10px 0 0;\n}\n\n.llms-question-wrapper .llms-question-text {\n font-size: 30px;\n font-weight: 400;\n margin-bottom: 15px;\n}\n.llms-question-wrapper ol.llms-question-choices {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice {\n border-bottom: 1px solid #e8e8e8;\n margin: 0;\n padding: 0;\n position: relative;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice:last-child {\n border-bottom: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture {\n border-bottom: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture label {\n display: inline-block;\n padding: 0;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-marker {\n bottom: 10px;\n margin: 0;\n position: absolute;\n right: 10px;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image {\n margin: 2px;\n padding: 20px;\n -webkit-transition: background 0.4s ease;\n transition: background 0.4s ease;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image img {\n display: block;\n width: 100%;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture input:checked ~ .llms-choice-image {\n background: #efefef;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input {\n display: none;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n visibility: hidden;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice label {\n display: block;\n margin: 0;\n padding: 10px 20px;\n position: relative;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .iterator {\n display: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .fa {\n display: inline;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker {\n background: #f0f0f0;\n display: inline-block;\n font-size: 20px;\n height: 40px;\n line-height: 40px;\n margin-right: 10px;\n text-align: center;\n -webkit-transition: all 0.2s ease;\n transition: all 0.2s ease;\n vertical-align: middle;\n width: 40px;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker .fa {\n display: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--lister, .llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--checkbox {\n border-radius: 4px;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--radio {\n border-radius: 50%;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker {\n background: #ef476f;\n color: #fff;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker .iterator {\n display: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker .fa {\n display: inline;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-choice-text {\n display: inline-block;\n font-size: 18px;\n font-weight: 400;\n line-height: 1.6;\n margin-bottom: 0;\n vertical-align: middle;\n width: calc(100% - 60px);\n}\n\n.llms-quiz-timer {\n background: #fff;\n border: 1px solid #83c373;\n border-radius: 4px;\n color: #83c373;\n float: right;\n font-size: 18px;\n line-height: 1;\n margin-left: 20px;\n padding: 8px 12px;\n position: relative;\n white-space: nowrap;\n z-index: 1;\n}\n.llms-quiz-timer.color-half {\n border-color: #ff922b;\n color: #ff922b;\n}\n.llms-quiz-timer.color-empty {\n border-color: #e5554e;\n color: #e5554e;\n}\n.llms-quiz-timer .llms-tiles {\n display: inline-block;\n margin-left: 5px;\n}\n\n.voucher-expand {\n display: none;\n}\n\n@media all and (min-width: 600px) {\n .llms-access-plans.cols-1 .llms-access-plan {\n width: 100%;\n }\n .llms-access-plans.cols-2 .llms-access-plan {\n width: 50%;\n }\n .llms-access-plans.cols-3 .llms-access-plan {\n width: 33.3333333333%;\n }\n .llms-access-plans.cols-4 .llms-access-plan {\n width: 25%;\n }\n .llms-access-plans.cols-5 .llms-access-plan {\n width: 20%;\n }\n}\n\n.llms-free-enroll-form {\n margin-bottom: 0;\n}\n\n.llms-access-plan {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n float: left;\n text-align: center;\n width: 100%;\n}\n.llms-access-plan .llms-access-plan-footer,\n.llms-access-plan .llms-access-plan-content {\n background: #f1f1f1;\n}\n.llms-access-plan.featured .llms-access-plan-featured {\n background: #4ba9ff;\n}\n.llms-access-plan.featured .llms-access-plan-footer,\n.llms-access-plan.featured .llms-access-plan-content {\n border-left: 3px solid #2295ff;\n border-right: 3px solid #2295ff;\n}\n.llms-access-plan.featured .llms-access-plan-footer {\n border-bottom-color: #2295ff;\n}\n.llms-access-plan.on-sale .price-regular {\n text-decoration: line-through;\n}\n.llms-access-plan .stamp {\n background: #2295ff;\n color: #fff;\n font-size: 11px;\n font-style: normal;\n font-weight: 300;\n padding: 2px 3px;\n vertical-align: top;\n}\n.llms-access-plan .llms-access-plan-restrictions ul {\n margin: 0;\n}\n\n.llms-access-plan-featured {\n color: #fff;\n font-size: 14px;\n font-weight: 400;\n margin: 0 2px 0 2px;\n}\n\n.llms-access-plan-content {\n margin: 0 2px 0;\n}\n.llms-access-plan-content .llms-access-plan-pricing {\n padding: 10px 0 0;\n}\n\n.llms-access-plan-title {\n background: #2295ff;\n color: #fff;\n margin-bottom: 0;\n padding: 10px;\n}\n\n.llms-access-plan-pricing .llms-price-currency-symbol {\n font-size: 14px;\n vertical-align: top;\n}\n\n.llms-access-plan-price {\n font-size: 18px;\n font-variant: small-caps;\n line-height: 20px;\n}\n.llms-access-plan-price .lifterlms-price {\n font-weight: 700;\n}\n.llms-access-plan-price.sale {\n padding: 5px 0;\n border-top: 1px solid #d0d0d0;\n border-bottom: 1px solid #d0d0d0;\n}\n\n.llms-access-plan-trial,\n.llms-access-plan-schedule,\n.llms-access-plan-sale-end,\n.llms-access-plan-expiration {\n font-size: 15px;\n font-variant: small-caps;\n line-height: 1.2;\n}\n\n.llms-access-plan-description {\n font-size: 16px;\n padding: 10px 10px 0;\n}\n.llms-access-plan-description ul {\n margin: 0;\n}\n.llms-access-plan-description ul li {\n border-bottom: 1px solid #d0d0d0;\n list-style-type: none;\n}\n.llms-access-plan-description ul li:last-child {\n border-bottom: none;\n}\n.llms-access-plan-description div:last-child, .llms-access-plan-description img:last-child, .llms-access-plan-description p:last-child, .llms-access-plan-description ul:last-child, .llms-access-plan-description li:last-child {\n margin-bottom: 0;\n}\n\n.llms-access-plan-restrictions .stamp {\n vertical-align: baseline;\n}\n.llms-access-plan-restrictions ul {\n margin: 0;\n}\n.llms-access-plan-restrictions ul li {\n font-size: 12px;\n line-height: 14px;\n list-style-type: none;\n}\n.llms-access-plan-restrictions a {\n color: #f8954f;\n}\n.llms-access-plan-restrictions a:hover {\n color: #f67d28;\n}\n\n.llms-access-plan-footer {\n border-bottom: 3px solid #f1f1f1;\n padding: 10px;\n margin: 0 2px 2px 2px;\n}\n.llms-access-plan-footer .llms-access-plan-pricing {\n padding: 0 0 10px;\n}\n\n.webui-popover-content .llms-members-only-restrictions {\n text-align: center;\n}\n.webui-popover-content .llms-members-only-restrictions ul, .webui-popover-content .llms-members-only-restrictions ol, .webui-popover-content .llms-members-only-restrictions li, .webui-popover-content .llms-members-only-restrictions p {\n margin: 0;\n padding: 0;\n}\n.webui-popover-content .llms-members-only-restrictions ul, .webui-popover-content .llms-members-only-restrictions ol, .webui-popover-content .llms-members-only-restrictions li {\n list-style-type: none;\n}\n.webui-popover-content .llms-members-only-restrictions li {\n padding: 8px 0;\n border-top: 1px solid #3b3b3b;\n}\n.webui-popover-content .llms-members-only-restrictions li:first-child {\n border-top: none;\n}\n.webui-popover-content .llms-members-only-restrictions li a {\n display: block;\n}\n\n.llms-checkout-wrapper form.llms-login {\n border: 3px solid #2295ff;\n display: none;\n margin-bottom: 10px;\n}\n.llms-checkout-wrapper .llms-form-heading {\n background: #2295ff;\n color: #fff;\n margin: 0 0 5px;\n padding: 10px;\n}\n\n.llms-checkout {\n background: #fff;\n position: relative;\n}\n\n@media all and (min-width: 800px) {\n .llms-checkout-cols-2 .llms-checkout-col {\n float: left;\n }\n .llms-checkout-cols-2 .llms-checkout-col.llms-col-1 {\n margin-right: 5px;\n width: calc(58% - 5px);\n }\n .llms-checkout-cols-2 .llms-checkout-col.llms-col-2 {\n margin-left: 5px;\n width: calc(42% - 5px);\n }\n .llms-checkout-cols-2 .llms-checkout-col.llms-col-2 button {\n width: 100%;\n }\n}\n\n.llms-checkout-section {\n border: 3px solid #2295ff;\n margin-bottom: 10px;\n position: relative;\n}\n\n.llms-checkout-section-content {\n margin: 10px;\n}\n.llms-checkout-section-content.llms-form-fields {\n margin: 0px;\n}\n.llms-checkout-section-content .llms-label {\n font-weight: 400;\n font-variant: small-caps;\n text-transform: lowercase;\n}\n.llms-checkout-section-content .llms-order-summary {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-checkout-section-content .llms-order-summary li {\n list-style-type: none;\n}\n.llms-checkout-section-content .llms-order-summary li.llms-pricing.on-sale .price-regular, .llms-checkout-section-content .llms-order-summary li.llms-pricing.has-coupon .price-regular {\n text-decoration: line-through;\n}\n.llms-checkout-section-content .llms-coupon-wrapper {\n border-top: 1px solid #dadada;\n margin-top: 10px;\n padding-top: 10px;\n}\n.llms-checkout-section-content .llms-coupon-wrapper .llms-coupon-entry {\n display: none;\n margin-top: 10px;\n}\n\n.llms-form-field.llms-payment-gateway-option label + span.llms-description {\n display: inline-block;\n margin-left: 5px;\n}\n.llms-form-field.llms-payment-gateway-option .llms-description a {\n border: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n text-decoration: none;\n}\n.llms-form-field.llms-payment-gateway-option .llms-description img {\n display: inline;\n max-height: 22px;\n vertical-align: middle;\n}\n\n.llms-checkout-wrapper ul.llms-payment-gateways {\n margin: 5px 0 0;\n padding: 0;\n}\n\nul.llms-payment-gateways {\n list-style-type: none;\n}\nul.llms-payment-gateways li:last-child:after {\n border-bottom: 1px solid #dadada;\n content: \"\";\n display: block;\n margin: 10px;\n}\nul.llms-payment-gateways .llms-payment-gateway {\n margin-bottom: 5px;\n list-style-type: none;\n}\nul.llms-payment-gateways .llms-payment-gateway:last-child {\n margin-bottom: none;\n}\nul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-payment-gateway-option label {\n font-weight: 700;\n}\nul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields {\n display: block;\n}\nul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields .llms-notice {\n margin-left: 10px;\n margin-right: 10px;\n}\nul.llms-payment-gateways .llms-payment-gateway .llms-form-field {\n padding-bottom: 0;\n}\nul.llms-payment-gateways .llms-gateway-description {\n margin-left: 40px;\n}\nul.llms-payment-gateways .llms-gateway-fields {\n display: none;\n margin: 5px 0 20px;\n}\nul.llms-payment-gateways .llms-payment-gateway-error {\n padding: 0 10px;\n}\n\n.llms-checkout-confirm {\n margin: 0 10px;\n}\n\n.llms-payment-method {\n margin: 10px 10px 0;\n}\n\n.llms-gateway-description p {\n font-size: 85%;\n font-style: italic;\n margin-bottom: 0;\n}\n\n.llms-form-fields {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n.llms-form-fields * {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n.llms-form-fields.flush .llms-form-field {\n padding: 0 0 10px;\n}\n.llms-form-fields .wp-block-columns, .llms-form-fields .wp-block-column {\n margin-bottom: 0;\n}\n\n.llms-form-heading {\n padding: 0 10px 10px;\n}\n\n.llms-form-field {\n float: left;\n padding: 0 10px 10px;\n position: relative;\n width: 100%;\n}\n.llms-form-field label:empty:after {\n content: \" \";\n}\n.llms-form-field.valid input[type=date], .llms-form-field.valid input[type=time], .llms-form-field.valid input[type=datetime-local], .llms-form-field.valid input[type=week], .llms-form-field.valid input[type=month], .llms-form-field.valid input[type=text], .llms-form-field.valid input[type=email], .llms-form-field.valid input[type=url], .llms-form-field.valid input[type=password], .llms-form-field.valid input[type=search], .llms-form-field.valid input[type=tel], .llms-form-field.valid input[type=number], .llms-form-field.valid textarea, .llms-form-field.valid select {\n background: rgba(131, 195, 115, 0.3);\n border-color: #83c373;\n}\n.llms-form-field.error input[type=date], .llms-form-field.error input[type=time], .llms-form-field.error input[type=datetime-local], .llms-form-field.error input[type=week], .llms-form-field.error input[type=month], .llms-form-field.error input[type=text], .llms-form-field.error input[type=email], .llms-form-field.error input[type=url], .llms-form-field.error input[type=password], .llms-form-field.error input[type=search], .llms-form-field.error input[type=tel], .llms-form-field.error input[type=number], .llms-form-field.error textarea, .llms-form-field.error select, .llms-form-field.invalid input[type=date], .llms-form-field.invalid input[type=time], .llms-form-field.invalid input[type=datetime-local], .llms-form-field.invalid input[type=week], .llms-form-field.invalid input[type=month], .llms-form-field.invalid input[type=text], .llms-form-field.invalid input[type=email], .llms-form-field.invalid input[type=url], .llms-form-field.invalid input[type=password], .llms-form-field.invalid input[type=search], .llms-form-field.invalid input[type=tel], .llms-form-field.invalid input[type=number], .llms-form-field.invalid textarea, .llms-form-field.invalid select {\n background: rgba(229, 85, 78, 0.3);\n border-color: #e5554e;\n}\n.llms-form-field.llms-visually-hidden-field {\n display: none;\n}\n.llms-form-field.align-right {\n text-align: right;\n}\n@media screen and (min-width: 600px) {\n .llms-form-field.llms-cols-1 {\n width: 8.3333333333%;\n }\n .llms-form-field.llms-cols-2 {\n width: 16.6666666667%;\n }\n .llms-form-field.llms-cols-3 {\n width: 25%;\n }\n .llms-form-field.llms-cols-4 {\n width: 33.3333333333%;\n }\n .llms-form-field.llms-cols-5 {\n width: 41.6666666667%;\n }\n .llms-form-field.llms-cols-6 {\n width: 50%;\n }\n .llms-form-field.llms-cols-7 {\n width: 58.3333333333%;\n }\n .llms-form-field.llms-cols-8 {\n width: 66.6666666667%;\n }\n .llms-form-field.llms-cols-9 {\n width: 75%;\n }\n .llms-form-field.llms-cols-10 {\n width: 83.3333333333%;\n }\n .llms-form-field.llms-cols-11 {\n width: 91.6666666667%;\n }\n .llms-form-field.llms-cols-12 {\n width: 100%;\n }\n}\n.llms-form-field.type-hidden {\n padding: 0;\n}\n.llms-form-field.type-radio input,\n.llms-form-field.type-radio label, .llms-form-field.type-checkbox input,\n.llms-form-field.type-checkbox label {\n display: inline-block;\n width: auto;\n}\n.llms-form-field.type-radio input, .llms-form-field.type-checkbox input {\n margin-right: 5px;\n}\n.llms-form-field.type-radio label + .llms-description, .llms-form-field.type-checkbox label + .llms-description {\n display: block;\n}\n.llms-form-field.type-radio:not(.is-group) input[type=radio] {\n position: absolute;\n opacity: 0;\n visibility: none;\n}\n.llms-form-field.type-radio:not(.is-group) label:before {\n background: #fafafa;\n background-position: -24px 0;\n background-repeat: no-repeat;\n border-radius: 50%;\n -webkit-box-shadow: rgba(255, 255, 255, 0.15) 0 1px 1px, inset rgba(0, 0, 0, 0.35) 0 0 0 1px;\n box-shadow: rgba(255, 255, 255, 0.15) 0 1px 1px, inset rgba(0, 0, 0, 0.35) 0 0 0 1px;\n content: \"\";\n cursor: pointer;\n display: inline-block;\n height: 22px;\n margin-right: 5px;\n position: relative;\n -webkit-transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n top: -3px;\n vertical-align: middle;\n width: 22px;\n z-index: 2;\n}\n.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked + label:before {\n -webkit-transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n background-position: 0 0;\n background-image: radial-gradient(ellipse at center, #2295ff 0%, #2295ff 40%, #fafafa 45%);\n}\n.llms-form-field .llms-input-group {\n margin-top: 5px;\n}\n.llms-form-field .llms-input-group .llms-form-field {\n padding: 0 0 5px 5px;\n}\n.llms-form-field.type-reset button:not(.auto), .llms-form-field.type-button button:not(.auto), .llms-form-field.type-submit button:not(.auto) {\n width: 100%;\n}\n.llms-form-field .llms-description {\n font-size: 14px;\n font-style: italic;\n}\n.llms-form-field .llms-required {\n color: #e5554e;\n margin-left: 4px;\n}\n.llms-form-field input, .llms-form-field textarea, .llms-form-field select {\n width: 100%;\n margin-bottom: 5px;\n}\n.llms-form-field .select2-container .select2-selection--single {\n height: auto;\n padding: 4px 6px;\n}\n.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow {\n height: 100%;\n}\n\n.llms-password-strength-meter {\n border: 1px solid #dadada;\n display: none;\n font-size: 10px;\n margin-top: -10px;\n padding: 1px;\n position: relative;\n text-align: center;\n}\n.llms-password-strength-meter:before {\n bottom: 0;\n content: \"\";\n left: 0;\n position: absolute;\n top: 0;\n -webkit-transition: width 0.4s ease;\n transition: width 0.4s ease;\n}\n.llms-password-strength-meter.mismatch, .llms-password-strength-meter.too-short, .llms-password-strength-meter.very-weak {\n border-color: #e35b5b;\n}\n.llms-password-strength-meter.mismatch:before, .llms-password-strength-meter.too-short:before, .llms-password-strength-meter.very-weak:before {\n background: rgba(227, 91, 91, 0.25);\n width: 25%;\n}\n.llms-password-strength-meter.too-short:before {\n width: 0;\n}\n.llms-password-strength-meter.weak {\n border-color: #f78b53;\n}\n.llms-password-strength-meter.weak:before {\n background: rgba(247, 139, 83, 0.25);\n width: 50%;\n}\n.llms-password-strength-meter.medium {\n border-color: #ffc733;\n}\n.llms-password-strength-meter.medium:before {\n background: rgba(255, 199, 51, 0.25);\n width: 75%;\n}\n.llms-password-strength-meter.strong {\n border-color: #83c373;\n}\n.llms-password-strength-meter.strong:before {\n background: rgba(131, 195, 115, 0.25);\n width: 100%;\n}\n\n.llms-widget-syllabus--collapsible .llms-section .section-header {\n cursor: pointer;\n}\n.llms-widget-syllabus--collapsible .llms-section.llms-section--opened .llms-collapse-caret .fa-caret-right {\n display: none;\n}\n.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-collapse-caret .fa-caret-down {\n display: none;\n}\n.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-lesson {\n display: none;\n}\n.llms-widget-syllabus--collapsible .llms-syllabus-footer {\n text-align: left;\n}\n\n.llms-student-dashboard {\n /**\n * Dashboard Home\n */\n}\n.llms-student-dashboard .llms-sd-title {\n margin: 25px 0;\n}\n.llms-student-dashboard .llms-sd-items {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-student-dashboard .llms-sd-item {\n float: left;\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-student-dashboard .llms-sd-item:last-child .llms-sep {\n display: none;\n}\n.llms-student-dashboard .llms-sd-item .llms-sep {\n color: #333;\n margin: 0 5px;\n}\n.llms-student-dashboard .llms-sd-section {\n margin-bottom: 25px;\n}\n.llms-student-dashboard .llms-sd-section .llms-sd-section-footer {\n margin-top: 10px;\n}\n.llms-student-dashboard .orders-table {\n border: 1px solid #f5f5f5;\n width: 100%;\n}\n.llms-student-dashboard .orders-table thead {\n display: none;\n}\n.llms-student-dashboard .orders-table thead th, .llms-student-dashboard .orders-table thead td {\n font-weight: 700;\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .orders-table thead {\n display: table-header-group;\n }\n}\n.llms-student-dashboard .orders-table tbody tr:nth-child(even) td, .llms-student-dashboard .orders-table tbody tr:nth-child(even) th {\n background: #f9f9f9;\n}\n.llms-student-dashboard .orders-table tfoot th, .llms-student-dashboard .orders-table tfoot td {\n padding: 10px;\n text-align: right;\n}\n.llms-student-dashboard .orders-table tfoot th:last-child, .llms-student-dashboard .orders-table tfoot td:last-child {\n border-bottom-width: 0;\n}\n.llms-student-dashboard .orders-table th {\n font-weight: 700;\n}\n.llms-student-dashboard .orders-table th, .llms-student-dashboard .orders-table td {\n border-color: #efefef;\n border-style: solid;\n border-width: 0;\n display: block;\n padding: 8px 12px;\n text-align: center;\n}\n.llms-student-dashboard .orders-table th .llms-button-primary, .llms-student-dashboard .orders-table td .llms-button-primary {\n display: inline-block;\n}\n.llms-student-dashboard .orders-table th:last-child, .llms-student-dashboard .orders-table td:last-child {\n border-bottom-width: 1px;\n}\n.llms-student-dashboard .orders-table th:before, .llms-student-dashboard .orders-table td:before {\n content: attr(data-label);\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .orders-table th, .llms-student-dashboard .orders-table td {\n border-bottom-width: 1px;\n display: table-cell;\n text-align: left;\n }\n .llms-student-dashboard .orders-table th:first-child, .llms-student-dashboard .orders-table td:first-child {\n width: 220px;\n }\n .llms-student-dashboard .orders-table th:before, .llms-student-dashboard .orders-table td:before {\n display: none;\n }\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .orders-table.transactions th:first-child {\n width: auto;\n }\n}\n.llms-student-dashboard .llms-status {\n border-radius: 3px;\n border-bottom: 1px solid #fff;\n display: inline-block;\n font-size: 80%;\n padding: 3px 6px;\n vertical-align: middle;\n}\n.llms-student-dashboard .llms-status.llms-size--large {\n font-size: 105%;\n padding: 6px 12px;\n}\n.llms-student-dashboard .llms-status.llms-active, .llms-student-dashboard .llms-status.llms-completed, .llms-student-dashboard .llms-status.llms-pass, .llms-student-dashboard .llms-status.llms-txn-succeeded {\n color: #1f3818;\n background-color: #83c373;\n}\n.llms-student-dashboard .llms-status.llms-fail, .llms-student-dashboard .llms-status.llms-failed, .llms-student-dashboard .llms-status.llms-expired, .llms-student-dashboard .llms-status.llms-cancelled, .llms-student-dashboard .llms-status.llms-txn-failed {\n color: #5a110d;\n background-color: #e5554e;\n}\n.llms-student-dashboard .llms-status.llms-incomplete, .llms-student-dashboard .llms-status.llms-on-hold, .llms-student-dashboard .llms-status.llms-pending, .llms-student-dashboard .llms-status.llms-pending-cancel, .llms-student-dashboard .llms-status.llms-refunded, .llms-student-dashboard .llms-status.llms-txn-pending, .llms-student-dashboard .llms-status.llms-txn-refunded {\n color: #664200;\n background-color: orange;\n}\n.llms-student-dashboard .llms-person-form-wrapper .llms-change-password {\n display: none;\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .order-primary {\n float: left;\n width: 68%;\n }\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .order-secondary {\n float: left;\n width: 32%;\n }\n}\n.llms-student-dashboard .order-secondary form {\n margin-bottom: 0;\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .llms-view-order.llms-stack-cols .order-primary,\n.llms-student-dashboard .llms-view-order.llms-stack-cols .order-secondary {\n float: none;\n width: 100%;\n }\n}\n.llms-student-dashboard .llms-switch-payment-source .llms-notice,\n.llms-student-dashboard .llms-switch-payment-source .entry-content .llms-notice {\n margin-left: 10px;\n margin-right: 10px;\n}\n.llms-student-dashboard .llms-switch-payment-source-main {\n border: none;\n display: none;\n margin: 0;\n}\n.llms-student-dashboard .llms-switch-payment-source-main ul.llms-payment-gateways {\n padding: 10px 15px 0;\n margin: 0;\n}\n.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method,\n.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary {\n padding: 0 25px 10px;\n margin: 0;\n list-style-type: none;\n}\n.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method li,\n.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary li {\n list-style-type: none;\n}\n.llms-student-dashboard .llms-loop-list {\n margin: 0 -10px;\n}\n\n.llms-sd-grades .llms-table .llms-progress {\n display: block;\n margin: 0;\n}\n.llms-sd-grades .llms-table .llms-progress .llms-progress-bar {\n top: 0;\n height: 1.4em;\n}\n.llms-sd-grades .llms-table .llms-progress .progress__indicator {\n font-size: 1em;\n position: relative;\n right: 0.4em;\n top: 0.2em;\n z-index: 1;\n}\n\n.llms-table.llms-single-course-grades tbody tr:first-child td, .llms-table.llms-single-course-grades tbody tr:first-child th {\n background-color: #eaeaea;\n}\n.llms-table.llms-single-course-grades th {\n font-weight: 400;\n}\n.llms-table.llms-single-course-grades td .llms-donut {\n display: inline-block;\n vertical-align: middle;\n}\n.llms-table.llms-single-course-grades td .llms-status {\n margin-right: 4px;\n}\n.llms-table.llms-single-course-grades td .llms-donut + .llms-status {\n margin-left: 4px;\n}\n.llms-table.llms-single-course-grades th.llms-section_title {\n font-size: 110%;\n font-weight: 700;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title {\n padding-left: 36px;\n max-width: 40%;\n}\n.llms-table.llms-single-course-grades td.llms-associated_quiz .llms-donut {\n display: inline-block;\n margin-right: 5px;\n vertical-align: middle;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href=\"#\"] {\n pointer-events: none;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href^=\"#\"] {\n color: inherit;\n position: relative;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href^=\"#\"] .llms-tooltip {\n max-width: 380px;\n width: 380px;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href^=\"#\"] .llms-tooltip.show {\n top: -54px;\n}\n\n.llms-sd-widgets {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.llms-sd-widgets .llms-sd-widget {\n background: #f9f9f9;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n margin: 10px 10px 20px;\n padding: 0 0 20px;\n}\n.llms-sd-widgets .llms-sd-widget:first-child {\n margin-left: 0;\n}\n.llms-sd-widgets .llms-sd-widget:last-child {\n margin-right: 0;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-widget-title {\n background: #2295ff;\n color: #fff;\n font-size: 18px;\n line-height: 1;\n margin: 0 0 20px;\n padding: 10px;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-widget-empty {\n font-size: 14px;\n font-style: italic;\n opacity: 0.5;\n text-align: center;\n}\n.llms-sd-widgets .llms-sd-widget .llms-donut {\n margin: 0 auto;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date {\n opacity: 0.8;\n text-align: center;\n font-size: 22px;\n line-height: 1.1;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date span {\n display: block;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date span.day {\n font-size: 52px;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date span.diff {\n font-size: 12px;\n font-style: italic;\n margin-top: 8px;\n opacity: 0.75;\n}\n.llms-sd-widgets .llms-sd-widget .llms-achievement {\n background: transparent;\n margin: 0 auto;\n max-width: 120px;\n}\n.llms-sd-widgets .llms-sd-widget .llms-achievement .llms-achievement-title {\n display: none;\n}\n\n.llms-sd-pagination {\n margin-top: 24px;\n}\n.llms-sd-pagination:before, .llms-sd-pagination:after {\n content: \" \";\n display: table;\n}\n.llms-sd-pagination:after {\n clear: both;\n}\n.llms-sd-pagination .llms-button-secondary {\n display: inline-block;\n}\n.llms-sd-pagination .llms-button-secondary.prev {\n float: left;\n}\n.llms-sd-pagination .llms-button-secondary.next {\n float: right;\n}\n\n.llms-sd-notification-center .llms-notification {\n z-index: 1;\n}\n\n.llms-table {\n border: 1px solid #efefef;\n width: 100%;\n}\n.llms-table thead th, .llms-table thead td {\n font-weight: 700;\n}\n.llms-table tbody tr:nth-child(odd) td, .llms-table tbody tr:nth-child(odd) th {\n background: #f9f9f9;\n}\n.llms-table tbody tr:last-child {\n border-bottom-width: 0;\n}\n.llms-table tfoot tr {\n background: #f9f9f9;\n}\n.llms-table tfoot tr .llms-pagination .page-numbers {\n margin: 0;\n}\n.llms-table tfoot tr .llms-table-sort {\n text-align: right;\n}\n.llms-table tfoot tr .llms-table-sort form, .llms-table tfoot tr .llms-table-sort select, .llms-table tfoot tr .llms-table-sort input, .llms-table tfoot tr .llms-table-sort button {\n margin: 0;\n}\n.llms-table th {\n font-weight: 700;\n}\n.llms-table th, .llms-table td {\n border-bottom: 1px solid #efefef;\n padding: 8px 12px;\n}\n.llms-table th:first-child, .llms-table td:first-child {\n padding-left: 12px;\n}\n.llms-table th:last-child, .llms-table td:last-child {\n padding-right: 12px;\n}\n\n#page .llms-table tfoot label {\n display: inline;\n}\n\n#page .llms-table tfoot select {\n height: auto;\n}\n\n/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: \"FontAwesome\";\n src: url(\"../fonts/fontawesome-webfont.eot?v=4.7.0\");\n src: url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0\") format(\"embedded-opentype\"), url(\"../fonts/fontawesome-webfont.woff2?v=4.7.0\") format(\"woff2\"), url(\"../fonts/fontawesome-webfont.woff?v=4.7.0\") format(\"woff\"), url(\"../fonts/fontawesome-webfont.ttf?v=4.7.0\") format(\"truetype\"), url(\"../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular\") format(\"svg\");\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n\n.fa-border {\n padding: 0.2em 0.25em 0.15em;\n border: solid 0.08em #eeeeee;\n border-radius: 0.1em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left {\n margin-right: 0.3em;\n}\n\n.fa.fa-pull-right {\n margin-left: 0.3em;\n}\n\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n\n.pull-left {\n float: left;\n}\n\n.fa.pull-left {\n margin-right: 0.3em;\n}\n\n.fa.pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n\n.fa-stack-1x {\n line-height: inherit;\n}\n\n.fa-stack-2x {\n font-size: 2em;\n}\n\n.fa-inverse {\n color: #ffffff;\n}\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n\n.fa-music:before {\n content: \"\\f001\";\n}\n\n.fa-search:before {\n content: \"\\f002\";\n}\n\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n\n.fa-heart:before {\n content: \"\\f004\";\n}\n\n.fa-star:before {\n content: \"\\f005\";\n}\n\n.fa-star-o:before {\n content: \"\\f006\";\n}\n\n.fa-user:before {\n content: \"\\f007\";\n}\n\n.fa-film:before {\n content: \"\\f008\";\n}\n\n.fa-th-large:before {\n content: \"\\f009\";\n}\n\n.fa-th:before {\n content: \"\\f00a\";\n}\n\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n\n.fa-check:before {\n content: \"\\f00c\";\n}\n\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n\n.fa-power-off:before {\n content: \"\\f011\";\n}\n\n.fa-signal:before {\n content: \"\\f012\";\n}\n\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n\n.fa-home:before {\n content: \"\\f015\";\n}\n\n.fa-file-o:before {\n content: \"\\f016\";\n}\n\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n\n.fa-road:before {\n content: \"\\f018\";\n}\n\n.fa-download:before {\n content: \"\\f019\";\n}\n\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n\n.fa-refresh:before {\n content: \"\\f021\";\n}\n\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n\n.fa-lock:before {\n content: \"\\f023\";\n}\n\n.fa-flag:before {\n content: \"\\f024\";\n}\n\n.fa-headphones:before {\n content: \"\\f025\";\n}\n\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n\n.fa-tag:before {\n content: \"\\f02b\";\n}\n\n.fa-tags:before {\n content: \"\\f02c\";\n}\n\n.fa-book:before {\n content: \"\\f02d\";\n}\n\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n\n.fa-print:before {\n content: \"\\f02f\";\n}\n\n.fa-camera:before {\n content: \"\\f030\";\n}\n\n.fa-font:before {\n content: \"\\f031\";\n}\n\n.fa-bold:before {\n content: \"\\f032\";\n}\n\n.fa-italic:before {\n content: \"\\f033\";\n}\n\n.fa-text-height:before {\n content: \"\\f034\";\n}\n\n.fa-text-width:before {\n content: \"\\f035\";\n}\n\n.fa-align-left:before {\n content: \"\\f036\";\n}\n\n.fa-align-center:before {\n content: \"\\f037\";\n}\n\n.fa-align-right:before {\n content: \"\\f038\";\n}\n\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n\n.fa-list:before {\n content: \"\\f03a\";\n}\n\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n\n.fa-indent:before {\n content: \"\\f03c\";\n}\n\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n\n.fa-pencil:before {\n content: \"\\f040\";\n}\n\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n\n.fa-adjust:before {\n content: \"\\f042\";\n}\n\n.fa-tint:before {\n content: \"\\f043\";\n}\n\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n\n.fa-arrows:before {\n content: \"\\f047\";\n}\n\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n\n.fa-backward:before {\n content: \"\\f04a\";\n}\n\n.fa-play:before {\n content: \"\\f04b\";\n}\n\n.fa-pause:before {\n content: \"\\f04c\";\n}\n\n.fa-stop:before {\n content: \"\\f04d\";\n}\n\n.fa-forward:before {\n content: \"\\f04e\";\n}\n\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n\n.fa-eject:before {\n content: \"\\f052\";\n}\n\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n\n.fa-ban:before {\n content: \"\\f05e\";\n}\n\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n\n.fa-expand:before {\n content: \"\\f065\";\n}\n\n.fa-compress:before {\n content: \"\\f066\";\n}\n\n.fa-plus:before {\n content: \"\\f067\";\n}\n\n.fa-minus:before {\n content: \"\\f068\";\n}\n\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n\n.fa-gift:before {\n content: \"\\f06b\";\n}\n\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n\n.fa-fire:before {\n content: \"\\f06d\";\n}\n\n.fa-eye:before {\n content: \"\\f06e\";\n}\n\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n\n.fa-plane:before {\n content: \"\\f072\";\n}\n\n.fa-calendar:before {\n content: \"\\f073\";\n}\n\n.fa-random:before {\n content: \"\\f074\";\n}\n\n.fa-comment:before {\n content: \"\\f075\";\n}\n\n.fa-magnet:before {\n content: \"\\f076\";\n}\n\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n\n.fa-retweet:before {\n content: \"\\f079\";\n}\n\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n\n.fa-folder:before {\n content: \"\\f07b\";\n}\n\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n\n.fa-key:before {\n content: \"\\f084\";\n}\n\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n\n.fa-comments:before {\n content: \"\\f086\";\n}\n\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n\n.fa-star-half:before {\n content: \"\\f089\";\n}\n\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n\n.fa-trophy:before {\n content: \"\\f091\";\n}\n\n.fa-github-square:before {\n content: \"\\f092\";\n}\n\n.fa-upload:before {\n content: \"\\f093\";\n}\n\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n\n.fa-phone:before {\n content: \"\\f095\";\n}\n\n.fa-square-o:before {\n content: \"\\f096\";\n}\n\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n\n.fa-twitter:before {\n content: \"\\f099\";\n}\n\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n\n.fa-github:before {\n content: \"\\f09b\";\n}\n\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n\n.fa-square:before {\n content: \"\\f0c8\";\n}\n\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n\n.fa-table:before {\n content: \"\\f0ce\";\n}\n\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n\n.fa-money:before {\n content: \"\\f0d6\";\n}\n\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n\n.fa-columns:before {\n content: \"\\f0db\";\n}\n\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n\n.fa-desktop:before {\n content: \"\\f108\";\n}\n\n.fa-laptop:before {\n content: \"\\f109\";\n}\n\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n\n.fa-spinner:before {\n content: \"\\f110\";\n}\n\n.fa-circle:before {\n content: \"\\f111\";\n}\n\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n\n.fa-terminal:before {\n content: \"\\f120\";\n}\n\n.fa-code:before {\n content: \"\\f121\";\n}\n\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n\n.fa-crop:before {\n content: \"\\f125\";\n}\n\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n\n.fa-question:before {\n content: \"\\f128\";\n}\n\n.fa-info:before {\n content: \"\\f129\";\n}\n\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n\n.fa-microphone:before {\n content: \"\\f130\";\n}\n\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n\n.fa-shield:before {\n content: \"\\f132\";\n}\n\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n\n.fa-rocket:before {\n content: \"\\f135\";\n}\n\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n\n.fa-html5:before {\n content: \"\\f13b\";\n}\n\n.fa-css3:before {\n content: \"\\f13c\";\n}\n\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n\n.fa-ticket:before {\n content: \"\\f145\";\n}\n\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n\n.fa-level-up:before {\n content: \"\\f148\";\n}\n\n.fa-level-down:before {\n content: \"\\f149\";\n}\n\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n\n.fa-compass:before {\n content: \"\\f14e\";\n}\n\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n\n.fa-gbp:before {\n content: \"\\f154\";\n}\n\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n\n.fa-file:before {\n content: \"\\f15b\";\n}\n\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n\n.fa-youtube:before {\n content: \"\\f167\";\n}\n\n.fa-xing:before {\n content: \"\\f168\";\n}\n\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n\n.fa-adn:before {\n content: \"\\f170\";\n}\n\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n\n.fa-apple:before {\n content: \"\\f179\";\n}\n\n.fa-windows:before {\n content: \"\\f17a\";\n}\n\n.fa-android:before {\n content: \"\\f17b\";\n}\n\n.fa-linux:before {\n content: \"\\f17c\";\n}\n\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n\n.fa-skype:before {\n content: \"\\f17e\";\n}\n\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n\n.fa-trello:before {\n content: \"\\f181\";\n}\n\n.fa-female:before {\n content: \"\\f182\";\n}\n\n.fa-male:before {\n content: \"\\f183\";\n}\n\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n\n.fa-archive:before {\n content: \"\\f187\";\n}\n\n.fa-bug:before {\n content: \"\\f188\";\n}\n\n.fa-vk:before {\n content: \"\\f189\";\n}\n\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n\n.fa-renren:before {\n content: \"\\f18b\";\n}\n\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n\n.fa-slack:before {\n content: \"\\f198\";\n}\n\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n\n.fa-openid:before {\n content: \"\\f19b\";\n}\n\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n\n.fa-google:before {\n content: \"\\f1a0\";\n}\n\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n\n.fa-language:before {\n content: \"\\f1ab\";\n}\n\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n\n.fa-building:before {\n content: \"\\f1ad\";\n}\n\n.fa-child:before {\n content: \"\\f1ae\";\n}\n\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n\n.fa-database:before {\n content: \"\\f1c0\";\n}\n\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n\n.fa-git:before {\n content: \"\\f1d3\";\n}\n\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n\n.fa-history:before {\n content: \"\\f1da\";\n}\n\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n\n.fa-header:before {\n content: \"\\f1dc\";\n}\n\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n\n.fa-at:before {\n content: \"\\f1fa\";\n}\n\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n\n.fa-bus:before {\n content: \"\\f207\";\n}\n\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n\n.fa-angellist:before {\n content: \"\\f209\";\n}\n\n.fa-cc:before {\n content: \"\\f20a\";\n}\n\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n\n.fa-diamond:before {\n content: \"\\f219\";\n}\n\n.fa-ship:before {\n content: \"\\f21a\";\n}\n\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n\n.fa-venus:before {\n content: \"\\f221\";\n}\n\n.fa-mars:before {\n content: \"\\f222\";\n}\n\n.fa-mercury:before {\n content: \"\\f223\";\n}\n\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n\n.fa-server:before {\n content: \"\\f233\";\n}\n\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n\n.fa-user-times:before {\n content: \"\\f235\";\n}\n\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n\n.fa-train:before {\n content: \"\\f238\";\n}\n\n.fa-subway:before {\n content: \"\\f239\";\n}\n\n.fa-medium:before {\n content: \"\\f23a\";\n}\n\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n\n.fa-object-group:before {\n content: \"\\f247\";\n}\n\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n\n.fa-clone:before {\n content: \"\\f24d\";\n}\n\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n\n.fa-registered:before {\n content: \"\\f25d\";\n}\n\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n\n.fa-gg:before {\n content: \"\\f260\";\n}\n\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n\n.fa-safari:before {\n content: \"\\f267\";\n}\n\n.fa-chrome:before {\n content: \"\\f268\";\n}\n\n.fa-firefox:before {\n content: \"\\f269\";\n}\n\n.fa-opera:before {\n content: \"\\f26a\";\n}\n\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n\n.fa-contao:before {\n content: \"\\f26d\";\n}\n\n.fa-500px:before {\n content: \"\\f26e\";\n}\n\n.fa-amazon:before {\n content: \"\\f270\";\n}\n\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n\n.fa-industry:before {\n content: \"\\f275\";\n}\n\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n\n.fa-map-o:before {\n content: \"\\f278\";\n}\n\n.fa-map:before {\n content: \"\\f279\";\n}\n\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n\n.fa-edge:before {\n content: \"\\f282\";\n}\n\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n\n.fa-modx:before {\n content: \"\\f285\";\n}\n\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n\n.fa-usb:before {\n content: \"\\f287\";\n}\n\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n\n.fa-percent:before {\n content: \"\\f295\";\n}\n\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n\n.fa-envira:before {\n content: \"\\f299\";\n}\n\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n\n.fa-blind:before {\n content: \"\\f29d\";\n}\n\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n\n.llms-spinning {\n background: rgba(250, 250, 250, 0.7);\n bottom: 0;\n display: none;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.llms-spinner {\n -webkit-animation: llms-spinning 1.5s linear infinite;\n animation: llms-spinning 1.5s linear infinite;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n border: 4px solid #313131;\n border-radius: 50%;\n height: 40px;\n left: 50%;\n margin-left: -20px;\n margin-top: -20px;\n position: absolute;\n top: 50%;\n width: 40px;\n}\n.llms-spinner.small {\n border-width: 2px;\n height: 20px;\n margin-left: -10px;\n margin-top: -10px;\n width: 20px;\n}\n\n@-webkit-keyframes llms-spinning {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 50% {\n border-radius: 5%;\n }\n 100% {\n -webkit-transform: rotate(220deg);\n transform: rotate(220deg);\n }\n}\n\n@keyframes llms-spinning {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 50% {\n border-radius: 5%;\n }\n 100% {\n -webkit-transform: rotate(220deg);\n transform: rotate(220deg);\n }\n}\n/*# sourceMappingURL=../maps/css/lifterlms.css.map */\n"],"sourceRoot":"../../css"}
\ No newline at end of file
+{"version":3,"sources":["lifterlms.css"],"names":[],"mappings":"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","file":"../../css/lifterlms.min.css","sourcesContent":["@charset \"UTF-8\";\n.llms-pagination ul:before, .llms-pagination ul:after,\n.llms-student-dashboard .llms-sd-items:before,\n.llms-form-fields:before,\n.llms-checkout-cols-2:before,\n.llms-access-plans:before,\n.llms-course-navigation:before,\n.llms-loop-list:before,\n.llms-cols:before,\n.llms-student-dashboard .llms-sd-items:after,\n.llms-form-fields:after,\n.llms-checkout-cols-2:after,\n.llms-access-plans:after,\n.llms-course-navigation:after,\n.llms-loop-list:after,\n.llms-cols:after {\n content: \" \";\n display: table;\n}\n.llms-pagination ul:after,\n.llms-student-dashboard .llms-sd-items:after,\n.llms-form-fields:after,\n.llms-checkout-cols-2:after,\n.llms-access-plans:after,\n.llms-course-navigation:after,\n.llms-loop-list:after,\n.llms-cols:after {\n clear: both;\n}\n\n.llms-cols .llms-col {\n width: 100%;\n}\n@media all and (min-width: 600px) {\n .llms-cols [class*=llms-col-] {\n float: left;\n }\n}\n\n.llms-flex-cols {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n}\n.llms-flex-cols [class*=llms-col] {\n -webkit-box-flex: 0;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n width: 100%;\n}\n\n@media all and (min-width: 600px) {\n .llms-cols .llms-col-1, .llms-flex-cols .llms-col-1 {\n width: 100%;\n }\n .llms-cols .llms-col-2, .llms-flex-cols .llms-col-2 {\n width: 50%;\n }\n .llms-cols .llms-col-3, .llms-flex-cols .llms-col-3 {\n width: 33.3333333333%;\n }\n .llms-cols .llms-col-4, .llms-flex-cols .llms-col-4 {\n width: 25%;\n }\n .llms-cols .llms-col-5, .llms-flex-cols .llms-col-5 {\n width: 20%;\n }\n .llms-cols .llms-col-6, .llms-flex-cols .llms-col-6 {\n width: 16.6666666667%;\n }\n .llms-cols .llms-col-7, .llms-flex-cols .llms-col-7 {\n width: 14.2857142857%;\n }\n .llms-cols .llms-col-8, .llms-flex-cols .llms-col-8 {\n width: 12.5%;\n }\n .llms-cols .llms-col-9, .llms-flex-cols .llms-col-9 {\n width: 11.1111111111%;\n }\n .llms-cols .llms-col-10, .llms-flex-cols .llms-col-10 {\n width: 10%;\n }\n .llms-cols .llms-col-11, .llms-flex-cols .llms-col-11 {\n width: 9.0909090909%;\n }\n .llms-cols .llms-col-12, .llms-flex-cols .llms-col-12 {\n width: 8.3333333333%;\n }\n}\n.llms-button-action,\n.llms-button-danger,\n.llms-button-primary,\n.llms-button-secondary {\n border: none;\n border-radius: 0;\n color: #fefefe;\n cursor: pointer;\n font-size: 16px;\n font-weight: 300;\n text-decoration: none;\n text-shadow: none;\n line-height: 1;\n margin: 0;\n max-width: 100%;\n padding: 12px 24px;\n position: relative;\n -webkit-transition: all 0.5s ease;\n transition: all 0.5s ease;\n}\n.llms-button-action:disabled,\n.llms-button-danger:disabled,\n.llms-button-primary:disabled,\n.llms-button-secondary:disabled {\n opacity: 0.5;\n}\n.llms-button-action:hover, .llms-button-action:active,\n.llms-button-danger:hover,\n.llms-button-danger:active,\n.llms-button-primary:hover,\n.llms-button-primary:active,\n.llms-button-secondary:hover,\n.llms-button-secondary:active {\n color: #fefefe;\n}\n.llms-button-action:focus,\n.llms-button-danger:focus,\n.llms-button-primary:focus,\n.llms-button-secondary:focus {\n color: #fefefe;\n}\n.llms-button-action.auto,\n.llms-button-danger.auto,\n.llms-button-primary.auto,\n.llms-button-secondary.auto {\n width: auto;\n}\n.llms-button-action.full,\n.llms-button-danger.full,\n.llms-button-primary.full,\n.llms-button-secondary.full {\n display: block;\n text-align: center;\n width: 100%;\n}\n.llms-button-action.square,\n.llms-button-danger.square,\n.llms-button-primary.square,\n.llms-button-secondary.square {\n padding: 12px;\n}\n.llms-button-action.small,\n.llms-button-danger.small,\n.llms-button-primary.small,\n.llms-button-secondary.small {\n font-size: 13px;\n padding: 8px 14px;\n}\n.llms-button-action.small.square,\n.llms-button-danger.small.square,\n.llms-button-primary.small.square,\n.llms-button-secondary.small.square {\n padding: 8px;\n}\n.llms-button-action.large,\n.llms-button-danger.large,\n.llms-button-primary.large,\n.llms-button-secondary.large {\n font-size: 18px;\n line-height: 1.2;\n padding: 16px 32px;\n}\n.llms-button-action.large.square,\n.llms-button-danger.large.square,\n.llms-button-primary.large.square,\n.llms-button-secondary.large.square {\n padding: 16px;\n}\n.llms-button-action.large .fa,\n.llms-button-danger.large .fa,\n.llms-button-primary.large .fa,\n.llms-button-secondary.large .fa {\n left: -7px;\n position: relative;\n}\n\n.llms-button-primary {\n background: #2295ff;\n}\n.llms-button-primary:hover, .llms-button-primary.clicked {\n background: #0077e4;\n}\n.llms-button-primary:focus, .llms-button-primary:active {\n background: #4ba9ff;\n}\n\n.llms-button-secondary {\n background: #e1e1e1;\n color: #414141;\n}\n.llms-button-secondary:hover {\n color: #414141;\n background: #cdcdcd;\n}\n.llms-button-secondary:focus, .llms-button-secondary:active {\n color: #414141;\n background: #ebebeb;\n}\n\n.llms-button-action {\n background: #f8954f;\n}\n.llms-button-action:hover, .llms-button-action.clicked {\n background: #f67d28;\n}\n.llms-button-action:focus, .llms-button-action:active {\n background: #faad76;\n}\n\n.llms-button-danger {\n background: #e5554e;\n}\n.llms-button-danger:hover {\n background: #e0332a;\n}\n.llms-button-danger:focus, .llms-button-danger:active {\n background: #e86660;\n}\n\n.llms-donut {\n background-color: #f1f1f1;\n background-image: none;\n border-radius: 50%;\n color: #ef476f;\n height: 200px;\n overflow: hidden;\n position: relative;\n width: 200px;\n}\n.llms-donut:before, .llms-donut:after {\n content: \" \";\n display: table;\n}\n.llms-donut:after {\n clear: both;\n}\n.llms-donut svg {\n overflow: visible !important;\n pointer-events: none;\n width: 100%;\n}\n.llms-donut svg path {\n fill: none;\n stroke-width: 35px;\n stroke: #ef476f;\n}\n.llms-donut.mini {\n height: 36px;\n width: 36px;\n}\n.llms-donut.mini .percentage {\n font-size: 10px;\n}\n.llms-donut.small {\n height: 100px;\n width: 100px;\n}\n.llms-donut.small .percentage {\n font-size: 18px;\n}\n.llms-donut.medium {\n height: 130px;\n width: 130px;\n}\n.llms-donut.medium .percentage {\n font-size: 26px;\n}\n.llms-donut.large {\n height: 260px;\n width: 260px;\n}\n.llms-donut.large .percentage {\n font-size: 48px;\n}\n.llms-donut .inside {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n background: #fff;\n border-radius: 50%;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n height: 80%;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n left: 50%;\n position: absolute;\n text-align: center;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n width: 80%;\n top: 50%;\n z-index: 3;\n}\n.llms-donut .percentage {\n line-height: 1.2;\n font-size: 34px;\n}\n.llms-donut .caption {\n font-size: 50%;\n}\n\n.lifterlms [data-tip],\n.lifterlms [data-title-default],\n.lifterlms [data-title-active],\n.llms-metabox [data-tip],\n.llms-metabox [data-title-default],\n.llms-metabox [data-title-active],\n.llms-mb-container [data-tip],\n.llms-mb-container [data-title-default],\n.llms-mb-container [data-title-active],\n.llms-quiz-wrapper [data-tip],\n.llms-quiz-wrapper [data-title-default],\n.llms-quiz-wrapper [data-title-active] {\n position: relative;\n}\n.lifterlms [data-tip].tip--top-right:before,\n.lifterlms [data-title-default].tip--top-right:before,\n.lifterlms [data-title-active].tip--top-right:before,\n.llms-metabox [data-tip].tip--top-right:before,\n.llms-metabox [data-title-default].tip--top-right:before,\n.llms-metabox [data-title-active].tip--top-right:before,\n.llms-mb-container [data-tip].tip--top-right:before,\n.llms-mb-container [data-title-default].tip--top-right:before,\n.llms-mb-container [data-title-active].tip--top-right:before,\n.llms-quiz-wrapper [data-tip].tip--top-right:before,\n.llms-quiz-wrapper [data-title-default].tip--top-right:before,\n.llms-quiz-wrapper [data-title-active].tip--top-right:before {\n bottom: 100%;\n left: -10px;\n}\n.lifterlms [data-tip].tip--top-right:hover:before,\n.lifterlms [data-title-default].tip--top-right:hover:before,\n.lifterlms [data-title-active].tip--top-right:hover:before,\n.llms-metabox [data-tip].tip--top-right:hover:before,\n.llms-metabox [data-title-default].tip--top-right:hover:before,\n.llms-metabox [data-title-active].tip--top-right:hover:before,\n.llms-mb-container [data-tip].tip--top-right:hover:before,\n.llms-mb-container [data-title-default].tip--top-right:hover:before,\n.llms-mb-container [data-title-active].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before {\n bottom: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--top-right:after,\n.lifterlms [data-title-default].tip--top-right:after,\n.lifterlms [data-title-active].tip--top-right:after,\n.llms-metabox [data-tip].tip--top-right:after,\n.llms-metabox [data-title-default].tip--top-right:after,\n.llms-metabox [data-title-active].tip--top-right:after,\n.llms-mb-container [data-tip].tip--top-right:after,\n.llms-mb-container [data-title-default].tip--top-right:after,\n.llms-mb-container [data-title-active].tip--top-right:after,\n.llms-quiz-wrapper [data-tip].tip--top-right:after,\n.llms-quiz-wrapper [data-title-default].tip--top-right:after,\n.llms-quiz-wrapper [data-title-active].tip--top-right:after {\n border-top-color: #444;\n left: 6px;\n top: 0;\n}\n.lifterlms [data-tip].tip--top-right:hover:after,\n.lifterlms [data-title-default].tip--top-right:hover:after,\n.lifterlms [data-title-active].tip--top-right:hover:after,\n.llms-metabox [data-tip].tip--top-right:hover:after,\n.llms-metabox [data-title-default].tip--top-right:hover:after,\n.llms-metabox [data-title-active].tip--top-right:hover:after,\n.llms-mb-container [data-tip].tip--top-right:hover:after,\n.llms-mb-container [data-title-default].tip--top-right:hover:after,\n.llms-mb-container [data-title-active].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after {\n top: -6px;\n}\n.lifterlms [data-tip].tip--top-left:before,\n.lifterlms [data-title-default].tip--top-left:before,\n.lifterlms [data-title-active].tip--top-left:before,\n.llms-metabox [data-tip].tip--top-left:before,\n.llms-metabox [data-title-default].tip--top-left:before,\n.llms-metabox [data-title-active].tip--top-left:before,\n.llms-mb-container [data-tip].tip--top-left:before,\n.llms-mb-container [data-title-default].tip--top-left:before,\n.llms-mb-container [data-title-active].tip--top-left:before,\n.llms-quiz-wrapper [data-tip].tip--top-left:before,\n.llms-quiz-wrapper [data-title-default].tip--top-left:before,\n.llms-quiz-wrapper [data-title-active].tip--top-left:before {\n bottom: 100%;\n right: -10px;\n}\n.lifterlms [data-tip].tip--top-left:hover:before,\n.lifterlms [data-title-default].tip--top-left:hover:before,\n.lifterlms [data-title-active].tip--top-left:hover:before,\n.llms-metabox [data-tip].tip--top-left:hover:before,\n.llms-metabox [data-title-default].tip--top-left:hover:before,\n.llms-metabox [data-title-active].tip--top-left:hover:before,\n.llms-mb-container [data-tip].tip--top-left:hover:before,\n.llms-mb-container [data-title-default].tip--top-left:hover:before,\n.llms-mb-container [data-title-active].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before {\n bottom: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--top-left:after,\n.lifterlms [data-title-default].tip--top-left:after,\n.lifterlms [data-title-active].tip--top-left:after,\n.llms-metabox [data-tip].tip--top-left:after,\n.llms-metabox [data-title-default].tip--top-left:after,\n.llms-metabox [data-title-active].tip--top-left:after,\n.llms-mb-container [data-tip].tip--top-left:after,\n.llms-mb-container [data-title-default].tip--top-left:after,\n.llms-mb-container [data-title-active].tip--top-left:after,\n.llms-quiz-wrapper [data-tip].tip--top-left:after,\n.llms-quiz-wrapper [data-title-default].tip--top-left:after,\n.llms-quiz-wrapper [data-title-active].tip--top-left:after {\n border-top-color: #444;\n right: 6px;\n top: 0;\n}\n.lifterlms [data-tip].tip--top-left:hover:after,\n.lifterlms [data-title-default].tip--top-left:hover:after,\n.lifterlms [data-title-active].tip--top-left:hover:after,\n.llms-metabox [data-tip].tip--top-left:hover:after,\n.llms-metabox [data-title-default].tip--top-left:hover:after,\n.llms-metabox [data-title-active].tip--top-left:hover:after,\n.llms-mb-container [data-tip].tip--top-left:hover:after,\n.llms-mb-container [data-title-default].tip--top-left:hover:after,\n.llms-mb-container [data-title-active].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after {\n top: -6px;\n}\n.lifterlms [data-tip].tip--bottom-left:before,\n.lifterlms [data-title-default].tip--bottom-left:before,\n.lifterlms [data-title-active].tip--bottom-left:before,\n.llms-metabox [data-tip].tip--bottom-left:before,\n.llms-metabox [data-title-default].tip--bottom-left:before,\n.llms-metabox [data-title-active].tip--bottom-left:before,\n.llms-mb-container [data-tip].tip--bottom-left:before,\n.llms-mb-container [data-title-default].tip--bottom-left:before,\n.llms-mb-container [data-title-active].tip--bottom-left:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:before {\n top: 100%;\n right: -10px;\n}\n.lifterlms [data-tip].tip--bottom-left:hover:before,\n.lifterlms [data-title-default].tip--bottom-left:hover:before,\n.lifterlms [data-title-active].tip--bottom-left:hover:before,\n.llms-metabox [data-tip].tip--bottom-left:hover:before,\n.llms-metabox [data-title-default].tip--bottom-left:hover:before,\n.llms-metabox [data-title-active].tip--bottom-left:hover:before,\n.llms-mb-container [data-tip].tip--bottom-left:hover:before,\n.llms-mb-container [data-title-default].tip--bottom-left:hover:before,\n.llms-mb-container [data-title-active].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before {\n top: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--bottom-left:after,\n.lifterlms [data-title-default].tip--bottom-left:after,\n.lifterlms [data-title-active].tip--bottom-left:after,\n.llms-metabox [data-tip].tip--bottom-left:after,\n.llms-metabox [data-title-default].tip--bottom-left:after,\n.llms-metabox [data-title-active].tip--bottom-left:after,\n.llms-mb-container [data-tip].tip--bottom-left:after,\n.llms-mb-container [data-title-default].tip--bottom-left:after,\n.llms-mb-container [data-title-active].tip--bottom-left:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:after {\n border-bottom-color: #444;\n right: 6px;\n bottom: 0;\n}\n.lifterlms [data-tip].tip--bottom-left:hover:after,\n.lifterlms [data-title-default].tip--bottom-left:hover:after,\n.lifterlms [data-title-active].tip--bottom-left:hover:after,\n.llms-metabox [data-tip].tip--bottom-left:hover:after,\n.llms-metabox [data-title-default].tip--bottom-left:hover:after,\n.llms-metabox [data-title-active].tip--bottom-left:hover:after,\n.llms-mb-container [data-tip].tip--bottom-left:hover:after,\n.llms-mb-container [data-title-default].tip--bottom-left:hover:after,\n.llms-mb-container [data-title-active].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after {\n bottom: -6px;\n}\n.lifterlms [data-tip].tip--bottom-right:before,\n.lifterlms [data-title-default].tip--bottom-right:before,\n.lifterlms [data-title-active].tip--bottom-right:before,\n.llms-metabox [data-tip].tip--bottom-right:before,\n.llms-metabox [data-title-default].tip--bottom-right:before,\n.llms-metabox [data-title-active].tip--bottom-right:before,\n.llms-mb-container [data-tip].tip--bottom-right:before,\n.llms-mb-container [data-title-default].tip--bottom-right:before,\n.llms-mb-container [data-title-active].tip--bottom-right:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:before {\n top: 100%;\n left: -10px;\n}\n.lifterlms [data-tip].tip--bottom-right:hover:before,\n.lifterlms [data-title-default].tip--bottom-right:hover:before,\n.lifterlms [data-title-active].tip--bottom-right:hover:before,\n.llms-metabox [data-tip].tip--bottom-right:hover:before,\n.llms-metabox [data-title-default].tip--bottom-right:hover:before,\n.llms-metabox [data-title-active].tip--bottom-right:hover:before,\n.llms-mb-container [data-tip].tip--bottom-right:hover:before,\n.llms-mb-container [data-title-default].tip--bottom-right:hover:before,\n.llms-mb-container [data-title-active].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before {\n top: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--bottom-right:after,\n.lifterlms [data-title-default].tip--bottom-right:after,\n.lifterlms [data-title-active].tip--bottom-right:after,\n.llms-metabox [data-tip].tip--bottom-right:after,\n.llms-metabox [data-title-default].tip--bottom-right:after,\n.llms-metabox [data-title-active].tip--bottom-right:after,\n.llms-mb-container [data-tip].tip--bottom-right:after,\n.llms-mb-container [data-title-default].tip--bottom-right:after,\n.llms-mb-container [data-title-active].tip--bottom-right:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:after {\n border-bottom-color: #444;\n left: 6px;\n bottom: 0;\n}\n.lifterlms [data-tip].tip--bottom-right:hover:after,\n.lifterlms [data-title-default].tip--bottom-right:hover:after,\n.lifterlms [data-title-active].tip--bottom-right:hover:after,\n.llms-metabox [data-tip].tip--bottom-right:hover:after,\n.llms-metabox [data-title-default].tip--bottom-right:hover:after,\n.llms-metabox [data-title-active].tip--bottom-right:hover:after,\n.llms-mb-container [data-tip].tip--bottom-right:hover:after,\n.llms-mb-container [data-title-default].tip--bottom-right:hover:after,\n.llms-mb-container [data-title-active].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after {\n bottom: -6px;\n}\n.lifterlms [data-tip]:before,\n.lifterlms [data-title-default]:before,\n.lifterlms [data-title-active]:before,\n.llms-metabox [data-tip]:before,\n.llms-metabox [data-title-default]:before,\n.llms-metabox [data-title-active]:before,\n.llms-mb-container [data-tip]:before,\n.llms-mb-container [data-title-default]:before,\n.llms-mb-container [data-title-active]:before,\n.llms-quiz-wrapper [data-tip]:before,\n.llms-quiz-wrapper [data-title-default]:before,\n.llms-quiz-wrapper [data-title-active]:before {\n background: #444;\n border-radius: 4px;\n color: #fff;\n font-size: 13px;\n line-height: 1.2;\n padding: 8px;\n max-width: 300px;\n width: -webkit-max-content;\n width: -moz-max-content;\n width: max-content;\n}\n.lifterlms [data-tip]:after,\n.lifterlms [data-title-default]:after,\n.lifterlms [data-title-active]:after,\n.llms-metabox [data-tip]:after,\n.llms-metabox [data-title-default]:after,\n.llms-metabox [data-title-active]:after,\n.llms-mb-container [data-tip]:after,\n.llms-mb-container [data-title-default]:after,\n.llms-mb-container [data-title-active]:after,\n.llms-quiz-wrapper [data-tip]:after,\n.llms-quiz-wrapper [data-title-default]:after,\n.llms-quiz-wrapper [data-title-active]:after {\n content: \"\";\n border: 6px solid transparent;\n height: 0;\n width: 0;\n}\n.lifterlms [data-tip]:before, .lifterlms [data-tip]:after,\n.lifterlms [data-title-default]:before,\n.lifterlms [data-title-default]:after,\n.lifterlms [data-title-active]:before,\n.lifterlms [data-title-active]:after,\n.llms-metabox [data-tip]:before,\n.llms-metabox [data-tip]:after,\n.llms-metabox [data-title-default]:before,\n.llms-metabox [data-title-default]:after,\n.llms-metabox [data-title-active]:before,\n.llms-metabox [data-title-active]:after,\n.llms-mb-container [data-tip]:before,\n.llms-mb-container [data-tip]:after,\n.llms-mb-container [data-title-default]:before,\n.llms-mb-container [data-title-default]:after,\n.llms-mb-container [data-title-active]:before,\n.llms-mb-container [data-title-active]:after,\n.llms-quiz-wrapper [data-tip]:before,\n.llms-quiz-wrapper [data-tip]:after,\n.llms-quiz-wrapper [data-title-default]:before,\n.llms-quiz-wrapper [data-title-default]:after,\n.llms-quiz-wrapper [data-title-active]:before,\n.llms-quiz-wrapper [data-title-active]:after {\n opacity: 0;\n -webkit-transition: all 0.2s 0.1s ease;\n transition: all 0.2s 0.1s ease;\n position: absolute;\n pointer-events: none;\n visibility: hidden;\n}\n.lifterlms [data-tip]:hover:before, .lifterlms [data-tip]:hover:after,\n.lifterlms [data-title-default]:hover:before,\n.lifterlms [data-title-default]:hover:after,\n.lifterlms [data-title-active]:hover:before,\n.lifterlms [data-title-active]:hover:after,\n.llms-metabox [data-tip]:hover:before,\n.llms-metabox [data-tip]:hover:after,\n.llms-metabox [data-title-default]:hover:before,\n.llms-metabox [data-title-default]:hover:after,\n.llms-metabox [data-title-active]:hover:before,\n.llms-metabox [data-title-active]:hover:after,\n.llms-mb-container [data-tip]:hover:before,\n.llms-mb-container [data-tip]:hover:after,\n.llms-mb-container [data-title-default]:hover:before,\n.llms-mb-container [data-title-default]:hover:after,\n.llms-mb-container [data-title-active]:hover:before,\n.llms-mb-container [data-title-active]:hover:after,\n.llms-quiz-wrapper [data-tip]:hover:before,\n.llms-quiz-wrapper [data-tip]:hover:after,\n.llms-quiz-wrapper [data-title-default]:hover:before,\n.llms-quiz-wrapper [data-title-default]:hover:after,\n.llms-quiz-wrapper [data-title-active]:hover:before,\n.llms-quiz-wrapper [data-title-active]:hover:after {\n opacity: 1;\n -webkit-transition: all 0.2s 0.6s ease;\n transition: all 0.2s 0.6s ease;\n visibility: visible;\n z-index: 99999999;\n}\n.lifterlms [data-tip]:before,\n.llms-metabox [data-tip]:before,\n.llms-mb-container [data-tip]:before,\n.llms-quiz-wrapper [data-tip]:before {\n content: attr(data-tip);\n}\n.lifterlms [data-tip].active:before,\n.llms-metabox [data-tip].active:before,\n.llms-mb-container [data-tip].active:before,\n.llms-quiz-wrapper [data-tip].active:before {\n content: attr(data-tip-active);\n}\n\n.llms-membership-image {\n display: block;\n margin: 0 auto;\n}\n\n.llms-course-image {\n display: block;\n margin: 0 auto;\n max-width: 100%;\n}\n\n.llms-featured-image {\n display: block;\n margin: 0 auto;\n}\n\n.llms-image-thumb {\n width: 150px;\n}\n\n.llms-video-wrapper .center-video {\n height: auto;\n max-width: 100%;\n overflow: hidden;\n position: relative;\n padding-top: 56.25%;\n text-align: center;\n}\n.llms-video-wrapper .center-video > .wp-video,\n.llms-video-wrapper .center-video .fluid-width-video-wrapper,\n.llms-video-wrapper .center-video iframe, .llms-video-wrapper .center-video object, .llms-video-wrapper .center-video embed {\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.llms-video-wrapper .center-video > .wp-video {\n width: 100% !important;\n}\n.llms-video-wrapper .center-video .fluid-width-video-wrapper {\n padding-top: 0 !important;\n}\n\n.clear {\n clear: both;\n width: 100%;\n}\n\n.llms-featured-image {\n text-align: center;\n}\n\n#main-content .llms-payment-options p {\n margin: 0;\n font-size: 16px;\n}\n\n.llms-option {\n display: block;\n position: relative;\n margin: 20px 0;\n padding-left: 40px;\n font-size: 16px;\n}\n.llms-option label {\n cursor: pointer;\n position: static;\n}\n\n.llms-option:first-child {\n margin-top: 0;\n}\n\n.llms-option:last-child {\n margin-bottom: 0;\n}\n\n#main-content .llms-option:last-child {\n margin-bottom: 0;\n}\n\n.llms-option input[type=radio] {\n display: block;\n position: absolute;\n top: 3px;\n left: 0;\n z-index: 0;\n}\n\n.llms-option input[type=radio] {\n display: inline-block;\n}\n\n.llms-option input[type=radio] + label span.llms-radio {\n display: none;\n}\n\n.llms-option input[type=radio] + label span.llms-radio {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n z-index: 20;\n position: absolute;\n top: 0;\n left: -2px;\n display: inline-block;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n cursor: pointer;\n vertical-align: middle;\n -webkit-box-shadow: rgba(255, 255, 255, 0.15) 0 1px 1px, inset rgba(0, 0, 0, 0.5) 0 0 0 1px;\n box-shadow: rgba(255, 255, 255, 0.15) 0 1px 1px, inset rgba(0, 0, 0, 0.5) 0 0 0 1px;\n background: #efefef;\n background-image: radial-gradient(ellipse at center, #e5554e 0%, #e5554e 40%, #efefef 45%);\n background-repeat: no-repeat;\n -webkit-transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n}\n\n.llms-option input[type=radio]:checked + label span.llms-radio {\n -webkit-transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n}\n\n.llms-option input[type=radio] + label span.llms-radio {\n background-position: -24px 0;\n}\n\n.llms-option input[type=radio]:checked + label span.llms-radio {\n background-position: 0 0;\n}\n\n.llms-option input[type=submit] {\n border: none;\n background: #e5554e;\n color: #fff;\n font-size: 20px;\n padding: 10px 0;\n border-radius: 3px;\n cursor: pointer;\n width: 100%;\n}\n\n.llms-styled-text {\n padding: 14px 0;\n}\n\n.llms-notice-box {\n border-radius: 3px;\n z-index: 10;\n margin: 10px 0;\n padding: 15px 20px;\n border: 1px solid #ccc;\n list-style-type: none;\n width: 100%;\n overflow: auto;\n}\n.llms-notice-box input[type=text] {\n height: auto;\n}\n.llms-notice-box .col-1-1 {\n width: 100%;\n}\n.llms-notice-box .col-1-1 input[type=text] {\n width: 100%;\n}\n.llms-notice-box .col-1-2 {\n width: 50%;\n float: left;\n}\n@media screen and (max-width: 768px) {\n .llms-notice-box .col-1-2 {\n width: 100%;\n }\n}\n.llms-notice-box .col-1-3 {\n width: 33%;\n float: left;\n margin-right: 10px;\n}\n.llms-notice-box .col-1-4 {\n width: 25%;\n float: left;\n margin-right: 10px;\n}\n@media screen and (max-width: 768px) {\n .llms-notice-box .col-1-4 {\n width: 100%;\n }\n}\n.llms-notice-box .col-1-6 {\n width: 16.6%;\n float: left;\n margin-right: 10px;\n}\n.llms-notice-box .col-1-8 {\n width: 11%;\n float: right;\n}\n.llms-notice-box .llms-pad-right {\n padding-right: 10px;\n}\n@media screen and (max-width: 768px) {\n .llms-notice-box .llms-pad-right {\n padding-right: 0;\n }\n}\n\ninput[type=text].cc_cvv,\n#cc_cvv {\n margin-right: 0;\n width: 23%;\n float: right;\n}\n\n.llms-clear-box {\n border-radius: 3px;\n z-index: 10;\n margin: 10px 0;\n padding: 15px 20px;\n list-style-type: none;\n width: 100%;\n overflow: auto;\n}\n\n.llms-price-label {\n font-weight: normal;\n}\n\n.llms-final-price {\n font-weight: bold;\n float: right;\n}\n\n.llms-center-content {\n text-align: center;\n}\n\n.llms-input-text {\n background-color: #fff;\n border: 1px solid #ddd;\n color: #333;\n font-size: 18px;\n font-weight: 300;\n padding: 16px;\n width: 100%;\n}\n\n.llms-price {\n margin-bottom: 0;\n font-weight: bold;\n}\n\n.llms-price-loop {\n margin-bottom: 0;\n font-weight: bold;\n}\n\n.courses .entry {\n padding: 0;\n}\n\n.list-view .site-content .llms-course-list .hentry, .list-view .site-content .llms-membership-list .hentry {\n border-top: 0;\n padding-top: 0;\n}\n\n.llms-content {\n width: 100%;\n}\n\n.llms-lesson-button-wrapper {\n width: 100%;\n display: block;\n clear: both;\n text-align: center;\n}\n\n.llms-template-wrapper {\n width: 100%;\n display: block;\n clear: both;\n}\n\n.llms-button-wrapper {\n width: 100%;\n display: block;\n clear: both;\n text-align: center;\n}\n\n.llms-styled-select {\n border: 1px solid #ccc;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n border-radius: 3px;\n overflow: hidden;\n position: relative;\n}\n\n.llms-styled-select, .llms-styled-select select {\n width: 100%;\n}\n\nselect:focus {\n outline: none;\n}\n\n.llms-styled-select select {\n height: 34px;\n padding: 5px 0 5px 5px;\n background: transparent;\n border: none;\n -webkit-appearance: none;\n font-size: 16px;\n color: #444444;\n}\n\n@-moz-document url-prefix() {\n .--ms-styled-select select {\n width: 110%;\n }\n}\n.llms-styled-select .fa-sort-desc {\n position: absolute;\n top: 0;\n right: 12px;\n font-size: 24px;\n color: #ccc;\n}\n\nselect::-ms-expand {\n display: none;\n}\n\n_:-o-prefocus .llms-styled-select, .selector .llms-styled-select {\n background: none;\n}\n\n.llms-form-item-wrapper {\n margin-bottom: 1em;\n}\n\n/* Circle Graph */\n.llms-progress-circle {\n position: relative;\n width: 200px;\n height: 200px;\n float: left;\n}\n\n.llms-progress-circle-count {\n top: 27%;\n position: absolute;\n width: 94%;\n text-align: center;\n color: #666;\n font-size: 44px;\n}\n\n.llms-progress-circle svg {\n position: absolute;\n width: 200px;\n height: 200px;\n}\n\n.llms-progress-circle circle {\n fill: transparent;\n}\n\nsvg .llms-background-circle {\n fill: transparent;\n stroke-width: 10px;\n stroke: #f1f2f1;\n stroke-dasharray: 430;\n}\n\nsvg .llms-animated-circle {\n fill: transparent;\n stroke-width: 10px;\n stroke: #e5554e;\n stroke-dasharray: 430;\n stroke-dashoffset: 410;\n}\n\n.llms-widget-syllabus .llms-lesson.current-lesson .lesson-title {\n font-weight: 700;\n}\n.llms-widget-syllabus .llms-lesson-complete, .llms-widget-syllabus .lesson-complete-placeholder {\n font-size: 1.2em;\n margin-right: 6px;\n color: #ccc;\n}\n.llms-widget-syllabus .llms-lesson-complete.done, .llms-widget-syllabus .lesson-complete-placeholder.done {\n color: #e5554e;\n}\n.llms-widget-syllabus .section-title {\n font-weight: bold;\n}\n.llms-widget-syllabus .lesson-title a {\n text-decoration: none;\n}\n.llms-widget-syllabus .lesson-title a:hover {\n text-decoration: none !important;\n}\n.llms-widget-syllabus .lesson-title.done a {\n color: #999;\n text-decoration: line-through;\n}\n.llms-widget-syllabus ul {\n list-style-type: none;\n}\n.llms-widget-syllabus ul li {\n list-style-type: none;\n}\n.llms-widget-syllabus ul li ul li {\n margin: 0 0 2px 0;\n padding: 0;\n}\n\n.llms-remove-coupon {\n float: right;\n}\n\n.llms-lesson-link-locked, .llms-lesson-link-locked:hover {\n background: #f1f1f1;\n -webkit-box-shadow: 0 1px 2px 0 rgba(1, 1, 1, 0.4);\n box-shadow: 0 1px 2px 0 rgba(1, 1, 1, 0.4);\n display: block;\n color: #a6a6a6;\n min-height: 85px;\n padding: 15px;\n text-decoration: none;\n position: relative;\n}\n\n.llms-lesson-preview.is-complete .llms-lesson-link-locked {\n padding-left: 75px;\n}\n\n.llms-lesson-tooltip {\n display: none;\n position: absolute;\n color: #000000;\n background-color: #c0c0c0;\n padding: 0.25em;\n border-radius: 2px;\n z-index: 100;\n top: 0;\n left: 50%;\n text-align: center;\n -webkit-transform: translateX(-50%) translateY(-100%);\n transform: translateX(-50%) translateY(-100%);\n}\n\n/* arrows - :after */\n.llms-lesson-tooltip:after {\n content: \"\";\n width: 0;\n height: 0;\n border-top: 8px solid #c0c0c0;\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n position: absolute;\n bottom: -8px;\n left: 50%;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%);\n}\n\n.llms-lesson-tooltip.active {\n display: inline-block;\n}\n\n.llms-loop-list {\n list-style: none;\n margin: 0 -10px;\n padding: 0;\n}\n@media all and (min-width: 600px) {\n .llms-loop-list.cols-1 .llms-loop-item {\n width: 100%;\n }\n .llms-loop-list.cols-2 .llms-loop-item {\n width: 50%;\n }\n .llms-loop-list.cols-3 .llms-loop-item {\n width: 33.3333333333%;\n }\n .llms-loop-list.cols-4 .llms-loop-item {\n width: 25%;\n }\n .llms-loop-list.cols-5 .llms-loop-item {\n width: 20%;\n }\n .llms-loop-list.cols-6 .llms-loop-item {\n width: 16.6666666667%;\n }\n}\n\n.llms-loop-item {\n float: left;\n list-style: none;\n margin: 0;\n padding: 0;\n width: 100%;\n}\n\n.llms-loop-item-content {\n background: #f1f1f1;\n padding-bottom: 10px;\n margin: 10px;\n}\n.llms-loop-item-content:hover {\n background: #eaeaea;\n}\n.llms-loop-item-content .llms-loop-link {\n color: #212121;\n display: block;\n}\n.llms-loop-item-content .llms-loop-link:visited {\n color: #212121;\n}\n.llms-loop-item-content .llms-featured-image {\n display: block;\n max-width: 100%;\n}\n.llms-loop-item-content .llms-loop-title {\n margin-top: 5px;\n}\n.llms-loop-item-content .llms-loop-title:hover {\n color: #2295ff;\n}\n.llms-loop-item-content .llms-meta,\n.llms-loop-item-content .llms-author,\n.llms-loop-item-content .llms-loop-title {\n padding: 0 10px;\n}\n.llms-loop-item-content .llms-meta,\n.llms-loop-item-content .llms-author {\n color: #444;\n display: block;\n font-size: 13px;\n margin-bottom: 3px;\n}\n.llms-loop-item-content .llms-meta:last-child,\n.llms-loop-item-content .llms-author:last-child {\n margin-bottom: 0;\n}\n.llms-loop-item-content .llms-featured-img-wrap {\n overflow: hidden;\n}\n.llms-loop-item-content p {\n margin-bottom: 0;\n}\n.llms-loop-item-content .llms-progress {\n margin: 0;\n height: 0.4em;\n}\n.llms-loop-item-content .llms-progress .progress__indicator {\n display: none;\n}\n.llms-loop-item-content .llms-progress .llms-progress-bar {\n background-color: #f6f6f6;\n right: 0;\n top: 0;\n}\n\n.course .llms-meta-info {\n margin: 20px 0;\n}\n.course .llms-meta-info .llms-meta-title {\n margin-bottom: 5px;\n}\n.course .llms-meta-info .llms-meta p {\n margin-bottom: 0;\n}\n.course .llms-meta-info .llms-meta span {\n font-weight: 700;\n}\n.course .llms-course-progress {\n margin: 40px auto;\n max-width: 480px;\n text-align: center;\n}\n\n.llms-syllabus-wrapper {\n margin: 15px;\n text-align: center;\n}\n.llms-syllabus-wrapper .llms-section-title {\n margin: 25px 0 0;\n}\n\n.llms-course-navigation .llms-prev-lesson,\n.llms-course-navigation .llms-next-lesson,\n.llms-course-navigation .llms-back-to-course {\n width: 49%;\n}\n.llms-course-navigation .llms-prev-lesson,\n.llms-course-navigation .llms-back-to-course {\n float: left;\n margin-right: 0.5%;\n}\n.llms-course-navigation .llms-next-lesson,\n.llms-course-navigation .llms-prev-lesson + .llms-back-to-course {\n float: right;\n margin-left: 0.5%;\n}\n\n.llms-lesson-preview {\n display: inline-block;\n margin-top: 15px;\n max-width: 100%;\n position: relative;\n width: 480px;\n}\n.llms-lesson-preview .llms-lesson-link {\n background: #f1f1f1;\n color: #212121;\n display: block;\n padding: 15px;\n text-decoration: none;\n}\n.llms-lesson-preview .llms-lesson-link:before, .llms-lesson-preview .llms-lesson-link:after {\n content: \" \";\n display: table;\n}\n.llms-lesson-preview .llms-lesson-link:after {\n clear: both;\n}\n.llms-lesson-preview .llms-lesson-link:hover {\n background: #eaeaea;\n}\n.llms-lesson-preview .llms-lesson-link:visited {\n color: #212121;\n}\n.llms-lesson-preview .llms-lesson-thumbnail {\n margin-bottom: 10px;\n}\n.llms-lesson-preview .llms-lesson-thumbnail img {\n display: block;\n width: 100%;\n}\n.llms-lesson-preview .llms-pre-text {\n text-align: left;\n}\n.llms-lesson-preview .llms-lesson-title {\n font-weight: 700;\n margin: 0 auto 10px;\n text-align: left;\n}\n.llms-lesson-preview .llms-lesson-title:last-child {\n margin-bottom: 0;\n}\n.llms-lesson-preview .llms-lesson-excerpt {\n text-align: left;\n}\n.llms-lesson-preview .llms-main {\n float: left;\n width: 100%;\n}\n.llms-lesson-preview .llms-extra {\n float: right;\n width: 15%;\n}\n.llms-lesson-preview .llms-extra + .llms-main {\n width: 85%;\n}\n.llms-lesson-preview .llms-lesson-counter,\n.llms-lesson-preview .llms-free-lesson-svg,\n.llms-lesson-preview .llms-lesson-complete,\n.llms-lesson-preview .llms-lesson-complete-placeholder {\n display: block;\n font-size: 32px;\n margin-bottom: 15px;\n}\n.llms-lesson-preview.is-free .llms-lesson-complete, .llms-lesson-preview.is-complete .llms-lesson-complete {\n color: #2295ff;\n}\n.llms-lesson-preview .llms-icon-free {\n background: #2295ff;\n border-radius: 4px;\n color: #f1f1f1;\n display: inline-block;\n padding: 5px 6px 4px;\n line-height: 1;\n font-size: 14px;\n}\n.llms-lesson-preview.is-incomplete .llms-lesson-complete {\n color: #cacaca;\n}\n.llms-lesson-preview .llms-lesson-counter {\n font-size: 16px;\n line-height: 1;\n}\n.llms-lesson-preview .llms-free-lesson-svg {\n fill: currentColor;\n height: 23px;\n width: 50px;\n}\n.llms-lesson-preview p {\n margin-bottom: 0;\n}\n\n/* progress bar */\n.llms-progress {\n clear: both;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: reverse;\n -ms-flex-direction: row-reverse;\n flex-direction: row-reverse;\n position: relative;\n height: 1em;\n width: 100%;\n margin: 15px 0;\n}\n\n.llms-progress .llms-progress-bar {\n background-color: #f1f2f1;\n position: relative;\n height: 0.4em;\n top: 0.3em;\n width: 100%;\n}\n\n.llms-progress .progress-bar-complete {\n background-color: #ef476f;\n height: 100%;\n}\n\n.progress__indicator {\n float: right;\n text-align: right;\n height: 1em;\n line-height: 1em;\n margin-left: 5px;\n white-space: nowrap;\n}\n\n.llms-author .name {\n margin-left: 5px;\n}\n.llms-author .label {\n margin-left: 5px;\n}\n.llms-author .avatar {\n border-radius: 50%;\n}\n.llms-author .bio {\n margin-top: 5px;\n}\n\n.llms-instructor-info .llms-instructors .llms-col:first-child .llms-author {\n margin-left: 0;\n}\n.llms-instructor-info .llms-instructors .llms-col:last-child .llms-author {\n margin-right: 0;\n}\n.llms-instructor-info .llms-instructors .llms-author {\n background: #f5f5f5;\n border-top: 4px solid #2295ff;\n text-align: center;\n margin: 45px 5px 5px;\n padding: 0 10px 10px;\n}\n.llms-instructor-info .llms-instructors .llms-author .avatar {\n background: #2295ff;\n border: 4px solid #2295ff;\n display: block;\n margin: -35px auto 10px;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info {\n display: block;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info.name {\n font-weight: 700;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info.label {\n font-size: 85%;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info.bio {\n font-size: 90%;\n margin-bottom: 0;\n}\n\n.llms-notice {\n background: rgba(34, 149, 255, 0.3);\n border-color: #2295ff;\n border-style: solid;\n border-width: 3px;\n padding: 10px;\n margin-bottom: 10px;\n}\n.llms-notice p:last-child, .llms-notice ul:last-child {\n margin-bottom: 0;\n}\n.llms-notice li {\n list-style-type: none;\n}\n.llms-notice.llms-debug {\n background: rgba(202, 202, 202, 0.3);\n border-color: #cacaca;\n}\n.llms-notice.llms-error {\n background: rgba(229, 85, 78, 0.3);\n border-color: #e5554e;\n}\n.llms-notice.llms-success {\n background: rgba(131, 195, 115, 0.3);\n border-color: #83c373;\n}\n\n.entry-content .llms-notice {\n margin: 0 0 10px;\n}\n.entry-content .llms-notice li {\n list-style-type: none;\n}\n\nul.llms-achievements-loop,\n.lifterlms ul.llms-achievements-loop,\nul.llms-certificates-loop,\n.lifterlms ul.llms-certificates-loop {\n list-style-type: none;\n margin: 0 -10px;\n padding: 0;\n}\nul.llms-achievements-loop:before, ul.llms-achievements-loop:after,\n.lifterlms ul.llms-achievements-loop:before,\n.lifterlms ul.llms-achievements-loop:after,\nul.llms-certificates-loop:before,\nul.llms-certificates-loop:after,\n.lifterlms ul.llms-certificates-loop:before,\n.lifterlms ul.llms-certificates-loop:after {\n content: \" \";\n display: table;\n}\nul.llms-achievements-loop:after,\n.lifterlms ul.llms-achievements-loop:after,\nul.llms-certificates-loop:after,\n.lifterlms ul.llms-certificates-loop:after {\n clear: both;\n}\nul.llms-achievements-loop li.llms-achievement-loop-item,\nul.llms-achievements-loop li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop li.llms-certificate-loop-item,\nul.llms-certificates-loop li.llms-achievement-loop-item,\nul.llms-certificates-loop li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop li.llms-certificate-loop-item {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n display: block;\n float: left;\n list-style-type: none;\n margin: 0;\n padding: 10px;\n width: 100%;\n}\n@media all and (min-width: 600px) {\n ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item {\n width: 100%;\n }\n ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item {\n width: 50%;\n }\n ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item {\n width: 33.3333333333%;\n }\n ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item {\n width: 25%;\n }\n ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item {\n width: 20%;\n }\n}\n\n.llms-achievement,\n.llms-certificate {\n background: #f1f1f1;\n border: none;\n color: inherit;\n display: block;\n text-decoration: none;\n width: 100%;\n}\n.llms-achievement:hover,\n.llms-certificate:hover {\n background: #eaeaea;\n}\n.llms-achievement .llms-achievement-img,\n.llms-certificate .llms-achievement-img {\n display: block;\n margin: 0;\n width: 100%;\n}\n.llms-achievement .llms-achievement-title,\n.llms-certificate .llms-achievement-title {\n font-size: 16px;\n margin: 0;\n padding: 10px;\n text-align: center;\n}\n.llms-achievement .llms-certificate-title,\n.llms-certificate .llms-certificate-title {\n font-size: 16px;\n margin: 0;\n padding: 0 0 10px;\n}\n.llms-achievement .llms-achievement-info,\n.llms-achievement .llms-achievement-date,\n.llms-certificate .llms-achievement-info,\n.llms-certificate .llms-achievement-date {\n display: none;\n}\n.llms-achievement .llms-achievement-content,\n.llms-certificate .llms-achievement-content {\n padding: 20px;\n}\n.llms-achievement .llms-achievement-content:empty,\n.llms-certificate .llms-achievement-content:empty {\n padding: 0;\n}\n.llms-achievement .llms-achievement-content *:last-child,\n.llms-certificate .llms-achievement-content *:last-child {\n margin-bottom: 0;\n}\n\n.llms-certificate {\n border: 4px double #f1f1f1;\n padding: 20px 10px;\n background: #fff;\n text-align: center;\n}\n.llms-certificate:hover {\n background: #fff;\n border-color: #eaeaea;\n}\n\n.llms-achievement-modal .llms-achievement {\n background: #fff;\n}\n.llms-achievement-modal .llms-achievement-info {\n display: block;\n}\n.llms-achievement-modal .llms-achievement-title {\n display: none;\n}\n\n.llms-notification {\n background: #fff;\n -webkit-box-shadow: 0 1px 2px -2px #333, 0 1px 1px -1px #333;\n box-shadow: 0 1px 2px -2px #333, 0 1px 1px -1px #333;\n border-top: 4px solid #2295ff;\n left: 12px;\n opacity: 0;\n padding: 12px;\n position: fixed;\n right: 12px;\n top: 24px;\n -webkit-transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out;\n transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out;\n visibility: none;\n width: auto;\n z-index: 9999999;\n}\n.llms-notification:before, .llms-notification:after {\n content: \" \";\n display: table;\n}\n.llms-notification:after {\n clear: both;\n}\n.llms-notification.visible {\n opacity: 1;\n -webkit-transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;\n transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;\n transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, transform 0.2s ease-in-out;\n transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;\n visibility: visible;\n}\n.llms-notification.visible:hover .llms-notification-dismiss {\n opacity: 1;\n}\n.llms-notification .llms-notification-content {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.llms-notification .llms-notification-main {\n -ms-flex-item-align: start;\n align-self: flex-start;\n -webkit-box-flex: 4;\n -ms-flex: 4;\n flex: 4;\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n}\n.llms-notification .llms-notification-title {\n font-size: 18px;\n margin: 0;\n}\n.llms-notification .llms-notification-body {\n font-size: 14px;\n line-height: 1.4;\n}\n.llms-notification .llms-notification-body p, .llms-notification .llms-notification-body li {\n font-size: inherit;\n}\n.llms-notification .llms-notification-body p {\n margin-bottom: 8px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert {\n background: #f6f6f6;\n border: 1px solid #d0d0d0;\n -webkit-box-shadow: inset 0 0 0 3px #fefefe, inset 0 0 0 4px #dedede;\n box-shadow: inset 0 0 0 3px #fefefe, inset 0 0 0 4px #dedede;\n padding: 16px 16px 24px;\n margin-top: 12px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert-title {\n font-size: 16px;\n font-weight: 700;\n margin: 12px auto;\n text-align: center;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body {\n width: 100%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(1) {\n width: 65%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(2) {\n width: 35%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(3) {\n width: 85%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(4) {\n width: 75%;\n margin-top: 18px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(5) {\n width: 70%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(6) {\n margin-left: 12px;\n margin-bottom: -24px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(7) {\n width: 65%;\n margin-right: 12px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-line {\n border-radius: 2px;\n height: 8px;\n background: #b0b0b0;\n background-image: -webkit-gradient(linear, left top, right top, from(#b0b0b0), color-stop(20%, #a0a0a0), color-stop(40%, #b0b0b0), to(#b0b0b0));\n background-image: linear-gradient(to right, #b0b0b0 0%, #a0a0a0 20%, #b0b0b0 40%, #b0b0b0 100%);\n background-repeat: no-repeat;\n margin: 4px auto;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-dot {\n background: #b0b0b0;\n border-radius: 50%;\n display: inline-block;\n content: \"\";\n height: 24px;\n width: 24px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert p {\n margin-bottom: 0;\n}\n.llms-notification .llms-notification-aside {\n -ms-flex-item-align: start;\n align-self: flex-start;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n margin-right: 12px;\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n}\n.llms-notification .llms-notification-icon {\n display: block;\n max-width: 64px;\n}\n.llms-notification .llms-notification-footer {\n border-top: 1px solid #e5e5e5;\n font-size: 12px;\n margin-top: 12px;\n padding: 6px 6px 0;\n text-align: right;\n}\n.llms-notification .llms-notification-dismiss {\n color: #e5554e;\n cursor: pointer;\n font-size: 22px;\n position: absolute;\n right: 10px;\n top: 8px;\n -webkit-transition: opacity 0.4s ease-in-out;\n transition: opacity 0.4s ease-in-out;\n}\n\n.llms-sd-notification-center .llms-notification-list,\n.llms-sd-notification-center .llms-notification-list-item {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-sd-notification-center .llms-notification-list-item:hover .llms-notification {\n background: #fcfcfc;\n}\n.llms-sd-notification-center .llms-notification {\n opacity: 1;\n border-top: 1px solid #e5e5e5;\n left: auto;\n padding: 24px;\n position: relative;\n right: auto;\n top: auto;\n visibility: visible;\n width: auto;\n}\n.llms-sd-notification-center .llms-notification .llms-notification-aside {\n max-width: 64px;\n}\n.llms-sd-notification-center .llms-notification .llms-notification-footer {\n border: none;\n padding: 0;\n text-align: left;\n}\n.llms-sd-notification-center .llms-notification .llms-progress {\n display: none !important;\n}\n.llms-sd-notification-center .llms-notification .llms-notification-date {\n color: #515151;\n float: left;\n margin-right: 6px;\n}\n.llms-sd-notification-center .llms-notification .llms-mini-cert {\n margin: 0 auto;\n max-width: 380px;\n}\n\n@media all and (min-width: 480px) {\n .llms-notification {\n left: auto;\n right: -800px;\n width: 360px;\n }\n .llms-notification.visible {\n right: 24px;\n }\n .llms-notification .llms-notification-dismiss {\n opacity: 0;\n }\n}\n.llms-pagination ul {\n list-style-type: none;\n}\n.llms-pagination ul li {\n float: left;\n}\n.llms-pagination ul li a {\n border-bottom: 0;\n text-decoration: none;\n}\n.llms-pagination ul li .page-numbers {\n padding: 0.5em;\n text-decoration: underline;\n}\n.llms-pagination ul li .page-numbers.current {\n text-decoration: none;\n}\n\n.llms-tooltip {\n background: #2a2a2a;\n border-radius: 4px;\n color: #fff;\n font-size: 14px;\n line-height: 1.2;\n opacity: 0;\n top: -20px;\n padding: 8px 12px;\n left: 50%;\n position: absolute;\n pointer-events: none;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%);\n -webkit-transition: opacity 0.2s ease, top 0.2s ease;\n transition: opacity 0.2s ease, top 0.2s ease;\n max-width: 320px;\n}\n.llms-tooltip.show {\n top: -28px;\n opacity: 1;\n}\n.llms-tooltip:after {\n bottom: -8px;\n border-top: 8px solid #2a2a2a;\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n content: \"\";\n height: 0;\n left: 50%;\n position: absolute;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%);\n width: 0;\n}\n\n.webui-popover-title {\n font-size: initial;\n font-weight: initial;\n line-height: initial;\n}\n\n.webui-popover-inverse .webui-popover-inner .close {\n color: #fff;\n opacity: 0.6;\n text-shadow: none;\n}\n.webui-popover-inverse .webui-popover-inner .close:hover {\n opacity: 0.8;\n}\n.webui-popover-inverse .webui-popover-content a {\n color: #fff;\n text-decoration: underline;\n}\n.webui-popover-inverse .webui-popover-content a:hover {\n text-decoration: none;\n}\n\n.single-llms_quiz .llms-quiz-attempt-results {\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question {\n background: #efefef;\n margin: 0 0 10px;\n position: relative;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer {\n color: inherit;\n display: block;\n padding: 10px 35px 10px 10px;\n text-decoration: none;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:before, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:after {\n content: \" \";\n display: table;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer:after {\n clear: both;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect {\n background: rgba(255, 146, 43, 0.2);\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon {\n background-color: #ff922b;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct {\n background: rgba(131, 195, 115, 0.2);\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon {\n background-color: #83c373;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect {\n background: rgba(229, 85, 78, 0.2);\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon {\n background-color: #e5554e;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title {\n float: left;\n margin: 0;\n line-height: 1;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points {\n float: right;\n line-height: 1;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip {\n position: absolute;\n right: -12px;\n top: -2px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon {\n color: rgba(255, 255, 255, 0.65);\n border-radius: 50%;\n font-size: 30px;\n height: 40px;\n line-height: 40px;\n text-align: center;\n width: 40px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main {\n display: none;\n padding: 0 10px 10px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label {\n font-weight: 700;\n margin-bottom: 10px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers {\n margin: 0;\n padding: 0;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {\n padding: 0;\n margin: 0 0 0 30px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child {\n list-style-type: none;\n margin-left: 0;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img {\n height: auto;\n max-width: 200px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section {\n border-top: 2px solid rgba(255, 255, 255, 0.5);\n margin-top: 20px;\n padding-top: 20px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child {\n border-top: none;\n margin-top: 0;\n padding-top: 0;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer, .single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {\n display: inline-block;\n list-style-type: none;\n margin: 0;\n padding: 5px;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed {\n opacity: 0.5;\n}\n.single-llms_quiz .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title {\n font-style: italic;\n font-weight: normal;\n}\n.single-llms_quiz .llms-return {\n margin-bottom: 10px;\n}\n.single-llms_quiz .llms-quiz-results:before, .single-llms_quiz .llms-quiz-results:after {\n content: \" \";\n display: table;\n}\n.single-llms_quiz .llms-quiz-results:after {\n clear: both;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.passing {\n color: #83c373;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.passing svg path {\n stroke: #83c373;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.pending {\n color: #555;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.pending svg path {\n stroke: #555;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.failing {\n color: #e5554e;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.failing svg path {\n stroke: #e5554e;\n}\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside,\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-main,\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-history {\n margin-bottom: 20px;\n}\n@media all and (min-width: 600px) {\n .single-llms_quiz .llms-quiz-results .llms-quiz-results-aside {\n float: left;\n width: 220px;\n }\n .single-llms_quiz .llms-quiz-results .llms-quiz-results-main,\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-history {\n float: left;\n width: calc(100% - 300px);\n }\n}\n.single-llms_quiz ul.llms-quiz-meta-info,\n.single-llms_quiz ul.llms-quiz-meta-info li {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.single-llms_quiz ul.llms-quiz-meta-info {\n margin-bottom: 10px;\n}\n.single-llms_quiz .llms-quiz-buttons {\n margin-top: 10px;\n text-align: left;\n}\n.single-llms_quiz .llms-quiz-buttons form {\n display: inline-block;\n}\n\n.llms-quiz-question-wrapper {\n min-height: 140px;\n position: relative;\n}\n.llms-quiz-question-wrapper .llms-quiz-loading {\n bottom: 20px;\n left: 0;\n position: absolute;\n right: 0;\n text-align: center;\n z-index: 1;\n}\n\n.llms-quiz-ui {\n background: #fcfcfc;\n padding: 20px;\n position: relative;\n}\n.llms-quiz-ui .llms-quiz-header {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n margin: 0 0 30px;\n}\n.llms-quiz-ui .llms-progress {\n background-color: #f1f2f1;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n height: 8px;\n margin: 0;\n overflow: hidden;\n}\n.llms-quiz-ui .llms-progress .progress-bar-complete {\n -webkit-transition: width 0.3s ease-in;\n transition: width 0.3s ease-in;\n width: 0;\n}\n.llms-quiz-ui .llms-error {\n background: #e5554e;\n border-radius: 4px;\n color: #fff;\n margin: 10px 0;\n padding: 10px;\n}\n.llms-quiz-ui .llms-error:before, .llms-quiz-ui .llms-error:after {\n content: \" \";\n display: table;\n}\n.llms-quiz-ui .llms-error:after {\n clear: both;\n}\n.llms-quiz-ui .llms-error a {\n color: rgba(255, 255, 255, 0.6);\n float: right;\n font-size: 22px;\n line-height: 1;\n text-decoration: none;\n}\n.llms-quiz-ui .llms-quiz-counter {\n display: none;\n color: #6a6a6a;\n float: right;\n font-size: 18px;\n}\n.llms-quiz-ui .llms-quiz-counter .llms-sep {\n margin: 0 5px;\n}\n.llms-quiz-ui .llms-quiz-nav {\n margin-top: 20px;\n}\n.llms-quiz-ui .llms-quiz-nav button {\n margin: 0 10px 0 0;\n}\n\n.llms-question-wrapper .llms-question-text {\n font-size: 30px;\n font-weight: 400;\n margin-bottom: 15px;\n}\n.llms-question-wrapper ol.llms-question-choices {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice {\n border-bottom: 1px solid #e8e8e8;\n margin: 0;\n padding: 0;\n position: relative;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice:last-child {\n border-bottom: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture {\n border-bottom: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture label {\n display: inline-block;\n padding: 0;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-marker {\n bottom: 10px;\n margin: 0;\n position: absolute;\n right: 10px;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image {\n margin: 2px;\n padding: 20px;\n -webkit-transition: background 0.4s ease;\n transition: background 0.4s ease;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image img {\n display: block;\n width: 100%;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture input:checked ~ .llms-choice-image {\n background: #efefef;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input {\n display: none;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n visibility: hidden;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice label {\n display: block;\n margin: 0;\n padding: 10px 20px;\n position: relative;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .iterator {\n display: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .fa {\n display: inline;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker {\n background: #f0f0f0;\n display: inline-block;\n font-size: 20px;\n height: 40px;\n line-height: 40px;\n margin-right: 10px;\n text-align: center;\n -webkit-transition: all 0.2s ease;\n transition: all 0.2s ease;\n vertical-align: middle;\n width: 40px;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker .fa {\n display: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--lister, .llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--checkbox {\n border-radius: 4px;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--radio {\n border-radius: 50%;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker {\n background: #ef476f;\n color: #fff;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker .iterator {\n display: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker .fa {\n display: inline;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-choice-text {\n display: inline-block;\n font-size: 18px;\n font-weight: 400;\n line-height: 1.6;\n margin-bottom: 0;\n vertical-align: middle;\n width: calc(100% - 60px);\n}\n\n.llms-quiz-timer {\n background: #fff;\n border: 1px solid #83c373;\n border-radius: 4px;\n color: #83c373;\n float: right;\n font-size: 18px;\n line-height: 1;\n margin-left: 20px;\n padding: 8px 12px;\n position: relative;\n white-space: nowrap;\n z-index: 1;\n}\n.llms-quiz-timer.color-half {\n border-color: #ff922b;\n color: #ff922b;\n}\n.llms-quiz-timer.color-empty {\n border-color: #e5554e;\n color: #e5554e;\n}\n.llms-quiz-timer .llms-tiles {\n display: inline-block;\n margin-left: 5px;\n}\n\n.voucher-expand {\n display: none;\n}\n\n@media all and (min-width: 600px) {\n .llms-access-plans.cols-1 .llms-access-plan {\n width: 100%;\n }\n .llms-access-plans.cols-2 .llms-access-plan {\n width: 50%;\n }\n .llms-access-plans.cols-3 .llms-access-plan {\n width: 33.3333333333%;\n }\n .llms-access-plans.cols-4 .llms-access-plan {\n width: 25%;\n }\n .llms-access-plans.cols-5 .llms-access-plan {\n width: 20%;\n }\n}\n\n.llms-free-enroll-form {\n margin-bottom: 0;\n}\n\n.llms-access-plan {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n float: left;\n text-align: center;\n width: 100%;\n}\n.llms-access-plan .llms-access-plan-footer,\n.llms-access-plan .llms-access-plan-content {\n background: #f1f1f1;\n}\n.llms-access-plan.featured .llms-access-plan-featured {\n background: #4ba9ff;\n}\n.llms-access-plan.featured .llms-access-plan-footer,\n.llms-access-plan.featured .llms-access-plan-content {\n border-left: 3px solid #2295ff;\n border-right: 3px solid #2295ff;\n}\n.llms-access-plan.featured .llms-access-plan-footer {\n border-bottom-color: #2295ff;\n}\n.llms-access-plan.on-sale .price-regular {\n text-decoration: line-through;\n}\n.llms-access-plan .stamp {\n background: #2295ff;\n color: #fff;\n font-size: 11px;\n font-style: normal;\n font-weight: 300;\n padding: 2px 3px;\n vertical-align: top;\n}\n.llms-access-plan .llms-access-plan-restrictions ul {\n margin: 0;\n}\n\n.llms-access-plan-featured {\n color: #fff;\n font-size: 14px;\n font-weight: 400;\n margin: 0 2px 0 2px;\n}\n\n.llms-access-plan-content {\n margin: 0 2px 0;\n}\n.llms-access-plan-content .llms-access-plan-pricing {\n padding: 10px 0 0;\n}\n\n.llms-access-plan-title {\n background: #2295ff;\n color: #fff;\n margin-bottom: 0;\n padding: 10px;\n}\n\n.llms-access-plan-pricing .llms-price-currency-symbol {\n font-size: 14px;\n vertical-align: top;\n}\n\n.llms-access-plan-price {\n font-size: 18px;\n font-variant: small-caps;\n line-height: 20px;\n}\n.llms-access-plan-price .lifterlms-price {\n font-weight: 700;\n}\n.llms-access-plan-price.sale {\n padding: 5px 0;\n border-top: 1px solid #d0d0d0;\n border-bottom: 1px solid #d0d0d0;\n}\n\n.llms-access-plan-trial,\n.llms-access-plan-schedule,\n.llms-access-plan-sale-end,\n.llms-access-plan-expiration {\n font-size: 15px;\n font-variant: small-caps;\n line-height: 1.2;\n}\n\n.llms-access-plan-description {\n font-size: 16px;\n padding: 10px 10px 0;\n}\n.llms-access-plan-description ul {\n margin: 0;\n}\n.llms-access-plan-description ul li {\n border-bottom: 1px solid #d0d0d0;\n list-style-type: none;\n}\n.llms-access-plan-description ul li:last-child {\n border-bottom: none;\n}\n.llms-access-plan-description div:last-child, .llms-access-plan-description img:last-child, .llms-access-plan-description p:last-child, .llms-access-plan-description ul:last-child, .llms-access-plan-description li:last-child {\n margin-bottom: 0;\n}\n\n.llms-access-plan-restrictions .stamp {\n vertical-align: baseline;\n}\n.llms-access-plan-restrictions ul {\n margin: 0;\n}\n.llms-access-plan-restrictions ul li {\n font-size: 12px;\n line-height: 14px;\n list-style-type: none;\n}\n.llms-access-plan-restrictions a {\n color: #f8954f;\n}\n.llms-access-plan-restrictions a:hover {\n color: #f67d28;\n}\n\n.llms-access-plan-footer {\n border-bottom: 3px solid #f1f1f1;\n padding: 10px;\n margin: 0 2px 2px 2px;\n}\n.llms-access-plan-footer .llms-access-plan-pricing {\n padding: 0 0 10px;\n}\n\n.webui-popover-content .llms-members-only-restrictions {\n text-align: center;\n}\n.webui-popover-content .llms-members-only-restrictions ul, .webui-popover-content .llms-members-only-restrictions ol, .webui-popover-content .llms-members-only-restrictions li, .webui-popover-content .llms-members-only-restrictions p {\n margin: 0;\n padding: 0;\n}\n.webui-popover-content .llms-members-only-restrictions ul, .webui-popover-content .llms-members-only-restrictions ol, .webui-popover-content .llms-members-only-restrictions li {\n list-style-type: none;\n}\n.webui-popover-content .llms-members-only-restrictions li {\n padding: 8px 0;\n border-top: 1px solid #3b3b3b;\n}\n.webui-popover-content .llms-members-only-restrictions li:first-child {\n border-top: none;\n}\n.webui-popover-content .llms-members-only-restrictions li a {\n display: block;\n}\n\n.llms-checkout-wrapper form.llms-login {\n border: 3px solid #2295ff;\n display: none;\n margin-bottom: 10px;\n}\n.llms-checkout-wrapper .llms-form-heading {\n background: #2295ff;\n color: #fff;\n margin: 0 0 5px;\n padding: 10px;\n}\n\n.llms-checkout {\n background: #fff;\n position: relative;\n}\n\n@media all and (min-width: 800px) {\n .llms-checkout-cols-2 .llms-checkout-col {\n float: left;\n }\n .llms-checkout-cols-2 .llms-checkout-col.llms-col-1 {\n margin-right: 5px;\n width: calc(58% - 5px);\n }\n .llms-checkout-cols-2 .llms-checkout-col.llms-col-2 {\n margin-left: 5px;\n width: calc(42% - 5px);\n }\n .llms-checkout-cols-2 .llms-checkout-col.llms-col-2 button {\n width: 100%;\n }\n}\n\n.llms-checkout-section {\n border: 3px solid #2295ff;\n margin-bottom: 10px;\n position: relative;\n}\n\n.llms-checkout-section-content {\n margin: 10px;\n}\n.llms-checkout-section-content.llms-form-fields {\n margin: 0px;\n}\n.llms-checkout-section-content .llms-label {\n font-weight: 400;\n font-variant: small-caps;\n text-transform: lowercase;\n}\n.llms-checkout-section-content .llms-order-summary {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-checkout-section-content .llms-order-summary li {\n list-style-type: none;\n}\n.llms-checkout-section-content .llms-order-summary li.llms-pricing.on-sale .price-regular, .llms-checkout-section-content .llms-order-summary li.llms-pricing.has-coupon .price-regular {\n text-decoration: line-through;\n}\n.llms-checkout-section-content .llms-coupon-wrapper {\n border-top: 1px solid #dadada;\n margin-top: 10px;\n padding-top: 10px;\n}\n.llms-checkout-section-content .llms-coupon-wrapper .llms-coupon-entry {\n display: none;\n margin-top: 10px;\n}\n\n.llms-form-field.llms-payment-gateway-option label + span.llms-description {\n display: inline-block;\n margin-left: 5px;\n}\n.llms-form-field.llms-payment-gateway-option .llms-description a {\n border: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n text-decoration: none;\n}\n.llms-form-field.llms-payment-gateway-option .llms-description img {\n display: inline;\n max-height: 22px;\n vertical-align: middle;\n}\n\n.llms-checkout-wrapper ul.llms-payment-gateways {\n margin: 5px 0 0;\n padding: 0;\n}\n\nul.llms-payment-gateways {\n list-style-type: none;\n}\nul.llms-payment-gateways li:last-child:after {\n border-bottom: 1px solid #dadada;\n content: \"\";\n display: block;\n margin: 10px;\n}\nul.llms-payment-gateways .llms-payment-gateway {\n margin-bottom: 5px;\n list-style-type: none;\n}\nul.llms-payment-gateways .llms-payment-gateway:last-child {\n margin-bottom: none;\n}\nul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-payment-gateway-option label {\n font-weight: 700;\n}\nul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields {\n display: block;\n}\nul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields .llms-notice {\n margin-left: 10px;\n margin-right: 10px;\n}\nul.llms-payment-gateways .llms-payment-gateway .llms-form-field {\n padding-bottom: 0;\n}\nul.llms-payment-gateways .llms-gateway-description {\n margin-left: 40px;\n}\nul.llms-payment-gateways .llms-gateway-fields {\n display: none;\n margin: 5px 0 20px;\n}\nul.llms-payment-gateways .llms-payment-gateway-error {\n padding: 0 10px;\n}\n\n.llms-checkout-confirm {\n margin: 0 10px;\n}\n\n.llms-payment-method {\n margin: 10px 10px 0;\n}\n\n.llms-gateway-description p {\n font-size: 85%;\n font-style: italic;\n margin-bottom: 0;\n}\n\n.llms-form-fields {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n.llms-form-fields * {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n.llms-form-fields.flush .llms-form-field {\n padding: 0 0 10px;\n}\n.llms-form-fields .wp-block-columns, .llms-form-fields .wp-block-column {\n margin-bottom: 0;\n}\n\n.llms-form-heading {\n padding: 0 10px 10px;\n}\n\n.llms-form-field {\n float: left;\n padding: 0 10px 10px;\n position: relative;\n width: 100%;\n}\n.llms-form-field label:empty:after {\n content: \" \";\n}\n.llms-form-field.valid input[type=date], .llms-form-field.valid input[type=time], .llms-form-field.valid input[type=datetime-local], .llms-form-field.valid input[type=week], .llms-form-field.valid input[type=month], .llms-form-field.valid input[type=text], .llms-form-field.valid input[type=email], .llms-form-field.valid input[type=url], .llms-form-field.valid input[type=password], .llms-form-field.valid input[type=search], .llms-form-field.valid input[type=tel], .llms-form-field.valid input[type=number], .llms-form-field.valid textarea, .llms-form-field.valid select {\n background: rgba(131, 195, 115, 0.3);\n border-color: #83c373;\n}\n.llms-form-field.error input[type=date], .llms-form-field.error input[type=time], .llms-form-field.error input[type=datetime-local], .llms-form-field.error input[type=week], .llms-form-field.error input[type=month], .llms-form-field.error input[type=text], .llms-form-field.error input[type=email], .llms-form-field.error input[type=url], .llms-form-field.error input[type=password], .llms-form-field.error input[type=search], .llms-form-field.error input[type=tel], .llms-form-field.error input[type=number], .llms-form-field.error textarea, .llms-form-field.error select, .llms-form-field.invalid input[type=date], .llms-form-field.invalid input[type=time], .llms-form-field.invalid input[type=datetime-local], .llms-form-field.invalid input[type=week], .llms-form-field.invalid input[type=month], .llms-form-field.invalid input[type=text], .llms-form-field.invalid input[type=email], .llms-form-field.invalid input[type=url], .llms-form-field.invalid input[type=password], .llms-form-field.invalid input[type=search], .llms-form-field.invalid input[type=tel], .llms-form-field.invalid input[type=number], .llms-form-field.invalid textarea, .llms-form-field.invalid select {\n background: rgba(229, 85, 78, 0.3);\n border-color: #e5554e;\n}\n.llms-form-field.llms-visually-hidden-field {\n display: none;\n}\n.llms-form-field.align-right {\n text-align: right;\n}\n@media screen and (min-width: 600px) {\n .llms-form-field.llms-cols-1 {\n width: 8.3333333333%;\n }\n .llms-form-field.llms-cols-2 {\n width: 16.6666666667%;\n }\n .llms-form-field.llms-cols-3 {\n width: 25%;\n }\n .llms-form-field.llms-cols-4 {\n width: 33.3333333333%;\n }\n .llms-form-field.llms-cols-5 {\n width: 41.6666666667%;\n }\n .llms-form-field.llms-cols-6 {\n width: 50%;\n }\n .llms-form-field.llms-cols-7 {\n width: 58.3333333333%;\n }\n .llms-form-field.llms-cols-8 {\n width: 66.6666666667%;\n }\n .llms-form-field.llms-cols-9 {\n width: 75%;\n }\n .llms-form-field.llms-cols-10 {\n width: 83.3333333333%;\n }\n .llms-form-field.llms-cols-11 {\n width: 91.6666666667%;\n }\n .llms-form-field.llms-cols-12 {\n width: 100%;\n }\n}\n.llms-form-field.type-hidden {\n padding: 0;\n}\n.llms-form-field.type-radio input,\n.llms-form-field.type-radio label, .llms-form-field.type-checkbox input,\n.llms-form-field.type-checkbox label {\n display: inline-block;\n width: auto;\n}\n.llms-form-field.type-radio input, .llms-form-field.type-checkbox input {\n margin-right: 5px;\n}\n.llms-form-field.type-radio label + .llms-description, .llms-form-field.type-checkbox label + .llms-description {\n display: block;\n}\n.llms-form-field.type-radio:not(.is-group) input[type=radio] {\n position: absolute;\n opacity: 0;\n visibility: none;\n}\n.llms-form-field.type-radio:not(.is-group) label:before {\n background: #fafafa;\n background-position: -24px 0;\n background-repeat: no-repeat;\n border-radius: 50%;\n -webkit-box-shadow: rgba(255, 255, 255, 0.15) 0 1px 1px, inset rgba(0, 0, 0, 0.35) 0 0 0 1px;\n box-shadow: rgba(255, 255, 255, 0.15) 0 1px 1px, inset rgba(0, 0, 0, 0.35) 0 0 0 1px;\n content: \"\";\n cursor: pointer;\n display: inline-block;\n height: 22px;\n margin-right: 5px;\n position: relative;\n -webkit-transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n top: -3px;\n vertical-align: middle;\n width: 22px;\n z-index: 2;\n}\n.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked + label:before {\n -webkit-transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n background-position: 0 0;\n background-image: radial-gradient(ellipse at center, #2295ff 0%, #2295ff 40%, #fafafa 45%);\n}\n.llms-form-field .llms-input-group {\n margin-top: 5px;\n}\n.llms-form-field .llms-input-group .llms-form-field {\n padding: 0 0 5px 5px;\n}\n.llms-form-field.type-reset button:not(.auto), .llms-form-field.type-button button:not(.auto), .llms-form-field.type-submit button:not(.auto) {\n width: 100%;\n}\n.llms-form-field .llms-description {\n font-size: 14px;\n font-style: italic;\n}\n.llms-form-field .llms-required {\n color: #e5554e;\n margin-left: 4px;\n}\n.llms-form-field input, .llms-form-field textarea, .llms-form-field select {\n width: 100%;\n margin-bottom: 5px;\n}\n.llms-form-field .select2-container .select2-selection--single {\n height: auto;\n padding: 4px 6px;\n}\n.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow {\n height: 100%;\n}\n\n.llms-password-strength-meter {\n border: 1px solid #dadada;\n display: none;\n font-size: 10px;\n margin-top: -10px;\n padding: 1px;\n position: relative;\n text-align: center;\n}\n.llms-password-strength-meter:before {\n bottom: 0;\n content: \"\";\n left: 0;\n position: absolute;\n top: 0;\n -webkit-transition: width 0.4s ease;\n transition: width 0.4s ease;\n}\n.llms-password-strength-meter.mismatch, .llms-password-strength-meter.too-short, .llms-password-strength-meter.very-weak {\n border-color: #e35b5b;\n}\n.llms-password-strength-meter.mismatch:before, .llms-password-strength-meter.too-short:before, .llms-password-strength-meter.very-weak:before {\n background: rgba(227, 91, 91, 0.25);\n width: 25%;\n}\n.llms-password-strength-meter.too-short:before {\n width: 0;\n}\n.llms-password-strength-meter.weak {\n border-color: #f78b53;\n}\n.llms-password-strength-meter.weak:before {\n background: rgba(247, 139, 83, 0.25);\n width: 50%;\n}\n.llms-password-strength-meter.medium {\n border-color: #ffc733;\n}\n.llms-password-strength-meter.medium:before {\n background: rgba(255, 199, 51, 0.25);\n width: 75%;\n}\n.llms-password-strength-meter.strong {\n border-color: #83c373;\n}\n.llms-password-strength-meter.strong:before {\n background: rgba(131, 195, 115, 0.25);\n width: 100%;\n}\n\n.llms-widget-syllabus--collapsible .llms-section .section-header {\n cursor: pointer;\n}\n.llms-widget-syllabus--collapsible .llms-section.llms-section--opened .llms-collapse-caret .fa-caret-right {\n display: none;\n}\n.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-collapse-caret .fa-caret-down {\n display: none;\n}\n.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-lesson {\n display: none;\n}\n.llms-widget-syllabus--collapsible .llms-syllabus-footer {\n text-align: left;\n}\n\n.llms-student-dashboard {\n /**\n * Dashboard Home\n */\n}\n.llms-student-dashboard .llms-sd-title {\n margin: 25px 0;\n}\n.llms-student-dashboard .llms-sd-items {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-student-dashboard .llms-sd-item {\n float: left;\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-student-dashboard .llms-sd-item:last-child .llms-sep {\n display: none;\n}\n.llms-student-dashboard .llms-sd-item .llms-sep {\n color: #333;\n margin: 0 5px;\n}\n.llms-student-dashboard .llms-sd-section {\n margin-bottom: 25px;\n}\n.llms-student-dashboard .llms-sd-section .llms-sd-section-footer {\n margin-top: 10px;\n}\n.llms-student-dashboard .orders-table {\n border: 1px solid #f5f5f5;\n width: 100%;\n}\n.llms-student-dashboard .orders-table thead {\n display: none;\n}\n.llms-student-dashboard .orders-table thead th, .llms-student-dashboard .orders-table thead td {\n font-weight: 700;\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .orders-table thead {\n display: table-header-group;\n }\n}\n.llms-student-dashboard .orders-table tbody tr:nth-child(even) td, .llms-student-dashboard .orders-table tbody tr:nth-child(even) th {\n background: #f9f9f9;\n}\n.llms-student-dashboard .orders-table tfoot th, .llms-student-dashboard .orders-table tfoot td {\n padding: 10px;\n text-align: right;\n}\n.llms-student-dashboard .orders-table tfoot th:last-child, .llms-student-dashboard .orders-table tfoot td:last-child {\n border-bottom-width: 0;\n}\n.llms-student-dashboard .orders-table th {\n font-weight: 700;\n}\n.llms-student-dashboard .orders-table th, .llms-student-dashboard .orders-table td {\n border-color: #efefef;\n border-style: solid;\n border-width: 0;\n display: block;\n padding: 8px 12px;\n text-align: center;\n}\n.llms-student-dashboard .orders-table th .llms-button-primary, .llms-student-dashboard .orders-table td .llms-button-primary {\n display: inline-block;\n}\n.llms-student-dashboard .orders-table th:last-child, .llms-student-dashboard .orders-table td:last-child {\n border-bottom-width: 1px;\n}\n.llms-student-dashboard .orders-table th:before, .llms-student-dashboard .orders-table td:before {\n content: attr(data-label);\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .orders-table th, .llms-student-dashboard .orders-table td {\n border-bottom-width: 1px;\n display: table-cell;\n text-align: left;\n }\n .llms-student-dashboard .orders-table th:first-child, .llms-student-dashboard .orders-table td:first-child {\n width: 220px;\n }\n .llms-student-dashboard .orders-table th:before, .llms-student-dashboard .orders-table td:before {\n display: none;\n }\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .orders-table.transactions th:first-child {\n width: auto;\n }\n}\n.llms-student-dashboard .llms-status {\n border-radius: 3px;\n border-bottom: 1px solid #fff;\n display: inline-block;\n font-size: 80%;\n padding: 3px 6px;\n vertical-align: middle;\n}\n.llms-student-dashboard .llms-status.llms-size--large {\n font-size: 105%;\n padding: 6px 12px;\n}\n.llms-student-dashboard .llms-status.llms-active, .llms-student-dashboard .llms-status.llms-completed, .llms-student-dashboard .llms-status.llms-pass, .llms-student-dashboard .llms-status.llms-txn-succeeded {\n color: #1f3818;\n background-color: #83c373;\n}\n.llms-student-dashboard .llms-status.llms-fail, .llms-student-dashboard .llms-status.llms-failed, .llms-student-dashboard .llms-status.llms-expired, .llms-student-dashboard .llms-status.llms-cancelled, .llms-student-dashboard .llms-status.llms-txn-failed {\n color: #5a110d;\n background-color: #e5554e;\n}\n.llms-student-dashboard .llms-status.llms-incomplete, .llms-student-dashboard .llms-status.llms-on-hold, .llms-student-dashboard .llms-status.llms-pending, .llms-student-dashboard .llms-status.llms-pending-cancel, .llms-student-dashboard .llms-status.llms-refunded, .llms-student-dashboard .llms-status.llms-txn-pending, .llms-student-dashboard .llms-status.llms-txn-refunded {\n color: #664200;\n background-color: orange;\n}\n.llms-student-dashboard .llms-person-form-wrapper .llms-change-password {\n display: none;\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .order-primary {\n float: left;\n width: 68%;\n }\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .order-secondary {\n float: left;\n width: 32%;\n }\n}\n.llms-student-dashboard .order-secondary form {\n margin-bottom: 0;\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .llms-view-order.llms-stack-cols .order-primary,\n.llms-student-dashboard .llms-view-order.llms-stack-cols .order-secondary {\n float: none;\n width: 100%;\n }\n}\n.llms-student-dashboard .llms-switch-payment-source .llms-notice,\n.llms-student-dashboard .llms-switch-payment-source .entry-content .llms-notice {\n margin-left: 10px;\n margin-right: 10px;\n}\n.llms-student-dashboard .llms-switch-payment-source-main {\n border: none;\n display: none;\n margin: 0;\n}\n.llms-student-dashboard .llms-switch-payment-source-main ul.llms-payment-gateways {\n padding: 10px 15px 0;\n margin: 0;\n}\n.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method,\n.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary {\n padding: 0 25px 10px;\n margin: 0;\n list-style-type: none;\n}\n.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method li,\n.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary li {\n list-style-type: none;\n}\n.llms-student-dashboard .llms-loop-list {\n margin: 0 -10px;\n}\n\n.llms-sd-grades .llms-table .llms-progress {\n display: block;\n margin: 0;\n}\n.llms-sd-grades .llms-table .llms-progress .llms-progress-bar {\n top: 0;\n height: 1.4em;\n}\n.llms-sd-grades .llms-table .llms-progress .progress__indicator {\n font-size: 1em;\n position: relative;\n right: 0.4em;\n top: 0.2em;\n z-index: 1;\n}\n\n.llms-table.llms-single-course-grades tbody tr:first-child td, .llms-table.llms-single-course-grades tbody tr:first-child th {\n background-color: #eaeaea;\n}\n.llms-table.llms-single-course-grades th {\n font-weight: 400;\n}\n.llms-table.llms-single-course-grades td .llms-donut {\n display: inline-block;\n vertical-align: middle;\n}\n.llms-table.llms-single-course-grades td .llms-status {\n margin-right: 4px;\n}\n.llms-table.llms-single-course-grades td .llms-donut + .llms-status {\n margin-left: 4px;\n}\n.llms-table.llms-single-course-grades th.llms-section_title {\n font-size: 110%;\n font-weight: 700;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title {\n padding-left: 36px;\n max-width: 40%;\n}\n.llms-table.llms-single-course-grades td.llms-associated_quiz .llms-donut {\n display: inline-block;\n margin-right: 5px;\n vertical-align: middle;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href=\"#\"] {\n pointer-events: none;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href^=\"#\"] {\n color: inherit;\n position: relative;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href^=\"#\"] .llms-tooltip {\n max-width: 380px;\n width: 380px;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href^=\"#\"] .llms-tooltip.show {\n top: -54px;\n}\n\n.llms-sd-widgets {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.llms-sd-widgets .llms-sd-widget {\n background: #f9f9f9;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n margin: 10px 10px 20px;\n padding: 0 0 20px;\n}\n.llms-sd-widgets .llms-sd-widget:first-child {\n margin-left: 0;\n}\n.llms-sd-widgets .llms-sd-widget:last-child {\n margin-right: 0;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-widget-title {\n background: #2295ff;\n color: #fff;\n font-size: 18px;\n line-height: 1;\n margin: 0 0 20px;\n padding: 10px;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-widget-empty {\n font-size: 14px;\n font-style: italic;\n opacity: 0.5;\n text-align: center;\n}\n.llms-sd-widgets .llms-sd-widget .llms-donut {\n margin: 0 auto;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date {\n opacity: 0.8;\n text-align: center;\n font-size: 22px;\n line-height: 1.1;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date span {\n display: block;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date span.day {\n font-size: 52px;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date span.diff {\n font-size: 12px;\n font-style: italic;\n margin-top: 8px;\n opacity: 0.75;\n}\n.llms-sd-widgets .llms-sd-widget .llms-achievement {\n background: transparent;\n margin: 0 auto;\n max-width: 120px;\n}\n.llms-sd-widgets .llms-sd-widget .llms-achievement .llms-achievement-title {\n display: none;\n}\n\n.llms-sd-pagination {\n margin-top: 24px;\n}\n.llms-sd-pagination:before, .llms-sd-pagination:after {\n content: \" \";\n display: table;\n}\n.llms-sd-pagination:after {\n clear: both;\n}\n.llms-sd-pagination .llms-button-secondary {\n display: inline-block;\n}\n.llms-sd-pagination .llms-button-secondary.prev {\n float: left;\n}\n.llms-sd-pagination .llms-button-secondary.next {\n float: right;\n}\n\n.llms-sd-notification-center .llms-notification {\n z-index: 1;\n}\n\n.llms-table {\n border: 1px solid #efefef;\n width: 100%;\n}\n.llms-table thead th, .llms-table thead td {\n font-weight: 700;\n}\n.llms-table tbody tr:nth-child(odd) td, .llms-table tbody tr:nth-child(odd) th {\n background: #f9f9f9;\n}\n.llms-table tbody tr:last-child {\n border-bottom-width: 0;\n}\n.llms-table tfoot tr {\n background: #f9f9f9;\n}\n.llms-table tfoot tr .llms-pagination .page-numbers {\n margin: 0;\n}\n.llms-table tfoot tr .llms-table-sort {\n text-align: right;\n}\n.llms-table tfoot tr .llms-table-sort form, .llms-table tfoot tr .llms-table-sort select, .llms-table tfoot tr .llms-table-sort input, .llms-table tfoot tr .llms-table-sort button {\n margin: 0;\n}\n.llms-table th {\n font-weight: 700;\n}\n.llms-table th, .llms-table td {\n border-bottom: 1px solid #efefef;\n padding: 8px 12px;\n}\n.llms-table th:first-child, .llms-table td:first-child {\n padding-left: 12px;\n}\n.llms-table th:last-child, .llms-table td:last-child {\n padding-right: 12px;\n}\n\n#page .llms-table tfoot label {\n display: inline;\n}\n\n#page .llms-table tfoot select {\n height: auto;\n}\n\n/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: \"FontAwesome\";\n src: url(\"../fonts/fontawesome-webfont.eot?v=4.7.0\");\n src: url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0\") format(\"embedded-opentype\"), url(\"../fonts/fontawesome-webfont.woff2?v=4.7.0\") format(\"woff2\"), url(\"../fonts/fontawesome-webfont.woff?v=4.7.0\") format(\"woff\"), url(\"../fonts/fontawesome-webfont.ttf?v=4.7.0\") format(\"truetype\"), url(\"../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular\") format(\"svg\");\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n\n.fa-border {\n padding: 0.2em 0.25em 0.15em;\n border: solid 0.08em #eeeeee;\n border-radius: 0.1em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left {\n margin-right: 0.3em;\n}\n\n.fa.fa-pull-right {\n margin-left: 0.3em;\n}\n\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n\n.pull-left {\n float: left;\n}\n\n.fa.pull-left {\n margin-right: 0.3em;\n}\n\n.fa.pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n\n.fa-stack-1x {\n line-height: inherit;\n}\n\n.fa-stack-2x {\n font-size: 2em;\n}\n\n.fa-inverse {\n color: #ffffff;\n}\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n\n.fa-music:before {\n content: \"\\f001\";\n}\n\n.fa-search:before {\n content: \"\\f002\";\n}\n\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n\n.fa-heart:before {\n content: \"\\f004\";\n}\n\n.fa-star:before {\n content: \"\\f005\";\n}\n\n.fa-star-o:before {\n content: \"\\f006\";\n}\n\n.fa-user:before {\n content: \"\\f007\";\n}\n\n.fa-film:before {\n content: \"\\f008\";\n}\n\n.fa-th-large:before {\n content: \"\\f009\";\n}\n\n.fa-th:before {\n content: \"\\f00a\";\n}\n\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n\n.fa-check:before {\n content: \"\\f00c\";\n}\n\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n\n.fa-power-off:before {\n content: \"\\f011\";\n}\n\n.fa-signal:before {\n content: \"\\f012\";\n}\n\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n\n.fa-home:before {\n content: \"\\f015\";\n}\n\n.fa-file-o:before {\n content: \"\\f016\";\n}\n\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n\n.fa-road:before {\n content: \"\\f018\";\n}\n\n.fa-download:before {\n content: \"\\f019\";\n}\n\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n\n.fa-refresh:before {\n content: \"\\f021\";\n}\n\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n\n.fa-lock:before {\n content: \"\\f023\";\n}\n\n.fa-flag:before {\n content: \"\\f024\";\n}\n\n.fa-headphones:before {\n content: \"\\f025\";\n}\n\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n\n.fa-tag:before {\n content: \"\\f02b\";\n}\n\n.fa-tags:before {\n content: \"\\f02c\";\n}\n\n.fa-book:before {\n content: \"\\f02d\";\n}\n\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n\n.fa-print:before {\n content: \"\\f02f\";\n}\n\n.fa-camera:before {\n content: \"\\f030\";\n}\n\n.fa-font:before {\n content: \"\\f031\";\n}\n\n.fa-bold:before {\n content: \"\\f032\";\n}\n\n.fa-italic:before {\n content: \"\\f033\";\n}\n\n.fa-text-height:before {\n content: \"\\f034\";\n}\n\n.fa-text-width:before {\n content: \"\\f035\";\n}\n\n.fa-align-left:before {\n content: \"\\f036\";\n}\n\n.fa-align-center:before {\n content: \"\\f037\";\n}\n\n.fa-align-right:before {\n content: \"\\f038\";\n}\n\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n\n.fa-list:before {\n content: \"\\f03a\";\n}\n\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n\n.fa-indent:before {\n content: \"\\f03c\";\n}\n\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n\n.fa-pencil:before {\n content: \"\\f040\";\n}\n\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n\n.fa-adjust:before {\n content: \"\\f042\";\n}\n\n.fa-tint:before {\n content: \"\\f043\";\n}\n\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n\n.fa-arrows:before {\n content: \"\\f047\";\n}\n\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n\n.fa-backward:before {\n content: \"\\f04a\";\n}\n\n.fa-play:before {\n content: \"\\f04b\";\n}\n\n.fa-pause:before {\n content: \"\\f04c\";\n}\n\n.fa-stop:before {\n content: \"\\f04d\";\n}\n\n.fa-forward:before {\n content: \"\\f04e\";\n}\n\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n\n.fa-eject:before {\n content: \"\\f052\";\n}\n\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n\n.fa-ban:before {\n content: \"\\f05e\";\n}\n\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n\n.fa-expand:before {\n content: \"\\f065\";\n}\n\n.fa-compress:before {\n content: \"\\f066\";\n}\n\n.fa-plus:before {\n content: \"\\f067\";\n}\n\n.fa-minus:before {\n content: \"\\f068\";\n}\n\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n\n.fa-gift:before {\n content: \"\\f06b\";\n}\n\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n\n.fa-fire:before {\n content: \"\\f06d\";\n}\n\n.fa-eye:before {\n content: \"\\f06e\";\n}\n\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n\n.fa-plane:before {\n content: \"\\f072\";\n}\n\n.fa-calendar:before {\n content: \"\\f073\";\n}\n\n.fa-random:before {\n content: \"\\f074\";\n}\n\n.fa-comment:before {\n content: \"\\f075\";\n}\n\n.fa-magnet:before {\n content: \"\\f076\";\n}\n\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n\n.fa-retweet:before {\n content: \"\\f079\";\n}\n\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n\n.fa-folder:before {\n content: \"\\f07b\";\n}\n\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n\n.fa-key:before {\n content: \"\\f084\";\n}\n\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n\n.fa-comments:before {\n content: \"\\f086\";\n}\n\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n\n.fa-star-half:before {\n content: \"\\f089\";\n}\n\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n\n.fa-trophy:before {\n content: \"\\f091\";\n}\n\n.fa-github-square:before {\n content: \"\\f092\";\n}\n\n.fa-upload:before {\n content: \"\\f093\";\n}\n\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n\n.fa-phone:before {\n content: \"\\f095\";\n}\n\n.fa-square-o:before {\n content: \"\\f096\";\n}\n\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n\n.fa-twitter:before {\n content: \"\\f099\";\n}\n\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n\n.fa-github:before {\n content: \"\\f09b\";\n}\n\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n\n.fa-square:before {\n content: \"\\f0c8\";\n}\n\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n\n.fa-table:before {\n content: \"\\f0ce\";\n}\n\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n\n.fa-money:before {\n content: \"\\f0d6\";\n}\n\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n\n.fa-columns:before {\n content: \"\\f0db\";\n}\n\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n\n.fa-desktop:before {\n content: \"\\f108\";\n}\n\n.fa-laptop:before {\n content: \"\\f109\";\n}\n\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n\n.fa-spinner:before {\n content: \"\\f110\";\n}\n\n.fa-circle:before {\n content: \"\\f111\";\n}\n\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n\n.fa-terminal:before {\n content: \"\\f120\";\n}\n\n.fa-code:before {\n content: \"\\f121\";\n}\n\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n\n.fa-crop:before {\n content: \"\\f125\";\n}\n\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n\n.fa-question:before {\n content: \"\\f128\";\n}\n\n.fa-info:before {\n content: \"\\f129\";\n}\n\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n\n.fa-microphone:before {\n content: \"\\f130\";\n}\n\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n\n.fa-shield:before {\n content: \"\\f132\";\n}\n\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n\n.fa-rocket:before {\n content: \"\\f135\";\n}\n\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n\n.fa-html5:before {\n content: \"\\f13b\";\n}\n\n.fa-css3:before {\n content: \"\\f13c\";\n}\n\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n\n.fa-ticket:before {\n content: \"\\f145\";\n}\n\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n\n.fa-level-up:before {\n content: \"\\f148\";\n}\n\n.fa-level-down:before {\n content: \"\\f149\";\n}\n\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n\n.fa-compass:before {\n content: \"\\f14e\";\n}\n\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n\n.fa-gbp:before {\n content: \"\\f154\";\n}\n\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n\n.fa-file:before {\n content: \"\\f15b\";\n}\n\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n\n.fa-youtube:before {\n content: \"\\f167\";\n}\n\n.fa-xing:before {\n content: \"\\f168\";\n}\n\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n\n.fa-adn:before {\n content: \"\\f170\";\n}\n\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n\n.fa-apple:before {\n content: \"\\f179\";\n}\n\n.fa-windows:before {\n content: \"\\f17a\";\n}\n\n.fa-android:before {\n content: \"\\f17b\";\n}\n\n.fa-linux:before {\n content: \"\\f17c\";\n}\n\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n\n.fa-skype:before {\n content: \"\\f17e\";\n}\n\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n\n.fa-trello:before {\n content: \"\\f181\";\n}\n\n.fa-female:before {\n content: \"\\f182\";\n}\n\n.fa-male:before {\n content: \"\\f183\";\n}\n\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n\n.fa-archive:before {\n content: \"\\f187\";\n}\n\n.fa-bug:before {\n content: \"\\f188\";\n}\n\n.fa-vk:before {\n content: \"\\f189\";\n}\n\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n\n.fa-renren:before {\n content: \"\\f18b\";\n}\n\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n\n.fa-slack:before {\n content: \"\\f198\";\n}\n\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n\n.fa-openid:before {\n content: \"\\f19b\";\n}\n\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n\n.fa-google:before {\n content: \"\\f1a0\";\n}\n\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n\n.fa-language:before {\n content: \"\\f1ab\";\n}\n\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n\n.fa-building:before {\n content: \"\\f1ad\";\n}\n\n.fa-child:before {\n content: \"\\f1ae\";\n}\n\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n\n.fa-database:before {\n content: \"\\f1c0\";\n}\n\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n\n.fa-git:before {\n content: \"\\f1d3\";\n}\n\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n\n.fa-history:before {\n content: \"\\f1da\";\n}\n\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n\n.fa-header:before {\n content: \"\\f1dc\";\n}\n\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n\n.fa-at:before {\n content: \"\\f1fa\";\n}\n\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n\n.fa-bus:before {\n content: \"\\f207\";\n}\n\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n\n.fa-angellist:before {\n content: \"\\f209\";\n}\n\n.fa-cc:before {\n content: \"\\f20a\";\n}\n\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n\n.fa-diamond:before {\n content: \"\\f219\";\n}\n\n.fa-ship:before {\n content: \"\\f21a\";\n}\n\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n\n.fa-venus:before {\n content: \"\\f221\";\n}\n\n.fa-mars:before {\n content: \"\\f222\";\n}\n\n.fa-mercury:before {\n content: \"\\f223\";\n}\n\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n\n.fa-server:before {\n content: \"\\f233\";\n}\n\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n\n.fa-user-times:before {\n content: \"\\f235\";\n}\n\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n\n.fa-train:before {\n content: \"\\f238\";\n}\n\n.fa-subway:before {\n content: \"\\f239\";\n}\n\n.fa-medium:before {\n content: \"\\f23a\";\n}\n\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n\n.fa-object-group:before {\n content: \"\\f247\";\n}\n\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n\n.fa-clone:before {\n content: \"\\f24d\";\n}\n\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n\n.fa-registered:before {\n content: \"\\f25d\";\n}\n\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n\n.fa-gg:before {\n content: \"\\f260\";\n}\n\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n\n.fa-safari:before {\n content: \"\\f267\";\n}\n\n.fa-chrome:before {\n content: \"\\f268\";\n}\n\n.fa-firefox:before {\n content: \"\\f269\";\n}\n\n.fa-opera:before {\n content: \"\\f26a\";\n}\n\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n\n.fa-contao:before {\n content: \"\\f26d\";\n}\n\n.fa-500px:before {\n content: \"\\f26e\";\n}\n\n.fa-amazon:before {\n content: \"\\f270\";\n}\n\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n\n.fa-industry:before {\n content: \"\\f275\";\n}\n\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n\n.fa-map-o:before {\n content: \"\\f278\";\n}\n\n.fa-map:before {\n content: \"\\f279\";\n}\n\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n\n.fa-edge:before {\n content: \"\\f282\";\n}\n\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n\n.fa-modx:before {\n content: \"\\f285\";\n}\n\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n\n.fa-usb:before {\n content: \"\\f287\";\n}\n\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n\n.fa-percent:before {\n content: \"\\f295\";\n}\n\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n\n.fa-envira:before {\n content: \"\\f299\";\n}\n\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n\n.fa-blind:before {\n content: \"\\f29d\";\n}\n\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n\n.llms-spinning {\n background: rgba(250, 250, 250, 0.7);\n bottom: 0;\n display: none;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.llms-spinner {\n -webkit-animation: llms-spinning 1.5s linear infinite;\n animation: llms-spinning 1.5s linear infinite;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n border: 4px solid #313131;\n border-radius: 50%;\n height: 40px;\n left: 50%;\n margin-left: -20px;\n margin-top: -20px;\n position: absolute;\n top: 50%;\n width: 40px;\n}\n.llms-spinner.small {\n border-width: 2px;\n height: 20px;\n margin-left: -10px;\n margin-top: -10px;\n width: 20px;\n}\n\n@-webkit-keyframes llms-spinning {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 50% {\n border-radius: 5%;\n }\n 100% {\n -webkit-transform: rotate(220deg);\n transform: rotate(220deg);\n }\n}\n\n@keyframes llms-spinning {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 50% {\n border-radius: 5%;\n }\n 100% {\n -webkit-transform: rotate(220deg);\n transform: rotate(220deg);\n }\n}\n/*# sourceMappingURL=../maps/css/lifterlms.css.map */\n"],"sourceRoot":"../../css"}
\ No newline at end of file
diff --git a/assets/scss/_includes/_buttons.scss b/assets/scss/_includes/_buttons.scss
deleted file mode 100644
index a0fbe6d7b2..0000000000
--- a/assets/scss/_includes/_buttons.scss
+++ /dev/null
@@ -1,111 +0,0 @@
-.llms-button-action,
-.llms-button-danger,
-.llms-button-primary,
-.llms-button-secondary {
- border:none;
- border-radius: 0;
- color: $color-white;
- cursor: pointer;
- font-size: 16px;
- font-weight: 300;
- text-decoration: none;
- text-shadow: none;
- line-height: 1;
- margin: 0;
- max-width: 100%;
- padding: 12px 24px;
- position: relative;
- transition: all .5s ease;
-
- &:disabled {
- opacity: 0.5;
- }
- &:hover, &:active {
- color: $color-white;
- }
- &:focus {
- color: $color-white;
- }
-
- &.auto {
- width: auto;
- }
-
- &.full {
- display: block;
- text-align: center;
- width: 100%;
- }
-
- &.square {
- padding: 12px;
- }
-
- &.small {
- font-size: 13px;
- padding: 8px 14px;
- &.square { padding: 8px; }
- }
-
- &.large {
- font-size: 18px;
- line-height: 1.2;
- padding: 16px 32px;
- &.square { padding: 16px; }
- .fa {
- left: -7px;
- position: relative;
- }
- }
-
-
-}
-
-.llms-button-primary {
- background: $color-brand-blue;
- &:hover,
- &.clicked {
- background: $color-brand-blue-dark;
- }
- &:focus,
- &:active {
- background: $color-brand-blue-light;
- }
-}
-
-.llms-button-secondary {
- background: #e1e1e1;
- color: #414141;
- &:hover {
- color: #414141;
- background: darken( #e1e1e1, 8 );
- }
- &:focus,
- &:active {
- color: #414141;
- background: lighten( #e1e1e1, 4 );
- }
-}
-
-.llms-button-action {
- background: $color-brand-orange;
- &:hover,
- &.clicked {
- background: $color-brand-orange-dark;
- }
- &:focus,
- &:active {
- background: $color-brand-orange-light;
- }
-}
-
-.llms-button-danger {
- background: $color-danger;
- &:hover {
- background: darken( $color-danger, 8 );
- }
- &:focus,
- &:active {
- background: lighten( $color-danger, 4 );
- }
-}
diff --git a/assets/scss/_includes/_extends.scss b/assets/scss/_includes/_extends.scss
deleted file mode 100644
index 3ff4e48156..0000000000
--- a/assets/scss/_includes/_extends.scss
+++ /dev/null
@@ -1,30 +0,0 @@
-%cf,
-%clearfix {
- &:before,
- &:after {
- content: " ";
- display: table;
- }
-
- &:after {
- clear: both;
- }
-}
-
-
-
-%llms-element {
- background: $el-background;
- box-shadow: $el-box-shadow;
- display: block;
- color: #212121;
- min-height: 85px;
- padding: 15px;
- text-decoration: none;
- position: relative;
- transition: background .4s ease;
-
- &:hover {
- background: $el-background-hover;
- }
-}
diff --git a/assets/scss/_includes/_grid.scss b/assets/scss/_includes/_grid.scss
deleted file mode 100644
index 4306e6099d..0000000000
--- a/assets/scss/_includes/_grid.scss
+++ /dev/null
@@ -1,46 +0,0 @@
-//
-// Floated columns.
-//
-// Utilized prior to the introduction of `.llms-flex-cols`. Prefer
-// usage of flex cols for new code where possible.
-//
-.llms-cols {
- @extend %clearfix;
-
- .llms-col { width: 100%; }
-
- @media all and (min-width: 600px) {
- [class*="llms-col-"] {
- float: left;
- }
- }
-
-}
-
-//
-// Flex-box columns.
-//
-// Preferred over floated `.llms-cols` wherever possible.
-//
-.llms-flex-cols {
- display: flex;
- flex-flow: row wrap;
-
- [class*="llms-col"] {
- flex: 0 1 auto;
- width: 100%;
- }
-}
-
-@media all and (min-width: 600px) {
- .llms-cols, .llms-flex-cols {
- $cols: 1;
- @while $cols <= 12 {
- .llms-col-#{$cols} {
- width: calc( 100% / $cols );
- }
- $cols: $cols + 1;
- }
- }
-}
-
diff --git a/assets/scss/_includes/_llms-donut.scss b/assets/scss/_includes/_llms-donut.scss
deleted file mode 100644
index f01a645b49..0000000000
--- a/assets/scss/_includes/_llms-donut.scss
+++ /dev/null
@@ -1,82 +0,0 @@
-.llms-donut {
-
- @include clearfix;
-
- background-color: #f1f1f1;
- background-image: none;
- border-radius: 50%;
- color: $color-brand-pink;
- height: 200px;
- overflow: hidden;
- position: relative;
- width: 200px;
-
- svg {
- overflow: visible !important;
- pointer-events: none;
- width: 100%;
- }
-
- svg path {
- fill: none;
- stroke-width: 35px;
- stroke: $color-brand-pink;
- }
-
- &.mini {
- height: 36px;
- width: 36px;
- .percentage {
- font-size: 10px;
- }
- }
- &.small {
- height: 100px;
- width: 100px;
- .percentage {
- font-size: 18px;
- }
- }
- &.medium {
- height: 130px;
- width: 130px;
- .percentage {
- font-size: 26px;
- }
- }
- &.large {
- height: 260px;
- width: 260px;
- .percentage {
- font-size: 48px;
- }
- }
-
- .inside {
- align-items: center;
- background: #fff;
- border-radius: 50%;
- box-sizing: border-box;
- display: flex;
- flex-wrap: wrap;
- height: 80%;
- justify-content: center;
- left: 50%;
- position: absolute;
- text-align: center;
- transform: translate(-50%, -50%);
- width: 80%;
- top: 50%;
- z-index: 3;
- }
-
- .percentage {
- line-height: 1.2;
- font-size: 34px;
- }
-
- .caption {
- font-size: 50%;
- }
-
-}
diff --git a/assets/scss/_includes/_llms-form-field.scss b/assets/scss/_includes/_llms-form-field.scss
deleted file mode 100644
index bc421dd116..0000000000
--- a/assets/scss/_includes/_llms-form-field.scss
+++ /dev/null
@@ -1,213 +0,0 @@
-.llms-form-fields {
- @extend %clearfix;
- box-sizing: border-box;
- & * {
- box-sizing: border-box;
- }
- &.flush {
- .llms-form-field {
- padding: 0 0 10px;
- }
- }
-
- .wp-block-columns, .wp-block-column {
- margin-bottom: 0;
- }
-}
-
- .llms-form-heading {
- padding: 0 10px 10px;
- }
-
- .llms-form-field {
- float: left;
- padding: 0 10px 10px;
- position: relative;
- width: 100%;
-
- // Ensure "empty" labels don't break the layout.
- // See the billing_address_2 field which has no label.
- label:empty:after {
- content: '\00a0';
- }
-
- &.valid {
- input[type="date"], input[type="time"], input[type="datetime-local"], input[type="week"], input[type="month"], input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="tel"], input[type="number"], textarea, select {
- background: rgba( #83c373, .3 );
- border-color: #83c373;
- }
- }
-
- &.error,
- &.invalid {
- input[type="date"], input[type="time"], input[type="datetime-local"], input[type="week"], input[type="month"], input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="tel"], input[type="number"], textarea, select {
- background: rgba( $color-red, .3 );
- border-color: $color-red;
- }
- }
-
- &.llms-visually-hidden-field {
- display: none;
- }
-
- &.align-right {
- text-align: right;
- }
-
- @media screen and ( min-width: 600px ) {
- $i: 1;
- @while $i <= 12 {
- &.llms-cols-#{$i} {
- width: calc( $i / 12 ) * 100%;
- $i: $i + 1;
- }
- }
- }
-
- &.type-hidden { padding: 0; }
-
- &.type-radio,
- &.type-checkbox {
- input,
- label {
- display: inline-block;
- width: auto;
- }
- input {
- margin-right: 5px;
- }
- label + .llms-description {
- display: block;
- }
- }
-
- &.type-radio:not(.is-group) {
-
- input[type="radio"] {
- position: absolute;
- opacity: 0;
- visibility: none;
- }
-
- label:before {
- background: #fafafa;
- background-position: -24px 0;
- background-repeat: no-repeat;
- border-radius: 50%;
- box-shadow: hsla( 0,0%,100%,.15) 0 1px 1px, inset hsla(0,0%,0%,.35) 0 0 0 1px;
- content: '';
- cursor: pointer;
- display: inline-block;
- height: 22px;
- margin-right: 5px;
- position: relative;
- transition: background-position .15s cubic-bezier(.8, 0, 1, 1);
- top: -3px;
- vertical-align: middle;
- width: 22px;
- z-index: 2;
- }
-
- input[type="radio"]:checked + label:before {
- transition: background-position .2s .15s cubic-bezier(0, 0, .2, 1);
- background-position: 0 0;
- background-image: radial-gradient(ellipse at center, $color-brand-blue 0%,$color-brand-blue 40%, #fafafa 45%);
- }
-
- }
-
- .llms-input-group {
- margin-top: 5px;
- .llms-form-field {
- padding: 0 0 5px 5px;
- }
- }
-
- &.type-reset,
- &.type-button,
- &.type-submit {
- button:not(.auto) { width: 100%; }
- }
-
- .llms-description {
- font-size: 14px;
- font-style: italic;
- }
-
- .llms-required {
- color: $color-red;
- margin-left: 4px;
- }
-
- input, textarea, select {
- width: 100%;
- margin-bottom: 5px;
- }
-
- .select2-container .select2-selection--single {
- height: auto;
- padding: 4px 6px;
- }
- .select2-container--default .select2-selection--single .select2-selection__arrow {
- height: 100%;
- }
-
- }
-
-
- .llms-password-strength-meter {
- border: 1px solid #dadada;
- display: none;
- font-size: 10px;
- margin-top: -10px;
- padding: 1px;
- position: relative;
- text-align: center;
-
- &:before {
- bottom: 0;
- content: '';
- left: 0;
- position: absolute;
- top: 0;
- transition: width .4s ease;
- }
-
- &.mismatch,
- &.too-short,
- &.very-weak {
- border-color: #e35b5b;
- &:before {
- background: rgba( #e35b5b, 0.25 );
- width: 25%;
- }
- }
-
- &.too-short:before {
- width: 0;
- }
-
- &.weak {
- border-color: #f78b53;
- &:before {
- background: rgba( #f78b53, 0.25 );
- width: 50%;
- }
- }
-
- &.medium {
- border-color: #ffc733;
- &:before {
- background: rgba( #ffc733, 0.25 );
- width: 75%;
- }
- }
-
- &.strong {
- border-color: #83c373;
- &:before {
- background: rgba( #83c373, 0.25 );
- width: 100%;
- }
- }
- }
diff --git a/assets/scss/_includes/_mixins.scss b/assets/scss/_includes/_mixins.scss
deleted file mode 100644
index 876bb299ff..0000000000
--- a/assets/scss/_includes/_mixins.scss
+++ /dev/null
@@ -1,120 +0,0 @@
-
-@mixin clearfix() {
- &:before,
- &:after {
- content: " ";
- display: table;
- }
- &:after {
- clear: both;
- }
-}
-
-//
-// Positioning mixin
-//
-// @param [string] $position: position
-// @param [list] $args (()): offsets list
-//
-// @source http://hugogiraudel.com/2013/08/05/offsets-sass-mixin/
-//
-@mixin position($position, $args: ()) {
- $offsets: top right bottom left;
- position: $position;
-
- @each $offset in $offsets {
- $index: index($args, $offset);
-
- @if $index {
- @if $index == length($args) {
- #{$offset}: 0;
- }
- @else {
- $next: nth($args, $index + 1);
- @if is-valid-length($next) {
- #{$offset}: $next;
- }
- @else if index($offsets, $next) {
- #{$offset}: 0;
- }
- @else {
- @warn "Invalid value `#{$next}` for offset `#{$offset}`.";
- }
- }
- }
- }
-}
-
-//
-// Function checking if $value is a valid length
-// @param [literal] $value: value to test
-// @return [bool]
-//
-@function is-valid-length($value) {
- $r: (type-of($value) == "number" and not unitless($value)) or (index(auto initial inherit 0, $value) != null);
- @return $r;
-}
-
-//
-// Shorthands
-//
-@mixin absolute($args: ()) {
- @include position(absolute, $args);
-}
-
-@mixin fixed($args: ()) {
- @include position(fixed, $args);
-}
-
-@mixin relative($args: ()) {
- @include position(relative, $args);
-}
-
-
-
-@mixin order_status_badges() {
-
- .llms-status {
- border-radius: 3px;
- border-bottom: 1px solid #fff;
- display: inline-block;
- font-size: 80%;
- padding: 3px 6px;
- vertical-align: middle;
-
- &.llms-size--large {
- font-size: 105%;
- padding: 6px 12px;
- }
-
- &.llms-active,
- &.llms-completed,
- &.llms-pass, // quiz
- &.llms-txn-succeeded {
- color: darken( $color-green, 45 );
- background-color: $color-green;
- }
-
- &.llms-fail, // quiz
- &.llms-failed,
- &.llms-expired,
- &.llms-cancelled,
- &.llms-txn-failed {
- color: darken( $color-red, 40 );
- background-color: $color-red;
- }
-
- &.llms-incomplete, // assignment
- &.llms-on-hold,
- &.llms-pending,
- &.llms-pending-cancel,
- &.llms-refunded,
- &.llms-txn-pending,
- &.llms-txn-refunded {
- color: darken( orange, 30 );
- background-color: orange;
- }
-
- }
-
-}
diff --git a/assets/scss/_includes/_quiz-result-question-list.scss b/assets/scss/_includes/_quiz-result-question-list.scss
deleted file mode 100644
index fc85ba61b7..0000000000
--- a/assets/scss/_includes/_quiz-result-question-list.scss
+++ /dev/null
@@ -1,132 +0,0 @@
-.llms-quiz-attempt-results {
- margin: 0;
- padding: 0;
- list-style-type: none;
-
- .llms-quiz-attempt-question {
- background: #efefef;
- margin: 0 0 10px;
- position: relative;
-
- .toggle-answer {
- @include clearfix();
- color: inherit;
- display: block;
- padding: 10px 35px 10px 10px;
- text-decoration: none;
- }
-
- &.status--waiting.correct,
- &.status--waiting.incorrect {
- background: rgba( $color-orange, 0.2 );
- .llms-status-icon {
- background-color: $color-orange;
- }
- }
-
- &.status--graded.correct {
- background: rgba( $color-green, 0.2 );
- .llms-status-icon {
- background-color: $color-green;
- }
- }
- &.status--graded.incorrect {
- background: rgba( $color-red, 0.2 );
- .llms-status-icon {
- background-color: $color-red;
- }
- }
-
- .llms-question-title {
- float: left;
- margin: 0;
- line-height: 1;
- }
-
- .llms-points {
- float: right;
- line-height: 1;
- }
-
- .llms-status-icon-tip {
- position: absolute;
- right: -12px;
- top: -2px;
- }
-
- .llms-status-icon {
- color: rgba( 255, 255, 255, 0.65 );
- border-radius: 50%;
- font-size: 30px;
- height: 40px;
- line-height: 40px;
- text-align: center;
- width: 40px;
- }
-
- .llms-quiz-attempt-question-main {
- display: none;
- padding: 0 10px 10px;
-
- .llms-quiz-results-label {
- font-weight: 700;
- margin-bottom: 10px;
- }
-
- ul.llms-quiz-attempt-answers {
- margin: 0;
- padding: 0;
- li.llms-quiz-attempt-answer {
- padding: 0;
- margin: 0 0 0 30px;
- &:only-child {
- list-style-type: none;
- margin-left: 0;
- }
- }
- }
-
- img {
- height: auto;
- max-width: 200px;
- }
-
- .llms-quiz-attempt-answer-section {
- border-top: 2px solid rgba( #fff, 0.5 );
- margin-top: 20px;
- padding-top: 20px;
- &:first-child {
- border-top: none;
- margin-top: 0;
- padding-top: 0;
- }
- }
-
- }
-
- &.type--picture_choice,
- &.type--picture_reorder {
- ul.llms-quiz-attempt-answers {
- list-style-type: none;
- margin: 0;
- padding: 0;
-
- li.llms-quiz-attempt-answer {
- display: inline-block;
- list-style-type: none;
- margin: 0;
- padding: 5px;
- }
- }
- }
-
- &.type--removed {
- .llms-question-title {
- font-style: italic;
- font-weight: normal;
- }
- opacity: .5;
- }
-
- }
-}
diff --git a/assets/scss/_includes/_spinner.scss b/assets/scss/_includes/_spinner.scss
deleted file mode 100644
index 2444d3f075..0000000000
--- a/assets/scss/_includes/_spinner.scss
+++ /dev/null
@@ -1,43 +0,0 @@
-.llms-spinning {
- background: rgba( 250, 250, 250, 0.7 );
- bottom: 0;
- display: none;
- left: 0;
- position: absolute;
- right: 0;
- top: 0;
-}
-
-.llms-spinner {
- animation: llms-spinning 1.5s linear infinite;
- box-sizing: border-box;
- border: 4px solid #313131;
- border-radius: 50%;
- height: 40px;
- left: 50%;
- margin-left: -20px;
- margin-top: -20px;
- position: absolute;
- top: 50%;
- width: 40px;
-
- &.small {
- border-width: 2px;
- height: 20px;
- margin-left: -10px;
- margin-top: -10px;
- width: 20px;
- }
-}
-
-@keyframes llms-spinning{
- 0% {
- transform: rotate(0deg)
- }
- 50% {
- border-radius: 5%;
- }
- 100% {
- transform: rotate(220deg)
- }
-}
diff --git a/assets/scss/_includes/_tooltip.scss b/assets/scss/_includes/_tooltip.scss
deleted file mode 100644
index 39e5f77f15..0000000000
--- a/assets/scss/_includes/_tooltip.scss
+++ /dev/null
@@ -1,135 +0,0 @@
-.lifterlms, // Settings & Course Builder.
-.llms-metabox, // Some Metaboxes.
-.llms-mb-container, // Other Metaboxes.
-.llms-quiz-wrapper { // Quiz results.
-
- [data-tip],
- [data-title-default],
- [data-title-active] {
-
- $bgcolor: #444;
-
- position: relative;
-
- &.tip--top-right {
- &:before {
- bottom: 100%;
- left: -10px;
- }
- &:hover:before {
- bottom: calc( 100% + 6px );
- }
- &:after {
- border-top-color: $bgcolor;
- left: 6px;
- top: 0;
- }
- &:hover:after {
- top: -6px;
- }
- }
-
-
- &.tip--top-left {
- &:before {
- bottom: 100%;
- right: -10px;
- }
- &:hover:before {
- bottom: calc( 100% + 6px );
- }
- &:after {
- border-top-color: $bgcolor;
- right: 6px;
- top: 0;
- }
- &:hover:after {
- top: -6px;
- }
- }
-
-
-
- &.tip--bottom-left {
- &:before {
- top: 100%;
- right: -10px;
- }
- &:hover:before {
- top: calc( 100% + 6px );
- }
- &:after {
- border-bottom-color: $bgcolor;
- right: 6px;
- bottom: 0;
- }
- &:hover:after {
- bottom: -6px;
- }
- }
-
- &.tip--bottom-right {
- &:before {
- top: 100%;
- left: -10px;
- }
- &:hover:before {
- top: calc( 100% + 6px );
- }
- &:after {
- border-bottom-color: $bgcolor;
- left: 6px;
- bottom: 0;
- }
- &:hover:after {
- bottom: -6px;
- }
- }
-
- &:before {
- background: $bgcolor;
- border-radius: 4px;
- color: #fff;
- font-size: 13px;
- line-height: 1.2;
- padding: 8px;
- max-width: 300px;
- width: max-content;
- }
- &:after {
- content: '';
- border: 6px solid transparent;
- height: 0;
- width: 0;
- }
-
- &:before,
- &:after {
- opacity: 0;
- transition: all 0.2s 0.1s ease;
- position: absolute;
- pointer-events: none;
- visibility: hidden;
- }
- &:hover:before,
- &:hover:after {
- opacity: 1;
- transition: all 0.2s 0.6s ease;
- visibility: visible;
- z-index: 99999999;
- }
-
- }
-
- [data-tip] {
- &:before {
- content: attr(data-tip);
- }
- }
- [data-tip].active {
- &:before {
- content: attr(data-tip-active);
- }
- }
-
-}
diff --git a/assets/scss/_includes/_vars-brand-colors.scss b/assets/scss/_includes/_vars-brand-colors.scss
deleted file mode 100644
index 9f4660b944..0000000000
--- a/assets/scss/_includes/_vars-brand-colors.scss
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// LifterLMS Brand Colors
-// Currently overrides brand colors on the admin panel
-//
-
-$color-brand-blue: #466dd8;
-$color-brand-blue-dark: darken( $color-brand-blue, 8 );
-$color-brand-dark-blue: darken( $color-brand-blue, 24 );
-$color-brand-blue-light: lighten( $color-brand-blue, 8 );
-
-$color-brand-orange: #f8954f;
-$color-brand-orange-dark: #f67d28;
-$color-brand-orange-light: lighten( $color-brand-orange, 8 );
-
-$color-brand-aqua: #17bebb;
-
-$color-brand-pink: #ef476f;
-
-$color-blue: $color-brand-blue;
diff --git a/assets/scss/_includes/_vars.scss b/assets/scss/_includes/_vars.scss
deleted file mode 100644
index 57eda78b9f..0000000000
--- a/assets/scss/_includes/_vars.scss
+++ /dev/null
@@ -1,69 +0,0 @@
-// ----- LifterLMS Brand Colors ----- \\
-$color-brand-dark-blue: #243c56;
-
-$color-brand-blue: #2295ff;
-$color-brand-blue-dark: darken( $color-brand-blue, 12 ); // #0077e4
-$color-brand-blue-light: lighten( $color-brand-blue, 8 );
-
-$color-brand-orange: #f8954f;
-$color-brand-orange-dark: #f67d28;
-$color-brand-orange-light: lighten( $color-brand-orange, 8 );
-
-$color-brand-aqua: #17bebb;
-
-$color-brand-pink: #ef476f;
-
-
-
-// ----- name our versions of common colors ----- \\
-$color-black: #010101;
-$color-green: #83c373;
-$color-blue: $color-brand-blue;
-$color-red: #e5554e;
-$color-white: #fefefe;
-$color-aqua: #35bbaa;
-$color-purple: #845ef7;
-$color-orange: #ff922b;
-
-$color-red-hover: darken($color-red,5);
-
-
-// ----- state / action names ----- \\
-$color-success: $color-green;
-$color-danger: $color-red;
-
-
-
-
-
-
-
-
-$color-lightgrey: #ccc;
-$color-grey: #999;
-$color-darkgrey: #666;
-$color-cinder: #444;
-$color-lightblue: #33b1cb;
-$color-darkblue: #0185a3;
-
-
-
-
-
-
-
-
-
-
-
-
-$color-border: #efefef;
-
-$el-box-shadow: 0 1px 2px 0 rgba($color-black,0.4);
-$el-background: #f1f1f1;
-$el-background-hover: #eaeaea;
-
-$break-xsmall: 320px;
-$break-small: 641px;
-$break-medium: 768px;
-$break-large: 1024px;
diff --git a/assets/scss/_includes/vendor/_font-awesome.scss b/assets/scss/_includes/vendor/_font-awesome.scss
deleted file mode 100644
index ee906a8196..0000000000
--- a/assets/scss/_includes/vendor/_font-awesome.scss
+++ /dev/null
@@ -1,2337 +0,0 @@
-/*!
- * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
- * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */
-/* FONT PATH
- * -------------------------- */
-@font-face {
- font-family: 'FontAwesome';
- src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');
- src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');
- font-weight: normal;
- font-style: normal;
-}
-.fa {
- display: inline-block;
- font: normal normal normal 14px/1 FontAwesome;
- font-size: inherit;
- text-rendering: auto;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-/* makes the font 33% larger relative to the icon container */
-.fa-lg {
- font-size: 1.33333333em;
- line-height: 0.75em;
- vertical-align: -15%;
-}
-.fa-2x {
- font-size: 2em;
-}
-.fa-3x {
- font-size: 3em;
-}
-.fa-4x {
- font-size: 4em;
-}
-.fa-5x {
- font-size: 5em;
-}
-.fa-fw {
- width: 1.28571429em;
- text-align: center;
-}
-.fa-ul {
- padding-left: 0;
- margin-left: 2.14285714em;
- list-style-type: none;
-}
-.fa-ul > li {
- position: relative;
-}
-.fa-li {
- position: absolute;
- left: -2.14285714em;
- width: 2.14285714em;
- top: 0.14285714em;
- text-align: center;
-}
-.fa-li.fa-lg {
- left: -1.85714286em;
-}
-.fa-border {
- padding: .2em .25em .15em;
- border: solid 0.08em #eeeeee;
- border-radius: .1em;
-}
-.fa-pull-left {
- float: left;
-}
-.fa-pull-right {
- float: right;
-}
-.fa.fa-pull-left {
- margin-right: .3em;
-}
-.fa.fa-pull-right {
- margin-left: .3em;
-}
-/* Deprecated as of 4.4.0 */
-.pull-right {
- float: right;
-}
-.pull-left {
- float: left;
-}
-.fa.pull-left {
- margin-right: .3em;
-}
-.fa.pull-right {
- margin-left: .3em;
-}
-.fa-spin {
- -webkit-animation: fa-spin 2s infinite linear;
- animation: fa-spin 2s infinite linear;
-}
-.fa-pulse {
- -webkit-animation: fa-spin 1s infinite steps(8);
- animation: fa-spin 1s infinite steps(8);
-}
-@-webkit-keyframes fa-spin {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(359deg);
- transform: rotate(359deg);
- }
-}
-@keyframes fa-spin {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(359deg);
- transform: rotate(359deg);
- }
-}
-.fa-rotate-90 {
- -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
- -webkit-transform: rotate(90deg);
- -ms-transform: rotate(90deg);
- transform: rotate(90deg);
-}
-.fa-rotate-180 {
- -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
- -webkit-transform: rotate(180deg);
- -ms-transform: rotate(180deg);
- transform: rotate(180deg);
-}
-.fa-rotate-270 {
- -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
- -webkit-transform: rotate(270deg);
- -ms-transform: rotate(270deg);
- transform: rotate(270deg);
-}
-.fa-flip-horizontal {
- -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
- -webkit-transform: scale(-1, 1);
- -ms-transform: scale(-1, 1);
- transform: scale(-1, 1);
-}
-.fa-flip-vertical {
- -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
- -webkit-transform: scale(1, -1);
- -ms-transform: scale(1, -1);
- transform: scale(1, -1);
-}
-:root .fa-rotate-90,
-:root .fa-rotate-180,
-:root .fa-rotate-270,
-:root .fa-flip-horizontal,
-:root .fa-flip-vertical {
- filter: none;
-}
-.fa-stack {
- position: relative;
- display: inline-block;
- width: 2em;
- height: 2em;
- line-height: 2em;
- vertical-align: middle;
-}
-.fa-stack-1x,
-.fa-stack-2x {
- position: absolute;
- left: 0;
- width: 100%;
- text-align: center;
-}
-.fa-stack-1x {
- line-height: inherit;
-}
-.fa-stack-2x {
- font-size: 2em;
-}
-.fa-inverse {
- color: #ffffff;
-}
-/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
- readers do not read off random characters that represent icons */
-.fa-glass:before {
- content: "\f000";
-}
-.fa-music:before {
- content: "\f001";
-}
-.fa-search:before {
- content: "\f002";
-}
-.fa-envelope-o:before {
- content: "\f003";
-}
-.fa-heart:before {
- content: "\f004";
-}
-.fa-star:before {
- content: "\f005";
-}
-.fa-star-o:before {
- content: "\f006";
-}
-.fa-user:before {
- content: "\f007";
-}
-.fa-film:before {
- content: "\f008";
-}
-.fa-th-large:before {
- content: "\f009";
-}
-.fa-th:before {
- content: "\f00a";
-}
-.fa-th-list:before {
- content: "\f00b";
-}
-.fa-check:before {
- content: "\f00c";
-}
-.fa-remove:before,
-.fa-close:before,
-.fa-times:before {
- content: "\f00d";
-}
-.fa-search-plus:before {
- content: "\f00e";
-}
-.fa-search-minus:before {
- content: "\f010";
-}
-.fa-power-off:before {
- content: "\f011";
-}
-.fa-signal:before {
- content: "\f012";
-}
-.fa-gear:before,
-.fa-cog:before {
- content: "\f013";
-}
-.fa-trash-o:before {
- content: "\f014";
-}
-.fa-home:before {
- content: "\f015";
-}
-.fa-file-o:before {
- content: "\f016";
-}
-.fa-clock-o:before {
- content: "\f017";
-}
-.fa-road:before {
- content: "\f018";
-}
-.fa-download:before {
- content: "\f019";
-}
-.fa-arrow-circle-o-down:before {
- content: "\f01a";
-}
-.fa-arrow-circle-o-up:before {
- content: "\f01b";
-}
-.fa-inbox:before {
- content: "\f01c";
-}
-.fa-play-circle-o:before {
- content: "\f01d";
-}
-.fa-rotate-right:before,
-.fa-repeat:before {
- content: "\f01e";
-}
-.fa-refresh:before {
- content: "\f021";
-}
-.fa-list-alt:before {
- content: "\f022";
-}
-.fa-lock:before {
- content: "\f023";
-}
-.fa-flag:before {
- content: "\f024";
-}
-.fa-headphones:before {
- content: "\f025";
-}
-.fa-volume-off:before {
- content: "\f026";
-}
-.fa-volume-down:before {
- content: "\f027";
-}
-.fa-volume-up:before {
- content: "\f028";
-}
-.fa-qrcode:before {
- content: "\f029";
-}
-.fa-barcode:before {
- content: "\f02a";
-}
-.fa-tag:before {
- content: "\f02b";
-}
-.fa-tags:before {
- content: "\f02c";
-}
-.fa-book:before {
- content: "\f02d";
-}
-.fa-bookmark:before {
- content: "\f02e";
-}
-.fa-print:before {
- content: "\f02f";
-}
-.fa-camera:before {
- content: "\f030";
-}
-.fa-font:before {
- content: "\f031";
-}
-.fa-bold:before {
- content: "\f032";
-}
-.fa-italic:before {
- content: "\f033";
-}
-.fa-text-height:before {
- content: "\f034";
-}
-.fa-text-width:before {
- content: "\f035";
-}
-.fa-align-left:before {
- content: "\f036";
-}
-.fa-align-center:before {
- content: "\f037";
-}
-.fa-align-right:before {
- content: "\f038";
-}
-.fa-align-justify:before {
- content: "\f039";
-}
-.fa-list:before {
- content: "\f03a";
-}
-.fa-dedent:before,
-.fa-outdent:before {
- content: "\f03b";
-}
-.fa-indent:before {
- content: "\f03c";
-}
-.fa-video-camera:before {
- content: "\f03d";
-}
-.fa-photo:before,
-.fa-image:before,
-.fa-picture-o:before {
- content: "\f03e";
-}
-.fa-pencil:before {
- content: "\f040";
-}
-.fa-map-marker:before {
- content: "\f041";
-}
-.fa-adjust:before {
- content: "\f042";
-}
-.fa-tint:before {
- content: "\f043";
-}
-.fa-edit:before,
-.fa-pencil-square-o:before {
- content: "\f044";
-}
-.fa-share-square-o:before {
- content: "\f045";
-}
-.fa-check-square-o:before {
- content: "\f046";
-}
-.fa-arrows:before {
- content: "\f047";
-}
-.fa-step-backward:before {
- content: "\f048";
-}
-.fa-fast-backward:before {
- content: "\f049";
-}
-.fa-backward:before {
- content: "\f04a";
-}
-.fa-play:before {
- content: "\f04b";
-}
-.fa-pause:before {
- content: "\f04c";
-}
-.fa-stop:before {
- content: "\f04d";
-}
-.fa-forward:before {
- content: "\f04e";
-}
-.fa-fast-forward:before {
- content: "\f050";
-}
-.fa-step-forward:before {
- content: "\f051";
-}
-.fa-eject:before {
- content: "\f052";
-}
-.fa-chevron-left:before {
- content: "\f053";
-}
-.fa-chevron-right:before {
- content: "\f054";
-}
-.fa-plus-circle:before {
- content: "\f055";
-}
-.fa-minus-circle:before {
- content: "\f056";
-}
-.fa-times-circle:before {
- content: "\f057";
-}
-.fa-check-circle:before {
- content: "\f058";
-}
-.fa-question-circle:before {
- content: "\f059";
-}
-.fa-info-circle:before {
- content: "\f05a";
-}
-.fa-crosshairs:before {
- content: "\f05b";
-}
-.fa-times-circle-o:before {
- content: "\f05c";
-}
-.fa-check-circle-o:before {
- content: "\f05d";
-}
-.fa-ban:before {
- content: "\f05e";
-}
-.fa-arrow-left:before {
- content: "\f060";
-}
-.fa-arrow-right:before {
- content: "\f061";
-}
-.fa-arrow-up:before {
- content: "\f062";
-}
-.fa-arrow-down:before {
- content: "\f063";
-}
-.fa-mail-forward:before,
-.fa-share:before {
- content: "\f064";
-}
-.fa-expand:before {
- content: "\f065";
-}
-.fa-compress:before {
- content: "\f066";
-}
-.fa-plus:before {
- content: "\f067";
-}
-.fa-minus:before {
- content: "\f068";
-}
-.fa-asterisk:before {
- content: "\f069";
-}
-.fa-exclamation-circle:before {
- content: "\f06a";
-}
-.fa-gift:before {
- content: "\f06b";
-}
-.fa-leaf:before {
- content: "\f06c";
-}
-.fa-fire:before {
- content: "\f06d";
-}
-.fa-eye:before {
- content: "\f06e";
-}
-.fa-eye-slash:before {
- content: "\f070";
-}
-.fa-warning:before,
-.fa-exclamation-triangle:before {
- content: "\f071";
-}
-.fa-plane:before {
- content: "\f072";
-}
-.fa-calendar:before {
- content: "\f073";
-}
-.fa-random:before {
- content: "\f074";
-}
-.fa-comment:before {
- content: "\f075";
-}
-.fa-magnet:before {
- content: "\f076";
-}
-.fa-chevron-up:before {
- content: "\f077";
-}
-.fa-chevron-down:before {
- content: "\f078";
-}
-.fa-retweet:before {
- content: "\f079";
-}
-.fa-shopping-cart:before {
- content: "\f07a";
-}
-.fa-folder:before {
- content: "\f07b";
-}
-.fa-folder-open:before {
- content: "\f07c";
-}
-.fa-arrows-v:before {
- content: "\f07d";
-}
-.fa-arrows-h:before {
- content: "\f07e";
-}
-.fa-bar-chart-o:before,
-.fa-bar-chart:before {
- content: "\f080";
-}
-.fa-twitter-square:before {
- content: "\f081";
-}
-.fa-facebook-square:before {
- content: "\f082";
-}
-.fa-camera-retro:before {
- content: "\f083";
-}
-.fa-key:before {
- content: "\f084";
-}
-.fa-gears:before,
-.fa-cogs:before {
- content: "\f085";
-}
-.fa-comments:before {
- content: "\f086";
-}
-.fa-thumbs-o-up:before {
- content: "\f087";
-}
-.fa-thumbs-o-down:before {
- content: "\f088";
-}
-.fa-star-half:before {
- content: "\f089";
-}
-.fa-heart-o:before {
- content: "\f08a";
-}
-.fa-sign-out:before {
- content: "\f08b";
-}
-.fa-linkedin-square:before {
- content: "\f08c";
-}
-.fa-thumb-tack:before {
- content: "\f08d";
-}
-.fa-external-link:before {
- content: "\f08e";
-}
-.fa-sign-in:before {
- content: "\f090";
-}
-.fa-trophy:before {
- content: "\f091";
-}
-.fa-github-square:before {
- content: "\f092";
-}
-.fa-upload:before {
- content: "\f093";
-}
-.fa-lemon-o:before {
- content: "\f094";
-}
-.fa-phone:before {
- content: "\f095";
-}
-.fa-square-o:before {
- content: "\f096";
-}
-.fa-bookmark-o:before {
- content: "\f097";
-}
-.fa-phone-square:before {
- content: "\f098";
-}
-.fa-twitter:before {
- content: "\f099";
-}
-.fa-facebook-f:before,
-.fa-facebook:before {
- content: "\f09a";
-}
-.fa-github:before {
- content: "\f09b";
-}
-.fa-unlock:before {
- content: "\f09c";
-}
-.fa-credit-card:before {
- content: "\f09d";
-}
-.fa-feed:before,
-.fa-rss:before {
- content: "\f09e";
-}
-.fa-hdd-o:before {
- content: "\f0a0";
-}
-.fa-bullhorn:before {
- content: "\f0a1";
-}
-.fa-bell:before {
- content: "\f0f3";
-}
-.fa-certificate:before {
- content: "\f0a3";
-}
-.fa-hand-o-right:before {
- content: "\f0a4";
-}
-.fa-hand-o-left:before {
- content: "\f0a5";
-}
-.fa-hand-o-up:before {
- content: "\f0a6";
-}
-.fa-hand-o-down:before {
- content: "\f0a7";
-}
-.fa-arrow-circle-left:before {
- content: "\f0a8";
-}
-.fa-arrow-circle-right:before {
- content: "\f0a9";
-}
-.fa-arrow-circle-up:before {
- content: "\f0aa";
-}
-.fa-arrow-circle-down:before {
- content: "\f0ab";
-}
-.fa-globe:before {
- content: "\f0ac";
-}
-.fa-wrench:before {
- content: "\f0ad";
-}
-.fa-tasks:before {
- content: "\f0ae";
-}
-.fa-filter:before {
- content: "\f0b0";
-}
-.fa-briefcase:before {
- content: "\f0b1";
-}
-.fa-arrows-alt:before {
- content: "\f0b2";
-}
-.fa-group:before,
-.fa-users:before {
- content: "\f0c0";
-}
-.fa-chain:before,
-.fa-link:before {
- content: "\f0c1";
-}
-.fa-cloud:before {
- content: "\f0c2";
-}
-.fa-flask:before {
- content: "\f0c3";
-}
-.fa-cut:before,
-.fa-scissors:before {
- content: "\f0c4";
-}
-.fa-copy:before,
-.fa-files-o:before {
- content: "\f0c5";
-}
-.fa-paperclip:before {
- content: "\f0c6";
-}
-.fa-save:before,
-.fa-floppy-o:before {
- content: "\f0c7";
-}
-.fa-square:before {
- content: "\f0c8";
-}
-.fa-navicon:before,
-.fa-reorder:before,
-.fa-bars:before {
- content: "\f0c9";
-}
-.fa-list-ul:before {
- content: "\f0ca";
-}
-.fa-list-ol:before {
- content: "\f0cb";
-}
-.fa-strikethrough:before {
- content: "\f0cc";
-}
-.fa-underline:before {
- content: "\f0cd";
-}
-.fa-table:before {
- content: "\f0ce";
-}
-.fa-magic:before {
- content: "\f0d0";
-}
-.fa-truck:before {
- content: "\f0d1";
-}
-.fa-pinterest:before {
- content: "\f0d2";
-}
-.fa-pinterest-square:before {
- content: "\f0d3";
-}
-.fa-google-plus-square:before {
- content: "\f0d4";
-}
-.fa-google-plus:before {
- content: "\f0d5";
-}
-.fa-money:before {
- content: "\f0d6";
-}
-.fa-caret-down:before {
- content: "\f0d7";
-}
-.fa-caret-up:before {
- content: "\f0d8";
-}
-.fa-caret-left:before {
- content: "\f0d9";
-}
-.fa-caret-right:before {
- content: "\f0da";
-}
-.fa-columns:before {
- content: "\f0db";
-}
-.fa-unsorted:before,
-.fa-sort:before {
- content: "\f0dc";
-}
-.fa-sort-down:before,
-.fa-sort-desc:before {
- content: "\f0dd";
-}
-.fa-sort-up:before,
-.fa-sort-asc:before {
- content: "\f0de";
-}
-.fa-envelope:before {
- content: "\f0e0";
-}
-.fa-linkedin:before {
- content: "\f0e1";
-}
-.fa-rotate-left:before,
-.fa-undo:before {
- content: "\f0e2";
-}
-.fa-legal:before,
-.fa-gavel:before {
- content: "\f0e3";
-}
-.fa-dashboard:before,
-.fa-tachometer:before {
- content: "\f0e4";
-}
-.fa-comment-o:before {
- content: "\f0e5";
-}
-.fa-comments-o:before {
- content: "\f0e6";
-}
-.fa-flash:before,
-.fa-bolt:before {
- content: "\f0e7";
-}
-.fa-sitemap:before {
- content: "\f0e8";
-}
-.fa-umbrella:before {
- content: "\f0e9";
-}
-.fa-paste:before,
-.fa-clipboard:before {
- content: "\f0ea";
-}
-.fa-lightbulb-o:before {
- content: "\f0eb";
-}
-.fa-exchange:before {
- content: "\f0ec";
-}
-.fa-cloud-download:before {
- content: "\f0ed";
-}
-.fa-cloud-upload:before {
- content: "\f0ee";
-}
-.fa-user-md:before {
- content: "\f0f0";
-}
-.fa-stethoscope:before {
- content: "\f0f1";
-}
-.fa-suitcase:before {
- content: "\f0f2";
-}
-.fa-bell-o:before {
- content: "\f0a2";
-}
-.fa-coffee:before {
- content: "\f0f4";
-}
-.fa-cutlery:before {
- content: "\f0f5";
-}
-.fa-file-text-o:before {
- content: "\f0f6";
-}
-.fa-building-o:before {
- content: "\f0f7";
-}
-.fa-hospital-o:before {
- content: "\f0f8";
-}
-.fa-ambulance:before {
- content: "\f0f9";
-}
-.fa-medkit:before {
- content: "\f0fa";
-}
-.fa-fighter-jet:before {
- content: "\f0fb";
-}
-.fa-beer:before {
- content: "\f0fc";
-}
-.fa-h-square:before {
- content: "\f0fd";
-}
-.fa-plus-square:before {
- content: "\f0fe";
-}
-.fa-angle-double-left:before {
- content: "\f100";
-}
-.fa-angle-double-right:before {
- content: "\f101";
-}
-.fa-angle-double-up:before {
- content: "\f102";
-}
-.fa-angle-double-down:before {
- content: "\f103";
-}
-.fa-angle-left:before {
- content: "\f104";
-}
-.fa-angle-right:before {
- content: "\f105";
-}
-.fa-angle-up:before {
- content: "\f106";
-}
-.fa-angle-down:before {
- content: "\f107";
-}
-.fa-desktop:before {
- content: "\f108";
-}
-.fa-laptop:before {
- content: "\f109";
-}
-.fa-tablet:before {
- content: "\f10a";
-}
-.fa-mobile-phone:before,
-.fa-mobile:before {
- content: "\f10b";
-}
-.fa-circle-o:before {
- content: "\f10c";
-}
-.fa-quote-left:before {
- content: "\f10d";
-}
-.fa-quote-right:before {
- content: "\f10e";
-}
-.fa-spinner:before {
- content: "\f110";
-}
-.fa-circle:before {
- content: "\f111";
-}
-.fa-mail-reply:before,
-.fa-reply:before {
- content: "\f112";
-}
-.fa-github-alt:before {
- content: "\f113";
-}
-.fa-folder-o:before {
- content: "\f114";
-}
-.fa-folder-open-o:before {
- content: "\f115";
-}
-.fa-smile-o:before {
- content: "\f118";
-}
-.fa-frown-o:before {
- content: "\f119";
-}
-.fa-meh-o:before {
- content: "\f11a";
-}
-.fa-gamepad:before {
- content: "\f11b";
-}
-.fa-keyboard-o:before {
- content: "\f11c";
-}
-.fa-flag-o:before {
- content: "\f11d";
-}
-.fa-flag-checkered:before {
- content: "\f11e";
-}
-.fa-terminal:before {
- content: "\f120";
-}
-.fa-code:before {
- content: "\f121";
-}
-.fa-mail-reply-all:before,
-.fa-reply-all:before {
- content: "\f122";
-}
-.fa-star-half-empty:before,
-.fa-star-half-full:before,
-.fa-star-half-o:before {
- content: "\f123";
-}
-.fa-location-arrow:before {
- content: "\f124";
-}
-.fa-crop:before {
- content: "\f125";
-}
-.fa-code-fork:before {
- content: "\f126";
-}
-.fa-unlink:before,
-.fa-chain-broken:before {
- content: "\f127";
-}
-.fa-question:before {
- content: "\f128";
-}
-.fa-info:before {
- content: "\f129";
-}
-.fa-exclamation:before {
- content: "\f12a";
-}
-.fa-superscript:before {
- content: "\f12b";
-}
-.fa-subscript:before {
- content: "\f12c";
-}
-.fa-eraser:before {
- content: "\f12d";
-}
-.fa-puzzle-piece:before {
- content: "\f12e";
-}
-.fa-microphone:before {
- content: "\f130";
-}
-.fa-microphone-slash:before {
- content: "\f131";
-}
-.fa-shield:before {
- content: "\f132";
-}
-.fa-calendar-o:before {
- content: "\f133";
-}
-.fa-fire-extinguisher:before {
- content: "\f134";
-}
-.fa-rocket:before {
- content: "\f135";
-}
-.fa-maxcdn:before {
- content: "\f136";
-}
-.fa-chevron-circle-left:before {
- content: "\f137";
-}
-.fa-chevron-circle-right:before {
- content: "\f138";
-}
-.fa-chevron-circle-up:before {
- content: "\f139";
-}
-.fa-chevron-circle-down:before {
- content: "\f13a";
-}
-.fa-html5:before {
- content: "\f13b";
-}
-.fa-css3:before {
- content: "\f13c";
-}
-.fa-anchor:before {
- content: "\f13d";
-}
-.fa-unlock-alt:before {
- content: "\f13e";
-}
-.fa-bullseye:before {
- content: "\f140";
-}
-.fa-ellipsis-h:before {
- content: "\f141";
-}
-.fa-ellipsis-v:before {
- content: "\f142";
-}
-.fa-rss-square:before {
- content: "\f143";
-}
-.fa-play-circle:before {
- content: "\f144";
-}
-.fa-ticket:before {
- content: "\f145";
-}
-.fa-minus-square:before {
- content: "\f146";
-}
-.fa-minus-square-o:before {
- content: "\f147";
-}
-.fa-level-up:before {
- content: "\f148";
-}
-.fa-level-down:before {
- content: "\f149";
-}
-.fa-check-square:before {
- content: "\f14a";
-}
-.fa-pencil-square:before {
- content: "\f14b";
-}
-.fa-external-link-square:before {
- content: "\f14c";
-}
-.fa-share-square:before {
- content: "\f14d";
-}
-.fa-compass:before {
- content: "\f14e";
-}
-.fa-toggle-down:before,
-.fa-caret-square-o-down:before {
- content: "\f150";
-}
-.fa-toggle-up:before,
-.fa-caret-square-o-up:before {
- content: "\f151";
-}
-.fa-toggle-right:before,
-.fa-caret-square-o-right:before {
- content: "\f152";
-}
-.fa-euro:before,
-.fa-eur:before {
- content: "\f153";
-}
-.fa-gbp:before {
- content: "\f154";
-}
-.fa-dollar:before,
-.fa-usd:before {
- content: "\f155";
-}
-.fa-rupee:before,
-.fa-inr:before {
- content: "\f156";
-}
-.fa-cny:before,
-.fa-rmb:before,
-.fa-yen:before,
-.fa-jpy:before {
- content: "\f157";
-}
-.fa-ruble:before,
-.fa-rouble:before,
-.fa-rub:before {
- content: "\f158";
-}
-.fa-won:before,
-.fa-krw:before {
- content: "\f159";
-}
-.fa-bitcoin:before,
-.fa-btc:before {
- content: "\f15a";
-}
-.fa-file:before {
- content: "\f15b";
-}
-.fa-file-text:before {
- content: "\f15c";
-}
-.fa-sort-alpha-asc:before {
- content: "\f15d";
-}
-.fa-sort-alpha-desc:before {
- content: "\f15e";
-}
-.fa-sort-amount-asc:before {
- content: "\f160";
-}
-.fa-sort-amount-desc:before {
- content: "\f161";
-}
-.fa-sort-numeric-asc:before {
- content: "\f162";
-}
-.fa-sort-numeric-desc:before {
- content: "\f163";
-}
-.fa-thumbs-up:before {
- content: "\f164";
-}
-.fa-thumbs-down:before {
- content: "\f165";
-}
-.fa-youtube-square:before {
- content: "\f166";
-}
-.fa-youtube:before {
- content: "\f167";
-}
-.fa-xing:before {
- content: "\f168";
-}
-.fa-xing-square:before {
- content: "\f169";
-}
-.fa-youtube-play:before {
- content: "\f16a";
-}
-.fa-dropbox:before {
- content: "\f16b";
-}
-.fa-stack-overflow:before {
- content: "\f16c";
-}
-.fa-instagram:before {
- content: "\f16d";
-}
-.fa-flickr:before {
- content: "\f16e";
-}
-.fa-adn:before {
- content: "\f170";
-}
-.fa-bitbucket:before {
- content: "\f171";
-}
-.fa-bitbucket-square:before {
- content: "\f172";
-}
-.fa-tumblr:before {
- content: "\f173";
-}
-.fa-tumblr-square:before {
- content: "\f174";
-}
-.fa-long-arrow-down:before {
- content: "\f175";
-}
-.fa-long-arrow-up:before {
- content: "\f176";
-}
-.fa-long-arrow-left:before {
- content: "\f177";
-}
-.fa-long-arrow-right:before {
- content: "\f178";
-}
-.fa-apple:before {
- content: "\f179";
-}
-.fa-windows:before {
- content: "\f17a";
-}
-.fa-android:before {
- content: "\f17b";
-}
-.fa-linux:before {
- content: "\f17c";
-}
-.fa-dribbble:before {
- content: "\f17d";
-}
-.fa-skype:before {
- content: "\f17e";
-}
-.fa-foursquare:before {
- content: "\f180";
-}
-.fa-trello:before {
- content: "\f181";
-}
-.fa-female:before {
- content: "\f182";
-}
-.fa-male:before {
- content: "\f183";
-}
-.fa-gittip:before,
-.fa-gratipay:before {
- content: "\f184";
-}
-.fa-sun-o:before {
- content: "\f185";
-}
-.fa-moon-o:before {
- content: "\f186";
-}
-.fa-archive:before {
- content: "\f187";
-}
-.fa-bug:before {
- content: "\f188";
-}
-.fa-vk:before {
- content: "\f189";
-}
-.fa-weibo:before {
- content: "\f18a";
-}
-.fa-renren:before {
- content: "\f18b";
-}
-.fa-pagelines:before {
- content: "\f18c";
-}
-.fa-stack-exchange:before {
- content: "\f18d";
-}
-.fa-arrow-circle-o-right:before {
- content: "\f18e";
-}
-.fa-arrow-circle-o-left:before {
- content: "\f190";
-}
-.fa-toggle-left:before,
-.fa-caret-square-o-left:before {
- content: "\f191";
-}
-.fa-dot-circle-o:before {
- content: "\f192";
-}
-.fa-wheelchair:before {
- content: "\f193";
-}
-.fa-vimeo-square:before {
- content: "\f194";
-}
-.fa-turkish-lira:before,
-.fa-try:before {
- content: "\f195";
-}
-.fa-plus-square-o:before {
- content: "\f196";
-}
-.fa-space-shuttle:before {
- content: "\f197";
-}
-.fa-slack:before {
- content: "\f198";
-}
-.fa-envelope-square:before {
- content: "\f199";
-}
-.fa-wordpress:before {
- content: "\f19a";
-}
-.fa-openid:before {
- content: "\f19b";
-}
-.fa-institution:before,
-.fa-bank:before,
-.fa-university:before {
- content: "\f19c";
-}
-.fa-mortar-board:before,
-.fa-graduation-cap:before {
- content: "\f19d";
-}
-.fa-yahoo:before {
- content: "\f19e";
-}
-.fa-google:before {
- content: "\f1a0";
-}
-.fa-reddit:before {
- content: "\f1a1";
-}
-.fa-reddit-square:before {
- content: "\f1a2";
-}
-.fa-stumbleupon-circle:before {
- content: "\f1a3";
-}
-.fa-stumbleupon:before {
- content: "\f1a4";
-}
-.fa-delicious:before {
- content: "\f1a5";
-}
-.fa-digg:before {
- content: "\f1a6";
-}
-.fa-pied-piper-pp:before {
- content: "\f1a7";
-}
-.fa-pied-piper-alt:before {
- content: "\f1a8";
-}
-.fa-drupal:before {
- content: "\f1a9";
-}
-.fa-joomla:before {
- content: "\f1aa";
-}
-.fa-language:before {
- content: "\f1ab";
-}
-.fa-fax:before {
- content: "\f1ac";
-}
-.fa-building:before {
- content: "\f1ad";
-}
-.fa-child:before {
- content: "\f1ae";
-}
-.fa-paw:before {
- content: "\f1b0";
-}
-.fa-spoon:before {
- content: "\f1b1";
-}
-.fa-cube:before {
- content: "\f1b2";
-}
-.fa-cubes:before {
- content: "\f1b3";
-}
-.fa-behance:before {
- content: "\f1b4";
-}
-.fa-behance-square:before {
- content: "\f1b5";
-}
-.fa-steam:before {
- content: "\f1b6";
-}
-.fa-steam-square:before {
- content: "\f1b7";
-}
-.fa-recycle:before {
- content: "\f1b8";
-}
-.fa-automobile:before,
-.fa-car:before {
- content: "\f1b9";
-}
-.fa-cab:before,
-.fa-taxi:before {
- content: "\f1ba";
-}
-.fa-tree:before {
- content: "\f1bb";
-}
-.fa-spotify:before {
- content: "\f1bc";
-}
-.fa-deviantart:before {
- content: "\f1bd";
-}
-.fa-soundcloud:before {
- content: "\f1be";
-}
-.fa-database:before {
- content: "\f1c0";
-}
-.fa-file-pdf-o:before {
- content: "\f1c1";
-}
-.fa-file-word-o:before {
- content: "\f1c2";
-}
-.fa-file-excel-o:before {
- content: "\f1c3";
-}
-.fa-file-powerpoint-o:before {
- content: "\f1c4";
-}
-.fa-file-photo-o:before,
-.fa-file-picture-o:before,
-.fa-file-image-o:before {
- content: "\f1c5";
-}
-.fa-file-zip-o:before,
-.fa-file-archive-o:before {
- content: "\f1c6";
-}
-.fa-file-sound-o:before,
-.fa-file-audio-o:before {
- content: "\f1c7";
-}
-.fa-file-movie-o:before,
-.fa-file-video-o:before {
- content: "\f1c8";
-}
-.fa-file-code-o:before {
- content: "\f1c9";
-}
-.fa-vine:before {
- content: "\f1ca";
-}
-.fa-codepen:before {
- content: "\f1cb";
-}
-.fa-jsfiddle:before {
- content: "\f1cc";
-}
-.fa-life-bouy:before,
-.fa-life-buoy:before,
-.fa-life-saver:before,
-.fa-support:before,
-.fa-life-ring:before {
- content: "\f1cd";
-}
-.fa-circle-o-notch:before {
- content: "\f1ce";
-}
-.fa-ra:before,
-.fa-resistance:before,
-.fa-rebel:before {
- content: "\f1d0";
-}
-.fa-ge:before,
-.fa-empire:before {
- content: "\f1d1";
-}
-.fa-git-square:before {
- content: "\f1d2";
-}
-.fa-git:before {
- content: "\f1d3";
-}
-.fa-y-combinator-square:before,
-.fa-yc-square:before,
-.fa-hacker-news:before {
- content: "\f1d4";
-}
-.fa-tencent-weibo:before {
- content: "\f1d5";
-}
-.fa-qq:before {
- content: "\f1d6";
-}
-.fa-wechat:before,
-.fa-weixin:before {
- content: "\f1d7";
-}
-.fa-send:before,
-.fa-paper-plane:before {
- content: "\f1d8";
-}
-.fa-send-o:before,
-.fa-paper-plane-o:before {
- content: "\f1d9";
-}
-.fa-history:before {
- content: "\f1da";
-}
-.fa-circle-thin:before {
- content: "\f1db";
-}
-.fa-header:before {
- content: "\f1dc";
-}
-.fa-paragraph:before {
- content: "\f1dd";
-}
-.fa-sliders:before {
- content: "\f1de";
-}
-.fa-share-alt:before {
- content: "\f1e0";
-}
-.fa-share-alt-square:before {
- content: "\f1e1";
-}
-.fa-bomb:before {
- content: "\f1e2";
-}
-.fa-soccer-ball-o:before,
-.fa-futbol-o:before {
- content: "\f1e3";
-}
-.fa-tty:before {
- content: "\f1e4";
-}
-.fa-binoculars:before {
- content: "\f1e5";
-}
-.fa-plug:before {
- content: "\f1e6";
-}
-.fa-slideshare:before {
- content: "\f1e7";
-}
-.fa-twitch:before {
- content: "\f1e8";
-}
-.fa-yelp:before {
- content: "\f1e9";
-}
-.fa-newspaper-o:before {
- content: "\f1ea";
-}
-.fa-wifi:before {
- content: "\f1eb";
-}
-.fa-calculator:before {
- content: "\f1ec";
-}
-.fa-paypal:before {
- content: "\f1ed";
-}
-.fa-google-wallet:before {
- content: "\f1ee";
-}
-.fa-cc-visa:before {
- content: "\f1f0";
-}
-.fa-cc-mastercard:before {
- content: "\f1f1";
-}
-.fa-cc-discover:before {
- content: "\f1f2";
-}
-.fa-cc-amex:before {
- content: "\f1f3";
-}
-.fa-cc-paypal:before {
- content: "\f1f4";
-}
-.fa-cc-stripe:before {
- content: "\f1f5";
-}
-.fa-bell-slash:before {
- content: "\f1f6";
-}
-.fa-bell-slash-o:before {
- content: "\f1f7";
-}
-.fa-trash:before {
- content: "\f1f8";
-}
-.fa-copyright:before {
- content: "\f1f9";
-}
-.fa-at:before {
- content: "\f1fa";
-}
-.fa-eyedropper:before {
- content: "\f1fb";
-}
-.fa-paint-brush:before {
- content: "\f1fc";
-}
-.fa-birthday-cake:before {
- content: "\f1fd";
-}
-.fa-area-chart:before {
- content: "\f1fe";
-}
-.fa-pie-chart:before {
- content: "\f200";
-}
-.fa-line-chart:before {
- content: "\f201";
-}
-.fa-lastfm:before {
- content: "\f202";
-}
-.fa-lastfm-square:before {
- content: "\f203";
-}
-.fa-toggle-off:before {
- content: "\f204";
-}
-.fa-toggle-on:before {
- content: "\f205";
-}
-.fa-bicycle:before {
- content: "\f206";
-}
-.fa-bus:before {
- content: "\f207";
-}
-.fa-ioxhost:before {
- content: "\f208";
-}
-.fa-angellist:before {
- content: "\f209";
-}
-.fa-cc:before {
- content: "\f20a";
-}
-.fa-shekel:before,
-.fa-sheqel:before,
-.fa-ils:before {
- content: "\f20b";
-}
-.fa-meanpath:before {
- content: "\f20c";
-}
-.fa-buysellads:before {
- content: "\f20d";
-}
-.fa-connectdevelop:before {
- content: "\f20e";
-}
-.fa-dashcube:before {
- content: "\f210";
-}
-.fa-forumbee:before {
- content: "\f211";
-}
-.fa-leanpub:before {
- content: "\f212";
-}
-.fa-sellsy:before {
- content: "\f213";
-}
-.fa-shirtsinbulk:before {
- content: "\f214";
-}
-.fa-simplybuilt:before {
- content: "\f215";
-}
-.fa-skyatlas:before {
- content: "\f216";
-}
-.fa-cart-plus:before {
- content: "\f217";
-}
-.fa-cart-arrow-down:before {
- content: "\f218";
-}
-.fa-diamond:before {
- content: "\f219";
-}
-.fa-ship:before {
- content: "\f21a";
-}
-.fa-user-secret:before {
- content: "\f21b";
-}
-.fa-motorcycle:before {
- content: "\f21c";
-}
-.fa-street-view:before {
- content: "\f21d";
-}
-.fa-heartbeat:before {
- content: "\f21e";
-}
-.fa-venus:before {
- content: "\f221";
-}
-.fa-mars:before {
- content: "\f222";
-}
-.fa-mercury:before {
- content: "\f223";
-}
-.fa-intersex:before,
-.fa-transgender:before {
- content: "\f224";
-}
-.fa-transgender-alt:before {
- content: "\f225";
-}
-.fa-venus-double:before {
- content: "\f226";
-}
-.fa-mars-double:before {
- content: "\f227";
-}
-.fa-venus-mars:before {
- content: "\f228";
-}
-.fa-mars-stroke:before {
- content: "\f229";
-}
-.fa-mars-stroke-v:before {
- content: "\f22a";
-}
-.fa-mars-stroke-h:before {
- content: "\f22b";
-}
-.fa-neuter:before {
- content: "\f22c";
-}
-.fa-genderless:before {
- content: "\f22d";
-}
-.fa-facebook-official:before {
- content: "\f230";
-}
-.fa-pinterest-p:before {
- content: "\f231";
-}
-.fa-whatsapp:before {
- content: "\f232";
-}
-.fa-server:before {
- content: "\f233";
-}
-.fa-user-plus:before {
- content: "\f234";
-}
-.fa-user-times:before {
- content: "\f235";
-}
-.fa-hotel:before,
-.fa-bed:before {
- content: "\f236";
-}
-.fa-viacoin:before {
- content: "\f237";
-}
-.fa-train:before {
- content: "\f238";
-}
-.fa-subway:before {
- content: "\f239";
-}
-.fa-medium:before {
- content: "\f23a";
-}
-.fa-yc:before,
-.fa-y-combinator:before {
- content: "\f23b";
-}
-.fa-optin-monster:before {
- content: "\f23c";
-}
-.fa-opencart:before {
- content: "\f23d";
-}
-.fa-expeditedssl:before {
- content: "\f23e";
-}
-.fa-battery-4:before,
-.fa-battery:before,
-.fa-battery-full:before {
- content: "\f240";
-}
-.fa-battery-3:before,
-.fa-battery-three-quarters:before {
- content: "\f241";
-}
-.fa-battery-2:before,
-.fa-battery-half:before {
- content: "\f242";
-}
-.fa-battery-1:before,
-.fa-battery-quarter:before {
- content: "\f243";
-}
-.fa-battery-0:before,
-.fa-battery-empty:before {
- content: "\f244";
-}
-.fa-mouse-pointer:before {
- content: "\f245";
-}
-.fa-i-cursor:before {
- content: "\f246";
-}
-.fa-object-group:before {
- content: "\f247";
-}
-.fa-object-ungroup:before {
- content: "\f248";
-}
-.fa-sticky-note:before {
- content: "\f249";
-}
-.fa-sticky-note-o:before {
- content: "\f24a";
-}
-.fa-cc-jcb:before {
- content: "\f24b";
-}
-.fa-cc-diners-club:before {
- content: "\f24c";
-}
-.fa-clone:before {
- content: "\f24d";
-}
-.fa-balance-scale:before {
- content: "\f24e";
-}
-.fa-hourglass-o:before {
- content: "\f250";
-}
-.fa-hourglass-1:before,
-.fa-hourglass-start:before {
- content: "\f251";
-}
-.fa-hourglass-2:before,
-.fa-hourglass-half:before {
- content: "\f252";
-}
-.fa-hourglass-3:before,
-.fa-hourglass-end:before {
- content: "\f253";
-}
-.fa-hourglass:before {
- content: "\f254";
-}
-.fa-hand-grab-o:before,
-.fa-hand-rock-o:before {
- content: "\f255";
-}
-.fa-hand-stop-o:before,
-.fa-hand-paper-o:before {
- content: "\f256";
-}
-.fa-hand-scissors-o:before {
- content: "\f257";
-}
-.fa-hand-lizard-o:before {
- content: "\f258";
-}
-.fa-hand-spock-o:before {
- content: "\f259";
-}
-.fa-hand-pointer-o:before {
- content: "\f25a";
-}
-.fa-hand-peace-o:before {
- content: "\f25b";
-}
-.fa-trademark:before {
- content: "\f25c";
-}
-.fa-registered:before {
- content: "\f25d";
-}
-.fa-creative-commons:before {
- content: "\f25e";
-}
-.fa-gg:before {
- content: "\f260";
-}
-.fa-gg-circle:before {
- content: "\f261";
-}
-.fa-tripadvisor:before {
- content: "\f262";
-}
-.fa-odnoklassniki:before {
- content: "\f263";
-}
-.fa-odnoklassniki-square:before {
- content: "\f264";
-}
-.fa-get-pocket:before {
- content: "\f265";
-}
-.fa-wikipedia-w:before {
- content: "\f266";
-}
-.fa-safari:before {
- content: "\f267";
-}
-.fa-chrome:before {
- content: "\f268";
-}
-.fa-firefox:before {
- content: "\f269";
-}
-.fa-opera:before {
- content: "\f26a";
-}
-.fa-internet-explorer:before {
- content: "\f26b";
-}
-.fa-tv:before,
-.fa-television:before {
- content: "\f26c";
-}
-.fa-contao:before {
- content: "\f26d";
-}
-.fa-500px:before {
- content: "\f26e";
-}
-.fa-amazon:before {
- content: "\f270";
-}
-.fa-calendar-plus-o:before {
- content: "\f271";
-}
-.fa-calendar-minus-o:before {
- content: "\f272";
-}
-.fa-calendar-times-o:before {
- content: "\f273";
-}
-.fa-calendar-check-o:before {
- content: "\f274";
-}
-.fa-industry:before {
- content: "\f275";
-}
-.fa-map-pin:before {
- content: "\f276";
-}
-.fa-map-signs:before {
- content: "\f277";
-}
-.fa-map-o:before {
- content: "\f278";
-}
-.fa-map:before {
- content: "\f279";
-}
-.fa-commenting:before {
- content: "\f27a";
-}
-.fa-commenting-o:before {
- content: "\f27b";
-}
-.fa-houzz:before {
- content: "\f27c";
-}
-.fa-vimeo:before {
- content: "\f27d";
-}
-.fa-black-tie:before {
- content: "\f27e";
-}
-.fa-fonticons:before {
- content: "\f280";
-}
-.fa-reddit-alien:before {
- content: "\f281";
-}
-.fa-edge:before {
- content: "\f282";
-}
-.fa-credit-card-alt:before {
- content: "\f283";
-}
-.fa-codiepie:before {
- content: "\f284";
-}
-.fa-modx:before {
- content: "\f285";
-}
-.fa-fort-awesome:before {
- content: "\f286";
-}
-.fa-usb:before {
- content: "\f287";
-}
-.fa-product-hunt:before {
- content: "\f288";
-}
-.fa-mixcloud:before {
- content: "\f289";
-}
-.fa-scribd:before {
- content: "\f28a";
-}
-.fa-pause-circle:before {
- content: "\f28b";
-}
-.fa-pause-circle-o:before {
- content: "\f28c";
-}
-.fa-stop-circle:before {
- content: "\f28d";
-}
-.fa-stop-circle-o:before {
- content: "\f28e";
-}
-.fa-shopping-bag:before {
- content: "\f290";
-}
-.fa-shopping-basket:before {
- content: "\f291";
-}
-.fa-hashtag:before {
- content: "\f292";
-}
-.fa-bluetooth:before {
- content: "\f293";
-}
-.fa-bluetooth-b:before {
- content: "\f294";
-}
-.fa-percent:before {
- content: "\f295";
-}
-.fa-gitlab:before {
- content: "\f296";
-}
-.fa-wpbeginner:before {
- content: "\f297";
-}
-.fa-wpforms:before {
- content: "\f298";
-}
-.fa-envira:before {
- content: "\f299";
-}
-.fa-universal-access:before {
- content: "\f29a";
-}
-.fa-wheelchair-alt:before {
- content: "\f29b";
-}
-.fa-question-circle-o:before {
- content: "\f29c";
-}
-.fa-blind:before {
- content: "\f29d";
-}
-.fa-audio-description:before {
- content: "\f29e";
-}
-.fa-volume-control-phone:before {
- content: "\f2a0";
-}
-.fa-braille:before {
- content: "\f2a1";
-}
-.fa-assistive-listening-systems:before {
- content: "\f2a2";
-}
-.fa-asl-interpreting:before,
-.fa-american-sign-language-interpreting:before {
- content: "\f2a3";
-}
-.fa-deafness:before,
-.fa-hard-of-hearing:before,
-.fa-deaf:before {
- content: "\f2a4";
-}
-.fa-glide:before {
- content: "\f2a5";
-}
-.fa-glide-g:before {
- content: "\f2a6";
-}
-.fa-signing:before,
-.fa-sign-language:before {
- content: "\f2a7";
-}
-.fa-low-vision:before {
- content: "\f2a8";
-}
-.fa-viadeo:before {
- content: "\f2a9";
-}
-.fa-viadeo-square:before {
- content: "\f2aa";
-}
-.fa-snapchat:before {
- content: "\f2ab";
-}
-.fa-snapchat-ghost:before {
- content: "\f2ac";
-}
-.fa-snapchat-square:before {
- content: "\f2ad";
-}
-.fa-pied-piper:before {
- content: "\f2ae";
-}
-.fa-first-order:before {
- content: "\f2b0";
-}
-.fa-yoast:before {
- content: "\f2b1";
-}
-.fa-themeisle:before {
- content: "\f2b2";
-}
-.fa-google-plus-circle:before,
-.fa-google-plus-official:before {
- content: "\f2b3";
-}
-.fa-fa:before,
-.fa-font-awesome:before {
- content: "\f2b4";
-}
-.fa-handshake-o:before {
- content: "\f2b5";
-}
-.fa-envelope-open:before {
- content: "\f2b6";
-}
-.fa-envelope-open-o:before {
- content: "\f2b7";
-}
-.fa-linode:before {
- content: "\f2b8";
-}
-.fa-address-book:before {
- content: "\f2b9";
-}
-.fa-address-book-o:before {
- content: "\f2ba";
-}
-.fa-vcard:before,
-.fa-address-card:before {
- content: "\f2bb";
-}
-.fa-vcard-o:before,
-.fa-address-card-o:before {
- content: "\f2bc";
-}
-.fa-user-circle:before {
- content: "\f2bd";
-}
-.fa-user-circle-o:before {
- content: "\f2be";
-}
-.fa-user-o:before {
- content: "\f2c0";
-}
-.fa-id-badge:before {
- content: "\f2c1";
-}
-.fa-drivers-license:before,
-.fa-id-card:before {
- content: "\f2c2";
-}
-.fa-drivers-license-o:before,
-.fa-id-card-o:before {
- content: "\f2c3";
-}
-.fa-quora:before {
- content: "\f2c4";
-}
-.fa-free-code-camp:before {
- content: "\f2c5";
-}
-.fa-telegram:before {
- content: "\f2c6";
-}
-.fa-thermometer-4:before,
-.fa-thermometer:before,
-.fa-thermometer-full:before {
- content: "\f2c7";
-}
-.fa-thermometer-3:before,
-.fa-thermometer-three-quarters:before {
- content: "\f2c8";
-}
-.fa-thermometer-2:before,
-.fa-thermometer-half:before {
- content: "\f2c9";
-}
-.fa-thermometer-1:before,
-.fa-thermometer-quarter:before {
- content: "\f2ca";
-}
-.fa-thermometer-0:before,
-.fa-thermometer-empty:before {
- content: "\f2cb";
-}
-.fa-shower:before {
- content: "\f2cc";
-}
-.fa-bathtub:before,
-.fa-s15:before,
-.fa-bath:before {
- content: "\f2cd";
-}
-.fa-podcast:before {
- content: "\f2ce";
-}
-.fa-window-maximize:before {
- content: "\f2d0";
-}
-.fa-window-minimize:before {
- content: "\f2d1";
-}
-.fa-window-restore:before {
- content: "\f2d2";
-}
-.fa-times-rectangle:before,
-.fa-window-close:before {
- content: "\f2d3";
-}
-.fa-times-rectangle-o:before,
-.fa-window-close-o:before {
- content: "\f2d4";
-}
-.fa-bandcamp:before {
- content: "\f2d5";
-}
-.fa-grav:before {
- content: "\f2d6";
-}
-.fa-etsy:before {
- content: "\f2d7";
-}
-.fa-imdb:before {
- content: "\f2d8";
-}
-.fa-ravelry:before {
- content: "\f2d9";
-}
-.fa-eercast:before {
- content: "\f2da";
-}
-.fa-microchip:before {
- content: "\f2db";
-}
-.fa-snowflake-o:before {
- content: "\f2dc";
-}
-.fa-superpowers:before {
- content: "\f2dd";
-}
-.fa-wpexplorer:before {
- content: "\f2de";
-}
-.fa-meetup:before {
- content: "\f2e0";
-}
-.sr-only {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- margin: -1px;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- border: 0;
-}
-.sr-only-focusable:active,
-.sr-only-focusable:focus {
- position: static;
- width: auto;
- height: auto;
- margin: 0;
- overflow: visible;
- clip: auto;
-}
diff --git a/assets/scss/admin-importer.scss b/assets/scss/admin-importer.scss
deleted file mode 100644
index f06b43c3ef..0000000000
--- a/assets/scss/admin-importer.scss
+++ /dev/null
@@ -1,71 +0,0 @@
-@import "_includes/vars";
-@import "_includes/mixins";
-
-.llms-import-file-wrap {
- background: #fafafa;
- border: 1px solid #ccd0d4;
- padding: 10px;
- margin: 20px auto;
- display: inline-flex;
- justify-content: space-between;
- align-items: center;
-}
-
-.llms-cloud-import-help.button-link {
- color: inherit;
- vertical-align: top;
- text-decoration: none;
-}
-
-ul.llms-importable-courses {
- margin: 0 -10px;
- li.llms-importable-course {
- background: #fff;
- margin: 10px;
- img {
- display: block;
- max-width: 100%;
- }
- h3 {
- margin: 20px 20px 10px;
- }
- p {
- margin: 0 20px;
- }
-
- &.has-action-button {
- padding-bottom: 80px;
- position: relative;
- .button {
- bottom: 20px;
- right: 20px;
- position: absolute;
- }
- }
- }
-}
-
-@media only screen and (min-width: 600px) {
- ul.llms-importable-courses {
- display: flex;
- flex-wrap: wrap;
- }
-}
-
-@media only screen and (min-width: 600px) and (max-width: 767px) {
- ul.llms-importable-courses {
- li.llms-importable-course {
- flex: 1 0 calc( 50% - 20px );
- max-width: calc( 50% - 20px );
- }
- }
-}
-
-@media only screen and (min-width: 768px) {
- ul.llms-importable-courses {
- li.llms-importable-course {
- flex: 1 0 calc( 33% - 20px );
- max-width: calc( 33% - 20px );
- }
- }
-}
diff --git a/assets/scss/admin-setup.scss b/assets/scss/admin-setup.scss
deleted file mode 100644
index 9a688ae95d..0000000000
--- a/assets/scss/admin-setup.scss
+++ /dev/null
@@ -1,178 +0,0 @@
-@import "_includes/vars";
-
-#wpadminbar, #adminmenumain, #wpfooter {
- display: none;
-}
-
-#llms-setup-wizard {
-
- background-color: #f1f1f1;
- height: 100%;
- left: 0;
- overflow: scroll;
- position: fixed;
- top: 0;
- width: 100%;
-}
-
-.llms-setup-wrapper {
- margin: 20px auto;
- max-width: 640px;
-}
-
-#llms-logo {
- text-align: center;
-
- img {
- max-width: 200px;
- }
-}
-
-.llms-setup-content {
- background-color: #fff;
- box-shadow: 0 1px 3px rgba( 0, 0, 0, .13 );
- padding: 15px 30px;
-
- h1, h2, h3, h4, h5, h6 {
- color: #444;
- }
-
- a:not( .llms-button-primary ):not( .llms-button-secondary ) {
- color: $color-brand-blue;
- }
-
- p, li {
- color: #666;
- font-size: 16px;
- }
-
- p.error {
- color: $color-red;
- text-align: center;
- }
-
- label {
- font-weight: 500;
- }
-
- .llms-setup-actions {
- margin-top: 40px;
- text-align: right;
- }
-
- .llms-exit-setup {
- color: inherit !important;
- margin-right: 10px;
- }
-
- table {
- border-bottom: 1px solid #f1f1f1;
- border-collapse: collapse;
- width: 100%;
- }
-
-
- td {
- border-top: 1px solid #f1f1f1;
- &:first-child {
- padding-right: 10px;
- width: 33%;
- a {
- font-size: 16px;
- font-weight: 500;
- }
- }
- }
-
- ul.llms-importable-courses {
- display: block;
- li.llms-importable-course {
- border-bottom: 1px solid #f1f1f1;
- display: block;
- max-width: 100%;
- padding-bottom: 15px;
-
- img {
- float: left;
- margin-right: 15px;
- width: 20%;
- }
-
- .llms-switch {
- float: right;
-
- input.llms-toggle-round:checked + label {
- border-color: $color-brand-blue;
- background-color: $color-brand-blue;
- }
-
- }
- }
- }
-
-
- .llms-importing-msgs {
- a { color: $color-brand-blue; }
- .llms-importing-msg {
- display: none;
- font-size: 14px;
- font-style: italic;
- text-align: right;
- }
- }
-
-}
-
-.llms-setup-progress {
- display: flex;
- margin: 20px 0;
-
- li {
- border-bottom: 4px solid $color-brand-blue;
- display: inline-block;
- font-size: 14px;
- padding-bottom: 10px;
- position: relative;
- text-align: center;
- flex: 1;
-
- a {
- color: $color-brand-blue;
- text-decoration: none;
- }
-
- &:after {
- background: $color-brand-blue;
- bottom: 0;
- content: '';
- border: 4px solid $color-brand-blue;
- border-radius: 100%;
- height: 4px;
- position: absolute;
- left: 50%;
- margin-left: -6px;
- margin-bottom: -8px;
- width: 4px;
- }
-
- &.current {
- font-weight: 700;
- &:after {
- background: #fff;
- }
- }
-
- &.current ~ li {
- border-bottom-color: #ccc;
- &:after {
- background: #ccc;
- border-color: #ccc;
- }
- a {
- color: #bbb;
- }
- }
-
- }
-}
-
diff --git a/assets/scss/admin.scss b/assets/scss/admin.scss
deleted file mode 100644
index 43db4903d1..0000000000
--- a/assets/scss/admin.scss
+++ /dev/null
@@ -1,92 +0,0 @@
-//
-// Main Admin CSS File
-//
-
-@import "_includes/vars";
-@import "_includes/vars-brand-colors";
-
-@import "_includes/extends";
-@import "_includes/buttons";
-@import "_includes/mixins";
-
-@import "_includes/tooltip";
-
-// wp menu item
-@import "admin/_wp-menu";
-
-// grid layout for breakpoints
-@import "admin/partials/grid";
-
-// forms
-@import "admin/modules/forms";
-
-// voucher
-@import "admin/modules/voucher";
-
-// widgets
-@import "admin/modules/widgets";
-
-// icons
-@import "admin/modules/icons";
-
-// icons
-@import "admin/modules/mb-tabs";
-
-// icons
-@import "admin/modules/top-modal";
-
-@import "admin/modules/merge-codes";
-
-// Base (mobile)
-@import "admin/breakpoints/base";
-
-// Larger mobile devices
-@media only screen and (min-width: 481px) {
- @import "admin/breakpoints/481up";
-}
-
-// Tablets and smaller laptops
-@media only screen and (min-width: 768px) {
- @import "admin/breakpoints/768up";
-}
-
-// Desktops
-@media only screen and (min-width: 1030px) {
- @import "admin/breakpoints/1030up";
-}
-
-// Larger Monitors and TVs
-@media only screen and (min-width: 1240px) {
- @import "admin/breakpoints/1240up";
-}
-
-@import "admin/main";
-
-@import "admin/llms-table";
-@import "admin/modules/llms-order-note";
-
-// metabox related
-@import "admin/metaboxes/llms-metabox";
-@import "admin/metaboxes/metabox-instructors";
-@import "admin/metaboxes/metabox-orders";
-@import "admin/metaboxes/metabox-engagements-type";
-@import "admin/metaboxes/metabox-product";
-@import "admin/metaboxes/metabox-students";
-@import "admin/metaboxes/metabox-field-repeater";
-@import "admin/metaboxes/builder-launcher";
-
-@import "admin/post-tables/llms_orders";
-@import "admin/post-tables/post-tables";
-
-@import "admin/tabs";
-@import "admin/fonts";
-@import "admin/reporting";
-
-@import "admin/settings";
-
-@import "admin/quiz-attempt-review";
-
-@import "_includes/llms-form-field";
-@import "_includes/vendor/_font-awesome";
-
-@import "_includes/spinner";
diff --git a/assets/scss/admin/_course-builder.scss b/assets/scss/admin/_course-builder.scss
deleted file mode 100644
index 7a2ecbc217..0000000000
--- a/assets/scss/admin/_course-builder.scss
+++ /dev/null
@@ -1,1677 +0,0 @@
-body.admin_page_llms-course-builder {
- background: #fff;
-
- #adminmenumain { display: none; }
- #wpbody-content { padding-bottom: 0; }
- #wpfooter { display: none; }
-
- #wpcontent, #wpfooter {
- margin-left: 0;
- }
-
- // &.folded {
- // .llms-course-builder {
- // left: 56px;
- // }
- // }
-
- .webui-popover {
- .select2-container--default {
- .select2-results__group {
- font-size: 16px;
- }
- .select2-results__option .select2-results__option {
- padding-left: 2em;
- }
- }
-
- }
-}
-
-
-
-
-// @media (max-width: 960px) {
-// body.admin_page_llms-course-builder.auto-fold {
-// .llms-course-builder {
-// left: 56px;
-// }
-// }
-// }
-
-.wrap.lifterlms.llms-builder {
- margin: 0;
- padding: 0;
- position: relative;
-
-
- &.editor-active {
- .llms-builder-sidebar {
- padding: 10px;
- width: calc( 100% - 200px );
- z-index: 3;
- }
- @media only screen and ( min-width: 1200px ) {
- .llms-builder-main {
- width: 400px;
- }
- .llms-builder-sidebar {
- width: calc( 100% - 640px );
- }
- }
- @media only screen and ( min-width: 1440px ) {
- .llms-builder-main {
- width: calc( 100% - 780px );
- }
- .llms-builder-sidebar {
- width: 720px;
- }
- }
- @media only screen and ( min-width: 1680px ) {
- .llms-builder-main {
- width: calc( 100% - 1000px );
- }
- .llms-builder-sidebar {
- width: 940px;
- }
- }
- }
-
- .llms-headline {
- display: inline-block;
- font-weight: 300;
- margin: 0;
- padding: 0;
- transition: width 0.3s ease-in-out;
- vertical-align: middle;
- }
-
- .llms-builder-main {
- padding: 20px 20px 20px 0;
- position: relative;
- width: calc( 100% - 340px );
- z-index: 2;
-
- .llms-action-icons {
- display: inline-block;
- left: -20px;
- opacity: 0;
- position: relative;
- transition: left 0.2s ease, opacity 0.2s ease;
- vertical-align: middle;
- }
- .llms-builder-header:hover > .llms-action-icons,
- .llms-builder-header .llms-action-icons.static {
- left: 0;
- opacity: 1;
- }
-
- /*
-
-
- /$$$$$$$ /$$$$$$ /$$ /$$ /$$$$$$ /$$$$$$$ /$$$$$$
- /$$_____/ /$$__ $$| $$ | $$ /$$__ $$ /$$_____/ /$$__ $$
- | $$ | $$ \ $$| $$ | $$| $$ \__/| $$$$$$ | $$$$$$$$
- | $$ | $$ | $$| $$ | $$| $$ \____ $$| $$_____/
- | $$$$$$$| $$$$$$/| $$$$$$/| $$ /$$$$$$$/| $$$$$$$
- \_______/ \______/ \______/ |__/ |_______/ \_______/
- */
-
- .llms-course-header {
- position: relative;
- z-index: 1;
- }
-
-
- /*
- /$$ /$$
- | $$ |__/
- /$$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$ /$$ /$$$$$$ /$$$$$$$ /$$$$$$$
- /$$_____/ /$$__ $$ /$$_____/|_ $$_/ | $$ /$$__ $$| $$__ $$ /$$_____/
- | $$$$$$ | $$$$$$$$| $$ | $$ | $$| $$ \ $$| $$ \ $$| $$$$$$
- \____ $$| $$_____/| $$ | $$ /$$| $$| $$ | $$| $$ | $$ \____ $$
- /$$$$$$$/| $$$$$$$| $$$$$$$ | $$$$/| $$| $$$$$$/| $$ | $$ /$$$$$$$/
- |_______/ \_______/ \_______/ \___/ |__/ \______/ |__/ |__/|_______/
- */
- ul.llms-sections {
- box-shadow: 0 0 0 3px transparent;
- min-height: 60px;
- padding: 10px 0;
- transition: box-shadow 0.6s ease, min-height 0.2s ease;
- &.dragging {
- box-shadow: 0 0 0 3px $color-brand-blue;
- }
- }
-
- li.llms-section {
- background: #fff;
- position: relative;
- margin: 0;
- padding: 20px 20px 20px 40px;
-
- &.expanded {
- .llms-lessons { overflow: visible; }
- }
- &.selected {
- .llms-drag-utility.drag-section {
- border-color: $color-brand-blue;
- }
- > .llms-builder-header .llms-headline {
- font-weight: 400;
- color: $color-brand-blue;
- }
- }
-
- }
-
- // tree line
- li.llms-section:before {
- background: #ccc;
- bottom: 0;
- content: '';
- left: 19px;
- position: absolute;
- top: 0;
- width: 2px;
- }
-
- li.llms-section:first-child:before {
- top: 30px;
- }
-
- li.llms-section:last-child:before {
- bottom: 55px;
- }
-
- li.llms-section.expanded:last-child:before {
- bottom: 86px;
- }
-
- /*
- /$$
- | $$
- | $$ /$$$$$$ /$$$$$$$ /$$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$$
- | $$ /$$__ $$ /$$_____//$$_____/ /$$__ $$| $$__ $$ /$$_____/
- | $$| $$$$$$$$| $$$$$$| $$$$$$ | $$ \ $$| $$ \ $$| $$$$$$
- | $$| $$_____/ \____ $$\____ $$| $$ | $$| $$ | $$ \____ $$
- | $$| $$$$$$$ /$$$$$$$//$$$$$$$/| $$$$$$/| $$ | $$ /$$$$$$$/
- |__/ \_______/|_______/|_______/ \______/ |__/ |__/|_______/
- */
- ul.llms-lessons {
- box-shadow: 0 0 0 3px transparent;
- height: 0;
- margin: 10px 0 0;
- overflow: hidden;
- padding: 10px 0;
- transition: box-shadow 0.6s ease, min-height 0.2s ease;
- &.dragging {
- box-shadow: 0 0 0 3px $color-brand-blue;
- min-height: 60px;
- }
- &.expanded, // added via backbone view events
- &.drag-expanded { // added only during dragover events and ignores model attrs
- height: auto;
- li.llms-lesson {
- pointer-events: auto;
- visibility: visible;
- }
- }
-
- }
-
- li.llms-lesson {
- background: #fff;
- margin: 0;
- padding: 10px 20px 10px 30px;
- position: relative;
- pointer-events: none;
- visibility: hidden;
-
- &.selected {
- .llms-drag-utility.drag-lesson {
- border-color: $color-brand-blue;
- }
- > .llms-builder-header .llms-headline {
- font-weight: 400;
- color: $color-brand-blue;
- }
- }
-
- }
-
- // line on left of each lesson
- li.llms-lesson:before {
- background: #ccc;
- content: '';
- height: 2px;
- left: -20px;
- position: absolute;
- top: 20px;
- width: 30px;
- }
-
-
- /*
- /$$ /$$ /$$ /$$
- | $$ | $$ | $$| $$
- /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ | $$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$$| $$ /$$$$$$ /$$$$$$$
- /$$__ $$ /$$__ $$|____ $$ /$$__ $$ | $$__ $$ |____ $$| $$__ $$ /$$__ $$| $$ /$$__ $$ /$$_____/
- | $$ | $$| $$ \__/ /$$$$$$$| $$ \ $$ | $$ \ $$ /$$$$$$$| $$ \ $$| $$ | $$| $$| $$$$$$$$| $$$$$$
- | $$ | $$| $$ /$$__ $$| $$ | $$ | $$ | $$ /$$__ $$| $$ | $$| $$ | $$| $$| $$_____/ \____ $$
- | $$$$$$$| $$ | $$$$$$$| $$$$$$$ | $$ | $$| $$$$$$$| $$ | $$| $$$$$$$| $$| $$$$$$$ /$$$$$$$/
- \_______/|__/ \_______/ \____ $$ |__/ |__/ \_______/|__/ |__/ \_______/|__/ \_______/|_______/
- /$$ \ $$
- | $$$$$$/
- \______/
- */
- li.llms-section .llms-drag-utility {
- background: #fff;
- border: 2px solid #ccc;
- border-radius: 50%;
- height: 10px;
- left: 13px;
- position: absolute;
- top: 24px;
- width: 10px;
- }
-
- li.llms-lesson .llms-drag-utility {
- height: 6px;
- left: 5px;
- top: 16px !important;
- width: 6px;
- }
-
- .llms-section:hover > .llms-drag-utility,
- .llms-lesson:hover > .llms-drag-utility {
- border-color: #fff;
- cursor: move;
- &:hover:after {
- color: $color-brand-blue;
- }
- &:after {
- background: #fff;
- content: '\00b7\00b7\A\00b7\00b7\A\00b7\00b7';
- color: #ccc;
- display: block;
- font-size: 36px;
- height: 29px;
- letter-spacing: -1px;
- line-height: 8px;
- left: -7px;
- position: absolute;
- text-align: center;
- top: -12px;
- width: 23px;
- }
- }
-
- /*
- /$$ /$$ /$$
- | $$ | $$ | $$
- /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ | $$$$$$$ | $$ /$$$$$$
- /$$_____/ /$$__ $$ /$$__ $$|_ $$_/ |____ $$| $$__ $$| $$ /$$__ $$
- | $$$$$$ | $$ \ $$| $$ \__/ | $$ /$$$$$$$| $$ \ $$| $$| $$$$$$$$
- \____ $$| $$ | $$| $$ | $$ /$$ /$$__ $$| $$ | $$| $$| $$_____/
- /$$$$$$$/| $$$$$$/| $$ | $$$$/| $$$$$$$| $$$$$$$/| $$| $$$$$$$
- |_______/ \______/ |__/ \___/ \_______/|_______/ |__/ \_______/
- */
- li.llms-section,
- li.llms-lesson {
- &.ui-sortable-helper,
- &.ui-draggable-dragging {
- border: 1px solid #ccc;
- background: #fff;
- transform: rotate( 2deg );
- visibility: visible !important;
- z-index: 999;
-
- // hide tree line on the helper
- &:before { display: none; }
-
- // prevent action icon hover display
- .llms-action-icons,
- .llms-builder-header:hover > .llms-action-icons {
- display: none;
- }
- }
-
- &.llms-sortable-placeholder {
- border: 3px dashed $color-brand-blue;
- background: rgba( $color-brand-blue, 0.3 );
- margin: 0 10px;
- padding: 5px;
- &:before { display: none; }
- }
- }
-
- ul.llms-sections > li.llms-lesson.ui-draggable-dragging .llms-drag-utility {
- position: relative;
- &:after {
- left: -35px;
- top: -28px;
- }
- }
-
- }
-
- /*
- /$$ /$$ /$$ /$$ /$$
- | $$|__/ | $$ | $$ | $$
- /$$$$$$ /$$$$$$$ /$$ /$$$$$$ /$$$$$$ | $$$$$$$ | $$ /$$$$$$
- /$$__ $$ /$$__ $$| $$|_ $$_/ |____ $$| $$__ $$| $$ /$$__ $$
- | $$$$$$$$| $$ | $$| $$ | $$ /$$$$$$$| $$ \ $$| $$| $$$$$$$$
- | $$_____/| $$ | $$| $$ | $$ /$$ /$$__ $$| $$ | $$| $$| $$_____/
- | $$$$$$$| $$$$$$$| $$ | $$$$/| $$$$$$$| $$$$$$$/| $$| $$$$$$$
- \_______/ \_______/|__/ \___/ \_______/|_______/ |__/ \_______/
- */
-
- .llms-input-wrapper {
- position: relative;
- }
-
- .llms-input-formatting.ql-container {
- font-size: inherit;
- font-family: inherit;
- .ql-editor.ql-blank::before {
- color: #a0a0a0;
- left: 8px;
- right: 8px;
- }
- .ql-editor {
- p {
- font-size: inherit;
- line-height: 1;
- }
- }
- .ql-tooltip {
- z-index: 1;
- }
- }
-
- .llms-input,
- .llms-input-formatting .ql-editor {
- border: none;
- border-bottom: 2px dotted transparent;
- box-shadow: none;
- cursor: text;
- display: inline-block;
- font-size: inherit;
- font-weight: 500;
- height: auto;
- line-height: 1;
- margin: 0 8px;
- min-width: 60px;
- padding: 0;
- transition: border 0.2s ease, box-shadow 0.2s ease;
- &:empty:before {
- color: #a0a0a0;
- content: attr( data-placeholder );
- }
- &:hover {
- border-bottom-color: $color-brand-blue;
- }
- &[disabled] {
- cursor: not-allowed;
- &:hover {
- border-bottom-color: transparent;
- }
- }
- &:focus {
- background: #fff;
- box-shadow: 0 0 0 4px #fff, 0 0 0 6px $color-brand-blue;
- border-bottom: none;
- outline: none;
- }
- b, strong {
- font-weight: 700;
- }
- &.standard {
- border: 1px solid #e6e6e6;
- margin: 2px;
- padding: 5px 3px;
- &:hover {
- border-color: #d6d6d6;
- }
- &:focus {
- box-shadow: 0 0 0 2px $color-brand-blue;
- }
- }
- &.permalink {
- display: none;
- }
- }
-
- .llms-input-formatting .ql-editor {
- padding: 0 1px;
- }
-
- .llms-label {
- font-weight: 500;
- .fa {
- color: #aaa;
- padding-left: 6px;
- }
- }
-
- // .llms-editable-image,
- // .llms-editable-video,
- // .llms-editable-editor {
- // }
-
- .llms-editable-editor {
- .llms-label {
- float: left;
- margin-right: 10px;
- position: relative;
- top: 10px;
- }
- textarea {
- border: none;
- padding: 10px;
- display: block;
- width: 100%;
- }
- }
-
- .llms-editable-image {
- button.llms-add-image {
- width: 130px;
- }
- .llms-image {
- display: inline-block;
- position: relative;
- &:hover .llms-action-icon {
- opacity: 1;
- }
- .llms-action-icon {
- color: #fff;
- font-size: 24px;
- opacity: 0;
- padding: 0;
- position: absolute;
- transition: opacity 0.2s ease;
- right: 3px;
- top: 1px;
- z-index: 1;
- }
- img {
- display: block;
- height: 100px;
- max-width: 100%;
- width: auto;
- }
- }
- }
-
- .llms-settings-field,
- .llms-editable-toggle-group {
- background: #f4f4f4;
- padding: 10px;
- position: relative;
- margin: 0 1px;
-
- &.has-label-after {
- align-items: center;
- display: flex;
- flex-wrap: wrap;
-
- .llms-label {
- min-width: 100%;
- }
- .llms-editable-input {
- flex: 2;
- }
- .llms-label--after {
- color: #888;
- min-width: auto;
- font-size: 85%;
- padding-left: 10px;
- }
- }
-
- .llms-switch {
- display: block;
- width: 100%;
- @include clearfix;
-
- .llms-label {
- width: calc( 100% - 34px );
- }
- }
-
- .llms-editable-image,
- .llms-editable-video,
- .llms-editable-editor {
- margin-top: 2px;
- }
-
- .llms-input.standard {
- display: block;
- width: 100%;
- &.two-digits,
- &.three-digits,
- &.four-digits {
- display: inline-block;
- }
- }
-
- }
-
- .llms-editable-number {
- .llms-input {
- color: #888;
- min-width: 30px;
- text-align: right;
- &.two-digits {
- width: 30px;
- }
- &.three-digits {
- width: 40px;
- }
- &.four-digits {
- width: 60px;
- }
- }
- small {
- color: #888;
- text-transform: uppercase;
- }
- }
-
- .llms-model-settings {
- .llms-settings-group-header {
- .fa-caret-square-o-up { display: block; }
- .fa-caret-square-o-down { display: none; }
- }
- &.hidden {
- .llms-settings-group-header {
- .fa-caret-square-o-up { display: none; }
- .fa-caret-square-o-down { display: block; }
- }
- .llms-settings-group-body { display: none; }
- }
- }
-
- .llms-settings-group-header {
- @include clearfix();
- .llms-settings-group-title {
- display: inline-block;
- font-size: 16px;
- font-weight: 300;
- margin: 0 5px;
- padding: 0;
- }
- .llms-settings-group-toggle {
- float: right;
- font-size: 18px;
- padding: 2px;
- }
- }
-
- .llms-settings-group-body {
- margin-top: 5px;
- }
-
- .llms-settings-row {
- display: flex;
- flex-wrap: wrap;
- margin: 2px 0;
-
- .llms-settings-field,
- .llms-editable-toggle-group {
- flex: 1;
- &:first-child {
- margin-left: 0;
- }
- &:last-child {
- margin-right: 0;
- }
- }
-
- .llms-breaker {
- margin: 2px 0;
- width: 100%;
- }
- }
-
- .llms-editable-select {
- margin: 2px 0;
- .select2-container--default.select2-container--focus .select2-selection--multiple {
- border-color: #aaa;
- }
- }
-
- .llms-editable-radio {
- label {
- display: block;
- }
- &.has-images {
- input { display: none; }
- label {
- display: inline-block;
- margin: 0 3px;
- }
- label > span {
- transition: background 0.2s ease;
- display: inline-block;
- padding: 3px;
- }
- img { display: block; }
- input:checked + span {
- background: $color-brand-blue;
- }
- }
- }
-
- /*
- /$$
- |__/
- /$$ /$$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$$
- | $$ /$$_____/ /$$__ $$| $$__ $$ /$$_____/
- | $$| $$ | $$ \ $$| $$ \ $$| $$$$$$
- | $$| $$ | $$ | $$| $$ | $$ \____ $$
- | $$| $$$$$$$| $$$$$$/| $$ | $$ /$$$$$$$/
- |__/ \_______/ \______/ |__/ |__/|_______/
- */
- .llms-action-icon {
- color: #aaa;
- display: inline-block;
- font-size: 16px;
- padding: 0 5px;
- text-decoration: none;
- &:hover {
- color: $color-brand-blue;
- &.danger { color: $color-danger; }
- }
- &.circle {
- border: 2px solid #aaa;
- border-radius: 50%;
- font-size: 9px;
- height: 8px;
- line-height: 1;
- padding: 5px;
- text-align: center;
- width: 8px;
- &:hover {
- border-color: $color-brand-blue;
- &.danger {
- border-color: $color-danger;
- }
- }
- }
- }
-
- ul.llms-info-list {
- @include clearfix();
- margin: 0;
- padding: 0;
- li.llms-info-item {
- color: #aaa;
- font-size: 16px;
- margin: 0;
- padding: 10px;
- float: left;
- &.active,
- &.active .llms-action-icon {
- color: $color-brand-blue;
- }
- .llms-action-icon {
- margin: -10px;
- padding: 10px;
- }
- }
-
- }
-
- /*
- /$$ /$$ /$$
- |__/ | $$ | $$
- /$$$$$$$ /$$ /$$$$$$$ /$$$$$$ | $$$$$$$ /$$$$$$ /$$$$$$
- /$$_____/| $$ /$$__ $$ /$$__ $$| $$__ $$ |____ $$ /$$__ $$
- | $$$$$$ | $$| $$ | $$| $$$$$$$$| $$ \ $$ /$$$$$$$| $$ \__/
- \____ $$| $$| $$ | $$| $$_____/| $$ | $$ /$$__ $$| $$
- /$$$$$$$/| $$| $$$$$$$| $$$$$$$| $$$$$$$/| $$$$$$$| $$
- |_______/ |__/ \_______/ \_______/|_______/ \_______/|__/
- */
- .llms-builder-sidebar {
- background: #e6e6e6;
- bottom: 0;
- overflow: hidden;
- padding: 20px;
- position: fixed;
- transition: width 0.3s ease-in-out;
- top: 32px;
- right: 0;
- width: 280px;
- z-index: 1;
-
- .llms-utilities {
-
- ul, li {
- margin: 0;
- padding: 0;
- }
-
- ul {
- display: flex;
- li {
- flex: 1;
- margin-right: 5px;
- &:last-child {
- margin-right: 0;
- }
- }
- }
-
-
- a.llms-utility {
- background: #efefef;
- border-radius: 4px;
- display: block;
- overflow: hidden;
- padding: 4px;
- position: relative;
- text-align: center;
-
- &:hover {
- background: #fefefe;
- }
-
- .fa {
- background: #848484;
- position: absolute;
- left: 0;
- top: 0;
- padding: 7px;
- color: #fff;
- }
- }
-
- }
-
- .llms-sidebar-headline {
- margin: 0 0 10px;
- font-size: 22px;
- font-weight: 300;
- letter-spacing: 2px;
- text-transform: uppercase;
- }
-
- .llms-elements-list {
- margin-bottom: 40px;
- li {
- margin-bottom: 10px;
- }
- }
-
- .llms-utility {
- color: #444;
- text-decoration: none;
- }
-
- .llms-element-button {
-
- background: $color-brand-blue;
- border-radius: 4px;
- border: none;
- color: #fff;
- cursor: pointer;
- display: block;
- margin: 0;
- overflow: hidden;
- padding: 17px 20px;
- position: relative;
- transition: background 0.2s ease, color 0.2s ease;
- text-align: center;
- width: 100%;
-
- &:hover {
- background: $color-brand-blue-dark;
- }
-
- &.secondary {
- background: #efefef;
- color: #444;
- &:hover {
- background: #fefefe;
- }
- .fa {
- background: #848484;
- }
- }
-
- .fa {
- background: $color-brand-dark-blue;
- border-radius: 4px 0 0 4px;
- color: #fff;
- display: block;
- font-size: 20px;
- padding: 15px 20px;
- position: absolute;
- top: 0;
- left: 0;
- }
-
- &[disabled="disabled"] {
- opacity: 0.4;
- }
-
- &.small {
-
- padding: 8px 10px 8px 46px;
- .fa {
- font-size: 15px;
- padding: 9px 10px;
- width: 20px;
- }
-
- }
-
- &.right {
-
- &.small {
- padding-left: 10px;
- padding-right: 46px;
- }
-
- .fa {
- border-radius: 0 4px 4px 0;
- left: auto;
- right: 0;
- }
-
- }
-
- }
-
-
-
- .llms-editor {
- height: 100%;
- min-height: 100%;
- position: relative;
- }
-
- // .llms-builder-close-editor {
- // background: $color-brand-blue;
- // border: none;
- // border-radius: 50%;
- // color: #fff;
- // cursor: pointer;
- // display: inline-block;
- // font-size: 18px;
- // height: 30px;
- // margin: 0;
- // position: absolute;
- // right: 0;
- // text-align: center;
- // top: 3px;
- // width: 30px;
- // z-index: 3;
- // }
-
- .llms-editor-nav {
- background: #b0b0b0;
- font-size: 0;
- margin: -10px -10px 10px -10px;
- position: relative;
- z-index: 2;
-
- .llms-editor-menu {
- list-style-type: none;
- margin: 0;
- padding: 0;
- position: relative;
-
- .llms-editor-menu-item {
- display: inline-block;
- margin: 0;
- padding: 0;
-
- &.right {
- float: right;
- }
-
- > .llms-editor-menu {
- display: none;
- &:before {
- border: 8px solid transparent;
- border-left-color: #cacaca;
- content: '';
- position: absolute;
- top: 11px;
- left: 0;
- }
-
- .llms-editor-menu-item:hover > a,
- .llms-editor-menu-item.active > a {
- background: #dfdfdf;
- }
-
- }
-
- &:hover > a,
- &.active > a {
- background: #cacaca;
- }
-
- &.active > a {
- box-shadow: inset 0 -3px 0 $color-brand-blue;
- &:focus {
- box-shadow: inset 0 -3px 0 $color-brand-blue;
- }
- }
-
- &.active > .llms-editor-menu {
- display: inline-block;
- }
-
- a {
- color: #444;
- display: inline-block;
- padding: 13px 20px;
- text-decoration: none;
- transition: background 0.2s ease;
- font-size: 14px;
- &:focus {
- box-shadow: inset 0 0 0 2px $color-brand-blue;
- }
- }
-
- }
- }
- }
-
- .llms-editor-tab {
- display: none;
- height: calc( 100% - 90px );
- overflow: scroll;
- position: relative;
- z-index: 1;
- &.active {
- display: block;
-
- &.tab--quiz {
-
- display: flex;
- flex-direction: column;
-
- .llms-quiz-questions {
- flex: 1;
- overflow: scroll;
-
- // groups
- .llms-quiz-questions {
- overflow: visible;
- }
- }
-
- }
- }
-
- }
-
-
- // .llms-builder-editor {
-
- // opacity: 0;
- // margin: 10px 0;
- // transition: opacity 0.2s linear;
-
- // &.ready {
- // opacity: 1;
- // }
-
- // textarea {
- // border: none;
- // display: block;
- // width: 100%;
- // }
- // }
-
- .llms-builder-save {
-
- bottom: 10px;
- left: 10px;
- position: absolute;
- right: 10px;
- z-index: 1;
-
- .llms-builder-error {
- background: $color-danger;
- border-radius: 4px;
- color: #fff;
- display: inline-block;
- font-style: italic;
- padding: 5px 15px 7px 25px;
- margin: 0 0 10px;
-
- li {
- margin: 0;
- padding: 0;
- }
-
- }
-
- .llms-save {
- width: 75%;
- }
- .llms-exit {
- width: 23%;
- }
-
- button {
- position: relative;
- i {
- position: absolute;
- left: 10px;
- top: 10px;
-
- .llms-spinner {
- border-color: #fff;
- }
- }
- }
- button[data-status] .llms-status-indicator { display: none; }
- button[data-status="saved"] .status--saved { display: block; }
- button[data-status="unsaved"] .status--unsaved { display: block; }
- button[data-status="saving"] .status--saving { display: block; }
- button[data-status="error"] .status--error { display: block; }
-
- }
-
- }
-
-
- /*
- /$$
- | $$
- /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$$| $$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$ /$$ /$$$$$$ /$$$$$$
- /$$_____/ /$$__ $$ |____ $$ /$$__ $$ /$$_____/| $$__ $$ /$$__ $$ /$$__ $$ /$$__ $$ /$$__ $$| $$ /$$//$$__ $$ /$$__ $$
- | $$$$$$ | $$$$$$$$ /$$$$$$$| $$ \__/| $$ | $$ \ $$ | $$ \ $$| $$ \ $$| $$ \ $$| $$ \ $$ \ $$/$$/| $$$$$$$$| $$ \__/
- \____ $$| $$_____/ /$$__ $$| $$ | $$ | $$ | $$ | $$ | $$| $$ | $$| $$ | $$| $$ | $$ \ $$$/ | $$_____/| $$
- /$$$$$$$/| $$$$$$$| $$$$$$$| $$ | $$$$$$$| $$ | $$ | $$$$$$$/| $$$$$$/| $$$$$$$/| $$$$$$/ \ $/ | $$$$$$$| $$
- |_______/ \_______/ \_______/|__/ \_______/|__/ |__/ | $$____/ \______/ | $$____/ \______/ \_/ \_______/|__/
- | $$ | $$
- | $$ | $$
- |__/ |__/
- */
-
- .select2-container {
- z-index: 99999999;
- }
-
- .select2-results__option {
- padding: 0;
- }
-
- .select2-container--default .select2-results__option--highlighted[aria-selected] {
- background: $color-brand-blue;
- .llms-existing-action {
- color: #fff;
- }
- }
-
- .llms-existing-lesson-result {
-
- align-items: center;
- display: flex;
- padding: 5px 5px 5px 0;
-
- .llms-existing-info {
- flex: 6;
-
- h4, h5 {
- margin: 0;
- }
-
- h4 {
- font-weight: 400;
- }
-
- h5 {
- font-weight: 300;
- }
- }
-
- .llms-existing-action {
- color: $color-brand-blue;
- flex: 1;
- text-align: center;
-
- .fa {
- display: block;
- font-size: 30px;
- }
-
- small {
- text-transform: uppercase;
- }
-
- }
-
-
- }
-
-
- /*
- /$$
- |__/
- /$$$$$$ /$$ /$$ /$$ /$$$$$$$$
- /$$__ $$| $$ | $$| $$|____ /$$/
- | $$ \ $$| $$ | $$| $$ /$$$$/
- | $$ | $$| $$ | $$| $$ /$$__/
- | $$$$$$$| $$$$$$/| $$ /$$$$$$$$
- \____ $$ \______/ |__/|________/
- | $$
- | $$
- |__/
- */
-
- .llms-quiz-empty {
- margin: 100px auto;
- text-align: center;
-
- p { font-size: 18px; }
- button.llms-element-button {
- max-width: 320px;
- margin: 0 auto;
- }
-
- }
-
-
- .llms-model-header,
- .llms-model-settings {
- background: #fff;
- padding: 10px;
- @include clearfix();
- }
-
- .llms-editor-tab.tab--quiz {
- .llms-model-header {
- .llms-model-title {
- width: calc( 100% - 310px );
- }
- .llms-quiz-points {
- float: left;
- margin-right: 10px;
- width: 100px;
- }
- }
- }
-
- .llms-model-header {
- border-bottom: 5px solid #e6e6e6;
-
- .llms-model-title {
- float: left;
- margin-right: 10px;
- width: calc( 100% - 200px );
- .llms-input {
- width: calc( 100% - 65px );
- }
- }
- .llms-model-status.llms-switch {
- float: left;
- margin-right: 10px;
- position: relative;
- text-align: right;
- top: -2px;
- width: 100px;
- }
- .llms-action-icons {
- float: left;
- position: relative;
- text-align: right;
- width: 80px;
- z-index: 1;
- .fa {
- max-width: 15px;
- }
- }
-
- .llms-model-settings {
- padding: 0;
- }
-
- }
-
- .llms-model-header + .llms-model-settings.active {
- margin-top: -10px;
- }
-
- .llms-model-settings {
- clear: both;
- display: none;
-
- &.active {
- display: block;
- margin-top: 10px;
- }
- }
-
- .llms-quiz-footer {
- display: flex;
- button.llms-element-button {
- flex: 1;
- margin: 0 5px;
- &:first-child { margin-left: 0; }
- &:last-child { margin-right: 0; }
- &.llms-show-question-bank {
- flex: 2;
- }
- }
- }
-
- /*
- /$$ /$$ /$$ /$$
- | $$ |__/ | $$ | $$
- /$$$$$$ /$$ /$$ /$$$$$$ /$$$$$$$ /$$$$$$ /$$ /$$$$$$ /$$$$$$$ | $$$$$$$ /$$$$$$ /$$$$$$$ | $$ /$$
- /$$__ $$| $$ | $$ /$$__ $$ /$$_____/|_ $$_/ | $$ /$$__ $$| $$__ $$ | $$__ $$ |____ $$| $$__ $$| $$ /$$/
- | $$ \ $$| $$ | $$| $$$$$$$$| $$$$$$ | $$ | $$| $$ \ $$| $$ \ $$ | $$ \ $$ /$$$$$$$| $$ \ $$| $$$$$$/
- | $$ | $$| $$ | $$| $$_____/ \____ $$ | $$ /$$| $$| $$ | $$| $$ | $$ | $$ | $$ /$$__ $$| $$ | $$| $$_ $$
- | $$$$$$$| $$$$$$/| $$$$$$$ /$$$$$$$/ | $$$$/| $$| $$$$$$/| $$ | $$ | $$$$$$$/| $$$$$$$| $$ | $$| $$ \ $$
- \____ $$ \______/ \_______/|_______/ \___/ |__/ \______/ |__/ |__/ |_______/ \_______/|__/ |__/|__/ \__/
- | $$
- | $$
- |__/
- */
-
- .llms-quiz-tools {
- display: none;
- width: 100%;
- position: relative;
-
- // .llms-quiz-tools-search {
- // padding: 0 10px;
- // margin-bottom: 15px;
-
- // .fa {
- // color: #888;
- // font-size: 16px;
- // }
-
- // input[type="search"] {
- // background: inherit;
- // border: none;
- // border-bottom: 1px solid #bbb;
- // box-shadow: none;
- // font-size: 16px;
- // margin: 8px 0 0;
- // padding: 2px 5px;
- // width: calc( 100% - 200px );
-
- // &:focus {
- // border-bottom-color: $color-brand-blue;
- // }
- // }
-
- // }
-
- }
-
- ul.llms-question-bank {
-
- list-style-type: none;
- margin: 0;
- padding: 0;
- @include clearfix;
-
- li.llms-question-bank-header {
- clear: both;
- padding-top: 20px;
- &:first-child {
- padding-top: 0;
- }
- h4 {
- font-size: 20px;
- margin: 10px 5px;
- }
- }
-
- li.llms-question-type {
- box-sizing: border-box;
- float: left;
- margin: 0;
- padding: 3px;
- width: 33.3333%;
- transition: opacity 0.3s ease-in-out;
-
- &.filtered {
- opacity: 0.3;
- }
-
- .llms-type-unavailable {
- display: block;
- position: relative;
- text-decoration: none;
- .llms-element-button {
- opacity: 0.5;
- pointer-events: none;
- }
- }
-
- }
-
- }
-
- /*
- /$$ /$$ /$$
- |__/ | $$ |__/
- /$$$$$$ /$$ /$$ /$$ /$$$$$$$$ /$$$$$$ /$$ /$$ /$$$$$$ /$$$$$$$ /$$$$$$ /$$ /$$$$$$ /$$$$$$$ /$$$$$$$
- /$$__ $$| $$ | $$| $$|____ /$$/ /$$__ $$| $$ | $$ /$$__ $$ /$$_____/|_ $$_/ | $$ /$$__ $$| $$__ $$ /$$_____/
- | $$ \ $$| $$ | $$| $$ /$$$$/ | $$ \ $$| $$ | $$| $$$$$$$$| $$$$$$ | $$ | $$| $$ \ $$| $$ \ $$| $$$$$$
- | $$ | $$| $$ | $$| $$ /$$__/ | $$ | $$| $$ | $$| $$_____/ \____ $$ | $$ /$$| $$| $$ | $$| $$ | $$ \____ $$
- | $$$$$$$| $$$$$$/| $$ /$$$$$$$$ | $$$$$$$| $$$$$$/| $$$$$$$ /$$$$$$$/ | $$$$/| $$| $$$$$$/| $$ | $$ /$$$$$$$/
- \____ $$ \______/ |__/|________/ \____ $$ \______/ \_______/|_______/ \___/ |__/ \______/ |__/ |__/|_______/
- | $$ | $$
- | $$ | $$
- |__/ |__/
- */
- ul.llms-quiz-questions {
-
- margin: 10px 3px;
- padding: 5px;
- transition: box-shadow 0.6s ease;
-
- &.dragging {
- box-shadow: 0 0 0 3px $color-brand-blue;
- }
-
- &:empty:before {
- background: #fff;
- content: attr(data-empty-msg);
- display: block;
- font-size: 18px;
- margin: 0 auto;
- padding: 100px 0;
- text-align: center;
- }
-
- li.llms-question {
-
- background: #fff;
- margin: 0 0 3px;
- padding: 15px 12px 10px;
-
- &:hover {
- > .llms-builder-header .llms-action-icons {
- opacity: 1;
- pointer-events: auto;
- }
- }
-
- // groups
- ul.llms-quiz-questions {
- margin-left: 12px;
- .llms-question {
- border-bottom: 2px solid #e6e6e6;
- }
- &:empty:before {
- content: attr(data-empty-msg);
- display: block;
- font-size: 18px;
- text-align: center;
- margin: 20px auto;
- }
- li.llms-question.llms-sortable-placeholder.qtype--group {
- display: none !important;
- }
- }
-
- .llms-builder-header {
- @include clearfix;
- > * {
- float: left;
- }
- }
-
- .llms-question-body {
- display: none;
- &.active {
- display: block;
- }
- }
-
- .llms-data-stamp {
- background: $color-brand-blue;
- border-radius: 4px;
- color: #fff;
- cursor: move;
- font-size: 90%;
- margin-top: -5px;
- padding: 4px 10px 6px;
-
- small, .fa {
- line-height: 1.2;
- vertical-align: middle;
- }
-
- .fa {
- margin-right: 4px;
- }
-
- }
-
- .llms-headline {
- width: calc( 100% - 110px - 90px - 55px );
- .ql-editor {
- width: calc( 100% - 16px );
- }
- }
-
- .llms-action-icons {
- width: 110px;
- opacity: 0;
- pointer-events: none;
- }
-
- .llms-question-points {
- width: 90px;
- }
-
- .llms-question-features {
- margin: 10px 0 0;
- &:last-child {
- margin: 0;
- }
- .llms-switch {
- margin-right: 15px;
- }
- }
-
- .llms-editable-video {
- position: relative;
- z-index: 1;
- }
-
- }
-
- .llms-question-choices-wrapper {
- background: #f4f4f4;
- margin: 2px 1px;
- padding: 10px;
- }
-
- .llms-question-choices-list-header {
- @include clearfix;
- margin-bottom: 10px;
-
- .llms-switch {
- float: right;
- text-align: right;
- width: 260px;
- }
- }
-
- ul.llms-question-choices {
- border: 3px solid #f4f4f4;
- margin: -3px;
- padding: 0;
- transition: box-shadow 0.6s ease;
-
- &.dragging {
- box-shadow: 0 0 0 3px $color-brand-blue;
- }
-
- &.multi-choices li.llms-question-choice .llms-choice-id span {
- border-radius: 4px;
- }
-
- }
-
- li.llms-question-choice {
- margin: 0 0 5px;
- padding: 0;
- &:last-child { margin-bottom: 0; }
-
- .llms-choice-id {
-
- input[type="checkbox"] {
- display: none;
- }
-
- input[type="checkbox"]:checked + .llms-marker {
- background: $color-green;
- }
-
- .llms-marker {
- border-radius: 50%;
- background: #d0d0d0;
- box-shadow: inset 0 0 1px #848484;
- color: #444;
- display: inline-block;
- font-size: 16px;
- height: 20px;
- line-height: 20px;
- padding: 5px;
- position: relative;
- text-align: center;
- transition: background 0.1s ease;
- width: 20px;
-
- .fa {
- left: 7px;
- opacity: 0;
- position: absolute;
- top: 7px;
- }
- &.selectable:hover {
- b { opacity: 0 }
- .fa { opacity: 1; }
- }
-
- }
-
- }
-
- .llms-input-wrapper,
- .llms-editable-image {
- display: inline-block;
- // action icons width, label width, ul margins
- width: calc( 100% - 55px - 35px - 5px );
- }
-
- .llms-input {
- width: calc( 100% - 16px );
- }
-
- .llms-editable-image .llms-image {
- vertical-align: middle;
- img {
- height: 50px;
- }
- }
-
- .llms-action-icons {
- display: inline-block;
- opacity: 1;
- pointer-events: auto;
- text-align: right;
- width: 55px;
- }
-
- }
-
- li.llms-question-choice.llms-sortable-placeholder {
- border: 3px dashed $color-brand-blue !important;
- background: rgba( $color-brand-blue, 0.3 );
- }
-
- li.llms-question-choice.ui-sortable-helper {
- border: 1px solid #ccc;
- background: #fff;
- padding: 10px;
- transform: rotate( 2deg );
- z-index: 999;
- }
-
- li.llms-question.ui-sortable-helper,
- li.llms-question.ui-draggable-dragging {
- border: 1px solid #ccc;
- background: #fff;
- transform: rotate( 2deg );
- z-index: 999;
- }
-
- li.llms-question.llms-sortable-placeholder {
- border: 3px dashed $color-brand-blue !important;
- background: rgba( $color-brand-blue, 0.3 );
- }
-
- }
-
-
- .llms-switch {
- display: inline-block;
- float: none;
- width: auto;
-
- input[type="checkbox"] {
- display: none;
- }
-
- input[type="checkbox"]:checked + .llms-switch-slider {
- background: $color-green;
- }
-
- input[type="checkbox"]:checked + .llms-switch-slider:after {
- transform: translateX( 14px );
- }
-
- .llms-label {
- display: inline-block;
- vertical-align: top;
- }
-
- .llms-switch-slider {
- background: #e0e0e0;
- border-radius: 8px;
- display: inline-block;
- height: 16px;
- margin-top: 2px;
- position: relative;
- transition: background 0.2s ease;
- vertical-align: top;
- width: 30px;
-
- &:after {
- background: #fff;
- border-radius: 8px;
- content: '';
- display: block;
- height: 12px;
- left: 2px;
- position: relative;
- transition: transform 0.2s ease;
- top: 2px;
- width: 12px;
- }
-
- }
-
- }
-
-}
diff --git a/assets/scss/admin/_fonts.scss b/assets/scss/admin/_fonts.scss
deleted file mode 100644
index d2b834e87e..0000000000
--- a/assets/scss/admin/_fonts.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-#llms-options-page-contents {
- h2 {
- color: #999;
- font-weight: 500;
- letter-spacing: 2px;
- border-bottom: 1px solid #999;
- }
-}
diff --git a/assets/scss/admin/_llms-table.scss b/assets/scss/admin/_llms-table.scss
deleted file mode 100644
index d1afc175fc..0000000000
--- a/assets/scss/admin/_llms-table.scss
+++ /dev/null
@@ -1,213 +0,0 @@
-.llms-table-wrap {
- position: relative;
-}
-
-.llms-table-header {
- padding: 0 10px;
- margin-bottom: 10px;
-
- @include clearfix();
-
- h2 {
- padding: 0;
- display: inline-block;
- line-height: 1;
- margin: 0;
- vertical-align: middle;
- }
-
- .llms-table-search,
- .llms-table-filters {
- float: right;
- padding-left: 10px;
- }
-
- .llms-table-search input {
- margin: 0;
- padding: 5px;
- }
-
-}
-
-.llms-table {
-
- border: 1px solid #cecece;
- border-collapse: collapse;
- width: 100%;
-
- a {
- color: $color-brand-blue;
- &:hover {
- color: $color-brand-blue-dark;
- }
- }
-
- td, th {
- border-bottom: 1px solid #cecece;
- font-size: 95%;
- padding: 4px;
- text-align: center;
-
- &.expandable.closed {
- display: none;
- }
-
- .llms-button-primary,
- .llms-button-secondary,
- .llms-button-action,
- .llms-button-danger {
- display: inline-block;
- }
-
- }
-
- tr.llms-quiz-pending {
- td {
- font-weight: 700;
- }
- }
-
- thead th,
- tfoot th {
- background-color: #eaeaea;
- font-weight: 500;
-
- a.llms-sortable {
- // display: block;
- padding-right: 16px;
- position: relative;
- text-decoration: none;
- width: 100%;
- &.active {
- // show the current sorted when a sort is active
- &[data-order="DESC"] .asc { opacity: 1; }
- &[data-order="ASC"] .desc { opacity: 1; }
- }
- // show the opposite on hover
- &:hover {
- &[data-order="DESC"] {
- .asc { opacity: 0; }
- .desc { opacity: 1; }
- }
- &[data-order="ASC"] {
- .asc { opacity: 1; }
- .desc { opacity: 0; }
- }
- }
- .dashicons {
- color: #444;
- font-size: 16px;
- height: 16px;
- opacity: 0;
- position: absolute;
- width: 16px;
- }
- }
- }
-
- tfoot th {
- border-bottom: none;
-
- .llms-table-export {
- float: left;
- .llms-table-progress {
- background: #fafafa;
- display: none;
- margin-left: 8px;
- vertical-align: middle;
- width: 100px;
- }
- }
-
- .llms-table-pagination {
- float: right;
- }
-
- }
-
- &.zebra tbody tr:nth-child( even ) {
- th, td { background-color: #fafafa; }
- }
-
- &.zebra tbody tr:nth-child( odd ) {
- th, td { background-color: #fff; }
- }
-
- &.text-left {
- td, th {
- text-align: left;
- }
- }
-
- &.size-large {
- td, th {
- font-size: 105%;
- padding: 8px;
- }
- }
-
- .llms-action-icon {
- color: #777;
- text-decoration: none;
-
- .tooltip {
- cursor: pointer;
- }
-
- &:hover {
- color: $color-blue;
- }
-
- &.danger:hover {
- color: $color-danger;
- }
- }
-
- .llms-table-page-count {
- font-size: 11px;
- font-weight: 300;
- padding: 0 5px;
- }
-
-}
-
-// progress bars within the tables
-.llms-table-progress {
- background: #eee;
- height: 16px;
- position: relative;
- .llms-table-progress-text {
- font-size: 11px;
- line-height: 16px;
- position: absolute;
- right: 4px;
- top: 0;
- }
- .llms-table-progress-inner {
- background: $color-brand-blue;
- height: 100%;
- transition: width 0.2s ease;
- }
-}
-
-
-.llms-table.llms-gateway-table,
-.llms-table.llms-integrations-table {
- .status {
- .fa {
- color: $color-brand-blue;
- font-size: 22px;
- }
- }
- .sort {
- cursor: move;
- text-align: center;
- width: 10px;
- }
-}
-
-.llms-gb-table-notifications {
- th, td {
- text-align: left;
- }
-}
diff --git a/assets/scss/admin/_main.scss b/assets/scss/admin/_main.scss
deleted file mode 100644
index f420a91301..0000000000
--- a/assets/scss/admin/_main.scss
+++ /dev/null
@@ -1,94 +0,0 @@
-#post_course_difficulty {
- min-width: 200px;
-}
-#_video-embed, #_audio-embed {
- width: 100%;
-}
-
-.clear {
- clear: both;
- width: 100%;
-}
-
-.llms_certificate_default_image, .llms_certificate_image {
- width: 300px;
-}
-
-.llms_achievement_default_image, .llms_achievement_image {
- width: 120px;
-}
-
-div[id^="lifterlms-"] .inside {
- overflow: visible;
-}
-
-.llms-admin-notice {
- position: relative;
- .notice-dismiss {
- text-decoration: none;
- }
-}
-
-.llms-button-action,
-.llms-button-danger,
-.llms-button-primary,
-.llms-button-secondary {
- &.small .dashicons {
- font-size: 13px;
- height: 13px;
- width: 13px;
- }
-}
-
-a.llms-view-as {
- line-height: 2;
- margin-right: 8px;
-}
-
-.llms-image-field-preview {
- max-height: 80px;
- vertical-align: middle;
- width: auto;
-}
-
-.llms-image-field-remove {
- &.hidden { display: none; }
-}
-
-.llms-log-viewer {
- background: #fff;
- border: 1px solid #e5e5e5;
- box-shadow: 0 1px 1px rgba(0,0,0,.04);
- margin: 20px 0;
- padding: 25px;
-
- pre {
- font-family: monospace;
- margin: 0;
- padding: 0;
- white-space: pre-wrap;
- }
-}
-
-.llms-status--tools {
- .llms-table {
- background: #fff;
- border: 1px solid #e5e5e5;
- box-shadow: 0 1px 1px rgba(0,0,0,.04);
- td, th {
- padding: 10px;
- vertical-align: top;
- }
- th {
- width: 28%;
- }
- p {
- margin: 0 0 10px;
- }
- }
-}
-
-.llms-error {
- color: $color-red;
- font-style: italic;
-}
diff --git a/assets/scss/admin/_quiz-attempt-review.scss b/assets/scss/admin/_quiz-attempt-review.scss
deleted file mode 100644
index a4b7d85f41..0000000000
--- a/assets/scss/admin/_quiz-attempt-review.scss
+++ /dev/null
@@ -1,23 +0,0 @@
-.llms-remarks {
-
- .llms-remarks-field {
- height: 120px;
- width: 100%;
- }
-
- input[type="number"] {
- width: 60px;
- }
-
-
-}
-
-
-button[name="llms_quiz_attempt_action"] {
- .save { display: none; }
- &.grading {
- .default { display: none };
- .save { display: inline; }
- }
-}
-
diff --git a/assets/scss/admin/_reporting.scss b/assets/scss/admin/_reporting.scss
deleted file mode 100644
index 936119a424..0000000000
--- a/assets/scss/admin/_reporting.scss
+++ /dev/null
@@ -1,341 +0,0 @@
-.llms-reporting.wrap {
-
- .llms-options-page-contents {
- background: #fff;
- box-shadow: 0 1px 3px rgba( 0, 0, 0, .13 );
- margin: 0 0 20px;
- padding: 20px;
- .llms-nav-tab-wrapper.llms-nav-secondary {
- background: #fafafa;
- box-shadow: none;
- margin: 0 -20px 40px;
- padding: 0 20px;
- .llms-nav-link {
- padding: 8px 14px;
- }
- }
- }
-
- .llms-stab-title {
- color: $color-brand-dark-blue;
- font-size: 36px;
- font-weight: 300;
- margin-bottom: 20px;
- }
-
- td.id a {
- text-decoration: none;
- }
-
- th.name, td.name,
- th.title, td.title { text-align: left; }
-
- td.section-title {
- background: #eaeaea;
- text-align: left;
- font-weight: 700;
- padding: 16px 4px;
- }
-
- td.questions-table {
- text-align: left;
-
- .correct,
- .question,
- .selected {
- text-align: left;
- max-width: 300px;
-
- img {
- height: auto;
- max-width: 64px;
- }
- }
- }
-
- table.quiz-attempts {
- margin-bottom: 40px;
- }
-
- &.tab--enrollments,
- &.tab--sales {
-
- .llms-nav-tab-wrapper.llms-nav-secondary {
- margin-bottom: 0;
- }
-
- .llms-options-page-contents {
- box-shadow: none;
- background: none;
- margin-top: 20px;
- padding: 0;
- }
-
- .llms-nav-item.llms-analytics-form {
- color: #414141;
- font-size: 13px;
- padding: 6px 14px;
-
- input {
- border: 0;
- font-size: 13px;
- margin: 0;
- padding: 3px 6px;
- vertical-align: middle;
- }
-
- .select2-container {
- input {
- width: 100% !important;
- }
- }
- }
-
- .button.small {
- height: 23px;
- line-height: 23px;
- }
-
-
- .llms-analytics-filters {
- display: none;
-
- .llms-nav-item {
- box-sizing: border-box;
- width: 100%;
-
- label {
- display: block;
- }
- }
-
- .button {
- float: right;
- }
-
- }
- }
-
- .llms-reporting-tab.llms-reporting-quiz .llms-table-filter-wrap {
- width: 160px;
- }
-
-
-}
-
-
-.llms-reporting-tab {
-
- h1, h2, h3, h4, h5, h6 {
- margin: 0;
- a {
- color: $color-brand-dark-blue;
- text-decoration: none;
- &:hover {
- color: $color-brand-blue;
- }
- }
- }
-
-
- .llms-reporting-header {
-
- background: #fafafa;
- padding: 20px;
- margin: 0 -20px;
-
- .llms-reporting-header-img {
- border-radius: 50%;
- display: inline-block;
- margin-right: 10px;
- overflow: hidden;
- vertical-align: middle;
- img {
- display: block;
- max-height: 64px;
- width: auto;
- }
- }
-
- .llms-reporting-header-info {
- display: inline-block;
- vertical-align: middle;
-
- }
-
- }
-
-}
-
-.llms-reporting-breadcrumbs {
- background: #fafafa;
- margin: -20px -20px 0;
- padding: 20px 20px 10px;
- a {
- color: $color-brand-blue;
- text-decoration: none;
- &:hover {
- color: $color-brand-blue-dark;
- }
- &:after {
- content: ' > ';
- color: #555;
- }
-
- &:last-child {
- color: $color-brand-dark-blue;
- &:after { display: none;}
- }
- }
-}
-
-#llms-students-table .name {
- text-align: left;
-}
-
-.llms-reporting-tab-content {
- display: flex;
-
- > header {
- @include clearfix;
- }
-
- h3 {
- margin-bottom: 20px;
- }
-
- .llms-reporting-tab-filter {
- float: right;
- position: relative;
- margin-right: 0.75em;
- width: 180px;
- top: -3px;
- }
-
-
- .llms-reporting-tab-main {
- flex: 3;
- }
- .llms-reporting-tab-side {
- flex: 1;
- margin-left: 20px;
- }
-
- > .llms-table-wrap {
- flex: 1;
- }
-
-}
-
-
-.llms-reporting-widgets {
- @include clearfix;
-}
-
-.llms-reporting-widget {
-
- border-top: 4px solid $color-brand-blue;
- background: #fafafa;
- margin-bottom: 0.75em;
- padding: 18px 15px 15px;
- @include clearfix;
-
- .fa {
- color: #555;
- float: left;
- font-size: 32px;
- margin-right: 10px;
- }
-
- .llms-reporting-widget-data {
- line-height: 0.8;
- }
-
- strong {
- color: #333;
- font-size: 20px;
- }
-
- &.llms-reporting-student-address {
- strong {
- line-height: 1.1;
- }
- }
-
- sup,
- .llms-price-currency-symbol {
- font-size: 75%;
- position: relative;
- top: -4px;
- vertical-align: baseline;
- }
-
- small {
- color: #888;
- &.compare {
- margin-left: 5px;
- &.positive {
- color: $color-green;
- }
- &.negative {
- color: $color-red;
- }
- }
- }
-}
-
-
-.llms-reporting-event {
- border-left: 4px solid #555;
- background: #fafafa;
- font-size: 11px;
- line-height: 1.2;
- margin-bottom: 0.75em;
- padding: 10px;
- @include clearfix;
-
- &.color--blue {
- border-left-color: $color-blue;
- }
-
- &.color--green,
- &._enrollment_trigger,
- &._is_complete.yes {
- border-left-color: $color-green;
- }
-
- &.color--purple,
- &._status.enrolled {
- border-left-color: $color-purple;
- }
-
- &.color--red,
- &._status.expired,
- &._status.cancelled {
- border-left-color: $color-red;
- }
- &.color--orange,
- &._achievement_earned,
- &._certificate_earned,
- &._email_sent {
- border-left-color: $color-orange;
- }
-
- time {
- color: #888;
- }
-
- .llms-student-avatar {
- margin-left: 10px;
- float: right;
- }
-
- a {
- text-decoration: none;
- color: inherit;
- }
-
-}
-
-@import "../_includes/quiz-result-question-list";
-
diff --git a/assets/scss/admin/_settings.scss b/assets/scss/admin/_settings.scss
deleted file mode 100644
index 09d2f3e490..0000000000
--- a/assets/scss/admin/_settings.scss
+++ /dev/null
@@ -1,174 +0,0 @@
-.wrap.llms-reporting,
-.wrap.lifterlms-settings {
-
- .llms-header {
- background: #fff;
- border-bottom: 1px solid #efefef;
- margin: -10px -20px 0;
- padding: 10px 0;
- z-index: 1;
-
- .lifterlms-logo {
- max-width: 140px;
- }
-
- .llms-save {
- float: right;
- }
-
- .llms-inside-wrap {
- padding: 0 10px;
- }
-
- }
-
- .llms-inside-wrap {
- box-sizing: border-box;
- max-width: 1000px;
- margin: 0 auto;
- }
-
- .llms-nav-tab-wrapper.llms-nav-secondary {
- background: #fff;
- box-shadow: 0 1px 3px rgba( 0, 0, 0, .13 );
- margin: 0 -20px 20px;
- z-index: 1;
-
- .llms-nav-item {
- .llms-nav-link:hover,
- &.llms-active .llms-nav-link {
- background: #fafafa;
- color: $color-blue;
- border-top-color: $color-blue;
- }
-
- &.llms-active .llms-nav-link {
- font-weight: 700;
- }
- }
-
- .llms-nav-link {
- border-top: 2px solid transparent;
- padding: 14px;
- }
-
- }
-
- .llms-setting-group {
-
- background: #fff;
- box-shadow: 0 1px 3px rgba( 0, 0, 0, .13 );
- margin: 0 0 20px;
- padding: 20px;
-
- .llms-label {
- border-bottom: 1px solid #efefef;
- font-weight: 700;
- font-size: 20px;
- padding: 20px;
- margin: -20px -20px 20px;
- }
-
- .llms-help-tooltip .dashicons {
- color: #444;
- cursor: help;
- }
-
- .form-table {
- margin: 0;
- tr:first-child .llms-subtitle {
- margin-top: 0;
- }
- }
-
- td[colspan="2"] {
- padding-top: 0;
- padding-left: 0;
- }
-
- tr.llms-disabled-field {
- opacity: 0.5;
- pointer-events: none;
- }
-
- input[type="text"],
- input[type="password"],
- input[type="datetime"],
- input[type="datetime-local"],
- input[type="date"],
- input[type="month"],
- input[type="time"],
- input[type="week"],
- input[type="number"],
- input[type="email"],
- input[type="url"],
- input[type="search"],
- input[type="tel"],
- input[type="color"],
- select,
- textarea:not(.wp-editor-area) {
- width: 50%;
- &.medium { width: 30%; }
- &.small { width: 20%; }
- &.tiny { width: 10%; }
- }
- }
-
- @media only screen and (min-width: 782px) {
- .llms-nav-tab-wrapper.llms-nav-secondary {
- .llms-nav-item {
- .llms-nav-link:hover,
- &.llms-active .llms-nav-link {
- background: #fff;
- }
- }
- }
- }
-
- // Email Delivery providers.
- #llms-mailhawk-connect {
- font-size: 16px;
- height: auto;
- margin: 0 0 6px;
- padding: 8px 14px;
- position: relative;
-
- .dashicons {
- margin: -4px 4px 0 0;
- vertical-align: middle;
- }
- }
- #llms-sendwp-connect {
- font-size: 16px;
- height: auto;
- margin: 0 0 6px;
- padding: 8px 14px;
- position: relative;
-
- .fa {
- margin-right: 4px;
- }
- }
-
-}
-
-@media only screen and (min-width: 782px) {
- .wrap.lifterlms-settings {
- .llms-header {
- position: sticky;
- top: 30px;
- }
- .llms-nav-tab-wrapper.llms-nav-secondary {
- position: sticky;
- top: 93px;
- }
- }
-}
-
-.wrap.llms-reporting {
- .llms-inside-wrap {
- box-sizing: border-box;
- max-width: 1000px;
- margin: 0 0 0 20px;
- }
-}
diff --git a/assets/scss/admin/_tabs.scss b/assets/scss/admin/_tabs.scss
deleted file mode 100644
index c184ac2c03..0000000000
--- a/assets/scss/admin/_tabs.scss
+++ /dev/null
@@ -1,103 +0,0 @@
-.llms-nav-tab-wrapper {
- background: $color-blue;
- margin: 20px 0;
-
- &.llms-nav-secondary {
- background: #e1e1e1;
-
- .llms-nav-item {
- margin: 0;
-
- .llms-nav-link:hover,
- &.llms-active .llms-nav-link {
- background: darken( #e1e1e1, 8 );
- }
-
- }
-
- .llms-nav-link {
- color: #414141;
- font-size: 13px;
- padding: 8px 14px;
-
- .dashicons {
- font-size: 15px;
- height: 15px;
- width: 15px;
- }
- }
-
- }
-
- &.llms-nav-text {
- background: inherit;
- .llms-nav-item {
- background: inherit;
- &:last-child:after {
- display: none;
- }
- &:after {
- content: '|';
- display: inline-block;
- margin: 0 3px 0 0;
- }
- .llms-nav-link:hover,
- &.llms-active .llms-nav-link {
- background: inherit;
- color: $color-brand-blue;
- text-decoration: underline;
- }
- .llms-nav-link {
- color: $color-brand-dark-blue;
- display: inline-block;
- letter-spacing: 0;
- margin: 0;
- padding: 0;
- text-transform: none;
- }
- }
- }
-
- .llms-nav-items {
- @include clearfix;
- margin: 0;
- }
-
- .llms-nav-item {
- margin: 0;
-
- .llms-nav-link:hover {
- background: $color-brand-blue-dark;
- }
- &.llms-active .llms-nav-link {
- background: $color-brand-dark-blue;
- }
-
- &.llms-active .llms-nav-link {
- font-weight: 400;
- }
-
- @media only screen and (min-width: 768px) {
- float: left;
-
- &.llms-nav-item-right {
- float: right;
- }
- }
-
- }
-
- .llms-nav-link {
-
- color: #fff;
- cursor: pointer;
- display: block;
- font-weight: 300;
- font-size: 14px;
- padding: 9px 18px;
- text-align: center;
- text-decoration: none;
- transition: all .3s ease;
-
- }
-}
diff --git a/assets/scss/admin/_wp-menu.scss b/assets/scss/admin/_wp-menu.scss
deleted file mode 100644
index ba81cd6235..0000000000
--- a/assets/scss/admin/_wp-menu.scss
+++ /dev/null
@@ -1,21 +0,0 @@
-#adminmenu {
-
- .toplevel_page_lifterlms .wp-menu-image img {
- padding-top: 6px;
- width: 20px;
- }
-
- .toplevel_page_lifterlms,
- .opensub .wp-submenu li.current,
- .wp-submenu li.current,
- .wp-submenu li.current,
- .wp-submenu li.current,
- a.wp-has-current-submenu:focus+.wp-submenu li.current {
- a[href*="page=llms-add-ons"] {
- color: $color-orange;
- }
- }
-
-}
-
-
diff --git a/assets/scss/admin/breakpoints/_1030up.scss b/assets/scss/admin/breakpoints/_1030up.scss
deleted file mode 100644
index 2c94494dcd..0000000000
--- a/assets/scss/admin/breakpoints/_1030up.scss
+++ /dev/null
@@ -1,76 +0,0 @@
-/******************************************************************
-
-Desktop Stylesheet
-
-******************************************************************/
-
-//option page tab menu
-.llms-nav-tab {
- display: inline-block;
- width: 33.333%;
-}
-.llms-nav-tab-settings {
- display: inline-block;
- width: 25%;
-}
-
-//select box form wrapper
-#llms-form-wrapper {
- .llms-select {
- display: inline-block;
- width: 47.5%;
- &:first-child {
- margin-right: 5%;
- }
-
- }.llms-filter-options {
- display: inline-block;
- width: 47.5%;
-
- &.date-filter {
- margin-right: 5%;
- }.llms-date-select {
- margin-bottom: 0;
- }
-
- }.llms-date-select {
- width: 47.5%;
-
- &:first-child {
- margin-right: 5%
- }
-
- }
-}
-
-.llms-widget-row {
- @include clearfix;
- .llms-widget-1-5 {
- vertical-align: top;
- width: 20%;
- float: left;
- box-sizing: border-box;
- padding: 0 5px;
- }
- .llms-widget-1-4 {
- vertical-align: top;
- width: 25%;
- float: left;
- box-sizing: border-box;
- padding: 0 5px;
- }
- .llms-widget-1-3 {
- width: 33.3%;
- float: left;
- box-sizing: border-box;
- padding: 0 5px;
- }
- .llms-widget-1-2 {
- width: 50%;
- float: left;
- box-sizing: border-box;
- padding: 0 5px;
- vertical-align: top;
- }
-
-}
diff --git a/assets/scss/admin/breakpoints/_1240up.scss b/assets/scss/admin/breakpoints/_1240up.scss
deleted file mode 100644
index 2b3457079d..0000000000
--- a/assets/scss/admin/breakpoints/_1240up.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-/******************************************************************
-
-large Monitor Stylesheet
-
-******************************************************************/
-
-.llms-nav-tab-filters,
-.llms-nav-tab-settings {
- float: left;
- width: 12.5%;
-}
diff --git a/assets/scss/admin/breakpoints/_481up.scss b/assets/scss/admin/breakpoints/_481up.scss
deleted file mode 100644
index 05e7bc2f76..0000000000
--- a/assets/scss/admin/breakpoints/_481up.scss
+++ /dev/null
@@ -1,15 +0,0 @@
-/******************************************************************
-
-Larger Phones
-
-******************************************************************/
-
-//select box form wrapper
-#llms-form-wrapper {
-
- .llms-checkbox {
- width: 33%;
- //text-align: center;
-
- }
-}
diff --git a/assets/scss/admin/breakpoints/_768up.scss b/assets/scss/admin/breakpoints/_768up.scss
deleted file mode 100644
index be119130ce..0000000000
--- a/assets/scss/admin/breakpoints/_768up.scss
+++ /dev/null
@@ -1,73 +0,0 @@
-/******************************************************************
-
-Tablets and small computers
-
-******************************************************************/
-
-ul.tabs li{
- display: inline-block;
- }
-
-//option page tab menu
-.llms-nav-tab {
- display: inline-block;
- width: 33%;
-}
-.llms-nav-tab-settings {
- display: inline-block;
- width: 25%;
-}
-
-//select box form wrapper
-#llms-form-wrapper {
- .llms-select {
- width: 50%;
- max-width: 500px;
-
- }.llms-filter-options {
- width: 50%;
- //display: inline-block;
- max-width: 500px;
-
- }.llms-date-select {
- width: 47.5%;
-
- &:first-child {
- margin-right: 5%
- }
-
- }
-}
-
-.llms-widget {
- input[type="text"],
- input[type="password"],
- input[type="datetime"],
- input[type="datetime-local"],
- input[type="date"],
- input[type="month"],
- input[type="time"],
- input[type="week"],
- input[type="number"],
- input[type="email"],
- input[type="url"],
- input[type="search"],
- input[type="tel"],
- input[type="color"],
- select,
- textarea, {
- width: 50%;
-
- &.medium { width: 30%; }
- &.small { width: 20%; }
- &.tiny { width: 10%; }
- }
-
- // .form-table th {
- // width: 140px;
- // }
-
-}
-
-
-
diff --git a/assets/scss/admin/breakpoints/_base.scss b/assets/scss/admin/breakpoints/_base.scss
deleted file mode 100644
index 4e196a12a8..0000000000
--- a/assets/scss/admin/breakpoints/_base.scss
+++ /dev/null
@@ -1,93 +0,0 @@
-/******************************************************************
-
-Base Mobile
-
-******************************************************************/
-
-.llms-nav-tab,
-.llms-nav-tab-filters {
- display: block;
- width: 100%;
-}
-
-form.llms-nav-tab-filters.full-width {
- width: 100%;
-
- label {
- display: inline-block;
- width: 10%;
- text-align: left;
- }
-
- .select2-container {
- width: 85% !important;
- }
-}
-
-.llms-nav-tab-settings {
- display: block;
- width: 100%;
-}
-
-//select box form wrapper
-#llms-form-wrapper {
- .llms-select {
- width: 100%;
- margin-bottom: 20px;
-
- }.llms-checkbox {
- display: inline-block;
- width: 100%;
- text-align: left;
-
- }.llms-filter-options {
- width: 100%;
- //margin-bottom: 20px;
-
- }.llms-date-select {
- width: 100%;
- display: inline-block;
- margin-bottom: 20px;
- input[type="text"] {
- width: 100%;
- }
-
- }.llms-search-button {
- //display: inline-block;
- //width: 30%;
- #llms-search-button {
-
- //float: right;
- }
-
- }
-
-}
-
-// .llms-widget-full {
-// &.top {
-// margin-top: 20px;
-// }
-// }
-// .llms-widget {
-// .form-table td {
-// padding: 15px 0;
-// ul { margin: 5px 0 0; }
-
-
-// .conditional-field {
-// display: none;
-// margin-left: 25px;
-// }
-// .conditional-radio:checked ~ .conditional-field {
-// display: block;
-// }
-
-
-// }
-// }
-
-ul.tabs li{
- display: block;
- }
-
diff --git a/assets/scss/admin/metaboxes/_builder-launcher.scss b/assets/scss/admin/metaboxes/_builder-launcher.scss
deleted file mode 100644
index 2704fe7895..0000000000
--- a/assets/scss/admin/metaboxes/_builder-launcher.scss
+++ /dev/null
@@ -1,5 +0,0 @@
-.llms-builder-launcher {
- .llms-button-primary {
- box-sizing: border-box;
- }
-}
diff --git a/assets/scss/admin/metaboxes/_llms-metabox.scss b/assets/scss/admin/metaboxes/_llms-metabox.scss
deleted file mode 100644
index 8fa2649ac2..0000000000
--- a/assets/scss/admin/metaboxes/_llms-metabox.scss
+++ /dev/null
@@ -1,199 +0,0 @@
-
-// This is a "legacy" rule that may be removable
-.llms-mb-list {
-
- label {
- font-weight: bold;
- width: 100%;
- display: block;
- }
-
- .input-full {
- width: 100%;
- }
-}
-
-
-#poststuff .llms-metabox {
-
- @extend %cf;
-
- h2, h3, h6 {
- font-weight: 300;
- margin: 0;
- padding: 0;
- }
-
- h2 {
- font-size: 22px;
- }
-
- h3 {
- color: #777;
- font-size: 16px;
- }
-
- h4 {
- border-bottom: 1px solid #e5e5e5;
- padding: 0;
- margin: 0;
- }
-
- .llms-transaction-test-mode {
- background: #ffffd7;
- font-style: italic;
- left: 0;
- padding: 2px;
- position: absolute;
- right: 0;
- top: 0;
- text-align: center;
- }
-
- a.llms-editable,
- .llms-metabox-icon,
- button.llms-editable {
- color: $color-grey;
- text-decoration: none;
- &:hover {
- color: $color-brand-blue;
- }
- }
-
- button.llms-editable {
- border: none;
- background: none;
- cursor: pointer;
- padding: 0;
- vertical-align: top;
- }
-
- h4 button.llms-editable {
- float: right;
- }
-
-}
-
-.llms-metabox-section {
- background: #fff;
- margin-top: 25px;
- position: relative;
-
- &.no-top-margin {
- margin-top: 0;
- }
-
- .llms-metabox-field {
- margin: 15px 0;
- position: relative;
- label {
- color: #777;
- display: block;
- margin-bottom: 5px;
- font-weight: 500;
- vertical-align: baseline;
- }
-
- select,
- textarea,
- input[type="text"],
- input[type="number"] {
- width: 100%;
- }
-
- input.md-text {
- width: 105px;
- }
-
- input.sm-text {
- width: 45px;
- }
-
-
- .llms-datetime-field {
-
- .llms-date-input {
- width: 95px;
- }
- .llms-time-input {
- width: 45px;
- }
- em {
- font-style: normal;
- padding: 0 3px;
- }
-
- }
-
- }
-
-
-}
-
-.llms-collapsible {
-
- @extend %clearfix;
-
- border: 1px solid #e5e5e5;
- position: relative;
- margin-top: 0;
- margin-bottom: -1px;
-
- &:last-child {
- margin-bottom: 0;
- }
-
- &.opened .llms-collapsible-header {
- .dashicons-arrow-down {
- display: none;
- }
- .dashicons-arrow-up {
- display: inline;
- }
- }
-
- .llms-collapsible-header {
- @extend %clearfix;
- padding: 10px;
-
- h3 {
- color: #777;
- margin: 0;
- font-size: 16px;
- }
-
- .dashicons-arrow-up {
- display: inline;
- }
- .dashicons-arrow-up {
- display: none;
- }
-
- a {
- text-decoration: none;
- }
-
- .dashicons {
- color: #777;
- cursor: pointer;
- transition: color .4s ease;
- &:hover {
- color: $color-blue;
- }
-
- &.dashicons-warning,&.dashicons-warning:hover,
- &.dashicons-trash:hover,
- &.dashicons-no:hover {
- color: $color-danger;
- }
- }
-
- }
-
- .llms-collapsible-body {
- @extend %clearfix;
- display: none;
- padding: 10px;
- }
-
-}
diff --git a/assets/scss/admin/metaboxes/_metabox-engagements-type.scss b/assets/scss/admin/metaboxes/_metabox-engagements-type.scss
deleted file mode 100644
index d50c36466b..0000000000
--- a/assets/scss/admin/metaboxes/_metabox-engagements-type.scss
+++ /dev/null
@@ -1,42 +0,0 @@
-.submitbox .llms-mb-section,
-.llms-award-engagement-submitbox .llms-mb-list {
- margin-bottom: 12px;
- &:last-of-type {
- margin-bottom: 0;
- }
- @at-root .sync-action,
- &.student-info,
- &.post_author_override label {
- &:before {
- // dashicons-admin-users.
- font: normal 20px/1 dashicons;
- speak: never;
- display: inline-block;
- margin-left: -1px;
- padding-right: 3px;
- vertical-align: top;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- position: relative;
- top: -1px;
- color: #8c8f94;
- body:not(.admin-color-fresh) & {
- color: currentColor; // Used when selecting a different admin color scheme from the default one.
- }
- }
- }
- &.student-info,
- &.post_author_override label {
- &:before {
- content: '\f110';
- }
- }
- @at-root .sync-action:before {
- content: '\f113';
- color: white;
- }
- &.post_author_override label {
- display: inline-block;
- width: auto;;
- }
-}
diff --git a/assets/scss/admin/metaboxes/_metabox-field-repeater.scss b/assets/scss/admin/metaboxes/_metabox-field-repeater.scss
deleted file mode 100644
index 439a4e6849..0000000000
--- a/assets/scss/admin/metaboxes/_metabox-field-repeater.scss
+++ /dev/null
@@ -1,37 +0,0 @@
-// ahhhhhhhh
-.llms-mb-container .tab-content ul:not(.select2-selection__rendered).llms-mb-repeater-fields > li.llms-mb-list {
- border-bottom: none;
- padding: 0 0 10px;
-}
-
-.llms-mb-list.repeater {
-
- .llms-repeater-rows {
- position: relative;
- margin-top: 10px;
- min-height: 10px;
-
- &.dragging {
- background: #efefef;
- box-shadow: inset 0 0 0 1px #e5e5e5;
- }
- }
-
- .llms-repeater-row {
- background: #fff;
- }
-
- .llms-mb-repeater-fields {
-
- }
-
- .llms-mb-repeater-footer {
- text-align: right;
- margin-top: 20px;
- }
-
- .tmce-active .wp-editor-area {
- color: #32373c; // wp core default color
- }
-
-}
diff --git a/assets/scss/admin/metaboxes/_metabox-instructors.scss b/assets/scss/admin/metaboxes/_metabox-instructors.scss
deleted file mode 100644
index f03294ceed..0000000000
--- a/assets/scss/admin/metaboxes/_metabox-instructors.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-._llms_instructors_data.repeater {
- .llms-repeater-rows .llms-repeater-row:first-child {
- .llms-repeater-remove { display: none; }
- }
-
- .llms-mb-list {
- padding: 0 5px !important;
- }
-}
diff --git a/assets/scss/admin/metaboxes/_metabox-orders.scss b/assets/scss/admin/metaboxes/_metabox-orders.scss
deleted file mode 100644
index 3f4a603064..0000000000
--- a/assets/scss/admin/metaboxes/_metabox-orders.scss
+++ /dev/null
@@ -1,62 +0,0 @@
-.post-type-llms_order #post-body-content { display: none; }
-#lifterlms-order-details {
- .handlediv,
- .handlediv.button-link,
- .postbox-header { display: none;}
- .inside {
- padding: 20px;
- margin-top: 0;
-
- }
-}
-
-// failed transaction color
-.llms-table tbody tr.llms-txn-failed td {
- background-color: rgba( $color-red, 0.5 );
- border-bottom-color: rgba( $color-red, 0.5 );
-}
-
-// refunded transaction color
-.llms-table tbody tr.llms-txn-refunded td {
- background-color: rgba( orange, 0.5 );
- border-bottom-color: rgba( orange, 0.5 );
-}
-
-.llms-txn-refund-form,
-.llms-manual-txn-form {
- .llms-metabox-section {
- margin-top: 0;
- }
- .llms-metabox-field {
- text-align: right;
- input {
- &[type="number"] { max-width: 100px; }
- &[type="text"] { max-width: 340px; }
-
- }
- }
-}
-
-.llms-manual-txn-form {
- background-color: #eaeaea;
- .llms-metabox-section {
- background-color: #eaeaea;
- }
-}
-
-#llms-remaining-edit {
- display: none;
-}
-.llms-remaining-edit--content {
- label, span, textarea {
- display: block;
- }
-
- label {
- margin-bottom: 20px;
- }
-
- textarea, input {
- width: 100%;
- }
-}
diff --git a/assets/scss/admin/metaboxes/_metabox-product.scss b/assets/scss/admin/metaboxes/_metabox-product.scss
deleted file mode 100644
index 62544c37f8..0000000000
--- a/assets/scss/admin/metaboxes/_metabox-product.scss
+++ /dev/null
@@ -1,72 +0,0 @@
-.llms-metabox {
-
- #llms-new-access-plan-model {
- display: none;
- }
-
- .llms-access-plans {
- @extend %clearfix;
- margin-top: 25px;
-
- > .llms-no-plans-msg { display: none; }
- > .llms-no-plans-msg:last-child {
- box-shadow: inset 0 0 0 1px #e5e5e5;
- display: block;
- text-align: center;
- padding: 10px;
- }
-
- &.dragging {
- background: #efefef;
- box-shadow: inset 0 0 0 1px #e5e5e5;
- }
-
- .llms-spinning {
- z-index: 1;
- }
-
- .llms-invalid {
- border-color: $color-danger;
- .dashicons-warning {
- display: inline;
- }
- }
-
- .dashicons-warning {
- display: none;
- }
-
- }
-
- .llms-access-plan {
-
- text-align: left;
-
- [data-tip]:before {
- text-align: center;
- }
-
- .llms-plan-link,
- [data-controller] {
- display: none;
- }
-
- &:hover,
- &.opened {
- .llms-plan-link {
- display: inline-block;
- }
- }
-
- .llms-metabox-field {
- margin: 5px 0;
- }
-
- .llms-required {
- color: $color-danger;
- margin-left: 3px;
- }
-
- }
-
-}
diff --git a/assets/scss/admin/metaboxes/_metabox-students.scss b/assets/scss/admin/metaboxes/_metabox-students.scss
deleted file mode 100644
index 7b0aef36ef..0000000000
--- a/assets/scss/admin/metaboxes/_metabox-students.scss
+++ /dev/null
@@ -1,15 +0,0 @@
-.llms-metabox-students {
- .llms-table {
- tr .name {
- text-align: left;
- }
- }
-
- .llms-add-student:hover {
- color: $color-green;
- }
- .llms-remove-student:hover {
- color: $color-red;
- }
-
-}
diff --git a/assets/scss/admin/modules/_forms.scss b/assets/scss/admin/modules/_forms.scss
deleted file mode 100644
index fac4a4b803..0000000000
--- a/assets/scss/admin/modules/_forms.scss
+++ /dev/null
@@ -1,190 +0,0 @@
-/******************************************************************
-
-Form Styles
-
-******************************************************************/
-
-// lifterlms form wrapper
-#llms-form-wrapper {
-
- // setup defaults
- input[type="text"],
- input[type="password"],
- input[type="datetime"],
- input[type="datetime-local"],
- input[type="date"],
- input[type="month"],
- input[type="time"],
- input[type="week"],
- input[type="number"],
- input[type="email"],
- input[type="url"],
- input[type="search"],
- input[type="tel"],
- input[type="color"],
- input[type="checkbox"],
- select,
- textarea,
- .llms-field {
-
- // a focused input (or hovered on)
- &:focus,
- &:active {
-
- } // end hover or focus
- }
-
- // sub wrapper for search filter form (analytics)
- .llms-search-form-wrapper {
- border-bottom: 1px solid $color-grey;
- margin: 20px 0;
-
- }
-
-
- #llms_analytics_search {
- border:none !important;
- text-shadow: none !important;
- border: none !important;
- outline: none !important;
- box-shadow: none !important;
- margin: 0 !important;
- color: $color-white !important;
- background: $color-blue !important;
- border-radius: 0;
- transition: .5s;
-
- &:hover {
- background: $color-darkblue !important;
-
- }&:active {
- background: $color-lightblue !important;
- }
- }
-
-} // end input defaults
-
-
-#llms-skip-setup-form {
- .llms-admin-link {
- background:none!important;
- border:none;
- padding:0!important;
- color:#0074a2;
- cursor:pointer;
- &:hover {
- color:#2ea2cc
- }&:focus{
- color:#124964;
- }
-
- }
-
-}
-
-/**
- * Toggle Switch ( replaces checkbox on admin panels )
- */
-.llms-switch {
- position: relative;
-
- .llms-toggle {
- position: absolute;
- margin-left: -9999px;
- visibility: hidden;
- }
-
- .llms-toggle + label {
- box-sizing: border-box;
- display: block;
- position: relative;
- cursor: pointer;
- outline: none;
- user-select: none;
- }
-
- input.llms-toggle-round + label {
- border: 2px solid #6c7781;
- border-radius: 10px;
- height: 20px;
- width: 36px;
- }
- input.llms-toggle-round + label:before,
- input.llms-toggle-round + label:after {
- box-sizing: border-box;
- content: '';
- display: block;
- position: absolute;
- transition: background 0.4s;
- }
-
- input.llms-toggle-round:checked + label {
- border-color: #11a0d2;
- background-color: #11a0d2;
- }
-
- // Primary dot (that moves.)
- input.llms-toggle-round + label:after {
- height: 12px;
- left: 2px;
- top: 2px;
- background-color: #6c7781;
- border-radius: 50%;
- transition: margin 0.4s;
- width: 12px;
- z-index: 3;
- }
-
- // Primary dot when toggle on.
- input.llms-toggle-round:checked + label:after {
- background-color: $color-white;
- margin-left: 16px;
- }
-
- // Secondary dot: empty on the right side of the toggle when toggled off.
- input.llms-toggle-round + label:before {
- height: 8px;
- top: 4px;
- border: 1px solid #6c7781;
- border-radius: 50%;
- right: 4px;
- width: 8px;
- z-index: 2;
- }
-
- input.llms-toggle-round:checked + label:before {
- border-color: $color-white;
- border-radius: 0;
- left: 6px;
- right: auto;
- width: 2px;
- }
-
-}
-
-#llms-profile-fields {
- margin: 50px 0;
- .llms-form-field {
- padding-left: 0;
- }
- label {
- display: block;
- font-weight: bold;
- padding: 8px 0 2px;
- }
- .type-checkbox .type-checkbox {
- label {
- display: initial;
- font-weight: initial;
- padding: 0;
- }
- input {
- display: inline-block;
- margin-bottom: 0;
- width: 1rem;
- }
- }
- select {
- max-width: 100%;
- }
-}
diff --git a/assets/scss/admin/modules/_icons.scss b/assets/scss/admin/modules/_icons.scss
deleted file mode 100644
index b937c1072c..0000000000
--- a/assets/scss/admin/modules/_icons.scss
+++ /dev/null
@@ -1,92 +0,0 @@
-/******************************************************************
-
-SVG Styles
-
-******************************************************************/
-
-svg {
- &.icon {
- height: 24px;
- width: 24px;
- display: inline-block;
- fill: currentColor; // Inherit color
- vertical-align: baseline; // Options: baseline, sub, super, text-top, text-bottom, middle, top, bottom
-
- // Different styling for when an icon appears in a button element
- button & {
- height: 18px;
- width: 18px;
- margin: 4px -4px 0 4px;
- filter: drop-shadow( 0 1px #eee );
- float: right;
-
- }&.menu-icon {
- height: 20px;
- width: 20px;
- display: inline-block;
- fill: currentColor;
- vertical-align: text-bottom;
- margin-right: 10px;
-
- }&.tree-icon {
- height: 13px;
- width: 13px;
- vertical-align: middle;
-
- }&.section-icon {
- height: 16px;
- width: 16px;
- vertical-align: text-bottom;
-
- }&.button-icon {
- height: 16px;
- width: 16px;
- vertical-align: text-bottom;
-
- }&.button-icon-attr {
- height: 10px;
- width: 10px;
- vertical-align: middle;
-
- }&.list-icon {
- height: 12px;
- width: 12px;
- vertical-align: middle;
-
- &.on {
- color: $color-blue;
-
- }&.off {
- color: $color-cinder;
- }
-
- }&.detail-icon {
- height: 16px;
- width: 16px;
- vertical-align: text-bottom;
- cursor:default;
-
- &.on {
- color: $color-blue;
-
- }&.off {
- color: $color-lightgrey;
- }
- }
-
- }
-
- &.icon-ion {}
-
- &.icon-ion-edit {}
-
- // rotate for arrow tips
- &.icon-ion-arrow-up {
- transform: rotate(90deg);
- }
-
- use {
- pointer-events: none;
- }
-
-}
\ No newline at end of file
diff --git a/assets/scss/admin/modules/_llms-order-note.scss b/assets/scss/admin/modules/_llms-order-note.scss
deleted file mode 100644
index b055ebb144..0000000000
--- a/assets/scss/admin/modules/_llms-order-note.scss
+++ /dev/null
@@ -1,35 +0,0 @@
-.llms-order-note {
-
- .llms-order-note-content {
- background: #efefef;
- margin-bottom: 10px;
- padding: 10px;
- position: relative;
- &:after {
- border-style: solid;
- border-color: #efefef transparent;
- border-width: 10px 10px 0 0;
- bottom: -10px;
- content: '';
- display: block;
- height: 0;
- left: 20px;
- position: absolute;
- width: 0;
-
- }
- p {
- font-size: 13px;
- margin: 0;
- line-height: 1.5;
- }
- }
-
- .llms-order-note-meta {
- color: #999;
- font-size: 11px;
- margin-left: 10px;
- }
-
-
-}
diff --git a/assets/scss/admin/modules/_mb-tabs.scss b/assets/scss/admin/modules/_mb-tabs.scss
deleted file mode 100644
index d409d9b635..0000000000
--- a/assets/scss/admin/modules/_mb-tabs.scss
+++ /dev/null
@@ -1,58 +0,0 @@
-/******************************************************************
-
-Metabox Tabs
-
-******************************************************************/
-
-// free space up if the metabox is on the side
-#side-sortables .tab-content {
- padding: 0;
-}
-
-.llms-mb-container .tab-content{
- display: none;
- background: $color-white;
- padding: 15px;
-
- ul:not(.select2-selection__rendered) {
- margin: 0;
-
- > li {
- padding: 20px 0;
- margin: 0;
- border-bottom: 1px solid $color-lightgrey;
-
- &.select:not([class*="d-"]) {
- width: 100%;
- }
-
- &:last-child {
- border: 0;
- padding-bottom: 0;
-
- }
-
- &.top {
- border-bottom: 0;
- padding-bottom: 0;
- }
-
- }
- }
-
- .full-width { width: 100%; }
-
- #wp-content-editor-tools {
- background: none;
- }
-
-}
-
-.llms-mb-container .tab-content.llms-active{
- display: inherit;
-}
-
-
-.llms-mb-container .tab-content .no-border {
- border-bottom: 0px;
-}
diff --git a/assets/scss/admin/modules/_merge-codes.scss b/assets/scss/admin/modules/_merge-codes.scss
deleted file mode 100644
index 51a800991b..0000000000
--- a/assets/scss/admin/modules/_merge-codes.scss
+++ /dev/null
@@ -1,61 +0,0 @@
-.button.llms-merge-code-button {
- vertical-align: middle;
- svg {
- margin-right: 2px;
- position: relative;
- top: 4px;
- width: 16px;
- g {
- fill: currentColor;
- }
- }
-}
-
-.llms-mb-container {
- .llms-merge-code-wrapper {
- float: right;
- top: -5px;
- }
-}
-
-.llms-merge-code-wrapper {
- display: inline;
- position: relative;
-}
-
-.llms-merge-codes {
- background: #f7f7f7;
- border: 1px solid #ccc;
- border-radius: 3px;
- box-shadow: 0 1px 0 #ccc;
- color: #555;
- display: none;
- left: 1px;
- overflow: hidden;
- position: absolute;
- top: 30px;
- width: 200px;
-
- ul {
- margin: 0;
- padding: 0;
- }
-
- li {
- cursor: pointer;
- margin: 0;
- padding: 4px 8px !important;
- border-bottom: 1px solid #ccc;
- }
-
- li:hover {
- color: #23282d;
- background: #fefefe;
- }
-
- &.active {
- display: block;
- z-index: 777;
- }
-
-}
diff --git a/assets/scss/admin/modules/_top-modal.scss b/assets/scss/admin/modules/_top-modal.scss
deleted file mode 100644
index 9a118bcebc..0000000000
--- a/assets/scss/admin/modules/_top-modal.scss
+++ /dev/null
@@ -1,203 +0,0 @@
-/******************************************************************
-
-Styles for topModal modal
-
-******************************************************************/
-
-/**
- * Base modal styles
- */
-.topModal {
- display:none;
- position:relative;
- border:4px solid #808080;
- background:#fff;
- z-index:1000001;
- padding:2px;
- max-width:500px;
- margin: 34px auto 0;
- box-sizing: border-box;
- box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
- background-color: #ffffff;
- border-radius: 2px;
- border: 1px solid #dddddd;
-
-}.topModalClose {
- float:right;
- cursor:pointer;
- margin-right: 10px;
- margin-top: 10px;
-
-}.topModalContainer {
- display: none;
- overflow: auto;
- overflow-y: hidden;
- position: fixed;
- top: 0 !important;
- right: 0;
- bottom: 0;
- left: 0;
- -webkit-overflow-scrolling: touch;
- width: auto !important;
- margin-left: 0 !important;
- background-color: transparent !important;
- z-index: 100002 !important;
-
-}.topModalBackground {
- display:none;
- background:#000;
- position:fixed;
- height:100%;
- width:100%;
- top:0 !important;
- left:0;
- margin-left: 0 !important;
- z-index: 100002 !important;
- box-sizing: border-box;
- overflow: auto;
- overflow-y: hidden;
-
-}body.modal-open {
- overflow: hidden;
-
-}.llms-modal-header {
- border-top-right-radius: 1px;
- border-top-left-radius: 1px;
- background: $color-blue;
- color: #eeeeee;
- padding: 10px 15px;
- font-size: 18px;
-
-}#llms-icon-modal-close {
- width:16px;
- height: 16px;
- fill: $color-white;
-
-}.llms-modal-content {
- padding: 20px;
-
- h3 {
- margin-top: 0;
- }
-
-}
-
-/**
- * Custom Modal Styles for LifterLMS
- */
-.llms-modal-form {
-
- h1 {
- margin-top: 0;
- }
-
- input[type=text] {
- width: 100%;
- }
-
- textarea,
- input[type="text"],
- input[type="password"],
- input[type="file"],
- input[type="datetime"],
- input[type="datetime-local"],
- input[type="date"],
- input[type="month"],
- input[type="time"],
- input[type="week"],
- input[type="number"],
- input[type="email"],
- input[type="url"],
- input[type="search"],
- input[type="tel"],
- input[type="color"] {
- padding: 0 .4em 0 .4em;
- margin-bottom: 2em;
- vertical-align: middle;
- border-radius: 3px;
- min-width: 50px;
- max-width: 635px;
- width: 100%;
- min-height: 32px;
- background-color: #fff;
- border: 1px solid $color-lightgrey;
- margin: 0 0 24px 0;
- outline: none;
- transition: border 0.3s ease-in-out 0s;
-
- &:focus {
- background: $color-white;
- border: 1px solid $color-blue;
-
- }
- }
-
- textarea {
- padding: .4em !important;
- height: 100px !important;
- border-radius: 3px;
- vertical-align: middle;
- min-height: 32px;
- outline: none;
- box-sizing: border-box;
-
- &:focus {
- background: $color-white;
- border: 1px solid $color-blue;
-
- }
-
- }
-
- .chosen-container-single .chosen-single {
- border-radius: 3px;
- vertical-align: middle;
- min-height: 32px;
- border: 1px solid $color-lightgrey;
- width: 100%;
- background: $color-white !important;
- outline: none;
- box-sizing: border-box;
- box-shadow: 0 0 0 #fff;
- line-height: 32px;
- margin: 0 0 24px 0;
-
- &:focus {
- background: $color-white;
- border: 1px solid $color-blue;
- }
- }
-
- .chosen-container-single .chosen-single div b {
- margin-top: 4px;
- }
-
- .chosen-search input[type=text] {
- border: 1px solid $color-lightgrey;
-
- &:focus {
- background-color: $color-white;
- border: 1px solid $color-blue;
- }
-
- }
-
- .chosen-container-single .chosen-drop {
- margin-top: -28px;
- }
-
- .llms-button-primary, .llms-button-secondary {
- padding: 10px 10px;
- border-radius: 0;
- transition: .5s;
- box-shadow: 0 1px 1px #ccc;
-
- &.full {
- width: 100%;
- }
- }
-}
-
-.modal-open .select2-dropdown {
- z-index: 1000005;
-}
diff --git a/assets/scss/admin/modules/_voucher.scss b/assets/scss/admin/modules/_voucher.scss
deleted file mode 100644
index 7262f52e43..0000000000
--- a/assets/scss/admin/modules/_voucher.scss
+++ /dev/null
@@ -1,133 +0,0 @@
-a.llms-voucher-delete {
- background: $color-danger;
- color: $color-white;
- display: block;
- padding: 4px 2px;
- text-decoration: none;
- transition: ease .3s all;
-
- &:hover {
- background: #af3a26;
- }
-}
-
-
-
-.llms-voucher-codes-wrapper,
-.llms-voucher-redemption-wrapper {
-
- table {
- width: 100%;
- border-collapse: collapse;
-
- th, td {
- border: none;
- }
-
- thead {
- background-color: $color-blue;
- color:#fff;
- th {
- padding: 10px 10px;
- }
- }
-
- tr {
- counter-increment: row-counter;
- &:nth-child(even) {
- background-color: #F1F1F1;
- }
-
- td {
- padding: 5px;
- &:first-child:before {
- content: counter( row-counter );
- }
- }
- }
- }
-}
-
-.llms-voucher-codes-wrapper {
-
- table {
- width: 100%;
- border-collapse: collapse;
-
- th, td {
- border: none;
- }
-
- thead {
- background-color: $color-blue;
- color:#fff;
- }
-
- tr {
- &:nth-child(even) {
- background-color: #F1F1F1;
- }
-
- td {
-
- span {
- display: inline-block;
- min-width: 30px;
- }
- }
- }
- }
-
- button {
- cursor: pointer;
- }
-
- .llms-voucher-delete {
- float: right;
- margin-right: 15px;
- }
-
- .llms-voucher-uses {
- width: 50px;
- }
-
- .llms-voucher-add-codes {
- float: right;
-
- input[type="text"] {
- width: 30px;
- }
- }
-}
-
-.llms-voucher-export-wrapper {
-
- .llms-voucher-export-type {
- width: 100%;
-
- p {
- margin: 0 0 0 15px;
- }
- }
-
- .llms-voucher-email-wrapper {
- width: 100%;
- margin: 25px 0;
-
- input[type="text"] {
- width: 100%;
- }
-
- p {
- margin: 0;
- }
- }
-
- > button {
- float: right;
- }
-}
-
-.postbox .inside {
- overflow: auto;
-}
diff --git a/assets/scss/admin/modules/_widgets.scss b/assets/scss/admin/modules/_widgets.scss
deleted file mode 100644
index a3ef13b305..0000000000
--- a/assets/scss/admin/modules/_widgets.scss
+++ /dev/null
@@ -1,160 +0,0 @@
-.llms-widget {
- background: $color-white;
- box-sizing: border-box;
- margin-bottom: 20px;
- padding: 10px 20px;
- position: relative;
- width: 100%;
-
- &.alt {
-
- border: 1px solid $color-lightgrey;
- background-color: #efefef;
- margin-bottom: 10px;
-
- .llms-label {
- color: #777;
- font-size: 14px;
- margin-bottom: 10px;
- padding-bottom: 5px;
- }
-
- h2 {
- color: #444;
- font-weight: 300;
- }
-
- }
-
- h1 {
- font-size: 2.4em;
- }
-
- h2 {
- font-size: 1.8em;
- }
-
- .llms-label {
- border-bottom: 1px solid $color-lightgrey;
- box-sizing: border-box;
- color: $color-grey;
- font-size: 18px;
- font-weight: 300;
- letter-spacing: 1px;
- margin: 0 0 15px;
- padding-bottom: 10px;
- text-align: center;
- text-transform: uppercase;
- }
-
- .llms-chart {
- width: 100%;
- padding: 10px;
- box-sizing: border-box;
- }
-
- mark.yes {
- background-color: #7ad03a;
- }
-
- .llms-subtitle {
- margin-bottom: 0;
- }
-
- .spinner {
- float: none;
- left: 50%;
- margin: -10px 0 0 -10px;
- position: absolute;
- top: 50%;
- z-index: 2;
- }
-
- &.is-loading {
-
- &:before {
- background: $color-white;
- bottom: 0;
- content: '';
- left: 0;
- opacity: 0.9;
- position: absolute;
- right: 0;
- top: 0;
- z-index: 1;
- }
-
- .spinner {
- visibility: visible;
- }
-
- }
-
- td[colspan="2"] {
- padding-left: 0;
- }
-
- tr.llms-disabled-field {
- opacity: 0.5;
- pointer-events: none;
- }
-
-}
-
-.llms-widget-1-3,
-.llms-widget-1-4,
-.llms-widget-1-5 {
- text-align: center;
-}
-
-
-.llms-widget {
- .llms-widget-info-toggle {
- color: $color-lightgrey;
- cursor: pointer;
- font-size: 16px;
- position: absolute;
- right: 25px;
- top: 13px;
- }
-
- &.info-showing {
- .llms-widget-info {
- display: block;
- }
- }
-}
-.llms-widget-info {
- background: $color-cinder;
- color: $color-white;
- bottom: -50px;
- display: none;
- padding: 15px;
- position: absolute;
- text-align: center;
- left: 10px;
- right: 15px;
- z-index: 3;
- &:before {
- content: '';
- border: 12px solid transparent;
- border-bottom-color: $color-cinder;
- left: 50%;
- margin-left: -12px;
- position: absolute;
- top: -24px;
- }
-
- p {
- margin: 0;
- }
-
-}
-
-.llms-widget-row {
- @include clearfix();
-}
-
-.llms-widget-row .no-padding {
- padding: 0 !important;
-}
diff --git a/assets/scss/admin/partials/_grid.scss b/assets/scss/admin/partials/_grid.scss
deleted file mode 100644
index add6846568..0000000000
--- a/assets/scss/admin/partials/_grid.scss
+++ /dev/null
@@ -1,276 +0,0 @@
-/******************************************************************
-
-Grids for Breakpoints
-
-******************************************************************/
-
-// using a mixin since we can't use placeholder selectors
-@mixin grid-col {
- float: left;
- padding-right: 0.75em;
- box-sizing: border-box;
-
-}
-
-// the last column
-.last-col {
- float: right;
- padding-right: 0 !important;
-}
-.last-col:after {
- clear: both;
-}
-
-/*
-Mobile Grid Styles
-These are the widths for the mobile grid.
-There are four types, but you can add or customize
-them however you see fit.
-*/
-@media (max-width: 767px) {
-
- .m-all {
- @include grid-col;
- width: 100%;
- padding-right: 0;
- }
-
- .m-1of2 {
- @include grid-col;
- width: 50%;
- }
-
- .m-1of3 {
- @include grid-col;
- width: 33.33%;
- }
-
- .m-2of3 {
- @include grid-col;
- width: 66.66%;
- }
-
- .m-1of4 {
- @include grid-col;
- width: 25%;
- }
-
- .m-3of4 {
- @include grid-col;
- width: 75%;
- }
-
- .m-right {
- text-align: center;
- }
- .m-center {
- text-align: center;
- }
- .m-left {
- text-align: center;
- }
-
- .d-right {
- text-align: right;
- }
- .d-center {
- text-align: center;
- }
- .d-left {
- text-align: left;
- }
-
-} // end mobile styles
-
-
-/* Portrait tablet to landscape */
-@media (min-width: 768px) and (max-width: 1029px) {
-
- .t-all {
- @include grid-col;
- width: 100%;
- padding-right: 0;
- }
-
- .t-1of2 {
- @include grid-col;
- width: 50%;
- }
-
- .t-1of3 {
- @include grid-col;
- width: 33.33%;
- }
-
- .t-2of3 {
- @include grid-col;
- width: 66.66%;
- }
-
- .t-1of4 {
- @include grid-col;
- width: 25%;
- }
-
- .t-3of4 {
- @include grid-col;
- width: 75%;
- }
-
- .t-1of5 {
- @include grid-col;
- width: 20%;
- }
-
- .t-2of5 {
- @include grid-col;
- width: 40%;
- }
-
- .t-3of5 {
- @include grid-col;
- width: 60%;
- }
-
- .t-4of5 {
- @include grid-col;
- width: 80%;
- }
-
- .d-right {
- text-align: right;
- }
- .d-center {
- text-align: center;
- }
- .d-left {
- text-align: left;
- }
-
-} // end tablet
-
-/* Landscape to small desktop */
-@media (min-width: 1030px) {
-
- .d-all {
- @include grid-col;
- width: 100%;
- padding-right: 0;
- }
-
- .d-1of2 {
- @include grid-col;
- width: 50%;
- }
-
- .d-1of3 {
- @include grid-col;
- width: 33.33%;
- }
-
- .d-2of3 {
- @include grid-col;
- width: 66.66%;
- }
-
- .d-1of4 {
- @include grid-col;
- width: 25%;
- }
-
- .d-3of4 {
- @include grid-col;
- width: 75%;
- }
-
- .d-1of5 {
- @include grid-col;
- width: 20%;
- }
-
- .d-2of5 {
- @include grid-col;
- width: 40%;
- }
-
- .d-3of5 {
- @include grid-col;
- width: 60%;
- }
-
- .d-4of5 {
- @include grid-col;
- width: 80%;
- }
-
- .d-1of6 {
- @include grid-col;
- width: 16.6666666667%;
- }
-
- .d-1of7 {
- @include grid-col;
- width: 14.2857142857%;
- }
-
- .d-2of7 {
- @include grid-col;
- width: 28.5714286%;
- }
-
- .d-3of7 {
- @include grid-col;
- width: 42.8571429%;
- }
-
- .d-4of7 {
- @include grid-col;
- width: 57.1428572%;
- }
-
- .d-5of7 {
- @include grid-col;
- width: 71.4285715%;
- }
-
- .d-6of7 {
- @include grid-col;
- width: 85.7142857%;
- }
-
- .d-1of8 {
- @include grid-col;
- width: 12.5%;
- }
-
- .d-1of9 {
- @include grid-col;
- width: 11.1111111111%;
- }
-
- .d-1of10 {
- @include grid-col;
- width: 10%;
- }
-
- .d-1of11 {
- @include grid-col;
- width: 9.09090909091%;
- }
-
- .d-1of12 {
- @include grid-col;
- width: 8.33%;
- }
-
- .d-right {
- text-align: right;
- }
- .d-center {
- text-align: center;
- }
- .d-left {
- text-align: left;
- }
-
-} // end desktop styles
diff --git a/assets/scss/admin/post-tables/_llms_orders.scss b/assets/scss/admin/post-tables/_llms_orders.scss
deleted file mode 100644
index 27bf992fb0..0000000000
--- a/assets/scss/admin/post-tables/_llms_orders.scss
+++ /dev/null
@@ -1,7 +0,0 @@
-.wp-list-table {
- @include order_status_badges();
-}
-
-#lifterlms-order-transactions .llms-table tfoot th {
- text-align: right;
-}
diff --git a/assets/scss/admin/post-tables/_post-tables.scss b/assets/scss/admin/post-tables/_post-tables.scss
deleted file mode 100644
index f3843b0916..0000000000
--- a/assets/scss/admin/post-tables/_post-tables.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-.llms-post-table-post-filter {
- display: inline-block;
- margin-right: 6px;
- max-width: 100%;
- width: 220px;
-}
diff --git a/assets/scss/builder.scss b/assets/scss/builder.scss
deleted file mode 100644
index f6341b9f07..0000000000
--- a/assets/scss/builder.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-@import "_includes/vars";
-@import "_includes/vars-brand-colors";
-@import "_includes/extends";
-@import "_includes/mixins";
-
-@import "admin/course-builder";
diff --git a/assets/scss/certificates.scss b/assets/scss/certificates.scss
deleted file mode 100644
index 8a1673d892..0000000000
--- a/assets/scss/certificates.scss
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * Reset.
- */
-body {
- background-color: #fff;
- background-image: none;
- margin: 0 auto;
-}
-
-.header, .footer,
-.wrap-header, .wrap-footer,
-.site-header, .site-footer,
-.nav-primary, .primary-nav {
- display: none;
-}
-
-.llms-certificate-container {
- margin: 40px auto 0;
-}
-
-/**
- * Legacy Template.
- */
-.llms-certificate-container:not(.cert-template-v2) {
-
- padding: 0;
- overflow: hidden;
-
- .certificate-background {
- position: relative;
- z-index: 1;
- width: 100%;
- display: block;
- }
-
- .llms_certificate,
- .llms_my_certificate {
- margin: 80px;
- position: relative;
- z-index: 2;
- }
-
- h1:first-child {
- text-align: center;
- }
-
-}
-
-/**
- * V2 Template
- */
-.llms-certificate-wrapper {
- margin: 0 auto;
-}
-.llms-certificate-container.cert-template-v2 {
- width: 100%;
- height: 100%;
- background-size: 100% 100% !important;
- box-sizing: border-box;
-
- .wp-block-columns .wp-block-column > * {
- margin-top: 0 !important;
- margin-bottom: 0 !important;
- }
-}
-
-/**
- * Certificate Actions Footer.
- */
-.llms-print-certificate {
- margin-top: 40px;
- margin-bottom: 40px;
- text-align: center;
-
- form {
- display: inline;
- }
-}
-
-
-
-@media print {
-
- html, body {
- color-adjust: exact !important;
- height: 100%;
- overflow: hidden;
- }
-
- @page { size: auto; }
-
- .no-print {
- display: none;
- }
-
- // Make everything on the page invisible.
- body * {
- visibility: hidden !important;
- background: #fff none;
- }
-
- .site, .site-content {
- overflow: visible;
- }
-
- // Remove all headers, menus and footers.
- header, aside, nav, footer {
- display: none !important;
- }
-
- // Make sure a .container parent doesn't shift the certificate see: https://github.com/gocodebox/lifterlms/issues/1163.
- .single-llms_my_certificate .container,
- .single-llms_certificate .container {
- width: 100%;
- }
-
- // Make only the certificate container and its children visible.
- .llms-certificate-container,
- .llms-certificate-container * {
- visibility: visible !important;
- background: transparent none;
- }
-
- // Position certificate absolutely and center horizontally.
- .llms-certificate-container:not(.cert-template-v2) {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- margin: 0 auto;
- background: #fff none;
- }
-
- .llms-certificate-container.cert-template-v2 {
- margin: 0 auto !important;
- color-adjust: exact !important;
- transform: scale( 0.95 ); // Don't ram the edge of the paper.
- }
-
-}
diff --git a/assets/scss/frontend/_checkout.scss b/assets/scss/frontend/_checkout.scss
deleted file mode 100644
index 1ac62a5fbe..0000000000
--- a/assets/scss/frontend/_checkout.scss
+++ /dev/null
@@ -1,184 +0,0 @@
-.llms-checkout-wrapper {
- form.llms-login {
- border: 3px solid $color-brand-blue;
- display: none;
- margin-bottom: 10px;
- }
- .llms-form-heading {
- background: $color-brand-blue;
- color: #fff;
- margin: 0 0 5px;
- padding: 10px;
- }
-}
-
-.llms-checkout {
- background: #fff;
- position: relative;
-}
-
-.llms-checkout-cols-2 {
- @extend %clearfix;
-
- @media all and (min-width: 800px) {
-
- .llms-checkout-col {
- float: left;
-
- &.llms-col-1 {
- margin-right: 5px;
- width: calc( 58% - 5px );
- }
- &.llms-col-2 {
- margin-left: 5px;
- width: calc( 42% - 5px );
-
- button {
- width: 100%;
- }
- }
- }
-
- }
-
-}
-
- .llms-checkout-section {
- border: 3px solid $color-brand-blue;
- margin-bottom: 10px;
- position: relative;
- }
-
- .llms-checkout-section-content {
- margin: 10px;
- &.llms-form-fields {
- margin: 0px;
- }
-
- .llms-label {
- font-weight: 400;
- font-variant: small-caps;
- text-transform: lowercase;
- }
-
- .llms-order-summary {
- list-style-type: none;
- margin: 0;
- padding: 0;
-
- li { list-style-type: none; }
-
- li.llms-pricing {
- &.on-sale,
- &.has-coupon {
- .price-regular { text-decoration: line-through; }
- }
- }
-
-
- }
-
- .llms-coupon-wrapper {
- border-top: 1px solid #dadada;
- margin-top: 10px;
- padding-top: 10px;
-
- .llms-coupon-entry {
- display: none;
- margin-top: 10px;
- }
- }
-
- }
-
- .llms-form-field.llms-payment-gateway-option {
-
- label + span.llms-description {
- display: inline-block;
- margin-left: 5px;
- }
-
- .llms-description {
- a {
- border: none;
- box-shadow: none;
- text-decoration: none;
- }
- img {
- display: inline;
- max-height: 22px;
- vertical-align: middle;
- }
- }
-
- }
-
- .llms-checkout-wrapper ul.llms-payment-gateways {
- margin: 5px 0 0;
- padding: 0;
- }
- ul.llms-payment-gateways {
- list-style-type: none;
-
- li:last-child:after {
- border-bottom: 1px solid #dadada;
- content: '';
- display: block;
- margin: 10px;
- }
-
- .llms-payment-gateway {
- margin-bottom: 5px;
- list-style-type: none;
- &:last-child {
- margin-bottom: none;
- }
-
- &.is-selected {
- .llms-payment-gateway-option label {
- font-weight: 700;
- }
- .llms-gateway-fields {
- display: block;
-
- .llms-notice {
- margin-left: 10px;
- margin-right: 10px;
- }
- }
- }
-
- .llms-form-field {
- padding-bottom: 0;
- }
- }
-
- .llms-gateway-description {
- margin-left: 40px;
- }
-
- .llms-gateway-fields {
- display: none;
- margin: 5px 0 20px;
- }
-
- .llms-payment-gateway-error {
- padding: 0 10px;
- }
- }
-
- .llms-checkout-confirm {
- margin: 0 10px;
- }
-
- .llms-payment-method {
- margin: 10px 10px 0;
- }
-
- .llms-gateway-description {
- p {
- font-size: 85%;
- font-style: italic;
- margin-bottom: 0;
- }
- }
diff --git a/assets/scss/frontend/_course.scss b/assets/scss/frontend/_course.scss
deleted file mode 100644
index 2296f78086..0000000000
--- a/assets/scss/frontend/_course.scss
+++ /dev/null
@@ -1,21 +0,0 @@
-.course {
- .llms-meta-info {
- margin: 20px 0;
- .llms-meta-title {
- margin-bottom: 5px;
- }
- .llms-meta {
- p {
- margin-bottom: 0;
- }
- span {
- font-weight: 700;
- }
- }
- }
- .llms-course-progress {
- margin: 40px auto;
- max-width: 480px;
- text-align: center;
- }
-}
diff --git a/assets/scss/frontend/_llms-access-plans.scss b/assets/scss/frontend/_llms-access-plans.scss
deleted file mode 100644
index 59a67b73b6..0000000000
--- a/assets/scss/frontend/_llms-access-plans.scss
+++ /dev/null
@@ -1,192 +0,0 @@
-.llms-access-plans {
- @extend %clearfix;
-
- @media all and (min-width: 600px) {
- $cols: 1;
- @while $cols <= 5 {
- &.cols-#{$cols} .llms-access-plan {
- width: calc( 100% / $cols );
- }
- $cols: $cols + 1;
- }
- }
-
-}
-
-.llms-free-enroll-form {
- margin-bottom: 0;
-}
-
-.llms-access-plan {
- box-sizing: border-box;
- float: left;
- text-align: center;
- width: 100%;
-
- .llms-access-plan-footer,
- .llms-access-plan-content {
- background: #f1f1f1;
- }
-
- &.featured {
-
- .llms-access-plan-featured {
- background: lighten( $color-brand-blue, 8 );
- }
-
- .llms-access-plan-footer,
- .llms-access-plan-content {
- border-left: 3px solid $color-brand-blue;
- border-right: 3px solid $color-brand-blue;
- }
-
- .llms-access-plan-footer {
- border-bottom-color: $color-brand-blue;
- }
-
- }
-
- &.on-sale {
- .price-regular { text-decoration: line-through; }
- }
-
- .stamp {
- background: $color-brand-blue;
- color: #fff;
- font-size: 11px;
- font-style: normal;
- font-weight: 300;
- padding: 2px 3px;
- vertical-align: top;
- }
-
- .llms-access-plan-restrictions ul { margin: 0; }
-
-}
- .llms-access-plan-featured {
- color: #fff;
- font-size: 14px;
- font-weight: 400;
- margin: 0 2px 0 2px;
- }
-
- .llms-access-plan-content {
- margin: 0 2px 0;
-
- .llms-access-plan-pricing {
- padding: 10px 0 0;
- }
- }
-
- .llms-access-plan-title {
- background: $color-brand-blue;
- color: #fff;
- margin-bottom: 0;
- padding: 10px;
- }
-
- .llms-access-plan-pricing {
-
- .llms-price-currency-symbol {
- font-size: 14px;
- vertical-align: top;
- }
-
- }
-
- .llms-access-plan-price {
- font-size: 18px;
- font-variant: small-caps;
- line-height: 20px;
-
- .lifterlms-price {
- font-weight: 700;
- }
-
- &.sale {
- padding: 5px 0;
- border-top: 1px solid #d0d0d0;
- border-bottom: 1px solid #d0d0d0;
- }
- }
-
- .llms-access-plan-trial,
- .llms-access-plan-schedule,
- .llms-access-plan-sale-end,
- .llms-access-plan-expiration {
- font-size: 15px;
- font-variant: small-caps;
- line-height: 1.2;
- }
-
- .llms-access-plan-description {
- font-size: 16px;
- padding: 10px 10px 0;
-
- ul {
- margin: 0;
- li {
- border-bottom: 1px solid #d0d0d0;
- list-style-type: none;
- &:last-child {
- border-bottom: none;
- }
- }
- }
-
- div, img, p, ul, li {
- &:last-child { margin-bottom: 0; }
- }
- }
-
- .llms-access-plan-restrictions {
- .stamp {
- vertical-align: baseline;
- }
- ul {
- margin: 0;
- li {
- font-size: 12px;
- line-height: 14px;
- list-style-type: none;
- }
- }
- a {
- color: $color-brand-orange;
- &:hover {
- color: $color-brand-orange-dark;
- }
- }
- }
-
- .llms-access-plan-footer {
- border-bottom: 3px solid #f1f1f1;
- padding: 10px;
- margin: 0 2px 2px 2px;
-
- .llms-access-plan-pricing {
- padding: 0 0 10px;
- }
- }
-
-
-.webui-popover-content .llms-members-only-restrictions {
- text-align: center;
- ul,ol,li,p {
- margin: 0;
- padding: 0;
- }
- ul,ol,li {
- list-style-type: none;
- }
- li {
- padding: 8px 0;
- border-top: 1px solid #3b3b3b;
- &:first-child {
- border-top: none;
- }
- a {
- display: block;
- }
- }
-}
diff --git a/assets/scss/frontend/_llms-achievements-certs.scss b/assets/scss/frontend/_llms-achievements-certs.scss
deleted file mode 100644
index 61e4e266be..0000000000
--- a/assets/scss/frontend/_llms-achievements-certs.scss
+++ /dev/null
@@ -1,106 +0,0 @@
-ul.llms-achievements-loop,
-.lifterlms ul.llms-achievements-loop,
-ul.llms-certificates-loop,
-.lifterlms ul.llms-certificates-loop {
-
- @include clearfix();
- list-style-type: none;
- margin: 0 -10px;
- padding: 0;
-
- li.llms-achievement-loop-item,
- li.llms-certificate-loop-item {
- box-sizing: border-box;
- display: block;
- float: left;
- list-style-type: none;
- margin: 0;
- padding: 10px;
- width: 100%;
- }
-
- @media all and (min-width: 600px) {
- $cols: 1;
- @while $cols <= 5 {
- &.loop-cols-#{$cols} li.llms-achievement-loop-item,
- &.loop-cols-#{$cols} li.llms-certificate-loop-item {
- width: calc( 100% / $cols );
- }
- $cols: $cols + 1;
- }
- }
-
-}
-
-.llms-achievement,
-.llms-certificate {
-
- background: #f1f1f1;
- border: none;
- color: inherit;
- display: block;
- text-decoration: none;
- width: 100%;
-
- &:hover {
- background: #eaeaea;
- }
-
- .llms-achievement-img {
- display: block;
- margin: 0;
- width: 100%;
- }
-
- .llms-achievement-title {
- font-size: 16px;
- margin: 0;
- padding: 10px;
- text-align: center;
- }
-
- .llms-certificate-title {
- font-size: 16px;
- margin: 0;
- padding: 0 0 10px;
- }
-
- .llms-achievement-info,
- .llms-achievement-date {
- display: none;
- }
-
- .llms-achievement-content {
- padding: 20px;
- &:empty {
- padding: 0;
- }
- *:last-child {
- margin-bottom: 0;
- }
- }
-
-}
-
-.llms-certificate {
- border: 4px double #f1f1f1;
- padding: 20px 10px;
- background: #fff;
- text-align: center;
- &:hover {
- background: #fff;
- border-color: #eaeaea;
- }
-}
-
-.llms-achievement-modal {
- .llms-achievement {
- background: #fff;
- }
- .llms-achievement-info {
- display: block;
- }
- .llms-achievement-title {
- display: none;
- }
-}
diff --git a/assets/scss/frontend/_llms-author.scss b/assets/scss/frontend/_llms-author.scss
deleted file mode 100644
index 5f92792c91..0000000000
--- a/assets/scss/frontend/_llms-author.scss
+++ /dev/null
@@ -1,62 +0,0 @@
-.llms-author {
- .name {
- margin-left: 5px;
- }
- .label {
- margin-left: 5px;
- }
- .avatar {
- border-radius: 50%;
- }
- .bio {
- margin-top: 5px;
- }
-}
-
-
-.llms-instructor-info {
- .llms-instructors {
-
- .llms-col {
- &:first-child .llms-author {
- margin-left: 0;
- }
- &:last-child .llms-author {
- margin-right: 0;
- }
- }
-
- .llms-author {
-
- background: #f5f5f5;
- border-top: 4px solid $color-brand-blue;
- text-align: center;
- margin: 45px 5px 5px;
- padding: 0 10px 10px;
-
- .avatar {
- background: $color-brand-blue;
- border: 4px solid $color-brand-blue;
- display: block;
- margin: -35px auto 10px;
- }
-
- .llms-author-info {
- display: block;
- // margin: 0 0 5px;
- &.name {
- font-weight: 700;
- }
- &.label {
- font-size: 85%;
- }
- &.bio {
- font-size: 90%;
- margin-bottom: 0;
- }
- }
- }
-
- }
-
-}
diff --git a/assets/scss/frontend/_llms-notifications.scss b/assets/scss/frontend/_llms-notifications.scss
deleted file mode 100644
index 5fae61fec2..0000000000
--- a/assets/scss/frontend/_llms-notifications.scss
+++ /dev/null
@@ -1,204 +0,0 @@
-.llms-notification {
-
- @include clearfix();
-
- background: #fff;
- box-shadow: 0 1px 2px -2px #333, 0 1px 1px -1px #333;
- border-top: 4px solid $color-blue;
- left: 12px;
- opacity: 0;
- padding: 12px;
- position: fixed;
- right: 12px;
- top: 24px;
- transition:
- opacity 0.4s ease-in-out,
- right 0.4s ease-in-out,
- ;
- visibility: none;
- width: auto;
- z-index: 9999999;
-
- &.visible {
- opacity: 1;
- transition:
- opacity 0.4s ease-in-out,
- right 0.4s ease-in-out,
- top 0.1s ease-in-out,
- background 0.2s ease-in-out,
- transform 0.2s ease-in-out
- ;
- visibility: visible;
-
- &:hover {
- .llms-notification-dismiss {
- opacity: 1;
- }
- }
-
- }
-
- .llms-notification-content {
- align-items: center;
- display: flex;
-
- }
-
- .llms-notification-main {
- align-self: flex-start;
- flex: 4;
- order: 2;
- }
-
- .llms-notification-title {
- font-size: 18px;
- margin: 0;
- }
-
- .llms-notification-body {
- font-size: 14px;
- line-height: 1.4;
- p, li {
- font-size: inherit;
- }
- p {
- margin-bottom: 8px;
- }
-
- .llms-mini-cert {
- background: #f6f6f6;
- border: 1px solid #d0d0d0;
- box-shadow: inset 0 0 0 3px #fefefe, inset 0 0 0 4px #dedede;
- padding: 16px 16px 24px;
- margin-top: 12px;
- .llms-mini-cert-title {
- font-size: 16px;
- font-weight: 700;
- margin: 12px auto;
- text-align: center;
- }
- .llms-mini-cert--body {
- width: 100%;
- > div {
- &:nth-child(1) { width:65%; }
- &:nth-child(2) { width:35%; }
- &:nth-child(3) { width:85%; }
- &:nth-child(4) { width:75%; margin-top: 18px; }
- &:nth-child(5) { width:70%; }
- &:nth-child(6) { margin-left: 12px; margin-bottom:-24px; } // Dot.
- &:nth-child(7) { width:65%; margin-right: 12px; }
- }
- }
- .llms-mini-cert--mock-line {
- border-radius: 2px;
- height: 8px;
- background: #b0b0b0;
- background-image: linear-gradient( to right, #b0b0b0 0%, #a0a0a0 20%, #b0b0b0 40%, #b0b0b0 100% );
- background-repeat: no-repeat;
- margin: 4px auto;
- }
- .llms-mini-cert--mock-dot {
- background: #b0b0b0;
- border-radius: 50%;
- display: inline-block;
- content: '';
- height: 24px;
- width: 24px;
- }
- p { margin-bottom: 0; }
- }
- }
-
- .llms-notification-aside {
- align-self: flex-start;
- flex: 1;
- margin-right: 12px;
- order: 1;
- }
-
- .llms-notification-icon {
- display: block;
- max-width: 64px;
- }
-
- .llms-notification-footer {
- border-top: 1px solid #e5e5e5;
- font-size: 12px;
- margin-top: 12px;
- padding: 6px 6px 0;
- text-align: right;
- }
-
- .llms-notification-dismiss {
- color: $color-danger;
- cursor: pointer;
- font-size: 22px;
- position: absolute;
- right: 10px;
- top: 8px;
- transition: opacity 0.4s ease-in-out;
- }
-
-}
-
-.llms-sd-notification-center {
-
- .llms-notification-list,
- .llms-notification-list-item {
- list-style-type: none;
- margin: 0;
- padding: 0;
- }
-
- .llms-notification-list-item {
- &:hover .llms-notification {
- background: #fcfcfc;
- }
- }
-
- .llms-notification {
- opacity: 1;
- border-top: 1px solid #e5e5e5;
- left: auto;
- padding: 24px;
- position: relative;
- right: auto;
- top: auto;
- visibility: visible;
- width: auto;
- .llms-notification-aside {
- max-width: 64px;
- }
- .llms-notification-footer {
- border: none;
- padding: 0;
- text-align: left;
- }
- .llms-progress {
- display: none !important;
- }
- .llms-notification-date {
- color: #515151;
- float: left;
- margin-right: 6px;
- }
- .llms-mini-cert {
- margin: 0 auto;
- max-width: 380px;
- }
- }
-}
-
-@media all and (min-width: 480px) {
- .llms-notification {
- left: auto;
- right: -800px;
- width: 360px;
- &.visible {
- right: 24px;
- }
- .llms-notification-dismiss {
- opacity: 0;
- }
- }
-}
diff --git a/assets/scss/frontend/_llms-outline-collapse.scss b/assets/scss/frontend/_llms-outline-collapse.scss
deleted file mode 100644
index ad109277a6..0000000000
--- a/assets/scss/frontend/_llms-outline-collapse.scss
+++ /dev/null
@@ -1,39 +0,0 @@
-.llms-widget-syllabus--collapsible {
-
- .llms-section {
-
- .section-header {
-
- cursor: pointer;
-
- }
-
- &.llms-section--opened {
-
- .llms-collapse-caret {
- .fa-caret-right { display: none; }
- }
-
- }
-
- &.llms-section--closed {
-
- .llms-collapse-caret {
- .fa-caret-down { display: none; }
- }
-
- .llms-lesson {
- display: none;
- }
-
- }
-
- }
-
- .llms-syllabus-footer {
-
- text-align: left;
-
- }
-
-}
diff --git a/assets/scss/frontend/_llms-pagination.scss b/assets/scss/frontend/_llms-pagination.scss
deleted file mode 100644
index d0585c70a2..0000000000
--- a/assets/scss/frontend/_llms-pagination.scss
+++ /dev/null
@@ -1,29 +0,0 @@
-.llms-pagination {
-
- ul {
- list-style-type: none;
- @extend %cf;
-
- li {
-
- float: left;
-
- a {
- border-bottom: 0;
- text-decoration: none;
- }
-
- .page-numbers {
- padding: 0.5em;
- text-decoration: underline;
-
- &.current {
- text-decoration: none;
- }
- }
-
- }
-
- }
-
-}
\ No newline at end of file
diff --git a/assets/scss/frontend/_llms-progress.scss b/assets/scss/frontend/_llms-progress.scss
deleted file mode 100644
index a43869179d..0000000000
--- a/assets/scss/frontend/_llms-progress.scss
+++ /dev/null
@@ -1,32 +0,0 @@
-/* progress bar */
-.llms-progress {
- clear: both;
- display: flex;
- flex-direction: row-reverse;
- position: relative;
- height: 1em;
- width: 100%;
- margin: 15px 0;
-}
-
-.llms-progress .llms-progress-bar {
- background-color: #f1f2f1;
- position: relative;
- height: .4em;
- top: .3em;
- width: 100%;
-}
-
-.llms-progress .progress-bar-complete {
- background-color: $color-brand-pink;
- height: 100%;
-}
-
-.progress__indicator {
- float: right;
- text-align: right;
- height: 1em;
- line-height: 1em;
- margin-left: 5px;
- white-space: nowrap;
-}
diff --git a/assets/scss/frontend/_llms-quizzes.scss b/assets/scss/frontend/_llms-quizzes.scss
deleted file mode 100644
index c2dccaac70..0000000000
--- a/assets/scss/frontend/_llms-quizzes.scss
+++ /dev/null
@@ -1,345 +0,0 @@
-.single-llms_quiz {
-
- @import "../_includes/quiz-result-question-list";
-
- .llms-return {
- margin-bottom: 10px;
- }
-
- .llms-quiz-results {
- @include clearfix();
-
- .llms-donut {
- &.passing {
- color: $color-success;
- svg path {
- stroke: $color-success;
- }
- }
- &.pending {
- color: #555;
- svg path {
- stroke: #555;
- }
- }
- &.failing {
- color: $color-danger;
- svg path {
- stroke: $color-danger;
- }
- }
- }
-
- .llms-quiz-results-aside,
- .llms-quiz-results-main,
- .llms-quiz-results-history {
- margin-bottom: 20px;
- }
-
-
- @media all and (min-width: 600px) {
- .llms-quiz-results-aside {
- float: left;
- width: 220px;
- }
- .llms-quiz-results-main,
- .llms-quiz-results-history {
- float: left;
- width: calc( 100% - 300px );
- }
- }
-
- }
-
- ul.llms-quiz-meta-info,
- ul.llms-quiz-meta-info li {
- list-style-type: none;
- margin: 0;
- padding: 0
- }
-
- ul.llms-quiz-meta-info {
- margin-bottom: 10px;
- }
-
- .llms-quiz-buttons {
- margin-top: 10px;
- text-align: left;
-
- form { display: inline-block; }
- }
-
-}
-
-.llms-quiz-question-wrapper {
- min-height: 140px;
- position: relative;
- .llms-quiz-loading {
- bottom: 20px;
- left: 0;
- position: absolute;
- right: 0;
- text-align: center;
- z-index: 1;
- }
-}
-
-.llms-quiz-ui {
- background: #fcfcfc;
- padding: 20px;
- position: relative;
-
- .llms-quiz-header {
- align-items: center;
- display: flex;
- margin: 0 0 30px;
- }
-
- .llms-progress {
- background-color: #f1f2f1;
- flex-direction: row;
- height: 8px;
- margin: 0;
- overflow: hidden;
- .progress-bar-complete {
- transition: width 0.3s ease-in;
- width: 0;
- }
- }
-
- .llms-error {
- @include clearfix();
- background: $color-danger;
- border-radius: 4px;
- color: #fff;
- margin: 10px 0;
- padding: 10px;
-
- a {
- color: rgba( #fff, 0.6 );
- float: right;
- font-size: 22px;
- line-height: 1;
- text-decoration: none;
- }
-
- }
-
- .llms-quiz-counter {
- display: none;
-
- color: #6a6a6a;
- float: right;
- font-size: 18px;
-
- .llms-sep {
- margin: 0 5px;
- }
- }
-
- .llms-quiz-nav {
- margin-top: 20px;
- button {
- margin: 0 10px 0 0;
- }
- }
-
-}
-
-// single question wrapper
-.llms-question-wrapper {
-
- .llms-question-text {
- font-size: 30px;
- font-weight: 400;
- margin-bottom: 15px;
- }
-
- ol.llms-question-choices {
- list-style-type: none;
- margin: 0;
- padding: 0;
-
- li.llms-choice {
- border-bottom: 1px solid #e8e8e8;
- margin: 0;
- padding: 0;
- position: relative;
-
- &:last-child {
- border-bottom: none;
- }
-
- &.type--picture {
- border-bottom: none;
- label {
- display: inline-block;
- padding: 0;
- }
- .llms-marker {
- bottom: 10px;
- margin: 0;
- position: absolute;
- right: 10px;
- }
- .llms-choice-image {
- margin: 2px;
- padding: 20px;
- transition: background 0.4s ease;
- img {
- display: block;
- width: 100%;
- }
- }
- input:checked ~ .llms-choice-image {
- background: #efefef
- }
- }
-
- input {
- display: none;
- left: 0;
- pointer-events: none;
- position: absolute;
- top: 0;
- visibility: hidden;
- }
-
- label {
- display: block;
- margin: 0;
- padding: 10px 20px;
- position: relative;
- // &:hover {
- &.hovered {
- .llms-marker:not(.type--lister) {
- .iterator {
- display: none;
- }
- .fa {
- display: inline;
- }
- }
- }
- }
-
- .llms-marker {
-
- background: #f0f0f0;
- display: inline-block;
- font-size: 20px;
- height: 40px;
- line-height: 40px;
- margin-right: 10px;
- text-align: center;
- transition: all 0.2s ease;
- vertical-align: middle;
- width: 40px;
-
- .fa {
- display: none;
- }
-
- &.type--lister,
- &.type--checkbox { border-radius: 4px; }
- &.type--radio { border-radius: 50%; }
-
- }
-
- input:checked + .llms-marker {
- background: $color-brand-pink;
- color: #fff;
- .iterator {
- display: none;
- }
- .fa {
- display: inline;
- }
- }
-
- .llms-choice-text {
- display: inline-block;
- font-size: 18px;
- font-weight: 400;
- line-height: 1.6;
- margin-bottom: 0;
- vertical-align: middle;
- width: calc( 100% - 60px );
- }
-
- }
- }
-
-}
-
-.llms-quiz-timer {
- background: #fff;
- border: 1px solid $color-green;
- border-radius: 4px;
- color: $color-green;
- float: right;
- font-size: 18px;
- line-height: 1;
- margin-left: 20px;
- padding: 8px 12px;
- position: relative;
- white-space: nowrap;
- z-index: 1;
-
- &.color-half {
- border-color: $color-orange;
- color: $color-orange
- }
-
- &.color-empty {
- border-color: $color-danger;
- color: $color-danger
- }
-
- .llms-tiles {
- display: inline-block;
- margin-left: 5px;
- }
-}
-
-
-// /* My Quizzes */
-// .llms-quiz-results {
-// @extend %cf;
-// font-family: "Open Sans",Verdana,Geneva,sans-serif,sans-serif;
-// position: relative;
-// }
-// .llms-quiz-results > h3 {
-// background-color: #f5f5f5;
-// padding: 4px;
-// }
-
-// .llms-quiz-result-details {
-// float: left;
-// ul {
-// list-style-type: none;
-// float: left;
-// li {
-// list-style-type: none;
-// font-size: 20px;
-// }
-// }
-// }
-// .llms-attempts {
-// font-weight: bold;
-// }
-
-// .llms-pass-perc {
-// font-weight: bold;
-// }
-// .llms-content-block {
-// margin: 6px 0;
-// }
-// .llms-question-wrapper {
-// margin: 40px 0 20px 0;
-// }
-// .llms-question-count {
-// margin-bottom: 20px;
-// }
-
-
diff --git a/assets/scss/frontend/_llms-table.scss b/assets/scss/frontend/_llms-table.scss
deleted file mode 100644
index 5eb2234cd1..0000000000
--- a/assets/scss/frontend/_llms-table.scss
+++ /dev/null
@@ -1,59 +0,0 @@
-.llms-table {
- border: 1px solid #efefef;
- width: 100%;
-
- thead {
- th,td {
- font-weight: 700;
- }
- }
-
- tbody {
- tr:nth-child( odd ) {
- td, th {
- background: #f9f9f9;
- }
- }
- tr:last-child {
- border-bottom-width: 0;
- }
- }
-
- tfoot {
- tr {
- background: #f9f9f9;
- .llms-pagination .page-numbers {
- margin: 0;
- }
- .llms-table-sort {
- text-align: right;
- form, select, input, button {
- margin: 0;
- }
- }
- }
- }
-
- th {
- font-weight: 700;
- }
-
- th, td {
- border-bottom: 1px solid #efefef;
- padding: 8px 12px;
-
- // launchpad compat...
- &:first-child { padding-left: 12px; }
- &:last-child { padding-right: 12px; }
-
- }
-
-}
-
-// launchpad compat...
-#page .llms-table tfoot label {
- display: inline;
-}
-#page .llms-table tfoot select {
- height: auto;
-}
diff --git a/assets/scss/frontend/_loop.scss b/assets/scss/frontend/_loop.scss
deleted file mode 100644
index 827f30715c..0000000000
--- a/assets/scss/frontend/_loop.scss
+++ /dev/null
@@ -1,263 +0,0 @@
-.llms-loop-list {
- @extend %clearfix;
-
- list-style: none;
- margin: 0 -10px;
- padding: 0;
-
- @media all and (min-width: 600px) {
- $cols: 1;
- @while $cols <= 6 {
- &.cols-#{$cols} .llms-loop-item {
- width: calc( 100% / $cols );
- }
- $cols: $cols + 1;
- }
- }
-
-
-}
-
-.llms-loop-item {
- float: left;
- list-style: none;
- margin: 0;
- padding: 0;
- width: 100%;
-}
-
-
- .llms-loop-item-content {
- background: #f1f1f1;
- padding-bottom: 10px;
- margin: 10px;
-
- &:hover {
- background: #eaeaea;
- }
-
- .llms-loop-link {
- color: #212121;
- display: block;
- &:visited {
- color: #212121;
- }
- }
-
- .llms-featured-image {
- display: block;
- max-width: 100%;
- }
-
- .llms-loop-title {
- margin-top: 5px;
- &:hover {
- color: $color-brand-blue;
- }
- }
-
- .llms-meta,
- .llms-author,
- .llms-loop-title {
- padding: 0 10px;
- }
-
- .llms-meta,
- .llms-author {
- color: #444;
- display: block;
- font-size: 13px;
- margin-bottom: 3px;
- &:last-child {
- margin-bottom: 0;
- }
- }
-
- .llms-featured-img-wrap {
- overflow: hidden;
- }
-
- p {
- margin-bottom: 0;
- }
-
- .llms-progress {
- margin: 0;
- height: .4em;
-
- .progress__indicator {
- display: none;
- }
-
- .llms-progress-bar {
- background-color: #f6f6f6;
- right: 0;
- top: 0;
- }
- }
-
- }
-
-
-
-// .llms-membership-list .memberships {
-// border-top: 1px solid #f6f6f6;
-// width: 100%;
-// display: inline-block;
-// text-align: center;
-// list-style: none;
-// clear: both;
-// margin: 0;
-// padding: 0;
-// }
-
-
-
-// .llms-course-list {
-
-// .llms-membership-link {
-// @extend %llms-element;
-
-// display: block
-// }
-
-// .llms-membership-footer {
-// border-top: 3px solid $color-white;
-// margin: 15px -15px 0;
-// padding: 15px 15px 0;
-// text-align: center;
-// }
-
-// }
-
-
-
-
-// .llms-membership-list .memberships li {
-// width: 300px;
-// margin: 15px;
-// list-style: none;
-// vertical-align: top;
-// display: inline-block;
-// text-align: left;
-// }
-
-// .llms-membership-list .memberships li.first {
-// margin-left: 0;
-// }
-
-// .llms-membership-list .memberships li.last {
-// margin-right: 15px;
-// }
-
-// .llms-membership-list .memberships li .llms-title {
-// display: block;
-// font-weight: 700;
-// margin-bottom: .5em;
-// font-size: 18px;
-// text-decoration: none;
-// line-height: 30px;
-// }
-
-// .llms-membership-list .memberships li .llms-price {
-// display: block;
-// font-weight: 700;
-// // margin-bottom: .5em;
-// // font-size: 24px;
-// text-decoration: none;
-// line-height: 30px;
-// }
-
-// .llms-course-list {
-// //margin: 30px 0;
-// padding: 30px;
-// //background: #FFF;
-// // border-radius: 2px;
-// display: inline-block;
-// width: 100%;
-// box-sizing: border-box;
-
-// .llms-course-link {
-// @extend %llms-element;
-
-// display: block
-// }
-
-// .llms-course-footer {
-// border-top: 3px solid $color-white;
-// margin: 15px -15px 0;
-// padding: 15px 15px 0;
-// text-align: center;
-// }
-
-// .llms-progress {
-// margin-top: 0;
-// // .progress-bar {
-// // background-color: $color-white;
-// // }
-// }
-
-// }
-
-// .llms-course-list .courses {
-// //border-top: 1px solid #f6f6f6;
-// width: 100%;
-// display: inline-block;
-// text-align: center;
-// list-style: none;
-// clear: both;
-// margin: 0;
-// padding: 0;
-// }
-
-// .llms-course-list .courses li {
-// width: 300px;
-// padding-top: 0; // twentyfifteen compat
-// margin: 15px;
-// list-style: none;
-// vertical-align: top;
-// display: inline-block;
-// text-align: left;
-// }
-// @media screen and (max-width: $break-small) {
-// .llms-course-list {
-// padding: 30px 10px;
-
-// .courses li {
-// width: auto;
-// }
-// }
-// }
-
-// // .llms-course-list .courses li.first {
-// // margin-left: 0;
-// // }
-
-// .llms-course-list .courses li.last {
-// margin-right: 15px;
-// }
-
-// .llms-course-list .courses li .llms-title {
-// display: block;
-// font-weight: 700;
-// margin-bottom: .5em;
-// font-size: 18px;
-// text-decoration: none;
-// line-height: 30px;
-// }
-
-// .llms-course-list .courses li .llms-price {
-// display: block;
-// font-weight: 700;
-// // margin-bottom: .5em;
-// // font-size: 24px;
-// text-decoration: none;
-// line-height: 30px;
-// }
-
-
-
-
-// .courses a.llms-course-link:hover {
-// text-decoration: none;
-// }
diff --git a/assets/scss/frontend/_main.scss b/assets/scss/frontend/_main.scss
deleted file mode 100644
index 26e216b91e..0000000000
--- a/assets/scss/frontend/_main.scss
+++ /dev/null
@@ -1,480 +0,0 @@
-
-
-
-
-.llms-membership-image {
- display: block;
- margin: 0 auto;
-}
-
-
-
-.llms-course-image {
- display: block;
- margin: 0 auto;
- max-width: 100%;
-}
-.llms-featured-image {
- display: block;
- margin: 0 auto;
-}
-.llms-image-thumb {
- width: 150px;
-}
-
-// Responsive Videos.
-.llms-video-wrapper {
-
- .center-video {
- height: auto;
- max-width: 100%;
- overflow: hidden;
- position: relative;
- padding-top: 56.25%;
- text-align: center;
-
- & > .wp-video,
- .fluid-width-video-wrapper,
- iframe, object, embed {
- height: 100%;
- left: 0;
- position: absolute;
- top: 0;
- width: 100%;
- }
-
- & > .wp-video {
- width: 100% !important;
- }
- .fluid-width-video-wrapper {
- padding-top: 0 !important;
- }
- }
-
-}
-
-
-
-
-
-
-
-
-
-
-
-.clear {
- clear: both;
- width: 100%;
-}
-.llms-featured-image {
- text-align: center;
-}
-
-/* Genesis Overrides */
-h1, h2, h3, h4, h5, h6 {
- font-weight: 300;
-}
-
-#main-content .llms-payment-options p {
- margin: 0;
- font-size: 16px;
-}
-
-.llms-option {
- display: block;
- position: relative;
- margin: 20px 0;
- padding-left:40px;
- font-size: 16px;
-
- label {
- cursor: pointer;
- position: static;
- }
-}
-.llms-option:first-child {
- margin-top:0;
-}
-.llms-option:last-child {
- margin-bottom:0;
-}
-#main-content .llms-option:last-child {
- margin-bottom:0;
-}
-
-.llms-option input[type="radio"] {
- display: block;
- position: absolute;
- top:3px;
- left:0;
- z-index: 0;
-}
-
-.llms-option input[type="radio"] {
- display: inline-block;
-}
-.llms-option input[type="radio"] + label span.llms-radio {
- display: none;
-}
-
-.llms-option input[type="radio"] + label span.llms-radio {
- appearance: none;
-
- z-index: 20;
- position: absolute;
- top: 0;
- left: -2px;
- display: inline-block;
- width: 24px;
- height: 24px;
- border-radius: 50%;
- cursor: pointer;
- vertical-align: middle;
- box-shadow: hsla(0,0%,100%,.15) 0 1px 1px, inset hsla(0,0%,0%,.5) 0 0 0 1px;
-
- background: #efefef;
- background-image: radial-gradient(ellipse at center, $color-red 0%,$color-red 40%,#efefef 45%);
- background-repeat: no-repeat;
-
- transition: background-position .15s cubic-bezier(.8, 0, 1, 1);
-}
-.llms-option input[type="radio"]:checked + label span.llms-radio {
- transition: background-position .2s .15s cubic-bezier(0, 0, .2, 1);
-}
-
-.llms-option input[type="radio"] + label span.llms-radio {
- background-position: -24px 0;
-}
-.llms-option input[type="radio"]:checked + label span.llms-radio {
- background-position: 0 0;
-}
-
-.llms-option input[type="submit"] {
- border:none;
- background:$color-red;
- color:#fff;
- font-size:20px;
- padding:10px 0;
- border-radius:3px;
- cursor:pointer;
- width:100%;
-}
-.llms-styled-text {
- padding: 14px 0;
-}
-.llms-notice-box {
- border-radius: 3px;
- z-index: 10;
- margin: 10px 0;
- padding: 15px 20px;
- //background: #fffef4;
- border: 1px solid #ccc;
- list-style-type: none;
- width: 100%;
- overflow: auto;
- input[type="text"] {
- height: auto;
- }
- .col-1-1 {
- width: 100%;
- input[type=text] {
- width: 100%;
- }
- }
- .col-1-2 {
- width: 50%;
- float: left;
- @media screen and (max-width: $break-medium) {
- width: 100%;
- }
- }
- .col-1-3 {
- width: 33%;
- float: left;
- margin-right: 10px;
- }
- .col-1-4 {
- width: 25%;
- float: left;
- margin-right: 10px;
- @media screen and (max-width: $break-medium) {
- width: 100%;
- }
- }
- .col-1-6 {
- width: 16.6%;
- float: left;
- margin-right: 10px;
- }
- .col-1-8 {
- width: 11%;
- float: right;
- }
- .llms-pad-right {
- padding-right: 10px;
- @media screen and (max-width: $break-medium) {
- padding-right: 0;
- }
- }
-}
-input[type="text"].cc_cvv,
-#cc_cvv {
- margin-right: 0;
- width: 23%;
- float: right;
-}
-.llms-clear-box {
- border-radius: 3px;
- z-index: 10;
- margin: 10px 0;
- padding: 15px 20px;
- list-style-type: none;
- width: 100%;
- overflow: auto;
-}
-.llms-price-label {
- font-weight: normal;
-}
-.llms-final-price {
- font-weight: bold;
- float: right;
-}
-.llms-center-content {
- text-align: center;
-}
-.llms-input-text {
- background-color: #fff;
- border: 1px solid #ddd;
- color: #333;
- font-size: 18px;
- font-weight: 300;
- padding: 16px;
- width: 100%;
-}
-.llms-price {
- margin-bottom: 0;
- font-weight: bold;
-}
-.llms-price-loop {
- margin-bottom: 0;
- font-weight: bold;
-}
-
-// hentry overrides
-.courses .entry {
- padding: 0
-}
-.list-view .site-content .llms-course-list .hentry, .list-view .site-content .llms-membership-list .hentry {
- border-top: 0;
- padding-top: 0;
-}
-.llms-content {
- width: 100%;
-}
-
-.llms-lesson-button-wrapper {
- width: 100%;
- display: block;
- clear: both;
- text-align: center;
-}
-.llms-template-wrapper {
- width: 100%;
- display: block;
- clear: both;
-}
-.llms-button-wrapper {
- width: 100%;
- display: block;
- clear: both;
- text-align: center;
-}
-
-
-//custom select box
-.llms-styled-select {
- border: 1px solid #ccc;
- box-sizing: border-box;
- border-radius: 3px;
- overflow: hidden;
- position: relative;
-}
-.llms-styled-select, .llms-styled-select select {
- width: 100%;
-}
-select:focus { outline: none; }
-.llms-styled-select select {
- height: 34px;
- padding: 5px 0 5px 5px;
- background: transparent;
- border: none;
- -webkit-appearance: none;
- font-size: 16px;
- color: #444444;
-}
-
-@-moz-document url-prefix(){
- .--ms-styled-select select { width: 110%; }
-}
-
-.llms-styled-select .fa-sort-desc {
- position: absolute;
- top: 0;
- right: 12px;
- font-size: 24px;
- color: #ccc;
-}
-
-select::-ms-expand { display: none; }
-
-_:-o-prefocus, .selector {
- .llms-styled-select { background: none; }
-}
-
-.llms-form-item-wrapper {
- margin-bottom: 1em;
-}
-
-/* Circle Graph */
-.llms-progress-circle {
- position: relative;
- width: 200px;
- height: 200px;
- float: left;
-}
-
-.llms-progress-circle-count {
- top: 27%;
- position: absolute;
- width: 94%;
- text-align: center;
- color: #666;
- font-size:44px;
-}
-.llms-progress-circle svg {
- position: absolute;
- width: 200px;
- height: 200px;
-}
-.llms-progress-circle circle {
- fill: transparent;
-}
-svg .llms-background-circle {
- fill: transparent;
- stroke-width: 10px;
- stroke: #f1f2f1;
- stroke-dasharray: 430;
-}
-
-svg .llms-animated-circle {
- fill: transparent;
- stroke-width: 10px;
- stroke: #e5554e;
- stroke-dasharray: 430;
- stroke-dashoffset: 430 - 20
-}
-
-
-
-
-
-
-
-.llms-widget-syllabus {
-
- .llms-lesson.current-lesson .lesson-title {
- font-weight: 700;
- }
-
- .llms-lesson-complete, .lesson-complete-placeholder {
- font-size: 1.2em;
- margin-right: 6px;
- color: #ccc;
- &.done {
- color: #e5554e;
- }
- }.section-title {
- font-weight: bold;
- }.lesson-title {
- a {
- text-decoration: none;
- &:hover {
- text-decoration: none !important;
- }
- }
- &.done {
- a {
- color: #999;
- text-decoration: line-through;
- }
- }
- }
- ul {
- list-style-type: none;
- li {
- list-style-type: none;
- ul li {
- margin: 0 0 2px 0;
- padding: 0;
- }
- }
- }
-}
-
-
-
-.llms-remove-coupon {
- float: right;
-}
-
-
-
-
-
-.llms-lesson-link-locked, .llms-lesson-link-locked:hover {
- background: #f1f1f1;
- box-shadow: 0 1px 2px 0 rgba(1, 1, 1, 0.4);
- display: block;
- color: #a6a6a6;
- min-height: 85px;
- padding: 15px;
- text-decoration: none;
- position: relative;
-}
-
-.llms-lesson-preview.is-complete .llms-lesson-link-locked {
- padding-left: 75px;
-}
-
-.llms-lesson-tooltip { display: none;
- position:absolute;
- color: #000000;
- background-color: #c0c0c0;
- padding:.25em;
- border-radius: 2px;
- z-index: 100;
- top:0;
- left:50%;
- text-align: center;
- -webkit-transform: translateX(-50%) translateY(-100%);
- transform: translateX(-50%) translateY(-100%);
- }
-
-/* arrows - :after */
-.llms-lesson-tooltip:after {
- content: "";
- width: 0;
- height: 0;
- border-top: 8px solid #c0c0c0;
- border-left: 8px solid transparent;
- border-right: 8px solid transparent;
- position:absolute;
- bottom:-8px;
- left:50%;
- transform: translateX(-50%);
-}
-
-.llms-lesson-tooltip.active {
- display: inline-block;
-}
diff --git a/assets/scss/frontend/_notices.scss b/assets/scss/frontend/_notices.scss
deleted file mode 100644
index 477078366d..0000000000
--- a/assets/scss/frontend/_notices.scss
+++ /dev/null
@@ -1,41 +0,0 @@
-.llms-notice {
- background: rgba( $color-brand-blue, .3 );
- border-color: $color-brand-blue;
- border-style: solid;
- border-width: 3px;
- padding: 10px;
- margin-bottom: 10px;
-
- p, ul {
- &:last-child { margin-bottom: 0; }
- }
-
- li {
- list-style-type: none;
- }
-
- &.llms-debug {
- background: rgba( #cacaca, .3 );
- border-color: #cacaca;
- }
-
- &.llms-error {
- background: rgba( $color-red, .3 );
- border-color: $color-red;
- }
-
- &.llms-success {
- background: rgba( $color-green, .3 );
- border-color: $color-green;
- }
-
-}
-
-// this helps genesis and numerous other themes out a bit
-// by being slightly more specific
-.entry-content .llms-notice {
- margin: 0 0 10px;
- li {
- list-style-type: none;
- }
-}
diff --git a/assets/scss/frontend/_student-dashboard.scss b/assets/scss/frontend/_student-dashboard.scss
deleted file mode 100644
index bbbd85a2a3..0000000000
--- a/assets/scss/frontend/_student-dashboard.scss
+++ /dev/null
@@ -1,348 +0,0 @@
-.llms-student-dashboard {
-
- .llms-sd-nav {}
-
- .llms-sd-title {
- margin: 25px 0;
- }
-
- .llms-sd-items { // ul
- @extend %clearfix;
- list-style-type: none;
- margin: 0;
- padding: 0;
- }
- .llms-sd-item { // li
- float: left;
- list-style-type: none;
- margin: 0;
- padding: 0;
-
- &:last-child {
- .llms-sep {
- display: none;
- }
- }
-
- .llms-sep {
- color: #333;
- margin: 0 5px;
- }
- }
-
- .llms-sd-section {
- margin-bottom: 25px;
- .llms-sd-section-footer {
- margin-top: 10px;
- }
- }
-
- .orders-table {
-
- border: 1px solid #f5f5f5;
- width: 100%;
-
- thead {
- display: none;
- th,td {
- font-weight: 700;
- }
- @media all and ( min-width: 600px ) {
- display: table-header-group;
- }
- }
-
- tbody {
- tr:nth-child( even ) {
- td, th {
- background: #f9f9f9;
- }
- }
- }
-
- tfoot {
- th, td {
- padding: 10px;
- text-align: right;
- &:last-child { border-bottom-width: 0; }
- }
- }
-
- th {
- font-weight: 700;
- }
-
- th, td {
- border-color: #efefef;
- border-style: solid;
- border-width: 0;
- display: block;
- padding: 8px 12px;
- text-align: center;
-
- .llms-button-primary {
- display: inline-block;
- }
-
- &:last-child {
- border-bottom-width: 1px;
- }
-
- &:before {
- content: attr( data-label );
- }
-
- @media all and ( min-width: 600px ) {
- border-bottom-width: 1px;
- display: table-cell;
- text-align: left;
- &:first-child { width: 220px; }
- &:before { display: none; }
- }
-
- }
-
- @media all and ( min-width: 600px ) {
- &.transactions th:first-child {width: auto; }
- }
-
- }
-
- @include order_status_badges();
-
- .llms-person-form-wrapper {
- .llms-change-password { display: none; }
- }
-
- .order-primary {
-
- @media all and ( min-width: 600px ) {
- float: left;
- width: 68%;
- }
-
- }
- .order-secondary {
-
- @media all and ( min-width: 600px ) {
- float: left;
- width: 32%;
- }
-
- form {
- margin-bottom: 0;
- }
-
- }
-
- // stack columns when alternate layout declared via filter
- @media all and ( min-width: 600px ) {
- .llms-view-order.llms-stack-cols {
- .order-primary,
- .order-secondary {
- float: none;
- width: 100%;
- }
- }
- }
-
- .llms-switch-payment-source {
- .llms-notice,
- .entry-content .llms-notice {
- margin-left: 10px;
- margin-right: 10px;
- }
- }
-
- .llms-switch-payment-source-main {
- border: none;
- display: none;
- margin: 0;
- ul.llms-payment-gateways {
- padding: 10px 15px 0;
- margin: 0;
- }
- .llms-payment-method,
- ul.llms-order-summary {
- padding: 0 25px 10px;
- margin: 0;
- list-style-type: none;
- li { list-style-type: none; }
- }
- }
-
- /**
- * Dashboard Home
- */
- .llms-loop-list {
- margin: 0 -10px;
- }
-
-}
-
-// My Grades course list
-.llms-sd-grades {
- .llms-table {
- .llms-progress {
- display: block;
- margin: 0;
- .llms-progress-bar {
- top: 0;
- height: 1.4em;
- }
- .progress__indicator {
- font-size: 1em;
- position: relative;
- right: 0.4em;
- top: 0.2em;
- z-index: 1;
- }
- }
- }
-}
-
-// grades table for a single course
-.llms-table.llms-single-course-grades {
-
- tbody {
- tr:first-child td, tr:first-child th {
- background-color: #eaeaea;
- }
- }
-
- th {
- font-weight: 400;
- }
-
- td {
- .llms-donut {
- display: inline-block;
- vertical-align: middle;
- }
- .llms-status {
- margin-right: 4px;
- }
- .llms-donut + .llms-status {
- margin-left: 4px;
- }
- }
-
- th.llms-section_title {
- font-size: 110%;
- font-weight: 700;
- }
-
- td.llms-lesson_title {
- padding-left: 36px;
- max-width: 40%;
- }
- td.llms-associated_quiz {
- .llms-donut {
- display: inline-block;
- margin-right: 5px;
- vertical-align: middle;
- }
- }
- td.llms-lesson_title {
- a[href="#"] {
- pointer-events: none;
- }
- a[href^="#"] {
- color: inherit;
- position: relative;
- .llms-tooltip {
- max-width: 380px;
- width: 380px;
- &.show {
- top: -54px;
- }
- }
- }
- }
-}
-
-.llms-sd-widgets {
- display: flex;
-
- .llms-sd-widget {
- background: #f9f9f9;
- flex: 1;
- margin: 10px 10px 20px;
- padding: 0 0 20px;
- &:first-child {
- margin-left: 0;
- }
- &:last-child {
- margin-right: 0;
- }
-
- .llms-sd-widget-title {
- background: $color-brand-blue;
- color: #fff;
- font-size: 18px;
- line-height: 1;
- margin: 0 0 20px;
- padding: 10px;
- }
-
- .llms-sd-widget-empty {
- font-size: 14px;
- font-style: italic;
- opacity: 0.5;
- text-align: center;
- }
-
- .llms-donut {
- margin: 0 auto;
- }
-
- .llms-sd-date {
- opacity: 0.8;
- text-align: center;
- font-size: 22px;
- line-height: 1.1;
- span {
- display: block;
- &.day {
- font-size: 52px;
- }
- &.diff {
- font-size: 12px;
- font-style: italic;
- margin-top: 8px;
- opacity: 0.75;
- }
- }
- }
-
- .llms-achievement {
- background: transparent;
- margin: 0 auto;
- max-width: 120px;
- .llms-achievement-title {
- display: none;
- }
- }
-
- }
-
-
-}
-
-
-.llms-sd-pagination {
- margin-top: 24px;
- @include clearfix;
- .llms-button-secondary {
- display: inline-block;
- &.prev { float: left; }
- &.next { float: right; }
- }
-}
-
-
-.llms-sd-notification-center {
- .llms-notification {
- z-index: 1;
- }
-}
diff --git a/assets/scss/frontend/_syllabus.scss b/assets/scss/frontend/_syllabus.scss
deleted file mode 100644
index 95c553fbdc..0000000000
--- a/assets/scss/frontend/_syllabus.scss
+++ /dev/null
@@ -1,147 +0,0 @@
-.llms-syllabus-wrapper {
-
- margin: 15px;
- text-align: center;
-
- .llms-section-title {
- margin: 25px 0 0;
- }
-
-}
-
-.llms-course-navigation {
- @extend %clearfix;
-
- .llms-prev-lesson,
- .llms-next-lesson,
- .llms-back-to-course {
- width: 49%;
- }
-
- .llms-prev-lesson,
- .llms-back-to-course {
- float: left;
- margin-right: 0.5%;
- }
-
- .llms-next-lesson,
- .llms-prev-lesson + .llms-back-to-course {
- float: right;
- margin-left: 0.5%;
- }
-
-}
-
-.llms-lesson-preview {
- display: inline-block;
- margin-top: 15px;
- max-width: 100%;
- position: relative;
- width: 480px;
-
- .llms-lesson-link {
- background: #f1f1f1;
- color: #212121;
- display: block;
- // height: 100%;
- padding: 15px;
- text-decoration: none;
-
- @include clearfix();
-
- &:hover {
- background: #eaeaea;
- }
-
- &:visited {
- color: #212121;
- }
-
- }
-
- .llms-lesson-thumbnail {
- margin-bottom: 10px;
- img {
- display: block;
- width: 100%;
- }
- }
-
- .llms-pre-text {
- text-align: left;
- }
-
- .llms-lesson-title {
- font-weight: 700;
- margin: 0 auto 10px;
- text-align: left;
- &:last-child {
- margin-bottom: 0;
- }
- }
-
- .llms-lesson-excerpt {
- text-align: left;
- }
-
- .llms-main {
- float: left;
- width: 100%;
- }
- .llms-extra {
- float: right;
- width: 15%;
- }
-
- .llms-extra + .llms-main {
- width: 85%;
- }
-
- .llms-lesson-counter,
- .llms-free-lesson-svg,
- .llms-lesson-complete,
- .llms-lesson-complete-placeholder {
- display: block;
- font-size: 32px;
- margin-bottom: 15px;
- }
-
- &.is-free,
- &.is-complete {
- .llms-lesson-complete {
- color: $color-brand-blue;
- }
- }
-
- .llms-icon-free {
- background: $color-brand-blue;
- border-radius: 4px;
- color: #f1f1f1;
- display: inline-block;
- padding: 5px 6px 4px;
- line-height: 1;
- font-size: 14px;
- }
-
- &.is-incomplete {
- .llms-lesson-complete {
- color: #cacaca;
- }
- }
-
- .llms-lesson-counter {
- font-size: 16px;
- line-height: 1;
- }
-
- .llms-free-lesson-svg {
- fill: currentColor;
- height: 23px;
- width: 50px;
- }
-
- p {
- margin-bottom: 0;
- }
-
-}
diff --git a/assets/scss/frontend/_tooltip.scss b/assets/scss/frontend/_tooltip.scss
deleted file mode 100644
index afa87788eb..0000000000
--- a/assets/scss/frontend/_tooltip.scss
+++ /dev/null
@@ -1,63 +0,0 @@
-.llms-tooltip {
-
- background: #2a2a2a;
- border-radius: 4px;
- color: #fff;
- font-size: 14px;
- line-height: 1.2;
- opacity: 0;
- top: -20px;
- padding: 8px 12px;
- left: 50%;
- position: absolute;
- pointer-events: none;
- transform: translateX( -50% );
- transition: opacity .2s ease, top .2s ease;
- max-width: 320px;
-
- &.show {
- top: -28px;
- opacity: 1;
- }
-
- &:after {
-
- bottom: -8px;
- border-top: 8px solid #2a2a2a;
- border-left: 8px solid transparent;
- border-right: 8px solid transparent;
- content: '';
- height: 0;
- left: 50%;
- position: absolute;
- transform: translateX( -50% );
- width: 0;
-
- }
-
-}
-
-
-
-.webui-popover-title {
- font-size: initial;
- font-weight: initial;
- line-height: initial;
-}
-.webui-popover-inverse {
- .webui-popover-inner .close {
- color: #fff;
- opacity: 0.6;
- text-shadow: none;
- &:hover {
- opacity: 0.8;
- }
- }
- .webui-popover-content a {
- color: #fff;
- text-decoration: underline;
- &:hover {
- text-decoration: none;
- }
- }
-}
diff --git a/assets/scss/frontend/_voucher.scss b/assets/scss/frontend/_voucher.scss
deleted file mode 100644
index 6c950121af..0000000000
--- a/assets/scss/frontend/_voucher.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-.voucher-expand {
- display: none;
-}
\ No newline at end of file
diff --git a/assets/scss/lifterlms.scss b/assets/scss/lifterlms.scss
deleted file mode 100644
index a91e040adb..0000000000
--- a/assets/scss/lifterlms.scss
+++ /dev/null
@@ -1,40 +0,0 @@
-//
-// Main Frontend CSS File
-//
-
-@import "_includes/vars";
-@import "_includes/extends";
-@import "_includes/grid";
-@import "_includes/mixins";
-@import "_includes/buttons";
-@import "_includes/llms-donut";
-@import "_includes/tooltip";
-
-@import "frontend/main";
-@import "frontend/loop";
-@import "frontend/course";
-@import "frontend/syllabus";
-@import "frontend/llms-progress";
-@import "frontend/llms-author";
-
-@import "frontend/notices";
-@import "frontend/llms-achievements-certs";
-@import "frontend/llms-notifications";
-@import "frontend/llms-pagination";
-@import "frontend/tooltip";
-
-
-@import "frontend/llms-quizzes";
-
-@import "frontend/voucher";
-@import "frontend/llms-access-plans";
-@import "frontend/checkout";
-@import "_includes/llms-form-field";
-
-@import "frontend/llms-outline-collapse";
-
-@import "frontend/student-dashboard";
-@import "frontend/llms-table";
-
-@import "_includes/vendor/_font-awesome";
-@import "_includes/spinner";
diff --git a/assets/vendor/datetimepicker/jquery.datetimepicker.full.js b/assets/vendor/datetimepicker/jquery.datetimepicker.full.js
old mode 100755
new mode 100644
diff --git a/assets/vendor/datetimepicker/jquery.datetimepicker.full.min.js b/assets/vendor/datetimepicker/jquery.datetimepicker.full.min.js
old mode 100755
new mode 100644
diff --git a/assets/vendor/datetimepicker/jquery.datetimepicker.min.css b/assets/vendor/datetimepicker/jquery.datetimepicker.min.css
old mode 100755
new mode 100644
diff --git a/assets/vendor/izimodal/iziModal.css b/assets/vendor/izimodal/iziModal.css
old mode 100755
new mode 100644
diff --git a/assets/vendor/izimodal/iziModal.js b/assets/vendor/izimodal/iziModal.js
old mode 100755
new mode 100644
diff --git a/assets/vendor/izimodal/iziModal.min.css b/assets/vendor/izimodal/iziModal.min.css
old mode 100755
new mode 100644
diff --git a/assets/vendor/izimodal/iziModal.min.js b/assets/vendor/izimodal/iziModal.min.js
old mode 100755
new mode 100644
diff --git a/assets/vendor/jquery-ui-flick/images/animated-overlay.gif b/assets/vendor/jquery-ui-flick/images/animated-overlay.gif
old mode 100755
new mode 100644
diff --git a/assets/vendor/jquery-ui-flick/images/ui-bg_flat_0_aaaaaa_40x100.png b/assets/vendor/jquery-ui-flick/images/ui-bg_flat_0_aaaaaa_40x100.png
old mode 100755
new mode 100644
diff --git a/assets/vendor/jquery-ui-flick/images/ui-bg_flat_0_eeeeee_40x100.png b/assets/vendor/jquery-ui-flick/images/ui-bg_flat_0_eeeeee_40x100.png
old mode 100755
new mode 100644
diff --git a/assets/vendor/jquery-ui-flick/images/ui-bg_flat_55_ffffff_40x100.png b/assets/vendor/jquery-ui-flick/images/ui-bg_flat_55_ffffff_40x100.png
old mode 100755
new mode 100644
diff --git a/assets/vendor/jquery-ui-flick/images/ui-bg_flat_75_ffffff_40x100.png b/assets/vendor/jquery-ui-flick/images/ui-bg_flat_75_ffffff_40x100.png
old mode 100755
new mode 100644
diff --git a/assets/vendor/jquery-ui-flick/images/ui-bg_glass_65_ffffff_1x400.png b/assets/vendor/jquery-ui-flick/images/ui-bg_glass_65_ffffff_1x400.png
old mode 100755
new mode 100644
diff --git a/assets/vendor/jquery-ui-flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png b/assets/vendor/jquery-ui-flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png
old mode 100755
new mode 100644
diff --git a/assets/vendor/jquery-ui-flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png b/assets/vendor/jquery-ui-flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png
old mode 100755
new mode 100644
diff --git a/assets/vendor/jquery-ui-flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png b/assets/vendor/jquery-ui-flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png
old mode 100755
new mode 100644
diff --git a/assets/vendor/jquery-ui-flick/images/ui-icons_0073ea_256x240.png b/assets/vendor/jquery-ui-flick/images/ui-icons_0073ea_256x240.png
old mode 100755
new mode 100644
diff --git a/assets/vendor/jquery-ui-flick/images/ui-icons_454545_256x240.png b/assets/vendor/jquery-ui-flick/images/ui-icons_454545_256x240.png
old mode 100755
new mode 100644
diff --git a/assets/vendor/jquery-ui-flick/images/ui-icons_666666_256x240.png b/assets/vendor/jquery-ui-flick/images/ui-icons_666666_256x240.png
old mode 100755
new mode 100644
diff --git a/assets/vendor/jquery-ui-flick/images/ui-icons_ff0084_256x240.png b/assets/vendor/jquery-ui-flick/images/ui-icons_ff0084_256x240.png
old mode 100755
new mode 100644
diff --git a/assets/vendor/jquery-ui-flick/images/ui-icons_ffffff_256x240.png b/assets/vendor/jquery-ui-flick/images/ui-icons_ffffff_256x240.png
old mode 100755
new mode 100644
diff --git a/babel.config.js b/babel.config.js
deleted file mode 100644
index 507dc879b2..0000000000
--- a/babel.config.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * Babel config
- *
- * @package LifterLMS/Dev/Scripts
- *
- * @since Unknown
- * @version 6.0.0
- */
-
-const
- presets = [ '@wordpress/default' ],
- plugins = [ '@babel/plugin-proposal-class-properties' ];
-
-module.exports = { plugins, presets };
diff --git a/class-lifterlms.php b/class-lifterlms.php
index 9f87cc4581..61a16d07b2 100644
--- a/class-lifterlms.php
+++ b/class-lifterlms.php
@@ -34,7 +34,7 @@ final class LifterLMS {
*
* @var string
*/
- public $version = '6.8.0';
+ public $version = '6.9.0';
/**
* LLMS_Assets instance
diff --git a/composer.json b/composer.json
deleted file mode 100644
index b250378375..0000000000
--- a/composer.json
+++ /dev/null
@@ -1,143 +0,0 @@
-{
- "name": "gocodebox/lifterlms",
- "description": "LifterLMS, the #1 WordPress LMS solution, makes it easy to create, sell, and protect engaging online courses.",
- "keywords": [
- "WordPress",
- "LMS"
- ],
- "homepage": "https://lifterlms.com",
- "license": "GPL-3.0+",
- "authors": [
- {
- "name": "LifterLMS",
- "email": "help@lifterlms.com",
- "homepage": "https://lifterlms.com"
- }
- ],
- "type": "wordpress-plugin",
- "support": {
- "forum": "https://wordpress.org/support/plugin/lifterlms",
- "issues": "https://github.com/gocodebox/lifterlms/issues",
- "source": "https://github.com/gocodebox/lifterlms"
- },
- "autoload": {
- "psr-4": {
- "LLMS\\": "includes"
- }
- },
- "require": {
- "php": ">=7.4",
- "composer/installers": "~1.9.0",
- "deliciousbrains/wp-background-processing": "1.0.2",
- "lifterlms/lifterlms-blocks": "2.4.3",
- "lifterlms/lifterlms-cli": "0.0.3",
- "lifterlms/lifterlms-helper": "3.4.2",
- "lifterlms/lifterlms-rest": "1.0.0-beta.25",
- "woocommerce/action-scheduler": "3.4.2"
- },
- "require-dev": {
- "lifterlms/lifterlms-tests": "^3.3.1",
- "lifterlms/lifterlms-cs": "dev-trunk"
- },
- "archive": {
- "exclude": [
- ".*",
- "*.lock",
- "*.xml",
- "*.xml.dist",
- "*.config.js",
-
- "CHANGELOG.md",
- "composer.json",
- "docker-compose.yml",
- "lerna.json",
- "package.json",
- "package-lock.json",
- "README.md",
-
- "/assets/scss",
-
- "_private",
- "dist",
- "docs",
- "gulpfile.js",
- "node_modules",
- "packages",
- "src",
- "tests",
- "tmp",
- "wordpress",
- "!/vendor",
-
- "!/libraries",
- "/libraries/README.md",
- "/libraries/**/composer.*",
- "/libraries/**/i18n",
-
- "/vendor/bin",
- "/vendor/**/**/composer.*",
- "/vendor/**/**/*.md",
- "/vendor/**/**/.*",
- "/vendor/composer/installers",
- "/vendor/composer/lifters",
-
- "!/assets/maps/js/vendor",
- "!/assets/vendor",
- "!/assets/js/vendor",
- "!/assets/js/builder/vendor"
- ]
- },
- "scripts": {
- "check-cs": "\"vendor/bin/phpcs\" --colors",
- "check-cs-errors": "\"vendor/bin/phpcs\" --colors --error-severity=1 --warning-severity=6",
- "config-cs": [
- "\"vendor/bin/phpcs\" --config-set installed_paths ../../../vendor/wp-coding-standards/wpcs,../../../vendor/lifterlms/lifterlms-cs,../../../vendor/phpcompatibility/php-compatibility,../../../vendor/phpcompatibility/phpcompatibility-paragonie,../../../vendor/phpcompatibility/phpcompatibility-wp",
- "\"vendor/bin/phpcs\" --config-set default_standard 'LifterLMS Core'",
- "\"vendor/bin/phpcs\" --config-set ignore_warnings_on_exit 1"
- ],
- "env": "\"vendor/bin/llms-env\"",
- "env:setup": "./tests/bin/setup-e2e.sh",
- "fix-cs": "\"vendor/bin/phpcbf\"",
- "post-install-cmd": "@post-update-install-cmd",
- "post-update-cmd": "@post-update-install-cmd",
- "post-update-install-cmd": [
- "@config-cs",
- "rm -rf ./wp-content/",
- "rm composer.lock"
- ],
- "tests-remove": "\"vendor/bin/llms-tests\" teardown ${TESTS_DB_NAME:-llms_tests} ${TESTS_DB_USER:-root} \"${TESTS_DB_PASS-password}\" ${TESTS_DB_HOST:-127.0.0.1}",
- "tests-install": "\"vendor/bin/llms-tests\" install ${TESTS_DB_NAME:-llms_tests} ${TESTS_DB_USER:-root} \"${TESTS_DB_PASS-password}\" ${TESTS_DB_HOST:-127.0.0.1} ${WP_VERSION:-latest} false \"${WP_TESTS_VERSION:-false}\"",
- "tests-reinstall": [
- "@tests-remove",
- "@tests-install"
- ],
- "tests": [
- "Composer\\Config::disableProcessTimeout",
- "\"vendor/bin/phpunit\""
- ],
- "tests-run": [
- "Composer\\Config::disableProcessTimeout",
- "\"vendor/bin/phpunit\""
- ],
- "install-php8": "composer install --ignore-platform-reqs"
- },
- "extra": {
- "installer-paths": {
- "libraries/{$name}": [
- "lifterlms/lifterlms-blocks",
- "lifterlms/lifterlms-cli",
- "lifterlms/lifterlms-helper",
- "lifterlms/lifterlms-rest"
- ],
- "vendor/{$vendor}/{$name}": [
- "type:wordpress-plugin"
- ]
- }
- },
- "config": {
- "allow-plugins": {
- "dealerdirect/phpcodesniffer-composer-installer": true,
- "composer/installers": true
- }
- }
-}
diff --git a/docker-compose.yml b/docker-compose.yml
deleted file mode 100644
index b773b52d93..0000000000
--- a/docker-compose.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-version: '3.1'
-services:
- wordpress:
- volumes:
- - ./:/var/www/html/wp-content/plugins/lifterlms:rw
diff --git a/docs/coding-standards.md b/docs/coding-standards.md
deleted file mode 100644
index e25d33af7f..0000000000
--- a/docs/coding-standards.md
+++ /dev/null
@@ -1,141 +0,0 @@
-LifterLMS Coding Standards
-==========================
-
-The purpose of the LifterLMS Coding Standards is to create a baseline for collaboration and review within the open source LifterLMS codebase, project, and community.
-
-The WordPress community has developed coding standards and documented them in the [WordPress codex](https://developer.wordpress.org/coding-standards/wordpress-coding-standards/). Wherever possible, the LifterLMS Coding Standards aim to obey these coding standards.
-
-## Naming Conventions
-
-### camelCase should not be used.
-
-LifterLMS avoids `camelCase` for class names, class methods, functions, and variables. Words should instead be separated by underscores.
-
-### Class Names
-
-Class names should use capitalized words separated by underscores.
-LifterLMS core class names should be prefixed with `LLMS_`.
-
-
-```php
-class LLMS_Student extends LLMS_Abstract_User_Data { [...] }
-class LLMS_Data { [...] }
-```
-
-LifterLMS add-on class names should be prefixed with `LLMS_` as well as an additional add-on prefix.
-
-```php
-class LLMS_AQ_Question_Types { [...] }
-class LLMS_SL_Story extends LLMS_Abstract_Database_Store { [...] }
-```
-
-### Trait Names
-
-Trait names should use capitalized words separated by underscores.
-LifterLMS core trait names should be prefixed with `LLMS_Trait`.
-
-```php
-trait LLMS_Trait_Singleton { [...] }
-```
-
-### Constants
-
-Constants should be in all upper-case with underscores separating words.
-LifterLMS core constants should be prefixed with `LLMS_`.
-
-```php
-define( 'LLMS_PLUGIN_FILE', __FILE__ );
-```
-
-LifterLMS add-on class names should be prefixed with `LLMS_` as well as an additional add-on prefix.
-
-```php
-define( 'LLMS_FORMIDABLE_FORMS_PLUGIN_FILE', __FILE__ );
-```
-
-### File names
-
-Files should be named descriptively using lower case letters. Hyphens should be used to separate words.
-
-```
-my-plugin-file.php
-```
-
-Class file names should be based on the class name with `class-` prepended and the underscores in the class name replaced with hyphens, for example `LLMS_Data` becomes:
-
-```
-class-llms-data.php
-```
-
-Files containing model classes should prepend `model-` instead of `class-`. For example the `LLMS_Student` model class becomes:
-
-```
-model-llms-student.php
-```
-
-Trait file names should be based on the trait name with underscores replaced by hyphens and the file stored in the
-`includes/traits` directory. For example `LLMS_Trait_Singleton` becomes:
-
-```
-includes/traits/llms-trait-singleton.php
-```
-
-### Functions & Variables
-
-Lowercase letters should be used for function names and variables. Separate words with underscores.
-LifterLMS core functions should be prepended with the prefix `llms_`.
-
-```php
-llms_current_time( $type, $gmt = 0 ) { [...] }
-```
-
-LifterLMS add-on function names should be prefixed with `llms_` as well as an additional add-on prefix.
-
-```php
-llms_ck_consent_form_field() { [...] }
-```
-
-### Hooks: Actions & Filters
-
-Lowercase letters should be used for hook names. Separate words with underscores.
-LifterLMS core hooks should be prepended with the prefix `llms_`.
-
-```php
-do_action( 'llms_user_enrolled_in_course', [...] );
-apply_filters( 'llms_get_enrollment_status', [...] );
-```
-
-LifterLMS add-on hook names should be prefixed with `llms_` as well as an additional add-on prefix.
-
-```php
-do_action( 'llms_pa_post_created_from_automation', [...] );
-apply_filters( 'llms_sl_story_can_user_manage', [...] );
-```
-
-When actions are set to run before and after items (templates, as an example) it is acceptable to use additional prefixes `before_` and `after_` prior to the `llms_` prefix.
-
-There are a number of legacy hooks which use the prefix `lifterlms_` instead of `llms_`. These are retained for backwards compatibility but should not be used as an example of an acceptable naming convention for new code.
-
-### CSS Classes and IDs
-
-Class names and IDs should be lowercase and prefixed with `llms-`.
-
-Words should be separated with hyphens (AKA "kebab case").
-
-```html
-
-```
-
-### Form Element `name` attributes
-
-The `name` attribute of HTML form elements should be prefixed with `llms_`.
-
-Lowercase letters should be used and words should be separated by underscores.
-
-```html
-
-```
-
-
diff --git a/docs/contributing.md b/docs/contributing.md
deleted file mode 100644
index aca594f40c..0000000000
--- a/docs/contributing.md
+++ /dev/null
@@ -1,4 +0,0 @@
-Contributor Guidelines
-----------------------
-
-See contributing guidelines at https://github.com/gocodebox/lifterlms/blob/trunk/.github/CONTRIBUTING.md
diff --git a/docs/documentation-standards.md b/docs/documentation-standards.md
deleted file mode 100644
index d9ff0eef6c..0000000000
--- a/docs/documentation-standards.md
+++ /dev/null
@@ -1,395 +0,0 @@
-LifterLMS Inline Documentation Standards
-========================================
-
-The LifterLMS documentation standard is heavily inspired by the [WordPress core's documentation standards][wp-core-docs]. We have made customizations to these standards in areas where it aids our core team's development and release workflows. By using the WordPress core documentation standard as a starting point any contributor already familiar with the WordPress core should be able to quickly add inline documentation to LifterLMS without the need to study our standards at length.
-
-## What should be documented
-
-The following elements should be documented using formatted documentation blocks (DocBlocks):
-
-+ Functions
-+ Classes
-+ Class methods
-+ Class members (including properties and constants)
-+ Requires and includes
-+ Hooks (actions and filters)
-+ File headers
-
-## DocBlock Formatting Guidelines
-
-Inline documentation in the LifterLMS code base is automatically parsed and output to the code reference [developer.lifterlms.com][llms-dev]. Adhering to these guidelines is essential to ensure optimum readability via the code reference.
-
-
-### Spacing
-
-DocBlocks should directly precede the element (hook, function, method, class, etc...). There should not be any opening/closing tags, white space, or anything else between the DocBlock and the declarations. This will ensure the parser can correctly associate the DocBlock with it's element.
-
-
-### Summary
-
-A short piece of text, usually one line, providing the basic function of the associated element. A good summary concisely describes what the element does and should not attempt to describe why the element exists.
-
-HTML may not be used in the summary. For example, if the function outputs an ` ` tag, the summary should read ```Outputs an image tag.``` instead of ```Outputs an ` ` tag.```.
-
-
-### Description
-
-An optional longer piece of text providing more details on the associated element’s function.
-
-HTML may not be used in the summary but markdown can be used to format a complicated description.
-
-**1. Lists**
-
-Use a hyphen (`-`) to create an unordered list, with a blank line before and after.
-
-```
- * Description which includes an unordered list:
- *
- * - This is item 1.
- * - This is item 2.
- * - This is item 3.
- *
- * The description continues on ...
-```
-
-Use numbers to create an ordered list, with a blank line before and after.
-
-```
- * Description which includes an ordered list:
- *
- * 1. This is item 1.
- * 2. This is item 2.
- * 3. This is item 3.
- *
- * The description continues on ...
-```
-
-**2. Code Samples**
-
-A code sample may be created by indenting every line of the code by 4 spaces, with a blank line before and after. Blank lines in code samples also need to be indented by four spaces. Note that examples added in this way will be output in `` tags and are not syntax-highlighted in the code reference.
-
-```
- * Description including a code sample:
- *
- * $status = array(
- * 'draft' => __( 'Draft' ),
- * 'pending' => __( 'Pending Review' ),
- * 'private' => __( 'Private' ),
- * 'publish' => __( 'Published' )
- * );
- *
- * The description continues on ...
-```
-
-**3. Links**
-
-A link in the form of a URL, such as related GitHub issue or other documentation, should be added in the appropriate place in the DocBlock using the `@link` tag.
-
-```
- * Description text.
- *
- * @link https://github.com/gocodebox/lifterlms/issues/1234567890
-```
-
-### Changelogs
-
-Whenever any code is changed within an element, a `@since`, `@version`, or `@deprecated` tag should be added to the element to document the change(s) which have been made.
-
-No HTML should be used in the descriptions for these tags, though limited Markdown can be used as necessary, such as for adding backticks around variables, e.g. `$variable`.
-
-All descriptions for any of these tags should be a full sentence ending with a full stop (a period, for example).
-
-#### Changes Warranting a Changelog Entry
-
-Most code changes warrant a changelog entry to be recorded for the element but there are some exceptions.
-
-+ **Classes**: Any breaking changes, deprecations, or the introduction of new class elements (elements which do not have their own changelog, such as class properties) require an accompanying `@since` tag entry. Changes to a class method should be recorded on the method's changelog, not on the class changelog.
-+ **Functions and class methods**: Any change made requires an accompanying `@since` tag entry
-
-Changes which do not affect the functionality or execution of the element *should not* be recorded on the element's changelog. For example, a coding standards change such as alignment or spacing should not be recorded.
-
-#### Recording the Version Number
-
-Versions should be expressed in the 3-digit `x.x.x` style.
-
-```
- * @since 3.29.0
-```
-
-When any change has been made to the element an additional `@since` tag can be added with a short description of the changes which were made.
-
-```
- * @since 3.3.0
- * @since 3.5.0 Added optional 3rd argument.
-```
-
-#### Deprecations
-
-When an element is marked for deprecation this should be recorded at the end of the changelog with an `@deprecated` tag.
-
-A short description may be added to provide additional information about the deprecation. If a replacement function has been added in it's place, note as much with an `@see` tag.
-
-```
- * @since 3.3.0
- * @since 3.5.0 Added optional 3rd argument.
- * @deprecated 3.10.0 Use `llms_new_function_name()` instead.
- *
- * @see llms_new_function_name()
-```
-
-When adding documentation on an existing element which does not yet have a changelog (common in code added prior to the creation and enforcement of these standards) if it is impossible to determine when the element was added the version may be expressed with `Unknown` instead of the `x.x.x` version number.
-
-#### File Headers
-
-Whenever an element within a file is updated, the `@version` tag in the header should be updated to the current version of the codebase.
-
-#### Tag alignment and order
-
-All changelog tags, `@since`, `@version`, and `@deprecated` should be grouped together with a space before the first `@since` tag and after the last tag in the group.
-
-```
- * @since 3.3.0
- * @since 3.5.0 Changelog entry description.
- * @deprecated 3.10.0 Use `llms_new_function_name()` instead.
-```
-
-When multiple lines are required for a single entry, subsequent lines should be indented to match the starting point of the description.
-
-```
- * @since 3.3.0
- * @since 3.5.0 Changelog entry description.
- A second entry aligned to with the first entry.
-```
-
-Multiple logs with version numbers of differing lengths should not be aligned to one another.
-
-```
- * @since 3.3.0
- * @since 3.25.0 Changelog entry description.
- * @since 4.0.0 This entry should not be aligned with the 3.25.0 entry above it.
-```
-
-#### Using Placeholders
-
-When contributing code we recommend using the placeholder `[version]` in favor of trying to guess what version the element will be released with.
-
-Our release workflow automatically replaces with `@since`, `@version`, and `@deprecated` followed by `[version]` with the actual version of the release being packaged.
-
-For a new element:
-
-```
- * @since [version]
-```
-
-When updating an existing element:
-
-```
- * @since 3.5.0
- * @since [version] Updated element.
-```
-
-
-### Additional Tags
-
-#### 1. Parameters and Returns
-
-Functions and methods should define all parameter arguments and returns with the `@param` and `@return` tags.
-
-No HTML should be used in the descriptions for these tags, though limited Markdown can be used as necessary, such as for adding backticks around variables, e.g. `$variable`.
-
-All descriptions for any of these tags should be a full sentence ending with a full stop (a period, for example).
-
-```
- * @param string $var1 Description of the argument.
- * @param bool $var2 Description of the argument.
- * @return string
- */
-function my_function( $var1, $var2 = false ) {
- ...
- return $var1;
-}
-```
-
-Parameters that are arrays should be documented using WordPress’ flavor of hash notation style, each array value beginning with the `@type` tag, and and describing the value as follows:
-
-```
- * @type type $key Description. Default 'value'. Accepts 'value', 'value'.
- * (aligned with Description, if wraps to a new line)
-```
-
-A full array parameter would look like this:
-
-```
- * @param array $args {
- * Optional. An array of arguments.
- *
- * @type type $key Description. Default 'value'. Accepts 'value', 'value'.
- * (aligned with Description, if wraps to a new line)
- * @type type $key Description.
- * }
-```
-
-#### 2. Types
-
-Variables, constants, and class members should use the `@var` tag to describe the member's type.
-
-```
- * @var string
- */
-public $var = 'text';
-```
-
-#### 3. Relations and References
-
-Use `@see` to perform automatic links to other areas of the codebase. For example `{@see 'is_lifterlms'}` to link to the filter `is_lifterlms`.
-
-
-#### 4. Thrown Exceptions
-
-A function or method which throws an exception should document the thrown exception using an `@throws` tag.
-
-When present, the `@throws` tag should be added to the end of the docblock below the `@return` tag. An empty line should separate the `@return` and `@throws` tag.
-
-```
- * @return string
- *
- * @throws Exception A description of the raised exception.
- */
-```
-
-## DocBlock Examples
-
-
-### Functions and Class Methods
-
-Functions and class methods should be formatted as follows:
-
-+ Summary
-+ Description (optional)
-+ Changelog
-+ Links and References (where appropriate)
-+ Parameters
-+ Return
-
-```
-/**
- * Summary.
- *
- * Description.
- *
- * @since x.x.x
- * @since x.x.x Description of function/method changes.
- *
- * @see Function/method/class relied on
- * @link URL
- *
- * @param type $var Description.
- * @param type $var Optional. Description. Default.
- * @return type Description.
- */
-```
-
-
-### Classes
-
-Class DocBlocks should be formatted as follows:
-
-+ Summary
-+ Description (Optional)
-+ Links and References (as an example use `@see` to reference a super class when documenting a sub class)
-+ Changelog
-
-```
-/**
- * Summary.
- *
- * Description.
- *
- * @see Super_Class
- *
- * @since x.x.x
- * @since x.x.x Description of class changes.
- */
-```
-
-
-### Class Members
-
-Class properties and constants should be formatted as follows:
-
-+ Summary
-+ Changelog
-+ Type
-
-```
-/**
- * Summary.
- *
- * @since x.x.x
- * @since x.x.x Description of member changes.
- * @var type Optional description.
- */
-```
-
-
-### Hooks (Actions and Filters)
-
-Both action and filter hooks should be documented on the line immediately preceding the call to `do_action()` or `do_action_ref_array()`, `apply_filters()`, or `apply_filters_ref_array()`, and formatted as follows:
-
-+ Summary
-+ Description (Optional)
-+ Changelog
-+ Parameters
-
-Note that `@return` is not used for hook documentation, because action hooks return nothing, and filter hooks always return their first parameter.
-
-```
-/**
- * Summary.
- *
- * Description.
- *
- * @since x.x.x
- * @since x.x.x Description of hook changes.
- *
- * @param type $var Description.
- * @param array $args {
- * Short description about this hash.
- *
- * @type type $var Description.
- * @type type $var Description.
- * }
- * @param type $var Description.
- */
-```
-
-
-### File Headers
-
-The file header DocBlock is used to give an overview of what is contained in the file and should be formatted as follows:
-
-+ Summary
-+ Description (optional)
-+ Links and references
-+ Package
-+ Changelog
-
-```
-/**
- * Summary (no period for file headers)
- *
- * Description. (use period)
- *
- * @link URL
- *
- * @package LifterLMS/SecondaryPackage/TertiaryPackage
- *
- * @since x.x.x
- * @since x.x.x Description of file changes.
- * @version x.x.x
- */
-```
-
-
-[llms-dev]: https://developer.lifterlms.com/reference/
-[wp-core-docs]: https://developer.wordpress.org/coding-standards/inline-documentation-standards/
diff --git a/docs/e2e-tests-real.md b/docs/e2e-tests-real.md
deleted file mode 100644
index d4b4c2ba65..0000000000
--- a/docs/e2e-tests-real.md
+++ /dev/null
@@ -1,72 +0,0 @@
-Running E2E (End to End) Tests Against a Real Website
-=====================================================
-
-_The core E2E test suite is primarily designed to be run locally against managed Docker containers. However, it is possible to run the test suite against any WordPress website with a publicly accessible URL by following this guide._
-
-_To run tests locally against managed Docker containers, see the [E2E Testing README](../tests/e2e/README.md)._
-
-**NOTE: This is an experimental process! Proceed with caution. We are developing this process for internal use and thought it might be useful to some other folks.**
-
-**Another note: This process will import courses, create fake users, and add other data to your website and there is no cleanup proccess. If you choose to use this against a live production site that means that the database will have a bunch of fake test data added to it. So don't run this against a real production website. Use a staging website instead!**
-
-## Prerequisites
-
-+ Ability to use a terminal
-+ git
-+ node.js
-+ npm
-
-
-## Setup your local environment
-
-+ Install the LifterLMS repo: `git clone https://github.com/gocodebox/lifterlms`
-+ Move into the cloned directory: `cd liferlms`
-+ Install node packages: `npm ci`
-+ Create a new file in the created directory named `.llmsenv`.
-+ Use your favorite text editor to edit the file and add the following to the file (replacing the example data with your site's information):
-
-```
-WP_BASE_URL=https://yourwebsiteurl.tld
-WP_USERNAME=adminusername
-WP_PASSWORD=adminpassword
-```
-
-**This will store a password in a PLAIN TEXT which we know is wrong. Our internal use case uses this process with temporary sites which are regularly destroyed so the danger is acceptable to our use case. If you decide to use this process on a real website with real user information you have been warned that storing your production site's WP admin password in a plain text file in order to use this process is a bad idea. We recommend instead using environment variables to pass your password to the script later and removing the WP_PASSWORD from the `.llmsenv` file.**
-
-+ Save the file
-
-
-## Setup your production site
-
-+ Install and activate the LifterLMS plugin on your site
-
-
-## Run the tests
-
-There are two ways to run the E2E tests:
-
-### Headless mode
-
-Runs the tests and shows you the results.
-
-If errors are encountered, a screenshot of the page will be taken and saved in the `tmp/e2e-screenshots/` directory so you can see what the page looked like when things went sour.
-
-Error logs will be output in your terminal to review.
-
-Run headless tests by executing `npm run tests` in your terminal.
-
-
-### Interactive mode
-
-Launches an automated Chromium browser and runs the tests in "slow motion" so you can watch as the tests run.
-
-No screenshots are takeng in interactive mode.
-
-Error logs are output to the terminal for review.
-
-Run interactive tests by executing `npm run tests:dev` in your terminal.
-
-
-### Using environment variables
-
-If you don't want to store you admin password in a plaintext file you can define the WP_PASSWORD variable at runtime `WP_PASSWORD=yourpassword npm run tests`
diff --git a/docs/installing.md b/docs/installing.md
deleted file mode 100644
index 6bb012f3c3..0000000000
--- a/docs/installing.md
+++ /dev/null
@@ -1,80 +0,0 @@
-Installing for Development
-==========================
-
-## Requirements
-
-In order to build and develop LifterLMS locally, you'll need the following:
-
-+ PHP
-+ MySQL / MariaDB
-+ [Composer](https://getcomposer.org/download/)
-+ [Node.js](https://nodejs.org/en/download/)
-+ [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
-
-
-## Building LifterLMS
-
-### 1. Clone source from GitHub
-
-```sh
-$ git clone https://github.com/gocodebox/lifterlms
-$ cd lifterlms
-```
-
-If you're planning to contribute code, you should fork this repository and clone your fork instead.
-
-
-### 2. Install composer dependencies:
-
-```sh
-$ composer install
-```
-
-### 3. Install npm dependencies:
-
-```sh
-$ npm install --global gulp
-$ npm install
-```
-
-### 4. Build static assets
-
-```sh
-$ gulp build
-```
-
-The `lifterlms` directory is now an installable plugin that can be moved into your local server's `wp-content/plugins` directory.
-
-
-## Running PHPCS
-
-When contributing you should ensure your contributions follow our [coding](./coding-standards.md) and [documentation](./documentation-standards.md) standards.
-
-To check for errors and warnings in your code, run PHPCS:
-
-```sh
-$ composer run check-cs
-```
-
-To check for errors only:
-
-```sh
-$ composer run check-cs-errors
-```
-
-These reports may include issues that can be automatically fixed using PHPCBF:
-
-```sh
-$ composer run fix-cs
-```
-
-## Running Test Suites
-
-New code should also strive to be covered by automated tests.
-
-LifterLMS has unit and integration tests via phpunit and End-to-End tests via Jest and Puppeteer.
-
-For guides on running and contributing tests, see the relevant guides:
-
-+ [phpunit](../tests/phpunit/README.md)
-+ [e2e](../tests/e2e/README.md)
diff --git a/docs/releases.md b/docs/releases.md
deleted file mode 100644
index 6520df1f77..0000000000
--- a/docs/releases.md
+++ /dev/null
@@ -1,62 +0,0 @@
-Releasing LifterLMS Builds
-==========================
-
-This document outlines the workflow used by LifterLMS core maintainers to build and publish LifterLMS releases.
-
-This document assumes you have already installed LifterLMS for development following the [Installing for Development guide](./installing.md).
-
-## 1. Build the Release
-
-Prepare the release: `npm run dev release prepare`:
-
-When running this command, the following happens:
-
-1. Determines the version number based on the significance values found in `.changelogs/` files. Unless `-F` is passed to the command to force a specific version number.
-2. Write the changelog entries to `CHANGELOG.md`.
-3. Updates version numbers of placeholder `[version]` tags, `package.json`, etc...
-4. Runs the release build command, `npm run build`.
-
-## 2. Run tests and coding standards checks
-
-1. Ensure phpunit tests pass: `composer run tests-run`.
-2. Ensure phpcs checks pass: `composer run check-cs-errors`.
-3. Ensure e2e tests pass: `npm run test`.
-4. Ensure eslint checks pass: `npm run lint:js`.
-
-## 3. Commit and push
-
-After building and testing the built release, all changes should be committed and pushed to GitHub.
-
-## 3. Generate the Distribution Archive
-
-Run `npm run dev release archive`.
-
-## 4. Run pre-release tests on the archived
-
-Install and activate the zip file on a temporary sandbox site.
-
- 1. Run the setup wizard.
- 2. Import sample course
- 3. Enroll a student into the course.
- 4. Complete a lesson.
-
-_This manual testing ensures no errors occurred in the build steps above._
-
-## 5. Publish the Release
-
-Run `npm run dev release create`.
-
-The following steps are performed automatically by the above task:
-
-1. Publish to GitHub
- A. The contents of the distribution archive is force-pushed to the `release` branch.
- B. A new release tag draft is created for the current version number using `release` as the commit target.
- C. The distribution archive is uploaded to the release.
- D. The release is published.
- E. A webhook ping notifies the `llms-releaser` server which performs the remaining steps of the release:
-2. Publish to WordPress plugin repository
- A. Create a new SVN tag using the release asset (distribution archive) as the base.
- B. Update the `trunk` branch to match the new tag.
-3. A changelog blog post is published to make.lifterlms.com.
-4. The number is updated at LifterLMS.com
-5. The distribution archive is synced to the release asset bucket in AWS S3 as a backup.
diff --git a/gulpfile.js/index.js b/gulpfile.js/index.js
deleted file mode 100644
index 6b6010bbd7..0000000000
--- a/gulpfile.js/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Main Gulp File
- *
- * Requires all task files
- */
-var gulp = require('gulp');
-
-// All custom tasks.
-require( './tasks/js-additional' );
-require( './tasks/js-builder' );
-
-// All tasks from lib-tasks.
-require( 'lifterlms-lib-tasks' )( gulp );
diff --git a/gulpfile.js/tasks/js-additional.js b/gulpfile.js/tasks/js-additional.js
deleted file mode 100644
index 6e13545bab..0000000000
--- a/gulpfile.js/tasks/js-additional.js
+++ /dev/null
@@ -1,49 +0,0 @@
-var gulp = require( 'gulp' )
- , header = require( 'gulp-header' )
- , include = require( 'gulp-include' )
- , maps = require( 'gulp-sourcemaps' )
- , pump = require( 'pump' )
- , rename = require( 'gulp-rename' )
- , uglify = require( 'gulp-uglify' )
- , gulpignore = require( 'gulp-ignore' )
-
- , path = require( 'path' )
-;
-
-gulp.task( 'js-additional', function( cb ) {
-
- var notice = [
- '/****************************************************************',
- ' *',
- ' * Contributor\'s Notice',
- ' * ',
- ' * This is a compiled file and should not be edited directly!',
- ' * The uncompiled script is located in the "assets/private" directory',
- ' * ',
- ' ****************************************************************/',
- '',
- '',
- ];
-
- pump( [
- gulp.src( 'assets/js/private/**/*.js' ),
- include(),
- maps.init(),
- header( notice.join( '\n' ) ),
- maps.write('../maps/js', { destPath: 'assets/js' } ),
- gulp.dest( 'assets/js' ),
-
- // Don't pass maps any further.
- gulpignore.exclude( file => '.js' !== path.extname( file.basename ) ),
-
- uglify(),
- rename( {
- suffix: '.min',
- } ),
- maps.write('../maps/js', { destPath: 'assets/js' } ),
- gulp.dest( 'assets/js' )
- ],
- cb
- );
-
-} );
diff --git a/gulpfile.js/tasks/js-builder.js b/gulpfile.js/tasks/js-builder.js
deleted file mode 100644
index 22be2d3059..0000000000
--- a/gulpfile.js/tasks/js-builder.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * -----------------------------------------------------------
- * js-builder
- * -----------------------------------------------------------
- * Compile Admin builder Javascript
- */
-
-var gulp = require( 'gulp' )
- , requirejsOptimize = require( 'gulp-requirejs-optimize' )
- , rename = require( 'gulp-rename' )
- , sourcemaps = require( 'gulp-sourcemaps' )
-;
-
-gulp.task( 'js-builder', function( cb ) {
-
- gulp.src( 'assets/js/builder/main.js' )
- // unminified
- .pipe( sourcemaps.init() )
- .pipe( requirejsOptimize( function( file ) {
- return {
- name: 'vendor/almond',
- optimize: 'none',
- wrap: {
- start: "(function($){",
- end: "}(jQuery));"
- },
- baseUrl: 'assets/js/builder/',
- include: [ 'main' ],
- preserveLicenseComments: false
- };
- } ).on( 'error', ( err ) => console.log( err ) ) )
- .pipe( rename( 'llms-builder.js' ) )
- .pipe( sourcemaps.write( '../maps/js', { destPath: 'assets/js' } ) )
- .pipe( gulp.dest( 'assets/js/' ) )
-
- // minified
- .pipe( sourcemaps.init() )
- .pipe( requirejsOptimize( function( file ) {
- return {
- name: 'vendor/almond',
- optimize: 'uglify2',
- wrap: {
- start: "(function($){",
- end: "}(jQuery));"
- },
- baseUrl: 'assets/js/builder/',
- include: [ 'main' ],
- preserveLicenseComments: false
- };
- } ).on( 'error', ( err ) => console.log( err ) ) )
- .pipe( rename( 'llms-builder.min.js' ) )
- .pipe( sourcemaps.write( '../maps/js', { destPath: 'assets/js' } ) )
- .pipe( gulp.dest( 'assets/js/' ) );
-
- cb();
-
-});
diff --git a/includes/abstracts/abstract.llms.post.model.php b/includes/abstracts/abstract.llms.post.model.php
old mode 100755
new mode 100644
diff --git a/includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php b/includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php
index cdc8ecf601..d8e33151f5 100644
--- a/includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php
+++ b/includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php
@@ -5,7 +5,7 @@
* @package LifterLMS/Admin/PostTypes/MetaBoxes/Classes
*
* @since 1.0.0
- * @version 5.9.0
+ * @version 6.9.0
*/
defined( 'ABSPATH' ) || exit;
@@ -45,6 +45,7 @@ public function configure() {
* @since 3.32.0 Coupons can now be restricted also to a draft or scheduled Course/Membership
* via the ` ` data attribute 'post-statuses' (data-post-status).
* @since 3.37.19 Localize strings that were missing translation functions.
+ * @since 6.9.0 Add step definitions for discount amount and trial discount amount to allow float values to be used.
*
* @return array
*/
@@ -136,6 +137,7 @@ public function get_fields() {
'class' => 'code input-full',
'desc_class' => 'd-all',
'required' => true,
+ 'step' => '0.01',
),
array(
'type' => 'checkbox',
@@ -155,6 +157,7 @@ public function get_fields() {
'desc_class' => 'd-all',
'group' => '',
'value' => '',
+ 'step' => '0.01',
),
),
),
diff --git a/languages/README.md b/languages/README.md
deleted file mode 100644
index 4858d32b7a..0000000000
--- a/languages/README.md
+++ /dev/null
@@ -1,24 +0,0 @@
-LifterLMS Localization and Language Files
-=========================================
-
-This directory contains localization and language files for the LifterLMS plugin.
-
-## Translating LifterLMS
-
-LifterLMS is fully translatable. The main `.pot` file contained in this directory ([lifterlms.pot](lifterlms.pot)) contains all translatable strings available in the source code. This file is automatically generated on release.
-
-
-## Localization Information Files
-
-The `.php` files contained within this directory contain lists of localization information (such as country, address, and currency formatting data). These files are loaded by LifterLMS core functions to various areas of the LifterLMS plugin.
-
-The data contained within these files is compiled from regularly updated sources and converted into a format used by our internal API. These files are automatically generated during a release step.
-
-Information for these files is derived from the following projects and sources:
-
-+ [Countries States Cities Database](https://github.com/dr5hn/countries-states-cities-database)
-+ [Currency Formatter](https://github.com/smirzaei/currency-formatter)
-+ [addressfield.json](https://github.com/tableau-mkt/addressfield.json)
-+ [LocalePlanet](https://www.localeplanet.com/)
-
-If you locate any incorrect information in any of these files, please let us know by opening [a new issue](https://github.com/gocodebox/lifterlms/issues/new/choose).
diff --git a/languages/lifterlms.pot b/languages/lifterlms.pot
index 9cb34f8771..9622edb384 100644
--- a/languages/lifterlms.pot
+++ b/languages/lifterlms.pot
@@ -2,14 +2,14 @@
# This file is distributed under the GPLv3.
msgid ""
msgstr ""
-"Project-Id-Version: LifterLMS 6.8.0\n"
+"Project-Id-Version: LifterLMS 6.9.0\n"
"Report-Msgid-Bugs-To: https://lifterlms.com/my-account/my-tickets\n"
"Last-Translator: Team LifterLMS \n"
"Language-Team: Team LifterLMS \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"POT-Creation-Date: 2022-07-12T13:38:52-06:00\n"
+"POT-Creation-Date: 2022-07-28T12:48:36-06:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: llms/dev 0.0.5\n"
"X-Domain: lifterlms\n"
@@ -149,8 +149,8 @@ msgid "The description the user sees during checkout."
msgstr ""
#: includes/abstracts/abstract.llms.payment.gateway.php:320
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:217
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:221
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:220
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:224
#: includes/admin/post-types/post-tables/class.llms.admin.post.table.coupons.php:47
#: includes/admin/views/builder/question.php:66
#: includes/class.llms.l10n.js.php:163
@@ -538,7 +538,7 @@ msgstr ""
#: includes/admin/class-llms-admin-users-table.php:119
#: includes/admin/class.llms.admin.builder.php:61
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:167
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:170
#: includes/admin/post-types/meta-boxes/class.llms.meta.box.voucher.php:69
#: includes/admin/post-types/meta-boxes/class.llms.meta.box.voucher.php:72
#: includes/admin/reporting/class.llms.admin.reporting.php:297
@@ -1487,7 +1487,7 @@ msgstr ""
#: includes/admin/post-types/meta-boxes/class.llms.meta.box.achievement.php:85
#: includes/admin/post-types/meta-boxes/class.llms.meta.box.certificate.php:86
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:81
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:82
#: includes/admin/post-types/meta-boxes/class.llms.meta.box.course.options.php:127
#: includes/admin/post-types/meta-boxes/class.llms.meta.box.lesson.php:76
#: includes/admin/post-types/meta-boxes/class.llms.meta.box.voucher.php:63
@@ -1523,120 +1523,120 @@ msgstr ""
msgid "Coupon Settings"
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:63
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:69
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:64
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:70
#: includes/class.llms.ajax.handler.php:970
#: includes/llms.functions.core.php:1047
msgid "ID#"
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:89
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:90
msgid "Select a dollar or percentage discount."
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:92
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:93
msgid "Discount Type"
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:97
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:98
#: includes/models/model.llms.coupon.php:123
msgid "Percentage Discount"
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:101
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:102
msgid "%s Discount"
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:107
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:108
msgid "Access Plan Types"
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:108
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:109
msgid "Select which type of access plans this coupon can be used with."
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:114
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:115
msgid "Any Access Plan"
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:118
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:119
msgid "Only One-time Payment Access Plans"
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:122
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:123
msgid "Only Recurring Access Plans"
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:133
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:134
msgid "Discount Amount"
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:134
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:135
msgid "The amount to be subtracted from the \"Price\" of an applicable access plan. Do not include symbols such as %1$s."
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:142
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:144
msgid "Enable Trial Pricing Discount"
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:143
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:145
msgid "When checked, the coupon can apply a discount to the \"Trial Price\" of an access plan."
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:151
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:153
msgid "Trial Discount Amount"
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:152
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:154
msgid "The amount to be subtracted from the \"Trial Price\" of an applicable access plan. Do not include symbols such as %1$s."
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:163
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:166
#: includes/admin/post-types/meta-boxes/class.llms.meta.box.course.options.php:175
#: includes/admin/post-types/meta-boxes/class.llms.meta.box.membership.php:168
msgid "Restrictions"
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:168
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:171
msgid "Limit coupon to the following courses."
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:181
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:184
#: includes/admin/post-types/meta-boxes/class.llms.meta.box.product.php:129
#: includes/admin/post-types/meta-boxes/class.llms.meta.box.voucher.php:86
#: includes/class.llms.post-types.php:646
msgid "Membership"
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:182
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:185
msgid "Limit coupon to the following memberships."
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:195
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:198
msgid "Coupon Expiration Date"
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:196
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:199
msgid "Coupon will no longer be usable after this date. Leave blank for no expiration."
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:205
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:208
msgid "Usage Limit"
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:206
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:209
msgid "The amount of times this coupon can be used. Leave empty or enter 0 for unlimited uses."
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:222
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:225
msgid "Optional description for internal notes. This is never displayed to your students."
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:256
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:259
msgid "Coupon code already exists. Customers will use the most recently created coupon with this code."
msgstr ""
-#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:265
+#: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php:268
msgid "A Trial Discount Amount was not supplied. Trial Pricing Discount has automatically been disabled. Please re-enable Trial Pricing Discount and enter a Trial Discount Amount, then save this coupon again."
msgstr ""
@@ -10976,7 +10976,7 @@ msgid "Algeria"
msgstr ""
#: languages/countries.php:43
-#: languages/states.php:5046
+#: languages/states.php:5048
msgid "American Samoa"
msgstr ""
@@ -11280,7 +11280,7 @@ msgid "Gabon"
msgstr ""
#: languages/countries.php:118
-#: languages/states.php:5055
+#: languages/states.php:5057
msgid "Georgia"
msgstr ""
@@ -11314,7 +11314,7 @@ msgid "Guadeloupe"
msgstr ""
#: languages/countries.php:126
-#: languages/states.php:5056
+#: languages/states.php:5058
msgid "Guam"
msgstr ""
@@ -11614,7 +11614,7 @@ msgid "Norfolk Island"
msgstr ""
#: languages/countries.php:200
-#: languages/states.php:5081
+#: languages/states.php:5083
msgid "Northern Mariana Islands"
msgstr ""
@@ -11671,7 +11671,7 @@ msgid "Portugal"
msgstr ""
#: languages/countries.php:214
-#: languages/states.php:5086
+#: languages/states.php:5088
msgid "Puerto Rico"
msgstr ""
@@ -11730,7 +11730,7 @@ msgid "Samoa"
msgstr ""
#: languages/countries.php:228
-#: languages/states.php:4443
+#: languages/states.php:4445
msgid "San Marino"
msgstr ""
@@ -11920,7 +11920,7 @@ msgid "United States"
msgstr ""
#: languages/countries.php:275
-#: languages/states.php:5092
+#: languages/states.php:5094
msgid "United States Minor Outlying Islands"
msgstr ""
@@ -13329,7 +13329,7 @@ msgstr ""
#: languages/states.php:97
#: languages/states.php:1164
#: languages/states.php:1746
-#: languages/states.php:5145
+#: languages/states.php:5147
msgid "Saint George Parish"
msgstr ""
@@ -13340,7 +13340,7 @@ msgid "Saint John Parish"
msgstr ""
#: languages/states.php:99
-#: languages/states.php:2361
+#: languages/states.php:2363
msgid "Saint Mary Parish"
msgstr ""
@@ -13816,7 +13816,7 @@ msgid "Tasmania"
msgstr ""
#: languages/states.php:232
-#: languages/states.php:3299
+#: languages/states.php:3301
msgid "Victoria"
msgstr ""
@@ -14189,7 +14189,7 @@ msgid "Christ Church"
msgstr ""
#: languages/states.php:333
-#: languages/states.php:2358
+#: languages/states.php:2360
msgid "Saint Andrew"
msgstr ""
@@ -14526,7 +14526,7 @@ msgid "Hainaut"
msgstr ""
#: languages/states.php:421
-#: languages/states.php:3566
+#: languages/states.php:3568
msgid "Limburg"
msgstr ""
@@ -14893,7 +14893,7 @@ msgid "Vratsa Province"
msgstr ""
#: languages/states.php:519
-#: languages/states.php:2582
+#: languages/states.php:2584
msgid "Capital Governorate"
msgstr ""
@@ -15107,7 +15107,7 @@ msgstr ""
#: languages/states.php:583
#: languages/states.php:1968
-#: languages/states.php:4514
+#: languages/states.php:4516
msgid "La Paz Department"
msgstr ""
@@ -15144,8 +15144,8 @@ msgid "Amapá"
msgstr ""
#: languages/states.php:595
-#: languages/states.php:3687
-#: languages/states.php:5149
+#: languages/states.php:3689
+#: languages/states.php:5151
msgid "Amazonas"
msgstr ""
@@ -16061,7 +16061,7 @@ msgid "Sassandra-Marahoué District"
msgstr ""
#: languages/states.php:847
-#: languages/states.php:4579
+#: languages/states.php:4581
msgid "Savanes Region"
msgstr ""
@@ -17188,13 +17188,13 @@ msgstr ""
#: languages/states.php:1162
#: languages/states.php:1744
-#: languages/states.php:5143
+#: languages/states.php:5145
msgid "Saint Andrew Parish"
msgstr ""
#: languages/states.php:1163
#: languages/states.php:1745
-#: languages/states.php:5144
+#: languages/states.php:5146
msgid "Saint David Parish"
msgstr ""
@@ -17213,7 +17213,7 @@ msgstr ""
#: languages/states.php:1169
#: languages/states.php:1749
-#: languages/states.php:5146
+#: languages/states.php:5148
msgid "Saint Patrick Parish"
msgstr ""
@@ -19410,15 +19410,15 @@ msgid "Brong-Ahafo Region"
msgstr ""
#: languages/states.php:1772
-#: languages/states.php:3382
-#: languages/states.php:3600
-#: languages/states.php:5037
+#: languages/states.php:3384
+#: languages/states.php:3602
+#: languages/states.php:5039
msgid "Central Region"
msgstr ""
#: languages/states.php:1773
#: languages/states.php:2233
-#: languages/states.php:5038
+#: languages/states.php:5040
msgid "Eastern Region"
msgstr ""
@@ -19427,8 +19427,8 @@ msgid "Greater Accra Region"
msgstr ""
#: languages/states.php:1775
-#: languages/states.php:3400
-#: languages/states.php:5039
+#: languages/states.php:3402
+#: languages/states.php:5041
msgid "Northern Region"
msgstr ""
@@ -19446,8 +19446,8 @@ msgstr ""
#: languages/states.php:1779
#: languages/states.php:2229
-#: languages/states.php:3602
-#: languages/states.php:5040
+#: languages/states.php:3604
+#: languages/states.php:5042
msgid "Western Region"
msgstr ""
@@ -20804,7 +20804,7 @@ msgid "Puducherry"
msgstr ""
#: languages/states.php:2162
-#: languages/states.php:3842
+#: languages/states.php:3844
msgid "Punjab"
msgstr ""
@@ -21057,7 +21057,7 @@ msgid "Northeastern Region"
msgstr ""
#: languages/states.php:2234
-#: languages/states.php:3407
+#: languages/states.php:3409
msgid "Southern Region"
msgstr ""
@@ -21081,11158 +21081,11162 @@ msgstr ""
msgid "Ascoli Piceno"
msgstr ""
-#: languages/states.php:2243
-msgid "Asti"
-msgstr ""
-
#: languages/states.php:2244
-msgid "Avellino"
+msgid "Arezzo"
msgstr ""
#: languages/states.php:2245
-#: languages/states.php:4466
-msgid "Bari"
+msgid "Asti"
msgstr ""
#: languages/states.php:2246
-msgid "Barletta-Andria-Trani"
+msgid "Avellino"
msgstr ""
#: languages/states.php:2247
-msgid "Belluno"
+#: languages/states.php:4468
+msgid "Bari"
msgstr ""
#: languages/states.php:2248
-msgid "Benevento Province"
+msgid "Barletta-Andria-Trani"
msgstr ""
#: languages/states.php:2249
-msgid "Bergamo"
+msgid "Belluno"
msgstr ""
#: languages/states.php:2250
-msgid "Biella"
+msgid "Benevento Province"
msgstr ""
#: languages/states.php:2251
-msgid "Bologna"
+msgid "Bergamo"
msgstr ""
#: languages/states.php:2252
-msgid "Brescia"
+msgid "Biella"
msgstr ""
#: languages/states.php:2253
-msgid "Brindisi"
+msgid "Bologna"
msgstr ""
#: languages/states.php:2254
-msgid "Cagliari"
+msgid "Brescia"
msgstr ""
#: languages/states.php:2255
-msgid "Caltanissetta"
+msgid "Brindisi"
msgstr ""
#: languages/states.php:2256
-msgid "Campobasso"
+msgid "Cagliari"
msgstr ""
#: languages/states.php:2257
-msgid "Carbonia-Iglesias"
+msgid "Caltanissetta"
msgstr ""
#: languages/states.php:2258
-msgid "Caserta"
+msgid "Campobasso"
msgstr ""
#: languages/states.php:2259
-msgid "Catania"
+msgid "Carbonia-Iglesias"
msgstr ""
#: languages/states.php:2260
-msgid "Catanzaro"
+msgid "Caserta"
msgstr ""
#: languages/states.php:2261
-msgid "Chieti"
+msgid "Catania"
msgstr ""
#: languages/states.php:2262
-msgid "Como"
+msgid "Catanzaro"
msgstr ""
#: languages/states.php:2263
-msgid "Cosenza"
+msgid "Chieti"
msgstr ""
#: languages/states.php:2264
-msgid "Cremona"
+msgid "Como"
msgstr ""
#: languages/states.php:2265
-msgid "Crotone"
+msgid "Cosenza"
msgstr ""
#: languages/states.php:2266
-msgid "Cuneo"
+msgid "Cremona"
msgstr ""
#: languages/states.php:2267
-msgid "Enna"
+msgid "Crotone"
msgstr ""
#: languages/states.php:2268
-msgid "Fermo"
+msgid "Cuneo"
msgstr ""
#: languages/states.php:2269
-msgid "Ferrara"
+msgid "Enna"
msgstr ""
#: languages/states.php:2270
-msgid "Florence"
+msgid "Fermo"
msgstr ""
#: languages/states.php:2271
-msgid "Foggia"
+msgid "Ferrara"
msgstr ""
#: languages/states.php:2272
-msgid "Forlì-Cesena"
+msgid "Florence"
msgstr ""
#: languages/states.php:2273
-msgid "Frosinone"
+msgid "Foggia"
msgstr ""
#: languages/states.php:2274
-msgid "Genoa"
+msgid "Forlì-Cesena"
msgstr ""
#: languages/states.php:2275
-msgid "Gorizia"
+msgid "Frosinone"
msgstr ""
#: languages/states.php:2276
-msgid "Grosseto"
+msgid "Genoa"
msgstr ""
#: languages/states.php:2277
-msgid "Imperia"
+msgid "Gorizia"
msgstr ""
#: languages/states.php:2278
-msgid "Isernia"
+msgid "Grosseto"
msgstr ""
#: languages/states.php:2279
-msgid "L'Aquila"
+msgid "Imperia"
msgstr ""
#: languages/states.php:2280
-msgid "La Spezia"
+msgid "Isernia"
msgstr ""
#: languages/states.php:2281
-msgid "Latina"
+msgid "L'Aquila"
msgstr ""
#: languages/states.php:2282
-msgid "Lecce"
+msgid "La Spezia"
msgstr ""
#: languages/states.php:2283
-msgid "Lecco"
+msgid "Latina"
msgstr ""
#: languages/states.php:2284
-msgid "Livorno"
+msgid "Lecce"
msgstr ""
#: languages/states.php:2285
-msgid "Lodi"
+msgid "Lecco"
msgstr ""
#: languages/states.php:2286
-msgid "Lucca"
+msgid "Livorno"
msgstr ""
#: languages/states.php:2287
-msgid "Macerata"
+msgid "Lodi"
msgstr ""
#: languages/states.php:2288
-msgid "Mantua"
+msgid "Lucca"
msgstr ""
#: languages/states.php:2289
-msgid "Massa and Carrara"
+msgid "Macerata"
msgstr ""
#: languages/states.php:2290
-msgid "Matera"
+msgid "Mantua"
msgstr ""
#: languages/states.php:2291
-msgid "Medio Campidano"
+msgid "Massa and Carrara"
msgstr ""
#: languages/states.php:2292
-msgid "Messina"
+msgid "Matera"
msgstr ""
#: languages/states.php:2293
-msgid "Milan"
+msgid "Medio Campidano"
msgstr ""
#: languages/states.php:2294
-msgid "Modena"
+msgid "Messina"
msgstr ""
#: languages/states.php:2295
-msgid "Monza and Brianza"
+msgid "Milan"
msgstr ""
#: languages/states.php:2296
-msgid "Naples"
+msgid "Modena"
msgstr ""
#: languages/states.php:2297
-msgid "Novara"
+msgid "Monza and Brianza"
msgstr ""
#: languages/states.php:2298
-msgid "Nuoro"
+msgid "Naples"
msgstr ""
#: languages/states.php:2299
-msgid "Ogliastra"
+msgid "Novara"
msgstr ""
#: languages/states.php:2300
-msgid "Olbia-Tempio"
+msgid "Nuoro"
msgstr ""
#: languages/states.php:2301
-msgid "Oristano"
+msgid "Ogliastra"
msgstr ""
#: languages/states.php:2302
-msgid "Padua"
+msgid "Olbia-Tempio"
msgstr ""
#: languages/states.php:2303
-msgid "Palermo"
+msgid "Oristano"
msgstr ""
#: languages/states.php:2304
-msgid "Parma"
+msgid "Padua"
msgstr ""
#: languages/states.php:2305
-msgid "Pavia"
+msgid "Palermo"
msgstr ""
#: languages/states.php:2306
-msgid "Perugia"
+msgid "Parma"
msgstr ""
#: languages/states.php:2307
-msgid "Pesaro and Urbino Province"
+msgid "Pavia"
msgstr ""
#: languages/states.php:2308
-msgid "Pescara"
+msgid "Perugia"
msgstr ""
#: languages/states.php:2309
-msgid "Piacenza"
+msgid "Pesaro and Urbino Province"
msgstr ""
#: languages/states.php:2310
-msgid "Pisa"
+msgid "Pescara"
msgstr ""
#: languages/states.php:2311
-msgid "Pistoia"
+msgid "Piacenza"
msgstr ""
#: languages/states.php:2312
-msgid "Pordenone"
+msgid "Pisa"
msgstr ""
#: languages/states.php:2313
-msgid "Potenza"
+msgid "Pistoia"
msgstr ""
#: languages/states.php:2314
-msgid "Prato"
+msgid "Pordenone"
msgstr ""
#: languages/states.php:2315
-msgid "Ragusa"
+msgid "Potenza"
msgstr ""
#: languages/states.php:2316
-msgid "Ravenna"
+msgid "Prato"
msgstr ""
#: languages/states.php:2317
-msgid "Reggio Calabria"
+msgid "Ragusa"
msgstr ""
#: languages/states.php:2318
-msgid "Reggio Emilia"
+msgid "Ravenna"
msgstr ""
#: languages/states.php:2319
-msgid "Rieti"
+msgid "Reggio Calabria"
msgstr ""
#: languages/states.php:2320
-msgid "Rimini"
+msgid "Reggio Emilia"
msgstr ""
#: languages/states.php:2321
-msgid "Rome"
+msgid "Rieti"
msgstr ""
#: languages/states.php:2322
-msgid "Rovigo"
+msgid "Rimini"
msgstr ""
#: languages/states.php:2323
-msgid "Salerno"
+msgid "Rome"
msgstr ""
#: languages/states.php:2324
-msgid "Sassari"
+msgid "Rovigo"
msgstr ""
#: languages/states.php:2325
-msgid "Savona"
+msgid "Salerno"
msgstr ""
#: languages/states.php:2326
-msgid "Siena"
+msgid "Sassari"
msgstr ""
#: languages/states.php:2327
-msgid "Siracusa"
+msgid "Savona"
msgstr ""
#: languages/states.php:2328
-msgid "Sondrio"
+msgid "Siena"
msgstr ""
#: languages/states.php:2329
-msgid "South Tyrol"
+msgid "Siracusa"
msgstr ""
#: languages/states.php:2330
-msgid "Taranto"
+msgid "Sondrio"
msgstr ""
#: languages/states.php:2331
-msgid "Teramo"
+msgid "South Tyrol"
msgstr ""
#: languages/states.php:2332
-msgid "Terni"
+msgid "Taranto"
msgstr ""
#: languages/states.php:2333
-msgid "Trapani"
+msgid "Teramo"
msgstr ""
#: languages/states.php:2334
-msgid "Trentino"
+msgid "Terni"
msgstr ""
#: languages/states.php:2335
-msgid "Treviso"
+msgid "Trapani"
msgstr ""
#: languages/states.php:2336
-msgid "Trieste"
+msgid "Trentino"
msgstr ""
#: languages/states.php:2337
-msgid "Turin"
+msgid "Treviso"
msgstr ""
#: languages/states.php:2338
-msgid "Udine"
+msgid "Trieste"
msgstr ""
#: languages/states.php:2339
-msgid "Varese"
+msgid "Turin"
msgstr ""
#: languages/states.php:2340
-msgid "Venice"
+msgid "Udine"
msgstr ""
#: languages/states.php:2341
-msgid "Verbano-Cusio-Ossola"
+msgid "Varese"
msgstr ""
#: languages/states.php:2342
-msgid "Vercelli"
+msgid "Venice"
msgstr ""
#: languages/states.php:2343
-msgid "Verona"
+msgid "Verbano-Cusio-Ossola"
msgstr ""
#: languages/states.php:2344
-msgid "Vibo Valentia"
+msgid "Vercelli"
msgstr ""
#: languages/states.php:2345
-msgid "Vicenza"
+msgid "Verona"
msgstr ""
#: languages/states.php:2346
+msgid "Vibo Valentia"
+msgstr ""
+
+#: languages/states.php:2347
+msgid "Vicenza"
+msgstr ""
+
+#: languages/states.php:2348
msgid "Viterbo"
msgstr ""
-#: languages/states.php:2350
+#: languages/states.php:2352
msgid "Westmoreland Parish"
msgstr ""
-#: languages/states.php:2351
+#: languages/states.php:2353
msgid "Saint Elizabeth Parish"
msgstr ""
-#: languages/states.php:2352
+#: languages/states.php:2354
msgid "Manchester Parish"
msgstr ""
-#: languages/states.php:2353
+#: languages/states.php:2355
msgid "Clarendon Parish"
msgstr ""
-#: languages/states.php:2354
+#: languages/states.php:2356
msgid "Saint Catherine Parish"
msgstr ""
-#: languages/states.php:2355
+#: languages/states.php:2357
msgid "Hanover Parish"
msgstr ""
-#: languages/states.php:2356
+#: languages/states.php:2358
msgid "Kingston Parish"
msgstr ""
-#: languages/states.php:2357
+#: languages/states.php:2359
msgid "Portland Parish"
msgstr ""
-#: languages/states.php:2359
+#: languages/states.php:2361
msgid "Saint Ann Parish"
msgstr ""
-#: languages/states.php:2360
+#: languages/states.php:2362
msgid "Saint James Parish"
msgstr ""
-#: languages/states.php:2362
+#: languages/states.php:2364
msgid "Saint Thomas Parish"
msgstr ""
-#: languages/states.php:2363
+#: languages/states.php:2365
msgid "Trelawny Parish"
msgstr ""
-#: languages/states.php:2366
+#: languages/states.php:2368
msgid "Ajloun Governorate"
msgstr ""
-#: languages/states.php:2367
+#: languages/states.php:2369
msgid "Amman Governorate"
msgstr ""
-#: languages/states.php:2368
+#: languages/states.php:2370
msgid "Aqaba Governorate"
msgstr ""
-#: languages/states.php:2369
+#: languages/states.php:2371
msgid "Balqa Governorate"
msgstr ""
-#: languages/states.php:2370
+#: languages/states.php:2372
msgid "Irbid Governorate"
msgstr ""
-#: languages/states.php:2371
+#: languages/states.php:2373
msgid "Jerash Governorate"
msgstr ""
-#: languages/states.php:2372
+#: languages/states.php:2374
msgid "Karak Governorate"
msgstr ""
-#: languages/states.php:2373
+#: languages/states.php:2375
msgid "Ma'an Governorate"
msgstr ""
-#: languages/states.php:2374
+#: languages/states.php:2376
msgid "Madaba Governorate"
msgstr ""
-#: languages/states.php:2375
+#: languages/states.php:2377
msgid "Mafraq Governorate"
msgstr ""
-#: languages/states.php:2376
+#: languages/states.php:2378
msgid "Tafilah Governorate"
msgstr ""
-#: languages/states.php:2377
+#: languages/states.php:2379
msgid "Zarqa Governorate"
msgstr ""
-#: languages/states.php:2380
+#: languages/states.php:2382
msgid "Gunma Prefecture"
msgstr ""
-#: languages/states.php:2381
+#: languages/states.php:2383
msgid "Saitama Prefecture"
msgstr ""
-#: languages/states.php:2382
+#: languages/states.php:2384
msgid "Chiba Prefecture"
msgstr ""
-#: languages/states.php:2383
+#: languages/states.php:2385
msgid "Tokyo"
msgstr ""
-#: languages/states.php:2384
+#: languages/states.php:2386
msgid "Kanagawa Prefecture"
msgstr ""
-#: languages/states.php:2385
+#: languages/states.php:2387
msgid "Niigata Prefecture"
msgstr ""
-#: languages/states.php:2386
+#: languages/states.php:2388
msgid "Toyama Prefecture"
msgstr ""
-#: languages/states.php:2387
+#: languages/states.php:2389
msgid "Ishikawa Prefecture"
msgstr ""
-#: languages/states.php:2388
+#: languages/states.php:2390
msgid "Fukui Prefecture"
msgstr ""
-#: languages/states.php:2389
+#: languages/states.php:2391
msgid "Yamanashi Prefecture"
msgstr ""
-#: languages/states.php:2390
+#: languages/states.php:2392
msgid "Nagano Prefecture"
msgstr ""
-#: languages/states.php:2391
+#: languages/states.php:2393
msgid "Gifu Prefecture"
msgstr ""
-#: languages/states.php:2392
+#: languages/states.php:2394
msgid "Shizuoka Prefecture"
msgstr ""
-#: languages/states.php:2393
+#: languages/states.php:2395
msgid "Aichi Prefecture"
msgstr ""
-#: languages/states.php:2394
+#: languages/states.php:2396
msgid "Mie Prefecture"
msgstr ""
-#: languages/states.php:2395
+#: languages/states.php:2397
msgid "Shiga Prefecture"
msgstr ""
-#: languages/states.php:2396
+#: languages/states.php:2398
msgid "Kyōto Prefecture"
msgstr ""
-#: languages/states.php:2397
+#: languages/states.php:2399
msgid "Ōsaka Prefecture"
msgstr ""
-#: languages/states.php:2398
+#: languages/states.php:2400
msgid "Hyōgo Prefecture"
msgstr ""
-#: languages/states.php:2399
+#: languages/states.php:2401
msgid "Nara Prefecture"
msgstr ""
-#: languages/states.php:2400
+#: languages/states.php:2402
msgid "Wakayama Prefecture"
msgstr ""
-#: languages/states.php:2401
+#: languages/states.php:2403
msgid "Tottori Prefecture"
msgstr ""
-#: languages/states.php:2402
+#: languages/states.php:2404
msgid "Shimane Prefecture"
msgstr ""
-#: languages/states.php:2403
+#: languages/states.php:2405
msgid "Okayama Prefecture"
msgstr ""
-#: languages/states.php:2404
+#: languages/states.php:2406
msgid "Hiroshima Prefecture"
msgstr ""
-#: languages/states.php:2405
+#: languages/states.php:2407
msgid "Yamaguchi Prefecture"
msgstr ""
-#: languages/states.php:2406
+#: languages/states.php:2408
msgid "Tokushima Prefecture"
msgstr ""
-#: languages/states.php:2407
+#: languages/states.php:2409
msgid "Kagawa Prefecture"
msgstr ""
-#: languages/states.php:2408
+#: languages/states.php:2410
msgid "Ehime Prefecture"
msgstr ""
-#: languages/states.php:2409
+#: languages/states.php:2411
msgid "Fukuoka Prefecture"
msgstr ""
-#: languages/states.php:2410
+#: languages/states.php:2412
msgid "Saga Prefecture"
msgstr ""
-#: languages/states.php:2411
+#: languages/states.php:2413
msgid "Nagasaki Prefecture"
msgstr ""
-#: languages/states.php:2412
+#: languages/states.php:2414
msgid "Kumamoto Prefecture"
msgstr ""
-#: languages/states.php:2413
+#: languages/states.php:2415
msgid "Ōita Prefecture"
msgstr ""
-#: languages/states.php:2414
+#: languages/states.php:2416
msgid "Miyazaki Prefecture"
msgstr ""
-#: languages/states.php:2415
+#: languages/states.php:2417
msgid "Kagoshima Prefecture"
msgstr ""
-#: languages/states.php:2416
+#: languages/states.php:2418
msgid "Okinawa Prefecture"
msgstr ""
-#: languages/states.php:2417
+#: languages/states.php:2419
msgid "Akita Prefecture"
msgstr ""
-#: languages/states.php:2418
+#: languages/states.php:2420
msgid "Aomori Prefecture"
msgstr ""
-#: languages/states.php:2419
+#: languages/states.php:2421
msgid "Fukushima Prefecture"
msgstr ""
-#: languages/states.php:2420
+#: languages/states.php:2422
msgid "Hokkaidō Prefecture"
msgstr ""
-#: languages/states.php:2421
+#: languages/states.php:2423
msgid "Ibaraki Prefecture"
msgstr ""
-#: languages/states.php:2422
+#: languages/states.php:2424
msgid "Iwate Prefecture"
msgstr ""
-#: languages/states.php:2423
+#: languages/states.php:2425
msgid "Miyagi Prefecture"
msgstr ""
-#: languages/states.php:2424
+#: languages/states.php:2426
msgid "Tochigi Prefecture"
msgstr ""
-#: languages/states.php:2425
+#: languages/states.php:2427
msgid "Yamagata Prefecture"
msgstr ""
-#: languages/states.php:2428
+#: languages/states.php:2430
msgid "Kajiado County"
msgstr ""
-#: languages/states.php:2429
+#: languages/states.php:2431
msgid "Kakamega County"
msgstr ""
-#: languages/states.php:2430
+#: languages/states.php:2432
msgid "Kericho County"
msgstr ""
-#: languages/states.php:2431
+#: languages/states.php:2433
msgid "Kiambu County"
msgstr ""
-#: languages/states.php:2432
+#: languages/states.php:2434
msgid "Kilifi County"
msgstr ""
-#: languages/states.php:2433
+#: languages/states.php:2435
msgid "Kirinyaga County"
msgstr ""
-#: languages/states.php:2434
+#: languages/states.php:2436
msgid "Kisii County"
msgstr ""
-#: languages/states.php:2435
+#: languages/states.php:2437
msgid "Kisumu County"
msgstr ""
-#: languages/states.php:2436
+#: languages/states.php:2438
msgid "Kitui County"
msgstr ""
-#: languages/states.php:2437
+#: languages/states.php:2439
msgid "Kwale County"
msgstr ""
-#: languages/states.php:2438
+#: languages/states.php:2440
msgid "Laikipia County"
msgstr ""
-#: languages/states.php:2439
+#: languages/states.php:2441
msgid "Lamu County"
msgstr ""
-#: languages/states.php:2440
+#: languages/states.php:2442
msgid "Machakos County"
msgstr ""
-#: languages/states.php:2441
+#: languages/states.php:2443
msgid "Makueni County"
msgstr ""
-#: languages/states.php:2442
+#: languages/states.php:2444
msgid "Mandera County"
msgstr ""
-#: languages/states.php:2443
+#: languages/states.php:2445
msgid "Marsabit County"
msgstr ""
-#: languages/states.php:2444
+#: languages/states.php:2446
msgid "Meru County"
msgstr ""
-#: languages/states.php:2445
+#: languages/states.php:2447
msgid "Migori County"
msgstr ""
-#: languages/states.php:2446
+#: languages/states.php:2448
msgid "Mombasa County"
msgstr ""
-#: languages/states.php:2447
+#: languages/states.php:2449
msgid "Muranga County"
msgstr ""
-#: languages/states.php:2448
+#: languages/states.php:2450
msgid "Nakuru District"
msgstr ""
-#: languages/states.php:2449
+#: languages/states.php:2451
msgid "Nandi District"
msgstr ""
-#: languages/states.php:2450
+#: languages/states.php:2452
msgid "Narok County"
msgstr ""
-#: languages/states.php:2451
+#: languages/states.php:2453
msgid "Nyamira District"
msgstr ""
-#: languages/states.php:2452
+#: languages/states.php:2454
msgid "Nyandarua County"
msgstr ""
-#: languages/states.php:2453
+#: languages/states.php:2455
msgid "Nyeri County"
msgstr ""
-#: languages/states.php:2454
+#: languages/states.php:2456
msgid "Samburu County"
msgstr ""
-#: languages/states.php:2455
+#: languages/states.php:2457
msgid "Siaya County"
msgstr ""
-#: languages/states.php:2456
+#: languages/states.php:2458
msgid "Taita–Taveta County"
msgstr ""
-#: languages/states.php:2457
+#: languages/states.php:2459
msgid "Tana River County"
msgstr ""
-#: languages/states.php:2458
+#: languages/states.php:2460
msgid "Tharaka Nithi County"
msgstr ""
-#: languages/states.php:2459
+#: languages/states.php:2461
msgid "Trans-Nzoia District"
msgstr ""
-#: languages/states.php:2460
+#: languages/states.php:2462
msgid "Turkana County"
msgstr ""
-#: languages/states.php:2461
+#: languages/states.php:2463
msgid "Uasin Gishu District"
msgstr ""
-#: languages/states.php:2462
+#: languages/states.php:2464
msgid "Vihiga District"
msgstr ""
-#: languages/states.php:2463
+#: languages/states.php:2465
msgid "Wajir County"
msgstr ""
-#: languages/states.php:2464
+#: languages/states.php:2466
msgid "West Pokot County"
msgstr ""
-#: languages/states.php:2465
+#: languages/states.php:2467
msgid "Nairobi"
msgstr ""
-#: languages/states.php:2466
-#: languages/states.php:2666
-#: languages/states.php:3366
-#: languages/states.php:3715
-#: languages/states.php:4118
-#: languages/states.php:5310
+#: languages/states.php:2468
+#: languages/states.php:2668
+#: languages/states.php:3368
+#: languages/states.php:3717
+#: languages/states.php:4120
+#: languages/states.php:5312
msgid "Central Province"
msgstr ""
-#: languages/states.php:2467
+#: languages/states.php:2469
msgid "Coast Province"
msgstr ""
-#: languages/states.php:2468
-#: languages/states.php:2669
-#: languages/states.php:4096
-#: languages/states.php:4109
-#: languages/states.php:4430
-#: languages/states.php:5312
+#: languages/states.php:2470
+#: languages/states.php:2671
+#: languages/states.php:4098
+#: languages/states.php:4111
+#: languages/states.php:4432
+#: languages/states.php:5314
msgid "Eastern Province"
msgstr ""
-#: languages/states.php:2469
+#: languages/states.php:2471
msgid "North Eastern Province"
msgstr ""
-#: languages/states.php:2470
+#: languages/states.php:2472
msgid "Nyanza Province"
msgstr ""
-#: languages/states.php:2471
+#: languages/states.php:2473
msgid "Rift Valley Province"
msgstr ""
-#: languages/states.php:2472
-#: languages/states.php:2665
-#: languages/states.php:3734
-#: languages/states.php:4100
-#: languages/states.php:4127
-#: languages/states.php:5318
+#: languages/states.php:2474
+#: languages/states.php:2667
+#: languages/states.php:3736
+#: languages/states.php:4102
+#: languages/states.php:4129
+#: languages/states.php:5320
msgid "Western Province"
msgstr ""
-#: languages/states.php:2473
+#: languages/states.php:2475
msgid "Baringo County"
msgstr ""
-#: languages/states.php:2474
+#: languages/states.php:2476
msgid "Bomet County"
msgstr ""
-#: languages/states.php:2475
+#: languages/states.php:2477
msgid "Bungoma County"
msgstr ""
-#: languages/states.php:2476
+#: languages/states.php:2478
msgid "Busia County"
msgstr ""
-#: languages/states.php:2477
+#: languages/states.php:2479
msgid "Elgeyo-Marakwet County"
msgstr ""
-#: languages/states.php:2478
+#: languages/states.php:2480
msgid "Embu County"
msgstr ""
-#: languages/states.php:2479
+#: languages/states.php:2481
msgid "Garissa County"
msgstr ""
-#: languages/states.php:2480
+#: languages/states.php:2482
msgid "Homa Bay County"
msgstr ""
-#: languages/states.php:2481
+#: languages/states.php:2483
msgid "Isiolo County"
msgstr ""
-#: languages/states.php:2484
+#: languages/states.php:2486
msgid "Batken Region"
msgstr ""
-#: languages/states.php:2485
+#: languages/states.php:2487
msgid "Bishkek"
msgstr ""
-#: languages/states.php:2486
+#: languages/states.php:2488
msgid "Chuy Region"
msgstr ""
-#: languages/states.php:2487
+#: languages/states.php:2489
msgid "Issyk-Kul Region"
msgstr ""
-#: languages/states.php:2488
+#: languages/states.php:2490
msgid "Jalal-Abad Region"
msgstr ""
-#: languages/states.php:2489
+#: languages/states.php:2491
msgid "Naryn Region"
msgstr ""
-#: languages/states.php:2490
+#: languages/states.php:2492
msgid "Osh"
msgstr ""
-#: languages/states.php:2491
+#: languages/states.php:2493
msgid "Osh Region"
msgstr ""
-#: languages/states.php:2492
+#: languages/states.php:2494
msgid "Talas Region"
msgstr ""
-#: languages/states.php:2495
+#: languages/states.php:2497
msgid "Banteay Meanchey Province"
msgstr ""
-#: languages/states.php:2496
+#: languages/states.php:2498
msgid "Battambang Province"
msgstr ""
-#: languages/states.php:2497
+#: languages/states.php:2499
msgid "Kampong Cham Province"
msgstr ""
-#: languages/states.php:2498
+#: languages/states.php:2500
msgid "Kampong Chhnang Province"
msgstr ""
-#: languages/states.php:2499
+#: languages/states.php:2501
msgid "Kampong Speu Province"
msgstr ""
-#: languages/states.php:2500
+#: languages/states.php:2502
msgid "Kampot Province"
msgstr ""
-#: languages/states.php:2501
+#: languages/states.php:2503
msgid "Kandal Province"
msgstr ""
-#: languages/states.php:2502
+#: languages/states.php:2504
msgid "Koh Kong Province"
msgstr ""
-#: languages/states.php:2503
+#: languages/states.php:2505
msgid "Kratié Province"
msgstr ""
-#: languages/states.php:2504
+#: languages/states.php:2506
msgid "Mondulkiri Province"
msgstr ""
-#: languages/states.php:2505
+#: languages/states.php:2507
msgid "Phnom Penh"
msgstr ""
-#: languages/states.php:2506
+#: languages/states.php:2508
msgid "Preah Vihear Province"
msgstr ""
-#: languages/states.php:2507
+#: languages/states.php:2509
msgid "Prey Veng Province"
msgstr ""
-#: languages/states.php:2508
+#: languages/states.php:2510
msgid "Pursat Province"
msgstr ""
-#: languages/states.php:2509
+#: languages/states.php:2511
msgid "Ratanakiri Province"
msgstr ""
-#: languages/states.php:2510
+#: languages/states.php:2512
msgid "Siem Reap Province"
msgstr ""
-#: languages/states.php:2511
+#: languages/states.php:2513
msgid "Sihanoukville Province"
msgstr ""
-#: languages/states.php:2512
+#: languages/states.php:2514
msgid "Stung Treng Province"
msgstr ""
-#: languages/states.php:2513
+#: languages/states.php:2515
msgid "Svay Rieng Province"
msgstr ""
-#: languages/states.php:2514
+#: languages/states.php:2516
msgid "Takéo Province"
msgstr ""
-#: languages/states.php:2515
+#: languages/states.php:2517
msgid "Oddar Meanchey Province"
msgstr ""
-#: languages/states.php:2516
+#: languages/states.php:2518
msgid "Kep Province"
msgstr ""
-#: languages/states.php:2517
+#: languages/states.php:2519
msgid "Pailin Province"
msgstr ""
-#: languages/states.php:2520
+#: languages/states.php:2522
msgid "Gilbert Islands"
msgstr ""
-#: languages/states.php:2521
+#: languages/states.php:2523
msgid "Line Islands"
msgstr ""
-#: languages/states.php:2522
+#: languages/states.php:2524
msgid "Phoenix Islands"
msgstr ""
-#: languages/states.php:2525
+#: languages/states.php:2527
msgid "Anjouan"
msgstr ""
-#: languages/states.php:2526
+#: languages/states.php:2528
msgid "Grande Comore"
msgstr ""
-#: languages/states.php:2527
+#: languages/states.php:2529
msgid "Mohéli"
msgstr ""
-#: languages/states.php:2530
+#: languages/states.php:2532
msgid "Saint Paul Charlestown Parish"
msgstr ""
-#: languages/states.php:2531
+#: languages/states.php:2533
msgid "Saint Peter Basseterre Parish"
msgstr ""
-#: languages/states.php:2532
+#: languages/states.php:2534
msgid "Saint Thomas Lowland Parish"
msgstr ""
-#: languages/states.php:2533
+#: languages/states.php:2535
msgid "Saint Thomas Middle Island Parish"
msgstr ""
-#: languages/states.php:2534
+#: languages/states.php:2536
msgid "Trinity Palmetto Point Parish"
msgstr ""
-#: languages/states.php:2535
+#: languages/states.php:2537
msgid "Christ Church Nichola Town Parish"
msgstr ""
-#: languages/states.php:2536
+#: languages/states.php:2538
msgid "Nevis"
msgstr ""
-#: languages/states.php:2537
+#: languages/states.php:2539
msgid "Saint Anne Sandy Point Parish"
msgstr ""
-#: languages/states.php:2538
+#: languages/states.php:2540
msgid "Saint George Gingerland Parish"
msgstr ""
-#: languages/states.php:2539
+#: languages/states.php:2541
msgid "Saint James Windward Parish"
msgstr ""
-#: languages/states.php:2540
+#: languages/states.php:2542
msgid "Saint John Capisterre Parish"
msgstr ""
-#: languages/states.php:2541
+#: languages/states.php:2543
msgid "Saint John Figtree Parish"
msgstr ""
-#: languages/states.php:2542
+#: languages/states.php:2544
msgid "Saint Kitts"
msgstr ""
-#: languages/states.php:2543
+#: languages/states.php:2545
msgid "Saint Mary Cayon Parish"
msgstr ""
-#: languages/states.php:2544
+#: languages/states.php:2546
msgid "Saint Paul Capisterre Parish"
msgstr ""
-#: languages/states.php:2547
+#: languages/states.php:2549
msgid "Ryanggang Province"
msgstr ""
-#: languages/states.php:2548
+#: languages/states.php:2550
msgid "Rason"
msgstr ""
-#: languages/states.php:2549
+#: languages/states.php:2551
msgid "Chagang Province"
msgstr ""
-#: languages/states.php:2550
+#: languages/states.php:2552
msgid "Kangwon Province"
msgstr ""
-#: languages/states.php:2551
+#: languages/states.php:2553
msgid "North Hamgyong Province"
msgstr ""
-#: languages/states.php:2552
+#: languages/states.php:2554
msgid "North Hwanghae Province"
msgstr ""
-#: languages/states.php:2553
+#: languages/states.php:2555
msgid "North Pyongan Province"
msgstr ""
-#: languages/states.php:2554
+#: languages/states.php:2556
msgid "Pyongyang"
msgstr ""
-#: languages/states.php:2555
+#: languages/states.php:2557
msgid "South Hamgyong Province"
msgstr ""
-#: languages/states.php:2556
+#: languages/states.php:2558
msgid "South Hwanghae Province"
msgstr ""
-#: languages/states.php:2557
+#: languages/states.php:2559
msgid "South Pyongan Province"
msgstr ""
-#: languages/states.php:2560
+#: languages/states.php:2562
msgid "Seoul"
msgstr ""
-#: languages/states.php:2561
+#: languages/states.php:2563
msgid "Busan"
msgstr ""
-#: languages/states.php:2562
+#: languages/states.php:2564
msgid "Daegu"
msgstr ""
-#: languages/states.php:2563
+#: languages/states.php:2565
msgid "Incheon"
msgstr ""
-#: languages/states.php:2564
+#: languages/states.php:2566
msgid "Gwangju"
msgstr ""
-#: languages/states.php:2565
+#: languages/states.php:2567
msgid "Daejeon"
msgstr ""
-#: languages/states.php:2566
+#: languages/states.php:2568
msgid "Ulsan"
msgstr ""
-#: languages/states.php:2567
+#: languages/states.php:2569
msgid "Gyeonggi Province"
msgstr ""
-#: languages/states.php:2568
+#: languages/states.php:2570
msgid "Gangwon Province"
msgstr ""
-#: languages/states.php:2569
+#: languages/states.php:2571
msgid "North Chungcheong Province"
msgstr ""
-#: languages/states.php:2570
+#: languages/states.php:2572
msgid "South Chungcheong Province"
msgstr ""
-#: languages/states.php:2571
+#: languages/states.php:2573
msgid "North Jeolla Province"
msgstr ""
-#: languages/states.php:2572
+#: languages/states.php:2574
msgid "South Jeolla Province"
msgstr ""
-#: languages/states.php:2573
+#: languages/states.php:2575
msgid "North Gyeongsang Province"
msgstr ""
-#: languages/states.php:2574
+#: languages/states.php:2576
msgid "South Gyeongsang Province"
msgstr ""
-#: languages/states.php:2575
+#: languages/states.php:2577
msgid "Jeju"
msgstr ""
-#: languages/states.php:2576
+#: languages/states.php:2578
msgid "Sejong City"
msgstr ""
-#: languages/states.php:2579
+#: languages/states.php:2581
msgid "Al Ahmadi Governorate"
msgstr ""
-#: languages/states.php:2580
+#: languages/states.php:2582
msgid "Al Farwaniyah Governorate"
msgstr ""
-#: languages/states.php:2581
+#: languages/states.php:2583
msgid "Al Jahra Governorate"
msgstr ""
-#: languages/states.php:2583
+#: languages/states.php:2585
msgid "Hawalli Governorate"
msgstr ""
-#: languages/states.php:2584
+#: languages/states.php:2586
msgid "Mubarak Al-Kabeer Governorate"
msgstr ""
-#: languages/states.php:2588
+#: languages/states.php:2590
msgid "Akmola Region"
msgstr ""
-#: languages/states.php:2589
+#: languages/states.php:2591
msgid "Aktobe Region"
msgstr ""
-#: languages/states.php:2590
+#: languages/states.php:2592
msgid "Almaty"
msgstr ""
-#: languages/states.php:2591
+#: languages/states.php:2593
msgid "Almaty Region"
msgstr ""
-#: languages/states.php:2592
+#: languages/states.php:2594
msgid "Atyrau Region"
msgstr ""
-#: languages/states.php:2593
+#: languages/states.php:2595
msgid "Baikonur"
msgstr ""
-#: languages/states.php:2594
+#: languages/states.php:2596
msgid "East Kazakhstan Region"
msgstr ""
-#: languages/states.php:2595
+#: languages/states.php:2597
msgid "Jambyl Region"
msgstr ""
-#: languages/states.php:2596
+#: languages/states.php:2598
msgid "Karaganda Region"
msgstr ""
-#: languages/states.php:2597
+#: languages/states.php:2599
msgid "Kostanay Region"
msgstr ""
-#: languages/states.php:2598
+#: languages/states.php:2600
msgid "Kyzylorda Region"
msgstr ""
-#: languages/states.php:2599
+#: languages/states.php:2601
msgid "Mangystau Region"
msgstr ""
-#: languages/states.php:2600
+#: languages/states.php:2602
msgid "North Kazakhstan Region"
msgstr ""
-#: languages/states.php:2601
+#: languages/states.php:2603
msgid "Nur-Sultan"
msgstr ""
-#: languages/states.php:2602
+#: languages/states.php:2604
msgid "Pavlodar Region"
msgstr ""
-#: languages/states.php:2603
+#: languages/states.php:2605
msgid "Turkestan Region"
msgstr ""
-#: languages/states.php:2604
+#: languages/states.php:2606
msgid "West Kazakhstan Province"
msgstr ""
-#: languages/states.php:2607
+#: languages/states.php:2609
msgid "Attapeu Province"
msgstr ""
-#: languages/states.php:2608
+#: languages/states.php:2610
msgid "Bokeo Province"
msgstr ""
-#: languages/states.php:2609
+#: languages/states.php:2611
msgid "Bolikhamsai Province"
msgstr ""
-#: languages/states.php:2610
+#: languages/states.php:2612
msgid "Champasak Province"
msgstr ""
-#: languages/states.php:2611
+#: languages/states.php:2613
msgid "Houaphanh Province"
msgstr ""
-#: languages/states.php:2612
+#: languages/states.php:2614
msgid "Khammouane Province"
msgstr ""
-#: languages/states.php:2613
+#: languages/states.php:2615
msgid "Luang Namtha Province"
msgstr ""
-#: languages/states.php:2614
+#: languages/states.php:2616
msgid "Luang Prabang Province"
msgstr ""
-#: languages/states.php:2615
+#: languages/states.php:2617
msgid "Oudomxay Province"
msgstr ""
-#: languages/states.php:2616
+#: languages/states.php:2618
msgid "Phongsaly Province"
msgstr ""
-#: languages/states.php:2617
+#: languages/states.php:2619
msgid "Sainyabuli Province"
msgstr ""
-#: languages/states.php:2618
+#: languages/states.php:2620
msgid "Salavan Province"
msgstr ""
-#: languages/states.php:2619
+#: languages/states.php:2621
msgid "Savannakhet Province"
msgstr ""
-#: languages/states.php:2620
+#: languages/states.php:2622
msgid "Sekong Province"
msgstr ""
-#: languages/states.php:2621
+#: languages/states.php:2623
msgid "Vientiane Prefecture"
msgstr ""
-#: languages/states.php:2622
+#: languages/states.php:2624
msgid "Vientiane Province"
msgstr ""
-#: languages/states.php:2623
+#: languages/states.php:2625
msgid "Xaisomboun"
msgstr ""
-#: languages/states.php:2624
+#: languages/states.php:2626
msgid "Xaisomboun Province"
msgstr ""
-#: languages/states.php:2625
+#: languages/states.php:2627
msgid "Xiangkhouang Province"
msgstr ""
-#: languages/states.php:2628
+#: languages/states.php:2630
msgid "Akkar Governorate"
msgstr ""
-#: languages/states.php:2629
+#: languages/states.php:2631
msgid "Baalbek-Hermel Governorate"
msgstr ""
-#: languages/states.php:2630
+#: languages/states.php:2632
msgid "Beirut Governorate"
msgstr ""
-#: languages/states.php:2631
+#: languages/states.php:2633
msgid "Beqaa Governorate"
msgstr ""
-#: languages/states.php:2632
+#: languages/states.php:2634
msgid "Mount Lebanon Governorate"
msgstr ""
-#: languages/states.php:2633
+#: languages/states.php:2635
msgid "Nabatieh Governorate"
msgstr ""
-#: languages/states.php:2634
+#: languages/states.php:2636
msgid "North Governorate"
msgstr ""
-#: languages/states.php:2635
+#: languages/states.php:2637
msgid "South Governorate"
msgstr ""
-#: languages/states.php:2638
+#: languages/states.php:2640
msgid "Soufrière Quarter"
msgstr ""
-#: languages/states.php:2639
+#: languages/states.php:2641
msgid "Vieux Fort Quarter"
msgstr ""
-#: languages/states.php:2640
+#: languages/states.php:2642
msgid "Canaries"
msgstr ""
-#: languages/states.php:2641
+#: languages/states.php:2643
msgid "Anse la Raye Quarter"
msgstr ""
-#: languages/states.php:2642
+#: languages/states.php:2644
msgid "Castries Quarter"
msgstr ""
-#: languages/states.php:2643
+#: languages/states.php:2645
msgid "Choiseul Quarter"
msgstr ""
-#: languages/states.php:2644
+#: languages/states.php:2646
msgid "Dauphin Quarter"
msgstr ""
-#: languages/states.php:2645
+#: languages/states.php:2647
msgid "Dennery Quarter"
msgstr ""
-#: languages/states.php:2646
+#: languages/states.php:2648
msgid "Gros Islet Quarter"
msgstr ""
-#: languages/states.php:2647
+#: languages/states.php:2649
msgid "Laborie Quarter"
msgstr ""
-#: languages/states.php:2648
+#: languages/states.php:2650
msgid "Micoud Quarter"
msgstr ""
-#: languages/states.php:2649
+#: languages/states.php:2651
msgid "Praslin Quarter"
msgstr ""
-#: languages/states.php:2652
+#: languages/states.php:2654
msgid "Triesenberg"
msgstr ""
-#: languages/states.php:2653
+#: languages/states.php:2655
msgid "Vaduz"
msgstr ""
-#: languages/states.php:2654
+#: languages/states.php:2656
msgid "Balzers"
msgstr ""
-#: languages/states.php:2655
+#: languages/states.php:2657
msgid "Eschen"
msgstr ""
-#: languages/states.php:2656
+#: languages/states.php:2658
msgid "Gamprin"
msgstr ""
-#: languages/states.php:2657
+#: languages/states.php:2659
msgid "Mauren"
msgstr ""
-#: languages/states.php:2658
+#: languages/states.php:2660
msgid "Planken"
msgstr ""
-#: languages/states.php:2659
+#: languages/states.php:2661
msgid "Ruggell"
msgstr ""
-#: languages/states.php:2660
+#: languages/states.php:2662
msgid "Schaan"
msgstr ""
-#: languages/states.php:2661
+#: languages/states.php:2663
msgid "Schellenberg"
msgstr ""
-#: languages/states.php:2662
+#: languages/states.php:2664
msgid "Triesen"
msgstr ""
-#: languages/states.php:2667
-#: languages/states.php:4099
-#: languages/states.php:4432
-#: languages/states.php:5317
+#: languages/states.php:2669
+#: languages/states.php:4101
+#: languages/states.php:4434
+#: languages/states.php:5319
msgid "Southern Province"
msgstr ""
-#: languages/states.php:2668
-#: languages/states.php:4098
-#: languages/states.php:4431
-#: languages/states.php:5315
+#: languages/states.php:2670
+#: languages/states.php:4100
+#: languages/states.php:4433
+#: languages/states.php:5317
msgid "Northern Province"
msgstr ""
-#: languages/states.php:2670
+#: languages/states.php:2672
msgid "North Western Province"
msgstr ""
-#: languages/states.php:2671
-#: languages/states.php:3371
+#: languages/states.php:2673
+#: languages/states.php:3373
msgid "North Central Province"
msgstr ""
-#: languages/states.php:2672
+#: languages/states.php:2674
msgid "Uva Province"
msgstr ""
-#: languages/states.php:2673
+#: languages/states.php:2675
msgid "Sabaragamuwa Province"
msgstr ""
-#: languages/states.php:2674
+#: languages/states.php:2676
msgid "Colombo District"
msgstr ""
-#: languages/states.php:2675
+#: languages/states.php:2677
msgid "Gampaha District"
msgstr ""
-#: languages/states.php:2676
+#: languages/states.php:2678
msgid "Kalutara District"
msgstr ""
-#: languages/states.php:2677
+#: languages/states.php:2679
msgid "Kandy District"
msgstr ""
-#: languages/states.php:2678
+#: languages/states.php:2680
msgid "Matale District"
msgstr ""
-#: languages/states.php:2679
+#: languages/states.php:2681
msgid "Nuwara Eliya District"
msgstr ""
-#: languages/states.php:2680
+#: languages/states.php:2682
msgid "Galle District"
msgstr ""
-#: languages/states.php:2681
+#: languages/states.php:2683
msgid "Matara District"
msgstr ""
-#: languages/states.php:2682
+#: languages/states.php:2684
msgid "Hambantota District"
msgstr ""
-#: languages/states.php:2683
+#: languages/states.php:2685
msgid "Jaffna District"
msgstr ""
-#: languages/states.php:2684
+#: languages/states.php:2686
msgid "Kilinochchi District"
msgstr ""
-#: languages/states.php:2685
+#: languages/states.php:2687
msgid "Mannar District"
msgstr ""
-#: languages/states.php:2686
+#: languages/states.php:2688
msgid "Vavuniya District"
msgstr ""
-#: languages/states.php:2687
+#: languages/states.php:2689
msgid "Mullaitivu District"
msgstr ""
-#: languages/states.php:2688
+#: languages/states.php:2690
msgid "Batticaloa District"
msgstr ""
-#: languages/states.php:2689
+#: languages/states.php:2691
msgid "Ampara District"
msgstr ""
-#: languages/states.php:2690
+#: languages/states.php:2692
msgid "Trincomalee District"
msgstr ""
-#: languages/states.php:2691
+#: languages/states.php:2693
msgid "Puttalam District"
msgstr ""
-#: languages/states.php:2692
+#: languages/states.php:2694
msgid "Anuradhapura District"
msgstr ""
-#: languages/states.php:2693
+#: languages/states.php:2695
msgid "Polonnaruwa District"
msgstr ""
-#: languages/states.php:2694
+#: languages/states.php:2696
msgid "Badulla District"
msgstr ""
-#: languages/states.php:2695
+#: languages/states.php:2697
msgid "Monaragala District"
msgstr ""
-#: languages/states.php:2696
+#: languages/states.php:2698
msgid "Ratnapura district"
msgstr ""
-#: languages/states.php:2697
+#: languages/states.php:2699
msgid "Kegalle District"
msgstr ""
-#: languages/states.php:2700
+#: languages/states.php:2702
msgid "Bomi County"
msgstr ""
-#: languages/states.php:2701
+#: languages/states.php:2703
msgid "Bong County"
msgstr ""
-#: languages/states.php:2702
+#: languages/states.php:2704
msgid "Gbarpolu County"
msgstr ""
-#: languages/states.php:2703
+#: languages/states.php:2705
msgid "Grand Bassa County"
msgstr ""
-#: languages/states.php:2704
+#: languages/states.php:2706
msgid "Grand Cape Mount County"
msgstr ""
-#: languages/states.php:2705
+#: languages/states.php:2707
msgid "Grand Gedeh County"
msgstr ""
-#: languages/states.php:2706
+#: languages/states.php:2708
msgid "Grand Kru County"
msgstr ""
-#: languages/states.php:2707
+#: languages/states.php:2709
msgid "Lofa County"
msgstr ""
-#: languages/states.php:2708
+#: languages/states.php:2710
msgid "Margibi County"
msgstr ""
-#: languages/states.php:2709
+#: languages/states.php:2711
msgid "Maryland County"
msgstr ""
-#: languages/states.php:2710
+#: languages/states.php:2712
msgid "Montserrado County"
msgstr ""
-#: languages/states.php:2711
+#: languages/states.php:2713
msgid "Nimba"
msgstr ""
-#: languages/states.php:2712
+#: languages/states.php:2714
msgid "River Cess County"
msgstr ""
-#: languages/states.php:2713
+#: languages/states.php:2715
msgid "River Gee County"
msgstr ""
-#: languages/states.php:2714
+#: languages/states.php:2716
msgid "Sinoe County"
msgstr ""
-#: languages/states.php:2717
+#: languages/states.php:2719
msgid "Berea District"
msgstr ""
-#: languages/states.php:2718
+#: languages/states.php:2720
msgid "Butha-Buthe District"
msgstr ""
-#: languages/states.php:2719
+#: languages/states.php:2721
msgid "Leribe District"
msgstr ""
-#: languages/states.php:2720
+#: languages/states.php:2722
msgid "Mafeteng District"
msgstr ""
-#: languages/states.php:2721
+#: languages/states.php:2723
msgid "Maseru District"
msgstr ""
-#: languages/states.php:2722
+#: languages/states.php:2724
msgid "Mohale's Hoek District"
msgstr ""
-#: languages/states.php:2723
+#: languages/states.php:2725
msgid "Mokhotlong District"
msgstr ""
-#: languages/states.php:2724
+#: languages/states.php:2726
msgid "Qacha's Nek District"
msgstr ""
-#: languages/states.php:2725
+#: languages/states.php:2727
msgid "Quthing District"
msgstr ""
-#: languages/states.php:2726
+#: languages/states.php:2728
msgid "Thaba-Tseka District"
msgstr ""
-#: languages/states.php:2729
+#: languages/states.php:2731
msgid "Jonava District Municipality"
msgstr ""
-#: languages/states.php:2730
+#: languages/states.php:2732
msgid "Joniškis District Municipality"
msgstr ""
-#: languages/states.php:2731
+#: languages/states.php:2733
msgid "Jurbarkas District Municipality"
msgstr ""
-#: languages/states.php:2732
+#: languages/states.php:2734
msgid "Kaišiadorys District Municipality"
msgstr ""
-#: languages/states.php:2733
+#: languages/states.php:2735
msgid "Kalvarija municipality"
msgstr ""
-#: languages/states.php:2734
+#: languages/states.php:2736
msgid "Kaunas City Municipality"
msgstr ""
-#: languages/states.php:2735
+#: languages/states.php:2737
msgid "Kaunas District Municipality"
msgstr ""
-#: languages/states.php:2736
+#: languages/states.php:2738
msgid "Kazlų Rūda municipality"
msgstr ""
-#: languages/states.php:2737
+#: languages/states.php:2739
msgid "Kėdainiai District Municipality"
msgstr ""
-#: languages/states.php:2738
+#: languages/states.php:2740
msgid "Kelmė District Municipality"
msgstr ""
-#: languages/states.php:2739
+#: languages/states.php:2741
msgid "Klaipeda City Municipality"
msgstr ""
-#: languages/states.php:2740
+#: languages/states.php:2742
msgid "Klaipėda District Municipality"
msgstr ""
-#: languages/states.php:2741
+#: languages/states.php:2743
msgid "Kretinga District Municipality"
msgstr ""
-#: languages/states.php:2742
+#: languages/states.php:2744
msgid "Kupiškis District Municipality"
msgstr ""
-#: languages/states.php:2743
+#: languages/states.php:2745
msgid "Lazdijai District Municipality"
msgstr ""
-#: languages/states.php:2744
+#: languages/states.php:2746
msgid "Marijampolė Municipality"
msgstr ""
-#: languages/states.php:2745
+#: languages/states.php:2747
msgid "Mažeikiai District Municipality"
msgstr ""
-#: languages/states.php:2746
+#: languages/states.php:2748
msgid "Molėtai District Municipality"
msgstr ""
-#: languages/states.php:2747
+#: languages/states.php:2749
msgid "Neringa Municipality"
msgstr ""
-#: languages/states.php:2748
+#: languages/states.php:2750
msgid "Pagėgiai municipality"
msgstr ""
-#: languages/states.php:2749
+#: languages/states.php:2751
msgid "Pakruojis District Municipality"
msgstr ""
-#: languages/states.php:2750
+#: languages/states.php:2752
msgid "Palanga City Municipality"
msgstr ""
-#: languages/states.php:2751
+#: languages/states.php:2753
msgid "Panevėžys City Municipality"
msgstr ""
-#: languages/states.php:2752
+#: languages/states.php:2754
msgid "Panevėžys District Municipality"
msgstr ""
-#: languages/states.php:2753
+#: languages/states.php:2755
msgid "Pasvalys District Municipality"
msgstr ""
-#: languages/states.php:2754
+#: languages/states.php:2756
msgid "Plungė District Municipality"
msgstr ""
-#: languages/states.php:2755
+#: languages/states.php:2757
msgid "Prienai District Municipality"
msgstr ""
-#: languages/states.php:2756
+#: languages/states.php:2758
msgid "Radviliškis District Municipality"
msgstr ""
-#: languages/states.php:2757
+#: languages/states.php:2759
msgid "Raseiniai District Municipality"
msgstr ""
-#: languages/states.php:2758
+#: languages/states.php:2760
msgid "Rietavas municipality"
msgstr ""
-#: languages/states.php:2759
+#: languages/states.php:2761
msgid "Rokiškis District Municipality"
msgstr ""
-#: languages/states.php:2760
+#: languages/states.php:2762
msgid "Šakiai District Municipality"
msgstr ""
-#: languages/states.php:2761
+#: languages/states.php:2763
msgid "Šalčininkai District Municipality"
msgstr ""
-#: languages/states.php:2762
+#: languages/states.php:2764
msgid "Šiauliai City Municipality"
msgstr ""
-#: languages/states.php:2763
+#: languages/states.php:2765
msgid "Šiauliai District Municipality"
msgstr ""
-#: languages/states.php:2764
+#: languages/states.php:2766
msgid "Šilalė District Municipality"
msgstr ""
-#: languages/states.php:2765
+#: languages/states.php:2767
msgid "Šilutė District Municipality"
msgstr ""
-#: languages/states.php:2766
+#: languages/states.php:2768
msgid "Širvintos District Municipality"
msgstr ""
-#: languages/states.php:2767
+#: languages/states.php:2769
msgid "Skuodas District Municipality"
msgstr ""
-#: languages/states.php:2768
+#: languages/states.php:2770
msgid "Švenčionys District Municipality"
msgstr ""
-#: languages/states.php:2769
+#: languages/states.php:2771
msgid "Tauragė District Municipality"
msgstr ""
-#: languages/states.php:2770
+#: languages/states.php:2772
msgid "Telšiai District Municipality"
msgstr ""
-#: languages/states.php:2771
+#: languages/states.php:2773
msgid "Trakai District Municipality"
msgstr ""
-#: languages/states.php:2772
+#: languages/states.php:2774
msgid "Ukmergė District Municipality"
msgstr ""
-#: languages/states.php:2773
+#: languages/states.php:2775
msgid "Utena District Municipality"
msgstr ""
-#: languages/states.php:2774
+#: languages/states.php:2776
msgid "Varėna District Municipality"
msgstr ""
-#: languages/states.php:2775
+#: languages/states.php:2777
msgid "Vilkaviškis District Municipality"
msgstr ""
-#: languages/states.php:2776
+#: languages/states.php:2778
msgid "Vilnius City Municipality"
msgstr ""
-#: languages/states.php:2777
+#: languages/states.php:2779
msgid "Vilnius District Municipality"
msgstr ""
-#: languages/states.php:2778
+#: languages/states.php:2780
msgid "Visaginas Municipality"
msgstr ""
-#: languages/states.php:2779
+#: languages/states.php:2781
msgid "Zarasai District Municipality"
msgstr ""
-#: languages/states.php:2780
+#: languages/states.php:2782
msgid "Akmenė District Municipality"
msgstr ""
-#: languages/states.php:2781
+#: languages/states.php:2783
msgid "Alytus City Municipality"
msgstr ""
-#: languages/states.php:2782
+#: languages/states.php:2784
msgid "Alytus County"
msgstr ""
-#: languages/states.php:2783
+#: languages/states.php:2785
msgid "Alytus District Municipality"
msgstr ""
-#: languages/states.php:2784
+#: languages/states.php:2786
msgid "Birštonas Municipality"
msgstr ""
-#: languages/states.php:2785
+#: languages/states.php:2787
msgid "Biržai District Municipality"
msgstr ""
-#: languages/states.php:2786
+#: languages/states.php:2788
msgid "Druskininkai municipality"
msgstr ""
-#: languages/states.php:2787
+#: languages/states.php:2789
msgid "Elektrėnai municipality"
msgstr ""
-#: languages/states.php:2788
+#: languages/states.php:2790
msgid "Ignalina District Municipality"
msgstr ""
-#: languages/states.php:2789
+#: languages/states.php:2791
msgid "Kaunas County"
msgstr ""
-#: languages/states.php:2790
+#: languages/states.php:2792
msgid "Klaipėda County"
msgstr ""
-#: languages/states.php:2791
+#: languages/states.php:2793
msgid "Marijampolė County"
msgstr ""
-#: languages/states.php:2792
+#: languages/states.php:2794
msgid "Panevėžys County"
msgstr ""
-#: languages/states.php:2793
+#: languages/states.php:2795
msgid "Tauragė County"
msgstr ""
-#: languages/states.php:2794
+#: languages/states.php:2796
msgid "Telšiai County"
msgstr ""
-#: languages/states.php:2795
+#: languages/states.php:2797
msgid "Utena County"
msgstr ""
-#: languages/states.php:2796
+#: languages/states.php:2798
msgid "Vilnius County"
msgstr ""
-#: languages/states.php:2797
+#: languages/states.php:2799
msgid "Šiauliai County"
msgstr ""
-#: languages/states.php:2800
+#: languages/states.php:2802
msgid "Canton of Capellen"
msgstr ""
-#: languages/states.php:2801
+#: languages/states.php:2803
msgid "Canton of Clervaux"
msgstr ""
-#: languages/states.php:2802
+#: languages/states.php:2804
msgid "Canton of Diekirch"
msgstr ""
-#: languages/states.php:2803
+#: languages/states.php:2805
msgid "Canton of Echternach"
msgstr ""
-#: languages/states.php:2804
+#: languages/states.php:2806
msgid "Canton of Esch-sur-Alzette"
msgstr ""
-#: languages/states.php:2805
+#: languages/states.php:2807
msgid "Canton of Grevenmacher"
msgstr ""
-#: languages/states.php:2806
+#: languages/states.php:2808
msgid "Canton of Luxembourg"
msgstr ""
-#: languages/states.php:2807
+#: languages/states.php:2809
msgid "Canton of Mersch"
msgstr ""
-#: languages/states.php:2808
+#: languages/states.php:2810
msgid "Canton of Redange"
msgstr ""
-#: languages/states.php:2809
+#: languages/states.php:2811
msgid "Canton of Remich"
msgstr ""
-#: languages/states.php:2810
+#: languages/states.php:2812
msgid "Canton of Vianden"
msgstr ""
-#: languages/states.php:2811
+#: languages/states.php:2813
msgid "Canton of Wiltz"
msgstr ""
-#: languages/states.php:2812
+#: languages/states.php:2814
msgid "Diekirch District"
msgstr ""
-#: languages/states.php:2813
+#: languages/states.php:2815
msgid "Grevenmacher District"
msgstr ""
-#: languages/states.php:2814
+#: languages/states.php:2816
msgid "Luxembourg District"
msgstr ""
-#: languages/states.php:2817
+#: languages/states.php:2819
msgid "Vaiņode Municipality"
msgstr ""
-#: languages/states.php:2818
+#: languages/states.php:2820
msgid "Valka Municipality"
msgstr ""
-#: languages/states.php:2819
+#: languages/states.php:2821
msgid "Varakļāni Municipality"
msgstr ""
-#: languages/states.php:2820
+#: languages/states.php:2822
msgid "Vārkava Municipality"
msgstr ""
-#: languages/states.php:2821
+#: languages/states.php:2823
msgid "Vecpiebalga Municipality"
msgstr ""
-#: languages/states.php:2822
+#: languages/states.php:2824
msgid "Vecumnieki Municipality"
msgstr ""
-#: languages/states.php:2823
+#: languages/states.php:2825
msgid "Ventspils Municipality"
msgstr ""
-#: languages/states.php:2824
+#: languages/states.php:2826
msgid "Viesīte Municipality"
msgstr ""
-#: languages/states.php:2825
+#: languages/states.php:2827
msgid "Viļaka Municipality"
msgstr ""
-#: languages/states.php:2826
+#: languages/states.php:2828
msgid "Viļāni Municipality"
msgstr ""
-#: languages/states.php:2827
+#: languages/states.php:2829
msgid "Zilupe Municipality"
msgstr ""
-#: languages/states.php:2828
+#: languages/states.php:2830
msgid "Aglona Municipality"
msgstr ""
-#: languages/states.php:2829
+#: languages/states.php:2831
msgid "Aizkraukle Municipality"
msgstr ""
-#: languages/states.php:2830
+#: languages/states.php:2832
msgid "Aizpute Municipality"
msgstr ""
-#: languages/states.php:2831
+#: languages/states.php:2833
msgid "Aknīste Municipality"
msgstr ""
-#: languages/states.php:2832
+#: languages/states.php:2834
msgid "Aloja Municipality"
msgstr ""
-#: languages/states.php:2833
+#: languages/states.php:2835
msgid "Alsunga Municipality"
msgstr ""
-#: languages/states.php:2834
+#: languages/states.php:2836
msgid "Alūksne Municipality"
msgstr ""
-#: languages/states.php:2835
+#: languages/states.php:2837
msgid "Amata Municipality"
msgstr ""
-#: languages/states.php:2836
+#: languages/states.php:2838
msgid "Ape Municipality"
msgstr ""
-#: languages/states.php:2837
+#: languages/states.php:2839
msgid "Auce Municipality"
msgstr ""
-#: languages/states.php:2838
+#: languages/states.php:2840
msgid "Babīte Municipality"
msgstr ""
-#: languages/states.php:2839
+#: languages/states.php:2841
msgid "Baldone Municipality"
msgstr ""
-#: languages/states.php:2840
+#: languages/states.php:2842
msgid "Baltinava Municipality"
msgstr ""
-#: languages/states.php:2841
+#: languages/states.php:2843
msgid "Balvi Municipality"
msgstr ""
-#: languages/states.php:2842
+#: languages/states.php:2844
msgid "Bauska Municipality"
msgstr ""
-#: languages/states.php:2843
+#: languages/states.php:2845
msgid "Beverīna Municipality"
msgstr ""
-#: languages/states.php:2844
+#: languages/states.php:2846
msgid "Brocēni Municipality"
msgstr ""
-#: languages/states.php:2845
+#: languages/states.php:2847
msgid "Burtnieki Municipality"
msgstr ""
-#: languages/states.php:2846
+#: languages/states.php:2848
msgid "Carnikava Municipality"
msgstr ""
-#: languages/states.php:2847
+#: languages/states.php:2849
msgid "Cesvaine Municipality"
msgstr ""
-#: languages/states.php:2848
+#: languages/states.php:2850
msgid "Cibla Municipality"
msgstr ""
-#: languages/states.php:2849
+#: languages/states.php:2851
msgid "Cēsis Municipality"
msgstr ""
-#: languages/states.php:2850
+#: languages/states.php:2852
msgid "Dagda Municipality"
msgstr ""
-#: languages/states.php:2851
+#: languages/states.php:2853
msgid "Daugavpils"
msgstr ""
-#: languages/states.php:2852
+#: languages/states.php:2854
msgid "Daugavpils Municipality"
msgstr ""
-#: languages/states.php:2853
+#: languages/states.php:2855
msgid "Dobele Municipality"
msgstr ""
-#: languages/states.php:2854
+#: languages/states.php:2856
msgid "Dundaga Municipality"
msgstr ""
-#: languages/states.php:2855
+#: languages/states.php:2857
msgid "Durbe Municipality"
msgstr ""
-#: languages/states.php:2856
+#: languages/states.php:2858
msgid "Engure Municipality"
msgstr ""
-#: languages/states.php:2857
+#: languages/states.php:2859
msgid "Garkalne Municipality"
msgstr ""
-#: languages/states.php:2858
+#: languages/states.php:2860
msgid "Grobiņa Municipality"
msgstr ""
-#: languages/states.php:2859
+#: languages/states.php:2861
msgid "Gulbene Municipality"
msgstr ""
-#: languages/states.php:2860
+#: languages/states.php:2862
msgid "Iecava Municipality"
msgstr ""
-#: languages/states.php:2861
+#: languages/states.php:2863
msgid "Ikšķile Municipality"
msgstr ""
-#: languages/states.php:2862
+#: languages/states.php:2864
msgid "Ilūkste Municipality"
msgstr ""
-#: languages/states.php:2863
+#: languages/states.php:2865
msgid "Inčukalns Municipality"
msgstr ""
-#: languages/states.php:2864
+#: languages/states.php:2866
msgid "Jaunjelgava Municipality"
msgstr ""
-#: languages/states.php:2865
+#: languages/states.php:2867
msgid "Jaunpiebalga Municipality"
msgstr ""
-#: languages/states.php:2866
+#: languages/states.php:2868
msgid "Jaunpils Municipality"
msgstr ""
-#: languages/states.php:2867
+#: languages/states.php:2869
msgid "Jelgava"
msgstr ""
-#: languages/states.php:2868
+#: languages/states.php:2870
msgid "Jelgava Municipality"
msgstr ""
-#: languages/states.php:2869
+#: languages/states.php:2871
msgid "Jēkabpils"
msgstr ""
-#: languages/states.php:2870
+#: languages/states.php:2872
msgid "Jēkabpils Municipality"
msgstr ""
-#: languages/states.php:2871
+#: languages/states.php:2873
msgid "Jūrmala"
msgstr ""
-#: languages/states.php:2872
+#: languages/states.php:2874
msgid "Kandava Municipality"
msgstr ""
-#: languages/states.php:2873
+#: languages/states.php:2875
msgid "Kocēni Municipality"
msgstr ""
-#: languages/states.php:2874
+#: languages/states.php:2876
msgid "Koknese Municipality"
msgstr ""
-#: languages/states.php:2875
+#: languages/states.php:2877
msgid "Krimulda Municipality"
msgstr ""
-#: languages/states.php:2876
+#: languages/states.php:2878
msgid "Krustpils Municipality"
msgstr ""
-#: languages/states.php:2877
+#: languages/states.php:2879
msgid "Krāslava Municipality"
msgstr ""
-#: languages/states.php:2878
+#: languages/states.php:2880
msgid "Kuldīga Municipality"
msgstr ""
-#: languages/states.php:2879
+#: languages/states.php:2881
msgid "Kārsava Municipality"
msgstr ""
-#: languages/states.php:2880
+#: languages/states.php:2882
msgid "Lielvārde Municipality"
msgstr ""
-#: languages/states.php:2881
+#: languages/states.php:2883
msgid "Liepāja"
msgstr ""
-#: languages/states.php:2882
+#: languages/states.php:2884
msgid "Limbaži Municipality"
msgstr ""
-#: languages/states.php:2883
+#: languages/states.php:2885
msgid "Lubāna Municipality"
msgstr ""
-#: languages/states.php:2884
+#: languages/states.php:2886
msgid "Ludza Municipality"
msgstr ""
-#: languages/states.php:2885
+#: languages/states.php:2887
msgid "Līgatne Municipality"
msgstr ""
-#: languages/states.php:2886
+#: languages/states.php:2888
msgid "Līvāni Municipality"
msgstr ""
-#: languages/states.php:2887
+#: languages/states.php:2889
msgid "Madona Municipality"
msgstr ""
-#: languages/states.php:2888
+#: languages/states.php:2890
msgid "Mazsalaca Municipality"
msgstr ""
-#: languages/states.php:2889
+#: languages/states.php:2891
msgid "Mālpils Municipality"
msgstr ""
-#: languages/states.php:2890
+#: languages/states.php:2892
msgid "Mārupe Municipality"
msgstr ""
-#: languages/states.php:2891
+#: languages/states.php:2893
msgid "Mērsrags Municipality"
msgstr ""
-#: languages/states.php:2892
+#: languages/states.php:2894
msgid "Naukšēni Municipality"
msgstr ""
-#: languages/states.php:2893
+#: languages/states.php:2895
msgid "Nereta Municipality"
msgstr ""
-#: languages/states.php:2894
+#: languages/states.php:2896
msgid "Nīca Municipality"
msgstr ""
-#: languages/states.php:2895
+#: languages/states.php:2897
msgid "Ogre Municipality"
msgstr ""
-#: languages/states.php:2896
+#: languages/states.php:2898
msgid "Olaine Municipality"
msgstr ""
-#: languages/states.php:2897
+#: languages/states.php:2899
msgid "Ozolnieki Municipality"
msgstr ""
-#: languages/states.php:2898
+#: languages/states.php:2900
msgid "Preiļi Municipality"
msgstr ""
-#: languages/states.php:2899
+#: languages/states.php:2901
msgid "Priekule Municipality"
msgstr ""
-#: languages/states.php:2900
+#: languages/states.php:2902
msgid "Priekuļi Municipality"
msgstr ""
-#: languages/states.php:2901
+#: languages/states.php:2903
msgid "Pārgauja Municipality"
msgstr ""
-#: languages/states.php:2902
+#: languages/states.php:2904
msgid "Pāvilosta Municipality"
msgstr ""
-#: languages/states.php:2903
+#: languages/states.php:2905
msgid "Pļaviņas Municipality"
msgstr ""
-#: languages/states.php:2904
+#: languages/states.php:2906
msgid "Rauna Municipality"
msgstr ""
-#: languages/states.php:2905
+#: languages/states.php:2907
msgid "Riebiņi Municipality"
msgstr ""
-#: languages/states.php:2906
+#: languages/states.php:2908
msgid "Riga"
msgstr ""
-#: languages/states.php:2907
+#: languages/states.php:2909
msgid "Roja Municipality"
msgstr ""
-#: languages/states.php:2908
+#: languages/states.php:2910
msgid "Ropaži Municipality"
msgstr ""
-#: languages/states.php:2909
+#: languages/states.php:2911
msgid "Rucava Municipality"
msgstr ""
-#: languages/states.php:2910
+#: languages/states.php:2912
msgid "Rugāji Municipality"
msgstr ""
-#: languages/states.php:2911
+#: languages/states.php:2913
msgid "Rundāle Municipality"
msgstr ""
-#: languages/states.php:2912
+#: languages/states.php:2914
msgid "Rēzekne"
msgstr ""
-#: languages/states.php:2913
+#: languages/states.php:2915
msgid "Rēzekne Municipality"
msgstr ""
-#: languages/states.php:2914
+#: languages/states.php:2916
msgid "Rūjiena Municipality"
msgstr ""
-#: languages/states.php:2915
+#: languages/states.php:2917
msgid "Sala Municipality"
msgstr ""
-#: languages/states.php:2916
+#: languages/states.php:2918
msgid "Salacgrīva Municipality"
msgstr ""
-#: languages/states.php:2917
+#: languages/states.php:2919
msgid "Salaspils Municipality"
msgstr ""
-#: languages/states.php:2918
+#: languages/states.php:2920
msgid "Saldus Municipality"
msgstr ""
-#: languages/states.php:2919
+#: languages/states.php:2921
msgid "Saulkrasti Municipality"
msgstr ""
-#: languages/states.php:2920
+#: languages/states.php:2922
msgid "Sigulda Municipality"
msgstr ""
-#: languages/states.php:2921
+#: languages/states.php:2923
msgid "Skrunda Municipality"
msgstr ""
-#: languages/states.php:2922
+#: languages/states.php:2924
msgid "Skrīveri Municipality"
msgstr ""
-#: languages/states.php:2923
+#: languages/states.php:2925
msgid "Smiltene Municipality"
msgstr ""
-#: languages/states.php:2924
+#: languages/states.php:2926
msgid "Stopiņi Municipality"
msgstr ""
-#: languages/states.php:2925
+#: languages/states.php:2927
msgid "Strenči Municipality"
msgstr ""
-#: languages/states.php:2926
+#: languages/states.php:2928
msgid "Sēja Municipality"
msgstr ""
-#: languages/states.php:2927
+#: languages/states.php:2929
msgid "Talsi Municipality"
msgstr ""
-#: languages/states.php:2928
+#: languages/states.php:2930
msgid "Tukums Municipality"
msgstr ""
-#: languages/states.php:2929
+#: languages/states.php:2931
msgid "Tērvete Municipality"
msgstr ""
-#: languages/states.php:2930
+#: languages/states.php:2932
msgid "Valmiera"
msgstr ""
-#: languages/states.php:2931
+#: languages/states.php:2933
msgid "Ventspils"
msgstr ""
-#: languages/states.php:2932
+#: languages/states.php:2934
msgid "Ērgļi Municipality"
msgstr ""
-#: languages/states.php:2933
+#: languages/states.php:2935
msgid "Ķegums Municipality"
msgstr ""
-#: languages/states.php:2934
+#: languages/states.php:2936
msgid "Ķekava Municipality"
msgstr ""
-#: languages/states.php:2937
+#: languages/states.php:2939
msgid "Al Wahat District"
msgstr ""
-#: languages/states.php:2938
+#: languages/states.php:2940
msgid "Benghazi"
msgstr ""
-#: languages/states.php:2939
+#: languages/states.php:2941
msgid "Derna District"
msgstr ""
-#: languages/states.php:2940
+#: languages/states.php:2942
msgid "Ghat District"
msgstr ""
-#: languages/states.php:2941
+#: languages/states.php:2943
msgid "Jabal al Akhdar"
msgstr ""
-#: languages/states.php:2942
+#: languages/states.php:2944
msgid "Jabal al Gharbi District"
msgstr ""
-#: languages/states.php:2943
+#: languages/states.php:2945
msgid "Jafara"
msgstr ""
-#: languages/states.php:2944
+#: languages/states.php:2946
msgid "Jufra"
msgstr ""
-#: languages/states.php:2945
+#: languages/states.php:2947
msgid "Kufra District"
msgstr ""
-#: languages/states.php:2946
+#: languages/states.php:2948
msgid "Marj District"
msgstr ""
-#: languages/states.php:2947
+#: languages/states.php:2949
msgid "Misrata District"
msgstr ""
-#: languages/states.php:2948
+#: languages/states.php:2950
msgid "Murqub"
msgstr ""
-#: languages/states.php:2949
+#: languages/states.php:2951
msgid "Murzuq District"
msgstr ""
-#: languages/states.php:2950
+#: languages/states.php:2952
msgid "Nalut District"
msgstr ""
-#: languages/states.php:2951
+#: languages/states.php:2953
msgid "Nuqat al Khams"
msgstr ""
-#: languages/states.php:2952
+#: languages/states.php:2954
msgid "Sabha District"
msgstr ""
-#: languages/states.php:2953
+#: languages/states.php:2955
msgid "Sirte District"
msgstr ""
-#: languages/states.php:2954
+#: languages/states.php:2956
msgid "Tripoli District"
msgstr ""
-#: languages/states.php:2955
+#: languages/states.php:2957
msgid "Wadi al Hayaa District"
msgstr ""
-#: languages/states.php:2956
+#: languages/states.php:2958
msgid "Wadi al Shatii District"
msgstr ""
-#: languages/states.php:2957
+#: languages/states.php:2959
msgid "Zawiya District"
msgstr ""
-#: languages/states.php:2960
+#: languages/states.php:2962
msgid "Guelmim-Oued Noun"
msgstr ""
-#: languages/states.php:2961
+#: languages/states.php:2963
msgid "Laâyoune-Sakia El Hamra"
msgstr ""
-#: languages/states.php:2962
+#: languages/states.php:2964
msgid "Dakhla-Oued Ed-Dahab"
msgstr ""
-#: languages/states.php:2963
+#: languages/states.php:2965
msgid "Al Haouz Province"
msgstr ""
-#: languages/states.php:2964
+#: languages/states.php:2966
msgid "Al Hoceïma Province"
msgstr ""
-#: languages/states.php:2965
+#: languages/states.php:2967
msgid "Aousserd Province"
msgstr ""
-#: languages/states.php:2966
+#: languages/states.php:2968
msgid "Assa-Zag Province"
msgstr ""
-#: languages/states.php:2967
+#: languages/states.php:2969
msgid "Azilal Province"
msgstr ""
-#: languages/states.php:2968
+#: languages/states.php:2970
msgid "Ben Slimane Province"
msgstr ""
-#: languages/states.php:2969
+#: languages/states.php:2971
msgid "Berkane Province"
msgstr ""
-#: languages/states.php:2970
+#: languages/states.php:2972
msgid "Boujdour Province"
msgstr ""
-#: languages/states.php:2971
+#: languages/states.php:2973
msgid "Boulemane Province"
msgstr ""
-#: languages/states.php:2972
+#: languages/states.php:2974
msgid "Béni Mellal-Khénifra"
msgstr ""
-#: languages/states.php:2973
+#: languages/states.php:2975
msgid "Béni-Mellal Province"
msgstr ""
-#: languages/states.php:2974
+#: languages/states.php:2976
msgid "Casablanca-Settat"
msgstr ""
-#: languages/states.php:2975
+#: languages/states.php:2977
msgid "Chefchaouen Province"
msgstr ""
-#: languages/states.php:2976
+#: languages/states.php:2978
msgid "Chichaoua Province"
msgstr ""
-#: languages/states.php:2977
+#: languages/states.php:2979
msgid "Drâa-Tafilalet"
msgstr ""
-#: languages/states.php:2978
+#: languages/states.php:2980
msgid "El Hajeb Province"
msgstr ""
-#: languages/states.php:2979
+#: languages/states.php:2981
msgid "El Jadida Province"
msgstr ""
-#: languages/states.php:2980
+#: languages/states.php:2982
msgid "Errachidia Province"
msgstr ""
-#: languages/states.php:2981
+#: languages/states.php:2983
msgid "Es Semara Province"
msgstr ""
-#: languages/states.php:2982
+#: languages/states.php:2984
msgid "Essaouira Province"
msgstr ""
-#: languages/states.php:2983
+#: languages/states.php:2985
msgid "Fahs Anjra Province"
msgstr ""
-#: languages/states.php:2984
+#: languages/states.php:2986
msgid "Figuig Province"
msgstr ""
-#: languages/states.php:2985
+#: languages/states.php:2987
msgid "Fès-Meknès"
msgstr ""
-#: languages/states.php:2986
+#: languages/states.php:2988
msgid "Guelmim Province"
msgstr ""
-#: languages/states.php:2987
+#: languages/states.php:2989
msgid "Ifrane Province"
msgstr ""
-#: languages/states.php:2988
+#: languages/states.php:2990
msgid "Inezgane-Aït Melloul Prefecture"
msgstr ""
-#: languages/states.php:2989
+#: languages/states.php:2991
msgid "Jerada Province"
msgstr ""
-#: languages/states.php:2990
+#: languages/states.php:2992
msgid "Kelaat Sraghna Province"
msgstr ""
-#: languages/states.php:2991
+#: languages/states.php:2993
msgid "Khouribga Province"
msgstr ""
-#: languages/states.php:2992
+#: languages/states.php:2994
msgid "Khémisset Province"
msgstr ""
-#: languages/states.php:2993
+#: languages/states.php:2995
msgid "Khénifra Province"
msgstr ""
-#: languages/states.php:2994
+#: languages/states.php:2996
msgid "Kénitra Province"
msgstr ""
-#: languages/states.php:2995
+#: languages/states.php:2997
msgid "Larache Province"
msgstr ""
-#: languages/states.php:2996
+#: languages/states.php:2998
msgid "Laâyoune Province"
msgstr ""
-#: languages/states.php:2997
+#: languages/states.php:2999
msgid "Marrakesh-Safi"
msgstr ""
-#: languages/states.php:2998
+#: languages/states.php:3000
msgid "Mediouna Province"
msgstr ""
-#: languages/states.php:2999
+#: languages/states.php:3001
msgid "Moulay Yacoub Province"
msgstr ""
-#: languages/states.php:3000
+#: languages/states.php:3002
msgid "Nador Province"
msgstr ""
-#: languages/states.php:3001
+#: languages/states.php:3003
msgid "Nouaceur Province"
msgstr ""
-#: languages/states.php:3002
+#: languages/states.php:3004
msgid "Oriental"
msgstr ""
-#: languages/states.php:3003
+#: languages/states.php:3005
msgid "Ouarzazate Province"
msgstr ""
-#: languages/states.php:3004
+#: languages/states.php:3006
msgid "Oued Ed-Dahab Province"
msgstr ""
-#: languages/states.php:3005
+#: languages/states.php:3007
msgid "Safi Province"
msgstr ""
-#: languages/states.php:3006
+#: languages/states.php:3008
msgid "Sefrou Province"
msgstr ""
-#: languages/states.php:3007
+#: languages/states.php:3009
msgid "Settat Province"
msgstr ""
-#: languages/states.php:3008
+#: languages/states.php:3010
msgid "Shtouka Ait Baha Province"
msgstr ""
-#: languages/states.php:3009
+#: languages/states.php:3011
msgid "Sidi Kacem Province"
msgstr ""
-#: languages/states.php:3010
+#: languages/states.php:3012
msgid "Sidi Youssef Ben Ali"
msgstr ""
-#: languages/states.php:3011
+#: languages/states.php:3013
msgid "Souss-Massa"
msgstr ""
-#: languages/states.php:3012
+#: languages/states.php:3014
msgid "Tan-Tan Province"
msgstr ""
-#: languages/states.php:3013
+#: languages/states.php:3015
msgid "Tanger-Tétouan-Al Hoceïma"
msgstr ""
-#: languages/states.php:3014
+#: languages/states.php:3016
msgid "Taounate Province"
msgstr ""
-#: languages/states.php:3015
+#: languages/states.php:3017
msgid "Taourirt Province"
msgstr ""
-#: languages/states.php:3016
+#: languages/states.php:3018
msgid "Taroudant Province"
msgstr ""
-#: languages/states.php:3017
+#: languages/states.php:3019
msgid "Tata Province"
msgstr ""
-#: languages/states.php:3018
+#: languages/states.php:3020
msgid "Taza Province"
msgstr ""
-#: languages/states.php:3019
+#: languages/states.php:3021
msgid "Tiznit Province"
msgstr ""
-#: languages/states.php:3020
+#: languages/states.php:3022
msgid "Tétouan Province"
msgstr ""
-#: languages/states.php:3021
+#: languages/states.php:3023
msgid "Zagora Province"
msgstr ""
-#: languages/states.php:3024
+#: languages/states.php:3026
msgid "La Colle"
msgstr ""
-#: languages/states.php:3025
+#: languages/states.php:3027
msgid "La Condamine"
msgstr ""
-#: languages/states.php:3026
+#: languages/states.php:3028
msgid "Moneghetti"
msgstr ""
-#: languages/states.php:3029
+#: languages/states.php:3031
msgid "Anenii Noi District"
msgstr ""
-#: languages/states.php:3030
+#: languages/states.php:3032
msgid "Basarabeasca District"
msgstr ""
-#: languages/states.php:3031
+#: languages/states.php:3033
msgid "Bender Municipality"
msgstr ""
-#: languages/states.php:3032
+#: languages/states.php:3034
msgid "Briceni District"
msgstr ""
-#: languages/states.php:3033
+#: languages/states.php:3035
msgid "Bălți Municipality"
msgstr ""
-#: languages/states.php:3034
+#: languages/states.php:3036
msgid "Cahul District"
msgstr ""
-#: languages/states.php:3035
+#: languages/states.php:3037
msgid "Cantemir District"
msgstr ""
-#: languages/states.php:3036
+#: languages/states.php:3038
msgid "Chișinău Municipality"
msgstr ""
-#: languages/states.php:3037
+#: languages/states.php:3039
msgid "Cimișlia District"
msgstr ""
-#: languages/states.php:3038
+#: languages/states.php:3040
msgid "Criuleni District"
msgstr ""
-#: languages/states.php:3039
+#: languages/states.php:3041
msgid "Călărași District"
msgstr ""
-#: languages/states.php:3040
+#: languages/states.php:3042
msgid "Căușeni District"
msgstr ""
-#: languages/states.php:3041
+#: languages/states.php:3043
msgid "Dondușeni District"
msgstr ""
-#: languages/states.php:3042
+#: languages/states.php:3044
msgid "Drochia District"
msgstr ""
-#: languages/states.php:3043
+#: languages/states.php:3045
msgid "Dubăsari District"
msgstr ""
-#: languages/states.php:3044
+#: languages/states.php:3046
msgid "Edineț District"
msgstr ""
-#: languages/states.php:3045
+#: languages/states.php:3047
msgid "Florești District"
msgstr ""
-#: languages/states.php:3046
+#: languages/states.php:3048
msgid "Fălești District"
msgstr ""
-#: languages/states.php:3047
+#: languages/states.php:3049
msgid "Gagauzia"
msgstr ""
-#: languages/states.php:3048
+#: languages/states.php:3050
msgid "Glodeni District"
msgstr ""
-#: languages/states.php:3049
+#: languages/states.php:3051
msgid "Hîncești District"
msgstr ""
-#: languages/states.php:3050
+#: languages/states.php:3052
msgid "Ialoveni District"
msgstr ""
-#: languages/states.php:3051
+#: languages/states.php:3053
msgid "Nisporeni District"
msgstr ""
-#: languages/states.php:3052
+#: languages/states.php:3054
msgid "Ocnița District"
msgstr ""
-#: languages/states.php:3053
+#: languages/states.php:3055
msgid "Orhei District"
msgstr ""
-#: languages/states.php:3054
+#: languages/states.php:3056
msgid "Rezina District"
msgstr ""
-#: languages/states.php:3055
+#: languages/states.php:3057
msgid "Rîșcani District"
msgstr ""
-#: languages/states.php:3056
+#: languages/states.php:3058
msgid "Soroca District"
msgstr ""
-#: languages/states.php:3057
+#: languages/states.php:3059
msgid "Strășeni District"
msgstr ""
-#: languages/states.php:3058
+#: languages/states.php:3060
msgid "Sîngerei District"
msgstr ""
-#: languages/states.php:3059
+#: languages/states.php:3061
msgid "Taraclia District"
msgstr ""
-#: languages/states.php:3060
+#: languages/states.php:3062
msgid "Telenești District"
msgstr ""
-#: languages/states.php:3061
+#: languages/states.php:3063
msgid "Transnistria autonomous territorial unit"
msgstr ""
-#: languages/states.php:3062
+#: languages/states.php:3064
msgid "Ungheni District"
msgstr ""
-#: languages/states.php:3063
+#: languages/states.php:3065
msgid "Șoldănești District"
msgstr ""
-#: languages/states.php:3064
+#: languages/states.php:3066
msgid "Ștefan Vodă District"
msgstr ""
-#: languages/states.php:3067
+#: languages/states.php:3069
msgid "Kotor Municipality"
msgstr ""
-#: languages/states.php:3068
+#: languages/states.php:3070
msgid "Mojkovac Municipality"
msgstr ""
-#: languages/states.php:3069
+#: languages/states.php:3071
msgid "Nikšić Municipality"
msgstr ""
-#: languages/states.php:3070
+#: languages/states.php:3072
msgid "Plav Municipality"
msgstr ""
-#: languages/states.php:3071
+#: languages/states.php:3073
msgid "Pljevlja Municipality"
msgstr ""
-#: languages/states.php:3072
+#: languages/states.php:3074
msgid "Plužine Municipality"
msgstr ""
-#: languages/states.php:3073
+#: languages/states.php:3075
msgid "Podgorica Municipality"
msgstr ""
-#: languages/states.php:3074
+#: languages/states.php:3076
msgid "Rožaje Municipality"
msgstr ""
-#: languages/states.php:3075
+#: languages/states.php:3077
msgid "Šavnik Municipality"
msgstr ""
-#: languages/states.php:3076
+#: languages/states.php:3078
msgid "Tivat Municipality"
msgstr ""
-#: languages/states.php:3077
+#: languages/states.php:3079
msgid "Ulcinj Municipality"
msgstr ""
-#: languages/states.php:3078
+#: languages/states.php:3080
msgid "Žabljak Municipality"
msgstr ""
-#: languages/states.php:3079
+#: languages/states.php:3081
msgid "Gusinje Municipality"
msgstr ""
-#: languages/states.php:3080
+#: languages/states.php:3082
msgid "Petnjica Municipality"
msgstr ""
-#: languages/states.php:3081
+#: languages/states.php:3083
msgid "Andrijevica Municipality"
msgstr ""
-#: languages/states.php:3082
+#: languages/states.php:3084
msgid "Bar Municipality"
msgstr ""
-#: languages/states.php:3083
+#: languages/states.php:3085
msgid "Berane Municipality"
msgstr ""
-#: languages/states.php:3084
+#: languages/states.php:3086
msgid "Bijelo Polje Municipality"
msgstr ""
-#: languages/states.php:3085
+#: languages/states.php:3087
msgid "Budva Municipality"
msgstr ""
-#: languages/states.php:3086
+#: languages/states.php:3088
msgid "Danilovgrad Municipality"
msgstr ""
-#: languages/states.php:3087
+#: languages/states.php:3089
msgid "Kolašin Municipality"
msgstr ""
-#: languages/states.php:3088
+#: languages/states.php:3090
msgid "Old Royal Capital Cetinje"
msgstr ""
-#: languages/states.php:3092
+#: languages/states.php:3094
msgid "Antananarivo Province"
msgstr ""
-#: languages/states.php:3093
+#: languages/states.php:3095
msgid "Antsiranana Province"
msgstr ""
-#: languages/states.php:3094
+#: languages/states.php:3096
msgid "Fianarantsoa Province"
msgstr ""
-#: languages/states.php:3095
+#: languages/states.php:3097
msgid "Mahajanga Province"
msgstr ""
-#: languages/states.php:3096
+#: languages/states.php:3098
msgid "Toamasina Province"
msgstr ""
-#: languages/states.php:3097
+#: languages/states.php:3099
msgid "Toliara Province"
msgstr ""
-#: languages/states.php:3100
+#: languages/states.php:3102
msgid "Ralik Chain"
msgstr ""
-#: languages/states.php:3101
+#: languages/states.php:3103
msgid "Ratak Chain"
msgstr ""
-#: languages/states.php:3104
+#: languages/states.php:3106
msgid "Valandovo Municipality"
msgstr ""
-#: languages/states.php:3105
+#: languages/states.php:3107
msgid "Vasilevo Municipality"
msgstr ""
-#: languages/states.php:3106
+#: languages/states.php:3108
msgid "Vevčani Municipality"
msgstr ""
-#: languages/states.php:3107
+#: languages/states.php:3109
msgid "Veles Municipality"
msgstr ""
-#: languages/states.php:3108
+#: languages/states.php:3110
msgid "Vinica Municipality"
msgstr ""
-#: languages/states.php:3109
+#: languages/states.php:3111
msgid "Vraneštica Municipality"
msgstr ""
-#: languages/states.php:3110
+#: languages/states.php:3112
msgid "Vrapčište Municipality"
msgstr ""
-#: languages/states.php:3111
+#: languages/states.php:3113
msgid "Gazi Baba Municipality"
msgstr ""
-#: languages/states.php:3112
+#: languages/states.php:3114
msgid "Gevgelija Municipality"
msgstr ""
-#: languages/states.php:3113
+#: languages/states.php:3115
msgid "Gostivar Municipality"
msgstr ""
-#: languages/states.php:3114
+#: languages/states.php:3116
msgid "Gradsko Municipality"
msgstr ""
-#: languages/states.php:3115
+#: languages/states.php:3117
msgid "Debarca Municipality"
msgstr ""
-#: languages/states.php:3116
+#: languages/states.php:3118
msgid "Delčevo Municipality"
msgstr ""
-#: languages/states.php:3117
+#: languages/states.php:3119
msgid "Demir Kapija Municipality"
msgstr ""
-#: languages/states.php:3118
+#: languages/states.php:3120
msgid "Demir Hisar Municipality"
msgstr ""
-#: languages/states.php:3119
+#: languages/states.php:3121
msgid "Dojran Municipality"
msgstr ""
-#: languages/states.php:3120
+#: languages/states.php:3122
msgid "Dolneni Municipality"
msgstr ""
-#: languages/states.php:3121
+#: languages/states.php:3123
msgid "Drugovo Municipality"
msgstr ""
-#: languages/states.php:3122
+#: languages/states.php:3124
msgid "Gjorče Petrov Municipality"
msgstr ""
-#: languages/states.php:3123
+#: languages/states.php:3125
msgid "Želino Municipality"
msgstr ""
-#: languages/states.php:3124
+#: languages/states.php:3126
msgid "Zajas Municipality"
msgstr ""
-#: languages/states.php:3125
+#: languages/states.php:3127
msgid "Zelenikovo Municipality"
msgstr ""
-#: languages/states.php:3126
+#: languages/states.php:3128
msgid "Zrnovci Municipality"
msgstr ""
-#: languages/states.php:3127
+#: languages/states.php:3129
msgid "Ilinden Municipality"
msgstr ""
-#: languages/states.php:3128
+#: languages/states.php:3130
msgid "Jegunovce Municipality"
msgstr ""
-#: languages/states.php:3129
+#: languages/states.php:3131
msgid "Kavadarci Municipality"
msgstr ""
-#: languages/states.php:3130
+#: languages/states.php:3132
msgid "Karbinci"
msgstr ""
-#: languages/states.php:3131
+#: languages/states.php:3133
msgid "Karpoš Municipality"
msgstr ""
-#: languages/states.php:3132
+#: languages/states.php:3134
msgid "Kisela Voda Municipality"
msgstr ""
-#: languages/states.php:3133
+#: languages/states.php:3135
msgid "Kičevo Municipality"
msgstr ""
-#: languages/states.php:3134
+#: languages/states.php:3136
msgid "Konče Municipality"
msgstr ""
-#: languages/states.php:3135
+#: languages/states.php:3137
msgid "Kočani Municipality"
msgstr ""
-#: languages/states.php:3136
+#: languages/states.php:3138
msgid "Kratovo Municipality"
msgstr ""
-#: languages/states.php:3137
+#: languages/states.php:3139
msgid "Kriva Palanka Municipality"
msgstr ""
-#: languages/states.php:3138
+#: languages/states.php:3140
msgid "Krivogaštani Municipality"
msgstr ""
-#: languages/states.php:3139
+#: languages/states.php:3141
msgid "Kruševo Municipality"
msgstr ""
-#: languages/states.php:3140
+#: languages/states.php:3142
msgid "Kumanovo Municipality"
msgstr ""
-#: languages/states.php:3141
+#: languages/states.php:3143
msgid "Lipkovo Municipality"
msgstr ""
-#: languages/states.php:3142
+#: languages/states.php:3144
msgid "Lozovo Municipality"
msgstr ""
-#: languages/states.php:3143
+#: languages/states.php:3145
msgid "Mavrovo and Rostuša Municipality"
msgstr ""
-#: languages/states.php:3144
+#: languages/states.php:3146
msgid "Makedonska Kamenica Municipality"
msgstr ""
-#: languages/states.php:3145
+#: languages/states.php:3147
msgid "Makedonski Brod Municipality"
msgstr ""
-#: languages/states.php:3146
+#: languages/states.php:3148
msgid "Mogila Municipality"
msgstr ""
-#: languages/states.php:3147
+#: languages/states.php:3149
msgid "Negotino Municipality"
msgstr ""
-#: languages/states.php:3148
+#: languages/states.php:3150
msgid "Novaci Municipality"
msgstr ""
-#: languages/states.php:3149
+#: languages/states.php:3151
msgid "Novo Selo Municipality"
msgstr ""
-#: languages/states.php:3150
+#: languages/states.php:3152
msgid "Oslomej Municipality"
msgstr ""
-#: languages/states.php:3151
+#: languages/states.php:3153
msgid "Ohrid Municipality"
msgstr ""
-#: languages/states.php:3152
+#: languages/states.php:3154
msgid "Petrovec Municipality"
msgstr ""
-#: languages/states.php:3153
+#: languages/states.php:3155
msgid "Pehčevo Municipality"
msgstr ""
-#: languages/states.php:3154
+#: languages/states.php:3156
msgid "Plasnica Municipality"
msgstr ""
-#: languages/states.php:3155
+#: languages/states.php:3157
msgid "Prilep Municipality"
msgstr ""
-#: languages/states.php:3156
+#: languages/states.php:3158
msgid "Probištip Municipality"
msgstr ""
-#: languages/states.php:3157
+#: languages/states.php:3159
msgid "Radoviš Municipality"
msgstr ""
-#: languages/states.php:3158
+#: languages/states.php:3160
msgid "Rankovce Municipality"
msgstr ""
-#: languages/states.php:3159
+#: languages/states.php:3161
msgid "Resen Municipality"
msgstr ""
-#: languages/states.php:3160
+#: languages/states.php:3162
msgid "Rosoman Municipality"
msgstr ""
-#: languages/states.php:3161
+#: languages/states.php:3163
msgid "Saraj Municipality"
msgstr ""
-#: languages/states.php:3162
+#: languages/states.php:3164
msgid "Sveti Nikole Municipality"
msgstr ""
-#: languages/states.php:3163
+#: languages/states.php:3165
msgid "Sopište Municipality"
msgstr ""
-#: languages/states.php:3164
+#: languages/states.php:3166
msgid "Staro Nagoričane Municipality"
msgstr ""
-#: languages/states.php:3165
+#: languages/states.php:3167
msgid "Struga Municipality"
msgstr ""
-#: languages/states.php:3166
+#: languages/states.php:3168
msgid "Strumica Municipality"
msgstr ""
-#: languages/states.php:3167
+#: languages/states.php:3169
msgid "Studeničani Municipality"
msgstr ""
-#: languages/states.php:3168
+#: languages/states.php:3170
msgid "Tearce Municipality"
msgstr ""
-#: languages/states.php:3169
+#: languages/states.php:3171
msgid "Tetovo Municipality"
msgstr ""
-#: languages/states.php:3170
+#: languages/states.php:3172
msgid "Centar Municipality"
msgstr ""
-#: languages/states.php:3171
+#: languages/states.php:3173
msgid "Centar Župa Municipality"
msgstr ""
-#: languages/states.php:3172
+#: languages/states.php:3174
msgid "Čair Municipality"
msgstr ""
-#: languages/states.php:3173
+#: languages/states.php:3175
msgid "Čaška Municipality"
msgstr ""
-#: languages/states.php:3174
+#: languages/states.php:3176
msgid "Češinovo-Obleševo Municipality"
msgstr ""
-#: languages/states.php:3175
+#: languages/states.php:3177
msgid "Čučer-Sandevo Municipality"
msgstr ""
-#: languages/states.php:3176
+#: languages/states.php:3178
msgid "Štip Municipality"
msgstr ""
-#: languages/states.php:3177
+#: languages/states.php:3179
msgid "Šuto Orizari Municipality"
msgstr ""
-#: languages/states.php:3178
+#: languages/states.php:3180
msgid "Greater Skopje"
msgstr ""
-#: languages/states.php:3179
+#: languages/states.php:3181
msgid "Aerodrom Municipality"
msgstr ""
-#: languages/states.php:3180
+#: languages/states.php:3182
msgid "Aračinovo Municipality"
msgstr ""
-#: languages/states.php:3181
+#: languages/states.php:3183
msgid "Berovo Municipality"
msgstr ""
-#: languages/states.php:3182
+#: languages/states.php:3184
msgid "Bitola Municipality"
msgstr ""
-#: languages/states.php:3183
+#: languages/states.php:3185
msgid "Bogdanci Municipality"
msgstr ""
-#: languages/states.php:3184
+#: languages/states.php:3186
msgid "Bogovinje Municipality"
msgstr ""
-#: languages/states.php:3185
+#: languages/states.php:3187
msgid "Bosilovo Municipality"
msgstr ""
-#: languages/states.php:3186
+#: languages/states.php:3188
msgid "Brvenica Municipality"
msgstr ""
-#: languages/states.php:3187
+#: languages/states.php:3189
msgid "Butel Municipality"
msgstr ""
-#: languages/states.php:3190
+#: languages/states.php:3192
msgid "Kayes Region"
msgstr ""
-#: languages/states.php:3191
+#: languages/states.php:3193
msgid "Koulikoro Region"
msgstr ""
-#: languages/states.php:3192
+#: languages/states.php:3194
msgid "Sikasso Region"
msgstr ""
-#: languages/states.php:3193
+#: languages/states.php:3195
msgid "Ségou Region"
msgstr ""
-#: languages/states.php:3194
+#: languages/states.php:3196
msgid "Mopti Region"
msgstr ""
-#: languages/states.php:3195
+#: languages/states.php:3197
msgid "Tombouctou Region"
msgstr ""
-#: languages/states.php:3196
+#: languages/states.php:3198
msgid "Gao Region"
msgstr ""
-#: languages/states.php:3197
+#: languages/states.php:3199
msgid "Kidal Region"
msgstr ""
-#: languages/states.php:3198
+#: languages/states.php:3200
msgid "Ménaka Region"
msgstr ""
-#: languages/states.php:3199
+#: languages/states.php:3201
msgid "Taoudénit Region"
msgstr ""
-#: languages/states.php:3200
+#: languages/states.php:3202
msgid "Bamako"
msgstr ""
-#: languages/states.php:3203
+#: languages/states.php:3205
msgid "Kachin State"
msgstr ""
-#: languages/states.php:3204
+#: languages/states.php:3206
msgid "Kayah State"
msgstr ""
-#: languages/states.php:3205
+#: languages/states.php:3207
msgid "Kayin State"
msgstr ""
-#: languages/states.php:3206
+#: languages/states.php:3208
msgid "Chin State"
msgstr ""
-#: languages/states.php:3207
+#: languages/states.php:3209
msgid "Mon State"
msgstr ""
-#: languages/states.php:3208
+#: languages/states.php:3210
msgid "Rakhine State"
msgstr ""
-#: languages/states.php:3209
+#: languages/states.php:3211
msgid "Shan State"
msgstr ""
-#: languages/states.php:3210
+#: languages/states.php:3212
msgid "Naypyidaw Union Territory"
msgstr ""
-#: languages/states.php:3211
+#: languages/states.php:3213
msgid "Ayeyarwady Region"
msgstr ""
-#: languages/states.php:3212
+#: languages/states.php:3214
msgid "Bago"
msgstr ""
-#: languages/states.php:3213
+#: languages/states.php:3215
msgid "Magway Region"
msgstr ""
-#: languages/states.php:3214
+#: languages/states.php:3216
msgid "Mandalay Region"
msgstr ""
-#: languages/states.php:3215
+#: languages/states.php:3217
msgid "Sagaing Region"
msgstr ""
-#: languages/states.php:3216
+#: languages/states.php:3218
msgid "Tanintharyi Region"
msgstr ""
-#: languages/states.php:3217
+#: languages/states.php:3219
msgid "Yangon Region"
msgstr ""
-#: languages/states.php:3220
+#: languages/states.php:3222
msgid "Arkhangai Province"
msgstr ""
-#: languages/states.php:3221
+#: languages/states.php:3223
msgid "Bayan-Ölgii Province"
msgstr ""
-#: languages/states.php:3222
+#: languages/states.php:3224
msgid "Bayankhongor Province"
msgstr ""
-#: languages/states.php:3223
+#: languages/states.php:3225
msgid "Bulgan Province"
msgstr ""
-#: languages/states.php:3224
+#: languages/states.php:3226
msgid "Darkhan-Uul Province"
msgstr ""
-#: languages/states.php:3225
+#: languages/states.php:3227
msgid "Dornod Province"
msgstr ""
-#: languages/states.php:3226
+#: languages/states.php:3228
msgid "Dornogovi Province"
msgstr ""
-#: languages/states.php:3227
+#: languages/states.php:3229
msgid "Dundgovi Province"
msgstr ""
-#: languages/states.php:3228
+#: languages/states.php:3230
msgid "Govi-Altai Province"
msgstr ""
-#: languages/states.php:3229
+#: languages/states.php:3231
msgid "Govisümber Province"
msgstr ""
-#: languages/states.php:3230
+#: languages/states.php:3232
msgid "Khentii Province"
msgstr ""
-#: languages/states.php:3231
+#: languages/states.php:3233
msgid "Khovd Province"
msgstr ""
-#: languages/states.php:3232
+#: languages/states.php:3234
msgid "Khövsgöl Province"
msgstr ""
-#: languages/states.php:3233
+#: languages/states.php:3235
msgid "Orkhon Province"
msgstr ""
-#: languages/states.php:3234
+#: languages/states.php:3236
msgid "Selenge Province"
msgstr ""
-#: languages/states.php:3235
+#: languages/states.php:3237
msgid "Sükhbaatar Province"
msgstr ""
-#: languages/states.php:3236
+#: languages/states.php:3238
msgid "Töv Province"
msgstr ""
-#: languages/states.php:3237
+#: languages/states.php:3239
msgid "Uvs Province"
msgstr ""
-#: languages/states.php:3238
+#: languages/states.php:3240
msgid "Zavkhan Province"
msgstr ""
-#: languages/states.php:3239
+#: languages/states.php:3241
msgid "Ömnögovi Province"
msgstr ""
-#: languages/states.php:3240
+#: languages/states.php:3242
msgid "Övörkhangai Province"
msgstr ""
-#: languages/states.php:3246
+#: languages/states.php:3248
msgid "Guidimaka Region"
msgstr ""
-#: languages/states.php:3247
+#: languages/states.php:3249
msgid "Tiris Zemmour Region"
msgstr ""
-#: languages/states.php:3248
+#: languages/states.php:3250
msgid "Inchiri Region"
msgstr ""
-#: languages/states.php:3249
+#: languages/states.php:3251
msgid "Nouakchott-Ouest Region"
msgstr ""
-#: languages/states.php:3250
+#: languages/states.php:3252
msgid "Nouakchott-Nord Region"
msgstr ""
-#: languages/states.php:3251
+#: languages/states.php:3253
msgid "Nouakchott-Sud Region"
msgstr ""
-#: languages/states.php:3252
+#: languages/states.php:3254
msgid "Adrar Region"
msgstr ""
-#: languages/states.php:3253
+#: languages/states.php:3255
msgid "Assaba Region"
msgstr ""
-#: languages/states.php:3254
+#: languages/states.php:3256
msgid "Brakna Region"
msgstr ""
-#: languages/states.php:3255
+#: languages/states.php:3257
msgid "Dakhlet Nouadhibou"
msgstr ""
-#: languages/states.php:3256
+#: languages/states.php:3258
msgid "Gorgol Region"
msgstr ""
-#: languages/states.php:3257
+#: languages/states.php:3259
msgid "Hodh Ech Chargui Region"
msgstr ""
-#: languages/states.php:3258
+#: languages/states.php:3260
msgid "Hodh El Gharbi Region"
msgstr ""
-#: languages/states.php:3259
+#: languages/states.php:3261
msgid "Tagant Region"
msgstr ""
-#: languages/states.php:3260
+#: languages/states.php:3262
msgid "Trarza Region"
msgstr ""
-#: languages/states.php:3264
+#: languages/states.php:3266
msgid "Fontana"
msgstr ""
-#: languages/states.php:3265
+#: languages/states.php:3267
msgid "Gudja"
msgstr ""
-#: languages/states.php:3266
+#: languages/states.php:3268
msgid "Gżira"
msgstr ""
-#: languages/states.php:3267
+#: languages/states.php:3269
msgid "Għajnsielem"
msgstr ""
-#: languages/states.php:3268
+#: languages/states.php:3270
msgid "Għarb"
msgstr ""
-#: languages/states.php:3269
+#: languages/states.php:3271
msgid "Għargħur"
msgstr ""
-#: languages/states.php:3270
+#: languages/states.php:3272
msgid "Għasri"
msgstr ""
-#: languages/states.php:3271
+#: languages/states.php:3273
msgid "Għaxaq"
msgstr ""
-#: languages/states.php:3272
+#: languages/states.php:3274
msgid "Ħamrun"
msgstr ""
-#: languages/states.php:3273
+#: languages/states.php:3275
msgid "Iklin"
msgstr ""
-#: languages/states.php:3274
+#: languages/states.php:3276
msgid "Senglea"
msgstr ""
-#: languages/states.php:3275
+#: languages/states.php:3277
msgid "Kalkara"
msgstr ""
-#: languages/states.php:3276
+#: languages/states.php:3278
msgid "Kerċem"
msgstr ""
-#: languages/states.php:3277
+#: languages/states.php:3279
msgid "Kirkop"
msgstr ""
-#: languages/states.php:3278
+#: languages/states.php:3280
msgid "Lija"
msgstr ""
-#: languages/states.php:3279
+#: languages/states.php:3281
msgid "Luqa"
msgstr ""
-#: languages/states.php:3280
+#: languages/states.php:3282
msgid "Marsa"
msgstr ""
-#: languages/states.php:3281
+#: languages/states.php:3283
msgid "Marsaskala"
msgstr ""
-#: languages/states.php:3282
+#: languages/states.php:3284
msgid "Marsaxlokk"
msgstr ""
-#: languages/states.php:3283
+#: languages/states.php:3285
msgid "Mdina"
msgstr ""
-#: languages/states.php:3284
+#: languages/states.php:3286
msgid "Mellieħa"
msgstr ""
-#: languages/states.php:3285
+#: languages/states.php:3287
msgid "Mġarr"
msgstr ""
-#: languages/states.php:3286
+#: languages/states.php:3288
msgid "Mosta"
msgstr ""
-#: languages/states.php:3287
+#: languages/states.php:3289
msgid "Mqabba"
msgstr ""
-#: languages/states.php:3288
+#: languages/states.php:3290
msgid "Msida"
msgstr ""
-#: languages/states.php:3289
+#: languages/states.php:3291
msgid "Mtarfa"
msgstr ""
-#: languages/states.php:3290
+#: languages/states.php:3292
msgid "Munxar"
msgstr ""
-#: languages/states.php:3291
+#: languages/states.php:3293
msgid "Nadur"
msgstr ""
-#: languages/states.php:3292
+#: languages/states.php:3294
msgid "Naxxar"
msgstr ""
-#: languages/states.php:3293
+#: languages/states.php:3295
msgid "Paola"
msgstr ""
-#: languages/states.php:3294
+#: languages/states.php:3296
msgid "Pembroke"
msgstr ""
-#: languages/states.php:3295
+#: languages/states.php:3297
msgid "Pietà"
msgstr ""
-#: languages/states.php:3296
+#: languages/states.php:3298
msgid "Qala"
msgstr ""
-#: languages/states.php:3297
+#: languages/states.php:3299
msgid "Qormi"
msgstr ""
-#: languages/states.php:3298
+#: languages/states.php:3300
msgid "Qrendi"
msgstr ""
-#: languages/states.php:3300
+#: languages/states.php:3302
msgid "Rabat"
msgstr ""
-#: languages/states.php:3301
+#: languages/states.php:3303
msgid "St. Julian's"
msgstr ""
-#: languages/states.php:3302
+#: languages/states.php:3304
msgid "San Ġwann"
msgstr ""
-#: languages/states.php:3303
+#: languages/states.php:3305
msgid "Saint Lawrence"
msgstr ""
-#: languages/states.php:3304
+#: languages/states.php:3306
msgid "St. Paul's Bay"
msgstr ""
-#: languages/states.php:3305
+#: languages/states.php:3307
msgid "Sannat"
msgstr ""
-#: languages/states.php:3306
+#: languages/states.php:3308
msgid "Santa Luċija"
msgstr ""
-#: languages/states.php:3307
+#: languages/states.php:3309
msgid "Santa Venera"
msgstr ""
-#: languages/states.php:3308
+#: languages/states.php:3310
msgid "Siġġiewi"
msgstr ""
-#: languages/states.php:3309
+#: languages/states.php:3311
msgid "Sliema"
msgstr ""
-#: languages/states.php:3310
+#: languages/states.php:3312
msgid "Swieqi"
msgstr ""
-#: languages/states.php:3311
+#: languages/states.php:3313
msgid "Ta' Xbiex"
msgstr ""
-#: languages/states.php:3312
+#: languages/states.php:3314
msgid "Tarxien"
msgstr ""
-#: languages/states.php:3313
+#: languages/states.php:3315
msgid "Valletta"
msgstr ""
-#: languages/states.php:3314
+#: languages/states.php:3316
msgid "Xagħra"
msgstr ""
-#: languages/states.php:3315
+#: languages/states.php:3317
msgid "Xewkija"
msgstr ""
-#: languages/states.php:3316
+#: languages/states.php:3318
msgid "Xgħajra"
msgstr ""
-#: languages/states.php:3317
+#: languages/states.php:3319
msgid "Żabbar"
msgstr ""
-#: languages/states.php:3318
+#: languages/states.php:3320
msgid "Żebbuġ Gozo"
msgstr ""
-#: languages/states.php:3319
+#: languages/states.php:3321
msgid "Żebbuġ Malta"
msgstr ""
-#: languages/states.php:3320
+#: languages/states.php:3322
msgid "Żejtun"
msgstr ""
-#: languages/states.php:3321
+#: languages/states.php:3323
msgid "Żurrieq"
msgstr ""
-#: languages/states.php:3322
+#: languages/states.php:3324
msgid "Attard"
msgstr ""
-#: languages/states.php:3323
+#: languages/states.php:3325
msgid "Balzan"
msgstr ""
-#: languages/states.php:3324
+#: languages/states.php:3326
msgid "Birgu"
msgstr ""
-#: languages/states.php:3325
+#: languages/states.php:3327
msgid "Birkirkara"
msgstr ""
-#: languages/states.php:3326
+#: languages/states.php:3328
msgid "Birżebbuġa"
msgstr ""
-#: languages/states.php:3327
+#: languages/states.php:3329
msgid "Cospicua"
msgstr ""
-#: languages/states.php:3328
+#: languages/states.php:3330
msgid "Dingli"
msgstr ""
-#: languages/states.php:3329
+#: languages/states.php:3331
msgid "Fgura"
msgstr ""
-#: languages/states.php:3330
+#: languages/states.php:3332
msgid "Floriana"
msgstr ""
-#: languages/states.php:3333
+#: languages/states.php:3335
msgid "Agaléga"
msgstr ""
-#: languages/states.php:3334
+#: languages/states.php:3336
msgid "Beau Bassin-Rose Hill"
msgstr ""
-#: languages/states.php:3335
+#: languages/states.php:3337
msgid "Cargados Carajos"
msgstr ""
-#: languages/states.php:3336
+#: languages/states.php:3338
msgid "Curepipe"
msgstr ""
-#: languages/states.php:3337
+#: languages/states.php:3339
msgid "Flacq District"
msgstr ""
-#: languages/states.php:3338
+#: languages/states.php:3340
msgid "Grand Port District"
msgstr ""
-#: languages/states.php:3339
+#: languages/states.php:3341
msgid "Moka District"
msgstr ""
-#: languages/states.php:3340
+#: languages/states.php:3342
msgid "Pamplemousses District"
msgstr ""
-#: languages/states.php:3341
+#: languages/states.php:3343
msgid "Plaines Wilhems District"
msgstr ""
-#: languages/states.php:3342
+#: languages/states.php:3344
msgid "Port Louis"
msgstr ""
-#: languages/states.php:3343
+#: languages/states.php:3345
msgid "Port Louis District"
msgstr ""
-#: languages/states.php:3344
+#: languages/states.php:3346
msgid "Quatre Bornes"
msgstr ""
-#: languages/states.php:3345
+#: languages/states.php:3347
msgid "Rivière Noire District"
msgstr ""
-#: languages/states.php:3346
+#: languages/states.php:3348
msgid "Rivière du Rempart District"
msgstr ""
-#: languages/states.php:3347
+#: languages/states.php:3349
msgid "Rodrigues"
msgstr ""
-#: languages/states.php:3348
+#: languages/states.php:3350
msgid "Savanne District"
msgstr ""
-#: languages/states.php:3349
+#: languages/states.php:3351
msgid "Vacoas-Phoenix"
msgstr ""
-#: languages/states.php:3352
+#: languages/states.php:3354
msgid "Meemu Atoll"
msgstr ""
-#: languages/states.php:3353
+#: languages/states.php:3355
msgid "Raa Atoll"
msgstr ""
-#: languages/states.php:3354
+#: languages/states.php:3356
msgid "Faafu Atoll"
msgstr ""
-#: languages/states.php:3355
+#: languages/states.php:3357
msgid "Dhaalu Atoll"
msgstr ""
-#: languages/states.php:3356
+#: languages/states.php:3358
msgid "Haa Dhaalu Atoll"
msgstr ""
-#: languages/states.php:3357
+#: languages/states.php:3359
msgid "Shaviyani Atoll"
msgstr ""
-#: languages/states.php:3358
+#: languages/states.php:3360
msgid "Noonu Atoll"
msgstr ""
-#: languages/states.php:3359
+#: languages/states.php:3361
msgid "Kaafu Atoll"
msgstr ""
-#: languages/states.php:3360
+#: languages/states.php:3362
msgid "Gaafu Alif Atoll"
msgstr ""
-#: languages/states.php:3361
+#: languages/states.php:3363
msgid "Gaafu Dhaalu Atoll"
msgstr ""
-#: languages/states.php:3362
+#: languages/states.php:3364
msgid "Gnaviyani Atoll"
msgstr ""
-#: languages/states.php:3363
+#: languages/states.php:3365
msgid "Addu Atoll"
msgstr ""
-#: languages/states.php:3364
+#: languages/states.php:3366
msgid "Alif Alif Atoll"
msgstr ""
-#: languages/states.php:3365
+#: languages/states.php:3367
msgid "Alif Dhaal Atoll"
msgstr ""
-#: languages/states.php:3367
+#: languages/states.php:3369
msgid "Haa Alif Atoll"
msgstr ""
-#: languages/states.php:3368
+#: languages/states.php:3370
msgid "Laamu Atoll"
msgstr ""
-#: languages/states.php:3369
+#: languages/states.php:3371
msgid "Lhaviyani Atoll"
msgstr ""
-#: languages/states.php:3370
+#: languages/states.php:3372
msgid "Malé"
msgstr ""
-#: languages/states.php:3372
+#: languages/states.php:3374
msgid "North Province"
msgstr ""
-#: languages/states.php:3373
+#: languages/states.php:3375
msgid "South Central Province"
msgstr ""
-#: languages/states.php:3374
+#: languages/states.php:3376
msgid "South Province"
msgstr ""
-#: languages/states.php:3375
+#: languages/states.php:3377
msgid "Thaa Atoll"
msgstr ""
-#: languages/states.php:3376
+#: languages/states.php:3378
msgid "Upper South Province"
msgstr ""
-#: languages/states.php:3377
+#: languages/states.php:3379
msgid "Vaavu Atoll"
msgstr ""
-#: languages/states.php:3380
+#: languages/states.php:3382
msgid "Balaka District"
msgstr ""
-#: languages/states.php:3381
+#: languages/states.php:3383
msgid "Blantyre District"
msgstr ""
-#: languages/states.php:3383
+#: languages/states.php:3385
msgid "Chikwawa District"
msgstr ""
-#: languages/states.php:3384
+#: languages/states.php:3386
msgid "Chiradzulu District"
msgstr ""
-#: languages/states.php:3385
+#: languages/states.php:3387
msgid "Chitipa district"
msgstr ""
-#: languages/states.php:3386
+#: languages/states.php:3388
msgid "Dedza District"
msgstr ""
-#: languages/states.php:3387
+#: languages/states.php:3389
msgid "Dowa District"
msgstr ""
-#: languages/states.php:3388
+#: languages/states.php:3390
msgid "Karonga District"
msgstr ""
-#: languages/states.php:3389
+#: languages/states.php:3391
msgid "Kasungu District"
msgstr ""
-#: languages/states.php:3390
+#: languages/states.php:3392
msgid "Likoma District"
msgstr ""
-#: languages/states.php:3391
+#: languages/states.php:3393
msgid "Lilongwe District"
msgstr ""
-#: languages/states.php:3392
+#: languages/states.php:3394
msgid "Machinga District"
msgstr ""
-#: languages/states.php:3393
+#: languages/states.php:3395
msgid "Mangochi District"
msgstr ""
-#: languages/states.php:3394
+#: languages/states.php:3396
msgid "Mchinji District"
msgstr ""
-#: languages/states.php:3395
+#: languages/states.php:3397
msgid "Mulanje District"
msgstr ""
-#: languages/states.php:3396
+#: languages/states.php:3398
msgid "Mwanza District"
msgstr ""
-#: languages/states.php:3397
+#: languages/states.php:3399
msgid "Mzimba District"
msgstr ""
-#: languages/states.php:3398
+#: languages/states.php:3400
msgid "Nkhata Bay District"
msgstr ""
-#: languages/states.php:3399
+#: languages/states.php:3401
msgid "Nkhotakota District"
msgstr ""
-#: languages/states.php:3401
+#: languages/states.php:3403
msgid "Nsanje District"
msgstr ""
-#: languages/states.php:3402
+#: languages/states.php:3404
msgid "Ntcheu District"
msgstr ""
-#: languages/states.php:3403
+#: languages/states.php:3405
msgid "Ntchisi District"
msgstr ""
-#: languages/states.php:3404
+#: languages/states.php:3406
msgid "Phalombe District"
msgstr ""
-#: languages/states.php:3405
+#: languages/states.php:3407
msgid "Rumphi District"
msgstr ""
-#: languages/states.php:3406
+#: languages/states.php:3408
msgid "Salima District"
msgstr ""
-#: languages/states.php:3408
+#: languages/states.php:3410
msgid "Thyolo District"
msgstr ""
-#: languages/states.php:3409
+#: languages/states.php:3411
msgid "Zomba District"
msgstr ""
-#: languages/states.php:3412
+#: languages/states.php:3414
msgid "Aguascalientes"
msgstr ""
-#: languages/states.php:3413
+#: languages/states.php:3415
msgid "Baja California"
msgstr ""
-#: languages/states.php:3414
+#: languages/states.php:3416
msgid "Baja California Sur"
msgstr ""
-#: languages/states.php:3415
+#: languages/states.php:3417
msgid "Campeche"
msgstr ""
-#: languages/states.php:3416
+#: languages/states.php:3418
msgid "Chiapas"
msgstr ""
-#: languages/states.php:3417
+#: languages/states.php:3419
msgid "Chihuahua"
msgstr ""
-#: languages/states.php:3418
+#: languages/states.php:3420
msgid "Coahuila"
msgstr ""
-#: languages/states.php:3419
+#: languages/states.php:3421
msgid "Colima"
msgstr ""
-#: languages/states.php:3420
+#: languages/states.php:3422
msgid "Durango"
msgstr ""
-#: languages/states.php:3421
+#: languages/states.php:3423
msgid "Guanajuato"
msgstr ""
-#: languages/states.php:3422
+#: languages/states.php:3424
msgid "Guerrero"
msgstr ""
-#: languages/states.php:3423
+#: languages/states.php:3425
msgid "Hidalgo"
msgstr ""
-#: languages/states.php:3424
+#: languages/states.php:3426
msgid "Jalisco"
msgstr ""
-#: languages/states.php:3425
+#: languages/states.php:3427
msgid "Mexico City"
msgstr ""
-#: languages/states.php:3426
+#: languages/states.php:3428
msgid "Michoacán"
msgstr ""
-#: languages/states.php:3427
+#: languages/states.php:3429
msgid "Morelos"
msgstr ""
-#: languages/states.php:3428
+#: languages/states.php:3430
msgid "México"
msgstr ""
-#: languages/states.php:3429
+#: languages/states.php:3431
msgid "Nayarit"
msgstr ""
-#: languages/states.php:3430
+#: languages/states.php:3432
msgid "Nuevo León"
msgstr ""
-#: languages/states.php:3431
+#: languages/states.php:3433
msgid "Oaxaca"
msgstr ""
-#: languages/states.php:3432
+#: languages/states.php:3434
msgid "Puebla"
msgstr ""
-#: languages/states.php:3433
+#: languages/states.php:3435
msgid "Querétaro"
msgstr ""
-#: languages/states.php:3434
+#: languages/states.php:3436
msgid "Quintana Roo"
msgstr ""
-#: languages/states.php:3435
+#: languages/states.php:3437
msgid "San Luis Potosí"
msgstr ""
-#: languages/states.php:3436
+#: languages/states.php:3438
msgid "Sinaloa"
msgstr ""
-#: languages/states.php:3437
+#: languages/states.php:3439
msgid "Sonora"
msgstr ""
-#: languages/states.php:3438
+#: languages/states.php:3440
msgid "Tabasco"
msgstr ""
-#: languages/states.php:3439
+#: languages/states.php:3441
msgid "Tamaulipas"
msgstr ""
-#: languages/states.php:3440
+#: languages/states.php:3442
msgid "Tlaxcala"
msgstr ""
-#: languages/states.php:3441
+#: languages/states.php:3443
msgid "Veracruz"
msgstr ""
-#: languages/states.php:3442
+#: languages/states.php:3444
msgid "Yucatán"
msgstr ""
-#: languages/states.php:3443
+#: languages/states.php:3445
msgid "Zacatecas"
msgstr ""
-#: languages/states.php:3446
+#: languages/states.php:3448
msgid "Selangor"
msgstr ""
-#: languages/states.php:3447
+#: languages/states.php:3449
msgid "Terengganu"
msgstr ""
-#: languages/states.php:3448
+#: languages/states.php:3450
msgid "Sabah"
msgstr ""
-#: languages/states.php:3449
+#: languages/states.php:3451
msgid "Sarawak"
msgstr ""
-#: languages/states.php:3450
+#: languages/states.php:3452
msgid "Kuala Lumpur"
msgstr ""
-#: languages/states.php:3451
+#: languages/states.php:3453
msgid "Labuan"
msgstr ""
-#: languages/states.php:3452
+#: languages/states.php:3454
msgid "Putrajaya"
msgstr ""
-#: languages/states.php:3453
+#: languages/states.php:3455
msgid "Johor"
msgstr ""
-#: languages/states.php:3454
+#: languages/states.php:3456
msgid "Kedah"
msgstr ""
-#: languages/states.php:3455
+#: languages/states.php:3457
msgid "Kelantan"
msgstr ""
-#: languages/states.php:3456
+#: languages/states.php:3458
msgid "Malacca"
msgstr ""
-#: languages/states.php:3457
+#: languages/states.php:3459
msgid "Negeri Sembilan"
msgstr ""
-#: languages/states.php:3458
+#: languages/states.php:3460
msgid "Pahang"
msgstr ""
-#: languages/states.php:3459
+#: languages/states.php:3461
msgid "Penang"
msgstr ""
-#: languages/states.php:3460
+#: languages/states.php:3462
msgid "Perak"
msgstr ""
-#: languages/states.php:3461
+#: languages/states.php:3463
msgid "Perlis"
msgstr ""
-#: languages/states.php:3464
+#: languages/states.php:3466
msgid "Cabo Delgado Province"
msgstr ""
-#: languages/states.php:3465
+#: languages/states.php:3467
msgid "Gaza Province"
msgstr ""
-#: languages/states.php:3466
+#: languages/states.php:3468
msgid "Inhambane Province"
msgstr ""
-#: languages/states.php:3467
+#: languages/states.php:3469
msgid "Manica Province"
msgstr ""
-#: languages/states.php:3468
+#: languages/states.php:3470
msgid "Maputo"
msgstr ""
-#: languages/states.php:3469
+#: languages/states.php:3471
msgid "Maputo Province"
msgstr ""
-#: languages/states.php:3470
+#: languages/states.php:3472
msgid "Nampula Province"
msgstr ""
-#: languages/states.php:3471
+#: languages/states.php:3473
msgid "Niassa Province"
msgstr ""
-#: languages/states.php:3472
+#: languages/states.php:3474
msgid "Sofala Province"
msgstr ""
-#: languages/states.php:3473
+#: languages/states.php:3475
msgid "Tete Province"
msgstr ""
-#: languages/states.php:3474
+#: languages/states.php:3476
msgid "Zambezia Province"
msgstr ""
-#: languages/states.php:3477
+#: languages/states.php:3479
msgid "Erongo Region"
msgstr ""
-#: languages/states.php:3478
+#: languages/states.php:3480
msgid "Hardap Region"
msgstr ""
-#: languages/states.php:3479
+#: languages/states.php:3481
msgid "Karas Region"
msgstr ""
-#: languages/states.php:3480
+#: languages/states.php:3482
msgid "Kavango East Region"
msgstr ""
-#: languages/states.php:3481
+#: languages/states.php:3483
msgid "Kavango West Region"
msgstr ""
-#: languages/states.php:3482
+#: languages/states.php:3484
msgid "Khomas Region"
msgstr ""
-#: languages/states.php:3483
+#: languages/states.php:3485
msgid "Kunene Region"
msgstr ""
-#: languages/states.php:3484
+#: languages/states.php:3486
msgid "Ohangwena Region"
msgstr ""
-#: languages/states.php:3485
+#: languages/states.php:3487
msgid "Omaheke Region"
msgstr ""
-#: languages/states.php:3486
+#: languages/states.php:3488
msgid "Omusati Region"
msgstr ""
-#: languages/states.php:3487
+#: languages/states.php:3489
msgid "Oshana Region"
msgstr ""
-#: languages/states.php:3488
+#: languages/states.php:3490
msgid "Oshikoto Region"
msgstr ""
-#: languages/states.php:3489
+#: languages/states.php:3491
msgid "Otjozondjupa Region"
msgstr ""
-#: languages/states.php:3490
+#: languages/states.php:3492
msgid "Zambezi Region"
msgstr ""
-#: languages/states.php:3494
+#: languages/states.php:3496
msgid "Agadez Region"
msgstr ""
-#: languages/states.php:3495
+#: languages/states.php:3497
msgid "Diffa Region"
msgstr ""
-#: languages/states.php:3496
+#: languages/states.php:3498
msgid "Dosso Region"
msgstr ""
-#: languages/states.php:3497
+#: languages/states.php:3499
msgid "Maradi Region"
msgstr ""
-#: languages/states.php:3498
+#: languages/states.php:3500
msgid "Tahoua Region"
msgstr ""
-#: languages/states.php:3499
+#: languages/states.php:3501
msgid "Tillabéri Region"
msgstr ""
-#: languages/states.php:3500
+#: languages/states.php:3502
msgid "Zinder Region"
msgstr ""
-#: languages/states.php:3504
+#: languages/states.php:3506
msgid "Abia State"
msgstr ""
-#: languages/states.php:3505
+#: languages/states.php:3507
msgid "Adamawa State"
msgstr ""
-#: languages/states.php:3506
+#: languages/states.php:3508
msgid "Akwa Ibom State"
msgstr ""
-#: languages/states.php:3507
+#: languages/states.php:3509
msgid "Anambra State"
msgstr ""
-#: languages/states.php:3508
+#: languages/states.php:3510
msgid "Bauchi State"
msgstr ""
-#: languages/states.php:3509
+#: languages/states.php:3511
msgid "Bayelsa State"
msgstr ""
-#: languages/states.php:3510
+#: languages/states.php:3512
msgid "Benue State"
msgstr ""
-#: languages/states.php:3511
+#: languages/states.php:3513
msgid "Borno State"
msgstr ""
-#: languages/states.php:3512
+#: languages/states.php:3514
msgid "Cross River State"
msgstr ""
-#: languages/states.php:3513
+#: languages/states.php:3515
msgid "Delta State"
msgstr ""
-#: languages/states.php:3514
+#: languages/states.php:3516
msgid "Ebonyi State"
msgstr ""
-#: languages/states.php:3515
+#: languages/states.php:3517
msgid "Edo State"
msgstr ""
-#: languages/states.php:3516
+#: languages/states.php:3518
msgid "Ekiti State"
msgstr ""
-#: languages/states.php:3517
+#: languages/states.php:3519
msgid "Enugu State"
msgstr ""
-#: languages/states.php:3518
+#: languages/states.php:3520
msgid "Federal Capital Territory"
msgstr ""
-#: languages/states.php:3519
+#: languages/states.php:3521
msgid "Gombe State"
msgstr ""
-#: languages/states.php:3520
+#: languages/states.php:3522
msgid "Imo State"
msgstr ""
-#: languages/states.php:3521
+#: languages/states.php:3523
msgid "Jigawa State"
msgstr ""
-#: languages/states.php:3522
+#: languages/states.php:3524
msgid "Kaduna State"
msgstr ""
-#: languages/states.php:3523
+#: languages/states.php:3525
msgid "Kano State"
msgstr ""
-#: languages/states.php:3524
+#: languages/states.php:3526
msgid "Katsina State"
msgstr ""
-#: languages/states.php:3525
+#: languages/states.php:3527
msgid "Kebbi State"
msgstr ""
-#: languages/states.php:3526
+#: languages/states.php:3528
msgid "Kogi State"
msgstr ""
-#: languages/states.php:3527
+#: languages/states.php:3529
msgid "Kwara State"
msgstr ""
-#: languages/states.php:3528
+#: languages/states.php:3530
msgid "Lagos"
msgstr ""
-#: languages/states.php:3529
+#: languages/states.php:3531
msgid "Nasarawa State"
msgstr ""
-#: languages/states.php:3530
+#: languages/states.php:3532
msgid "Niger State"
msgstr ""
-#: languages/states.php:3531
+#: languages/states.php:3533
msgid "Ogun State"
msgstr ""
-#: languages/states.php:3532
+#: languages/states.php:3534
msgid "Ondo State"
msgstr ""
-#: languages/states.php:3533
+#: languages/states.php:3535
msgid "Osun State"
msgstr ""
-#: languages/states.php:3534
+#: languages/states.php:3536
msgid "Oyo State"
msgstr ""
-#: languages/states.php:3535
+#: languages/states.php:3537
msgid "Plateau State"
msgstr ""
-#: languages/states.php:3536
+#: languages/states.php:3538
msgid "Sokoto State"
msgstr ""
-#: languages/states.php:3537
+#: languages/states.php:3539
msgid "Taraba State"
msgstr ""
-#: languages/states.php:3538
+#: languages/states.php:3540
msgid "Yobe State"
msgstr ""
-#: languages/states.php:3539
+#: languages/states.php:3541
msgid "Zamfara State"
msgstr ""
-#: languages/states.php:3542
+#: languages/states.php:3544
msgid "Boaco Department"
msgstr ""
-#: languages/states.php:3543
+#: languages/states.php:3545
msgid "Carazo Department"
msgstr ""
-#: languages/states.php:3544
+#: languages/states.php:3546
msgid "Chinandega Department"
msgstr ""
-#: languages/states.php:3545
+#: languages/states.php:3547
msgid "Chontales Department"
msgstr ""
-#: languages/states.php:3546
+#: languages/states.php:3548
msgid "Estelí Department"
msgstr ""
-#: languages/states.php:3547
+#: languages/states.php:3549
msgid "Granada Department"
msgstr ""
-#: languages/states.php:3548
+#: languages/states.php:3550
msgid "Jinotega Department"
msgstr ""
-#: languages/states.php:3549
+#: languages/states.php:3551
msgid "León Department"
msgstr ""
-#: languages/states.php:3550
+#: languages/states.php:3552
msgid "Madriz Department"
msgstr ""
-#: languages/states.php:3551
+#: languages/states.php:3553
msgid "Managua Department"
msgstr ""
-#: languages/states.php:3552
+#: languages/states.php:3554
msgid "Masaya Department"
msgstr ""
-#: languages/states.php:3553
+#: languages/states.php:3555
msgid "Matagalpa Department"
msgstr ""
-#: languages/states.php:3554
+#: languages/states.php:3556
msgid "North Caribbean Coast Autonomous Region"
msgstr ""
-#: languages/states.php:3555
+#: languages/states.php:3557
msgid "Rivas Department"
msgstr ""
-#: languages/states.php:3556
+#: languages/states.php:3558
msgid "Río San Juan Department"
msgstr ""
-#: languages/states.php:3557
+#: languages/states.php:3559
msgid "South Caribbean Coast Autonomous Region"
msgstr ""
-#: languages/states.php:3560
+#: languages/states.php:3562
msgid "Bonaire"
msgstr ""
-#: languages/states.php:3561
+#: languages/states.php:3563
msgid "Drenthe"
msgstr ""
-#: languages/states.php:3562
+#: languages/states.php:3564
msgid "Flevoland"
msgstr ""
-#: languages/states.php:3563
+#: languages/states.php:3565
msgid "Friesland"
msgstr ""
-#: languages/states.php:3564
+#: languages/states.php:3566
msgid "Gelderland"
msgstr ""
-#: languages/states.php:3565
+#: languages/states.php:3567
msgid "Groningen"
msgstr ""
-#: languages/states.php:3567
+#: languages/states.php:3569
msgid "North Brabant"
msgstr ""
-#: languages/states.php:3568
+#: languages/states.php:3570
msgid "North Holland"
msgstr ""
-#: languages/states.php:3569
+#: languages/states.php:3571
msgid "Overijssel"
msgstr ""
-#: languages/states.php:3570
+#: languages/states.php:3572
msgid "Saba"
msgstr ""
-#: languages/states.php:3571
+#: languages/states.php:3573
msgid "Sint Eustatius"
msgstr ""
-#: languages/states.php:3572
+#: languages/states.php:3574
msgid "South Holland"
msgstr ""
-#: languages/states.php:3573
+#: languages/states.php:3575
msgid "Utrecht"
msgstr ""
-#: languages/states.php:3574
+#: languages/states.php:3576
msgid "Zeeland"
msgstr ""
-#: languages/states.php:3577
+#: languages/states.php:3579
msgid "Vest-Agder"
msgstr ""
-#: languages/states.php:3578
+#: languages/states.php:3580
msgid "Rogaland"
msgstr ""
-#: languages/states.php:3579
+#: languages/states.php:3581
msgid "Hordaland"
msgstr ""
-#: languages/states.php:3580
+#: languages/states.php:3582
msgid "Sogn og Fjordane"
msgstr ""
-#: languages/states.php:3581
+#: languages/states.php:3583
msgid "Møre og Romsdal"
msgstr ""
-#: languages/states.php:3582
+#: languages/states.php:3584
msgid "Sør-Trøndelag"
msgstr ""
-#: languages/states.php:3583
+#: languages/states.php:3585
msgid "Nord-Trøndelag"
msgstr ""
-#: languages/states.php:3584
+#: languages/states.php:3586
msgid "Nordland"
msgstr ""
-#: languages/states.php:3585
+#: languages/states.php:3587
msgid "Troms"
msgstr ""
-#: languages/states.php:3586
+#: languages/states.php:3588
msgid "Finnmark"
msgstr ""
-#: languages/states.php:3587
+#: languages/states.php:3589
msgid "Svalbard"
msgstr ""
-#: languages/states.php:3588
+#: languages/states.php:3590
msgid "Jan Mayen"
msgstr ""
-#: languages/states.php:3589
+#: languages/states.php:3591
msgid "Trøndelag"
msgstr ""
-#: languages/states.php:3590
+#: languages/states.php:3592
msgid "Akershus"
msgstr ""
-#: languages/states.php:3591
+#: languages/states.php:3593
msgid "Buskerud"
msgstr ""
-#: languages/states.php:3592
+#: languages/states.php:3594
msgid "Hedmark"
msgstr ""
-#: languages/states.php:3593
+#: languages/states.php:3595
msgid "Oppland"
msgstr ""
-#: languages/states.php:3594
+#: languages/states.php:3596
msgid "Oslo"
msgstr ""
-#: languages/states.php:3595
+#: languages/states.php:3597
msgid "Telemark"
msgstr ""
-#: languages/states.php:3596
+#: languages/states.php:3598
msgid "Vestfold"
msgstr ""
-#: languages/states.php:3597
+#: languages/states.php:3599
msgid "Østfold"
msgstr ""
-#: languages/states.php:3601
+#: languages/states.php:3603
msgid "Mid-Western Region"
msgstr ""
-#: languages/states.php:3603
+#: languages/states.php:3605
msgid "Eastern Development Region"
msgstr ""
-#: languages/states.php:3604
+#: languages/states.php:3606
msgid "Far-Western Development Region"
msgstr ""
-#: languages/states.php:3605
+#: languages/states.php:3607
msgid "Bagmati Zone"
msgstr ""
-#: languages/states.php:3606
+#: languages/states.php:3608
msgid "Bheri Zone"
msgstr ""
-#: languages/states.php:3607
+#: languages/states.php:3609
msgid "Dhaulagiri Zone"
msgstr ""
-#: languages/states.php:3608
+#: languages/states.php:3610
msgid "Gandaki Zone"
msgstr ""
-#: languages/states.php:3609
+#: languages/states.php:3611
msgid "Janakpur Zone"
msgstr ""
-#: languages/states.php:3610
+#: languages/states.php:3612
msgid "Karnali Zone"
msgstr ""
-#: languages/states.php:3611
+#: languages/states.php:3613
msgid "Kosi Zone"
msgstr ""
-#: languages/states.php:3612
+#: languages/states.php:3614
msgid "Lumbini Zone"
msgstr ""
-#: languages/states.php:3613
+#: languages/states.php:3615
msgid "Mahakali Zone"
msgstr ""
-#: languages/states.php:3614
+#: languages/states.php:3616
msgid "Mechi Zone"
msgstr ""
-#: languages/states.php:3615
+#: languages/states.php:3617
msgid "Narayani Zone"
msgstr ""
-#: languages/states.php:3616
+#: languages/states.php:3618
msgid "Rapti Zone"
msgstr ""
-#: languages/states.php:3617
+#: languages/states.php:3619
msgid "Sagarmatha Zone"
msgstr ""
-#: languages/states.php:3618
+#: languages/states.php:3620
msgid "Seti Zone"
msgstr ""
-#: languages/states.php:3621
+#: languages/states.php:3623
msgid "Ijuw District"
msgstr ""
-#: languages/states.php:3622
+#: languages/states.php:3624
msgid "Meneng District"
msgstr ""
-#: languages/states.php:3623
+#: languages/states.php:3625
msgid "Nibok District"
msgstr ""
-#: languages/states.php:3624
+#: languages/states.php:3626
msgid "Uaboe District"
msgstr ""
-#: languages/states.php:3625
+#: languages/states.php:3627
msgid "Yaren District"
msgstr ""
-#: languages/states.php:3626
+#: languages/states.php:3628
msgid "Aiwo District"
msgstr ""
-#: languages/states.php:3627
+#: languages/states.php:3629
msgid "Anabar District"
msgstr ""
-#: languages/states.php:3628
+#: languages/states.php:3630
msgid "Anetan District"
msgstr ""
-#: languages/states.php:3629
+#: languages/states.php:3631
msgid "Anibare District"
msgstr ""
-#: languages/states.php:3630
+#: languages/states.php:3632
msgid "Baiti District"
msgstr ""
-#: languages/states.php:3631
+#: languages/states.php:3633
msgid "Boe District"
msgstr ""
-#: languages/states.php:3632
+#: languages/states.php:3634
msgid "Buada District"
msgstr ""
-#: languages/states.php:3633
+#: languages/states.php:3635
msgid "Denigomodu District"
msgstr ""
-#: languages/states.php:3634
+#: languages/states.php:3636
msgid "Ewa District"
msgstr ""
-#: languages/states.php:3638
+#: languages/states.php:3640
msgid "Auckland Region"
msgstr ""
-#: languages/states.php:3639
+#: languages/states.php:3641
msgid "Bay of Plenty Region"
msgstr ""
-#: languages/states.php:3640
+#: languages/states.php:3642
msgid "Canterbury Region"
msgstr ""
-#: languages/states.php:3641
+#: languages/states.php:3643
msgid "Chatham Islands"
msgstr ""
-#: languages/states.php:3642
+#: languages/states.php:3644
msgid "Gisborne District"
msgstr ""
-#: languages/states.php:3643
+#: languages/states.php:3645
msgid "Hawke's Bay Region"
msgstr ""
-#: languages/states.php:3644
+#: languages/states.php:3646
msgid "Manawatu-Wanganui Region"
msgstr ""
-#: languages/states.php:3645
+#: languages/states.php:3647
msgid "Marlborough Region"
msgstr ""
-#: languages/states.php:3646
+#: languages/states.php:3648
msgid "Nelson Region"
msgstr ""
-#: languages/states.php:3647
+#: languages/states.php:3649
msgid "Northland Region"
msgstr ""
-#: languages/states.php:3648
+#: languages/states.php:3650
msgid "Otago Region"
msgstr ""
-#: languages/states.php:3649
+#: languages/states.php:3651
msgid "Southland Region"
msgstr ""
-#: languages/states.php:3650
+#: languages/states.php:3652
msgid "Taranaki Region"
msgstr ""
-#: languages/states.php:3651
+#: languages/states.php:3653
msgid "Tasman District"
msgstr ""
-#: languages/states.php:3652
+#: languages/states.php:3654
msgid "Waikato Region"
msgstr ""
-#: languages/states.php:3653
+#: languages/states.php:3655
msgid "Wellington Region"
msgstr ""
-#: languages/states.php:3654
+#: languages/states.php:3656
msgid "West Coast Region"
msgstr ""
-#: languages/states.php:3657
+#: languages/states.php:3659
msgid "Ad Dakhiliyah Governorate"
msgstr ""
-#: languages/states.php:3658
+#: languages/states.php:3660
msgid "Ad Dhahirah Governorate"
msgstr ""
-#: languages/states.php:3659
+#: languages/states.php:3661
msgid "Al Batinah North Governorate"
msgstr ""
-#: languages/states.php:3660
+#: languages/states.php:3662
msgid "Al Batinah Region"
msgstr ""
-#: languages/states.php:3661
+#: languages/states.php:3663
msgid "Al Batinah South Governorate"
msgstr ""
-#: languages/states.php:3662
+#: languages/states.php:3664
msgid "Al Buraimi Governorate"
msgstr ""
-#: languages/states.php:3663
+#: languages/states.php:3665
msgid "Al Wusta Governorate"
msgstr ""
-#: languages/states.php:3664
+#: languages/states.php:3666
msgid "Ash Sharqiyah North Governorate"
msgstr ""
-#: languages/states.php:3665
+#: languages/states.php:3667
msgid "Ash Sharqiyah Region"
msgstr ""
-#: languages/states.php:3666
+#: languages/states.php:3668
msgid "Ash Sharqiyah South Governorate"
msgstr ""
-#: languages/states.php:3667
+#: languages/states.php:3669
msgid "Dhofar Governorate"
msgstr ""
-#: languages/states.php:3668
+#: languages/states.php:3670
msgid "Musandam Governorate"
msgstr ""
-#: languages/states.php:3669
+#: languages/states.php:3671
msgid "Muscat Governorate"
msgstr ""
-#: languages/states.php:3672
+#: languages/states.php:3674
msgid "Bocas del Toro Province"
msgstr ""
-#: languages/states.php:3673
+#: languages/states.php:3675
msgid "Coclé Province"
msgstr ""
-#: languages/states.php:3674
+#: languages/states.php:3676
msgid "Colón Province"
msgstr ""
-#: languages/states.php:3675
+#: languages/states.php:3677
msgid "Chiriquí Province"
msgstr ""
-#: languages/states.php:3676
+#: languages/states.php:3678
msgid "Darién Province"
msgstr ""
-#: languages/states.php:3677
+#: languages/states.php:3679
msgid "Herrera Province"
msgstr ""
-#: languages/states.php:3678
+#: languages/states.php:3680
msgid "Los Santos Province"
msgstr ""
-#: languages/states.php:3679
+#: languages/states.php:3681
msgid "Panamá Province"
msgstr ""
-#: languages/states.php:3680
+#: languages/states.php:3682
msgid "Veraguas Province"
msgstr ""
-#: languages/states.php:3681
+#: languages/states.php:3683
msgid "Panamá Oeste Province"
msgstr ""
-#: languages/states.php:3682
+#: languages/states.php:3684
msgid "Emberá-Wounaan Comarca"
msgstr ""
-#: languages/states.php:3683
+#: languages/states.php:3685
msgid "Guna Yala"
msgstr ""
-#: languages/states.php:3684
+#: languages/states.php:3686
msgid "Ngöbe-Buglé Comarca"
msgstr ""
-#: languages/states.php:3688
+#: languages/states.php:3690
msgid "Apurímac"
msgstr ""
-#: languages/states.php:3689
+#: languages/states.php:3691
msgid "Arequipa"
msgstr ""
-#: languages/states.php:3690
+#: languages/states.php:3692
msgid "Ayacucho"
msgstr ""
-#: languages/states.php:3691
+#: languages/states.php:3693
msgid "Cajamarca"
msgstr ""
-#: languages/states.php:3692
+#: languages/states.php:3694
msgid "Callao"
msgstr ""
-#: languages/states.php:3693
+#: languages/states.php:3695
msgid "Cusco"
msgstr ""
-#: languages/states.php:3694
+#: languages/states.php:3696
msgid "Huancavelica"
msgstr ""
-#: languages/states.php:3695
+#: languages/states.php:3697
msgid "Huanuco"
msgstr ""
-#: languages/states.php:3696
+#: languages/states.php:3698
msgid "Ica"
msgstr ""
-#: languages/states.php:3697
+#: languages/states.php:3699
msgid "Junín"
msgstr ""
-#: languages/states.php:3698
+#: languages/states.php:3700
msgid "La Libertad"
msgstr ""
-#: languages/states.php:3699
+#: languages/states.php:3701
msgid "Lambayeque"
msgstr ""
-#: languages/states.php:3700
+#: languages/states.php:3702
msgid "Lima"
msgstr ""
-#: languages/states.php:3701
+#: languages/states.php:3703
msgid "Madre de Dios"
msgstr ""
-#: languages/states.php:3702
+#: languages/states.php:3704
msgid "Moquegua"
msgstr ""
-#: languages/states.php:3703
+#: languages/states.php:3705
msgid "Pasco"
msgstr ""
-#: languages/states.php:3704
+#: languages/states.php:3706
msgid "Piura"
msgstr ""
-#: languages/states.php:3705
+#: languages/states.php:3707
msgid "Puno"
msgstr ""
-#: languages/states.php:3706
+#: languages/states.php:3708
msgid "San Martín"
msgstr ""
-#: languages/states.php:3707
+#: languages/states.php:3709
msgid "Tacna"
msgstr ""
-#: languages/states.php:3708
+#: languages/states.php:3710
msgid "Tumbes"
msgstr ""
-#: languages/states.php:3709
+#: languages/states.php:3711
msgid "Ucayali"
msgstr ""
-#: languages/states.php:3710
+#: languages/states.php:3712
msgid "Áncash"
msgstr ""
-#: languages/states.php:3714
+#: languages/states.php:3716
msgid "Bougainville"
msgstr ""
-#: languages/states.php:3716
+#: languages/states.php:3718
msgid "Chimbu Province"
msgstr ""
-#: languages/states.php:3717
+#: languages/states.php:3719
msgid "East New Britain"
msgstr ""
-#: languages/states.php:3718
+#: languages/states.php:3720
msgid "Eastern Highlands Province"
msgstr ""
-#: languages/states.php:3719
+#: languages/states.php:3721
msgid "Enga Province"
msgstr ""
-#: languages/states.php:3720
+#: languages/states.php:3722
msgid "Gulf"
msgstr ""
-#: languages/states.php:3721
+#: languages/states.php:3723
msgid "Hela"
msgstr ""
-#: languages/states.php:3722
+#: languages/states.php:3724
msgid "Jiwaka Province"
msgstr ""
-#: languages/states.php:3723
+#: languages/states.php:3725
msgid "Madang Province"
msgstr ""
-#: languages/states.php:3724
+#: languages/states.php:3726
msgid "Manus Province"
msgstr ""
-#: languages/states.php:3725
+#: languages/states.php:3727
msgid "Milne Bay Province"
msgstr ""
-#: languages/states.php:3726
+#: languages/states.php:3728
msgid "Morobe Province"
msgstr ""
-#: languages/states.php:3727
+#: languages/states.php:3729
msgid "New Ireland Province"
msgstr ""
-#: languages/states.php:3728
+#: languages/states.php:3730
msgid "Oro Province"
msgstr ""
-#: languages/states.php:3729
+#: languages/states.php:3731
msgid "Port Moresby"
msgstr ""
-#: languages/states.php:3730
+#: languages/states.php:3732
msgid "Sandaun Province"
msgstr ""
-#: languages/states.php:3731
+#: languages/states.php:3733
msgid "Southern Highlands Province"
msgstr ""
-#: languages/states.php:3732
+#: languages/states.php:3734
msgid "West New Britain Province"
msgstr ""
-#: languages/states.php:3733
+#: languages/states.php:3735
msgid "Western Highlands Province"
msgstr ""
-#: languages/states.php:3737
+#: languages/states.php:3739
msgid "Northern Mindanao"
msgstr ""
-#: languages/states.php:3738
+#: languages/states.php:3740
msgid "Davao Region"
msgstr ""
-#: languages/states.php:3739
+#: languages/states.php:3741
msgid "Soccsksargen"
msgstr ""
-#: languages/states.php:3740
+#: languages/states.php:3742
msgid "Caraga"
msgstr ""
-#: languages/states.php:3741
+#: languages/states.php:3743
msgid "Autonomous Region in Muslim Mindanao"
msgstr ""
-#: languages/states.php:3742
+#: languages/states.php:3744
msgid "Cordillera Administrative Region"
msgstr ""
-#: languages/states.php:3743
+#: languages/states.php:3745
msgid "Calabarzon"
msgstr ""
-#: languages/states.php:3744
+#: languages/states.php:3746
msgid "Mimaropa"
msgstr ""
-#: languages/states.php:3745
+#: languages/states.php:3747
msgid "Abra"
msgstr ""
-#: languages/states.php:3746
+#: languages/states.php:3748
msgid "Agusan del Norte"
msgstr ""
-#: languages/states.php:3747
+#: languages/states.php:3749
msgid "Agusan del Sur"
msgstr ""
-#: languages/states.php:3748
+#: languages/states.php:3750
msgid "Aklan"
msgstr ""
-#: languages/states.php:3749
+#: languages/states.php:3751
msgid "Albay"
msgstr ""
-#: languages/states.php:3750
+#: languages/states.php:3752
msgid "Antique"
msgstr ""
-#: languages/states.php:3751
+#: languages/states.php:3753
msgid "Apayao"
msgstr ""
-#: languages/states.php:3752
+#: languages/states.php:3754
msgid "Aurora"
msgstr ""
-#: languages/states.php:3753
+#: languages/states.php:3755
msgid "Basilan"
msgstr ""
-#: languages/states.php:3754
+#: languages/states.php:3756
msgid "Bataan"
msgstr ""
-#: languages/states.php:3755
+#: languages/states.php:3757
msgid "Batanes"
msgstr ""
-#: languages/states.php:3756
+#: languages/states.php:3758
msgid "Batangas"
msgstr ""
-#: languages/states.php:3757
+#: languages/states.php:3759
msgid "Benguet"
msgstr ""
-#: languages/states.php:3758
+#: languages/states.php:3760
msgid "Bicol Region"
msgstr ""
-#: languages/states.php:3759
+#: languages/states.php:3761
msgid "Biliran"
msgstr ""
-#: languages/states.php:3760
+#: languages/states.php:3762
msgid "Bohol"
msgstr ""
-#: languages/states.php:3761
+#: languages/states.php:3763
msgid "Bukidnon"
msgstr ""
-#: languages/states.php:3762
+#: languages/states.php:3764
msgid "Bulacan"
msgstr ""
-#: languages/states.php:3763
+#: languages/states.php:3765
msgid "Cagayan"
msgstr ""
-#: languages/states.php:3764
+#: languages/states.php:3766
msgid "Cagayan Valley"
msgstr ""
-#: languages/states.php:3765
+#: languages/states.php:3767
msgid "Camarines Norte"
msgstr ""
-#: languages/states.php:3766
+#: languages/states.php:3768
msgid "Camarines Sur"
msgstr ""
-#: languages/states.php:3767
+#: languages/states.php:3769
msgid "Camiguin"
msgstr ""
-#: languages/states.php:3768
+#: languages/states.php:3770
msgid "Capiz"
msgstr ""
-#: languages/states.php:3769
+#: languages/states.php:3771
msgid "Catanduanes"
msgstr ""
-#: languages/states.php:3770
+#: languages/states.php:3772
msgid "Cavite"
msgstr ""
-#: languages/states.php:3771
+#: languages/states.php:3773
msgid "Cebu"
msgstr ""
-#: languages/states.php:3772
+#: languages/states.php:3774
msgid "Central Luzon"
msgstr ""
-#: languages/states.php:3773
+#: languages/states.php:3775
msgid "Central Visayas"
msgstr ""
-#: languages/states.php:3774
+#: languages/states.php:3776
msgid "Compostela Valley"
msgstr ""
-#: languages/states.php:3775
+#: languages/states.php:3777
msgid "Cotabato"
msgstr ""
-#: languages/states.php:3776
+#: languages/states.php:3778
msgid "Davao Occidental"
msgstr ""
-#: languages/states.php:3777
+#: languages/states.php:3779
msgid "Davao Oriental"
msgstr ""
-#: languages/states.php:3778
+#: languages/states.php:3780
msgid "Davao del Norte"
msgstr ""
-#: languages/states.php:3779
+#: languages/states.php:3781
msgid "Davao del Sur"
msgstr ""
-#: languages/states.php:3780
+#: languages/states.php:3782
msgid "Dinagat Islands"
msgstr ""
-#: languages/states.php:3781
+#: languages/states.php:3783
msgid "Eastern Samar"
msgstr ""
-#: languages/states.php:3782
+#: languages/states.php:3784
msgid "Eastern Visayas"
msgstr ""
-#: languages/states.php:3783
+#: languages/states.php:3785
msgid "Guimaras"
msgstr ""
-#: languages/states.php:3784
+#: languages/states.php:3786
msgid "Ifugao"
msgstr ""
-#: languages/states.php:3785
+#: languages/states.php:3787
msgid "Ilocos Norte"
msgstr ""
-#: languages/states.php:3786
+#: languages/states.php:3788
msgid "Ilocos Region"
msgstr ""
-#: languages/states.php:3787
+#: languages/states.php:3789
msgid "Ilocos Sur"
msgstr ""
-#: languages/states.php:3788
+#: languages/states.php:3790
msgid "Iloilo"
msgstr ""
-#: languages/states.php:3789
+#: languages/states.php:3791
msgid "Isabela"
msgstr ""
-#: languages/states.php:3790
+#: languages/states.php:3792
msgid "Kalinga"
msgstr ""
-#: languages/states.php:3791
+#: languages/states.php:3793
msgid "La Union"
msgstr ""
-#: languages/states.php:3792
+#: languages/states.php:3794
msgid "Laguna"
msgstr ""
-#: languages/states.php:3793
+#: languages/states.php:3795
msgid "Lanao del Norte"
msgstr ""
-#: languages/states.php:3794
+#: languages/states.php:3796
msgid "Lanao del Sur"
msgstr ""
-#: languages/states.php:3795
+#: languages/states.php:3797
msgid "Leyte"
msgstr ""
-#: languages/states.php:3796
+#: languages/states.php:3798
msgid "Maguindanao"
msgstr ""
-#: languages/states.php:3797
+#: languages/states.php:3799
msgid "Marinduque"
msgstr ""
-#: languages/states.php:3798
+#: languages/states.php:3800
msgid "Masbate"
msgstr ""
-#: languages/states.php:3799
+#: languages/states.php:3801
msgid "Metro Manila"
msgstr ""
-#: languages/states.php:3800
+#: languages/states.php:3802
msgid "Misamis Occidental"
msgstr ""
-#: languages/states.php:3801
+#: languages/states.php:3803
msgid "Misamis Oriental"
msgstr ""
-#: languages/states.php:3802
+#: languages/states.php:3804
msgid "Mountain Province"
msgstr ""
-#: languages/states.php:3803
+#: languages/states.php:3805
msgid "Negros Occidental"
msgstr ""
-#: languages/states.php:3804
+#: languages/states.php:3806
msgid "Negros Oriental"
msgstr ""
-#: languages/states.php:3805
+#: languages/states.php:3807
msgid "Northern Samar"
msgstr ""
-#: languages/states.php:3806
+#: languages/states.php:3808
msgid "Nueva Ecija"
msgstr ""
-#: languages/states.php:3807
+#: languages/states.php:3809
msgid "Nueva Vizcaya"
msgstr ""
-#: languages/states.php:3808
+#: languages/states.php:3810
msgid "Occidental Mindoro"
msgstr ""
-#: languages/states.php:3809
+#: languages/states.php:3811
msgid "Oriental Mindoro"
msgstr ""
-#: languages/states.php:3810
+#: languages/states.php:3812
msgid "Palawan"
msgstr ""
-#: languages/states.php:3811
+#: languages/states.php:3813
msgid "Pampanga"
msgstr ""
-#: languages/states.php:3812
+#: languages/states.php:3814
msgid "Pangasinan"
msgstr ""
-#: languages/states.php:3813
+#: languages/states.php:3815
msgid "Quezon"
msgstr ""
-#: languages/states.php:3814
+#: languages/states.php:3816
msgid "Quirino"
msgstr ""
-#: languages/states.php:3815
+#: languages/states.php:3817
msgid "Rizal"
msgstr ""
-#: languages/states.php:3816
+#: languages/states.php:3818
msgid "Romblon"
msgstr ""
-#: languages/states.php:3817
+#: languages/states.php:3819
msgid "Sarangani"
msgstr ""
-#: languages/states.php:3818
+#: languages/states.php:3820
msgid "Siquijor"
msgstr ""
-#: languages/states.php:3819
+#: languages/states.php:3821
msgid "Sorsogon"
msgstr ""
-#: languages/states.php:3820
+#: languages/states.php:3822
msgid "South Cotabato"
msgstr ""
-#: languages/states.php:3821
+#: languages/states.php:3823
msgid "Southern Leyte"
msgstr ""
-#: languages/states.php:3822
+#: languages/states.php:3824
msgid "Sultan Kudarat"
msgstr ""
-#: languages/states.php:3823
+#: languages/states.php:3825
msgid "Sulu"
msgstr ""
-#: languages/states.php:3824
+#: languages/states.php:3826
msgid "Surigao del Norte"
msgstr ""
-#: languages/states.php:3825
+#: languages/states.php:3827
msgid "Surigao del Sur"
msgstr ""
-#: languages/states.php:3826
+#: languages/states.php:3828
msgid "Tarlac"
msgstr ""
-#: languages/states.php:3827
+#: languages/states.php:3829
msgid "Tawi-Tawi"
msgstr ""
-#: languages/states.php:3828
+#: languages/states.php:3830
msgid "Western Visayas"
msgstr ""
-#: languages/states.php:3829
+#: languages/states.php:3831
msgid "Zambales"
msgstr ""
-#: languages/states.php:3830
+#: languages/states.php:3832
msgid "Zamboanga Peninsula"
msgstr ""
-#: languages/states.php:3831
+#: languages/states.php:3833
msgid "Zamboanga Sibugay"
msgstr ""
-#: languages/states.php:3832
+#: languages/states.php:3834
msgid "Zamboanga del Norte"
msgstr ""
-#: languages/states.php:3833
+#: languages/states.php:3835
msgid "Zamboanga del Sur"
msgstr ""
-#: languages/states.php:3836
+#: languages/states.php:3838
msgid "Azad Kashmir"
msgstr ""
-#: languages/states.php:3837
+#: languages/states.php:3839
msgid "Balochistan"
msgstr ""
-#: languages/states.php:3838
+#: languages/states.php:3840
msgid "Federally Administered Tribal Areas"
msgstr ""
-#: languages/states.php:3839
+#: languages/states.php:3841
msgid "Gilgit-Baltistan"
msgstr ""
-#: languages/states.php:3840
+#: languages/states.php:3842
msgid "Islamabad Capital Territory"
msgstr ""
-#: languages/states.php:3841
+#: languages/states.php:3843
msgid "Khyber Pakhtunkhwa"
msgstr ""
-#: languages/states.php:3843
+#: languages/states.php:3845
msgid "Sindh"
msgstr ""
-#: languages/states.php:3846
+#: languages/states.php:3848
msgid "Greater Poland Voivodeship"
msgstr ""
-#: languages/states.php:3847
+#: languages/states.php:3849
msgid "Kuyavian-Pomeranian Voivodeship"
msgstr ""
-#: languages/states.php:3848
+#: languages/states.php:3850
msgid "Lesser Poland Voivodeship"
msgstr ""
-#: languages/states.php:3849
+#: languages/states.php:3851
msgid "Lower Silesian Voivodeship"
msgstr ""
-#: languages/states.php:3850
+#: languages/states.php:3852
msgid "Lublin Voivodeship"
msgstr ""
-#: languages/states.php:3851
+#: languages/states.php:3853
msgid "Lubusz Voivodeship"
msgstr ""
-#: languages/states.php:3852
+#: languages/states.php:3854
msgid "Masovian Voivodeship"
msgstr ""
-#: languages/states.php:3853
+#: languages/states.php:3855
msgid "Opole Voivodeship"
msgstr ""
-#: languages/states.php:3854
+#: languages/states.php:3856
msgid "Podkarpackie Voivodeship"
msgstr ""
-#: languages/states.php:3855
+#: languages/states.php:3857
msgid "Podlaskie Voivodeship"
msgstr ""
-#: languages/states.php:3856
+#: languages/states.php:3858
msgid "Pomeranian Voivodeship"
msgstr ""
-#: languages/states.php:3857
+#: languages/states.php:3859
msgid "Silesian Voivodeship"
msgstr ""
-#: languages/states.php:3858
+#: languages/states.php:3860
msgid "Warmian-Masurian Voivodeship"
msgstr ""
-#: languages/states.php:3859
+#: languages/states.php:3861
msgid "West Pomeranian Voivodeship"
msgstr ""
-#: languages/states.php:3860
+#: languages/states.php:3862
msgid "Łódź Voivodeship"
msgstr ""
-#: languages/states.php:3861
+#: languages/states.php:3863
msgid "Świętokrzyskie Voivodeship"
msgstr ""
-#: languages/states.php:3868
+#: languages/states.php:3870
msgid "Leiria"
msgstr ""
-#: languages/states.php:3869
+#: languages/states.php:3871
msgid "Lisbon"
msgstr ""
-#: languages/states.php:3870
+#: languages/states.php:3872
msgid "Portalegre"
msgstr ""
-#: languages/states.php:3871
+#: languages/states.php:3873
msgid "Porto"
msgstr ""
-#: languages/states.php:3872
+#: languages/states.php:3874
msgid "Santarém"
msgstr ""
-#: languages/states.php:3873
+#: languages/states.php:3875
msgid "Setúbal"
msgstr ""
-#: languages/states.php:3874
+#: languages/states.php:3876
msgid "Viana do Castelo"
msgstr ""
-#: languages/states.php:3875
+#: languages/states.php:3877
msgid "Vila Real"
msgstr ""
-#: languages/states.php:3876
+#: languages/states.php:3878
msgid "Viseu"
msgstr ""
-#: languages/states.php:3877
+#: languages/states.php:3879
msgid "Açores"
msgstr ""
-#: languages/states.php:3878
+#: languages/states.php:3880
msgid "Madeira"
msgstr ""
-#: languages/states.php:3879
+#: languages/states.php:3881
msgid "Aveiro"
msgstr ""
-#: languages/states.php:3880
+#: languages/states.php:3882
msgid "Beja"
msgstr ""
-#: languages/states.php:3881
+#: languages/states.php:3883
msgid "Braga"
msgstr ""
-#: languages/states.php:3882
+#: languages/states.php:3884
msgid "Bragança"
msgstr ""
-#: languages/states.php:3883
+#: languages/states.php:3885
msgid "Castelo Branco"
msgstr ""
-#: languages/states.php:3884
+#: languages/states.php:3886
msgid "Coimbra"
msgstr ""
-#: languages/states.php:3885
+#: languages/states.php:3887
msgid "Faro"
msgstr ""
-#: languages/states.php:3886
+#: languages/states.php:3888
msgid "Guarda"
msgstr ""
-#: languages/states.php:3887
+#: languages/states.php:3889
msgid "Évora"
msgstr ""
-#: languages/states.php:3890
+#: languages/states.php:3892
msgid "Kayangel"
msgstr ""
-#: languages/states.php:3891
+#: languages/states.php:3893
msgid "Koror"
msgstr ""
-#: languages/states.php:3892
+#: languages/states.php:3894
msgid "Melekeok"
msgstr ""
-#: languages/states.php:3893
+#: languages/states.php:3895
msgid "Ngaraard"
msgstr ""
-#: languages/states.php:3894
+#: languages/states.php:3896
msgid "Ngarchelong"
msgstr ""
-#: languages/states.php:3895
+#: languages/states.php:3897
msgid "Ngardmau"
msgstr ""
-#: languages/states.php:3896
+#: languages/states.php:3898
msgid "Ngatpang"
msgstr ""
-#: languages/states.php:3897
+#: languages/states.php:3899
msgid "Ngchesar"
msgstr ""
-#: languages/states.php:3898
+#: languages/states.php:3900
msgid "Ngeremlengui"
msgstr ""
-#: languages/states.php:3899
+#: languages/states.php:3901
msgid "Ngiwal"
msgstr ""
-#: languages/states.php:3900
+#: languages/states.php:3902
msgid "Peleliu"
msgstr ""
-#: languages/states.php:3901
+#: languages/states.php:3903
msgid "Sonsorol"
msgstr ""
-#: languages/states.php:3902
+#: languages/states.php:3904
msgid "Aimeliik"
msgstr ""
-#: languages/states.php:3903
+#: languages/states.php:3905
msgid "Airai"
msgstr ""
-#: languages/states.php:3904
+#: languages/states.php:3906
msgid "Angaur"
msgstr ""
-#: languages/states.php:3905
+#: languages/states.php:3907
msgid "Hatohobei"
msgstr ""
-#: languages/states.php:3908
+#: languages/states.php:3910
msgid "Concepción Department"
msgstr ""
-#: languages/states.php:3909
+#: languages/states.php:3911
msgid "San Pedro Department"
msgstr ""
-#: languages/states.php:3910
+#: languages/states.php:3912
msgid "Cordillera Department"
msgstr ""
-#: languages/states.php:3911
+#: languages/states.php:3913
msgid "Guairá Department"
msgstr ""
-#: languages/states.php:3912
+#: languages/states.php:3914
msgid "Caaguazú"
msgstr ""
-#: languages/states.php:3913
+#: languages/states.php:3915
msgid "Caazapá"
msgstr ""
-#: languages/states.php:3914
+#: languages/states.php:3916
msgid "Itapúa"
msgstr ""
-#: languages/states.php:3915
+#: languages/states.php:3917
msgid "Misiones Department"
msgstr ""
-#: languages/states.php:3916
+#: languages/states.php:3918
msgid "Paraguarí Department"
msgstr ""
-#: languages/states.php:3917
+#: languages/states.php:3919
msgid "Alto Paraná Department"
msgstr ""
-#: languages/states.php:3918
+#: languages/states.php:3920
msgid "Central Department"
msgstr ""
-#: languages/states.php:3919
+#: languages/states.php:3921
msgid "Ñeembucú Department"
msgstr ""
-#: languages/states.php:3920
+#: languages/states.php:3922
msgid "Amambay Department"
msgstr ""
-#: languages/states.php:3921
+#: languages/states.php:3923
msgid "Canindeyú"
msgstr ""
-#: languages/states.php:3922
+#: languages/states.php:3924
msgid "Presidente Hayes Department"
msgstr ""
-#: languages/states.php:3923
+#: languages/states.php:3925
msgid "Alto Paraguay Department"
msgstr ""
-#: languages/states.php:3924
+#: languages/states.php:3926
msgid "Boquerón Department"
msgstr ""
-#: languages/states.php:3927
+#: languages/states.php:3929
msgid "Al Daayen"
msgstr ""
-#: languages/states.php:3928
+#: languages/states.php:3930
msgid "Al Khor"
msgstr ""
-#: languages/states.php:3929
+#: languages/states.php:3931
msgid "Al Rayyan Municipality"
msgstr ""
-#: languages/states.php:3930
+#: languages/states.php:3932
msgid "Al Wakrah"
msgstr ""
-#: languages/states.php:3931
+#: languages/states.php:3933
msgid "Al-Shahaniya"
msgstr ""
-#: languages/states.php:3932
+#: languages/states.php:3934
msgid "Doha"
msgstr ""
-#: languages/states.php:3933
+#: languages/states.php:3935
msgid "Madinat ash Shamal"
msgstr ""
-#: languages/states.php:3934
+#: languages/states.php:3936
msgid "Umm Salal Municipality"
msgstr ""
-#: languages/states.php:3938
+#: languages/states.php:3940
msgid "Alba"
msgstr ""
-#: languages/states.php:3939
+#: languages/states.php:3941
msgid "Arad County"
msgstr ""
-#: languages/states.php:3940
+#: languages/states.php:3942
msgid "Arges"
msgstr ""
-#: languages/states.php:3941
+#: languages/states.php:3943
msgid "Bacău County"
msgstr ""
-#: languages/states.php:3942
+#: languages/states.php:3944
msgid "Bihor County"
msgstr ""
-#: languages/states.php:3943
+#: languages/states.php:3945
msgid "Bistrița-Năsăud County"
msgstr ""
-#: languages/states.php:3944
+#: languages/states.php:3946
msgid "Botoșani County"
msgstr ""
-#: languages/states.php:3945
+#: languages/states.php:3947
msgid "Braila"
msgstr ""
-#: languages/states.php:3946
+#: languages/states.php:3948
msgid "Brașov County"
msgstr ""
-#: languages/states.php:3947
+#: languages/states.php:3949
msgid "Bucharest"
msgstr ""
-#: languages/states.php:3948
+#: languages/states.php:3950
msgid "Buzău County"
msgstr ""
-#: languages/states.php:3949
+#: languages/states.php:3951
msgid "Caraș-Severin County"
msgstr ""
-#: languages/states.php:3950
+#: languages/states.php:3952
msgid "Cluj County"
msgstr ""
-#: languages/states.php:3951
+#: languages/states.php:3953
msgid "Constanța County"
msgstr ""
-#: languages/states.php:3952
+#: languages/states.php:3954
msgid "Covasna County"
msgstr ""
-#: languages/states.php:3953
+#: languages/states.php:3955
msgid "Călărași County"
msgstr ""
-#: languages/states.php:3954
+#: languages/states.php:3956
msgid "Dolj County"
msgstr ""
-#: languages/states.php:3955
+#: languages/states.php:3957
msgid "Dâmbovița County"
msgstr ""
-#: languages/states.php:3956
+#: languages/states.php:3958
msgid "Galați County"
msgstr ""
-#: languages/states.php:3957
+#: languages/states.php:3959
msgid "Giurgiu County"
msgstr ""
-#: languages/states.php:3958
+#: languages/states.php:3960
msgid "Gorj County"
msgstr ""
-#: languages/states.php:3959
+#: languages/states.php:3961
msgid "Harghita County"
msgstr ""
-#: languages/states.php:3960
+#: languages/states.php:3962
msgid "Hunedoara County"
msgstr ""
-#: languages/states.php:3961
+#: languages/states.php:3963
msgid "Ialomița County"
msgstr ""
-#: languages/states.php:3962
+#: languages/states.php:3964
msgid "Iași County"
msgstr ""
-#: languages/states.php:3963
+#: languages/states.php:3965
msgid "Ilfov County"
msgstr ""
-#: languages/states.php:3964
+#: languages/states.php:3966
msgid "Maramureș County"
msgstr ""
-#: languages/states.php:3965
+#: languages/states.php:3967
msgid "Mehedinți County"
msgstr ""
-#: languages/states.php:3966
+#: languages/states.php:3968
msgid "Mureș County"
msgstr ""
-#: languages/states.php:3967
+#: languages/states.php:3969
msgid "Neamț County"
msgstr ""
-#: languages/states.php:3968
+#: languages/states.php:3970
msgid "Olt County"
msgstr ""
-#: languages/states.php:3969
+#: languages/states.php:3971
msgid "Prahova County"
msgstr ""
-#: languages/states.php:3970
+#: languages/states.php:3972
msgid "Satu Mare County"
msgstr ""
-#: languages/states.php:3971
+#: languages/states.php:3973
msgid "Sibiu County"
msgstr ""
-#: languages/states.php:3972
+#: languages/states.php:3974
msgid "Suceava County"
msgstr ""
-#: languages/states.php:3973
+#: languages/states.php:3975
msgid "Sălaj County"
msgstr ""
-#: languages/states.php:3974
+#: languages/states.php:3976
msgid "Teleorman County"
msgstr ""
-#: languages/states.php:3975
+#: languages/states.php:3977
msgid "Timiș County"
msgstr ""
-#: languages/states.php:3976
+#: languages/states.php:3978
msgid "Tulcea County"
msgstr ""
-#: languages/states.php:3977
+#: languages/states.php:3979
msgid "Vaslui County"
msgstr ""
-#: languages/states.php:3978
+#: languages/states.php:3980
msgid "Vrancea County"
msgstr ""
-#: languages/states.php:3979
+#: languages/states.php:3981
msgid "Vâlcea County"
msgstr ""
-#: languages/states.php:3982
+#: languages/states.php:3984
msgid "Podunavlje District"
msgstr ""
-#: languages/states.php:3983
+#: languages/states.php:3985
msgid "Braničevo District"
msgstr ""
-#: languages/states.php:3984
+#: languages/states.php:3986
msgid "Šumadija District"
msgstr ""
-#: languages/states.php:3985
+#: languages/states.php:3987
msgid "Pomoravlje District"
msgstr ""
-#: languages/states.php:3986
+#: languages/states.php:3988
msgid "Bor District"
msgstr ""
-#: languages/states.php:3987
+#: languages/states.php:3989
msgid "Zaječar District"
msgstr ""
-#: languages/states.php:3988
+#: languages/states.php:3990
msgid "Zlatibor District"
msgstr ""
-#: languages/states.php:3989
+#: languages/states.php:3991
msgid "Moravica District"
msgstr ""
-#: languages/states.php:3990
+#: languages/states.php:3992
msgid "Raška District"
msgstr ""
-#: languages/states.php:3991
+#: languages/states.php:3993
msgid "Rasina District"
msgstr ""
-#: languages/states.php:3992
+#: languages/states.php:3994
msgid "Nišava District"
msgstr ""
-#: languages/states.php:3993
+#: languages/states.php:3995
msgid "Toplica District"
msgstr ""
-#: languages/states.php:3994
+#: languages/states.php:3996
msgid "Pirot District"
msgstr ""
-#: languages/states.php:3995
+#: languages/states.php:3997
msgid "Jablanica District"
msgstr ""
-#: languages/states.php:3996
+#: languages/states.php:3998
msgid "Pčinja District"
msgstr ""
-#: languages/states.php:3997
+#: languages/states.php:3999
msgid "Belgrade"
msgstr ""
-#: languages/states.php:3998
+#: languages/states.php:4000
msgid "Central Banat District"
msgstr ""
-#: languages/states.php:3999
+#: languages/states.php:4001
msgid "Kolubara District"
msgstr ""
-#: languages/states.php:4000
+#: languages/states.php:4002
msgid "Mačva District"
msgstr ""
-#: languages/states.php:4001
+#: languages/states.php:4003
msgid "North Banat District"
msgstr ""
-#: languages/states.php:4002
+#: languages/states.php:4004
msgid "North Bačka District"
msgstr ""
-#: languages/states.php:4003
+#: languages/states.php:4005
msgid "South Banat District"
msgstr ""
-#: languages/states.php:4004
+#: languages/states.php:4006
msgid "South Bačka District"
msgstr ""
-#: languages/states.php:4005
+#: languages/states.php:4007
msgid "Srem District"
msgstr ""
-#: languages/states.php:4006
+#: languages/states.php:4008
msgid "Vojvodina"
msgstr ""
-#: languages/states.php:4007
+#: languages/states.php:4009
msgid "West Bačka District"
msgstr ""
-#: languages/states.php:4010
+#: languages/states.php:4012
msgid "Altai Krai"
msgstr ""
-#: languages/states.php:4011
+#: languages/states.php:4013
msgid "Altai Republic"
msgstr ""
-#: languages/states.php:4012
+#: languages/states.php:4014
msgid "Amur Oblast"
msgstr ""
-#: languages/states.php:4013
+#: languages/states.php:4015
msgid "Arkhangelsk"
msgstr ""
-#: languages/states.php:4014
+#: languages/states.php:4016
msgid "Astrakhan Oblast"
msgstr ""
-#: languages/states.php:4015
+#: languages/states.php:4017
msgid "Belgorod Oblast"
msgstr ""
-#: languages/states.php:4016
+#: languages/states.php:4018
msgid "Bryansk Oblast"
msgstr ""
-#: languages/states.php:4017
+#: languages/states.php:4019
msgid "Chechen Republic"
msgstr ""
-#: languages/states.php:4018
+#: languages/states.php:4020
msgid "Chelyabinsk Oblast"
msgstr ""
-#: languages/states.php:4019
+#: languages/states.php:4021
msgid "Chukotka Autonomous Okrug"
msgstr ""
-#: languages/states.php:4020
+#: languages/states.php:4022
msgid "Chuvash Republic"
msgstr ""
-#: languages/states.php:4021
+#: languages/states.php:4023
msgid "Irkutsk"
msgstr ""
-#: languages/states.php:4022
+#: languages/states.php:4024
msgid "Ivanovo Oblast"
msgstr ""
-#: languages/states.php:4023
+#: languages/states.php:4025
msgid "Jewish Autonomous Oblast"
msgstr ""
-#: languages/states.php:4024
+#: languages/states.php:4026
msgid "Kabardino-Balkar Republic"
msgstr ""
-#: languages/states.php:4025
+#: languages/states.php:4027
msgid "Kaliningrad"
msgstr ""
-#: languages/states.php:4026
+#: languages/states.php:4028
msgid "Kaluga Oblast"
msgstr ""
-#: languages/states.php:4027
+#: languages/states.php:4029
msgid "Kamchatka Krai"
msgstr ""
-#: languages/states.php:4028
+#: languages/states.php:4030
msgid "Karachay-Cherkess Republic"
msgstr ""
-#: languages/states.php:4029
+#: languages/states.php:4031
msgid "Kemerovo Oblast"
msgstr ""
-#: languages/states.php:4030
+#: languages/states.php:4032
msgid "Khabarovsk Krai"
msgstr ""
-#: languages/states.php:4031
+#: languages/states.php:4033
msgid "Khanty-Mansi Autonomous Okrug"
msgstr ""
-#: languages/states.php:4032
+#: languages/states.php:4034
msgid "Kirov Oblast"
msgstr ""
-#: languages/states.php:4033
+#: languages/states.php:4035
msgid "Komi Republic"
msgstr ""
-#: languages/states.php:4034
+#: languages/states.php:4036
msgid "Kostroma Oblast"
msgstr ""
-#: languages/states.php:4035
+#: languages/states.php:4037
msgid "Krasnodar Krai"
msgstr ""
-#: languages/states.php:4036
+#: languages/states.php:4038
msgid "Krasnoyarsk Krai"
msgstr ""
-#: languages/states.php:4037
+#: languages/states.php:4039
msgid "Kurgan Oblast"
msgstr ""
-#: languages/states.php:4038
+#: languages/states.php:4040
msgid "Kursk Oblast"
msgstr ""
-#: languages/states.php:4039
+#: languages/states.php:4041
msgid "Leningrad Oblast"
msgstr ""
-#: languages/states.php:4040
+#: languages/states.php:4042
msgid "Lipetsk Oblast"
msgstr ""
-#: languages/states.php:4041
+#: languages/states.php:4043
msgid "Magadan Oblast"
msgstr ""
-#: languages/states.php:4042
+#: languages/states.php:4044
msgid "Mari El Republic"
msgstr ""
-#: languages/states.php:4043
+#: languages/states.php:4045
msgid "Moscow"
msgstr ""
-#: languages/states.php:4044
+#: languages/states.php:4046
msgid "Moscow Oblast"
msgstr ""
-#: languages/states.php:4045
+#: languages/states.php:4047
msgid "Murmansk Oblast"
msgstr ""
-#: languages/states.php:4046
+#: languages/states.php:4048
msgid "Nenets Autonomous Okrug"
msgstr ""
-#: languages/states.php:4047
+#: languages/states.php:4049
msgid "Nizhny Novgorod Oblast"
msgstr ""
-#: languages/states.php:4048
+#: languages/states.php:4050
msgid "Novgorod Oblast"
msgstr ""
-#: languages/states.php:4049
+#: languages/states.php:4051
msgid "Novosibirsk"
msgstr ""
-#: languages/states.php:4050
+#: languages/states.php:4052
msgid "Omsk Oblast"
msgstr ""
-#: languages/states.php:4051
+#: languages/states.php:4053
msgid "Orenburg Oblast"
msgstr ""
-#: languages/states.php:4052
+#: languages/states.php:4054
msgid "Oryol Oblast"
msgstr ""
-#: languages/states.php:4053
+#: languages/states.php:4055
msgid "Penza Oblast"
msgstr ""
-#: languages/states.php:4054
+#: languages/states.php:4056
msgid "Perm Krai"
msgstr ""
-#: languages/states.php:4055
+#: languages/states.php:4057
msgid "Primorsky Krai"
msgstr ""
-#: languages/states.php:4056
+#: languages/states.php:4058
msgid "Pskov Oblast"
msgstr ""
-#: languages/states.php:4057
+#: languages/states.php:4059
msgid "Republic of Adygea"
msgstr ""
-#: languages/states.php:4058
+#: languages/states.php:4060
msgid "Republic of Bashkortostan"
msgstr ""
-#: languages/states.php:4059
+#: languages/states.php:4061
msgid "Republic of Buryatia"
msgstr ""
-#: languages/states.php:4060
+#: languages/states.php:4062
msgid "Republic of Dagestan"
msgstr ""
-#: languages/states.php:4061
+#: languages/states.php:4063
msgid "Republic of Ingushetia"
msgstr ""
-#: languages/states.php:4062
+#: languages/states.php:4064
msgid "Republic of Kalmykia"
msgstr ""
-#: languages/states.php:4063
+#: languages/states.php:4065
msgid "Republic of Karelia"
msgstr ""
-#: languages/states.php:4064
+#: languages/states.php:4066
msgid "Republic of Khakassia"
msgstr ""
-#: languages/states.php:4065
+#: languages/states.php:4067
msgid "Republic of Mordovia"
msgstr ""
-#: languages/states.php:4066
+#: languages/states.php:4068
msgid "Republic of North Ossetia-Alania"
msgstr ""
-#: languages/states.php:4067
+#: languages/states.php:4069
msgid "Republic of Tatarstan"
msgstr ""
-#: languages/states.php:4068
+#: languages/states.php:4070
msgid "Rostov Oblast"
msgstr ""
-#: languages/states.php:4069
+#: languages/states.php:4071
msgid "Ryazan Oblast"
msgstr ""
-#: languages/states.php:4070
+#: languages/states.php:4072
msgid "Saint Petersburg"
msgstr ""
-#: languages/states.php:4071
+#: languages/states.php:4073
msgid "Sakha Republic"
msgstr ""
-#: languages/states.php:4072
+#: languages/states.php:4074
msgid "Sakhalin"
msgstr ""
-#: languages/states.php:4073
+#: languages/states.php:4075
msgid "Samara Oblast"
msgstr ""
-#: languages/states.php:4074
+#: languages/states.php:4076
msgid "Saratov Oblast"
msgstr ""
-#: languages/states.php:4075
+#: languages/states.php:4077
msgid "Sevastopol"
msgstr ""
-#: languages/states.php:4076
+#: languages/states.php:4078
msgid "Smolensk Oblast"
msgstr ""
-#: languages/states.php:4077
+#: languages/states.php:4079
msgid "Stavropol Krai"
msgstr ""
-#: languages/states.php:4078
+#: languages/states.php:4080
msgid "Sverdlovsk"
msgstr ""
-#: languages/states.php:4079
+#: languages/states.php:4081
msgid "Tambov Oblast"
msgstr ""
-#: languages/states.php:4080
+#: languages/states.php:4082
msgid "Tomsk Oblast"
msgstr ""
-#: languages/states.php:4081
+#: languages/states.php:4083
msgid "Tula Oblast"
msgstr ""
-#: languages/states.php:4082
+#: languages/states.php:4084
msgid "Tuva Republic"
msgstr ""
-#: languages/states.php:4083
+#: languages/states.php:4085
msgid "Tver Oblast"
msgstr ""
-#: languages/states.php:4084
+#: languages/states.php:4086
msgid "Tyumen Oblast"
msgstr ""
-#: languages/states.php:4085
+#: languages/states.php:4087
msgid "Udmurt Republic"
msgstr ""
-#: languages/states.php:4086
+#: languages/states.php:4088
msgid "Ulyanovsk Oblast"
msgstr ""
-#: languages/states.php:4087
+#: languages/states.php:4089
msgid "Vladimir Oblast"
msgstr ""
-#: languages/states.php:4088
+#: languages/states.php:4090
msgid "Volgograd Oblast"
msgstr ""
-#: languages/states.php:4089
+#: languages/states.php:4091
msgid "Vologda Oblast"
msgstr ""
-#: languages/states.php:4090
+#: languages/states.php:4092
msgid "Voronezh Oblast"
msgstr ""
-#: languages/states.php:4091
+#: languages/states.php:4093
msgid "Yamalo-Nenets Autonomous Okrug"
msgstr ""
-#: languages/states.php:4092
+#: languages/states.php:4094
msgid "Yaroslavl Oblast"
msgstr ""
-#: languages/states.php:4093
+#: languages/states.php:4095
msgid "Zabaykalsky Krai"
msgstr ""
-#: languages/states.php:4097
+#: languages/states.php:4099
msgid "Kigali district"
msgstr ""
-#: languages/states.php:4103
+#: languages/states.php:4105
msgid "Najran Region"
msgstr ""
-#: languages/states.php:4104
+#: languages/states.php:4106
msgid "Al Bahah Region"
msgstr ""
-#: languages/states.php:4105
+#: languages/states.php:4107
msgid "Al Jawf Region"
msgstr ""
-#: languages/states.php:4106
+#: languages/states.php:4108
msgid "'Asir Region"
msgstr ""
-#: languages/states.php:4107
+#: languages/states.php:4109
msgid "Al Madinah Region"
msgstr ""
-#: languages/states.php:4108
+#: languages/states.php:4110
msgid "Al-Qassim Region"
msgstr ""
-#: languages/states.php:4110
+#: languages/states.php:4112
msgid "Ha'il Region"
msgstr ""
-#: languages/states.php:4111
+#: languages/states.php:4113
msgid "Jizan Region"
msgstr ""
-#: languages/states.php:4112
+#: languages/states.php:4114
msgid "Makkah Region"
msgstr ""
-#: languages/states.php:4113
+#: languages/states.php:4115
msgid "Northern Borders Region"
msgstr ""
-#: languages/states.php:4114
+#: languages/states.php:4116
msgid "Riyadh Region"
msgstr ""
-#: languages/states.php:4115
+#: languages/states.php:4117
msgid "Tabuk Region"
msgstr ""
-#: languages/states.php:4119
+#: languages/states.php:4121
msgid "Choiseul Province"
msgstr ""
-#: languages/states.php:4120
+#: languages/states.php:4122
msgid "Guadalcanal Province"
msgstr ""
-#: languages/states.php:4121
+#: languages/states.php:4123
msgid "Honiara"
msgstr ""
-#: languages/states.php:4122
+#: languages/states.php:4124
msgid "Isabel Province"
msgstr ""
-#: languages/states.php:4123
+#: languages/states.php:4125
msgid "Makira-Ulawa Province"
msgstr ""
-#: languages/states.php:4124
+#: languages/states.php:4126
msgid "Malaita Province"
msgstr ""
-#: languages/states.php:4125
+#: languages/states.php:4127
msgid "Rennell and Bellona Province"
msgstr ""
-#: languages/states.php:4126
+#: languages/states.php:4128
msgid "Temotu Province"
msgstr ""
-#: languages/states.php:4130
+#: languages/states.php:4132
msgid "Bel Ombre"
msgstr ""
-#: languages/states.php:4131
+#: languages/states.php:4133
msgid "Cascade"
msgstr ""
-#: languages/states.php:4132
+#: languages/states.php:4134
msgid "Glacis"
msgstr ""
-#: languages/states.php:4133
+#: languages/states.php:4135
msgid "Grand'Anse Mahé"
msgstr ""
-#: languages/states.php:4134
+#: languages/states.php:4136
msgid "Grand'Anse Praslin"
msgstr ""
-#: languages/states.php:4135
+#: languages/states.php:4137
msgid "La Digue"
msgstr ""
-#: languages/states.php:4136
+#: languages/states.php:4138
msgid "La Rivière Anglaise"
msgstr ""
-#: languages/states.php:4137
+#: languages/states.php:4139
msgid "Mont Buxton"
msgstr ""
-#: languages/states.php:4138
+#: languages/states.php:4140
msgid "Mont Fleuri"
msgstr ""
-#: languages/states.php:4139
+#: languages/states.php:4141
msgid "Plaisance"
msgstr ""
-#: languages/states.php:4140
+#: languages/states.php:4142
msgid "Pointe La Rue"
msgstr ""
-#: languages/states.php:4141
+#: languages/states.php:4143
msgid "Port Glaud"
msgstr ""
-#: languages/states.php:4142
+#: languages/states.php:4144
msgid "Saint Louis"
msgstr ""
-#: languages/states.php:4143
+#: languages/states.php:4145
msgid "Takamaka"
msgstr ""
-#: languages/states.php:4144
+#: languages/states.php:4146
msgid "Les Mamelles"
msgstr ""
-#: languages/states.php:4145
+#: languages/states.php:4147
msgid "Roche Caiman"
msgstr ""
-#: languages/states.php:4146
+#: languages/states.php:4148
msgid "Anse Boileau"
msgstr ""
-#: languages/states.php:4147
+#: languages/states.php:4149
msgid "Anse Royale"
msgstr ""
-#: languages/states.php:4148
+#: languages/states.php:4150
msgid "Anse-aux-Pins"
msgstr ""
-#: languages/states.php:4149
+#: languages/states.php:4151
msgid "Au Cap"
msgstr ""
-#: languages/states.php:4150
+#: languages/states.php:4152
msgid "Baie Lazare"
msgstr ""
-#: languages/states.php:4151
+#: languages/states.php:4153
msgid "Baie Sainte Anne"
msgstr ""
-#: languages/states.php:4152
+#: languages/states.php:4154
msgid "Beau Vallon"
msgstr ""
-#: languages/states.php:4153
+#: languages/states.php:4155
msgid "Bel Air"
msgstr ""
-#: languages/states.php:4156
+#: languages/states.php:4158
msgid "Al Jazirah"
msgstr ""
-#: languages/states.php:4157
+#: languages/states.php:4159
msgid "Al Qadarif"
msgstr ""
-#: languages/states.php:4158
+#: languages/states.php:4160
msgid "Blue Nile"
msgstr ""
-#: languages/states.php:4159
+#: languages/states.php:4161
msgid "Central Darfur"
msgstr ""
-#: languages/states.php:4160
+#: languages/states.php:4162
msgid "East Darfur"
msgstr ""
-#: languages/states.php:4161
+#: languages/states.php:4163
msgid "Kassala"
msgstr ""
-#: languages/states.php:4162
+#: languages/states.php:4164
msgid "Khartoum"
msgstr ""
-#: languages/states.php:4163
+#: languages/states.php:4165
msgid "North Darfur"
msgstr ""
-#: languages/states.php:4164
+#: languages/states.php:4166
msgid "North Kordofan"
msgstr ""
-#: languages/states.php:4165
+#: languages/states.php:4167
msgid "Northern"
msgstr ""
-#: languages/states.php:4166
+#: languages/states.php:4168
msgid "Red Sea"
msgstr ""
-#: languages/states.php:4167
+#: languages/states.php:4169
msgid "River Nile"
msgstr ""
-#: languages/states.php:4168
+#: languages/states.php:4170
msgid "Sennar"
msgstr ""
-#: languages/states.php:4169
+#: languages/states.php:4171
msgid "South Darfur"
msgstr ""
-#: languages/states.php:4170
+#: languages/states.php:4172
msgid "South Kordofan"
msgstr ""
-#: languages/states.php:4171
+#: languages/states.php:4173
msgid "West Darfur"
msgstr ""
-#: languages/states.php:4172
+#: languages/states.php:4174
msgid "West Kordofan"
msgstr ""
-#: languages/states.php:4173
+#: languages/states.php:4175
msgid "White Nile"
msgstr ""
-#: languages/states.php:4176
+#: languages/states.php:4178
msgid "Blekinge"
msgstr ""
-#: languages/states.php:4177
+#: languages/states.php:4179
msgid "Dalarna County"
msgstr ""
-#: languages/states.php:4178
+#: languages/states.php:4180
msgid "Gotland County"
msgstr ""
-#: languages/states.php:4179
+#: languages/states.php:4181
msgid "Gävleborg County"
msgstr ""
-#: languages/states.php:4180
+#: languages/states.php:4182
msgid "Halland County"
msgstr ""
-#: languages/states.php:4181
+#: languages/states.php:4183
msgid "Jönköping County"
msgstr ""
-#: languages/states.php:4182
+#: languages/states.php:4184
msgid "Kalmar County"
msgstr ""
-#: languages/states.php:4183
+#: languages/states.php:4185
msgid "Kronoberg County"
msgstr ""
-#: languages/states.php:4184
+#: languages/states.php:4186
msgid "Norrbotten County"
msgstr ""
-#: languages/states.php:4185
+#: languages/states.php:4187
msgid "Skåne County"
msgstr ""
-#: languages/states.php:4186
+#: languages/states.php:4188
msgid "Stockholm County"
msgstr ""
-#: languages/states.php:4187
+#: languages/states.php:4189
msgid "Södermanland County"
msgstr ""
-#: languages/states.php:4188
+#: languages/states.php:4190
msgid "Uppsala County"
msgstr ""
-#: languages/states.php:4189
+#: languages/states.php:4191
msgid "Värmland County"
msgstr ""
-#: languages/states.php:4190
+#: languages/states.php:4192
msgid "Västerbotten County"
msgstr ""
-#: languages/states.php:4191
+#: languages/states.php:4193
msgid "Västernorrland County"
msgstr ""
-#: languages/states.php:4192
+#: languages/states.php:4194
msgid "Västmanland County"
msgstr ""
-#: languages/states.php:4193
+#: languages/states.php:4195
msgid "Västra Götaland County"
msgstr ""
-#: languages/states.php:4194
+#: languages/states.php:4196
msgid "Örebro County"
msgstr ""
-#: languages/states.php:4195
+#: languages/states.php:4197
msgid "Östergötland County"
msgstr ""
-#: languages/states.php:4198
+#: languages/states.php:4200
msgid "Central Singapore Community Development Council"
msgstr ""
-#: languages/states.php:4199
+#: languages/states.php:4201
msgid "North East Community Development Council"
msgstr ""
-#: languages/states.php:4200
+#: languages/states.php:4202
msgid "North West Community Development Council"
msgstr ""
-#: languages/states.php:4201
+#: languages/states.php:4203
msgid "South East Community Development Council"
msgstr ""
-#: languages/states.php:4202
+#: languages/states.php:4204
msgid "South West Community Development Council"
msgstr ""
-#: languages/states.php:4206
+#: languages/states.php:4208
msgid "Radenci Municipality"
msgstr ""
-#: languages/states.php:4207
+#: languages/states.php:4209
msgid "Radlje ob Dravi Municipality"
msgstr ""
-#: languages/states.php:4208
+#: languages/states.php:4210
msgid "Radovljica Municipality"
msgstr ""
-#: languages/states.php:4209
+#: languages/states.php:4211
msgid "Ravne na Koroškem Municipality"
msgstr ""
-#: languages/states.php:4210
+#: languages/states.php:4212
msgid "Ribnica Municipality"
msgstr ""
-#: languages/states.php:4211
+#: languages/states.php:4213
msgid "Rogašovci Municipality"
msgstr ""
-#: languages/states.php:4212
+#: languages/states.php:4214
msgid "Rogaška Slatina Municipality"
msgstr ""
-#: languages/states.php:4213
+#: languages/states.php:4215
msgid "Rogatec Municipality"
msgstr ""
-#: languages/states.php:4214
+#: languages/states.php:4216
msgid "Ruše Municipality"
msgstr ""
-#: languages/states.php:4215
+#: languages/states.php:4217
msgid "Semič Municipality"
msgstr ""
-#: languages/states.php:4216
+#: languages/states.php:4218
msgid "Sevnica Municipality"
msgstr ""
-#: languages/states.php:4217
+#: languages/states.php:4219
msgid "Sežana Municipality"
msgstr ""
-#: languages/states.php:4218
+#: languages/states.php:4220
msgid "Slovenj Gradec City Municipality"
msgstr ""
-#: languages/states.php:4219
+#: languages/states.php:4221
msgid "Slovenska Bistrica Municipality"
msgstr ""
-#: languages/states.php:4220
+#: languages/states.php:4222
msgid "Slovenske Konjice Municipality"
msgstr ""
-#: languages/states.php:4221
+#: languages/states.php:4223
msgid "Starše Municipality"
msgstr ""
-#: languages/states.php:4222
+#: languages/states.php:4224
msgid "Sveti Jurij ob Ščavnici Municipality"
msgstr ""
-#: languages/states.php:4223
+#: languages/states.php:4225
msgid "Šenčur Municipality"
msgstr ""
-#: languages/states.php:4224
+#: languages/states.php:4226
msgid "Šentilj Municipality"
msgstr ""
-#: languages/states.php:4225
+#: languages/states.php:4227
msgid "Šentjernej Municipality"
msgstr ""
-#: languages/states.php:4226
+#: languages/states.php:4228
msgid "Šentjur Municipality"
msgstr ""
-#: languages/states.php:4227
+#: languages/states.php:4229
msgid "Škocjan Municipality"
msgstr ""
-#: languages/states.php:4228
+#: languages/states.php:4230
msgid "Škofja Loka Municipality"
msgstr ""
-#: languages/states.php:4229
+#: languages/states.php:4231
msgid "Municipality of Škofljica"
msgstr ""
-#: languages/states.php:4230
+#: languages/states.php:4232
msgid "Šmarje pri Jelšah Municipality"
msgstr ""
-#: languages/states.php:4231
+#: languages/states.php:4233
msgid "Šmartno ob Paki Municipality"
msgstr ""
-#: languages/states.php:4232
+#: languages/states.php:4234
msgid "Šoštanj Municipality"
msgstr ""
-#: languages/states.php:4233
+#: languages/states.php:4235
msgid "Štore Municipality"
msgstr ""
-#: languages/states.php:4234
+#: languages/states.php:4236
msgid "Tolmin Municipality"
msgstr ""
-#: languages/states.php:4235
+#: languages/states.php:4237
msgid "Trbovlje Municipality"
msgstr ""
-#: languages/states.php:4236
+#: languages/states.php:4238
msgid "Trebnje Municipality"
msgstr ""
-#: languages/states.php:4237
+#: languages/states.php:4239
msgid "Tržič Municipality"
msgstr ""
-#: languages/states.php:4238
+#: languages/states.php:4240
msgid "Turnišče Municipality"
msgstr ""
-#: languages/states.php:4239
+#: languages/states.php:4241
msgid "Velike Lašče Municipality"
msgstr ""
-#: languages/states.php:4240
+#: languages/states.php:4242
msgid "Videm Municipality"
msgstr ""
-#: languages/states.php:4241
+#: languages/states.php:4243
msgid "Vipava Municipality"
msgstr ""
-#: languages/states.php:4242
+#: languages/states.php:4244
msgid "Vitanje Municipality"
msgstr ""
-#: languages/states.php:4243
+#: languages/states.php:4245
msgid "Vodice Municipality"
msgstr ""
-#: languages/states.php:4244
+#: languages/states.php:4246
msgid "Vojnik Municipality"
msgstr ""
-#: languages/states.php:4245
+#: languages/states.php:4247
msgid "Vrhnika Municipality"
msgstr ""
-#: languages/states.php:4246
+#: languages/states.php:4248
msgid "Vuzenica Municipality"
msgstr ""
-#: languages/states.php:4247
+#: languages/states.php:4249
msgid "Zagorje ob Savi Municipality"
msgstr ""
-#: languages/states.php:4248
+#: languages/states.php:4250
msgid "Zavrč Municipality"
msgstr ""
-#: languages/states.php:4249
+#: languages/states.php:4251
msgid "Zreče Municipality"
msgstr ""
-#: languages/states.php:4250
+#: languages/states.php:4252
msgid "Železniki Municipality"
msgstr ""
-#: languages/states.php:4251
+#: languages/states.php:4253
msgid "Žiri Municipality"
msgstr ""
-#: languages/states.php:4252
+#: languages/states.php:4254
msgid "Benedikt Municipality"
msgstr ""
-#: languages/states.php:4253
+#: languages/states.php:4255
msgid "Bistrica ob Sotli Municipality"
msgstr ""
-#: languages/states.php:4254
+#: languages/states.php:4256
msgid "Bloke Municipality"
msgstr ""
-#: languages/states.php:4255
+#: languages/states.php:4257
msgid "Braslovče Municipality"
msgstr ""
-#: languages/states.php:4256
+#: languages/states.php:4258
msgid "Cankova Municipality"
msgstr ""
-#: languages/states.php:4257
+#: languages/states.php:4259
msgid "Cerkvenjak Municipality"
msgstr ""
-#: languages/states.php:4258
+#: languages/states.php:4260
msgid "Dobje Municipality"
msgstr ""
-#: languages/states.php:4259
+#: languages/states.php:4261
msgid "Dobrna Municipality"
msgstr ""
-#: languages/states.php:4260
+#: languages/states.php:4262
msgid "Dobrovnik Municipality"
msgstr ""
-#: languages/states.php:4261
+#: languages/states.php:4263
msgid "Dolenjske Toplice Municipality"
msgstr ""
-#: languages/states.php:4262
+#: languages/states.php:4264
msgid "Grad Municipality"
msgstr ""
-#: languages/states.php:4263
+#: languages/states.php:4265
msgid "Hajdina Municipality"
msgstr ""
-#: languages/states.php:4264
+#: languages/states.php:4266
msgid "Hoče–Slivnica Municipality"
msgstr ""
-#: languages/states.php:4265
+#: languages/states.php:4267
msgid "Hodoš Municipality"
msgstr ""
-#: languages/states.php:4266
+#: languages/states.php:4268
msgid "Horjul Municipality"
msgstr ""
-#: languages/states.php:4267
+#: languages/states.php:4269
msgid "Jezersko Municipality"
msgstr ""
-#: languages/states.php:4268
+#: languages/states.php:4270
msgid "Komenda Municipality"
msgstr ""
-#: languages/states.php:4269
+#: languages/states.php:4271
msgid "Kostel Municipality"
msgstr ""
-#: languages/states.php:4270
+#: languages/states.php:4272
msgid "Križevci Municipality"
msgstr ""
-#: languages/states.php:4271
+#: languages/states.php:4273
msgid "Lovrenc na Pohorju Municipality"
msgstr ""
-#: languages/states.php:4272
+#: languages/states.php:4274
msgid "Markovci Municipality"
msgstr ""
-#: languages/states.php:4273
+#: languages/states.php:4275
msgid "Miklavž na Dravskem Polju Municipality"
msgstr ""
-#: languages/states.php:4274
+#: languages/states.php:4276
msgid "Mirna Peč Municipality"
msgstr ""
-#: languages/states.php:4275
+#: languages/states.php:4277
msgid "Oplotnica"
msgstr ""
-#: languages/states.php:4276
+#: languages/states.php:4278
msgid "Podlehnik Municipality"
msgstr ""
-#: languages/states.php:4277
+#: languages/states.php:4279
msgid "Polzela Municipality"
msgstr ""
-#: languages/states.php:4278
+#: languages/states.php:4280
msgid "Prebold Municipality"
msgstr ""
-#: languages/states.php:4279
+#: languages/states.php:4281
msgid "Prevalje Municipality"
msgstr ""
-#: languages/states.php:4280
+#: languages/states.php:4282
msgid "Razkrižje Municipality"
msgstr ""
-#: languages/states.php:4281
+#: languages/states.php:4283
msgid "Ribnica na Pohorju Municipality"
msgstr ""
-#: languages/states.php:4282
+#: languages/states.php:4284
msgid "Selnica ob Dravi Municipality"
msgstr ""
-#: languages/states.php:4283
+#: languages/states.php:4285
msgid "Sodražica Municipality"
msgstr ""
-#: languages/states.php:4284
+#: languages/states.php:4286
msgid "Solčava Municipality"
msgstr ""
-#: languages/states.php:4285
+#: languages/states.php:4287
msgid "Sveta Ana Municipality"
msgstr ""
-#: languages/states.php:4286
+#: languages/states.php:4288
msgid "Sveti Andraž v Slovenskih Goricah Municipality"
msgstr ""
-#: languages/states.php:4287
+#: languages/states.php:4289
msgid "Šempeter–Vrtojba Municipality"
msgstr ""
-#: languages/states.php:4288
+#: languages/states.php:4290
msgid "Tabor Municipality"
msgstr ""
-#: languages/states.php:4289
+#: languages/states.php:4291
msgid "Trnovska Vas Municipality"
msgstr ""
-#: languages/states.php:4290
+#: languages/states.php:4292
msgid "Trzin Municipality"
msgstr ""
-#: languages/states.php:4291
+#: languages/states.php:4293
msgid "Velika Polana Municipality"
msgstr ""
-#: languages/states.php:4292
+#: languages/states.php:4294
msgid "Veržej Municipality"
msgstr ""
-#: languages/states.php:4293
+#: languages/states.php:4295
msgid "Vransko Municipality"
msgstr ""
-#: languages/states.php:4294
+#: languages/states.php:4296
msgid "Žalec Municipality"
msgstr ""
-#: languages/states.php:4295
+#: languages/states.php:4297
msgid "Žetale Municipality"
msgstr ""
-#: languages/states.php:4296
+#: languages/states.php:4298
msgid "Žirovnica Municipality"
msgstr ""
-#: languages/states.php:4297
+#: languages/states.php:4299
msgid "Žužemberk Municipality"
msgstr ""
-#: languages/states.php:4298
+#: languages/states.php:4300
msgid "Šmartno pri Litiji Municipality"
msgstr ""
-#: languages/states.php:4299
+#: languages/states.php:4301
msgid "Municipality of Apače"
msgstr ""
-#: languages/states.php:4300
+#: languages/states.php:4302
msgid "Municipality of Cirkulane"
msgstr ""
-#: languages/states.php:4301
+#: languages/states.php:4303
msgid "Kostanjevica na Krki Municipality"
msgstr ""
-#: languages/states.php:4302
+#: languages/states.php:4304
msgid "Makole Municipality"
msgstr ""
-#: languages/states.php:4303
+#: languages/states.php:4305
msgid "Mokronog–Trebelno Municipality"
msgstr ""
-#: languages/states.php:4304
+#: languages/states.php:4306
msgid "Poljčane Municipality"
msgstr ""
-#: languages/states.php:4305
+#: languages/states.php:4307
msgid "Renče–Vogrsko Municipality"
msgstr ""
-#: languages/states.php:4306
+#: languages/states.php:4308
msgid "Središče ob Dravi"
msgstr ""
-#: languages/states.php:4307
+#: languages/states.php:4309
msgid "Straža Municipality"
msgstr ""
-#: languages/states.php:4308
+#: languages/states.php:4310
msgid "Sveta Trojica v Slovenskih Goricah Municipality"
msgstr ""
-#: languages/states.php:4309
+#: languages/states.php:4311
msgid "Sveti Tomaž Municipality"
msgstr ""
-#: languages/states.php:4310
+#: languages/states.php:4312
msgid "Šmarješke Toplice Municipality"
msgstr ""
-#: languages/states.php:4311
+#: languages/states.php:4313
msgid "Gorje Municipality"
msgstr ""
-#: languages/states.php:4312
+#: languages/states.php:4314
msgid "Log–Dragomer Municipality"
msgstr ""
-#: languages/states.php:4313
+#: languages/states.php:4315
msgid "Rečica ob Savinji Municipality"
msgstr ""
-#: languages/states.php:4314
+#: languages/states.php:4316
msgid "Sveti Jurij v Slovenskih Goricah Municipality"
msgstr ""
-#: languages/states.php:4315
+#: languages/states.php:4317
msgid "Šentrupert Municipality"
msgstr ""
-#: languages/states.php:4316
+#: languages/states.php:4318
msgid "Mirna Municipality"
msgstr ""
-#: languages/states.php:4317
+#: languages/states.php:4319
msgid "Ankaran Municipality"
msgstr ""
-#: languages/states.php:4318
+#: languages/states.php:4320
msgid "Ajdovščina Municipality"
msgstr ""
-#: languages/states.php:4319
+#: languages/states.php:4321
msgid "Beltinci Municipality"
msgstr ""
-#: languages/states.php:4320
+#: languages/states.php:4322
msgid "Bled Municipality"
msgstr ""
-#: languages/states.php:4321
+#: languages/states.php:4323
msgid "Bohinj Municipality"
msgstr ""
-#: languages/states.php:4322
+#: languages/states.php:4324
msgid "Borovnica Municipality"
msgstr ""
-#: languages/states.php:4323
+#: languages/states.php:4325
msgid "Bovec Municipality"
msgstr ""
-#: languages/states.php:4324
+#: languages/states.php:4326
msgid "Brda Municipality"
msgstr ""
-#: languages/states.php:4325
+#: languages/states.php:4327
msgid "Brezovica Municipality"
msgstr ""
-#: languages/states.php:4326
+#: languages/states.php:4328
msgid "Brežice Municipality"
msgstr ""
-#: languages/states.php:4327
+#: languages/states.php:4329
msgid "Cerklje na Gorenjskem Municipality"
msgstr ""
-#: languages/states.php:4328
+#: languages/states.php:4330
msgid "Cerknica Municipality"
msgstr ""
-#: languages/states.php:4329
+#: languages/states.php:4331
msgid "Cerkno Municipality"
msgstr ""
-#: languages/states.php:4330
+#: languages/states.php:4332
msgid "City Municipality of Celje"
msgstr ""
-#: languages/states.php:4331
+#: languages/states.php:4333
msgid "City Municipality of Novo Mesto"
msgstr ""
-#: languages/states.php:4332
+#: languages/states.php:4334
msgid "Destrnik Municipality"
msgstr ""
-#: languages/states.php:4333
+#: languages/states.php:4335
msgid "Divača Municipality"
msgstr ""
-#: languages/states.php:4334
+#: languages/states.php:4336
msgid "Dobrepolje Municipality"
msgstr ""
-#: languages/states.php:4335
+#: languages/states.php:4337
msgid "Dobrova–Polhov Gradec Municipality"
msgstr ""
-#: languages/states.php:4336
+#: languages/states.php:4338
msgid "Dol pri Ljubljani Municipality"
msgstr ""
-#: languages/states.php:4337
+#: languages/states.php:4339
msgid "Domžale Municipality"
msgstr ""
-#: languages/states.php:4338
+#: languages/states.php:4340
msgid "Dornava Municipality"
msgstr ""
-#: languages/states.php:4339
+#: languages/states.php:4341
msgid "Dravograd Municipality"
msgstr ""
-#: languages/states.php:4340
+#: languages/states.php:4342
msgid "Duplek Municipality"
msgstr ""
-#: languages/states.php:4341
+#: languages/states.php:4343
msgid "Gorenja Vas–Poljane Municipality"
msgstr ""
-#: languages/states.php:4342
+#: languages/states.php:4344
msgid "Gorišnica Municipality"
msgstr ""
-#: languages/states.php:4343
+#: languages/states.php:4345
msgid "Gornja Radgona Municipality"
msgstr ""
-#: languages/states.php:4344
+#: languages/states.php:4346
msgid "Gornji Grad Municipality"
msgstr ""
-#: languages/states.php:4345
+#: languages/states.php:4347
msgid "Gornji Petrovci Municipality"
msgstr ""
-#: languages/states.php:4346
+#: languages/states.php:4348
msgid "Grosuplje Municipality"
msgstr ""
-#: languages/states.php:4347
+#: languages/states.php:4349
msgid "Hrastnik Municipality"
msgstr ""
-#: languages/states.php:4348
+#: languages/states.php:4350
msgid "Hrpelje–Kozina Municipality"
msgstr ""
-#: languages/states.php:4349
+#: languages/states.php:4351
msgid "Idrija Municipality"
msgstr ""
-#: languages/states.php:4350
+#: languages/states.php:4352
msgid "Ig Municipality"
msgstr ""
-#: languages/states.php:4351
+#: languages/states.php:4353
msgid "Ivančna Gorica Municipality"
msgstr ""
-#: languages/states.php:4352
+#: languages/states.php:4354
msgid "Izola Municipality"
msgstr ""
-#: languages/states.php:4353
+#: languages/states.php:4355
msgid "Jesenice Municipality"
msgstr ""
-#: languages/states.php:4354
+#: languages/states.php:4356
msgid "Juršinci Municipality"
msgstr ""
-#: languages/states.php:4355
+#: languages/states.php:4357
msgid "Kamnik Municipality"
msgstr ""
-#: languages/states.php:4356
+#: languages/states.php:4358
msgid "Kanal ob Soči Municipality"
msgstr ""
-#: languages/states.php:4357
+#: languages/states.php:4359
msgid "Kidričevo Municipality"
msgstr ""
-#: languages/states.php:4358
+#: languages/states.php:4360
msgid "Kobarid Municipality"
msgstr ""
-#: languages/states.php:4359
+#: languages/states.php:4361
msgid "Kobilje Municipality"
msgstr ""
-#: languages/states.php:4360
+#: languages/states.php:4362
msgid "Komen Municipality"
msgstr ""
-#: languages/states.php:4361
+#: languages/states.php:4363
msgid "Koper City Municipality"
msgstr ""
-#: languages/states.php:4362
+#: languages/states.php:4364
msgid "Kozje Municipality"
msgstr ""
-#: languages/states.php:4363
+#: languages/states.php:4365
msgid "Kočevje Municipality"
msgstr ""
-#: languages/states.php:4364
+#: languages/states.php:4366
msgid "Kranj City Municipality"
msgstr ""
-#: languages/states.php:4365
+#: languages/states.php:4367
msgid "Kranjska Gora Municipality"
msgstr ""
-#: languages/states.php:4366
+#: languages/states.php:4368
msgid "Kungota"
msgstr ""
-#: languages/states.php:4367
+#: languages/states.php:4369
msgid "Kuzma Municipality"
msgstr ""
-#: languages/states.php:4368
+#: languages/states.php:4370
msgid "Laško Municipality"
msgstr ""
-#: languages/states.php:4369
+#: languages/states.php:4371
msgid "Lenart Municipality"
msgstr ""
-#: languages/states.php:4370
+#: languages/states.php:4372
msgid "Lendava Municipality"
msgstr ""
-#: languages/states.php:4371
+#: languages/states.php:4373
msgid "Litija Municipality"
msgstr ""
-#: languages/states.php:4372
+#: languages/states.php:4374
msgid "Ljubljana City Municipality"
msgstr ""
-#: languages/states.php:4373
+#: languages/states.php:4375
msgid "Ljubno Municipality"
msgstr ""
-#: languages/states.php:4374
+#: languages/states.php:4376
msgid "Ljutomer Municipality"
msgstr ""
-#: languages/states.php:4375
+#: languages/states.php:4377
msgid "Logatec Municipality"
msgstr ""
-#: languages/states.php:4376
+#: languages/states.php:4378
msgid "Loška Dolina Municipality"
msgstr ""
-#: languages/states.php:4377
+#: languages/states.php:4379
msgid "Loški Potok Municipality"
msgstr ""
-#: languages/states.php:4378
+#: languages/states.php:4380
msgid "Lukovica Municipality"
msgstr ""
-#: languages/states.php:4379
+#: languages/states.php:4381
msgid "Luče Municipality"
msgstr ""
-#: languages/states.php:4380
+#: languages/states.php:4382
msgid "Majšperk Municipality"
msgstr ""
-#: languages/states.php:4381
+#: languages/states.php:4383
msgid "Maribor City Municipality"
msgstr ""
-#: languages/states.php:4382
+#: languages/states.php:4384
msgid "Medvode Municipality"
msgstr ""
-#: languages/states.php:4383
+#: languages/states.php:4385
msgid "Mengeš Municipality"
msgstr ""
-#: languages/states.php:4384
+#: languages/states.php:4386
msgid "Metlika Municipality"
msgstr ""
-#: languages/states.php:4385
+#: languages/states.php:4387
msgid "Mežica Municipality"
msgstr ""
-#: languages/states.php:4386
+#: languages/states.php:4388
msgid "Miren–Kostanjevica Municipality"
msgstr ""
-#: languages/states.php:4387
+#: languages/states.php:4389
msgid "Mislinja Municipality"
msgstr ""
-#: languages/states.php:4388
+#: languages/states.php:4390
msgid "Moravske Toplice Municipality"
msgstr ""
-#: languages/states.php:4389
+#: languages/states.php:4391
msgid "Moravče Municipality"
msgstr ""
-#: languages/states.php:4390
+#: languages/states.php:4392
msgid "Mozirje Municipality"
msgstr ""
-#: languages/states.php:4391
+#: languages/states.php:4393
msgid "Municipality of Ilirska Bistrica"
msgstr ""
-#: languages/states.php:4392
+#: languages/states.php:4394
msgid "Municipality of Krško"
msgstr ""
-#: languages/states.php:4393
+#: languages/states.php:4395
msgid "Murska Sobota City Municipality"
msgstr ""
-#: languages/states.php:4394
+#: languages/states.php:4396
msgid "Muta Municipality"
msgstr ""
-#: languages/states.php:4395
+#: languages/states.php:4397
msgid "Naklo Municipality"
msgstr ""
-#: languages/states.php:4396
+#: languages/states.php:4398
msgid "Nazarje Municipality"
msgstr ""
-#: languages/states.php:4397
+#: languages/states.php:4399
msgid "Nova Gorica City Municipality"
msgstr ""
-#: languages/states.php:4398
+#: languages/states.php:4400
msgid "Odranci Municipality"
msgstr ""
-#: languages/states.php:4399
+#: languages/states.php:4401
msgid "Ormož Municipality"
msgstr ""
-#: languages/states.php:4400
+#: languages/states.php:4402
msgid "Osilnica Municipality"
msgstr ""
-#: languages/states.php:4401
+#: languages/states.php:4403
msgid "Pesnica Municipality"
msgstr ""
-#: languages/states.php:4402
+#: languages/states.php:4404
msgid "Piran Municipality"
msgstr ""
-#: languages/states.php:4403
+#: languages/states.php:4405
msgid "Pivka Municipality"
msgstr ""
-#: languages/states.php:4404
+#: languages/states.php:4406
msgid "Podvelka Municipality"
msgstr ""
-#: languages/states.php:4405
+#: languages/states.php:4407
msgid "Podčetrtek Municipality"
msgstr ""
-#: languages/states.php:4406
+#: languages/states.php:4408
msgid "Postojna Municipality"
msgstr ""
-#: languages/states.php:4407
+#: languages/states.php:4409
msgid "Preddvor Municipality"
msgstr ""
-#: languages/states.php:4408
+#: languages/states.php:4410
msgid "Ptuj City Municipality"
msgstr ""
-#: languages/states.php:4409
+#: languages/states.php:4411
msgid "Puconci Municipality"
msgstr ""
-#: languages/states.php:4410
+#: languages/states.php:4412
msgid "Radeče Municipality"
msgstr ""
-#: languages/states.php:4411
+#: languages/states.php:4413
msgid "Rače–Fram Municipality"
msgstr ""
-#: languages/states.php:4412
+#: languages/states.php:4414
msgid "Tišina Municipality"
msgstr ""
-#: languages/states.php:4413
+#: languages/states.php:4415
msgid "Črenšovci Municipality"
msgstr ""
-#: languages/states.php:4414
+#: languages/states.php:4416
msgid "Črna na Koroškem Municipality"
msgstr ""
-#: languages/states.php:4415
+#: languages/states.php:4417
msgid "Črnomelj Municipality"
msgstr ""
-#: languages/states.php:4416
+#: languages/states.php:4418
msgid "Šalovci Municipality"
msgstr ""
-#: languages/states.php:4420
+#: languages/states.php:4422
msgid "Banská Bystrica Region"
msgstr ""
-#: languages/states.php:4421
+#: languages/states.php:4423
msgid "Bratislava Region"
msgstr ""
-#: languages/states.php:4422
+#: languages/states.php:4424
msgid "Košice Region"
msgstr ""
-#: languages/states.php:4423
+#: languages/states.php:4425
msgid "Nitra Region"
msgstr ""
-#: languages/states.php:4424
+#: languages/states.php:4426
msgid "Prešov Region"
msgstr ""
-#: languages/states.php:4425
+#: languages/states.php:4427
msgid "Trenčín Region"
msgstr ""
-#: languages/states.php:4426
+#: languages/states.php:4428
msgid "Trnava Region"
msgstr ""
-#: languages/states.php:4427
+#: languages/states.php:4429
msgid "Žilina Region"
msgstr ""
-#: languages/states.php:4433
+#: languages/states.php:4435
msgid "Western Area"
msgstr ""
-#: languages/states.php:4436
+#: languages/states.php:4438
msgid "Acquaviva"
msgstr ""
-#: languages/states.php:4437
+#: languages/states.php:4439
msgid "Borgo Maggiore"
msgstr ""
-#: languages/states.php:4438
+#: languages/states.php:4440
msgid "Chiesanuova"
msgstr ""
-#: languages/states.php:4439
+#: languages/states.php:4441
msgid "Domagnano"
msgstr ""
-#: languages/states.php:4440
+#: languages/states.php:4442
msgid "Faetano"
msgstr ""
-#: languages/states.php:4441
+#: languages/states.php:4443
msgid "Fiorentino"
msgstr ""
-#: languages/states.php:4442
+#: languages/states.php:4444
msgid "Montegiardino"
msgstr ""
-#: languages/states.php:4444
+#: languages/states.php:4446
msgid "Serravalle"
msgstr ""
-#: languages/states.php:4447
+#: languages/states.php:4449
msgid "Dakar"
msgstr ""
-#: languages/states.php:4448
+#: languages/states.php:4450
msgid "Diourbel Region"
msgstr ""
-#: languages/states.php:4449
+#: languages/states.php:4451
msgid "Fatick"
msgstr ""
-#: languages/states.php:4450
+#: languages/states.php:4452
msgid "Kaffrine"
msgstr ""
-#: languages/states.php:4451
+#: languages/states.php:4453
msgid "Kaolack"
msgstr ""
-#: languages/states.php:4452
+#: languages/states.php:4454
msgid "Kolda"
msgstr ""
-#: languages/states.php:4453
+#: languages/states.php:4455
msgid "Kédougou"
msgstr ""
-#: languages/states.php:4454
+#: languages/states.php:4456
msgid "Louga"
msgstr ""
-#: languages/states.php:4455
+#: languages/states.php:4457
msgid "Matam"
msgstr ""
-#: languages/states.php:4456
+#: languages/states.php:4458
msgid "Saint-Louis"
msgstr ""
-#: languages/states.php:4457
+#: languages/states.php:4459
msgid "Sédhiou"
msgstr ""
-#: languages/states.php:4458
+#: languages/states.php:4460
msgid "Tambacounda Region"
msgstr ""
-#: languages/states.php:4459
+#: languages/states.php:4461
msgid "Thiès Region"
msgstr ""
-#: languages/states.php:4460
+#: languages/states.php:4462
msgid "Ziguinchor"
msgstr ""
-#: languages/states.php:4463
+#: languages/states.php:4465
msgid "Awdal Region"
msgstr ""
-#: languages/states.php:4464
+#: languages/states.php:4466
msgid "Bakool"
msgstr ""
-#: languages/states.php:4465
+#: languages/states.php:4467
msgid "Banaadir"
msgstr ""
-#: languages/states.php:4467
+#: languages/states.php:4469
msgid "Bay"
msgstr ""
-#: languages/states.php:4468
+#: languages/states.php:4470
msgid "Galguduud"
msgstr ""
-#: languages/states.php:4469
+#: languages/states.php:4471
msgid "Gedo"
msgstr ""
-#: languages/states.php:4470
+#: languages/states.php:4472
msgid "Hiran"
msgstr ""
-#: languages/states.php:4471
+#: languages/states.php:4473
msgid "Lower Juba"
msgstr ""
-#: languages/states.php:4472
+#: languages/states.php:4474
msgid "Lower Shebelle"
msgstr ""
-#: languages/states.php:4473
+#: languages/states.php:4475
msgid "Middle Juba"
msgstr ""
-#: languages/states.php:4474
+#: languages/states.php:4476
msgid "Middle Shebelle"
msgstr ""
-#: languages/states.php:4475
+#: languages/states.php:4477
msgid "Mudug"
msgstr ""
-#: languages/states.php:4476
+#: languages/states.php:4478
msgid "Nugal"
msgstr ""
-#: languages/states.php:4477
+#: languages/states.php:4479
msgid "Sanaag Region"
msgstr ""
-#: languages/states.php:4478
+#: languages/states.php:4480
msgid "Togdheer Region"
msgstr ""
-#: languages/states.php:4481
+#: languages/states.php:4483
msgid "Brokopondo District"
msgstr ""
-#: languages/states.php:4482
+#: languages/states.php:4484
msgid "Commewijne District"
msgstr ""
-#: languages/states.php:4483
+#: languages/states.php:4485
msgid "Coronie District"
msgstr ""
-#: languages/states.php:4484
+#: languages/states.php:4486
msgid "Marowijne District"
msgstr ""
-#: languages/states.php:4485
+#: languages/states.php:4487
msgid "Nickerie District"
msgstr ""
-#: languages/states.php:4486
+#: languages/states.php:4488
msgid "Para District"
msgstr ""
-#: languages/states.php:4487
+#: languages/states.php:4489
msgid "Paramaribo District"
msgstr ""
-#: languages/states.php:4488
+#: languages/states.php:4490
msgid "Saramacca District"
msgstr ""
-#: languages/states.php:4489
+#: languages/states.php:4491
msgid "Sipaliwini District"
msgstr ""
-#: languages/states.php:4490
+#: languages/states.php:4492
msgid "Wanica District"
msgstr ""
-#: languages/states.php:4493
+#: languages/states.php:4495
msgid "Central Equatoria"
msgstr ""
-#: languages/states.php:4494
+#: languages/states.php:4496
msgid "Eastern Equatoria"
msgstr ""
-#: languages/states.php:4495
+#: languages/states.php:4497
msgid "Jonglei State"
msgstr ""
-#: languages/states.php:4496
+#: languages/states.php:4498
msgid "Lakes"
msgstr ""
-#: languages/states.php:4497
+#: languages/states.php:4499
msgid "Northern Bahr el Ghazal"
msgstr ""
-#: languages/states.php:4498
+#: languages/states.php:4500
msgid "Unity"
msgstr ""
-#: languages/states.php:4499
+#: languages/states.php:4501
msgid "Upper Nile"
msgstr ""
-#: languages/states.php:4500
+#: languages/states.php:4502
msgid "Warrap"
msgstr ""
-#: languages/states.php:4501
+#: languages/states.php:4503
msgid "Western Bahr el Ghazal"
msgstr ""
-#: languages/states.php:4502
+#: languages/states.php:4504
msgid "Western Equatoria"
msgstr ""
-#: languages/states.php:4505
+#: languages/states.php:4507
msgid "Príncipe Province"
msgstr ""
-#: languages/states.php:4506
+#: languages/states.php:4508
msgid "São Tomé Province"
msgstr ""
-#: languages/states.php:4509
+#: languages/states.php:4511
msgid "Ahuachapán Department"
msgstr ""
-#: languages/states.php:4510
+#: languages/states.php:4512
msgid "Cabañas Department"
msgstr ""
-#: languages/states.php:4511
+#: languages/states.php:4513
msgid "Chalatenango Department"
msgstr ""
-#: languages/states.php:4512
+#: languages/states.php:4514
msgid "Cuscatlán Department"
msgstr ""
-#: languages/states.php:4513
+#: languages/states.php:4515
msgid "La Libertad Department"
msgstr ""
-#: languages/states.php:4515
+#: languages/states.php:4517
msgid "La Unión Department"
msgstr ""
-#: languages/states.php:4516
+#: languages/states.php:4518
msgid "Morazán Department"
msgstr ""
-#: languages/states.php:4517
+#: languages/states.php:4519
msgid "San Miguel Department"
msgstr ""
-#: languages/states.php:4518
+#: languages/states.php:4520
msgid "San Salvador Department"
msgstr ""
-#: languages/states.php:4519
+#: languages/states.php:4521
msgid "San Vicente Department"
msgstr ""
-#: languages/states.php:4520
+#: languages/states.php:4522
msgid "Santa Ana Department"
msgstr ""
-#: languages/states.php:4521
+#: languages/states.php:4523
msgid "Sonsonate Department"
msgstr ""
-#: languages/states.php:4522
+#: languages/states.php:4524
msgid "Usulután Department"
msgstr ""
-#: languages/states.php:4526
+#: languages/states.php:4528
msgid "Al-Hasakah Governorate"
msgstr ""
-#: languages/states.php:4527
+#: languages/states.php:4529
msgid "Al-Raqqah Governorate"
msgstr ""
-#: languages/states.php:4528
+#: languages/states.php:4530
msgid "Aleppo Governorate"
msgstr ""
-#: languages/states.php:4529
+#: languages/states.php:4531
msgid "As-Suwayda Governorate"
msgstr ""
-#: languages/states.php:4530
+#: languages/states.php:4532
msgid "Damascus Governorate"
msgstr ""
-#: languages/states.php:4531
+#: languages/states.php:4533
msgid "Daraa Governorate"
msgstr ""
-#: languages/states.php:4532
+#: languages/states.php:4534
msgid "Deir ez-Zor Governorate"
msgstr ""
-#: languages/states.php:4533
+#: languages/states.php:4535
msgid "Hama Governorate"
msgstr ""
-#: languages/states.php:4534
+#: languages/states.php:4536
msgid "Homs Governorate"
msgstr ""
-#: languages/states.php:4535
+#: languages/states.php:4537
msgid "Idlib Governorate"
msgstr ""
-#: languages/states.php:4536
+#: languages/states.php:4538
msgid "Latakia Governorate"
msgstr ""
-#: languages/states.php:4537
+#: languages/states.php:4539
msgid "Quneitra Governorate"
msgstr ""
-#: languages/states.php:4538
+#: languages/states.php:4540
msgid "Rif Dimashq Governorate"
msgstr ""
-#: languages/states.php:4539
+#: languages/states.php:4541
msgid "Tartus Governorate"
msgstr ""
-#: languages/states.php:4542
+#: languages/states.php:4544
msgid "Hhohho District"
msgstr ""
-#: languages/states.php:4543
+#: languages/states.php:4545
msgid "Lubombo District"
msgstr ""
-#: languages/states.php:4544
+#: languages/states.php:4546
msgid "Manzini District"
msgstr ""
-#: languages/states.php:4545
+#: languages/states.php:4547
msgid "Shiselweni District"
msgstr ""
-#: languages/states.php:4549
+#: languages/states.php:4551
msgid "Bahr el Gazel"
msgstr ""
-#: languages/states.php:4550
+#: languages/states.php:4552
msgid "Batha Region"
msgstr ""
-#: languages/states.php:4551
+#: languages/states.php:4553
msgid "Borkou"
msgstr ""
-#: languages/states.php:4552
+#: languages/states.php:4554
msgid "Ennedi Region"
msgstr ""
-#: languages/states.php:4553
+#: languages/states.php:4555
msgid "Ennedi-Est"
msgstr ""
-#: languages/states.php:4554
+#: languages/states.php:4556
msgid "Ennedi-Ouest"
msgstr ""
-#: languages/states.php:4555
+#: languages/states.php:4557
msgid "Guéra Region"
msgstr ""
-#: languages/states.php:4556
+#: languages/states.php:4558
msgid "Hadjer-Lamis"
msgstr ""
-#: languages/states.php:4557
+#: languages/states.php:4559
msgid "Kanem Region"
msgstr ""
-#: languages/states.php:4558
+#: languages/states.php:4560
msgid "Lac Region"
msgstr ""
-#: languages/states.php:4559
+#: languages/states.php:4561
msgid "Logone Occidental Region"
msgstr ""
-#: languages/states.php:4560
+#: languages/states.php:4562
msgid "Logone Oriental Region"
msgstr ""
-#: languages/states.php:4561
+#: languages/states.php:4563
msgid "Mandoul Region"
msgstr ""
-#: languages/states.php:4562
+#: languages/states.php:4564
msgid "Mayo-Kebbi Est Region"
msgstr ""
-#: languages/states.php:4563
+#: languages/states.php:4565
msgid "Mayo-Kebbi Ouest Region"
msgstr ""
-#: languages/states.php:4564
+#: languages/states.php:4566
msgid "Moyen-Chari Region"
msgstr ""
-#: languages/states.php:4565
+#: languages/states.php:4567
msgid "N'Djamena"
msgstr ""
-#: languages/states.php:4566
+#: languages/states.php:4568
msgid "Ouaddaï Region"
msgstr ""
-#: languages/states.php:4567
+#: languages/states.php:4569
msgid "Salamat Region"
msgstr ""
-#: languages/states.php:4568
+#: languages/states.php:4570
msgid "Sila Region"
msgstr ""
-#: languages/states.php:4569
+#: languages/states.php:4571
msgid "Tandjilé Region"
msgstr ""
-#: languages/states.php:4570
+#: languages/states.php:4572
msgid "Tibesti Region"
msgstr ""
-#: languages/states.php:4571
+#: languages/states.php:4573
msgid "Wadi Fira Region"
msgstr ""
-#: languages/states.php:4575
+#: languages/states.php:4577
msgid "Centrale Region"
msgstr ""
-#: languages/states.php:4576
+#: languages/states.php:4578
msgid "Kara Region"
msgstr ""
-#: languages/states.php:4577
+#: languages/states.php:4579
msgid "Maritime"
msgstr ""
-#: languages/states.php:4578
+#: languages/states.php:4580
msgid "Plateaux Region"
msgstr ""
-#: languages/states.php:4582
+#: languages/states.php:4584
msgid "Bangkok"
msgstr ""
-#: languages/states.php:4583
+#: languages/states.php:4585
msgid "Samut Prakan"
msgstr ""
-#: languages/states.php:4584
+#: languages/states.php:4586
msgid "Nonthaburi"
msgstr ""
-#: languages/states.php:4585
+#: languages/states.php:4587
msgid "Pathum Thani"
msgstr ""
-#: languages/states.php:4586
+#: languages/states.php:4588
msgid "Phra Nakhon Si Ayutthaya"
msgstr ""
-#: languages/states.php:4587
+#: languages/states.php:4589
msgid "Ang Thong"
msgstr ""
-#: languages/states.php:4588
+#: languages/states.php:4590
msgid "Lopburi"
msgstr ""
-#: languages/states.php:4589
+#: languages/states.php:4591
msgid "Sing Buri"
msgstr ""
-#: languages/states.php:4590
+#: languages/states.php:4592
msgid "Chai Nat"
msgstr ""
-#: languages/states.php:4591
+#: languages/states.php:4593
msgid "Saraburi"
msgstr ""
-#: languages/states.php:4592
+#: languages/states.php:4594
msgid "Chon Buri"
msgstr ""
-#: languages/states.php:4593
+#: languages/states.php:4595
msgid "Rayong"
msgstr ""
-#: languages/states.php:4594
+#: languages/states.php:4596
msgid "Chanthaburi"
msgstr ""
-#: languages/states.php:4595
+#: languages/states.php:4597
msgid "Trat"
msgstr ""
-#: languages/states.php:4596
+#: languages/states.php:4598
msgid "Chachoengsao"
msgstr ""
-#: languages/states.php:4597
+#: languages/states.php:4599
msgid "Prachin Buri"
msgstr ""
-#: languages/states.php:4598
+#: languages/states.php:4600
msgid "Nakhon Nayok"
msgstr ""
-#: languages/states.php:4599
+#: languages/states.php:4601
msgid "Sa Kaeo"
msgstr ""
-#: languages/states.php:4600
+#: languages/states.php:4602
msgid "Nakhon Ratchasima"
msgstr ""
-#: languages/states.php:4601
+#: languages/states.php:4603
msgid "Buri Ram"
msgstr ""
-#: languages/states.php:4602
+#: languages/states.php:4604
msgid "Surin"
msgstr ""
-#: languages/states.php:4603
+#: languages/states.php:4605
msgid "Si Sa Ket"
msgstr ""
-#: languages/states.php:4604
+#: languages/states.php:4606
msgid "Ubon Ratchathani"
msgstr ""
-#: languages/states.php:4605
+#: languages/states.php:4607
msgid "Yasothon"
msgstr ""
-#: languages/states.php:4606
+#: languages/states.php:4608
msgid "Amnat Charoen"
msgstr ""
-#: languages/states.php:4607
+#: languages/states.php:4609
msgid "Bueng Kan"
msgstr ""
-#: languages/states.php:4608
+#: languages/states.php:4610
msgid "Nong Bua Lam Phu"
msgstr ""
-#: languages/states.php:4609
+#: languages/states.php:4611
msgid "Khon Kaen"
msgstr ""
-#: languages/states.php:4610
+#: languages/states.php:4612
msgid "Udon Thani"
msgstr ""
-#: languages/states.php:4611
+#: languages/states.php:4613
msgid "Loei"
msgstr ""
-#: languages/states.php:4612
+#: languages/states.php:4614
msgid "Nong Khai"
msgstr ""
-#: languages/states.php:4613
+#: languages/states.php:4615
msgid "Maha Sarakham"
msgstr ""
-#: languages/states.php:4614
+#: languages/states.php:4616
msgid "Roi Et"
msgstr ""
-#: languages/states.php:4615
+#: languages/states.php:4617
msgid "Kalasin"
msgstr ""
-#: languages/states.php:4616
+#: languages/states.php:4618
msgid "Sakon Nakhon"
msgstr ""
-#: languages/states.php:4617
+#: languages/states.php:4619
msgid "Nakhon Phanom"
msgstr ""
-#: languages/states.php:4618
+#: languages/states.php:4620
msgid "Mukdahan"
msgstr ""
-#: languages/states.php:4619
+#: languages/states.php:4621
msgid "Chiang Mai"
msgstr ""
-#: languages/states.php:4620
+#: languages/states.php:4622
msgid "Lamphun"
msgstr ""
-#: languages/states.php:4621
+#: languages/states.php:4623
msgid "Lampang"
msgstr ""
-#: languages/states.php:4622
+#: languages/states.php:4624
msgid "Uttaradit"
msgstr ""
-#: languages/states.php:4623
+#: languages/states.php:4625
msgid "Phrae"
msgstr ""
-#: languages/states.php:4624
+#: languages/states.php:4626
msgid "Nan"
msgstr ""
-#: languages/states.php:4625
+#: languages/states.php:4627
msgid "Phayao"
msgstr ""
-#: languages/states.php:4626
+#: languages/states.php:4628
msgid "Chiang Rai"
msgstr ""
-#: languages/states.php:4627
+#: languages/states.php:4629
msgid "Mae Hong Son"
msgstr ""
-#: languages/states.php:4628
+#: languages/states.php:4630
msgid "Nakhon Sawan"
msgstr ""
-#: languages/states.php:4629
+#: languages/states.php:4631
msgid "Uthai Thani"
msgstr ""
-#: languages/states.php:4630
+#: languages/states.php:4632
msgid "Kamphaeng Phet"
msgstr ""
-#: languages/states.php:4631
+#: languages/states.php:4633
msgid "Tak"
msgstr ""
-#: languages/states.php:4632
+#: languages/states.php:4634
msgid "Sukhothai"
msgstr ""
-#: languages/states.php:4633
+#: languages/states.php:4635
msgid "Phitsanulok"
msgstr ""
-#: languages/states.php:4634
+#: languages/states.php:4636
msgid "Phichit"
msgstr ""
-#: languages/states.php:4635
+#: languages/states.php:4637
msgid "Phetchabun"
msgstr ""
-#: languages/states.php:4636
+#: languages/states.php:4638
msgid "Ratchaburi"
msgstr ""
-#: languages/states.php:4637
+#: languages/states.php:4639
msgid "Kanchanaburi"
msgstr ""
-#: languages/states.php:4638
+#: languages/states.php:4640
msgid "Suphanburi"
msgstr ""
-#: languages/states.php:4639
+#: languages/states.php:4641
msgid "Nakhon Pathom"
msgstr ""
-#: languages/states.php:4640
+#: languages/states.php:4642
msgid "Samut Sakhon"
msgstr ""
-#: languages/states.php:4641
+#: languages/states.php:4643
msgid "Samut Songkhram"
msgstr ""
-#: languages/states.php:4642
+#: languages/states.php:4644
msgid "Phetchaburi"
msgstr ""
-#: languages/states.php:4643
+#: languages/states.php:4645
msgid "Prachuap Khiri Khan"
msgstr ""
-#: languages/states.php:4644
+#: languages/states.php:4646
msgid "Nakhon Si Thammarat"
msgstr ""
-#: languages/states.php:4645
+#: languages/states.php:4647
msgid "Krabi"
msgstr ""
-#: languages/states.php:4646
+#: languages/states.php:4648
msgid "Phang Nga"
msgstr ""
-#: languages/states.php:4647
+#: languages/states.php:4649
msgid "Phuket"
msgstr ""
-#: languages/states.php:4648
+#: languages/states.php:4650
msgid "Surat Thani"
msgstr ""
-#: languages/states.php:4649
+#: languages/states.php:4651
msgid "Ranong"
msgstr ""
-#: languages/states.php:4650
+#: languages/states.php:4652
msgid "Chumphon"
msgstr ""
-#: languages/states.php:4651
+#: languages/states.php:4653
msgid "Songkhla"
msgstr ""
-#: languages/states.php:4652
+#: languages/states.php:4654
msgid "Satun"
msgstr ""
-#: languages/states.php:4653
+#: languages/states.php:4655
msgid "Trang"
msgstr ""
-#: languages/states.php:4654
+#: languages/states.php:4656
msgid "Phatthalung"
msgstr ""
-#: languages/states.php:4655
+#: languages/states.php:4657
msgid "Pattani"
msgstr ""
-#: languages/states.php:4656
+#: languages/states.php:4658
msgid "Yala"
msgstr ""
-#: languages/states.php:4657
+#: languages/states.php:4659
msgid "Narathiwat"
msgstr ""
-#: languages/states.php:4658
+#: languages/states.php:4660
msgid "Pattaya"
msgstr ""
-#: languages/states.php:4661
+#: languages/states.php:4663
msgid "Gorno-Badakhshan Autonomous Province"
msgstr ""
-#: languages/states.php:4662
+#: languages/states.php:4664
msgid "Khatlon Province"
msgstr ""
-#: languages/states.php:4663
+#: languages/states.php:4665
msgid "Sughd Province"
msgstr ""
-#: languages/states.php:4664
+#: languages/states.php:4666
msgid "districts of Republican Subordination"
msgstr ""
-#: languages/states.php:4668
+#: languages/states.php:4670
msgid "Aileu municipality"
msgstr ""
-#: languages/states.php:4669
+#: languages/states.php:4671
msgid "Ainaro Municipality"
msgstr ""
-#: languages/states.php:4670
+#: languages/states.php:4672
msgid "Baucau Municipality"
msgstr ""
-#: languages/states.php:4671
+#: languages/states.php:4673
msgid "Bobonaro Municipality"
msgstr ""
-#: languages/states.php:4672
+#: languages/states.php:4674
msgid "Cova Lima Municipality"
msgstr ""
-#: languages/states.php:4673
+#: languages/states.php:4675
msgid "Dili municipality"
msgstr ""
-#: languages/states.php:4674
+#: languages/states.php:4676
msgid "Ermera District"
msgstr ""
-#: languages/states.php:4675
+#: languages/states.php:4677
msgid "Lautém Municipality"
msgstr ""
-#: languages/states.php:4676
+#: languages/states.php:4678
msgid "Liquiçá Municipality"
msgstr ""
-#: languages/states.php:4677
+#: languages/states.php:4679
msgid "Manatuto District"
msgstr ""
-#: languages/states.php:4678
+#: languages/states.php:4680
msgid "Manufahi Municipality"
msgstr ""
-#: languages/states.php:4679
+#: languages/states.php:4681
msgid "Viqueque Municipality"
msgstr ""
-#: languages/states.php:4682
+#: languages/states.php:4684
msgid "Ahal Region"
msgstr ""
-#: languages/states.php:4683
+#: languages/states.php:4685
msgid "Ashgabat"
msgstr ""
-#: languages/states.php:4684
+#: languages/states.php:4686
msgid "Balkan Region"
msgstr ""
-#: languages/states.php:4685
+#: languages/states.php:4687
msgid "Daşoguz Region"
msgstr ""
-#: languages/states.php:4686
+#: languages/states.php:4688
msgid "Lebap Region"
msgstr ""
-#: languages/states.php:4687
+#: languages/states.php:4689
msgid "Mary Region"
msgstr ""
-#: languages/states.php:4690
+#: languages/states.php:4692
msgid "Tunis Governorate"
msgstr ""
-#: languages/states.php:4691
+#: languages/states.php:4693
msgid "Ariana Governorate"
msgstr ""
-#: languages/states.php:4692
+#: languages/states.php:4694
msgid "Ben Arous Governorate"
msgstr ""
-#: languages/states.php:4693
+#: languages/states.php:4695
msgid "Manouba Governorate"
msgstr ""
-#: languages/states.php:4694
+#: languages/states.php:4696
msgid "Zaghouan Governorate"
msgstr ""
-#: languages/states.php:4695
+#: languages/states.php:4697
msgid "Bizerte Governorate"
msgstr ""
-#: languages/states.php:4696
+#: languages/states.php:4698
msgid "Kassrine"
msgstr ""
-#: languages/states.php:4697
+#: languages/states.php:4699
msgid "Jendouba Governorate"
msgstr ""
-#: languages/states.php:4698
+#: languages/states.php:4700
msgid "Kef Governorate"
msgstr ""
-#: languages/states.php:4699
+#: languages/states.php:4701
msgid "Siliana Governorate"
msgstr ""
-#: languages/states.php:4700
+#: languages/states.php:4702
msgid "Kairouan Governorate"
msgstr ""
-#: languages/states.php:4701
+#: languages/states.php:4703
msgid "Kasserine Governorate"
msgstr ""
-#: languages/states.php:4702
+#: languages/states.php:4704
msgid "Sidi Bouzid Governorate"
msgstr ""
-#: languages/states.php:4703
+#: languages/states.php:4705
msgid "Sousse Governorate"
msgstr ""
-#: languages/states.php:4704
+#: languages/states.php:4706
msgid "Monastir Governorate"
msgstr ""
-#: languages/states.php:4705
+#: languages/states.php:4707
msgid "Mahdia Governorate"
msgstr ""
-#: languages/states.php:4706
+#: languages/states.php:4708
msgid "Sfax Governorate"
msgstr ""
-#: languages/states.php:4707
+#: languages/states.php:4709
msgid "Gafsa Governorate"
msgstr ""
-#: languages/states.php:4708
+#: languages/states.php:4710
msgid "Tozeur Governorate"
msgstr ""
-#: languages/states.php:4709
+#: languages/states.php:4711
msgid "Kebili Governorate"
msgstr ""
-#: languages/states.php:4710
+#: languages/states.php:4712
msgid "Gabès Governorate"
msgstr ""
-#: languages/states.php:4711
+#: languages/states.php:4713
msgid "Medenine Governorate"
msgstr ""
-#: languages/states.php:4712
+#: languages/states.php:4714
msgid "Tataouine Governorate"
msgstr ""
-#: languages/states.php:4715
+#: languages/states.php:4717
msgid "Haʻapai"
msgstr ""
-#: languages/states.php:4716
+#: languages/states.php:4718
msgid "Niuas"
msgstr ""
-#: languages/states.php:4717
+#: languages/states.php:4719
msgid "Tongatapu"
msgstr ""
-#: languages/states.php:4718
+#: languages/states.php:4720
msgid "Vavaʻu"
msgstr ""
-#: languages/states.php:4719
+#: languages/states.php:4721
msgid "ʻEua"
msgstr ""
-#: languages/states.php:4722
+#: languages/states.php:4724
msgid "Balıkesir Province"
msgstr ""
-#: languages/states.php:4723
+#: languages/states.php:4725
msgid "Bilecik Province"
msgstr ""
-#: languages/states.php:4724
+#: languages/states.php:4726
msgid "Bingöl Province"
msgstr ""
-#: languages/states.php:4725
+#: languages/states.php:4727
msgid "Bitlis Province"
msgstr ""
-#: languages/states.php:4726
+#: languages/states.php:4728
msgid "Bolu Province"
msgstr ""
-#: languages/states.php:4727
+#: languages/states.php:4729
msgid "Burdur Province"
msgstr ""
-#: languages/states.php:4728
+#: languages/states.php:4730
msgid "Bursa Province"
msgstr ""
-#: languages/states.php:4729
+#: languages/states.php:4731
msgid "Çanakkale Province"
msgstr ""
-#: languages/states.php:4730
+#: languages/states.php:4732
msgid "Çankırı Province"
msgstr ""
-#: languages/states.php:4731
+#: languages/states.php:4733
msgid "Çorum Province"
msgstr ""
-#: languages/states.php:4732
+#: languages/states.php:4734
msgid "Denizli Province"
msgstr ""
-#: languages/states.php:4733
+#: languages/states.php:4735
msgid "Diyarbakır Province"
msgstr ""
-#: languages/states.php:4734
+#: languages/states.php:4736
msgid "Edirne Province"
msgstr ""
-#: languages/states.php:4735
+#: languages/states.php:4737
msgid "Elazığ Province"
msgstr ""
-#: languages/states.php:4736
+#: languages/states.php:4738
msgid "Erzincan Province"
msgstr ""
-#: languages/states.php:4737
+#: languages/states.php:4739
msgid "Erzurum Province"
msgstr ""
-#: languages/states.php:4738
+#: languages/states.php:4740
msgid "Eskişehir Province"
msgstr ""
-#: languages/states.php:4739
+#: languages/states.php:4741
msgid "Gaziantep Province"
msgstr ""
-#: languages/states.php:4740
+#: languages/states.php:4742
msgid "Giresun Province"
msgstr ""
-#: languages/states.php:4741
+#: languages/states.php:4743
msgid "Gümüşhane Province"
msgstr ""
-#: languages/states.php:4742
+#: languages/states.php:4744
msgid "Hakkâri Province"
msgstr ""
-#: languages/states.php:4743
+#: languages/states.php:4745
msgid "Hatay Province"
msgstr ""
-#: languages/states.php:4744
+#: languages/states.php:4746
msgid "Isparta Province"
msgstr ""
-#: languages/states.php:4745
+#: languages/states.php:4747
msgid "Mersin Province"
msgstr ""
-#: languages/states.php:4746
+#: languages/states.php:4748
msgid "Istanbul Province"
msgstr ""
-#: languages/states.php:4747
+#: languages/states.php:4749
msgid "İzmir Province"
msgstr ""
-#: languages/states.php:4748
+#: languages/states.php:4750
msgid "Kars Province"
msgstr ""
-#: languages/states.php:4749
+#: languages/states.php:4751
msgid "Kastamonu Province"
msgstr ""
-#: languages/states.php:4750
+#: languages/states.php:4752
msgid "Kayseri Province"
msgstr ""
-#: languages/states.php:4751
+#: languages/states.php:4753
msgid "Kırklareli Province"
msgstr ""
-#: languages/states.php:4752
+#: languages/states.php:4754
msgid "Kırşehir Province"
msgstr ""
-#: languages/states.php:4753
+#: languages/states.php:4755
msgid "Kocaeli Province"
msgstr ""
-#: languages/states.php:4754
+#: languages/states.php:4756
msgid "Konya Province"
msgstr ""
-#: languages/states.php:4755
+#: languages/states.php:4757
msgid "Kütahya Province"
msgstr ""
-#: languages/states.php:4756
+#: languages/states.php:4758
msgid "Malatya Province"
msgstr ""
-#: languages/states.php:4757
+#: languages/states.php:4759
msgid "Manisa Province"
msgstr ""
-#: languages/states.php:4758
+#: languages/states.php:4760
msgid "Kahramanmaraş Province"
msgstr ""
-#: languages/states.php:4759
+#: languages/states.php:4761
msgid "Mardin Province"
msgstr ""
-#: languages/states.php:4760
+#: languages/states.php:4762
msgid "Muğla Province"
msgstr ""
-#: languages/states.php:4761
+#: languages/states.php:4763
msgid "Muş Province"
msgstr ""
-#: languages/states.php:4762
+#: languages/states.php:4764
msgid "Nevşehir Province"
msgstr ""
-#: languages/states.php:4763
+#: languages/states.php:4765
msgid "Niğde Province"
msgstr ""
-#: languages/states.php:4764
+#: languages/states.php:4766
msgid "Ordu Province"
msgstr ""
-#: languages/states.php:4765
+#: languages/states.php:4767
msgid "Rize Province"
msgstr ""
-#: languages/states.php:4766
+#: languages/states.php:4768
msgid "Sakarya Province"
msgstr ""
-#: languages/states.php:4767
+#: languages/states.php:4769
msgid "Samsun Province"
msgstr ""
-#: languages/states.php:4768
+#: languages/states.php:4770
msgid "Siirt Province"
msgstr ""
-#: languages/states.php:4769
+#: languages/states.php:4771
msgid "Sinop Province"
msgstr ""
-#: languages/states.php:4770
+#: languages/states.php:4772
msgid "Sivas Province"
msgstr ""
-#: languages/states.php:4771
+#: languages/states.php:4773
msgid "Tekirdağ Province"
msgstr ""
-#: languages/states.php:4772
+#: languages/states.php:4774
msgid "Tokat Province"
msgstr ""
-#: languages/states.php:4773
+#: languages/states.php:4775
msgid "Trabzon Province"
msgstr ""
-#: languages/states.php:4774
+#: languages/states.php:4776
msgid "Tunceli Province"
msgstr ""
-#: languages/states.php:4775
+#: languages/states.php:4777
msgid "Şanlıurfa Province"
msgstr ""
-#: languages/states.php:4776
+#: languages/states.php:4778
msgid "Uşak Province"
msgstr ""
-#: languages/states.php:4777
+#: languages/states.php:4779
msgid "Van Province"
msgstr ""
-#: languages/states.php:4778
+#: languages/states.php:4780
msgid "Yozgat Province"
msgstr ""
-#: languages/states.php:4779
+#: languages/states.php:4781
msgid "Zonguldak Province"
msgstr ""
-#: languages/states.php:4780
+#: languages/states.php:4782
msgid "Aksaray Province"
msgstr ""
-#: languages/states.php:4781
+#: languages/states.php:4783
msgid "Bayburt Province"
msgstr ""
-#: languages/states.php:4782
+#: languages/states.php:4784
msgid "Karaman Province"
msgstr ""
-#: languages/states.php:4783
+#: languages/states.php:4785
msgid "Kırıkkale Province"
msgstr ""
-#: languages/states.php:4784
+#: languages/states.php:4786
msgid "Batman Province"
msgstr ""
-#: languages/states.php:4785
+#: languages/states.php:4787
msgid "Şırnak Province"
msgstr ""
-#: languages/states.php:4786
+#: languages/states.php:4788
msgid "Bartın Province"
msgstr ""
-#: languages/states.php:4787
+#: languages/states.php:4789
msgid "Ardahan Province"
msgstr ""
-#: languages/states.php:4788
+#: languages/states.php:4790
msgid "Iğdır Province"
msgstr ""
-#: languages/states.php:4789
+#: languages/states.php:4791
msgid "Yalova Province"
msgstr ""
-#: languages/states.php:4790
+#: languages/states.php:4792
msgid "Karabük Province"
msgstr ""
-#: languages/states.php:4791
+#: languages/states.php:4793
msgid "Kilis Province"
msgstr ""
-#: languages/states.php:4792
+#: languages/states.php:4794
msgid "Osmaniye Province"
msgstr ""
-#: languages/states.php:4793
+#: languages/states.php:4795
msgid "Düzce Province"
msgstr ""
-#: languages/states.php:4794
+#: languages/states.php:4796
msgid "Adana Province"
msgstr ""
-#: languages/states.php:4795
+#: languages/states.php:4797
msgid "Adıyaman Province"
msgstr ""
-#: languages/states.php:4796
+#: languages/states.php:4798
msgid "Afyonkarahisar Province"
msgstr ""
-#: languages/states.php:4797
+#: languages/states.php:4799
msgid "Amasya Province"
msgstr ""
-#: languages/states.php:4798
+#: languages/states.php:4800
msgid "Ankara Province"
msgstr ""
-#: languages/states.php:4799
+#: languages/states.php:4801
msgid "Antalya Province"
msgstr ""
-#: languages/states.php:4800
+#: languages/states.php:4802
msgid "Artvin Province"
msgstr ""
-#: languages/states.php:4801
+#: languages/states.php:4803
msgid "Aydın Province"
msgstr ""
-#: languages/states.php:4802
+#: languages/states.php:4804
msgid "Ağrı Province"
msgstr ""
-#: languages/states.php:4805
+#: languages/states.php:4807
msgid "Arima"
msgstr ""
-#: languages/states.php:4806
+#: languages/states.php:4808
msgid "Chaguanas"
msgstr ""
-#: languages/states.php:4807
+#: languages/states.php:4809
msgid "Couva-Tabaquite-Talparo Regional Corporation"
msgstr ""
-#: languages/states.php:4808
+#: languages/states.php:4810
msgid "Diego Martin Regional Corporation"
msgstr ""
-#: languages/states.php:4809
+#: languages/states.php:4811
msgid "Eastern Tobago"
msgstr ""
-#: languages/states.php:4810
+#: languages/states.php:4812
msgid "Penal-Debe Regional Corporation"
msgstr ""
-#: languages/states.php:4811
+#: languages/states.php:4813
msgid "Point Fortin"
msgstr ""
-#: languages/states.php:4812
+#: languages/states.php:4814
msgid "Port of Spain"
msgstr ""
-#: languages/states.php:4813
+#: languages/states.php:4815
msgid "Princes Town Regional Corporation"
msgstr ""
-#: languages/states.php:4814
+#: languages/states.php:4816
msgid "Rio Claro-Mayaro Regional Corporation"
msgstr ""
-#: languages/states.php:4815
+#: languages/states.php:4817
msgid "San Fernando"
msgstr ""
-#: languages/states.php:4816
+#: languages/states.php:4818
msgid "San Juan-Laventille Regional Corporation"
msgstr ""
-#: languages/states.php:4817
+#: languages/states.php:4819
msgid "Sangre Grande Regional Corporation"
msgstr ""
-#: languages/states.php:4818
+#: languages/states.php:4820
msgid "Siparia Regional Corporation"
msgstr ""
-#: languages/states.php:4819
+#: languages/states.php:4821
msgid "Tunapuna-Piarco Regional Corporation"
msgstr ""
-#: languages/states.php:4820
+#: languages/states.php:4822
msgid "Western Tobago"
msgstr ""
-#: languages/states.php:4823
+#: languages/states.php:4825
msgid "Funafuti"
msgstr ""
-#: languages/states.php:4824
+#: languages/states.php:4826
msgid "Nanumanga"
msgstr ""
-#: languages/states.php:4825
+#: languages/states.php:4827
msgid "Nanumea"
msgstr ""
-#: languages/states.php:4826
+#: languages/states.php:4828
msgid "Niutao Island Council"
msgstr ""
-#: languages/states.php:4827
+#: languages/states.php:4829
msgid "Nui"
msgstr ""
-#: languages/states.php:4828
+#: languages/states.php:4830
msgid "Nukufetau"
msgstr ""
-#: languages/states.php:4829
+#: languages/states.php:4831
msgid "Nukulaelae"
msgstr ""
-#: languages/states.php:4830
+#: languages/states.php:4832
msgid "Vaitupu"
msgstr ""
-#: languages/states.php:4833
+#: languages/states.php:4835
msgid "Changhua County"
msgstr ""
-#: languages/states.php:4834
+#: languages/states.php:4836
msgid "Chiayi City"
msgstr ""
-#: languages/states.php:4835
+#: languages/states.php:4837
msgid "Chiayi County"
msgstr ""
-#: languages/states.php:4836
+#: languages/states.php:4838
msgid "Hsinchu"
msgstr ""
-#: languages/states.php:4837
+#: languages/states.php:4839
msgid "Hsinchu County"
msgstr ""
-#: languages/states.php:4838
+#: languages/states.php:4840
msgid "Hualien County"
msgstr ""
-#: languages/states.php:4839
+#: languages/states.php:4841
msgid "Kaohsiung"
msgstr ""
-#: languages/states.php:4840
+#: languages/states.php:4842
msgid "Kaohsiung County"
msgstr ""
-#: languages/states.php:4841
+#: languages/states.php:4843
msgid "Kinmen"
msgstr ""
-#: languages/states.php:4842
+#: languages/states.php:4844
msgid "Lienchiang County"
msgstr ""
-#: languages/states.php:4843
+#: languages/states.php:4845
msgid "Miaoli County"
msgstr ""
-#: languages/states.php:4844
+#: languages/states.php:4846
msgid "Nantou County"
msgstr ""
-#: languages/states.php:4845
+#: languages/states.php:4847
msgid "Penghu County"
msgstr ""
-#: languages/states.php:4846
+#: languages/states.php:4848
msgid "Pingtung County"
msgstr ""
-#: languages/states.php:4847
+#: languages/states.php:4849
msgid "Taichung"
msgstr ""
-#: languages/states.php:4848
+#: languages/states.php:4850
msgid "Taichung County"
msgstr ""
-#: languages/states.php:4849
+#: languages/states.php:4851
msgid "Tainan"
msgstr ""
-#: languages/states.php:4850
+#: languages/states.php:4852
msgid "Tainan County"
msgstr ""
-#: languages/states.php:4851
+#: languages/states.php:4853
msgid "Taipei"
msgstr ""
-#: languages/states.php:4852
+#: languages/states.php:4854
msgid "Taitung County"
msgstr ""
-#: languages/states.php:4853
+#: languages/states.php:4855
msgid "Taoyuan City"
msgstr ""
-#: languages/states.php:4854
+#: languages/states.php:4856
msgid "Yilan County"
msgstr ""
-#: languages/states.php:4855
+#: languages/states.php:4857
msgid "Yunlin County"
msgstr ""
-#: languages/states.php:4858
+#: languages/states.php:4860
msgid "South Pemba Region"
msgstr ""
-#: languages/states.php:4859
+#: languages/states.php:4861
msgid "Zanzibar Central/South Region"
msgstr ""
-#: languages/states.php:4860
+#: languages/states.php:4862
msgid "Lindi Region"
msgstr ""
-#: languages/states.php:4861
+#: languages/states.php:4863
msgid "Mara Region"
msgstr ""
-#: languages/states.php:4862
+#: languages/states.php:4864
msgid "Zanzibar Urban/West Region"
msgstr ""
-#: languages/states.php:4863
+#: languages/states.php:4865
msgid "Morogoro Region"
msgstr ""
-#: languages/states.php:4864
+#: languages/states.php:4866
msgid "Mtwara Region"
msgstr ""
-#: languages/states.php:4865
+#: languages/states.php:4867
msgid "Mwanza Region"
msgstr ""
-#: languages/states.php:4866
+#: languages/states.php:4868
msgid "Pwani Region"
msgstr ""
-#: languages/states.php:4867
+#: languages/states.php:4869
msgid "Rukwa Region"
msgstr ""
-#: languages/states.php:4868
+#: languages/states.php:4870
msgid "Ruvuma Region"
msgstr ""
-#: languages/states.php:4869
+#: languages/states.php:4871
msgid "Shinyanga Region"
msgstr ""
-#: languages/states.php:4870
+#: languages/states.php:4872
msgid "Singida Region"
msgstr ""
-#: languages/states.php:4871
+#: languages/states.php:4873
msgid "Tabora Region"
msgstr ""
-#: languages/states.php:4872
+#: languages/states.php:4874
msgid "Tanga Region"
msgstr ""
-#: languages/states.php:4873
+#: languages/states.php:4875
msgid "Manyara Region"
msgstr ""
-#: languages/states.php:4874
+#: languages/states.php:4876
msgid "Geita Region"
msgstr ""
-#: languages/states.php:4875
+#: languages/states.php:4877
msgid "Katavi Region"
msgstr ""
-#: languages/states.php:4876
+#: languages/states.php:4878
msgid "Njombe Region"
msgstr ""
-#: languages/states.php:4877
+#: languages/states.php:4879
msgid "Simiyu Region"
msgstr ""
-#: languages/states.php:4878
+#: languages/states.php:4880
msgid "Arusha Region"
msgstr ""
-#: languages/states.php:4879
+#: languages/states.php:4881
msgid "Dar es Salaam Region"
msgstr ""
-#: languages/states.php:4880
+#: languages/states.php:4882
msgid "Dodoma Region"
msgstr ""
-#: languages/states.php:4881
+#: languages/states.php:4883
msgid "Iringa Region"
msgstr ""
-#: languages/states.php:4882
+#: languages/states.php:4884
msgid "Kagera Region"
msgstr ""
-#: languages/states.php:4883
+#: languages/states.php:4885
msgid "Kigoma Region"
msgstr ""
-#: languages/states.php:4884
+#: languages/states.php:4886
msgid "Kilimanjaro Region"
msgstr ""
-#: languages/states.php:4885
+#: languages/states.php:4887
msgid "North Pemba Region"
msgstr ""
-#: languages/states.php:4886
+#: languages/states.php:4888
msgid "Zanzibar North Region"
msgstr ""
-#: languages/states.php:4889
+#: languages/states.php:4891
msgid "Dnipropetrovsk Oblast"
msgstr ""
-#: languages/states.php:4890
+#: languages/states.php:4892
msgid "Donetsk Oblast"
msgstr ""
-#: languages/states.php:4891
+#: languages/states.php:4893
msgid "Zhytomyr Oblast"
msgstr ""
-#: languages/states.php:4892
+#: languages/states.php:4894
msgid "Zakarpattia Oblast"
msgstr ""
-#: languages/states.php:4893
+#: languages/states.php:4895
msgid "Zaporizhzhya Oblast"
msgstr ""
-#: languages/states.php:4894
+#: languages/states.php:4896
msgid "Ivano-Frankivsk Oblast"
msgstr ""
-#: languages/states.php:4895
+#: languages/states.php:4897
msgid "Kiev"
msgstr ""
-#: languages/states.php:4896
+#: languages/states.php:4898
msgid "Kyiv Oblast"
msgstr ""
-#: languages/states.php:4897
+#: languages/states.php:4899
msgid "Kirovohrad Oblast"
msgstr ""
-#: languages/states.php:4898
+#: languages/states.php:4900
msgid "Autonomous Republic of Crimea"
msgstr ""
-#: languages/states.php:4899
+#: languages/states.php:4901
msgid "Lviv Oblast"
msgstr ""
-#: languages/states.php:4900
+#: languages/states.php:4902
msgid "Mykolaiv Oblast"
msgstr ""
-#: languages/states.php:4901
+#: languages/states.php:4903
msgid "Odessa Oblast"
msgstr ""
-#: languages/states.php:4902
+#: languages/states.php:4904
msgid "Rivne Oblast"
msgstr ""
-#: languages/states.php:4903
+#: languages/states.php:4905
msgid "Sumy Oblast"
msgstr ""
-#: languages/states.php:4904
+#: languages/states.php:4906
msgid "Ternopil Oblast"
msgstr ""
-#: languages/states.php:4905
+#: languages/states.php:4907
msgid "Kharkiv Oblast"
msgstr ""
-#: languages/states.php:4906
+#: languages/states.php:4908
msgid "Kherson Oblast"
msgstr ""
-#: languages/states.php:4907
+#: languages/states.php:4909
msgid "Khmelnytsky Oblast"
msgstr ""
-#: languages/states.php:4908
+#: languages/states.php:4910
msgid "Cherkasy Oblast"
msgstr ""
-#: languages/states.php:4909
+#: languages/states.php:4911
msgid "Chernihiv Oblast"
msgstr ""
-#: languages/states.php:4910
+#: languages/states.php:4912
msgid "Chernivtsi Oblast"
msgstr ""
-#: languages/states.php:4911
+#: languages/states.php:4913
msgid "Luhansk Oblast"
msgstr ""
-#: languages/states.php:4912
+#: languages/states.php:4914
msgid "Vinnytsia Oblast"
msgstr ""
-#: languages/states.php:4913
+#: languages/states.php:4915
msgid "Volyn Oblast"
msgstr ""
-#: languages/states.php:4916
+#: languages/states.php:4918
msgid "Kalangala District"
msgstr ""
-#: languages/states.php:4917
+#: languages/states.php:4919
msgid "Kampala District"
msgstr ""
-#: languages/states.php:4918
+#: languages/states.php:4920
msgid "Kiboga District"
msgstr ""
-#: languages/states.php:4919
+#: languages/states.php:4921
msgid "Luwero District"
msgstr ""
-#: languages/states.php:4920
+#: languages/states.php:4922
msgid "Masaka District"
msgstr ""
-#: languages/states.php:4921
+#: languages/states.php:4923
msgid "Mpigi District"
msgstr ""
-#: languages/states.php:4922
+#: languages/states.php:4924
msgid "Mubende District"
msgstr ""
-#: languages/states.php:4923
+#: languages/states.php:4925
msgid "Mukono District"
msgstr ""
-#: languages/states.php:4924
+#: languages/states.php:4926
msgid "Nakasongola District"
msgstr ""
-#: languages/states.php:4925
+#: languages/states.php:4927
msgid "Rakai District"
msgstr ""
-#: languages/states.php:4926
+#: languages/states.php:4928
msgid "Sembabule District"
msgstr ""
-#: languages/states.php:4927
+#: languages/states.php:4929
msgid "Kayunga District"
msgstr ""
-#: languages/states.php:4928
+#: languages/states.php:4930
msgid "Wakiso District"
msgstr ""
-#: languages/states.php:4929
+#: languages/states.php:4931
msgid "Lyantonde District"
msgstr ""
-#: languages/states.php:4930
+#: languages/states.php:4932
msgid "Mityana District"
msgstr ""
-#: languages/states.php:4931
+#: languages/states.php:4933
msgid "Nakaseke District"
msgstr ""
-#: languages/states.php:4932
+#: languages/states.php:4934
msgid "Buikwe District"
msgstr ""
-#: languages/states.php:4933
+#: languages/states.php:4935
msgid "Bukomansimbi District"
msgstr ""
-#: languages/states.php:4934
+#: languages/states.php:4936
msgid "Butambala District"
msgstr ""
-#: languages/states.php:4935
+#: languages/states.php:4937
msgid "Buvuma District"
msgstr ""
-#: languages/states.php:4936
+#: languages/states.php:4938
msgid "Gomba District"
msgstr ""
-#: languages/states.php:4937
+#: languages/states.php:4939
msgid "Kalungu District"
msgstr ""
-#: languages/states.php:4938
+#: languages/states.php:4940
msgid "Kyankwanzi District"
msgstr ""
-#: languages/states.php:4939
+#: languages/states.php:4941
msgid "Lwengo District"
msgstr ""
-#: languages/states.php:4940
+#: languages/states.php:4942
msgid "Kyotera District"
msgstr ""
-#: languages/states.php:4941
+#: languages/states.php:4943
msgid "Bugiri District"
msgstr ""
-#: languages/states.php:4942
+#: languages/states.php:4944
msgid "Busia District"
msgstr ""
-#: languages/states.php:4943
+#: languages/states.php:4945
msgid "Iganga District"
msgstr ""
-#: languages/states.php:4944
+#: languages/states.php:4946
msgid "Jinja District"
msgstr ""
-#: languages/states.php:4945
+#: languages/states.php:4947
msgid "Kamuli District"
msgstr ""
-#: languages/states.php:4946
+#: languages/states.php:4948
msgid "Kapchorwa District"
msgstr ""
-#: languages/states.php:4947
+#: languages/states.php:4949
msgid "Katakwi District"
msgstr ""
-#: languages/states.php:4948
+#: languages/states.php:4950
msgid "Kumi District"
msgstr ""
-#: languages/states.php:4949
+#: languages/states.php:4951
msgid "Mbale District"
msgstr ""
-#: languages/states.php:4950
+#: languages/states.php:4952
msgid "Pallisa District"
msgstr ""
-#: languages/states.php:4951
+#: languages/states.php:4953
msgid "Soroti District"
msgstr ""
-#: languages/states.php:4952
+#: languages/states.php:4954
msgid "Tororo District"
msgstr ""
-#: languages/states.php:4953
+#: languages/states.php:4955
msgid "Kaberamaido District"
msgstr ""
-#: languages/states.php:4954
+#: languages/states.php:4956
msgid "Mayuge District"
msgstr ""
-#: languages/states.php:4955
+#: languages/states.php:4957
msgid "Sironko District"
msgstr ""
-#: languages/states.php:4956
+#: languages/states.php:4958
msgid "Amuria District"
msgstr ""
-#: languages/states.php:4957
+#: languages/states.php:4959
msgid "Budaka District"
msgstr ""
-#: languages/states.php:4958
+#: languages/states.php:4960
msgid "Bududa District"
msgstr ""
-#: languages/states.php:4959
+#: languages/states.php:4961
msgid "Bukedea District"
msgstr ""
-#: languages/states.php:4960
+#: languages/states.php:4962
msgid "Bukwo District"
msgstr ""
-#: languages/states.php:4961
+#: languages/states.php:4963
msgid "Butaleja District"
msgstr ""
-#: languages/states.php:4962
+#: languages/states.php:4964
msgid "Kaliro District"
msgstr ""
-#: languages/states.php:4963
+#: languages/states.php:4965
msgid "Manafwa District"
msgstr ""
-#: languages/states.php:4964
+#: languages/states.php:4966
msgid "Namutumba District"
msgstr ""
-#: languages/states.php:4965
+#: languages/states.php:4967
msgid "Bulambuli District"
msgstr ""
-#: languages/states.php:4966
+#: languages/states.php:4968
msgid "Buyende District"
msgstr ""
-#: languages/states.php:4967
+#: languages/states.php:4969
msgid "Kibuku District"
msgstr ""
-#: languages/states.php:4968
+#: languages/states.php:4970
msgid "Kween District"
msgstr ""
-#: languages/states.php:4969
+#: languages/states.php:4971
msgid "Luuka District"
msgstr ""
-#: languages/states.php:4970
+#: languages/states.php:4972
msgid "Namayingo District"
msgstr ""
-#: languages/states.php:4971
+#: languages/states.php:4973
msgid "Ngora District"
msgstr ""
-#: languages/states.php:4972
+#: languages/states.php:4974
msgid "Serere District"
msgstr ""
-#: languages/states.php:4973
+#: languages/states.php:4975
msgid "Butebo District"
msgstr ""
-#: languages/states.php:4974
+#: languages/states.php:4976
msgid "Namisindwa District"
msgstr ""
-#: languages/states.php:4975
+#: languages/states.php:4977
msgid "Adjumani District"
msgstr ""
-#: languages/states.php:4976
+#: languages/states.php:4978
msgid "Apac District"
msgstr ""
-#: languages/states.php:4977
+#: languages/states.php:4979
msgid "Arua District"
msgstr ""
-#: languages/states.php:4978
+#: languages/states.php:4980
msgid "Gulu District"
msgstr ""
-#: languages/states.php:4979
+#: languages/states.php:4981
msgid "Kitgum District"
msgstr ""
-#: languages/states.php:4980
+#: languages/states.php:4982
msgid "Kotido District"
msgstr ""
-#: languages/states.php:4981
+#: languages/states.php:4983
msgid "Lira District"
msgstr ""
-#: languages/states.php:4982
+#: languages/states.php:4984
msgid "Moroto District"
msgstr ""
-#: languages/states.php:4983
+#: languages/states.php:4985
msgid "Moyo District"
msgstr ""
-#: languages/states.php:4984
+#: languages/states.php:4986
msgid "Nebbi District"
msgstr ""
-#: languages/states.php:4985
+#: languages/states.php:4987
msgid "Nakapiripirit District"
msgstr ""
-#: languages/states.php:4986
+#: languages/states.php:4988
msgid "Pader District"
msgstr ""
-#: languages/states.php:4987
+#: languages/states.php:4989
msgid "Yumbe District"
msgstr ""
-#: languages/states.php:4988
+#: languages/states.php:4990
msgid "Abim District"
msgstr ""
-#: languages/states.php:4989
+#: languages/states.php:4991
msgid "Amolatar District"
msgstr ""
-#: languages/states.php:4990
+#: languages/states.php:4992
msgid "Amuru District"
msgstr ""
-#: languages/states.php:4991
+#: languages/states.php:4993
msgid "Dokolo District"
msgstr ""
-#: languages/states.php:4992
+#: languages/states.php:4994
msgid "Kaabong District"
msgstr ""
-#: languages/states.php:4993
+#: languages/states.php:4995
msgid "Koboko District"
msgstr ""
-#: languages/states.php:4994
+#: languages/states.php:4996
msgid "Maracha District"
msgstr ""
-#: languages/states.php:4995
+#: languages/states.php:4997
msgid "Oyam District"
msgstr ""
-#: languages/states.php:4996
+#: languages/states.php:4998
msgid "Agago District"
msgstr ""
-#: languages/states.php:4997
+#: languages/states.php:4999
msgid "Alebtong District"
msgstr ""
-#: languages/states.php:4998
+#: languages/states.php:5000
msgid "Amudat District"
msgstr ""
-#: languages/states.php:4999
+#: languages/states.php:5001
msgid "Kole District"
msgstr ""
-#: languages/states.php:5000
+#: languages/states.php:5002
msgid "Lamwo District"
msgstr ""
-#: languages/states.php:5001
+#: languages/states.php:5003
msgid "Napak District"
msgstr ""
-#: languages/states.php:5002
+#: languages/states.php:5004
msgid "Nwoya District"
msgstr ""
-#: languages/states.php:5003
+#: languages/states.php:5005
msgid "Otuke District"
msgstr ""
-#: languages/states.php:5004
+#: languages/states.php:5006
msgid "Zombo District"
msgstr ""
-#: languages/states.php:5005
+#: languages/states.php:5007
msgid "Omoro District"
msgstr ""
-#: languages/states.php:5006
+#: languages/states.php:5008
msgid "Pakwach District"
msgstr ""
-#: languages/states.php:5007
+#: languages/states.php:5009
msgid "Bundibugyo District"
msgstr ""
-#: languages/states.php:5008
+#: languages/states.php:5010
msgid "Bushenyi District"
msgstr ""
-#: languages/states.php:5009
+#: languages/states.php:5011
msgid "Kabale District"
msgstr ""
-#: languages/states.php:5010
+#: languages/states.php:5012
msgid "Kabarole District"
msgstr ""
-#: languages/states.php:5011
+#: languages/states.php:5013
msgid "Kasese District"
msgstr ""
-#: languages/states.php:5012
+#: languages/states.php:5014
msgid "Kibaale District"
msgstr ""
-#: languages/states.php:5013
+#: languages/states.php:5015
msgid "Kisoro District"
msgstr ""
-#: languages/states.php:5014
+#: languages/states.php:5016
msgid "Masindi District"
msgstr ""
-#: languages/states.php:5015
+#: languages/states.php:5017
msgid "Mbarara District"
msgstr ""
-#: languages/states.php:5016
+#: languages/states.php:5018
msgid "Ntungamo District"
msgstr ""
-#: languages/states.php:5017
+#: languages/states.php:5019
msgid "Rukungiri District"
msgstr ""
-#: languages/states.php:5018
+#: languages/states.php:5020
msgid "Kamwenge District"
msgstr ""
-#: languages/states.php:5019
+#: languages/states.php:5021
msgid "Kanungu District"
msgstr ""
-#: languages/states.php:5020
+#: languages/states.php:5022
msgid "Kyenjojo District"
msgstr ""
-#: languages/states.php:5021
+#: languages/states.php:5023
msgid "Buliisa District"
msgstr ""
-#: languages/states.php:5022
+#: languages/states.php:5024
msgid "Ibanda District"
msgstr ""
-#: languages/states.php:5023
+#: languages/states.php:5025
msgid "Isingiro District"
msgstr ""
-#: languages/states.php:5024
+#: languages/states.php:5026
msgid "Kiruhura District"
msgstr ""
-#: languages/states.php:5025
+#: languages/states.php:5027
msgid "Buhweju District"
msgstr ""
-#: languages/states.php:5026
+#: languages/states.php:5028
msgid "Kiryandongo District"
msgstr ""
-#: languages/states.php:5027
+#: languages/states.php:5029
msgid "Kyegegwa District"
msgstr ""
-#: languages/states.php:5028
+#: languages/states.php:5030
msgid "Mitooma District"
msgstr ""
-#: languages/states.php:5029
+#: languages/states.php:5031
msgid "Ntoroko District"
msgstr ""
-#: languages/states.php:5030
+#: languages/states.php:5032
msgid "Rubirizi District"
msgstr ""
-#: languages/states.php:5031
+#: languages/states.php:5033
msgid "Sheema District"
msgstr ""
-#: languages/states.php:5032
+#: languages/states.php:5034
msgid "Kagadi District"
msgstr ""
-#: languages/states.php:5033
+#: languages/states.php:5035
msgid "Kakumiro District"
msgstr ""
-#: languages/states.php:5034
+#: languages/states.php:5036
msgid "Rubanda District"
msgstr ""
-#: languages/states.php:5035
+#: languages/states.php:5037
msgid "Bunyangabu District"
msgstr ""
-#: languages/states.php:5036
+#: languages/states.php:5038
msgid "Rukiga District"
msgstr ""
-#: languages/states.php:5044
+#: languages/states.php:5046
msgid "Alabama"
msgstr ""
-#: languages/states.php:5045
+#: languages/states.php:5047
msgid "Alaska"
msgstr ""
-#: languages/states.php:5047
+#: languages/states.php:5049
msgid "Arizona"
msgstr ""
-#: languages/states.php:5048
+#: languages/states.php:5050
msgid "Arkansas"
msgstr ""
-#: languages/states.php:5049
+#: languages/states.php:5051
msgid "California"
msgstr ""
-#: languages/states.php:5050
+#: languages/states.php:5052
msgid "Colorado"
msgstr ""
-#: languages/states.php:5051
+#: languages/states.php:5053
msgid "Connecticut"
msgstr ""
-#: languages/states.php:5052
+#: languages/states.php:5054
msgid "Delaware"
msgstr ""
-#: languages/states.php:5053
+#: languages/states.php:5055
msgid "District of Columbia"
msgstr ""
-#: languages/states.php:5054
+#: languages/states.php:5056
msgid "Florida"
msgstr ""
-#: languages/states.php:5057
+#: languages/states.php:5059
msgid "Hawaii"
msgstr ""
-#: languages/states.php:5058
+#: languages/states.php:5060
msgid "Idaho"
msgstr ""
-#: languages/states.php:5059
+#: languages/states.php:5061
msgid "Illinois"
msgstr ""
-#: languages/states.php:5060
+#: languages/states.php:5062
msgid "Indiana"
msgstr ""
-#: languages/states.php:5061
+#: languages/states.php:5063
msgid "Iowa"
msgstr ""
-#: languages/states.php:5062
+#: languages/states.php:5064
msgid "Kansas"
msgstr ""
-#: languages/states.php:5063
+#: languages/states.php:5065
msgid "Kentucky"
msgstr ""
-#: languages/states.php:5064
+#: languages/states.php:5066
msgid "Louisiana"
msgstr ""
-#: languages/states.php:5065
+#: languages/states.php:5067
msgid "Maine"
msgstr ""
-#: languages/states.php:5066
+#: languages/states.php:5068
msgid "Maryland"
msgstr ""
-#: languages/states.php:5067
+#: languages/states.php:5069
msgid "Massachusetts"
msgstr ""
-#: languages/states.php:5068
+#: languages/states.php:5070
msgid "Michigan"
msgstr ""
-#: languages/states.php:5069
+#: languages/states.php:5071
msgid "Minnesota"
msgstr ""
-#: languages/states.php:5070
+#: languages/states.php:5072
msgid "Mississippi"
msgstr ""
-#: languages/states.php:5071
+#: languages/states.php:5073
msgid "Missouri"
msgstr ""
-#: languages/states.php:5072
+#: languages/states.php:5074
msgid "Montana"
msgstr ""
-#: languages/states.php:5073
+#: languages/states.php:5075
msgid "Nebraska"
msgstr ""
-#: languages/states.php:5074
+#: languages/states.php:5076
msgid "Nevada"
msgstr ""
-#: languages/states.php:5075
+#: languages/states.php:5077
msgid "New Hampshire"
msgstr ""
-#: languages/states.php:5076
+#: languages/states.php:5078
msgid "New Jersey"
msgstr ""
-#: languages/states.php:5077
+#: languages/states.php:5079
msgid "New Mexico"
msgstr ""
-#: languages/states.php:5078
+#: languages/states.php:5080
msgid "New York"
msgstr ""
-#: languages/states.php:5079
+#: languages/states.php:5081
msgid "North Carolina"
msgstr ""
-#: languages/states.php:5080
+#: languages/states.php:5082
msgid "North Dakota"
msgstr ""
-#: languages/states.php:5082
+#: languages/states.php:5084
msgid "Ohio"
msgstr ""
-#: languages/states.php:5083
+#: languages/states.php:5085
msgid "Oklahoma"
msgstr ""
-#: languages/states.php:5084
+#: languages/states.php:5086
msgid "Oregon"
msgstr ""
-#: languages/states.php:5085
+#: languages/states.php:5087
msgid "Pennsylvania"
msgstr ""
-#: languages/states.php:5087
+#: languages/states.php:5089
msgid "Rhode Island"
msgstr ""
-#: languages/states.php:5088
+#: languages/states.php:5090
msgid "South Carolina"
msgstr ""
-#: languages/states.php:5089
+#: languages/states.php:5091
msgid "South Dakota"
msgstr ""
-#: languages/states.php:5090
+#: languages/states.php:5092
msgid "Tennessee"
msgstr ""
-#: languages/states.php:5091
+#: languages/states.php:5093
msgid "Texas"
msgstr ""
-#: languages/states.php:5093
+#: languages/states.php:5095
msgid "United States Virgin Islands"
msgstr ""
-#: languages/states.php:5094
+#: languages/states.php:5096
msgid "Utah"
msgstr ""
-#: languages/states.php:5095
+#: languages/states.php:5097
msgid "Vermont"
msgstr ""
-#: languages/states.php:5096
+#: languages/states.php:5098
msgid "Virginia"
msgstr ""
-#: languages/states.php:5097
+#: languages/states.php:5099
msgid "Washington"
msgstr ""
-#: languages/states.php:5098
+#: languages/states.php:5100
msgid "West Virginia"
msgstr ""
-#: languages/states.php:5099
+#: languages/states.php:5101
msgid "Wisconsin"
msgstr ""
-#: languages/states.php:5100
+#: languages/states.php:5102
msgid "Wyoming"
msgstr ""
-#: languages/states.php:5103
+#: languages/states.php:5105
msgid "Artigas Department"
msgstr ""
-#: languages/states.php:5104
+#: languages/states.php:5106
msgid "Canelones Department"
msgstr ""
-#: languages/states.php:5105
+#: languages/states.php:5107
msgid "Cerro Largo Department"
msgstr ""
-#: languages/states.php:5106
+#: languages/states.php:5108
msgid "Colonia Department"
msgstr ""
-#: languages/states.php:5107
+#: languages/states.php:5109
msgid "Durazno Department"
msgstr ""
-#: languages/states.php:5108
+#: languages/states.php:5110
msgid "Flores Department"
msgstr ""
-#: languages/states.php:5109
+#: languages/states.php:5111
msgid "Florida Department"
msgstr ""
-#: languages/states.php:5110
+#: languages/states.php:5112
msgid "Lavalleja Department"
msgstr ""
-#: languages/states.php:5111
+#: languages/states.php:5113
msgid "Maldonado Department"
msgstr ""
-#: languages/states.php:5112
+#: languages/states.php:5114
msgid "Montevideo Department"
msgstr ""
-#: languages/states.php:5113
+#: languages/states.php:5115
msgid "Paysandú Department"
msgstr ""
-#: languages/states.php:5114
+#: languages/states.php:5116
msgid "Rivera Department"
msgstr ""
-#: languages/states.php:5115
+#: languages/states.php:5117
msgid "Rocha Department"
msgstr ""
-#: languages/states.php:5116
+#: languages/states.php:5118
msgid "Río Negro Department"
msgstr ""
-#: languages/states.php:5117
+#: languages/states.php:5119
msgid "Salto Department"
msgstr ""
-#: languages/states.php:5118
+#: languages/states.php:5120
msgid "San José Department"
msgstr ""
-#: languages/states.php:5119
+#: languages/states.php:5121
msgid "Soriano Department"
msgstr ""
-#: languages/states.php:5120
+#: languages/states.php:5122
msgid "Tacuarembó Department"
msgstr ""
-#: languages/states.php:5121
+#: languages/states.php:5123
msgid "Treinta y Tres Department"
msgstr ""
-#: languages/states.php:5124
+#: languages/states.php:5126
msgid "Andijan Region"
msgstr ""
-#: languages/states.php:5125
+#: languages/states.php:5127
msgid "Bukhara Region"
msgstr ""
-#: languages/states.php:5126
+#: languages/states.php:5128
msgid "Fergana Region"
msgstr ""
-#: languages/states.php:5127
+#: languages/states.php:5129
msgid "Jizzakh Region"
msgstr ""
-#: languages/states.php:5128
+#: languages/states.php:5130
msgid "Karakalpakstan"
msgstr ""
-#: languages/states.php:5129
+#: languages/states.php:5131
msgid "Namangan Region"
msgstr ""
-#: languages/states.php:5130
+#: languages/states.php:5132
msgid "Navoiy Region"
msgstr ""
-#: languages/states.php:5131
+#: languages/states.php:5133
msgid "Qashqadaryo Region"
msgstr ""
-#: languages/states.php:5132
+#: languages/states.php:5134
msgid "Samarqand Region"
msgstr ""
-#: languages/states.php:5133
+#: languages/states.php:5135
msgid "Sirdaryo Region"
msgstr ""
-#: languages/states.php:5134
+#: languages/states.php:5136
msgid "Surxondaryo Region"
msgstr ""
-#: languages/states.php:5135
+#: languages/states.php:5137
msgid "Tashkent"
msgstr ""
-#: languages/states.php:5136
+#: languages/states.php:5138
msgid "Tashkent Region"
msgstr ""
-#: languages/states.php:5137
+#: languages/states.php:5139
msgid "Xorazm Region"
msgstr ""
-#: languages/states.php:5141
+#: languages/states.php:5143
msgid "Charlotte Parish"
msgstr ""
-#: languages/states.php:5142
+#: languages/states.php:5144
msgid "Grenadines Parish"
msgstr ""
-#: languages/states.php:5150
+#: languages/states.php:5152
msgid "Anzoátegui"
msgstr ""
-#: languages/states.php:5151
+#: languages/states.php:5153
msgid "Apure"
msgstr ""
-#: languages/states.php:5152
+#: languages/states.php:5154
msgid "Aragua"
msgstr ""
-#: languages/states.php:5153
+#: languages/states.php:5155
msgid "Barinas"
msgstr ""
-#: languages/states.php:5154
+#: languages/states.php:5156
msgid "Bolívar"
msgstr ""
-#: languages/states.php:5155
+#: languages/states.php:5157
msgid "Capital District"
msgstr ""
-#: languages/states.php:5156
+#: languages/states.php:5158
msgid "Carabobo"
msgstr ""
-#: languages/states.php:5157
+#: languages/states.php:5159
msgid "Cojedes"
msgstr ""
-#: languages/states.php:5158
+#: languages/states.php:5160
msgid "Delta Amacuro"
msgstr ""
-#: languages/states.php:5159
+#: languages/states.php:5161
msgid "Falcón"
msgstr ""
-#: languages/states.php:5160
+#: languages/states.php:5162
msgid "Federal Dependencies of Venezuela"
msgstr ""
-#: languages/states.php:5161
+#: languages/states.php:5163
msgid "Guárico"
msgstr ""
-#: languages/states.php:5162
+#: languages/states.php:5164
msgid "Lara"
msgstr ""
-#: languages/states.php:5163
+#: languages/states.php:5165
msgid "Miranda"
msgstr ""
-#: languages/states.php:5164
+#: languages/states.php:5166
msgid "Monagas"
msgstr ""
-#: languages/states.php:5165
+#: languages/states.php:5167
msgid "Mérida"
msgstr ""
-#: languages/states.php:5166
+#: languages/states.php:5168
msgid "Nueva Esparta"
msgstr ""
-#: languages/states.php:5167
+#: languages/states.php:5169
msgid "Portuguesa"
msgstr ""
-#: languages/states.php:5168
+#: languages/states.php:5170
msgid "Sucre"
msgstr ""
-#: languages/states.php:5169
+#: languages/states.php:5171
msgid "Trujillo"
msgstr ""
-#: languages/states.php:5170
+#: languages/states.php:5172
msgid "Táchira"
msgstr ""
-#: languages/states.php:5171
+#: languages/states.php:5173
msgid "Vargas"
msgstr ""
-#: languages/states.php:5172
+#: languages/states.php:5174
msgid "Yaracuy"
msgstr ""
-#: languages/states.php:5173
+#: languages/states.php:5175
msgid "Zulia"
msgstr ""
-#: languages/states.php:5178
+#: languages/states.php:5180
msgid "Quảng Ninh"
msgstr ""
-#: languages/states.php:5179
+#: languages/states.php:5181
msgid "Hòa Bình"
msgstr ""
-#: languages/states.php:5180
+#: languages/states.php:5182
msgid "Hà Tây"
msgstr ""
-#: languages/states.php:5181
+#: languages/states.php:5183
msgid "Ninh Bình"
msgstr ""
-#: languages/states.php:5182
+#: languages/states.php:5184
msgid "Thái Bình"
msgstr ""
-#: languages/states.php:5183
+#: languages/states.php:5185
msgid "Thanh Hóa"
msgstr ""
-#: languages/states.php:5184
+#: languages/states.php:5186
msgid "Nghệ An"
msgstr ""
-#: languages/states.php:5185
+#: languages/states.php:5187
msgid "Hà Tĩnh"
msgstr ""
-#: languages/states.php:5186
+#: languages/states.php:5188
msgid "Quảng Bình"
msgstr ""
-#: languages/states.php:5187
+#: languages/states.php:5189
msgid "Quảng Trị"
msgstr ""
-#: languages/states.php:5188
+#: languages/states.php:5190
msgid "Thừa Thiên-Huế"
msgstr ""
-#: languages/states.php:5189
+#: languages/states.php:5191
msgid "Quảng Nam"
msgstr ""
-#: languages/states.php:5190
+#: languages/states.php:5192
msgid "Kon Tum"
msgstr ""
-#: languages/states.php:5191
+#: languages/states.php:5193
msgid "Quảng Ngãi"
msgstr ""
-#: languages/states.php:5192
+#: languages/states.php:5194
msgid "Gia Lai"
msgstr ""
-#: languages/states.php:5193
+#: languages/states.php:5195
msgid "Bình Định"
msgstr ""
-#: languages/states.php:5194
+#: languages/states.php:5196
msgid "Phú Yên"
msgstr ""
-#: languages/states.php:5195
+#: languages/states.php:5197
msgid "Đắk Lắk"
msgstr ""
-#: languages/states.php:5196
+#: languages/states.php:5198
msgid "Khánh Hòa"
msgstr ""
-#: languages/states.php:5197
+#: languages/states.php:5199
msgid "Lâm Đồng"
msgstr ""
-#: languages/states.php:5198
+#: languages/states.php:5200
msgid "Ninh Thuận"
msgstr ""
-#: languages/states.php:5199
+#: languages/states.php:5201
msgid "Tây Ninh"
msgstr ""
-#: languages/states.php:5200
+#: languages/states.php:5202
msgid "Đồng Nai"
msgstr ""
-#: languages/states.php:5201
+#: languages/states.php:5203
msgid "Bình Thuận"
msgstr ""
-#: languages/states.php:5202
+#: languages/states.php:5204
msgid "Long An"
msgstr ""
-#: languages/states.php:5203
+#: languages/states.php:5205
msgid "Bà Rịa-Vũng Tàu"
msgstr ""
-#: languages/states.php:5204
+#: languages/states.php:5206
msgid "An Giang"
msgstr ""
-#: languages/states.php:5205
+#: languages/states.php:5207
msgid "Đồng Tháp"
msgstr ""
-#: languages/states.php:5206
+#: languages/states.php:5208
msgid "Tiền Giang"
msgstr ""
-#: languages/states.php:5207
+#: languages/states.php:5209
msgid "Kiên Giang"
msgstr ""
-#: languages/states.php:5208
+#: languages/states.php:5210
msgid "Vĩnh Long"
msgstr ""
-#: languages/states.php:5209
+#: languages/states.php:5211
msgid "Bến Tre"
msgstr ""
-#: languages/states.php:5210
+#: languages/states.php:5212
msgid "Trà Vinh"
msgstr ""
-#: languages/states.php:5211
+#: languages/states.php:5213
msgid "Sóc Trăng"
msgstr ""
-#: languages/states.php:5212
+#: languages/states.php:5214
msgid "Bắc Kạn"
msgstr ""
-#: languages/states.php:5213
+#: languages/states.php:5215
msgid "Bắc Giang"
msgstr ""
-#: languages/states.php:5214
+#: languages/states.php:5216
msgid "Bạc Liêu"
msgstr ""
-#: languages/states.php:5215
+#: languages/states.php:5217
msgid "Bắc Ninh"
msgstr ""
-#: languages/states.php:5216
+#: languages/states.php:5218
msgid "Bình Dương"
msgstr ""
-#: languages/states.php:5217
+#: languages/states.php:5219
msgid "Bình Phước"
msgstr ""
-#: languages/states.php:5218
+#: languages/states.php:5220
msgid "Cà Mau"
msgstr ""
-#: languages/states.php:5219
+#: languages/states.php:5221
msgid "Hải Dương"
msgstr ""
-#: languages/states.php:5220
+#: languages/states.php:5222
msgid "Hà Nam"
msgstr ""
-#: languages/states.php:5221
+#: languages/states.php:5223
msgid "Hưng Yên"
msgstr ""
-#: languages/states.php:5222
+#: languages/states.php:5224
msgid "Nam Định"
msgstr ""
-#: languages/states.php:5223
+#: languages/states.php:5225
msgid "Phú Thọ"
msgstr ""
-#: languages/states.php:5224
+#: languages/states.php:5226
msgid "Thái Nguyên"
msgstr ""
-#: languages/states.php:5225
+#: languages/states.php:5227
msgid "Vĩnh Phúc"
msgstr ""
-#: languages/states.php:5226
+#: languages/states.php:5228
msgid "Điện Biên"
msgstr ""
-#: languages/states.php:5227
+#: languages/states.php:5229
msgid "Đắk Nông"
msgstr ""
-#: languages/states.php:5228
+#: languages/states.php:5230
msgid "Hậu Giang"
msgstr ""
-#: languages/states.php:5229
+#: languages/states.php:5231
msgid "Cao Bằng"
msgstr ""
-#: languages/states.php:5230
+#: languages/states.php:5232
msgid "Da Nang"
msgstr ""
-#: languages/states.php:5231
+#: languages/states.php:5233
msgid "Haiphong"
msgstr ""
-#: languages/states.php:5232
+#: languages/states.php:5234
msgid "Hanoi"
msgstr ""
-#: languages/states.php:5233
+#: languages/states.php:5235
msgid "Ho Chi Minh City"
msgstr ""
-#: languages/states.php:5234
+#: languages/states.php:5236
msgid "Hà Giang"
msgstr ""
-#: languages/states.php:5235
+#: languages/states.php:5237
msgid "Lai Châu"
msgstr ""
-#: languages/states.php:5236
+#: languages/states.php:5238
msgid "Lào Cai"
msgstr ""
-#: languages/states.php:5237
+#: languages/states.php:5239
msgid "Lạng Sơn"
msgstr ""
-#: languages/states.php:5238
+#: languages/states.php:5240
msgid "Sơn La"
msgstr ""
-#: languages/states.php:5239
+#: languages/states.php:5241
msgid "Tuyên Quang"
msgstr ""
-#: languages/states.php:5240
+#: languages/states.php:5242
msgid "Yên Bái"
msgstr ""
-#: languages/states.php:5243
+#: languages/states.php:5245
msgid "Malampa"
msgstr ""
-#: languages/states.php:5244
+#: languages/states.php:5246
msgid "Penama"
msgstr ""
-#: languages/states.php:5245
+#: languages/states.php:5247
msgid "Sanma"
msgstr ""
-#: languages/states.php:5246
+#: languages/states.php:5248
msgid "Shefa"
msgstr ""
-#: languages/states.php:5247
+#: languages/states.php:5249
msgid "Tafea"
msgstr ""
-#: languages/states.php:5248
+#: languages/states.php:5250
msgid "Torba"
msgstr ""
-#: languages/states.php:5252
+#: languages/states.php:5254
msgid "A'ana"
msgstr ""
-#: languages/states.php:5253
+#: languages/states.php:5255
msgid "Aiga-i-le-Tai"
msgstr ""
-#: languages/states.php:5254
+#: languages/states.php:5256
msgid "Atua"
msgstr ""
-#: languages/states.php:5255
+#: languages/states.php:5257
msgid "Fa'asaleleaga"
msgstr ""
-#: languages/states.php:5256
+#: languages/states.php:5258
msgid "Gaga'emauga"
msgstr ""
-#: languages/states.php:5257
+#: languages/states.php:5259
msgid "Gaga'ifomauga"
msgstr ""
-#: languages/states.php:5258
+#: languages/states.php:5260
msgid "Palauli"
msgstr ""
-#: languages/states.php:5259
+#: languages/states.php:5261
msgid "Satupa'itea"
msgstr ""
-#: languages/states.php:5260
+#: languages/states.php:5262
msgid "Tuamasaga"
msgstr ""
-#: languages/states.php:5261
+#: languages/states.php:5263
msgid "Va'a-o-Fonoti"
msgstr ""
-#: languages/states.php:5262
+#: languages/states.php:5264
msgid "Vaisigano"
msgstr ""
-#: languages/states.php:5265
+#: languages/states.php:5267
msgid "Gjilan District"
msgstr ""
-#: languages/states.php:5266
+#: languages/states.php:5268
msgid "Kosovska Mitrovica District"
msgstr ""
-#: languages/states.php:5267
+#: languages/states.php:5269
msgid "Peć District"
msgstr ""
-#: languages/states.php:5268
+#: languages/states.php:5270
msgid "Pristina (Priştine)"
msgstr ""
-#: languages/states.php:5269
+#: languages/states.php:5271
msgid "Prizren District"
msgstr ""
-#: languages/states.php:5270
+#: languages/states.php:5272
msgid "Uroševac District (Ferizaj)"
msgstr ""
-#: languages/states.php:5271
+#: languages/states.php:5273
msgid "Đakovica District (Gjakove)"
msgstr ""
-#: languages/states.php:5274
+#: languages/states.php:5276
msgid "'Adan Governorate"
msgstr ""
-#: languages/states.php:5275
+#: languages/states.php:5277
msgid "'Amran Governorate"
msgstr ""
-#: languages/states.php:5276
+#: languages/states.php:5278
msgid "Abyan Governorate"
msgstr ""
-#: languages/states.php:5277
+#: languages/states.php:5279
msgid "Al Bayda' Governorate"
msgstr ""
-#: languages/states.php:5278
+#: languages/states.php:5280
msgid "Al Hudaydah Governorate"
msgstr ""
-#: languages/states.php:5279
+#: languages/states.php:5281
msgid "Al Jawf Governorate"
msgstr ""
-#: languages/states.php:5280
+#: languages/states.php:5282
msgid "Al Mahrah Governorate"
msgstr ""
-#: languages/states.php:5281
+#: languages/states.php:5283
msgid "Al Mahwit Governorate"
msgstr ""
-#: languages/states.php:5282
+#: languages/states.php:5284
msgid "Dhamar Governorate"
msgstr ""
-#: languages/states.php:5283
+#: languages/states.php:5285
msgid "Hadhramaut Governorate"
msgstr ""
-#: languages/states.php:5284
+#: languages/states.php:5286
msgid "Hajjah Governorate"
msgstr ""
-#: languages/states.php:5285
+#: languages/states.php:5287
msgid "Ibb Governorate"
msgstr ""
-#: languages/states.php:5286
+#: languages/states.php:5288
msgid "Lahij Governorate"
msgstr ""
-#: languages/states.php:5287
+#: languages/states.php:5289
msgid "Ma'rib Governorate"
msgstr ""
-#: languages/states.php:5288
+#: languages/states.php:5290
msgid "Raymah Governorate"
msgstr ""
-#: languages/states.php:5289
+#: languages/states.php:5291
msgid "Saada Governorate"
msgstr ""
-#: languages/states.php:5290
+#: languages/states.php:5292
msgid "Sana'a"
msgstr ""
-#: languages/states.php:5291
+#: languages/states.php:5293
msgid "Sana'a Governorate"
msgstr ""
-#: languages/states.php:5292
+#: languages/states.php:5294
msgid "Shabwah Governorate"
msgstr ""
-#: languages/states.php:5293
+#: languages/states.php:5295
msgid "Socotra Governorate"
msgstr ""
-#: languages/states.php:5294
+#: languages/states.php:5296
msgid "Ta'izz Governorate"
msgstr ""
-#: languages/states.php:5298
+#: languages/states.php:5300
msgid "Eastern Cape"
msgstr ""
-#: languages/states.php:5299
+#: languages/states.php:5301
msgid "Free State"
msgstr ""
-#: languages/states.php:5300
+#: languages/states.php:5302
msgid "Gauteng"
msgstr ""
-#: languages/states.php:5301
+#: languages/states.php:5303
msgid "KwaZulu-Natal"
msgstr ""
-#: languages/states.php:5302
+#: languages/states.php:5304
msgid "Limpopo"
msgstr ""
-#: languages/states.php:5303
+#: languages/states.php:5305
msgid "Mpumalanga"
msgstr ""
-#: languages/states.php:5304
+#: languages/states.php:5306
msgid "North West"
msgstr ""
-#: languages/states.php:5305
+#: languages/states.php:5307
msgid "Northern Cape"
msgstr ""
-#: languages/states.php:5306
+#: languages/states.php:5308
msgid "Western Cape"
msgstr ""
-#: languages/states.php:5309
+#: languages/states.php:5311
msgid "Muchinga Province"
msgstr ""
-#: languages/states.php:5311
+#: languages/states.php:5313
msgid "Copperbelt Province"
msgstr ""
-#: languages/states.php:5313
+#: languages/states.php:5315
msgid "Luapula Province"
msgstr ""
-#: languages/states.php:5314
+#: languages/states.php:5316
msgid "Lusaka Province"
msgstr ""
-#: languages/states.php:5316
+#: languages/states.php:5318
msgid "Northwestern Province"
msgstr ""
-#: languages/states.php:5321
+#: languages/states.php:5323
msgid "Bulawayo Province"
msgstr ""
-#: languages/states.php:5322
+#: languages/states.php:5324
msgid "Harare Province"
msgstr ""
-#: languages/states.php:5323
+#: languages/states.php:5325
msgid "Manicaland"
msgstr ""
-#: languages/states.php:5324
+#: languages/states.php:5326
msgid "Mashonaland Central Province"
msgstr ""
-#: languages/states.php:5325
+#: languages/states.php:5327
msgid "Mashonaland East Province"
msgstr ""
-#: languages/states.php:5326
+#: languages/states.php:5328
msgid "Mashonaland West Province"
msgstr ""
-#: languages/states.php:5327
+#: languages/states.php:5329
msgid "Masvingo Province"
msgstr ""
-#: languages/states.php:5328
+#: languages/states.php:5330
msgid "Matabeleland North Province"
msgstr ""
-#: languages/states.php:5329
+#: languages/states.php:5331
msgid "Matabeleland South Province"
msgstr ""
-#: languages/states.php:5330
+#: languages/states.php:5332
msgid "Midlands Province"
msgstr ""
diff --git a/languages/states.php b/languages/states.php
index 3c04ba4d26..bc3c6337fc 100644
--- a/languages/states.php
+++ b/languages/states.php
@@ -32,7 +32,7 @@
* @see llms_get_states()
*
* @since 5.0.0
- * @version 6.4.0
+ * @version 6.9.0
*/
defined( 'ABSPATH' ) || exit;
@@ -2240,6 +2240,8 @@
// 'Aosta' manually added, see https://github.com/gocodebox/lifterlms/issues/2098.
'AO' => __( 'Aosta', 'lifterlms' ),
'AP' => __( 'Ascoli Piceno', 'lifterlms' ),
+ // 'Arezzo' manually added, see https://github.com/gocodebox/lifterlms/issues/2214.
+ 'AR' => __( 'Arezzo', 'lifterlms' ),
'AT' => __( 'Asti', 'lifterlms' ),
'AV' => __( 'Avellino', 'lifterlms' ),
'BA' => __( 'Bari', 'lifterlms' ),
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
index a2bb50ba7c..0000000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "packages": [
- "packages/*"
- ],
- "version": "independent"
-}
diff --git a/libraries/README.md b/libraries/README.md
deleted file mode 100644
index 44ab13842b..0000000000
--- a/libraries/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-External Libraries
-==================
-
-Installation directory for plugin libraries included in the core plugin but developed outside of this repository.
-
-See [Installing for Development](../docs/installing.md) for installation instructions.
diff --git a/libraries/lifterlms-blocks/CHANGELOG.md b/libraries/lifterlms-blocks/CHANGELOG.md
new file mode 100644
index 0000000000..4a3c2c5cc6
--- /dev/null
+++ b/libraries/lifterlms-blocks/CHANGELOG.md
@@ -0,0 +1,479 @@
+LifterLMS Blocks Changelog
+==========================
+
+v2.4.3 - 2022-06-09
+-------------------
+
+##### Bug Fixes
+
++ Fixed an issue that prevented editing form confirmation fields when running WordPress 6.0. [#170](https://github.com/gocodebox/lifterlms-blocks#170)
++ Fixed field columns sizing in the block editor.
+
+
+v2.4.2 - 2022-04-07
+-------------------
+
+##### Bug Fixes
+
++ Fixed issue where the User Login form field was shown to logged-in users. [gocodebox/lifterlms#2071](https://github.com/gocodebox/lifterlms#2071)
+
+
+v2.4.1 - 2022-03-30
+-------------------
+
+##### Bug Fixes
+
++ Fixed issue when adding two custom fields of the same type resulting in the first changing its usermeta key. [#160](https://github.com/gocodebox/lifterlms-blocks/issues/160)
+
+
+v2.4.0 - 2022-02-25
+-------------------
+
+##### Updates and Enhancements
+
++ Components added to `window.llms.components` are now aware of components added to the object from other sources.
+
+##### Bug Fixes
+
++ Fixed access to non-existing variable when current user tries to edit course/membership instructors without proper permissions. [#140](https://github.com/gocodebox/lifterlms-blocks#140)
+
+
+v2.3.2 - 2022-02-22
+-------------------
+
+##### Updates and Enhancements
+
++ Added an option to specify a custom checkout form title for free access plans.
+
+
+v2.3.1 - 2022-01-26
+-------------------
+
+##### Updates and Enhancements
+
++ Resolved PHP 8.1 deprecation warnings.
+
+
+v2.3.0 - 2022-01-25
+-------------------
+
+##### New Features
+
++ Added the llms/php-template block, used by the Site Editor to load php templates.
+
+##### Updates and Enhancements
+
++ Adds support for WordPress 5.9.
++ The minimum required WordPress version is now 5.5.
+
+
+v2.2.1 - 2021-09-29
+-------------------
+
++ Bugfix: Fixed deprecated filter warning encountered when using certain development versions of the WordPress core.
+
+
+v2.2.0 - 2021-07-19
+-------------------
+
+##### Updates
+
++ **Increases minimum WordPress Core version requirement to version 5.4!**.
++ Tested and compatible with WordPress core 5.8
++ Don't load block editor assets on the "blockified" widgets screen.
++ Remove timeouts and subscription debouncing used by blocks watcher which handles the `llms/user-info-fields` redux store.
++ Stop debouncing the blocks watcher.
+
+##### Bug fixes
+
++ Confirm group blocks now configure the block's id, name, and match attributes instead of being configured in the block render via the `blocks/form-fields/group-data` module.
++ Don't define the `match` attribute during creation of a user password block.
+
+
+v2.1.1 - 2021-07-08
+-------------------
+
++ Fixed issue causing visibility controls to display for blocks which have no visibility attributes defined.
+
+
+v2.1.0 - 2021-06-28
+-------------------
+
+##### Updates
+
++ Adjusted priority of block editor JS assets to load at priority `5` instead of `999`. Resolves plugin conflicts encountered when using block-level visibility on blocks registered after visibility filters are applied.
++ Removed usage of [react-sortable-hoc](https://github.com/clauderic/react-sortable-hoc) and replaced with [dndkit](https://github.com/clauderic/dnd-kit) for drag and drop UX within the editor.
++ Refactored the instructors sidebar (on courses and memberships) as well as the option shorting (for fields with options) to utilize `dndkit`.
+
+##### Bugfixes
+
++ Fixed an issue encountered on password confirmation fields when adjusting the minimum password length option on the user password block.
+
+
+v2.0.1 - 2021-06-21
+-------------------
+
++ Use non-unique error notice IDs for reusable multiple error notice.
+
+
+v2.0.0 - 2021-06-21
+-------------------
+
+##### Updates
+
++ Adds LifterLMS User Information form building via the block editor.
++ Initially compatibility for WordPress 5.8 (full site editing). Ensures core functionality but doesn't add any exciting features.
++ Improve the visual feedback inside the editor for a block with visibility restrictions.
++ Added reusable block support for form fields.
++ Adds a user information (`[llms-user]`) shortcode inserter to rich text block toolbars.
++ Use rich text `allowedFormats` in favor of deprecated `formattingControls`
++ Improved localization of Javascript files.
+
+##### Bug Fixes
+
++ Fixed issue encountered when using lesson progression blocks outside of a lesson, thanks [@reedhewitt](https://github.com/reedhewitt)!
++ Fixed fatal errors encountered if LifterLMS core isn't active when this plugin is activated.
++ Currently selected instructors are excluded from queries for instructor users.
++ Fixed issue encountered on courses and memberships when attempting to edit instructor information.
+
+##### Backwards Incompatible Changes
+
++ Major refactor of all field-related blocks.
++ The names of many field blocks have changed.
++ Use `getDisallowedBlocks()` in favor of removed `getBlacklist()` in `block-visibility/check`.
++ Blocks restricted to specific posts have had the post object stored on the block attribute reduced to include only the minimum required properties.
++ The `Search`, `SearchPost`, and `SearchUser` components have had major changes to make them more extendable.
++ Don't render InspectorControls since the block doesn't have any actual settings.
+
+
+v2.0.0-rc.2 - 2021-06-18
+------------------------
+
++ Only load the plugin if LifterLMS is loaded
++ Update version checking method.
++ Fixed typo causing errors on WP 5.6 and earlier.
++ Fix WP 5.7 compatibility issues
++ Fixed issue encountered when using lesson progression blocks outside of a lesson, thanks [@reedhewitt](https://github.com/reedhewitt)!
+
+
+v2.0.0-rc.1 - 2021-06-15
+------------------------
+
++ Fixes issue encountered when adding a confirm group
++ Stop using merge codes in the password block
++ Improve block duplication handlers
++ Prevent confirm fields from being manually pasted outside of a confirm group
++ Adds the `llms/user-information-fields` redux store to allow for better field validation and handling
++ Improves and adds field attribute validation
++ Use rich text `allowedFormats` in favor of deprecated `formattingControls`
++ Remove the now unnecessary `uuid` field block attribute.
++ Adds WP core 5.8 compatibility on the widget and customizer screens.
++ Exclude LifterLMS field block reusables from the widgets reusable blocks screen.
++ Adds backwards compatibility for WordPress < 5.6
+
+
+v2.0.0-beta.6 - 2021-06-01
+--------------------------
+
++ (Re-)introduces user information shortcode through a block editor rich text area format button.
++ Prevent usage the "User Login" block on account edit forms (usersnames cannot be edited in WordPress).
++ Only prevent form posts from being made "draft" status on the "core" forms.
++ Modifies field localization data strategy for field validation and others.
+
+
+v2.0.0-beta.5 - 2021-05-18
+--------------------------
+
++ Add WP core 5.8 compatibility for deprecated filter `block_categories`.
++ Fixed issue encountered on courses and memberships when attempting to edit instructor information.
++ Added validation to ensure all fields have unique HTML name attributes.
++ Simplified field data storage interface to enable saving only to the usermeta table.
+
+
+v2.0.0-beta.4 - 2021-05-07
+--------------------------
+
++ Fixed error encountered when opening the block editor options menu on an `llms_form` post type.
++ Added UUID generation to all form field blocks.
++ Fixed visual issues encountered with form field blocks on wide screens in the block editor.
++ Fixed issue preventing column widths from being set after switching from a stacked layout to a columns layout for a field group.
++ Added CSS classes to various option elements in the block editor
++ Moved most inline css in the editor into a static file
++ Fixed issue encountered when reverting a form to it's default
++ Fixed dynamic block rendering errors encountered when the block is restricted to specific courses/memberships.
++ Added CSS to make input placeholder text look like a placeholder
+
+
+v2.0.0-beta.3 - 2021-04-26
+--------------------------
+
++ All form field blocks refactored and many were removed or renamed.
++ Added column support to form field blocks.
++ Added reusable block support to form field blocks.
++ Removed support for block visibility on required field blocks (email and password).
++ Added reusable block filtering to only show "supported" reusable blocks when editing a form.
++ Added utility function support for reusable blocks.
++ Fixed issues related to visual rendering of checkboxes / radio elements on custom fields.
+
+
+v2.0.0-beta.2 - 2021-03-22
+--------------------------
+
++ Fixed block editor visual issues encountered on certain blocks when block-level visibility restrictions are enabled.
+
+
+v2.0.0-beta.1 - 2021-03-22
+--------------------------
+
++ Improved Javascript localization.
++ Updated JS source files to follow (slightly modified) eslint standards as defined by `@wordpress/eslint-plugin/recommended`.
++ Disabled import of incomplete module `./formats/merge-codes`.
++ Improved the information displayed for a restricted block.
++ Don't render `InspectorControls` for the Course Syllabus block since it doesn't have any actual settings to inspect.
++ Improved the Search, SearchPost, and SearchUser components and made backwards incompatible changes to their usage.
+
+
+v1.12.0 - 2021-01-07
+--------------------
+
++ Various form and field updates in preparation for LifterLMS 5.0.0.
+
+
+v1.11.1 - 2021-01-05
+--------------------
+
++ Update the hook used for the Instructors block when displayed on membership post types.
+
+
+v1.11.0 - 2020-12-29
+--------------------
+
++ Allow the "Instructors" block to be used for memberships, thanks [@alaa-alshamy](https://github.com/alaa-alshamy)!
+
+
+v1.10.0 - 2020-11-24
+--------------------
+
++ Use the `LLMS_Assets` class to define, register, and enqueue plugin assets.
++ Added Javascript localization for block editor scripts.
+
+
+v1.9.1 - 2020-04-29
+-------------------
+
++ Fix course progress block template used when migrating a course to the block editor.
+
+
+v1.9.0 - 2020-04-29
+-------------------
+
++ Converted the course progress block into a dynamic block. Fixes an issue allowing the progress block to be visible to non-enrolled students.
++ Added a filter on the output of the Pricing Table block: `llms_blocks_render_pricing_table_block`.
+
+
+v1.8.0 - 2020-04-28
+-------------------
+
+##### Updates
+
++ Improved script dependencies definitions.
++ Updated asset paths for consistency with other LifterLMS projects.
++ Updated various WP Core references that have been deprecated (maintains backwards compatibility).
++ The Lesson Progression block is no longer rendered server-side in the block editor (minor performance improvement).
+
+##### Changes to the Classic Editor Block
+
++ The classic editor block will no longer show block visibility settings because it is impossible to use those settings to filter the block on the frontend.
++ In order to apply visibility settings to the classic editor block, place the Classic Editor within a "Group" block and apply visibility settings to the Group.
+
+##### Bug fixes
+
++ Fixed an issue encountered when using the WP Core "Table" block.
++ Fixed a few areas where `class` was being used instead of `className` to define CSS classes on elements in the block editor.
++ Fixed a user-experience issues encountered on the Course Information block when all possible information is disabled.
++ Fixed an issue causing visibility attributes to render on blocks that don't support them.
++ Fixed an issue preventing 3rd party blocks from modifying default block visibility settings.
++ Fixed a spelling error visible inside the block editor.
++ Fixed an issue causing the "Course Progress" block to be shown to non-enrolled students and visitors.
++ Removed redundant CSS from frontend.
++ Stop outputting editor CSS on the frontend.
++ Dynamic blocks with no content to render will now only output their empty render messages inside the block editor, not on the frontend.
+
+
+v1.7.3 - 2019-12-19
+-------------------
+
++ Move form ready event from domReady to block registration to ensure blocks are exposed before blocks are parsed.
+
+
+v1.7.2 - 2019-12-09
+-------------------
+
++ Bug fix: fix issue causing the block editor to encounter a fatal error when using custom post types that don't support custom fields.
+
+
+v1.7.1 - 2019-12-05
+-------------------
+
++ Bug fix: Fixed a WordPress 5.3 issues with JSON data affecting the ability to save course/membership instructors.
++ Update: Added filter, `llms_block_supports_visibility` to allow modification of the return of the check.
++ Update: Disabled block visibility on registration & account forms to prevent a potentially confusing form creation experience.
++ Update: Added block editor rendering for password type fields.
+
+
+v1.7.0 - 2019-11-08
+-------------------
+
+##### Updates
+
++ Membership post types can now use the LifterLMS Pricing Table block.
++ Membership post types are automatically migrated to the block editor (use the pricing table block instead of the pricing table action).
++ Added a block editor template for the Membership post type.
++ The block 'llms/form-field-redeem-voucher' is now only available on registration forms.
+
+##### Bug Fixes
+
++ Backwards compatibility fixes for WP Core 5.2 and earlier.
++ Perform post migrations on `current_screen` instead of `admin_enqueue_scripts`.
++ Fix an issue causing "No HTML Returned" to be displayed in place of the Lesson Progression block on free lessons when viewed by a logged-out user.
++ Import `InspectorControls` from `wp.blockEditor` and fallback to `wp.editor` to maintain backwards compatibility.
++ Fall back to `wp.editor` for `RichText` import when `wp.blockEditor` is not found.
++ Import from `wp.editor` when `wp.blockEditor` is not available.
++ Return early during renders on WP Core 5.2 and earlier where the `PluginDocumentSettingPanel` doesn't exist.
+
+
+v1.6.0 - 2019-10-24
+-------------------
+
++ Feature: Added form field blocks for use on the Forms manager.
++ Feature: Add logic for `logged_in` and `logged_out` block visibility options.
++ Update: Added isDisabled property to Search component.
++ Update: Adjusted priority of `render_block` filter to 20.
++ Bug fix: Import `InspectorControls` from `wp.blockEditor` in favor of deprecated `wp.editor`
++ Bug fix: Automatically store course/membership instructor with `post_author` data when the post is created.
++ Bug fix: Pass style rules as camelCase.
+
+
+v1.5.2 - 2019-08-14
+-------------------
+
++ Only enable REST for authenticated users with the `lifterlms_instructor` capability.
+
+
+v1.5.1 - 2019-05-17
+-------------------
+
++ Only register block visibility settings on static blocks. Fixes an issue causing core (or 3rd party) dynamic blocks from being managed within the block editor.
+
+
+v1.5.0 - 2019-05-16
+-------------------
+
++ All blocks are now registered only for post types where they can actually be used.
+
+
+v1.4.1 - 2019-05-13
+-------------------
+
++ Fixed double slashes in asset path of CSS and JS files, thanks [@pondermatic](https://github.com/pondermatic)!
+
+
+v1.4.0 - 2019-04-26
+-------------------
+
++ Added an "unmigration" utility to LifterLMS -> Status -> Tools & Utilities which can be used to remove LifterLMS blocks from courses and lessons which were migrated to the block editor structure. This tool is only available when the Classic Editor plugin is installed and enabled and it will remove blocks from ALL courses and lessons regardless of whether or not the block editor is being utilized on that post.
+
+
+v1.3.8 - 2019-03-19
+-------------------
+
++ Explicitly import jQuery when used within blocks.
+
+
+v1.3.7 - 2019-02-27
+-------------------
+
++ Fixed an issue preventing "Pricing Table" blocks from displaying on the admin panel when the current user was enrolled in the course or no payment gateways were enabled on the site.
+
+
+v1.3.6 - 2019-02-22
+-------------------
+
++ Updated the editor icons to use the new LifterLMS Icon
++ Change method for Pricing Table block re-rendering to prevent an issue resulting it always appearing that the post has unsaved data.
+
+
+v1.3.5 - 2019-02-21
+-------------------
+
++ Automatically re-renders Pricing Table blocks when access plans are saved or deleted via the course / membership access plan metabox.
+
+
+v1.3.4 - 2019-01-30
+-------------------
+
++ Add support for the Divi Builder's "Classic Editor" mode
++ Skip post migration when "Classic" mode is enabled
+
+
+v1.3.3 - 2019-01-23
+-------------------
+
++ Add conditions to check for Classic Editor settings configured to enforce classic/block for all posts.
+
+
+v1.3.2 - 2019-01-16
+-------------------
+
++ Fix issue preventing template actions from being removed from migrated courses & lessons.
+
+
+v1.3.1 - 2019-01-15
+-------------------
+
++ Move post migration checks to a callable function `llms_blocks_is_post_migrated()`
+
+
+v1.3.0 - 2019-01-09
+-------------------
+
++ Add course and membership catalog visibility settings into the block editor.
++ Fixed issue preventing the course instructors metabox from displaying when using the classic editor plugin.
+
+v1.2.0 - 2018-12-27
+-------------------
+
++ Add conditional support for page builders: Beaver Builder, Divi Builder, and Elementor.
++ Fixed issue causing LifterLMS core sales pages from outputting automatic content (like pricing tables) on migrated posts.
+
+
+v1.1.2 - 2018-12-17
+-------------------
+
++ Add a filter to the migration check on lessons & courses.
+
+
+v1.1.1 - 2018-12-14
+-------------------
+
++ Fix issue causing LifterLMS Core Actions to be removed when using the Classic Editor plugin.
+
+
+v1.1.0 - 2018-12-12
+-------------------
+
++ Editor blocks now display a lock icon when hovering/selecting a block which corresponds to the enrollment visibility settings of the block.
++ Removal of core actions is now handled by a general migrator function instead of by individual blocks.
++ Fix issue causing block visibility options to not be properly set when enrollment visibility is first enabled for a block.
+
+
+v1.0.1 - 2018-12-05
+-------------------
+
++ Made plugin url relative
+
+
+v1.0.0 - 2018-12-05
+-------------------
+
++ Initial public release
diff --git a/libraries/lifterlms-blocks/assets/css/llms-blocks-rtl.css b/libraries/lifterlms-blocks/assets/css/llms-blocks-rtl.css
new file mode 100644
index 0000000000..f31b1b16d1
--- /dev/null
+++ b/libraries/lifterlms-blocks/assets/css/llms-blocks-rtl.css
@@ -0,0 +1 @@
+.llms-cols:after,.llms-cols:before{content:" ";display:table}.llms-cols:after{clear:both}.llms-cols .llms-col{width:100%}@media (min-width:600px){.llms-cols [class*=llms-col-]{float:right}.llms-cols .llms-col-1{width:100%}.llms-cols .llms-col-2{width:50%}.llms-cols .llms-col-3{width:33.3333333333%}.llms-cols .llms-col-4{width:25%}.llms-cols .llms-col-5{width:20%}.llms-cols .llms-col-6{width:16.6666666667%}.llms-cols .llms-col-7{width:14.2857142857%}.llms-cols .llms-col-8{width:12.5%}.llms-cols .llms-col-9{width:11.1111111111%}.llms-cols .llms-col-10{width:10%}.llms-cols .llms-col-11{width:9.0909090909%}.llms-cols .llms-col-12{width:8.3333333333%}.edit-post-visual-editor .editor-block-list__block .editor-block-list__block-edit{padding-right:0;padding-left:0}}.llms-block-visibility{margin-right:auto;margin-left:auto;max-width:840px;position:relative}.llms-block-visibility>:first-child{margin-bottom:28px;margin-top:28px}.llms-block-visibility:before{border:1px solid #e0e0e0;bottom:-6px;content:"";right:-6px;position:absolute;left:-6px;top:-6px}.llms-block-visibility .llms-block-visibility--indicator{border-top:1px solid #e0e0e0;color:#555d66;margin-top:-22px;padding:0 6px}.llms-block-visibility .llms-block-visibility--indicator .dashicon,.llms-block-visibility .llms-block-visibility--indicator .llms-block-visibility--msg{vertical-align:middle}.llms-block-visibility .llms-block-visibility--indicator .llms-block-visibility--msg{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-style:italic;line-height:1.4;margin-right:6px}.edit-post-settings-sidebar__panel-block .components-panel__body .llms-search input,.edit-post-sidebar .components-panel__body .llms-search input{box-shadow:none}.llms-search__menu{background:#fff!important;z-index:9999999!important}.llms-search__value-container{width:100%}#wpwrap .edit-post-visual-editor .wp-block-llms-course-information ul{list-style-type:none;margin-right:0;margin-top:.5em}.wp-block-llms-course-progress{display:flex}.wp-block-llms-course-progress .progress-bar{background:#dedede;border-radius:4px;flex:1;margin:10px 0;overflow:hidden}.wp-block-llms-course-progress .progress-bar .progress--fill{background:#2295ff;height:100%;width:50%}.wp-block-llms-course-progress span{padding-right:5px;vertical-align:middle}.llms-syllabus-wrapper{margin:15px;text-align:center}.llms-syllabus-wrapper .llms-section-title{margin:25px 0 0}.llms-course-navigation:after,.llms-course-navigation:before{content:" ";display:table}.llms-course-navigation:after{clear:both}.llms-course-navigation .llms-back-to-course,.llms-course-navigation .llms-next-lesson,.llms-course-navigation .llms-prev-lesson{width:49%}.llms-course-navigation .llms-back-to-course,.llms-course-navigation .llms-prev-lesson{float:right;margin-left:.5%}.llms-course-navigation .llms-next-lesson,.llms-course-navigation .llms-prev-lesson+.llms-back-to-course{float:left;margin-right:.5%}.llms-lesson-preview{display:inline-block;margin-top:15px;max-width:100%;position:relative;width:480px}.llms-lesson-preview .llms-lesson-link{background:#f1f1f1;color:#212121;display:block;padding:15px;text-decoration:none}.llms-lesson-preview .llms-lesson-link:after,.llms-lesson-preview .llms-lesson-link:before{content:" ";display:table}.llms-lesson-preview .llms-lesson-link:after{clear:both}.llms-lesson-preview .llms-lesson-link:hover{background:#eaeaea}.llms-lesson-preview .llms-lesson-link:visited{color:#212121}.llms-lesson-preview .llms-lesson-thumbnail{margin-bottom:10px}.llms-lesson-preview .llms-lesson-thumbnail img{display:block;width:100%}.llms-lesson-preview .llms-pre-text{text-align:right}.llms-lesson-preview .llms-lesson-title{font-weight:700;margin:0 auto 10px;text-align:right}.llms-lesson-preview .llms-lesson-title:last-child{margin-bottom:0}.llms-lesson-preview .llms-lesson-excerpt{text-align:right}.llms-lesson-preview .llms-main{float:right;width:100%}.llms-lesson-preview .llms-extra{float:left;width:15%}.llms-lesson-preview .llms-extra+.llms-main{width:85%}.llms-lesson-preview .llms-free-lesson-svg,.llms-lesson-preview .llms-lesson-complete,.llms-lesson-preview .llms-lesson-complete-placeholder,.llms-lesson-preview .llms-lesson-counter{display:block;font-size:32px;margin-bottom:15px}.llms-lesson-preview.is-complete .llms-lesson-complete,.llms-lesson-preview.is-free .llms-lesson-complete{color:#2295ff}.llms-lesson-preview .llms-icon-free{background:#2295ff;border-radius:4px;color:#f1f1f1;display:inline-block;font-size:14px;line-height:1;padding:5px 6px 4px}.llms-lesson-preview.is-incomplete .llms-lesson-complete{color:#cacaca}.llms-lesson-preview .llms-lesson-counter{font-size:16px;line-height:1}.llms-lesson-preview .llms-free-lesson-svg{fill:currentColor;height:23px;width:50px}.llms-lesson-preview p{margin-bottom:0;margin-top:0}.llms-author .label,.llms-author .name{margin-right:5px}.llms-author .avatar{border-radius:50%}.llms-author .bio{margin-top:5px}.llms-instructor-info .llms-instructors .llms-col:first-child .llms-author{margin-right:0}.llms-instructor-info .llms-instructors .llms-col:last-child .llms-author{margin-left:0}.llms-instructor-info .llms-instructors .llms-author{background:#f5f5f5;border-top:4px solid #2295ff;margin:45px 5px 5px;padding:0 10px 10px;text-align:center}.llms-instructor-info .llms-instructors .llms-author .avatar{background:#2295ff;border:4px solid #2295ff;display:block;margin:-35px auto 10px}.llms-instructor-info .llms-instructors .llms-author .llms-author-info{display:block}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.name{font-weight:700}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.label{font-size:85%}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.bio{font-size:90%;margin-bottom:0}.wp-block[data-type="llms/lesson-progression"]{text-align:center}.wp-block[data-type="llms/lesson-progression"] button{margin:0 2px}.llms-access-plans:after,.llms-access-plans:before{content:" ";display:table}.llms-access-plans:after{clear:both}@media (min-width:600px){.llms-access-plans.cols-1 .llms-access-plan{width:100%}.llms-access-plans.cols-2 .llms-access-plan{width:50%}.llms-access-plans.cols-3 .llms-access-plan{width:33.3333333333%}.llms-access-plans.cols-4 .llms-access-plan{width:25%}.llms-access-plans.cols-5 .llms-access-plan{width:20%}}.llms-free-enroll-form{margin-bottom:0}.llms-access-plan{box-sizing:border-box;float:right;text-align:center;width:100%}.llms-access-plan .llms-access-plan-content,.llms-access-plan .llms-access-plan-footer{background:#f1f1f1}.llms-access-plan.featured .llms-access-plan-featured{background:#4ba9ff}.llms-access-plan.featured .llms-access-plan-content,.llms-access-plan.featured .llms-access-plan-footer{border-right:3px solid #2295ff;border-left:3px solid #2295ff}.llms-access-plan.featured .llms-access-plan-footer{border-bottom-color:#2295ff}.llms-access-plan.on-sale .price-regular{text-decoration:line-through}.llms-access-plan .stamp{background:#2295ff;color:#fff;font-size:11px;font-style:normal;font-weight:300;padding:2px 3px;vertical-align:top}.llms-access-plan .llms-access-plan-restrictions ul{margin:0}.llms-access-plan-featured{color:#fff;font-size:14px;font-weight:400;margin:0 2px}.llms-access-plan-content{margin:0 2px}.llms-access-plan-content .llms-access-plan-pricing{padding:10px 0 0}.llms-access-plan-title{background:#2295ff;color:#fff;margin-bottom:0;padding:10px}.llms-access-plan-pricing .llms-price-currency-symbol{font-size:14px;vertical-align:top}.llms-access-plan-price{font-size:18px;font-variant:small-caps;line-height:20px}.llms-access-plan-price .lifterlms-price{font-weight:700}.llms-access-plan-price.sale{border-bottom:1px solid #d0d0d0;border-top:1px solid #d0d0d0;padding:5px 0}.llms-access-plan-expiration,.llms-access-plan-sale-end,.llms-access-plan-schedule,.llms-access-plan-trial{font-size:15px;font-variant:small-caps;line-height:1.2}.llms-access-plan-description{font-size:16px;padding:10px 10px 0}.llms-access-plan-description ul{margin:0}.llms-access-plan-description ul li{border-bottom:1px solid #d0d0d0;list-style-type:none}.llms-access-plan-description ul li:last-child{border-bottom:none}.llms-access-plan-description div:last-child,.llms-access-plan-description img:last-child,.llms-access-plan-description li:last-child,.llms-access-plan-description p:last-child,.llms-access-plan-description ul:last-child{margin-bottom:0}.llms-access-plan-restrictions .stamp{vertical-align:baseline}.llms-access-plan-restrictions ul{margin:0}.llms-access-plan-restrictions ul li{font-size:12px;line-height:14px;list-style-type:none}.llms-access-plan-restrictions a{color:#f8954f}.llms-access-plan-restrictions a:hover{color:#f67d28}.llms-access-plan-footer{border-bottom:3px solid #f1f1f1;margin:0 2px 2px;padding:10px}.llms-access-plan-footer .llms-access-plan-pricing{padding:0 0 10px}.llms-invalid-control{margin-bottom:24px}.llms-invalid-control .components-base-control{margin-bottom:0}.llms-invalid-control .components-base-control .components-text-control__input{background-color:rgba(204,24,24,.05);border-color:#cc1818}.llms-invalid-control .llms-invalid-control--msg{background-color:rgba(204,24,24,.05);border-right:4px solid #cc1818;color:#cc1818;font-size:12px;font-style:italic;margin-bottom:0;padding:6px 8px 6px 2px}.llms-pwd-meter{border:1px solid #e35b5b;border-radius:4px;margin-top:5px;overflow:hidden}.llms-pwd-meter>div{background:rgba(227,91,91,.25);font-size:75%;padding:0 5px;width:25%}.llms-field-group .block-editor-block-list__layout *{box-sizing:border-box}.llms-fields input,.llms-fields textarea{border:1px solid #999;color:#757575;padding:4px 8px}.llms-fields input:focus::-moz-placeholder,.llms-fields textarea:focus::-moz-placeholder{opacity:0}.llms-fields input:focus:-ms-input-placeholder,.llms-fields textarea:focus:-ms-input-placeholder{opacity:0}.llms-fields input:focus::placeholder,.llms-fields textarea:focus::placeholder{opacity:0}.llms-fields input::-moz-placeholder,.llms-fields textarea::-moz-placeholder{color:#757575}.llms-fields input:-ms-input-placeholder,.llms-fields textarea:-ms-input-placeholder{color:#757575}.llms-fields input::placeholder,.llms-fields textarea::placeholder{color:#757575}.llms-fields input:not([type=radio]):not([type=checkbox]),.llms-fields select,.llms-fields textarea{width:100%}.llms-fields input:not([type=radio]){border-radius:4px}.llms-fields textarea{resize:none}.llms-fields select{max-Width:none;pointer-events:none}.llms-fields .llms-field .block-editor-rich-text__editable{display:block}.llms-fields .llms-field label.llms-is-required>div{display:inline}.llms-fields .llms-field label.llms-is-required:after{color:#dc5757;content:" *"}.llms-field-option{align-items:top;display:flex;margin-bottom:4px}.llms-field-option.llms-sort-helper{background:#fff;border:1px solid #dedede;height:auto!important;padding:5px 10px;z-index:999}.llms-field-option .llms-field-opt-default{margin-top:6px}.llms-field-option .llms-field-opt-default .components-radio-control__input{margin-left:0}.llms-field-option .llms-field-opt-default,.llms-field-option .llms-field-opt-text,.llms-field-option .llms-field-opt-text .components-base-control__field{margin-bottom:0!important}.llms-field-option .llms-field-opt-db-key{display:flex;margin-top:2px}.llms-field-option .llms-field-opt-db-key .dashicon{color:#5a5a5a;margin-top:5px}.llms-field-option .llms-field-opt-db-key .components-text-control__input{background:#f5f5f5;font-family:monospace}.llms-field-option .llms-drag-handle{cursor:-webkit-grab;cursor:grab;flex:.8;margin-top:3px;padding-top:6px}.llms-field-option .llms-del-field-opt-wrap,.llms-field-option .llms-field-opt-default-wrap{flex:1;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.llms-field-option .llms-del-field-opt-wrap{margin-right:4px}.llms-field-option .llms-del-field-opt-wrap button{margin-top:3px}.llms-field-option .llms-del-field-opt-wrap button:hover,.llms-field-option .llms-del-field-opt-wrap button[aria-expanded=true]{color:#cc1818}.llms-field-option .llms-field-opt-text-wrap{flex:7}.llms-field-options--footer{margin-top:10px}.llms-cols-12 .llms-field{width:100%}.llms-cols-9 .llms-field{width:75%}.llms-cols-8 .llms-field{width:66.66%}.llms-cols-6 .llms-field{width:50%}.llms-cols-4 .llms-field{width:33.33%}.llms-cols-3 .llms-field{width:25%}.llms-field-group[data-field-layout=columns] .llms-cols-12,.llms-field-group[data-field-layout=columns] [class*=llms-cols-] .llms-field{width:100%}.llms-field-group[data-field-layout=columns] .llms-cols-9{width:75%}.llms-field-group[data-field-layout=columns] .llms-cols-8{width:66.66%}.llms-field-group[data-field-layout=columns] .llms-cols-6{width:50%}.llms-field-group[data-field-layout=columns] .llms-cols-4{width:33.33%}.llms-field-group[data-field-layout=columns] .llms-cols-3{width:25%}.llms-field-group[data-field-layout=columns] .block-editor-block-list__layout>.wp-block.llms-fields{display:inline-block}.llms-field-group[data-field-layout=columns] .block-editor-block-list__layout>.wp-block.llms-fields:nth-child(odd){padding-left:28px}.llms-field-group[data-field-layout=columns] .block-editor-block-list__layout>.wp-block.llms-fields:nth-child(2n){padding-right:28px}.llms-shortcodes-modal{width:800px}.llms-shortcodes-modal .llms-shortcodes-modal--main{display:flex}.llms-shortcodes-modal .llms-shortcodes-modal--main aside{flex:1;padding-left:16px}.llms-shortcodes-modal .llms-shortcodes-modal--main section{flex:2;padding-right:16px}.llms-shortcodes-modal .llms-shortcodes-modal--main .llms-table tr td,.llms-shortcodes-modal .llms-shortcodes-modal--main .llms-table tr th{text-align:right}.llms-instructor{border:1px solid #dedede;margin-bottom:-1px;padding:10px;position:relative;z-index:100}.llms-instructor .llms-instructor--header{align-items:center;display:flex}.llms-instructor .llms-instructor--header section{flex:2}.llms-instructor .llms-instructor--header section small{margin-right:3px}.llms-instructor .llms-instructor--header aside{flex:1;text-align:left}.llms-instructor .llms-instructor--header .components-button.is-small.has-icon:not(.has-text){min-width:24px;padding:0}.llms-instructor .llms-instructor--header .dashicons-star-filled{color:#ffb900;margin:2px 0 0 2px}.llms-instructor.llms-is-dragging{background:#fff;border:1px solid #dedede;box-shadow:0 4px 8px 2px #dedede;z-index:999}.llms-instructor .llms-instructor--settings{margin-top:10px}
\ No newline at end of file
diff --git a/libraries/lifterlms-blocks/assets/css/llms-blocks.css b/libraries/lifterlms-blocks/assets/css/llms-blocks.css
new file mode 100644
index 0000000000..2022ccb145
--- /dev/null
+++ b/libraries/lifterlms-blocks/assets/css/llms-blocks.css
@@ -0,0 +1 @@
+.llms-cols:after,.llms-cols:before{content:" ";display:table}.llms-cols:after{clear:both}.llms-cols .llms-col{width:100%}@media (min-width:600px){.llms-cols [class*=llms-col-]{float:left}.llms-cols .llms-col-1{width:100%}.llms-cols .llms-col-2{width:50%}.llms-cols .llms-col-3{width:33.3333333333%}.llms-cols .llms-col-4{width:25%}.llms-cols .llms-col-5{width:20%}.llms-cols .llms-col-6{width:16.6666666667%}.llms-cols .llms-col-7{width:14.2857142857%}.llms-cols .llms-col-8{width:12.5%}.llms-cols .llms-col-9{width:11.1111111111%}.llms-cols .llms-col-10{width:10%}.llms-cols .llms-col-11{width:9.0909090909%}.llms-cols .llms-col-12{width:8.3333333333%}.edit-post-visual-editor .editor-block-list__block .editor-block-list__block-edit{padding-left:0;padding-right:0}}.llms-block-visibility{margin-left:auto;margin-right:auto;max-width:840px;position:relative}.llms-block-visibility>:first-child{margin-bottom:28px;margin-top:28px}.llms-block-visibility:before{border:1px solid #e0e0e0;bottom:-6px;content:"";left:-6px;position:absolute;right:-6px;top:-6px}.llms-block-visibility .llms-block-visibility--indicator{border-top:1px solid #e0e0e0;color:#555d66;margin-top:-22px;padding:0 6px}.llms-block-visibility .llms-block-visibility--indicator .dashicon,.llms-block-visibility .llms-block-visibility--indicator .llms-block-visibility--msg{vertical-align:middle}.llms-block-visibility .llms-block-visibility--indicator .llms-block-visibility--msg{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-style:italic;line-height:1.4;margin-left:6px}.edit-post-settings-sidebar__panel-block .components-panel__body .llms-search input,.edit-post-sidebar .components-panel__body .llms-search input{box-shadow:none}.llms-search__menu{background:#fff!important;z-index:9999999!important}.llms-search__value-container{width:100%}#wpwrap .edit-post-visual-editor .wp-block-llms-course-information ul{list-style-type:none;margin-left:0;margin-top:.5em}.wp-block-llms-course-progress{display:flex}.wp-block-llms-course-progress .progress-bar{background:#dedede;border-radius:4px;flex:1;margin:10px 0;overflow:hidden}.wp-block-llms-course-progress .progress-bar .progress--fill{background:#2295ff;height:100%;width:50%}.wp-block-llms-course-progress span{padding-left:5px;vertical-align:middle}.llms-syllabus-wrapper{margin:15px;text-align:center}.llms-syllabus-wrapper .llms-section-title{margin:25px 0 0}.llms-course-navigation:after,.llms-course-navigation:before{content:" ";display:table}.llms-course-navigation:after{clear:both}.llms-course-navigation .llms-back-to-course,.llms-course-navigation .llms-next-lesson,.llms-course-navigation .llms-prev-lesson{width:49%}.llms-course-navigation .llms-back-to-course,.llms-course-navigation .llms-prev-lesson{float:left;margin-right:.5%}.llms-course-navigation .llms-next-lesson,.llms-course-navigation .llms-prev-lesson+.llms-back-to-course{float:right;margin-left:.5%}.llms-lesson-preview{display:inline-block;margin-top:15px;max-width:100%;position:relative;width:480px}.llms-lesson-preview .llms-lesson-link{background:#f1f1f1;color:#212121;display:block;padding:15px;text-decoration:none}.llms-lesson-preview .llms-lesson-link:after,.llms-lesson-preview .llms-lesson-link:before{content:" ";display:table}.llms-lesson-preview .llms-lesson-link:after{clear:both}.llms-lesson-preview .llms-lesson-link:hover{background:#eaeaea}.llms-lesson-preview .llms-lesson-link:visited{color:#212121}.llms-lesson-preview .llms-lesson-thumbnail{margin-bottom:10px}.llms-lesson-preview .llms-lesson-thumbnail img{display:block;width:100%}.llms-lesson-preview .llms-pre-text{text-align:left}.llms-lesson-preview .llms-lesson-title{font-weight:700;margin:0 auto 10px;text-align:left}.llms-lesson-preview .llms-lesson-title:last-child{margin-bottom:0}.llms-lesson-preview .llms-lesson-excerpt{text-align:left}.llms-lesson-preview .llms-main{float:left;width:100%}.llms-lesson-preview .llms-extra{float:right;width:15%}.llms-lesson-preview .llms-extra+.llms-main{width:85%}.llms-lesson-preview .llms-free-lesson-svg,.llms-lesson-preview .llms-lesson-complete,.llms-lesson-preview .llms-lesson-complete-placeholder,.llms-lesson-preview .llms-lesson-counter{display:block;font-size:32px;margin-bottom:15px}.llms-lesson-preview.is-complete .llms-lesson-complete,.llms-lesson-preview.is-free .llms-lesson-complete{color:#2295ff}.llms-lesson-preview .llms-icon-free{background:#2295ff;border-radius:4px;color:#f1f1f1;display:inline-block;font-size:14px;line-height:1;padding:5px 6px 4px}.llms-lesson-preview.is-incomplete .llms-lesson-complete{color:#cacaca}.llms-lesson-preview .llms-lesson-counter{font-size:16px;line-height:1}.llms-lesson-preview .llms-free-lesson-svg{fill:currentColor;height:23px;width:50px}.llms-lesson-preview p{margin-bottom:0;margin-top:0}.llms-author .label,.llms-author .name{margin-left:5px}.llms-author .avatar{border-radius:50%}.llms-author .bio{margin-top:5px}.llms-instructor-info .llms-instructors .llms-col:first-child .llms-author{margin-left:0}.llms-instructor-info .llms-instructors .llms-col:last-child .llms-author{margin-right:0}.llms-instructor-info .llms-instructors .llms-author{background:#f5f5f5;border-top:4px solid #2295ff;margin:45px 5px 5px;padding:0 10px 10px;text-align:center}.llms-instructor-info .llms-instructors .llms-author .avatar{background:#2295ff;border:4px solid #2295ff;display:block;margin:-35px auto 10px}.llms-instructor-info .llms-instructors .llms-author .llms-author-info{display:block}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.name{font-weight:700}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.label{font-size:85%}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.bio{font-size:90%;margin-bottom:0}.wp-block[data-type="llms/lesson-progression"]{text-align:center}.wp-block[data-type="llms/lesson-progression"] button{margin:0 2px}.llms-access-plans:after,.llms-access-plans:before{content:" ";display:table}.llms-access-plans:after{clear:both}@media (min-width:600px){.llms-access-plans.cols-1 .llms-access-plan{width:100%}.llms-access-plans.cols-2 .llms-access-plan{width:50%}.llms-access-plans.cols-3 .llms-access-plan{width:33.3333333333%}.llms-access-plans.cols-4 .llms-access-plan{width:25%}.llms-access-plans.cols-5 .llms-access-plan{width:20%}}.llms-free-enroll-form{margin-bottom:0}.llms-access-plan{box-sizing:border-box;float:left;text-align:center;width:100%}.llms-access-plan .llms-access-plan-content,.llms-access-plan .llms-access-plan-footer{background:#f1f1f1}.llms-access-plan.featured .llms-access-plan-featured{background:#4ba9ff}.llms-access-plan.featured .llms-access-plan-content,.llms-access-plan.featured .llms-access-plan-footer{border-left:3px solid #2295ff;border-right:3px solid #2295ff}.llms-access-plan.featured .llms-access-plan-footer{border-bottom-color:#2295ff}.llms-access-plan.on-sale .price-regular{text-decoration:line-through}.llms-access-plan .stamp{background:#2295ff;color:#fff;font-size:11px;font-style:normal;font-weight:300;padding:2px 3px;vertical-align:top}.llms-access-plan .llms-access-plan-restrictions ul{margin:0}.llms-access-plan-featured{color:#fff;font-size:14px;font-weight:400;margin:0 2px}.llms-access-plan-content{margin:0 2px}.llms-access-plan-content .llms-access-plan-pricing{padding:10px 0 0}.llms-access-plan-title{background:#2295ff;color:#fff;margin-bottom:0;padding:10px}.llms-access-plan-pricing .llms-price-currency-symbol{font-size:14px;vertical-align:top}.llms-access-plan-price{font-size:18px;font-variant:small-caps;line-height:20px}.llms-access-plan-price .lifterlms-price{font-weight:700}.llms-access-plan-price.sale{border-bottom:1px solid #d0d0d0;border-top:1px solid #d0d0d0;padding:5px 0}.llms-access-plan-expiration,.llms-access-plan-sale-end,.llms-access-plan-schedule,.llms-access-plan-trial{font-size:15px;font-variant:small-caps;line-height:1.2}.llms-access-plan-description{font-size:16px;padding:10px 10px 0}.llms-access-plan-description ul{margin:0}.llms-access-plan-description ul li{border-bottom:1px solid #d0d0d0;list-style-type:none}.llms-access-plan-description ul li:last-child{border-bottom:none}.llms-access-plan-description div:last-child,.llms-access-plan-description img:last-child,.llms-access-plan-description li:last-child,.llms-access-plan-description p:last-child,.llms-access-plan-description ul:last-child{margin-bottom:0}.llms-access-plan-restrictions .stamp{vertical-align:baseline}.llms-access-plan-restrictions ul{margin:0}.llms-access-plan-restrictions ul li{font-size:12px;line-height:14px;list-style-type:none}.llms-access-plan-restrictions a{color:#f8954f}.llms-access-plan-restrictions a:hover{color:#f67d28}.llms-access-plan-footer{border-bottom:3px solid #f1f1f1;margin:0 2px 2px;padding:10px}.llms-access-plan-footer .llms-access-plan-pricing{padding:0 0 10px}.llms-invalid-control{margin-bottom:24px}.llms-invalid-control .components-base-control{margin-bottom:0}.llms-invalid-control .components-base-control .components-text-control__input{background-color:rgba(204,24,24,.05);border-color:#cc1818}.llms-invalid-control .llms-invalid-control--msg{background-color:rgba(204,24,24,.05);border-left:4px solid #cc1818;color:#cc1818;font-size:12px;font-style:italic;margin-bottom:0;padding:6px 2px 6px 8px}.llms-pwd-meter{border:1px solid #e35b5b;border-radius:4px;margin-top:5px;overflow:hidden}.llms-pwd-meter>div{background:rgba(227,91,91,.25);font-size:75%;padding:0 5px;width:25%}.llms-field-group .block-editor-block-list__layout *{box-sizing:border-box}.llms-fields input,.llms-fields textarea{border:1px solid #999;color:#757575;padding:4px 8px}.llms-fields input:focus::-moz-placeholder,.llms-fields textarea:focus::-moz-placeholder{opacity:0}.llms-fields input:focus:-ms-input-placeholder,.llms-fields textarea:focus:-ms-input-placeholder{opacity:0}.llms-fields input:focus::placeholder,.llms-fields textarea:focus::placeholder{opacity:0}.llms-fields input::-moz-placeholder,.llms-fields textarea::-moz-placeholder{color:#757575}.llms-fields input:-ms-input-placeholder,.llms-fields textarea:-ms-input-placeholder{color:#757575}.llms-fields input::placeholder,.llms-fields textarea::placeholder{color:#757575}.llms-fields input:not([type=radio]):not([type=checkbox]),.llms-fields select,.llms-fields textarea{width:100%}.llms-fields input:not([type=radio]){border-radius:4px}.llms-fields textarea{resize:none}.llms-fields select{max-Width:none;pointer-events:none}.llms-fields .llms-field .block-editor-rich-text__editable{display:block}.llms-fields .llms-field label.llms-is-required>div{display:inline}.llms-fields .llms-field label.llms-is-required:after{color:#dc5757;content:" *"}.llms-field-option{align-items:top;display:flex;margin-bottom:4px}.llms-field-option.llms-sort-helper{background:#fff;border:1px solid #dedede;height:auto!important;padding:5px 10px;z-index:999}.llms-field-option .llms-field-opt-default{margin-top:6px}.llms-field-option .llms-field-opt-default .components-radio-control__input{margin-right:0}.llms-field-option .llms-field-opt-default,.llms-field-option .llms-field-opt-text,.llms-field-option .llms-field-opt-text .components-base-control__field{margin-bottom:0!important}.llms-field-option .llms-field-opt-db-key{display:flex;margin-top:2px}.llms-field-option .llms-field-opt-db-key .dashicon{color:#5a5a5a;margin-top:5px}.llms-field-option .llms-field-opt-db-key .components-text-control__input{background:#f5f5f5;font-family:monospace}.llms-field-option .llms-drag-handle{cursor:-webkit-grab;cursor:grab;flex:.8;margin-top:3px;padding-top:6px}.llms-field-option .llms-del-field-opt-wrap,.llms-field-option .llms-field-opt-default-wrap{flex:1;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.llms-field-option .llms-del-field-opt-wrap{margin-left:4px}.llms-field-option .llms-del-field-opt-wrap button{margin-top:3px}.llms-field-option .llms-del-field-opt-wrap button:hover,.llms-field-option .llms-del-field-opt-wrap button[aria-expanded=true]{color:#cc1818}.llms-field-option .llms-field-opt-text-wrap{flex:7}.llms-field-options--footer{margin-top:10px}.llms-cols-12 .llms-field{width:100%}.llms-cols-9 .llms-field{width:75%}.llms-cols-8 .llms-field{width:66.66%}.llms-cols-6 .llms-field{width:50%}.llms-cols-4 .llms-field{width:33.33%}.llms-cols-3 .llms-field{width:25%}.llms-field-group[data-field-layout=columns] .llms-cols-12,.llms-field-group[data-field-layout=columns] [class*=llms-cols-] .llms-field{width:100%}.llms-field-group[data-field-layout=columns] .llms-cols-9{width:75%}.llms-field-group[data-field-layout=columns] .llms-cols-8{width:66.66%}.llms-field-group[data-field-layout=columns] .llms-cols-6{width:50%}.llms-field-group[data-field-layout=columns] .llms-cols-4{width:33.33%}.llms-field-group[data-field-layout=columns] .llms-cols-3{width:25%}.llms-field-group[data-field-layout=columns] .block-editor-block-list__layout>.wp-block.llms-fields{display:inline-block}.llms-field-group[data-field-layout=columns] .block-editor-block-list__layout>.wp-block.llms-fields:nth-child(odd){padding-right:28px}.llms-field-group[data-field-layout=columns] .block-editor-block-list__layout>.wp-block.llms-fields:nth-child(2n){padding-left:28px}.llms-shortcodes-modal{width:800px}.llms-shortcodes-modal .llms-shortcodes-modal--main{display:flex}.llms-shortcodes-modal .llms-shortcodes-modal--main aside{flex:1;padding-right:16px}.llms-shortcodes-modal .llms-shortcodes-modal--main section{flex:2;padding-left:16px}.llms-shortcodes-modal .llms-shortcodes-modal--main .llms-table tr td,.llms-shortcodes-modal .llms-shortcodes-modal--main .llms-table tr th{text-align:left}.llms-instructor{border:1px solid #dedede;margin-bottom:-1px;padding:10px;position:relative;z-index:100}.llms-instructor .llms-instructor--header{align-items:center;display:flex}.llms-instructor .llms-instructor--header section{flex:2}.llms-instructor .llms-instructor--header section small{margin-left:3px}.llms-instructor .llms-instructor--header aside{flex:1;text-align:right}.llms-instructor .llms-instructor--header .components-button.is-small.has-icon:not(.has-text){min-width:24px;padding:0}.llms-instructor .llms-instructor--header .dashicons-star-filled{color:#ffb900;margin:2px 2px 0 0}.llms-instructor.llms-is-dragging{background:#fff;border:1px solid #dedede;box-shadow:0 4px 8px 2px #dedede;z-index:999}.llms-instructor .llms-instructor--settings{margin-top:10px}
\ No newline at end of file
diff --git a/libraries/lifterlms-blocks/assets/js/llms-blocks-backwards-compat.asset.php b/libraries/lifterlms-blocks/assets/js/llms-blocks-backwards-compat.asset.php
new file mode 100644
index 0000000000..2bf63b8a9a
--- /dev/null
+++ b/libraries/lifterlms-blocks/assets/js/llms-blocks-backwards-compat.asset.php
@@ -0,0 +1 @@
+ array('lodash', 'wp-polyfill', 'wp-redux-routine'), 'version' => '5f9ccb06c2e41ea67be1');
diff --git a/libraries/lifterlms-blocks/assets/js/llms-blocks-backwards-compat.js b/libraries/lifterlms-blocks/assets/js/llms-blocks-backwards-compat.js
new file mode 100644
index 0000000000..6613118add
--- /dev/null
+++ b/libraries/lifterlms-blocks/assets/js/llms-blocks-backwards-compat.js
@@ -0,0 +1 @@
+(()=>{var e={909:e=>{"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}function r(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:this;this._map.forEach((function(o,i){null!==i&&"object"===t(i)&&(o=o[1]),e.call(n,o,i,r)}))}},{key:"clear",value:function(){this._map=new Map,this._arrayTreeMap=new Map,this._objectTreeMap=new Map}},{key:"size",get:function(){return this._map.size}}],i&&r(o.prototype,i),e}();e.exports=o},884:e=>{e.exports=function(e){var t,r=Object.keys(e);return t=function(){var e,t,n;for(e="return {",t=0;t{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{"use strict";var e={};r.r(e),r.d(e,{getCachedResolvers:()=>U,getIsResolving:()=>N,hasFinishedResolution:()=>j,hasStartedResolution:()=>A,isResolving:()=>L});var t={};r.r(t),r.d(t,{finishResolution:()=>k,finishResolutions:()=>x,invalidateResolution:()=>V,invalidateResolutionForStore:()=>C,invalidateResolutionForStoreSelector:()=>D,startResolution:()=>P,startResolutions:()=>F});var n=r(884),o=r.n(n);const i=window.lodash;function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t({storeKey:t,selectorName:r,args:n})=>e.select(t)[r](...n))),"@@data/RESOLVE_SELECT":_((e=>({storeKey:t,selectorName:r,args:n})=>{const o=e.select(t)[r].hasResolver?"resolveSelect":"select";return e[o](t)[r](...n)})),"@@data/DISPATCH":_((e=>({storeKey:t,actionName:r,args:n})=>e.dispatch(t)[r](...n)))},w=()=>e=>t=>{return!(r=t)||"object"!=typeof r&&"function"!=typeof r||"function"!=typeof r.then?e(t):t.then((t=>{if(t)return e(t)}));var r},E="core/data",m=(e,t)=>()=>r=>n=>{const o=e.select(E).getCachedResolvers(t);return Object.entries(o).forEach((([r,o])=>{const s=(0,i.get)(e.stores,[t,"resolvers",r]);s&&s.shouldInvalidate&&o.forEach(((o,i)=>{!1===o&&s.shouldInvalidate(n,...i)&&e.dispatch(E).invalidateResolution(t,r,i)}))})),r(n)},T=("selectorName",e=>(t={},r)=>{const n=r.selectorName;if(void 0===n)return t;const o=e(t[n],r);return o===t[n]?t:{...t,[n]:o}})(((e=new(S()),t)=>{switch(t.type){case"START_RESOLUTION":case"FINISH_RESOLUTION":{const r="START_RESOLUTION"===t.type,n=new(S())(e);return n.set(t.args,r),n}case"START_RESOLUTIONS":case"FINISH_RESOLUTIONS":{const r="START_RESOLUTIONS"===t.type,n=new(S())(e);for(const e of t.args)n.set(e,r);return n}case"INVALIDATE_RESOLUTION":{const r=new(S())(e);return r.delete(t.args),r}}return e}));const I=(e={},t)=>{switch(t.type){case"INVALIDATE_RESOLUTION_FOR_STORE":return{};case"INVALIDATE_RESOLUTION_FOR_STORE_SELECTOR":return(0,i.has)(e,[t.selectorName])?(0,i.omit)(e,[t.selectorName]):e;case"START_RESOLUTION":case"FINISH_RESOLUTION":case"START_RESOLUTIONS":case"FINISH_RESOLUTIONS":case"INVALIDATE_RESOLUTION":return T(e,t)}return e};function N(e,t,r){const n=(0,i.get)(e,[t]);if(n)return n.get(r)}function A(e,t,r=[]){return void 0!==N(e,t,r)}function j(e,t,r=[]){return!1===N(e,t,r)}function L(e,t,r=[]){return!0===N(e,t,r)}function U(e){return e}function P(e,t){return{type:"START_RESOLUTION",selectorName:e,args:t}}function k(e,t){return{type:"FINISH_RESOLUTION",selectorName:e,args:t}}function F(e,t){return{type:"START_RESOLUTIONS",selectorName:e,args:t}}function x(e,t){return{type:"FINISH_RESOLUTIONS",selectorName:e,args:t}}function V(e,t){return{type:"INVALIDATE_RESOLUTION",selectorName:e,args:t}}function C(){return{type:"INVALIDATE_RESOLUTION_FOR_STORE"}}function D(e){return{type:"INVALIDATE_RESOLUTION_FOR_STORE_SELECTOR",selectorName:e}}function M(r,n){return{name:r,instantiate:s=>{const c=n.reducer,u=function(e,t,r,n){const s={...t.controls,...R},c=(0,i.mapValues)(s,(e=>e.isRegistryControl?e(r):e)),u=[m(r,e),w,b()(c)];var a;t.__experimentalUseThunks&&u.push((a=n,()=>e=>t=>"function"==typeof t?t(a):e(t)));const l=[y(...u)];"undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION__&&l.push(window.__REDUX_DEVTOOLS_EXTENSION__({name:e,instanceId:e}));const{reducer:f,initialState:p}=t;return h(o()({metadata:I,root:f}),{root:p},(0,i.flowRight)(l))}(r,n,s,{registry:s,get dispatch(){return Object.assign((e=>u.dispatch(e)),v())},get select(){return Object.assign((e=>e(u.__unstableOriginalGetState())),g())},get resolveSelect(){return O()}}),a=function(){const e={};return{isRunning:(t,r)=>e[t]&&e[t].get(r),clear(t,r){e[t]&&e[t].delete(r)},markAsRunning(t,r){e[t]||(e[t]=new(S())),e[t].set(r,!0)}}}();let l;const f=function(e,t){return(0,i.mapValues)(e,(e=>(...r)=>Promise.resolve(t.dispatch(e(...r)))))}({...t,...n.actions},u);let p=function(e,t){return(0,i.mapValues)(e,(e=>{const r=function(){const r=arguments.length,n=new Array(r+1);n[0]=t.__unstableOriginalGetState();for(let e=0;e(t,...r)=>e(t.metadata,...r))),...(0,i.mapValues)(n.selectors,(e=>(e.isRegistrySelector&&(e.registry=s),(t,...r)=>e(t.root,...r))))},u);if(n.resolvers){const e=function(e,t,r,n){const o=(0,i.mapValues)(e,(e=>e.fulfill?e:{...e,fulfill:e}));return{resolvers:o,selectors:(0,i.mapValues)(t,((t,s)=>{const c=e[s];if(!c)return t.hasResolver=!1,t;const u=(...e)=>(async function(){const t=r.getState();if(n.isRunning(s,e)||"function"==typeof c.isFulfilled&&c.isFulfilled(t,...e))return;const{metadata:u}=r.__unstableOriginalGetState();A(u,s,e)||(n.markAsRunning(s,e),setTimeout((async()=>{n.clear(s,e),r.dispatch(P(s,e)),await async function(e,t,r,...n){const o=(0,i.get)(t,[r]);if(!o)return;const s=o.fulfill(...n);s&&await e.dispatch(s)}(r,o,s,...e),r.dispatch(k(s,e))})))}(...e),t(...e));return u.hasResolver=!0,u}))}}(n.resolvers,p,u,a);l=e.resolvers,p=e.selectors}const d=function(e,t){return(0,i.mapValues)((0,i.omit)(e,["getIsResolving","hasStartedResolution","hasFinishedResolution","isResolving","getCachedResolvers"]),((r,n)=>(...o)=>new Promise((i=>{const s=()=>e.hasFinishedResolution(n,o),c=()=>r.apply(null,o),u=c();if(s())return i(u);const a=t.subscribe((()=>{s()&&(a(),i(c()))}))}))))}(p,u),g=()=>p,v=()=>f,O=()=>d;u.__unstableOriginalGetState=u.getState,u.getState=()=>u.__unstableOriginalGetState().root;const _=u&&(e=>{let t=u.__unstableOriginalGetState();return u.subscribe((()=>{const r=u.__unstableOriginalGetState(),n=r!==t;t=r,n&&e()}))});return{reducer:c,store:u,actions:f,selectors:p,resolvers:l,getSelectors:g,getResolveSelectors:O,getActions:v,subscribe:_}}}}const G=function(e={},t=null){const r={};let n=[];const o=new Set;function s(){n.forEach((e=>e()))}const c=e=>(n.push(e),()=>{n=(0,i.without)(n,e)});function u(e,t){if("function"!=typeof t.getSelectors)throw new TypeError("config.getSelectors must be a function");if("function"!=typeof t.getActions)throw new TypeError("config.getActions must be a function");if("function"!=typeof t.subscribe)throw new TypeError("config.subscribe must be a function");r[e]=t,t.subscribe(s)}let a={registerGenericStore:u,stores:r,namespaces:r,subscribe:c,select:function(e){const n=(0,i.isObject)(e)?e.name:e;o.add(n);const s=r[n];return s?s.getSelectors():t&&t.select(n)},resolveSelect:function(e){const n=(0,i.isObject)(e)?e.name:e;o.add(n);const s=r[n];return s?s.getResolveSelectors():t&&t.resolveSelect(n)},dispatch:function(e){const n=(0,i.isObject)(e)?e.name:e,o=r[n];return o?o.getActions():t&&t.dispatch(n)},use:function(e,t){return a={...a,...e(a,t)},a},register:function(e){u(e.name,e.instantiate(a))},__experimentalMarkListeningStores:function(e,t){o.clear();const r=e.call(this);return t.current=Array.from(o),r},__experimentalSubscribeStore:function(e,n){return e in r?r[e].subscribe(n):t?t.__experimentalSubscribeStore(e,n):c(n)},registerStore:(e,t)=>{if(!t.reducer)throw new TypeError("Must specify store reducer");const r=M(e,t).instantiate(a);return u(e,r),r.store}};return u(E,function(e){const t=t=>(r,...n)=>e.select(r)[t](...n),r=t=>(r,...n)=>e.dispatch(r)[t](...n);return{getSelectors:()=>["getIsResolving","hasStartedResolution","hasFinishedResolution","isResolving","getCachedResolvers"].reduce(((e,r)=>({...e,[r]:t(r)})),{}),getActions:()=>["startResolution","finishResolution","invalidateResolution","invalidateResolutionForStore","invalidateResolutionForStoreSelector"].reduce(((e,t)=>({...e,[t]:r(t)})),{}),subscribe:()=>()=>{}}}(a)),Object.entries(e).forEach((([e,t])=>a.registerStore(e,t))),t&&t.subscribe(s),l=a,(0,i.mapValues)(l,((e,t)=>"function"!=typeof e?e:function(){return a[t].apply(null,arguments)}));var l}(),H=(G.select,G.resolveSelect,G.dispatch,G.subscribe,G.registerGenericStore,G.registerStore,G.use,G.register);window.wp.blockEditor.store="core/block-editor",window.wp.editor.store="core/editor",window.wp.notices.store="core/notices",window.wp.data={...window.wp.data,createReduxStore:M,register:H}})()})();
\ No newline at end of file
diff --git a/libraries/lifterlms-blocks/assets/js/llms-blocks.asset.php b/libraries/lifterlms-blocks/assets/js/llms-blocks.asset.php
new file mode 100644
index 0000000000..6e0c534b34
--- /dev/null
+++ b/libraries/lifterlms-blocks/assets/js/llms-blocks.asset.php
@@ -0,0 +1 @@
+ array('jquery', 'lodash', 'react', 'react-dom', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-dom-ready', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-rich-text', 'wp-server-side-render', 'wp-url'), 'version' => 'c66faf9c88a830073675');
diff --git a/libraries/lifterlms-blocks/assets/js/llms-blocks.js b/libraries/lifterlms-blocks/assets/js/llms-blocks.js
new file mode 100644
index 0000000000..5fa55c432a
--- /dev/null
+++ b/libraries/lifterlms-blocks/assets/js/llms-blocks.js
@@ -0,0 +1,24 @@
+(()=>{var e={679:(e,t,n)=>{"use strict";var r=n(296),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},s={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},l={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},i={};function a(e){return r.isMemo(e)?l:i[e.$$typeof]||o}i[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},i[r.Memo]=l;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var l=u(n);d&&(l=l.concat(d(n)));for(var i=a(t),h=a(n),g=0;g{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,s=n?Symbol.for("react.fragment"):60107,l=n?Symbol.for("react.strict_mode"):60108,i=n?Symbol.for("react.profiler"):60114,a=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,v=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,_=n?Symbol.for("react.responder"):60118,y=n?Symbol.for("react.scope"):60119;function w(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case s:case i:case l:case f:return e;default:switch(e=e&&e.$$typeof){case c:case p:case g:case h:case a:return e;default:return t}}case o:return t}}}function E(e){return w(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=a,t.Element=r,t.ForwardRef=p,t.Fragment=s,t.Lazy=g,t.Memo=h,t.Portal=o,t.Profiler=i,t.StrictMode=l,t.Suspense=f,t.isAsyncMode=function(e){return E(e)||w(e)===u},t.isConcurrentMode=E,t.isContextConsumer=function(e){return w(e)===c},t.isContextProvider=function(e){return w(e)===a},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return w(e)===p},t.isFragment=function(e){return w(e)===s},t.isLazy=function(e){return w(e)===g},t.isMemo=function(e){return w(e)===h},t.isPortal=function(e){return w(e)===o},t.isProfiler=function(e){return w(e)===i},t.isStrictMode=function(e){return w(e)===l},t.isSuspense=function(e){return w(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===s||e===d||e===i||e===l||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===a||e.$$typeof===c||e.$$typeof===p||e.$$typeof===b||e.$$typeof===_||e.$$typeof===y||e.$$typeof===v)},t.typeOf=w},296:(e,t,n)=>{"use strict";e.exports=n(103)},703:(e,t,n)=>{"use strict";var r=n(414);function o(){}function s(){}s.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,s,l){if(l!==r){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:s,resetWarningCache:o};return n.PropTypes=n,n}},581:(e,t,n)=>{e.exports=n(703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},639:(e,t,n)=>{"use strict";var r=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(this.props,[]);return function(e){u.forEach((function(t){return delete e[t]}))}(o),o.className=this.props.inputClassName,o.id=this.state.inputId,o.style=n,l.default.createElement("div",{className:this.props.className,style:t},this.renderStyles(),l.default.createElement("input",r({},o,{ref:this.inputRef})),l.default.createElement("div",{ref:this.sizerRef,style:c},e),this.props.placeholder?l.default.createElement("div",{ref:this.placeHolderSizerRef,style:c},this.props.placeholder):null)}}]),t}(s.Component);m.propTypes={className:i.default.string,defaultValue:i.default.any,extraWidth:i.default.oneOfType([i.default.number,i.default.string]),id:i.default.string,injectStyles:i.default.bool,inputClassName:i.default.string,inputRef:i.default.func,inputStyle:i.default.object,minWidth:i.default.oneOfType([i.default.number,i.default.string]),onAutosize:i.default.func,onChange:i.default.func,placeholder:i.default.string,placeholderIsMinWidth:i.default.bool,style:i.default.object,value:i.default.any},m.defaultProps={minWidth:1,injectStyles:!0},t.Z=m},774:function(e,t){!function(e){"use strict";function t(e,t,n,r){var o,s=!1,l=0;function i(){o&&clearTimeout(o)}function a(){for(var a=arguments.length,c=new Array(a),u=0;ue?f():!0!==t&&(o=setTimeout(r?m:f,void 0===r?e-p:e)))}return"boolean"!=typeof t&&(r=n,n=t,t=void 0),a.cancel=function(){i(),s=!0},a}e.debounce=function(e,n,r){return void 0===r?t(e,n,!1):t(e,r,!1!==n)},e.throttle=t,Object.defineProperty(e,"__esModule",{value:!0})}(t)},196:e=>{"use strict";e.exports=window.React}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var s=t[r]={exports:{}};return e[r].call(s.exports,s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{"use strict";var e={};n.r(e),n.d(e,{addField:()=>oo,deleteField:()=>so,editField:()=>lo,loadField:()=>io,receiveFields:()=>co,renameField:()=>uo,resetFields:()=>po,unloadField:()=>ao});var t={};n.r(t),n.d(t,{fieldExists:()=>fo,getField:()=>mo,getFieldBy:()=>ho,getFields:()=>go,getLoadedFields:()=>vo,isDuplicate:()=>bo,isLoaded:()=>_o});var r={};n.r(r),n.d(r,{name:()=>So,postTypes:()=>Oo,settings:()=>Io});var o={};n.r(o),n.d(o,{name:()=>Po,postTypes:()=>Ro,settings:()=>Mo});var s={};n.r(s),n.d(s,{name:()=>Ao,postTypes:()=>Lo,settings:()=>No});var l={};n.r(l),n.d(l,{name:()=>Bo,postTypes:()=>$o,settings:()=>Ho});var i={};n.r(i),n.d(i,{name:()=>qo,postTypes:()=>zo,settings:()=>Wo});var a={};n.r(a),n.d(a,{name:()=>Go,postTypes:()=>Ko,settings:()=>Yo});var c={};n.r(c),n.d(c,{name:()=>Xo,postTypes:()=>Qo,settings:()=>Zo});var u={};n.r(u),n.d(u,{name:()=>ns,postTypes:()=>rs,settings:()=>os});var d={};n.r(d),n.d(d,{name:()=>ss,settings:()=>ls});var p={};n.r(p),n.d(p,{Search:()=>Vr,SearchPost:()=>Br,SearchUser:()=>ys,SortableDragHandle:()=>vi,SortableList:()=>_i});var f={};n.r(f),n.d(f,{composed:()=>Vi,name:()=>Ni,postTypes:()=>Fi,settings:()=>zi});var m={};n.r(m),n.d(m,{composed:()=>Yi,name:()=>Gi,postTypes:()=>Ki,settings:()=>Xi});var h={};n.r(h),n.d(h,{composed:()=>ea,name:()=>Zi,postTypes:()=>Ji,settings:()=>ta});var g={};n.r(g),n.d(g,{composed:()=>sa,name:()=>ra,postTypes:()=>oa,settings:()=>la});var v={};n.r(v),n.d(v,{composed:()=>pa,name:()=>ua,postTypes:()=>da,settings:()=>ma});var b={};n.r(b),n.d(b,{composed:()=>ga,name:()=>ha,postTypes:()=>da,settings:()=>va});var _={};n.r(_),n.d(_,{composed:()=>_a,name:()=>ba,postTypes:()=>da,settings:()=>ya});var y={};n.r(y),n.d(y,{composed:()=>Ea,name:()=>wa,postTypes:()=>da,settings:()=>xa});var w={};n.r(w),n.d(w,{composed:()=>ka,name:()=>Ca,postTypes:()=>da,settings:()=>Sa});var E={};n.r(E),n.d(E,{composed:()=>Ia,name:()=>Oa,postTypes:()=>da,settings:()=>Ta});var x={};n.r(x),n.d(x,{composed:()=>Pa,name:()=>Da,postTypes:()=>da,settings:()=>Ra});var C={};n.r(C),n.d(C,{composed:()=>La,name:()=>Ma,postTypes:()=>da,settings:()=>Aa});var k={};n.r(k),n.d(k,{composed:()=>Va,name:()=>Na,postTypes:()=>Fa,settings:()=>Ba});var S={};n.r(S),n.d(S,{composed:()=>Ha,name:()=>$a,postTypes:()=>da,settings:()=>ja});var O={};n.r(O),n.d(O,{composed:()=>Wa,name:()=>qa,postTypes:()=>za,settings:()=>Ga});var I={};n.r(I),n.d(I,{composed:()=>Xa,name:()=>Ka,postTypes:()=>Ya,settings:()=>Qa});var T={};n.r(T),n.d(T,{composed:()=>Ja,name:()=>Za,postTypes:()=>da,settings:()=>ec});var D={};n.r(D),n.d(D,{composed:()=>nc,name:()=>tc,postTypes:()=>da,settings:()=>rc});var P={};n.r(P),n.d(P,{composed:()=>sc,name:()=>oc,postTypes:()=>da,settings:()=>lc});var R={};n.r(R),n.d(R,{composed:()=>ac,name:()=>ic,postTypes:()=>oa,settings:()=>cc});var M={};n.r(M),n.d(M,{composed:()=>pc,name:()=>uc,postTypes:()=>dc,settings:()=>fc});var L={};n.r(L),n.d(L,{composed:()=>hc,name:()=>mc,postTypes:()=>oa,settings:()=>gc});var A={};n.r(A),n.d(A,{composed:()=>bc,name:()=>vc,postTypes:()=>da,settings:()=>_c});var N={};n.r(N),n.d(N,{composed:()=>wc,name:()=>yc,postTypes:()=>da,settings:()=>Ec});var F={};n.r(F),n.d(F,{checkboxes:()=>m,confirmGroup:()=>f,radio:()=>h,redeemVoucher:()=>_,select:()=>g,text:()=>v,textarea:()=>b,userAddress:()=>O,userAddressCity:()=>P,userAddressCountry:()=>R,userAddressPostalCode:()=>A,userAddressRegion:()=>M,userAddressState:()=>L,userAddressStreet:()=>I,userAddressStreetPrimary:()=>T,userAddressStreetSecondary:()=>D,userDisplayName:()=>y,userEmail:()=>E,userFirstName:()=>x,userLastName:()=>C,userLogin:()=>w,userNames:()=>k,userPassword:()=>S,userPhone:()=>N});const V=window.wp.hooks;function B(e,t){let n=!0;return(-1!==window.llms.dynamic_blocks.indexOf(t)||e.supports&&!1===e.supports.llms_visibility||(0,V.applyFilters)("llms_block_visibility_disallowed_blocks",["core/freeform","llms/php-template"]).includes(t))&&(n=!1),(0,V.applyFilters)("llms_block_supports_visibility",n,e,t)}const $=window.wp.element,H=window.wp.i18n,U=window.wp.compose,j=window.wp.blockEditor,q=window.wp.components,z={all:(0,H.__)("everyone","lifterlms"),enrolled:(0,H.__)("enrolled users","lifterlms"),not_enrolled:(0,H.__)("non-enrolled users or visitors","lifterlms"),logged_in:(0,H.__)("logged in users","lifterlms"),logged_out:(0,H.__)("logged out users","lifterlms")},W=Object.keys(z).map((e=>({label:z[e],value:e})));class G extends $.Component{render(){const{llms_visibility:e}=this.props.attributes,{children:t}=this.props;return"all"===e?t:(0,$.createElement)("div",{className:"llms-block-visibility"},t,(0,$.createElement)("div",{className:"llms-block-visibility--indicator"},(0,$.createElement)(q.Dashicon,{icon:"visibility"}),(0,$.createElement)("span",{className:"llms-block-visibility--msg"},(0,H.sprintf)(// Translators: %s = visibility setting label.
+(0,H.__)("This block is only visible to %s","lifterlms"),z[n=e]||n))));var n}}function K(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Y=n(774);function X(){return X=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var Z=n(196),J=n.n(Z),ee=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t0?ie(ve,--he):0,fe--,10===ge&&(fe=1,pe--),ge}function we(){return ge=he2||ke(ge)>3?"":" "}function De(e,t){for(;--t&&we()&&!(ge<48||ge>102||ge>57&&ge<65||ge>70&&ge<97););return Ce(e,xe()+(t<6&&32==Ee()&&32==we()))}function Pe(e){for(;we();)switch(ge){case e:return he;case 34:case 39:34!==e&&39!==e&&Pe(ge);break;case 40:41===e&&Pe(e);break;case 92:we()}return he}function Re(e,t){for(;we()&&e+ge!==57&&(e+ge!==84||47!==Ee()););return"/*"+Ce(t,he-1)+"*"+ne(47===e?e:we())}function Me(e){for(;!ke(Ee());)we();return Ce(e,he)}var Le="-ms-",Ae="-moz-",Ne="-webkit-",Fe="comm",Ve="rule",Be="decl",$e="@keyframes";function He(e,t){for(var n="",r=ue(e),o=0;o6)switch(ie(e,t+1)){case 109:if(45!==ie(e,t+4))break;case 102:return se(e,/(.+:)(.+)-([^]+)/,"$1-webkit-$2-$3$1"+Ae+(108==ie(e,t+3)?"$3":"$2-$3"))+e;case 115:return~le(e,"stretch")?je(se(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==ie(e,t+1))break;case 6444:switch(ie(e,ce(e)-3-(~le(e,"!important")&&10))){case 107:return se(e,":",":"+Ne)+e;case 101:return se(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+Ne+(45===ie(e,14)?"inline-":"")+"box$3$1"+Ne+"$2$3$1"+Le+"$2box$3")+e}break;case 5936:switch(ie(e,t+11)){case 114:return Ne+e+Le+se(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return Ne+e+Le+se(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return Ne+e+Le+se(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return Ne+e+Le+e+e}return e}function qe(e){return Oe(ze("",null,null,null,[""],e=Se(e),0,[0],e))}function ze(e,t,n,r,o,s,l,i,a){for(var c=0,u=0,d=l,p=0,f=0,m=0,h=1,g=1,v=1,b=0,_="",y=o,w=s,E=r,x=_;g;)switch(m=b,b=we()){case 40:if(108!=m&&58==x.charCodeAt(d-1)){-1!=le(x+=se(Ie(b),"&","&\f"),"&\f")&&(v=-1);break}case 34:case 39:case 91:x+=Ie(b);break;case 9:case 10:case 13:case 32:x+=Te(m);break;case 92:x+=De(xe()-1,7);continue;case 47:switch(Ee()){case 42:case 47:de(Ge(Re(we(),xe()),t,n),a);break;default:x+="/"}break;case 123*h:i[c++]=ce(x)*v;case 125*h:case 59:case 0:switch(b){case 0:case 125:g=0;case 59+u:f>0&&ce(x)-d&&de(f>32?Ke(x+";",r,n,d-1):Ke(se(x," ","")+";",r,n,d-2),a);break;case 59:x+=";";default:if(de(E=We(x,t,n,c,u,o,i,_,y=[],w=[],d),s),123===b)if(0===u)ze(x,t,E,E,y,s,d,i,w);else switch(p){case 100:case 109:case 115:ze(e,E,E,r&&de(We(e,E,E,0,0,o,i,_,o,y=[],d),w),o,w,d,i,r?y:w);break;default:ze(x,E,E,E,[""],w,0,i,w)}}c=u=f=0,h=v=1,_=x="",d=l;break;case 58:d=1+ce(x),f=m;default:if(h<1)if(123==b)--h;else if(125==b&&0==h++&&125==ye())continue;switch(x+=ne(b),b*h){case 38:v=u>0?1:(x+="\f",-1);break;case 44:i[c++]=(ce(x)-1)*v,v=1;break;case 64:45===Ee()&&(x+=Ie(we())),p=Ee(),u=d=ce(_=x+=Me(xe())),b++;break;case 45:45===m&&2==ce(x)&&(h=0)}}return s}function We(e,t,n,r,o,s,l,i,a,c,u){for(var d=o-1,p=0===o?s:[""],f=ue(p),m=0,h=0,g=0;m0?p[v]+" "+b:se(b,/&\f/g,p[v])))&&(a[g++]=_);return be(e,t,n,0===o?Ve:i,a,c,u)}function Ge(e,t,n){return be(e,t,n,Fe,ne(ge),ae(e,2,-2),0)}function Ke(e,t,n,r){return be(e,t,n,Be,ae(e,0,r),ae(e,r+1,-1),r)}var Ye=function(e,t,n){for(var r=0,o=0;r=o,o=Ee(),38===r&&12===o&&(t[n]=1),!ke(o);)we();return Ce(e,he)},Xe=new WeakMap,Qe=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||Xe.get(n))&&!r){Xe.set(e,!0);for(var o=[],s=function(e,t){return Oe(function(e,t){var n=-1,r=44;do{switch(ke(r)){case 0:38===r&&12===Ee()&&(t[n]=1),e[n]+=Ye(he-1,t,n);break;case 2:e[n]+=Ie(r);break;case 4:if(44===r){e[++n]=58===Ee()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=ne(r)}}while(r=we());return e}(Se(e),t))}(t,o),l=n.props,i=0,a=0;i-1&&!e.return)switch(e.type){case Be:e.return=je(e.value,e.length);break;case $e:return He([_e(e,{value:se(e.value,"@","@"+Ne)})],r);case Ve:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=/(::plac\w+|:read-\w+)/.exec(e))?e[0]:e}(t)){case":read-only":case":read-write":return He([_e(e,{props:[se(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return He([_e(e,{props:[se(t,/:(plac\w+)/,":-webkit-input-$1")]}),_e(e,{props:[se(t,/:(plac\w+)/,":-moz-$1")]}),_e(e,{props:[se(t,/:(plac\w+)/,Le+"input-$1")]})],r)}return""}))}}];const et=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var r,o,s=e.stylisPlugins||Je,l={},i=[];r=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)},st={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};var lt=/[A-Z]|^ms/g,it=/_EMO_([^_]+?)_([^]*?)_EMO_/g,at=function(e){return 45===e.charCodeAt(1)},ct=function(e){return null!=e&&"boolean"!=typeof e},ut=function(e){var t=Object.create(null);return function(e){return void 0===t[e]&&(t[e]=at(n=e)?n:n.replace(lt,"-$&").toLowerCase()),t[e];var n}}(),dt=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(it,(function(e,t,n){return ft={name:t,styles:n,next:ft},t}))}return 1===st[e]||at(e)||"number"!=typeof t||0===t?t:t+"px"};function pt(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return ft={name:n.name,styles:n.styles,next:ft},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)ft={name:r.name,styles:r.styles,next:ft},r=r.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o-1}function Zt(e){return Qt(e)?window.pageYOffset:e.scrollTop}function Jt(e,t){Qt(e)?window.scrollTo(0,t):e.scrollTop=t}function en(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function tn(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:200,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Wt,o=Zt(e),s=t-o,l=10,i=0;function a(){var t=en(i+=l,o,s,n);Jt(e,t),i=f)return{placement:"bottom",maxHeight:t};if(x>=f&&!l)return s&&tn(a,C,S),{placement:"bottom",maxHeight:t};if(!l&&x>=r||l&&w>=r)return s&&tn(a,C,S),{placement:"bottom",maxHeight:l?w-b:x-b};if("auto"===o||l){var O=t,I=l?y:E;return I>=r&&(O=Math.min(I-b-i.controlHeight,t)),{placement:"top",maxHeight:O}}if("bottom"===o)return s&&Jt(a,C),{placement:"bottom",maxHeight:t};break;case"top":if(y>=f)return{placement:"top",maxHeight:t};if(E>=f&&!l)return s&&tn(a,k,S),{placement:"top",maxHeight:t};if(!l&&E>=r||l&&y>=r){var T=t;return(!l&&E>=r||l&&y>=r)&&(T=l?y-_:E-_),s&&tn(a,k,S),{placement:"top",maxHeight:T}}return{placement:"bottom",maxHeight:t};default:throw new Error('Invalid placement provided "'.concat(o,'".'))}return c}var cn=function(e){return"auto"===e?"bottom":e},un=(0,Z.createContext)({getPortalPlacement:null}),dn=function(e){Vt(n,e);var t=zt(n);function n(){var e;Lt(this,n);for(var r=arguments.length,o=new Array(r),s=0;se.length)&&(t=e.length);for(var n=0,r=new Array(t);n0,h=d-p-u,g=!1;h>t&&l.current&&(r&&r(e),l.current=!1),m&&i.current&&(s&&s(e),i.current=!1),m&&t>h?(n&&!l.current&&n(e),f.scrollTop=d,g=!0,l.current=!0):!m&&-t>u&&(o&&!i.current&&o(e),f.scrollTop=0,g=!0,i.current=!0),g&&function(e){e.preventDefault(),e.stopPropagation()}(e)}}),[]),d=(0,Z.useCallback)((function(e){u(e,e.deltaY)}),[u]),p=(0,Z.useCallback)((function(e){a.current=e.changedTouches[0].clientY}),[]),f=(0,Z.useCallback)((function(e){var t=a.current-e.changedTouches[0].clientY;u(e,t)}),[u]),m=(0,Z.useCallback)((function(e){if(e){var t=!!ln&&{passive:!1};"function"==typeof e.addEventListener&&e.addEventListener("wheel",d,t),"function"==typeof e.addEventListener&&e.addEventListener("touchstart",p,t),"function"==typeof e.addEventListener&&e.addEventListener("touchmove",f,t)}}),[f,p,d]),h=(0,Z.useCallback)((function(e){e&&("function"==typeof e.removeEventListener&&e.removeEventListener("wheel",d,!1),"function"==typeof e.removeEventListener&&e.removeEventListener("touchstart",p,!1),"function"==typeof e.removeEventListener&&e.removeEventListener("touchmove",f,!1))}),[f,p,d]);return(0,Z.useEffect)((function(){if(t){var e=c.current;return m(e),function(){h(e)}}}),[t,m,h]),function(e){c.current=e}}({isEnabled:void 0===r||r,onBottomArrive:e.onBottomArrive,onBottomLeave:e.onBottomLeave,onTopArrive:e.onTopArrive,onTopLeave:e.onTopLeave}),s=function(e){var t=e.isEnabled,n=e.accountForScrollbars,r=void 0===n||n,o=(0,Z.useRef)({}),s=(0,Z.useRef)(null),l=(0,Z.useCallback)((function(e){if(cr){var t=document.body,n=t&&t.style;if(r&&rr.forEach((function(e){var t=n&&n[e];o.current[e]=t})),r&&ur<1){var s=parseInt(o.current.paddingRight,10)||0,l=document.body?document.body.clientWidth:0,i=window.innerWidth-l+s||0;Object.keys(or).forEach((function(e){var t=or[e];n&&(n[e]=t)})),n&&(n.paddingRight="".concat(i,"px"))}t&&ar()&&(t.addEventListener("touchmove",sr,dr),e&&(e.addEventListener("touchstart",ir,dr),e.addEventListener("touchmove",lr,dr))),ur+=1}}),[]),i=(0,Z.useCallback)((function(e){if(cr){var t=document.body,n=t&&t.style;ur=Math.max(ur-1,0),r&&ur<1&&rr.forEach((function(e){var t=o.current[e];n&&(n[e]=t)})),t&&ar()&&(t.removeEventListener("touchmove",sr,dr),e&&(e.removeEventListener("touchstart",ir,dr),e.removeEventListener("touchmove",lr,dr)))}}),[]);return(0,Z.useEffect)((function(){if(t){var e=s.current;return l(e),function(){i(e)}}}),[t,l,i]),function(e){s.current=e}}({isEnabled:n});return St(J().Fragment,null,n&&St("div",{onClick:pr,css:fr}),t((function(e){o(e),s(e)})))}var hr={clearIndicator:In,container:function(e){var t=e.isDisabled;return{label:"container",direction:e.isRtl?"rtl":null,pointerEvents:t?"none":null,position:"relative"}},control:function(e){var t=e.isDisabled,n=e.isFocused,r=e.theme,o=r.colors,s=r.borderRadius,l=r.spacing;return{label:"control",alignItems:"center",backgroundColor:t?o.neutral5:o.neutral0,borderColor:t?o.neutral10:n?o.primary:o.neutral20,borderRadius:s,borderStyle:"solid",borderWidth:1,boxShadow:n?"0 0 0 1px ".concat(o.primary):null,cursor:"default",display:"flex",flexWrap:"wrap",justifyContent:"space-between",minHeight:l.controlHeight,outline:"0 !important",position:"relative",transition:"all 100ms","&:hover":{borderColor:n?o.primary:o.neutral30}}},dropdownIndicator:On,group:function(e){var t=e.theme.spacing;return{paddingBottom:2*t.baseUnit,paddingTop:2*t.baseUnit}},groupHeading:function(e){var t=e.theme.spacing;return{label:"group",color:"#999",cursor:"default",display:"block",fontSize:"75%",fontWeight:"500",marginBottom:"0.25em",paddingLeft:3*t.baseUnit,paddingRight:3*t.baseUnit,textTransform:"uppercase"}},indicatorsContainer:function(){return{alignItems:"center",alignSelf:"stretch",display:"flex",flexShrink:0}},indicatorSeparator:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing.baseUnit,o=n.colors;return{label:"indicatorSeparator",alignSelf:"stretch",backgroundColor:t?o.neutral10:o.neutral20,marginBottom:2*r,marginTop:2*r,width:1}},input:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing,o=n.colors;return{margin:r.baseUnit/2,paddingBottom:r.baseUnit/2,paddingTop:r.baseUnit/2,visibility:t?"hidden":"visible",color:o.neutral80}},loadingIndicator:function(e){var t=e.isFocused,n=e.size,r=e.theme,o=r.colors,s=r.spacing.baseUnit;return{label:"loadingIndicator",color:t?o.neutral60:o.neutral20,display:"flex",padding:2*s,transition:"color 150ms",alignSelf:"center",fontSize:n,lineHeight:1,marginRight:n,textAlign:"center",verticalAlign:"middle"}},loadingMessage:mn,menu:function(e){var t,n=e.placement,r=e.theme,o=r.borderRadius,s=r.spacing,l=r.colors;return K(t={label:"menu"},function(e){return e?{bottom:"top",top:"bottom"}[e]:"bottom"}(n),"100%"),K(t,"backgroundColor",l.neutral0),K(t,"borderRadius",o),K(t,"boxShadow","0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)"),K(t,"marginBottom",s.menuGutter),K(t,"marginTop",s.menuGutter),K(t,"position","absolute"),K(t,"width","100%"),K(t,"zIndex",1),t},menuList:function(e){var t=e.maxHeight,n=e.theme.spacing.baseUnit;return{maxHeight:t,overflowY:"auto",paddingBottom:n,paddingTop:n,position:"relative",WebkitOverflowScrolling:"touch"}},menuPortal:function(e){var t=e.rect,n=e.offset,r=e.position;return{left:t.left,position:r,top:n,width:t.width,zIndex:1}},multiValue:function(e){var t=e.theme,n=t.spacing,r=t.borderRadius;return{label:"multiValue",backgroundColor:t.colors.neutral10,borderRadius:r/2,display:"flex",margin:n.baseUnit/2,minWidth:0}},multiValueLabel:function(e){var t=e.theme,n=t.borderRadius,r=t.colors,o=e.cropWithEllipsis;return{borderRadius:n/2,color:r.neutral80,fontSize:"85%",overflow:"hidden",padding:3,paddingLeft:6,textOverflow:o?"ellipsis":null,whiteSpace:"nowrap"}},multiValueRemove:function(e){var t=e.theme,n=t.spacing,r=t.borderRadius,o=t.colors;return{alignItems:"center",borderRadius:r/2,backgroundColor:e.isFocused&&o.dangerLight,display:"flex",paddingLeft:n.baseUnit,paddingRight:n.baseUnit,":hover":{backgroundColor:o.dangerLight,color:o.danger}}},noOptionsMessage:fn,option:function(e){var t=e.isDisabled,n=e.isFocused,r=e.isSelected,o=e.theme,s=o.spacing,l=o.colors;return{label:"option",backgroundColor:r?l.primary:n?l.primary25:"transparent",color:t?l.neutral20:r?l.neutral0:"inherit",cursor:"default",display:"block",fontSize:"inherit",padding:"".concat(2*s.baseUnit,"px ").concat(3*s.baseUnit,"px"),width:"100%",userSelect:"none",WebkitTapHighlightColor:"rgba(0, 0, 0, 0)",":active":{backgroundColor:!t&&(r?l.primary:l.primary50)}}},placeholder:function(e){var t=e.theme,n=t.spacing;return{label:"placeholder",color:t.colors.neutral50,marginLeft:n.baseUnit/2,marginRight:n.baseUnit/2,position:"absolute",top:"50%",transform:"translateY(-50%)"}},singleValue:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing,o=n.colors;return{label:"singleValue",color:t?o.neutral40:o.neutral80,marginLeft:r.baseUnit/2,marginRight:r.baseUnit/2,maxWidth:"calc(100% - ".concat(2*r.baseUnit,"px)"),overflow:"hidden",position:"absolute",textOverflow:"ellipsis",whiteSpace:"nowrap",top:"50%",transform:"translateY(-50%)"}},valueContainer:function(e){var t=e.theme.spacing;return{alignItems:"center",display:"flex",flex:1,flexWrap:"wrap",padding:"".concat(t.baseUnit/2,"px ").concat(2*t.baseUnit,"px"),WebkitOverflowScrolling:"touch",position:"relative",overflow:"hidden"}}},gr={borderRadius:4,colors:{primary:"#2684FF",primary75:"#4C9AFF",primary50:"#B2D4FF",primary25:"#DEEBFF",danger:"#DE350B",dangerLight:"#FFBDAD",neutral0:"hsl(0, 0%, 100%)",neutral5:"hsl(0, 0%, 95%)",neutral10:"hsl(0, 0%, 90%)",neutral20:"hsl(0, 0%, 80%)",neutral30:"hsl(0, 0%, 70%)",neutral40:"hsl(0, 0%, 60%)",neutral50:"hsl(0, 0%, 50%)",neutral60:"hsl(0, 0%, 40%)",neutral70:"hsl(0, 0%, 30%)",neutral80:"hsl(0, 0%, 20%)",neutral90:"hsl(0, 0%, 10%)"},spacing:{baseUnit:4,controlHeight:38,menuGutter:8}},vr={"aria-live":"polite",backspaceRemovesValue:!0,blurInputOnSelect:nn(),captureMenuScroll:!nn(),closeMenuOnSelect:!0,closeMenuOnScroll:!1,components:{},controlShouldRenderValue:!0,escapeClearsValue:!1,filterOption:function(e,t){var n=Ut({ignoreCase:!0,ignoreAccents:!0,stringify:tr,trim:!0,matchFrom:"any"},undefined),r=n.ignoreCase,o=n.ignoreAccents,s=n.stringify,l=n.trim,i=n.matchFrom,a=l?er(t):t,c=l?er(s(e)):s(e);return r&&(a=a.toLowerCase(),c=c.toLowerCase()),o&&(a=Jn(a),c=Zn(c)),"start"===i?c.substr(0,a.length)===a:c.indexOf(a)>-1},formatGroupLabel:function(e){return e.label},getOptionLabel:function(e){return e.label},getOptionValue:function(e){return e.value},isDisabled:!1,isLoading:!1,isMulti:!1,isRtl:!1,isSearchable:!0,isOptionDisabled:function(e){return!!e.isDisabled},loadingMessage:function(){return"Loading..."},maxMenuHeight:300,minMenuHeight:140,menuIsOpen:!1,menuPlacement:"bottom",menuPosition:"absolute",menuShouldBlockScroll:!1,menuShouldScrollIntoView:!function(){try{return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}catch(e){return!1}}(),noOptionsMessage:function(){return"No options"},openMenuOnFocus:!1,openMenuOnClick:!0,options:[],pageSize:5,placeholder:"Select...",screenReaderStatus:function(e){var t=e.count;return"".concat(t," result").concat(1!==t?"s":""," available")},styles:{},tabIndex:"0",tabSelectsValue:!0};function br(e,t,n,r){return{type:"option",data:t,isDisabled:Cr(e,t,n),isSelected:kr(e,t,n),label:Er(e,t),value:xr(e,t),index:r}}function _r(e,t){return e.options.map((function(n,r){if(n.options){var o=n.options.map((function(n,r){return br(e,n,t,r)})).filter((function(t){return wr(e,t)}));return o.length>0?{type:"group",data:n,options:o,index:r}:void 0}var s=br(e,n,t,r);return wr(e,s)?s:void 0})).filter((function(e){return!!e}))}function yr(e){return e.reduce((function(e,t){return"group"===t.type?e.push.apply(e,Bn(t.options.map((function(e){return e.data})))):e.push(t.data),e}),[])}function wr(e,t){var n=e.inputValue,r=void 0===n?"":n,o=t.data,s=t.isSelected,l=t.label,i=t.value;return(!Or(e)||!s)&&Sr(e,{label:l,value:i,data:o},r)}var Er=function(e,t){return e.getOptionLabel(t)},xr=function(e,t){return e.getOptionValue(t)};function Cr(e,t,n){return"function"==typeof e.isOptionDisabled&&e.isOptionDisabled(t,n)}function kr(e,t,n){if(n.indexOf(t)>-1)return!0;if("function"==typeof e.isOptionSelected)return e.isOptionSelected(t,n);var r=xr(e,t);return n.some((function(t){return xr(e,t)===r}))}function Sr(e,t,n){return!e.filterOption||e.filterOption(t,n)}var Or=function(e){var t=e.hideSelectedOptions,n=e.isMulti;return void 0===t?n:t},Ir=1,Tr=function(e){Vt(n,e);var t=zt(n);function n(e){var r;return Lt(this,n),(r=t.call(this,e)).state={ariaSelection:null,focusedOption:null,focusedValue:null,inputIsHidden:!1,isFocused:!1,selectValue:[],clearFocusValueOnUpdate:!1,inputIsHiddenAfterUpdate:void 0,prevProps:void 0},r.blockOptionHover=!1,r.isComposing=!1,r.commonProps=void 0,r.initialTouchX=0,r.initialTouchY=0,r.instancePrefix="",r.openAfterFocus=!1,r.scrollToFocusedOptionOnUpdate=!1,r.userIsDragging=void 0,r.controlRef=null,r.getControlRef=function(e){r.controlRef=e},r.focusedOptionRef=null,r.getFocusedOptionRef=function(e){r.focusedOptionRef=e},r.menuListRef=null,r.getMenuListRef=function(e){r.menuListRef=e},r.inputRef=null,r.getInputRef=function(e){r.inputRef=e},r.focus=r.focusInput,r.blur=r.blurInput,r.onChange=function(e,t){var n=r.props,o=n.onChange,s=n.name;t.name=s,r.ariaOnChange(e,t),o(e,t)},r.setValue=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"set-value",n=arguments.length>2?arguments[2]:void 0,o=r.props,s=o.closeMenuOnSelect,l=o.isMulti;r.onInputChange("",{action:"set-value"}),s&&(r.setState({inputIsHiddenAfterUpdate:!l}),r.onMenuClose()),r.setState({clearFocusValueOnUpdate:!0}),r.onChange(e,{action:t,option:n})},r.selectOption=function(e){var t=r.props,n=t.blurInputOnSelect,o=t.isMulti,s=t.name,l=r.state.selectValue,i=o&&r.isOptionSelected(e,l),a=r.isOptionDisabled(e,l);if(i){var c=r.getOptionValue(e);r.setValue(l.filter((function(e){return r.getOptionValue(e)!==c})),"deselect-option",e)}else{if(a)return void r.ariaOnChange(e,{action:"select-option",name:s});o?r.setValue([].concat(Bn(l),[e]),"select-option",e):r.setValue(e,"select-option")}n&&r.blurInput()},r.removeValue=function(e){var t=r.props.isMulti,n=r.state.selectValue,o=r.getOptionValue(e),s=n.filter((function(e){return r.getOptionValue(e)!==o})),l=t?s:s[0]||null;r.onChange(l,{action:"remove-value",removedValue:e}),r.focusInput()},r.clearValue=function(){var e=r.state.selectValue;r.onChange(r.props.isMulti?[]:null,{action:"clear",removedValues:e})},r.popValue=function(){var e=r.props.isMulti,t=r.state.selectValue,n=t[t.length-1],o=t.slice(0,t.length-1),s=e?o:o[0]||null;r.onChange(s,{action:"pop-value",removedValue:n})},r.getValue=function(){return r.state.selectValue},r.cx=function(){for(var e=arguments.length,t=new Array(e),n=0;n5||s>5}},r.onTouchEnd=function(e){r.userIsDragging||(r.controlRef&&!r.controlRef.contains(e.target)&&r.menuListRef&&!r.menuListRef.contains(e.target)&&r.blurInput(),r.initialTouchX=0,r.initialTouchY=0)},r.onControlTouchEnd=function(e){r.userIsDragging||r.onControlMouseDown(e)},r.onClearIndicatorTouchEnd=function(e){r.userIsDragging||r.onClearIndicatorMouseDown(e)},r.onDropdownIndicatorTouchEnd=function(e){r.userIsDragging||r.onDropdownIndicatorMouseDown(e)},r.handleInputChange=function(e){var t=e.currentTarget.value;r.setState({inputIsHiddenAfterUpdate:!1}),r.onInputChange(t,{action:"input-change"}),r.props.menuIsOpen||r.onMenuOpen()},r.onInputFocus=function(e){r.props.onFocus&&r.props.onFocus(e),r.setState({inputIsHiddenAfterUpdate:!1,isFocused:!0}),(r.openAfterFocus||r.props.openMenuOnFocus)&&r.openMenu("first"),r.openAfterFocus=!1},r.onInputBlur=function(e){r.menuListRef&&r.menuListRef.contains(document.activeElement)?r.inputRef.focus():(r.props.onBlur&&r.props.onBlur(e),r.onInputChange("",{action:"input-blur"}),r.onMenuClose(),r.setState({focusedValue:null,isFocused:!1}))},r.onOptionHover=function(e){r.blockOptionHover||r.state.focusedOption===e||r.setState({focusedOption:e})},r.shouldHideSelectedOptions=function(){return Or(r.props)},r.onKeyDown=function(e){var t=r.props,n=t.isMulti,o=t.backspaceRemovesValue,s=t.escapeClearsValue,l=t.inputValue,i=t.isClearable,a=t.isDisabled,c=t.menuIsOpen,u=t.onKeyDown,d=t.tabSelectsValue,p=t.openMenuOnFocus,f=r.state,m=f.focusedOption,h=f.focusedValue,g=f.selectValue;if(!(a||"function"==typeof u&&(u(e),e.defaultPrevented))){switch(r.blockOptionHover=!0,e.key){case"ArrowLeft":if(!n||l)return;r.focusValue("previous");break;case"ArrowRight":if(!n||l)return;r.focusValue("next");break;case"Delete":case"Backspace":if(l)return;if(h)r.removeValue(h);else{if(!o)return;n?r.popValue():i&&r.clearValue()}break;case"Tab":if(r.isComposing)return;if(e.shiftKey||!c||!d||!m||p&&r.isOptionSelected(m,g))return;r.selectOption(m);break;case"Enter":if(229===e.keyCode)break;if(c){if(!m)return;if(r.isComposing)return;r.selectOption(m);break}return;case"Escape":c?(r.setState({inputIsHiddenAfterUpdate:!1}),r.onInputChange("",{action:"menu-close"}),r.onMenuClose()):i&&s&&r.clearValue();break;case" ":if(l)return;if(!c){r.openMenu("first");break}if(!m)return;r.selectOption(m);break;case"ArrowUp":c?r.focusOption("up"):r.openMenu("last");break;case"ArrowDown":c?r.focusOption("down"):r.openMenu("first");break;case"PageUp":if(!c)return;r.focusOption("pageup");break;case"PageDown":if(!c)return;r.focusOption("pagedown");break;case"Home":if(!c)return;r.focusOption("first");break;case"End":if(!c)return;r.focusOption("last");break;default:return}e.preventDefault()}},r.instancePrefix="react-select-"+(r.props.instanceId||++Ir),r.state.selectValue=Yt(e.value),r}return Nt(n,[{key:"componentDidMount",value:function(){this.startListeningComposition(),this.startListeningToTouch(),this.props.closeMenuOnScroll&&document&&document.addEventListener&&document.addEventListener("scroll",this.onScroll,!0),this.props.autoFocus&&this.focusInput()}},{key:"componentDidUpdate",value:function(e){var t,n,r,o,s,l=this.props,i=l.isDisabled,a=l.menuIsOpen,c=this.state.isFocused;(c&&!i&&e.isDisabled||c&&a&&!e.menuIsOpen)&&this.focusInput(),c&&i&&!e.isDisabled&&this.setState({isFocused:!1},this.onMenuClose),this.menuListRef&&this.focusedOptionRef&&this.scrollToFocusedOptionOnUpdate&&(t=this.menuListRef,n=this.focusedOptionRef,r=t.getBoundingClientRect(),o=n.getBoundingClientRect(),s=n.offsetHeight/3,o.bottom+s>r.bottom?Jt(t,Math.min(n.offsetTop+n.clientHeight-t.offsetHeight+s,t.scrollHeight)):o.top-s-1&&(l=i)}this.scrollToFocusedOptionOnUpdate=!(o&&this.menuListRef),this.setState({inputIsHiddenAfterUpdate:!1,focusedValue:null,focusedOption:s[l]},(function(){return t.onMenuOpen()}))}},{key:"focusValue",value:function(e){var t=this.state,n=t.selectValue,r=t.focusedValue;if(this.props.isMulti){this.setState({focusedOption:null});var o=n.indexOf(r);r||(o=-1);var s=n.length-1,l=-1;if(n.length){switch(e){case"previous":l=0===o?0:-1===o?s:o-1;break;case"next":o>-1&&o0&&void 0!==arguments[0]?arguments[0]:"first",t=this.props.pageSize,n=this.state.focusedOption,r=this.getFocusableOptions();if(r.length){var o=0,s=r.indexOf(n);n||(s=-1),"up"===e?o=s>0?s-1:r.length-1:"down"===e?o=(s+1)%r.length:"pageup"===e?(o=s-t)<0&&(o=0):"pagedown"===e?(o=s+t)>r.length-1&&(o=r.length-1):"last"===e&&(o=r.length-1),this.scrollToFocusedOptionOnUpdate=!0,this.setState({focusedOption:r[o],focusedValue:null})}}},{key:"getTheme",value:function(){return this.props.theme?"function"==typeof this.props.theme?this.props.theme(gr):Ut(Ut({},gr),this.props.theme):gr}},{key:"getCommonProps",value:function(){var e=this.clearValue,t=this.cx,n=this.getStyles,r=this.getValue,o=this.selectOption,s=this.setValue,l=this.props,i=l.isMulti,a=l.isRtl,c=l.options;return{clearValue:e,cx:t,getStyles:n,getValue:r,hasValue:this.hasValue(),isMulti:i,isRtl:a,options:c,selectOption:o,selectProps:l,setValue:s,theme:this.getTheme()}}},{key:"hasValue",value:function(){return this.state.selectValue.length>0}},{key:"hasOptions",value:function(){return!!this.getFocusableOptions().length}},{key:"isClearable",value:function(){var e=this.props,t=e.isClearable,n=e.isMulti;return void 0===t?n:t}},{key:"isOptionDisabled",value:function(e,t){return Cr(this.props,e,t)}},{key:"isOptionSelected",value:function(e,t){return kr(this.props,e,t)}},{key:"filterOption",value:function(e,t){return Sr(this.props,e,t)}},{key:"formatOptionLabel",value:function(e,t){if("function"==typeof this.props.formatOptionLabel){var n=this.props.inputValue,r=this.state.selectValue;return this.props.formatOptionLabel(e,{context:t,inputValue:n,selectValue:r})}return this.getOptionLabel(e)}},{key:"formatGroupLabel",value:function(e){return this.props.formatGroupLabel(e)}},{key:"startListeningComposition",value:function(){document&&document.addEventListener&&(document.addEventListener("compositionstart",this.onCompositionStart,!1),document.addEventListener("compositionend",this.onCompositionEnd,!1))}},{key:"stopListeningComposition",value:function(){document&&document.removeEventListener&&(document.removeEventListener("compositionstart",this.onCompositionStart),document.removeEventListener("compositionend",this.onCompositionEnd))}},{key:"startListeningToTouch",value:function(){document&&document.addEventListener&&(document.addEventListener("touchstart",this.onTouchStart,!1),document.addEventListener("touchmove",this.onTouchMove,!1),document.addEventListener("touchend",this.onTouchEnd,!1))}},{key:"stopListeningToTouch",value:function(){document&&document.removeEventListener&&(document.removeEventListener("touchstart",this.onTouchStart),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("touchend",this.onTouchEnd))}},{key:"renderInput",value:function(){var e=this.props,t=e.isDisabled,n=e.isSearchable,r=e.inputId,o=e.inputValue,s=e.tabIndex,l=e.form,i=this.getComponents().Input,a=this.state.inputIsHidden,c=this.commonProps,u=r||this.getElementId("input"),d={"aria-autocomplete":"list","aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"]};return n?J().createElement(i,X({},c,{autoCapitalize:"none",autoComplete:"off",autoCorrect:"off",id:u,innerRef:this.getInputRef,isDisabled:t,isHidden:a,onBlur:this.onInputBlur,onChange:this.handleInputChange,onFocus:this.onInputFocus,spellCheck:"false",tabIndex:s,form:l,type:"text",value:o},d)):J().createElement(nr,X({id:u,innerRef:this.getInputRef,onBlur:this.onInputBlur,onChange:Wt,onFocus:this.onInputFocus,readOnly:!0,disabled:t,tabIndex:s,form:l,value:""},d))}},{key:"renderPlaceholderOrValue",value:function(){var e=this,t=this.getComponents(),n=t.MultiValue,r=t.MultiValueContainer,o=t.MultiValueLabel,s=t.MultiValueRemove,l=t.SingleValue,i=t.Placeholder,a=this.commonProps,c=this.props,u=c.controlShouldRenderValue,d=c.isDisabled,p=c.isMulti,f=c.inputValue,m=c.placeholder,h=this.state,g=h.selectValue,v=h.focusedValue,b=h.isFocused;if(!this.hasValue()||!u)return f?null:J().createElement(i,X({},a,{key:"placeholder",isDisabled:d,isFocused:b}),m);if(p)return g.map((function(t,l){var i=t===v;return J().createElement(n,X({},a,{components:{Container:r,Label:o,Remove:s},isFocused:i,isDisabled:d,key:"".concat(e.getOptionValue(t)).concat(l),index:l,removeProps:{onClick:function(){return e.removeValue(t)},onTouchEnd:function(){return e.removeValue(t)},onMouseDown:function(e){e.preventDefault(),e.stopPropagation()}},data:t}),e.formatOptionLabel(t,"value"))}));if(f)return null;var _=g[0];return J().createElement(l,X({},a,{data:_,isDisabled:d}),this.formatOptionLabel(_,"value"))}},{key:"renderClearIndicator",value:function(){var e=this.getComponents().ClearIndicator,t=this.commonProps,n=this.props,r=n.isDisabled,o=n.isLoading,s=this.state.isFocused;if(!this.isClearable()||!e||r||!this.hasValue()||o)return null;var l={onMouseDown:this.onClearIndicatorMouseDown,onTouchEnd:this.onClearIndicatorTouchEnd,"aria-hidden":"true"};return J().createElement(e,X({},t,{innerProps:l,isFocused:s}))}},{key:"renderLoadingIndicator",value:function(){var e=this.getComponents().LoadingIndicator,t=this.commonProps,n=this.props,r=n.isDisabled,o=n.isLoading,s=this.state.isFocused;return e&&o?J().createElement(e,X({},t,{innerProps:{"aria-hidden":"true"},isDisabled:r,isFocused:s})):null}},{key:"renderIndicatorSeparator",value:function(){var e=this.getComponents(),t=e.DropdownIndicator,n=e.IndicatorSeparator;if(!t||!n)return null;var r=this.commonProps,o=this.props.isDisabled,s=this.state.isFocused;return J().createElement(n,X({},r,{isDisabled:o,isFocused:s}))}},{key:"renderDropdownIndicator",value:function(){var e=this.getComponents().DropdownIndicator;if(!e)return null;var t=this.commonProps,n=this.props.isDisabled,r=this.state.isFocused,o={onMouseDown:this.onDropdownIndicatorMouseDown,onTouchEnd:this.onDropdownIndicatorTouchEnd,"aria-hidden":"true"};return J().createElement(e,X({},t,{innerProps:o,isDisabled:n,isFocused:r}))}},{key:"renderMenu",value:function(){var e=this,t=this.getComponents(),n=t.Group,r=t.GroupHeading,o=t.Menu,s=t.MenuList,l=t.MenuPortal,i=t.LoadingMessage,a=t.NoOptionsMessage,c=t.Option,u=this.commonProps,d=this.state.focusedOption,p=this.props,f=p.captureMenuScroll,m=p.inputValue,h=p.isLoading,g=p.loadingMessage,v=p.minMenuHeight,b=p.maxMenuHeight,_=p.menuIsOpen,y=p.menuPlacement,w=p.menuPosition,E=p.menuPortalTarget,x=p.menuShouldBlockScroll,C=p.menuShouldScrollIntoView,k=p.noOptionsMessage,S=p.onMenuScrollToTop,O=p.onMenuScrollToBottom;if(!_)return null;var I,T=function(t,n){var r=t.type,o=t.data,s=t.isDisabled,l=t.isSelected,i=t.label,a=t.value,p=d===o,f=s?void 0:function(){return e.onOptionHover(o)},m=s?void 0:function(){return e.selectOption(o)},h="".concat(e.getElementId("option"),"-").concat(n),g={id:h,onClick:m,onMouseMove:f,onMouseOver:f,tabIndex:-1};return J().createElement(c,X({},u,{innerProps:g,data:o,isDisabled:s,isSelected:l,key:h,label:i,type:r,value:a,isFocused:p,innerRef:p?e.getFocusedOptionRef:void 0}),e.formatOptionLabel(t.data,"menu"))};if(this.hasOptions())I=this.getCategorizedOptions().map((function(t){if("group"===t.type){var o=t.data,s=t.options,l=t.index,i="".concat(e.getElementId("group"),"-").concat(l),a="".concat(i,"-heading");return J().createElement(n,X({},u,{key:i,data:o,options:s,Heading:r,headingProps:{id:a,data:t.data},label:e.formatGroupLabel(t.data)}),t.options.map((function(e){return T(e,"".concat(l,"-").concat(e.index))})))}if("option"===t.type)return T(t,"".concat(t.index))}));else if(h){var D=g({inputValue:m});if(null===D)return null;I=J().createElement(i,u,D)}else{var P=k({inputValue:m});if(null===P)return null;I=J().createElement(a,u,P)}var R={minMenuHeight:v,maxMenuHeight:b,menuPlacement:y,menuPosition:w,menuShouldScrollIntoView:C},M=J().createElement(dn,X({},u,R),(function(t){var n=t.ref,r=t.placerProps,l=r.placement,i=r.maxHeight;return J().createElement(o,X({},u,R,{innerRef:n,innerProps:{onMouseDown:e.onMenuMouseDown,onMouseMove:e.onMenuMouseMove},isLoading:h,placement:l}),J().createElement(mr,{captureEnabled:f,onTopArrive:S,onBottomArrive:O,lockEnabled:x},(function(t){return J().createElement(s,X({},u,{innerRef:function(n){e.getMenuListRef(n),t(n)},isLoading:h,maxHeight:i,focusedOption:d}),I)})))}));return E||"fixed"===w?J().createElement(l,X({},u,{appendTo:E,controlElement:this.controlRef,menuPlacement:y,menuPosition:w}),M):M}},{key:"renderFormField",value:function(){var e=this,t=this.props,n=t.delimiter,r=t.isDisabled,o=t.isMulti,s=t.name,l=this.state.selectValue;if(s&&!r){if(o){if(n){var i=l.map((function(t){return e.getOptionValue(t)})).join(n);return J().createElement("input",{name:s,type:"hidden",value:i})}var a=l.length>0?l.map((function(t,n){return J().createElement("input",{key:"i-".concat(n),name:s,type:"hidden",value:e.getOptionValue(t)})})):J().createElement("input",{name:s,type:"hidden"});return J().createElement("div",null,a)}var c=l[0]?this.getOptionValue(l[0]):"";return J().createElement("input",{name:s,type:"hidden",value:c})}}},{key:"renderLiveRegion",value:function(){var e=this.commonProps,t=this.state,n=t.ariaSelection,r=t.focusedOption,o=t.focusedValue,s=t.isFocused,l=t.selectValue,i=this.getFocusableOptions();return J().createElement(zn,X({},e,{ariaSelection:n,focusedOption:r,focusedValue:o,isFocused:s,selectValue:l,focusableOptions:i}))}},{key:"render",value:function(){var e=this.getComponents(),t=e.Control,n=e.IndicatorsContainer,r=e.SelectContainer,o=e.ValueContainer,s=this.props,l=s.className,i=s.id,a=s.isDisabled,c=s.menuIsOpen,u=this.state.isFocused,d=this.commonProps=this.getCommonProps();return J().createElement(r,X({},d,{className:l,innerProps:{id:i,onKeyDown:this.onKeyDown},isDisabled:a,isFocused:u}),this.renderLiveRegion(),J().createElement(t,X({},d,{innerRef:this.getControlRef,innerProps:{onMouseDown:this.onControlMouseDown,onTouchEnd:this.onControlTouchEnd},isDisabled:a,isFocused:u,menuIsOpen:c}),J().createElement(o,X({},d,{isDisabled:a}),this.renderPlaceholderOrValue(),this.renderInput()),J().createElement(n,X({},d,{isDisabled:a}),this.renderClearIndicator(),this.renderLoadingIndicator(),this.renderIndicatorSeparator(),this.renderDropdownIndicator())),this.renderMenu(),this.renderFormField())}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps,r=t.clearFocusValueOnUpdate,o=t.inputIsHiddenAfterUpdate,s=e.options,l=e.value,i=e.menuIsOpen,a=e.inputValue,c={};if(n&&(l!==n.value||s!==n.options||i!==n.menuIsOpen||a!==n.inputValue)){var u=Yt(l),d=i?function(e,t){return yr(_r(e,t))}(e,u):[],p=r?function(e,t){var n=e.focusedValue,r=e.selectValue.indexOf(n);if(r>-1){if(t.indexOf(n)>-1)return n;if(r-1?n:t[0]}(t,d);c={selectValue:u,focusedOption:f,focusedValue:p,clearFocusValueOnUpdate:!1}}var m=null!=o&&e!==n?{inputIsHidden:o,inputIsHiddenAfterUpdate:void 0}:{};return Ut(Ut(Ut({},c),m),{},{prevProps:e})}}]),n}(Z.Component);Tr.defaultProps=vr;var Dr,Pr,Rr,Mr={cacheOptions:!1,defaultOptions:!1,filterOption:null,isLoading:!1},Lr=(Dr=Tr,Rr=Pr=function(e){Vt(n,e);var t=zt(n);function n(){var e;Lt(this,n);for(var r=arguments.length,o=new Array(r),s=0;s1?n-1:0),o=1;o"llms-search")),K(this,"getSearchPath",(()=>this.props.searchPath)),K(this,"getSearchUrl",(e=>wp.url.addQueryArgs(this.getSearchPath(),this.getSearchArgs(e)))),K(this,"formatSearchResultLabel",(e=>e.id)),K(this,"formatSearchResultValue",(e=>e.id)),K(this,"onSearch",(0,Y.debounce)(300,((e,t)=>{wp.apiFetch({path:this.getSearchUrl(e)}).then((e=>{t(this.formatSearchResults(e))}))})))}getSearchArgs(e){return Object.assign({per_page:20,search:encodeURI(e)},this.props.searchArgs)}formatSearchResults(e){return e.map((e=>({...e,label:this.formatSearchResultLabel(e),value:this.formatSearchResultValue(e)})))}render(){const{label:e,isMulti:t,isDisabled:n,onChange:r,placeholder:o,selected:s}=this.props,l=this.props.className||this.getDefaultClassName();return(0,$.createElement)(q.BaseControl,{id:(0,Fr.uniqueId)(`${l}--`),label:e},(0,$.createElement)(Nr,{ref:e=>this.selectRef=e,className:l,classNamePrefix:"llms-search",isMulti:t,isDisabled:n,value:this.formatSearchResults(s||[]),defaultOptions:s,placeholder:o,loadOptions:this.onSearch,onChange:r,styles:{control:e=>({...e,borderColor:"#8d96a0","&:hover":{...e["&:hover"],borderColor:"#8d96a0"}})},theme:e=>({...e,colors:{...e.colors,primary:"#008dbe",primary25:"#ccf2ff",primary50:"#b3ecff",primary75:"#4dd2ff"},spacing:{...e.spacing,baseUnit:2,controlHeight:28,menuGutter:4}})}))}}class Br extends Vr{constructor(){super(...arguments),K(this,"getDefaultClassName",(()=>`llms-search--${this.props.postType.replace("llms_","")}`)),K(this,"getSearchPath",(()=>this.props.searchPath||`/wp/v2/${this.props.postType}`)),K(this,"formatSearchResultLabel",(e=>(0,H.sprintf)(// Translators: %1$s = Post title; %2$ = post id.
+(0,H._x)("%1$s (ID# %2$d)","Search result label","lifterlms"),e.title.rendered,e.id)))}}const $r=(0,U.createHigherOrderComponent)((e=>t=>{if(!B(wp.blocks.getBlockType(t.name),t.name))return(0,$.createElement)(e,t);const{attributes:{llms_visibility:n,llms_visibility_in:r},setAttributes:o}=t;if(!n||"off"===n)return(0,$.createElement)(e,t);let{llms_visibility_posts:s}=t.attributes;void 0===s&&(s="[]"),s=JSON.parse(s);const l=()=>{const e=wp.data.select("core/editor").getCurrentPost(),t=[];return-1!==["course","lesson"].indexOf(e.type)&&t.push({value:"this",label:(0,H.__)("in this course","lifterlms")}),t.push({value:"any_course",label:(0,H.__)("in any course","lifterlms")}),-1!==["llms_membership"].indexOf(e.type)&&t.push({value:"this",label:(0,H.__)("in this membership","lifterlms")}),t.push({value:"any_membership",label:(0,H.__)("in any membership","lifterlms")},{value:"any",label:(0,H.__)("in any course or membership","lifterlms")},{value:"list_all",label:(0,H.__)("in all of the selected courses or memberships","lifterlms")},{value:"list_any",label:(0,H.__)("in any of the selected courses or memberships","lifterlms")}),(0,V.applyFilters)("llms_blocks_block_visibility_in_options",t,e)},i=(e,t)=>{"select-option"===t.action?a(t.option):"remove-value"===t.action&&c(t.removedValue)},a=e=>{s.map((e=>{let{id:t}=e;return t})).includes(e.id)||s.push(e),u()},c=e=>{s.splice(s.map((e=>{let{id:t}=e;return t})).indexOf(e.id),1),u()},u=()=>{const e=s.map((e=>{const{id:t,title:n,type:r}=e,o={id:t,title:n,type:r};return(0,V.applyFilters)("llms_block_visibility_stored_post_props",o,e)}));o({llms_visibility_posts:JSON.stringify(e)})};return(0,$.createElement)($.Fragment,null,(0,$.createElement)(G,t,(0,$.createElement)(e,t)),(0,$.createElement)(j.InspectorControls,null,(0,$.createElement)(q.PanelBody,{title:(0,H.__)("Enrollment Visibility","lifterlms")},(0,$.createElement)(q.SelectControl,{className:"llms-visibility-select",label:(0,H.__)("Display to","lifterlms"),value:n,onChange:e=>{o({llms_visibility:e,llms_visibility_in:l()[0].value})},options:(0,V.applyFilters)("llms_block_visibility_settings_options",W)}),-1===["all","logged_in","logged_out"].indexOf(n)&&(0,$.createElement)($.Fragment,null,(0,$.createElement)(q.SelectControl,{className:"llms-visibility-select--in",label:(d=n,"enrolled"===d?(0,H.__)("Enrolled In","lifterlms"):(0,H.__)("Not Enrolled In","lifterlms")),value:r,onChange:e=>o({llms_visibility_in:e}),options:l()}),("list_all"===r||"list_any"===r)&&(0,$.createElement)("div",null,(0,$.createElement)(Br,{isMulti:!0,postType:"course",label:(0,H.__)("Courses","lifterlms"),placeholder:(0,H.__)("Search by course title…","lifterlms"),onChange:i,selected:s.filter((e=>"course"===e.type))}),(0,$.createElement)(Br,{isMulti:!0,postType:"llms_membership",label:(0,H.__)("Memberships","lifterlms"),placeholder:(0,H.__)("Search by membership title…","lifterlms"),onChange:i,selected:s.filter((e=>"llms_membership"===e.type))}))))));var d}),"withInspectorControl");(0,V.addFilter)("blocks.registerBlockType","llms/visibility-attributes",(function(e,t){if(!B(e,t))return e;e.attributes||(e.attributes={});const n={llms_visibility:{default:"all",type:"string"},llms_visibility_in:{default:"",type:"string"},llms_visibility_posts:{default:"[]",type:"string"}};return Object.keys(n).forEach((t=>{var r,o,s;e.attributes=(r=e.attributes,s=n[t],r[o=t]&&r[o].default?r[o].type=s.type:r[o]=s,r)})),e})),(0,V.addFilter)("editor.BlockEdit","llms/visibility-controls",$r);const Hr=window.wp.domReady;var Ur=n.n(Hr);const jr=window.wp.data,qr=window.wp.editor,zr=window.wp.blocks,Wr=e=>{let t=[];return e.forEach((e=>{if("core/block"===e.name){const{getBlocks:n}=(0,jr.select)(j.store);t=t.concat(Wr(n(e.clientId)))}else e.innerBlocks.length?t=t.concat(Wr(e.innerBlocks)):t.push(e)})),t},Gr=()=>{const{getBlocks:e}=(0,jr.select)(j.store);return Wr(e())},Kr=()=>!!(window.llms&&window.llms.post&&window.llms.post.post_type)&&window.llms.post.post_type;const Yr=()=>{!function(){const{_llms_form_location:e}=(0,jr.select)(qr.store).getEditedPostAttribute("meta");["registration","account"].includes(e)&&(0,V.addFilter)("llms_block_supports_visibility","llms/form-block-visibility",(()=>!1))}(),function(){const e={"llms/form-field-user-email":["all","logged_out"],"llms/form-field-user-password":["all","logged_out"],"llms/form-field-user-login":["logged_out"]},t=Object.keys(e);(0,V.addFilter)("llms_block_visibility_settings_options","llms/form-block-visibility-options",(n=>{const{getSelectedBlock:r}=(0,jr.select)(j.store),o=r();return o&&(e=>{let{name:n,innerBlocks:r}=e;return"llms/form-field-confirm-group"===n?(0,Fr.some)(r,(e=>t.includes(e.name))):t.includes(n)})(o)?n.filter((n=>{let{value:r}=n;return(n=>{let{name:r,innerBlocks:o}=n,s=r;if("llms/form-field-confirm-group"===r){const e=o.find((e=>t.includes(e.name)));s=e?e.name:s}return e[s]||[]})(o).includes(r)})):n}))}(),function(){const{_llms_form_is_core:e}=(0,jr.select)(qr.store).getEditedPostAttribute("meta"),t=[".edit-post-layout .components-panel__body.edit-post-post-status"];"yes"===e&&t.push(".edit-post-layout button.editor-post-switch-to-draft"),(0,jr.subscribe)((()=>{setTimeout((()=>{document.querySelectorAll(t.join(",")).forEach((e=>{e.style.display="none"}))}),1)}))}(),function(){const e="llms/form-field-user-email",t="llms-forms-no-email-error-notice",{getNotices:n}=(0,jr.select)("core/notices"),{createErrorNotice:r,removeNotice:o}=(0,jr.dispatch)("core/notices");(0,jr.subscribe)((0,Fr.debounce)((()=>{const s=(0,jr.select)("core/editor").getCurrentPost(),l=Gr().map((e=>e.name));if(!s.content.includes("\x3c!-- wp:")||!l.length)return;const i=n().map((e=>e.id)).includes(t),a=document.querySelector("button.editor-post-publish-button");l.includes(e)||i?l.includes(e)&&i&&(o(t),a.disabled=!1):(r((0,H.__)("User Email is a required field.","lifterlms"),{id:t,isDismissible:!1,actions:[{label:(0,H.__)("Restore user email field?","lifterlms"),onClick:()=>{((0,jr.dispatch)("core/block-editor")||(0,jr.dispatch)("core/editor")).insertBlock((0,zr.createBlock)(e),0)}}]}),a.disabled=!0)}),500))}()};function Xr(e){return e.reduce(((e,t)=>({...e,[t.name]:t})),{})}function Qr(e){return Object.values(e)}const Zr=Xr(window.llms.userInfoFields.map((e=>({...e,isPersisted:!0}))));function Jr(e,t){return{...e,[t.name]:{...t}}}function eo(e,t){return e=Qr(e).filter((e=>{let{name:n}=e;return n!==t})),Xr(e)}function to(e,t,n){return{...e,[t]:{...e[t],...n}}}function no(e,t,n){const r={...e[t]};return Jr(e=eo(e,t),{...r,name:n})}function ro(){return Zr}function oo(e){return{type:"ADD_FIELD",field:e}}function so(e){return{type:"DELETE_FIELD",name:e}}function lo(e,t){return{type:"EDIT_FIELD",name:e,edits:t}}function io(e,t){return{type:"EDIT_FIELD",name:e,edits:{clientId:t}}}function ao(e){return{type:"EDIT_FIELD",name:e,edits:{clientId:null}}}function co(e){return{type:"RECEIVE_FIELDS",fields:e}}function uo(e,t){return{type:"RENAME_FIELD",oldName:e,newName:t}}function po(){return{type:"RESET_FIELDS"}}function fo(e,t){let{fields:n}=e;return!!n[t]}function mo(e,t){let{fields:n}=e;return n[t]||null}function ho(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"global";const o="global"===r?e.fields:vo(e);return Qr(o).find((e=>e[n]===t))||null}function go(e){let{fields:t}=e;return t}function vo(e){let{fields:t}=e;return Xr(Qr(t).filter((e=>{let{clientId:t}=e;return t})))}function bo(e,t,n){const r=mo(e,t);return!(!r||!r.clientId||r.clientId===n)}function _o(e,t){return!!ho(e,t,"clientId","local")}const yo={reducer:(0,jr.combineReducers)({fields:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Zr,t=arguments.length>1?arguments[1]:void 0;const{type:n}=t;switch(n){case"ADD_FIELD":return Jr(e,t.field);case"DELETE_FIELD":return eo(e,t.name);case"EDIT_FIELD":return to(e,t.name,t.edits);case"RECEIVE_FIELDS":return Xr(t.fields);case"RENAME_FIELD":return no(e,t.oldName,t.newName);case"RESET_FIELDS":return ro();default:return e}}}),actions:{...e},selectors:{...t}},wo=(0,jr.createReduxStore)("llms/user-info-fields",yo);(0,jr.register)(wo);let Eo=[];const xo=(e,t)=>(0,Fr.differenceBy)(e,t,"clientId").filter((e=>{let{name:t}=e;return 0===t.indexOf("llms/form-")}));function Co(){const e=Gr(),t=xo(Eo,e),n=xo(e,Eo);Eo=e,(e=>{e.forEach((e=>{let{attributes:t}=e;const{name:n}=t,{getField:r}=(0,jr.select)(wo),{deleteField:o,unloadField:s}=(0,jr.dispatch)(wo),l=r(n);l&&(l.isPersisted?s(n):o(n))}))})(t),setTimeout((()=>{(e=>{const{fieldExists:t}=(0,jr.select)(wo),{loadField:n,addField:r}=(0,jr.dispatch)(wo);e.forEach((e=>{let{attributes:o,clientId:s}=e;const{name:l}=o;t(l)?n(l,s):r({name:l,clientId:s,id:o.id,label:o.label,data_store:o.data_store,data_store_key:o.data_store_key})}))})(n)}),100)}function ko(){(0,jr.subscribe)(Co)}const So="llms/course-continue-button",Oo=["course"],Io={title:(0,H.__)("Course Continue Button","lifterlms"),icon:{foreground:"#2295ff",src:"migrate"},category:"llms-blocks",keywords:[(0,H.__)("LifterLMS","lifterlms")],edit:e=>(0,$.createElement)("div",{className:e.className},(0,$.createElement)("p",{style:{textAlign:"center"}},(0,$.createElement)(q.Button,{isPrimary:!0,isLarge:!0},(0,H.__)("Continue","lifterlms")))),save:e=>(0,$.createElement)("div",{className:e.className,style:{textAlign:"center"}},"[lifterlms_course_continue_button]")};class To extends $.Component{render(){const{attributes:{length:e,show_cats:t,show_difficulty:n,show_length:r,show_tags:o,show_tracks:s,title_size:l},setAttributes:i}=this.props;return(0,$.createElement)(j.InspectorControls,null,(0,$.createElement)(q.PanelBody,{title:(0,H.__)("Course Information Options","lifterlms")},(0,$.createElement)(q.SelectControl,{label:(0,H.__)("Title Headline Size","lifterlms"),value:l,onChange:e=>i({title_size:e}),help:(0,H.__)("Headline size for the information title element.","lifterlms"),options:[{value:"h1",label:"h1"},{value:"h2",label:"h2"},{value:"h3",label:"h3"},{value:"h4",label:"h4"},{value:"h5",label:"h5"},{value:"h6",label:"h6"}]}),(0,$.createElement)(q.TextControl,{label:(0,H.__)("Estimated Completion Time","lifterlms"),value:e,onChange:e=>i({length:e}),help:(0,H.__)("How many hours, days, weeks, etc… should a student expect to spend in order to complete this course.","lifterlms")}),(0,$.createElement)(q.ToggleControl,{label:(0,H.__)("Display Estimated Time","lifterlms"),checked:!!r,onChange:()=>i({show_length:!r}),help:r?(0,H.__)("Displaying estimated time","lifterlms"):(0,H.__)("Hiding estimated time","lifterlms")}),(0,$.createElement)(q.ToggleControl,{label:(0,H.__)("Display Difficulty","lifterlms"),checked:!!n,onChange:()=>i({show_difficulty:!n}),help:n?(0,H.__)("Displaying difficulty","lifterlms"):(0,H.__)("Hiding difficulty","lifterlms")}),(0,$.createElement)(q.ToggleControl,{label:(0,H.__)("Display Tracks","lifterlms"),checked:!!s,onChange:()=>i({show_tracks:!s}),help:s?(0,H.__)("Displaying tracks list","lifterlms"):(0,H.__)("Hiding tracks list","lifterlms")}),(0,$.createElement)(q.ToggleControl,{label:(0,H.__)("Display Categories","lifterlms"),checked:!!t,onChange:()=>i({show_cats:!t}),help:t?(0,H.__)("Displaying categories list","lifterlms"):(0,H.__)("Hiding categories list","lifterlms")}),(0,$.createElement)(q.ToggleControl,{label:(0,H.__)("Display Tags","lifterlms"),checked:!!o,onChange:()=>i({show_tags:!o}),help:o?(0,H.__)("Displaying tags list","lifterlms"):(0,H.__)("Hiding tags list","lifterlms")})))}}class Do extends $.Component{constructor(){super(...arguments),K(this,"state",{terms:!1})}getTerms(){const{currentPost:e,taxonomy:t}=this.props,n=e._links["wp:term"].filter((e=>e.taxonomy===t))[0].href;wp.apiFetch({url:wp.url.addQueryArgs(n,{per_page:-1})}).then((e=>{this.setState({terms:e})}))}componentDidUpdate(e){e.currentPost[this.props.taxonomy]!==this.props.currentPost[this.props.taxonomy]&&this.getTerms()}componentWillMount(){this.getTerms()}renderTerms(e){const t=e.length-1;return(0,$.createElement)($.Fragment,null,e?e.map(((e,n)=>this.renderTerm(e,t===n))):(0,H.__)("Loading…","lifterlms"))}renderTerm(e,t){return(0,$.createElement)($.Fragment,null,(0,$.createElement)("a",{href:e.link,target:"_blank",rel:"noreferrer"},e.name),t?"":", ")}render(){const{terms:e}=this.state,{taxonomyName:t}=this.props;return Array.isArray(e)&&!e.length?"":(0,$.createElement)("li",null,(0,$.createElement)("strong",null,t),": ",this.renderTerms(e))}}const Po="llms/course-information",Ro=["course"],Mo={title:(0,H.__)("Course Information","lifterlms"),icon:{foreground:"#2295ff",src:"list-view"},category:"llms-blocks",keywords:[(0,H.__)("LifterLMS","lifterlms")],attributes:{title:{type:"string",default:(0,H.__)("Course Information","lifterlms")},title_size:{type:"string",default:"h3"},length:{type:"string",default:"",source:"meta",meta:"_llms_length"},show_cats:{type:"boolean",default:!0},show_difficulty:{type:"boolean",default:!0},show_length:{type:"boolean",default:!0},show_tags:{type:"boolean",default:!0},show_tracks:{type:"boolean",default:!0}},supports:{multiple:!1},edit:e=>{const{attributes:t,setAttributes:n}=e,{length:r,show_cats:o,show_difficulty:s,show_length:l,show_tags:i,show_tracks:a,title:c,title_size:u}=t,d=wp.data.select("core/editor").getCurrentPost(),p=l||s||a||o||i;return(0,$.createElement)($.Fragment,null,(0,$.createElement)(To,{attributes:t,setAttributes:n}),(0,$.createElement)("div",{className:e.className},(0,$.createElement)(j.RichText,{tagName:u,value:c,onChange:e=>n({title:e})}),p&&(0,$.createElement)($.Fragment,null,(0,$.createElement)("ul",null,l&&r&&(0,$.createElement)("li",null,(0,$.createElement)("strong",null,(0,H.__)("Estimated Time","lifterlms")),": ",r),s&&(0,$.createElement)(Do,{currentPost:d,taxonomy:"course_difficulty",taxonomyName:(0,H.__)("Difficulty","lifterlms")}),a&&(0,$.createElement)(Do,{currentPost:d,taxonomy:"course_track",taxonomyName:(0,H.__)("Tracks","lifterlms")}),o&&(0,$.createElement)(Do,{currentPost:d,taxonomy:"course_cat",taxonomyName:(0,H.__)("Categories","lifterlms")}),i&&(0,$.createElement)(Do,{currentPost:d,taxonomy:"course_tag",taxonomyName:(0,H.__)("Tags","lifterlms")})))))},save:()=>null},Lo=["course"],Ao="llms/course-progress",No={title:(0,H.__)("Course Progress","lifterlms"),icon:{foreground:"#2295ff",src:"chart-area"},category:"llms-blocks",keywords:[(0,H.__)("LifterLMS","lifterlms")],supports:{llms_visibility:!1},edit:e=>(0,$.createElement)("div",{className:e.className},(0,$.createElement)("div",{className:"progress-bar",value:"50",max:"100"},(0,$.createElement)("div",{className:"progress--fill"})),(0,$.createElement)("span",null,"50%")),save:()=>null,deprecated:[{save:e=>(0,$.createElement)("div",{className:e.className},"[lifterlms_course_progress]")}]},Fo=window.wp.serverSideRender;var Vo=n.n(Fo);const Bo="llms/course-syllabus",$o=["course"],Ho={title:(0,H.__)("Course Syllabus","lifterlms"),icon:{foreground:"#2295ff",src:"grid-view"},category:"llms-blocks",keywords:[(0,H.__)("LifterLMS","lifterlms")],attributes:{course_id:{type:"int",default:0}},edit:e=>{const t=wp.data.select("core/editor").getCurrentPost(),{attributes:n}=e;return(0,$.createElement)($.Fragment,null,(0,$.createElement)(Vo(),{block:Bo,attributes:n,urlQueryArgs:{post_id:t.id}}))},save:()=>null};class Uo extends $.Component{constructor(){super(...arguments),K(this,"render",(()=>{const{name:e,attributes:t,post_id:n}=this.props;return(0,$.createElement)($.Fragment,null,(0,$.createElement)(Vo(),{block:e,attributes:t,urlQueryArgs:{post_id:n}}))})),this.state={instructors:this.props.instructors}}}const jo=(0,U.compose)([(0,jr.withSelect)((e=>{const{getEditedPostAttribute:t,getCurrentPostId:n}=e("core/editor");return{post_id:n(),instructors:t("instructors")}}))])(Uo),qo="llms/instructors",zo=["course","llms_membership"],Wo={title:(0,H.__)("Instructors","lifterlms"),icon:{foreground:"#2295ff",src:"groups"},category:"llms-blocks",keywords:[(0,H.__)("LifterLMS","lifterlms"),(0,H.__)("Course","lifterlms"),(0,H.__)("Memebership","lifterlms")],attributes:{post_id:{type:"int",default:0}},edit:jo,save:()=>null},Go="llms/lesson-navigation",Ko=["lesson"],Yo={title:(0,H.__)("Lesson Navigation","lifterlms"),icon:{foreground:"#2295ff",src:"leftright"},category:"llms-blocks",keywords:[(0,H.__)("LifterLMS","lifterlms")],edit(e){const t=wp.data.select("core/editor").getCurrentPost(),{attributes:n}=e;return(0,$.createElement)($.Fragment,null,(0,$.createElement)(Vo(),{block:Go,attributes:n,urlQueryArgs:{post_id:t.id}}))},save:()=>null},Xo="llms/lesson-progression",Qo=["lesson"],Zo={title:(0,H.__)("Lesson Progression (Mark Complete)","lifterlms"),icon:{foreground:"#2295ff",src:"yes"},category:"llms-blocks",keywords:[(0,H.__)("LifterLMS","lifterlms")],supports:{llms_visibility:!1},edit(){const e=1*(0,jr.select)("core/editor").getCurrentPost().meta._llms_quiz;let t=!e;return t=(0,V.applyFilters)("llms.lessonProgressBlock.showMainBtn",t),(0,$.createElement)($.Fragment,null,!!e&&(0,$.createElement)(q.Button,{className:"llms-prog-btn--quiz",isPrimary:!0},(0,H.__)("Take Quiz","lifterlms")),t&&(0,$.createElement)(q.Button,{className:"llms-prog-btn--complete",isPrimary:!0},(0,H.__)("Mark Complete","lifterlms")))},save:()=>null},Jo=window.jQuery;var es=n.n(Jo);let ts=null;(0,jr.subscribe)((()=>{const{getCurrentPostLastRevisionId:e,isCurrentPostPublished:t,isSavingPost:n,isPublishingPost:r}=(0,jr.select)("core/editor");if(!t())return;const o=es()("#llms-save-access-plans");o.length&&ts!==e()&&"disabled"!==o.attr("disabled")&&(n()||r())&&(ts=e(),o.trigger("click"))})),es()(document).on("llms-access-plan-validation-errors",(function(){(0,jr.dispatch)("core/notices").createErrorNotice((0,H.__)("Validation errors were encountered while attempting to save your access plans.","lifterlms"),{id:"llms-access-plan-error-notice"})}));const ns="llms/pricing-table",rs=["course","llms_membership"],os={title:(0,H.__)("LifterLMS Pricing Table","lifterlms"),icon:{foreground:"#2295ff",src:"cart"},category:"llms-blocks",keywords:[(0,H.__)("LifterLMS","lifterlms")],attributes:{post_id:{type:"int",default:0}},edit:e=>{const{attributes:t}=e;return es()(document).one("llms-access-plans-updated",(function(){(0,jr.dispatch)("core/editor").replaceBlock(e.clientId,(0,zr.createBlock)(ns)),setTimeout((function(){(0,jr.dispatch)("core/editor").savePost()}),500)})),(0,$.createElement)($.Fragment,null,(0,$.createElement)(Vo(),{block:ns,attributes:t,urlQueryArgs:{post_id:(0,jr.select)("core/editor").getCurrentPostId()}}))},save:()=>null},ss="llms/php-template",ls={title:(0,H.__)("LifterLMS PHP Template","lifterlms"),category:"llms-blocks",keywords:[(0,H.__)("LifterLMS","lifterlms")],attributes:{template:{type:"string",default:""},title:{type:"string",default:""}},supports:{html:!1,multiple:!1,reusable:!1,inserter:!1},edit:function(e){const{attributes:t}=e,{template:n}=t,r=(0,j.useBlockProps)();let{title:o}=t;if(!o){const e=window.llmsBlockTemplatesL10n;o=e&&e[n]?e[n]:n}return(0,$.createElement)("div",r,(0,$.createElement)(q.Placeholder,{label:o,className:"wp-block-liftelrms-php-template__placeholder"},(0,$.createElement)("div",{className:"wp-block-liftelrms-php-template__placeholder-copy"},(0,$.createElement)("p",{className:"wp-block-liftelrms-php-template__placeholder-warning"},(0,$.createElement)("strong",null,(0,H.__)("Attention: Do not remove this block!","lifterlms"))," ",(0,H.__)("Removal will cause unintended effects on your LMS site.","lifterlms")),(0,$.createElement)("p",null,(0,H.sprintf)(
+/* translators: %s is the template title */
+(0,H.__)("This is an editor placeholder for the %s. On your site this will be replaced by the relevant template. You can move this placeholder around and add further blocks around it to extend the template.","lifterlms"),o)))))},save:()=>null};function is(e){if(!e)return[e];if(e.innerBlocks.length)return as(e.innerBlocks);if("core/block"===e.name){const{blocks:t}=(0,jr.select)("core").getEditedEntityRecord("postType","wp_block",e.attributes.ref);return as(t)}return-1===e.name.indexOf("llms/form-field")?[]:[e]}function as(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=[];return(0,Fr.forEach)(e,(e=>{const n=is(e);n.length&&(t=t.concat(n))})),t}const cs=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"global";const{getFieldBy:r}=(0,jr.select)(wo);return!r(t,e,n)};if("wp_block"===Kr()){let e="";(0,jr.subscribe)((()=>{const t=(0,jr.select)("core/editor").getEditedPostContent();if(void 0===t||t===e)return;e=t;const n=t.includes("\x3c!-- wp:llms/form-field")?"yes":"no";(0,jr.dispatch)("core/editor").editPost({is_llms_field:n})}))}(0,V.addFilter)("blocks.getSaveElement","llms/core-block/save",((e,t,n)=>{if("core/block"!==t.name)return e;const{ref:r}=n;if((0,jr.select)("core").hasFinishedResolution("getEntityRecord",["postType","wp_block",r])){const e=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return Array.isArray(e)||(e=[e]),as(e)}(function(e){let t=!1;return(0,Fr.some)((0,jr.select)("core/block-editor").getBlocks(),(n=>{const r=n.attributes.ref===e;return r&&(t=n),r})),t}(r));e.length&&setTimeout((()=>{(0,jr.dispatch)("core").editEntityRecord("postType","wp_block",n.ref,{is_llms_field:e.length>0?"yes":"no"})}))}return e}));const us=(0,U.withInstanceId)((function(e){let{options:t,fieldType:n,instanceId:r}=e;return(0,$.createElement)($.Fragment,null,t.map(((e,t)=>(0,$.createElement)("label",{htmlFor:`llms-${n}-${r}-${t}`,key:t,style:{display:"block",pointerEvents:"none"}},(0,$.createElement)("input",{id:`llms-${n}-${r}-${t}`,type:n,checked:"yes"===e.default,readOnly:!0})," ",e.text))))}));class ds extends $.Component{getFieldType(){const{attributes:{field:e}}=this.props;return-1!==["email","text","number","url","tel"].indexOf(e)?"input":e}render(){const{attributes:e,setAttributes:t,block:n,clientId:r}=this.props,{description:o,label:s,options:l,placeholder:i,required:a}=e,c=n.supports.llms_edit_fill,u=[];a&&u.push("llms-is-required");const d=this.getFieldType();return(0,$.createElement)($.Fragment,null,(0,$.createElement)("div",{className:"llms-field"},"html"!==d&&(0,$.createElement)(j.RichText,{tagName:"label",className:u.join(" "),value:s,onChange:e=>{t({label:e})},allowedFormats:["bold","italic"],"aria-label":s?(0,H.__)("Field label"):(0,H.__)("Empty field label; start writing to add a label"),placeholder:(0,H.__)("Enter a label")}),"input"===d&&(0,$.createElement)("input",{onChange:e=>t({placeholder:e.target.value}),value:i,placeholder:(0,H.__)("Add optional placeholder text","lifterlms")}),"password"===d&&(0,$.createElement)("input",{disabled:"disabed",type:"password",value:"F4K3p4$50Rd"}),"textarea"===d&&(0,$.createElement)("textarea",{rows:this.props.attributes.html_attrs.rows,onChange:e=>t({placeholder:e.target.value}),value:i,placeholder:(0,H.__)("Add optional placeholder text","lifterlms")}),"select"===d&&(0,$.createElement)("select",null,(0,$.createElement)("option",null,(()=>{if(i)return i;if(!l.length)return"";let e=l[0].text;const t=l.filter((e=>"yes"===e.default));return t.length&&(e=t[0].text),e})())),(0,$.createElement)(j.RichText,{tagName:"span",value:o,onChange:e=>{t({description:e})},allowedFormats:["bold","strikethrough","link"],"aria-label":s?(0,H.__)("Optional field description"):(0,H.__)("Empty field description; start writing to add a description"),placeholder:(0,H.__)("Add optional description text"),style:{color:"#808285",fontStyle:"italic"}}),("radio"===d||"checkbox"===d)&&(0,$.createElement)(us,{options:l,fieldType:d})),c.after&&(0,$.createElement)(q.Slot,{name:`llmsEditFill.after.${c.after}.${r}`}))}}var ps,fs=new Uint8Array(16);function ms(){if(!ps&&!(ps="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return ps(fs)}const hs=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,gs=function(e){return"string"==typeof e&&hs.test(e)};for(var vs=[],bs=0;bs<256;++bs)vs.push((bs+256).toString(16).substr(1));const _s=function(e,t,n){var r=(e=e||{}).random||(e.rng||ms)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){n=n||0;for(var o=0;o<16;++o)t[n+o]=r[o];return t}return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=(vs[e[t+0]]+vs[e[t+1]]+vs[e[t+2]]+vs[e[t+3]]+"-"+vs[e[t+4]]+vs[e[t+5]]+"-"+vs[e[t+6]]+vs[e[t+7]]+"-"+vs[e[t+8]]+vs[e[t+9]]+"-"+vs[e[t+10]]+vs[e[t+11]]+vs[e[t+12]]+vs[e[t+13]]+vs[e[t+14]]+vs[e[t+15]]).toLowerCase();if(!gs(n))throw TypeError("Stringified UUID is invalid");return n}(r)};class ys extends Vr{constructor(){super(...arguments),K(this,"getDefaultClassName",(()=>"llms-search--user")),K(this,"getSearchPath",(()=>this.props.searchPath||"/wp/v2/users")),K(this,"formatSearchResultLabel",(e=>(0,H.sprintf)(// Translators: %1$s = User's name; %2$s = User's id.
+(0,H._x)("%1$s (ID# %2$d)","User search result label","lifterlms"),e.name,e.id)))}getSearchArgs(e){const t=super.getSearchArgs(e),{roles:n}=this.props;return n&&(t.roles=Array.isArray(n)?n.join(","):n),t}}const ws="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,Es=ws?Z.useLayoutEffect:Z.useEffect;function xs(e,t){const n=(0,Z.useRef)();return(0,Z.useMemo)((()=>{const t=e(n.current);return n.current=t,t}),[...t])}function Cs(){const e=(0,Z.useRef)(null),t=(0,Z.useCallback)((t=>{e.current=t}),[]);return[e,t]}let ks={};function Ss(e,t){return(0,Z.useMemo)((()=>{if(t)return t;const n=null==ks[e]?0:ks[e]+1;return ks[e]=n,`${e}-${n}`}),[e,t])}function Os(e){return(t,...n)=>n.reduce(((t,n)=>{const r=Object.entries(n);for(const[n,o]of r){const r=t[n];null!=r&&(t[n]=r+e*o)}return t}),{...t})}const Is=Os(1),Ts=Os(-1),Ds=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return`translate3d(${t?Math.round(t):0}px, ${n?Math.round(n):0}px, 0)`}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return`scaleX(${t}) scaleY(${n})`}},Transform:{toString(e){if(e)return[Ds.Translate.toString(e),Ds.Scale.toString(e)].join(" ")}},Transition:{toString:({property:e,duration:t,easing:n})=>`${e} ${t}ms ${n}`}}),Ps={display:"none"};function Rs(e){let{id:t,value:n}=e;return J().createElement("div",{id:t,style:Ps},n)}const Ms={position:"fixed",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};function Ls(e){let{id:t,announcement:n}=e;return J().createElement("div",{id:t,style:Ms,role:"status","aria-live":"assertive","aria-atomic":!0},n)}const As={draggable:"\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "},Ns={onDragStart:e=>`Picked up draggable item ${e}.`,onDragOver:(e,t)=>t?`Draggable item ${e} was moved over droppable area ${t}.`:`Draggable item ${e} is no longer over a droppable area.`,onDragEnd:(e,t)=>t?`Draggable item ${e} was dropped over droppable area ${t}`:`Draggable item ${e} was dropped.`,onDragCancel:e=>`Dragging was cancelled. Draggable item ${e} was dropped.`};var Fs;!function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"}(Fs||(Fs={}));const Vs=e=>Bs(e,((e,t)=>e{const n=Ws(t,t.left,t.top),r=e.map((([e,t])=>qs(Ws(t),n))),o=Vs(r);return e[o]?e[o][0]:null};function Ks(e){return function(t,...n){return n.reduce(((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x,offsetLeft:t.offsetLeft+e*n.x,offsetTop:t.offsetTop+e*n.y})),{...t})}}const Ys=Ks(1);function Xs(e){const t=[];return e?function e(n){return n?n instanceof Document&&null!=n.scrollingElement?(t.push(n.scrollingElement),t):!(n instanceof HTMLElement)||n instanceof SVGElement?t:(function(e){const t=window.getComputedStyle(e),n=/(auto|scroll|overlay)/;return null!=["overflow","overflowX","overflowY"].find((e=>{const r=t[e];return"string"==typeof r&&n.test(r)}))}(n)&&t.push(n),e(n.parentNode)):t}(e.parentNode):t}function Qs(e){return ws?e===document.scrollingElement||e instanceof Document?window:e instanceof HTMLElement?e:null:null}function Zs(e){return e instanceof Window?{x:e.scrollX,y:e.scrollY}:{x:e.scrollLeft,y:e.scrollTop}}var Js;function el(e){const t={x:0,y:0},n={x:e.scrollWidth-e.clientWidth,y:e.scrollHeight-e.clientHeight};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=n.y,isRight:e.scrollLeft>=n.x,maxScroll:n,minScroll:t}}!function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"}(Js||(Js={}));const tl={x:.2,y:.2};function nl(e,t,{top:n,left:r,right:o,bottom:s},l=10,i=tl){const{clientHeight:a,clientWidth:c}=e,u=(d=e,ws&&d&&d===document.scrollingElement?{top:0,left:0,right:c,bottom:a,width:c,height:a}:t);var d;const{isTop:p,isBottom:f,isLeft:m,isRight:h}=el(e),g={x:0,y:0},v={x:0,y:0},b=u.height*i.y,_=u.width*i.x;return!p&&n<=u.top+b?(g.y=Js.Backward,v.y=l*Math.abs((u.top+b-n)/b)):!f&&s>=u.bottom-b&&(g.y=Js.Forward,v.y=l*Math.abs((u.bottom-b-s)/b)),!h&&o>=u.right-_?(g.x=Js.Forward,v.x=l*Math.abs((u.right-_-o)/_)):!m&&r<=u.left+_&&(g.x=Js.Backward,v.x=l*Math.abs((u.left+_-r)/_)),{direction:g,speed:v}}function rl(e){if(e===document.scrollingElement){const{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}const{top:t,left:n,right:r,bottom:o}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:o,width:e.clientWidth,height:e.clientHeight}}function ol(e){return e.reduce(((e,t)=>Is(e,Zs(t))),js)}function sl(e,t,n=js){if(!(e&&e instanceof HTMLElement))return n;const r={x:n.x+e.offsetLeft,y:n.y+e.offsetTop};return e.offsetParent===t?r:sl(e.offsetParent,t,r)}function ll(e){const{offsetWidth:t,offsetHeight:n}=e,{x:r,y:o}=sl(e,null);return{width:t,height:n,offsetTop:o,offsetLeft:r}}function il(e){if(e instanceof Window){const e=window.innerWidth,t=window.innerHeight;return{top:0,left:0,right:e,bottom:t,width:e,height:t,offsetTop:0,offsetLeft:0}}const{offsetTop:t,offsetLeft:n}=ll(e),{width:r,height:o,top:s,bottom:l,left:i,right:a}=e.getBoundingClientRect();return{width:r,height:o,top:s,bottom:l,right:a,left:i,offsetTop:t,offsetLeft:n}}function al(e){const{width:t,height:n,offsetTop:r,offsetLeft:o}=ll(e),s=ol(Xs(e)),l=r-s.y,i=o-s.x;return{width:t,height:n,top:l,bottom:l+n,right:i+t,left:i,offsetTop:r,offsetLeft:o}}function cl(e){return"top"in e}function ul(e,t=e.offsetLeft,n=e.offsetTop){return[{x:t,y:n},{x:t+e.width,y:n},{x:t,y:n+e.height},{x:t+e.width,y:n+e.height}]}const dl=(e,t)=>{const n=e.map((([e,n])=>function(e,t){const n=Math.max(t.top,e.offsetTop),r=Math.max(t.left,e.offsetLeft),o=Math.min(t.left+t.width,e.offsetLeft+e.width),s=Math.min(t.top+t.height,e.offsetTop+e.height),l=o-r,i=s-n;if(re>t));return n[r]<=0?null:e[r]?e[r][0]:null};function pl(e){return e instanceof HTMLElement?e.ownerDocument:document}function fl(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:{},translate:{x:0,y:0}},droppable:{containers:{}}}}function ml(e,t){switch(t.type){case Fs.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case Fs.DragMove:return e.draggable.active?{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}}:e;case Fs.DragEnd:case Fs.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Fs.RegisterDroppable:{const{element:n}=t,{id:r}=n;return{...e,droppable:{...e.droppable,containers:{...e.droppable.containers,[r]:n}}}}case Fs.SetDroppableDisabled:{const{id:n,disabled:r}=t,o=e.droppable.containers[n];return o?{...e,droppable:{...e.droppable,containers:{...e.droppable.containers,[n]:{...o,disabled:r}}}}:e}case Fs.UnregisterDroppable:{const{id:n}=t;return{...e,droppable:{...e.droppable,containers:Hs(n,e.droppable.containers)}}}default:return e}}const hl=(0,Z.createContext)({type:null,event:null});function gl({announcements:e=Ns,hiddenTextDescribedById:t,screenReaderInstructions:n}){const{announce:r,announcement:o}=function(){const[e,t]=(0,Z.useState)("");return{announce:(0,Z.useCallback)((e=>{null!=e&&t(e)}),[]),announcement:e}}(),s=Ss("DndLiveRegion"),[l,i]=(0,Z.useState)(!1);return(0,Z.useEffect)((()=>{i(!0)}),[]),function({onDragStart:e,onDragMove:t,onDragOver:n,onDragEnd:r,onDragCancel:o}){const s=(0,Z.useContext)(hl),l=(0,Z.useRef)(s);(0,Z.useEffect)((()=>{if(s!==l.current){const{type:i,event:a}=s;switch(i){case Fs.DragStart:null==e||e(a);break;case Fs.DragMove:null==t||t(a);break;case Fs.DragOver:null==n||n(a);break;case Fs.DragCancel:null==o||o(a);break;case Fs.DragEnd:null==r||r(a)}l.current=s}}),[s,e,t,n,r,o])}((0,Z.useMemo)((()=>({onDragStart({active:t}){r(e.onDragStart(t.id))},onDragMove({active:t,over:n}){e.onDragMove&&r(e.onDragMove(t.id,null==n?void 0:n.id))},onDragOver({active:t,over:n}){r(e.onDragOver(t.id,null==n?void 0:n.id))},onDragEnd({active:t,over:n}){r(e.onDragEnd(t.id,null==n?void 0:n.id))},onDragCancel({active:t}){r(e.onDragCancel(t.id))}})),[r,e])),l?(0,Bt.createPortal)(J().createElement(J().Fragment,null,J().createElement(Rs,{id:t,value:n.draggable}),J().createElement(Ls,{id:s,announcement:o})),document.body):null}var vl,bl,_l,yl;function wl(e){const t=(0,Z.useRef)(e);return Es((()=>{t.current!==e&&(t.current=e)}),[e]),t}!function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"}(vl||(vl={})),function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"}(bl||(bl={})),function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"}(_l||(_l={})),function(e){e.Optimized="optimized"}(yl||(yl={}));const El=new Map;const xl={strategy:_l.WhileDragging,frequency:yl.Optimized},Cl=[],kl=Il(il),Sl=Tl(il),Ol=Il(al);function Il(e){return function(t,n){const r=(0,Z.useRef)(t);return xs((o=>t?n||!o&&t||t!==r.current?t instanceof HTMLElement&&null==t.parentNode?null:e(t):null!=o?o:null:null),[t,n])}}function Tl(e){const t=[];return function(n,r){const o=(0,Z.useRef)(n);return xs((s=>n.length?r||!s&&n.length||n!==o.current?n.map((t=>e(t))):null!=s?s:t:t),[n,r])}}function Dl(e,t){return(0,Z.useMemo)((()=>({sensor:e,options:null!=t?t:{}})),[e,t])}class Pl{constructor(e){this.target=e,this.listeners=[]}add(e,t,n){this.target.addEventListener(e,t,n),this.listeners.push({eventName:e,handler:t})}removeAll(){this.listeners.forEach((({eventName:e,handler:t})=>this.target.removeEventListener(e,t)))}}function Rl(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return"number"==typeof t?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t&&r>t.y}var Ml;!function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter"}(Ml||(Ml={}));const Ll={start:[Ml.Space,Ml.Enter],cancel:[Ml.Esc],end:[Ml.Space,Ml.Enter]},Al=(e,{currentCoordinates:t})=>{switch(e.code){case Ml.Right:return{...t,x:t.x+25};case Ml.Left:return{...t,x:t.x-25};case Ml.Down:return{...t,y:t.y+25};case Ml.Up:return{...t,y:t.y-25}}};class Nl{constructor(e){this.props=e,this.autoScrollEnabled=!1,this.coordinates=js;const{event:{target:t}}=e;this.props=e,this.listeners=new Pl(pl(t)),this.windowListeners=new Pl(function(e){var t;return null!=(t=pl(e).defaultView)?t:window}(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),setTimeout((()=>{this.listeners.add("keydown",this.handleKeyDown),this.windowListeners.add("resize",this.handleCancel)}))}handleStart(){const{activeNode:e,onStart:t}=this.props;if(!e.node.current)throw new Error("Active draggable node is undefined");const n=il(e.node.current),r={x:n.left,y:n.top};this.coordinates=r,t(r)}handleKeyDown(e){if(e instanceof KeyboardEvent){const{coordinates:t}=this,{active:n,context:r,options:o}=this.props,{keyboardCodes:s=Ll,coordinateGetter:l=Al,scrollBehavior:i="smooth"}=o,{code:a}=e;if(s.end.includes(a))return void this.handleEnd(e);if(s.cancel.includes(a))return void this.handleCancel(e);const c=l(e,{active:n,context:r.current,currentCoordinates:t});if(c){const n={x:0,y:0},{scrollableAncestors:o}=r.current;for(const r of o){const o=e.code,s=Ts(c,t),{isTop:l,isRight:a,isLeft:u,isBottom:d,maxScroll:p,minScroll:f}=el(r),m=rl(r),h={x:Math.min(o===Ml.Right?m.right-m.width/2:m.right,Math.max(o===Ml.Right?m.left:m.left+m.width/2,c.x)),y:Math.min(o===Ml.Down?m.bottom-m.height/2:m.bottom,Math.max(o===Ml.Down?m.top:m.top+m.height/2,c.y))},g=o===Ml.Right&&!a||o===Ml.Left&&!u,v=o===Ml.Down&&!d||o===Ml.Up&&!l;if(g&&h.x!==c.x){if(o===Ml.Right&&r.scrollLeft+s.x<=p.x||o===Ml.Left&&r.scrollLeft+s.x>=f.x)return void r.scrollBy({left:s.x,behavior:i});n.x=o===Ml.Right?r.scrollLeft-p.x:r.scrollLeft-f.x,r.scrollBy({left:-n.x,behavior:i});break}if(v&&h.y!==c.y){if(o===Ml.Down&&r.scrollTop+s.y<=p.y||o===Ml.Up&&r.scrollTop+s.y>=f.y)return void r.scrollBy({top:s.y,behavior:i});n.y=o===Ml.Down?r.scrollTop-p.y:r.scrollTop-f.y,r.scrollBy({top:-n.y,behavior:i});break}}this.handleMove(e,Is(c,n))}}}handleMove(e,t){const{onMove:n}=this.props;e.preventDefault(),n(t),this.coordinates=t}handleEnd(e){const{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){const{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}function Fl(e){return Boolean(e&&"distance"in e)}function Vl(e){return Boolean(e&&"delay"in e)}var Bl;Nl.activators=[{eventName:"onKeyDown",handler:(e,{keyboardCodes:t=Ll,onActivation:n})=>{const{code:r}=e.nativeEvent;return!!t.start.includes(r)&&(e.preventDefault(),null==n||n({event:e.nativeEvent}),!0)}}],function(e){e.Keydown="keydown"}(Bl||(Bl={}));class $l{constructor(e,t,n=function(e){return e instanceof EventTarget?e:pl(e)}(e.event.target)){this.props=e,this.events=t,this.autoScrollEnabled=!0,this.activated=!1,this.timeoutId=null;const{event:r}=e;this.props=e,this.events=t,this.ownerDocument=pl(r.target),this.listeners=new Pl(n),this.initialCoordinates=zs(r),this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.attach()}attach(){const{events:e,props:{options:{activationConstraint:t}}}=this;if(this.listeners.add(e.move.name,this.handleMove,!1),this.listeners.add(e.end.name,this.handleEnd),this.ownerDocument.addEventListener(Bl.Keydown,this.handleKeydown),t){if(Fl(t))return;if(Vl(t))return void(this.timeoutId=setTimeout(this.handleStart,t.delay))}this.handleStart()}detach(){this.listeners.removeAll(),this.ownerDocument.removeEventListener(Bl.Keydown,this.handleKeydown),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handleStart(){const{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,t(e))}handleMove(e){const{activated:t,initialCoordinates:n,props:r}=this,{onMove:o,options:{activationConstraint:s}}=r;if(!n)return;const l=zs(e),i=Ts(n,l);if(!t&&s){if(Vl(s))return Rl(i,s.tolerance)?this.handleCancel():void 0;if(Fl(s))return Rl(i,s.distance)?this.handleStart():void 0}e.cancelable&&e.preventDefault(),o(l)}handleEnd(){const{onEnd:e}=this.props;this.detach(),e()}handleCancel(){const{onCancel:e}=this.props;this.detach(),e()}handleKeydown(e){e.code===Ml.Esc&&this.handleCancel()}}const Hl={move:{name:"pointermove"},end:{name:"pointerup"}};class Ul extends $l{constructor(e){const{event:t}=e,n=pl(t.target);super(e,Hl,n)}}Ul.activators=[{eventName:"onPointerDown",handler:({nativeEvent:e},{onActivation:t})=>!(!e.isPrimary||0!==e.button||(null==t||t({event:e}),0))}];const jl={move:{name:"mousemove"},end:{name:"mouseup"}};var ql;!function(e){e[e.RightClick=2]="RightClick"}(ql||(ql={})),class extends $l{constructor(e){super(e,jl,pl(e.event.target))}}.activators=[{eventName:"onMouseDown",handler:({nativeEvent:e},{onActivation:t})=>e.button!==ql.RightClick&&(null==t||t({event:e}),!0)}];const zl={move:{name:"touchmove"},end:{name:"touchend"}};(class extends $l{constructor(e){super(e,zl)}}).activators=[{eventName:"onTouchStart",handler:({nativeEvent:e},{onActivation:t})=>{const{touches:n}=e;return!(n.length>1||(null==t||t({event:e}),0))}}];const Wl=[{sensor:Ul,options:{}},{sensor:Nl,options:{}}],Gl={current:{}},Kl=(0,Z.createContext)({...js,scaleX:1,scaleY:1}),Yl=(0,Z.memo)((function({id:e,autoScroll:t=!0,announcements:n,children:r,sensors:o=Wl,collisionDetection:s=dl,layoutMeasuring:l,modifiers:i,screenReaderInstructions:a=As,...c}){var u,d,p;const f=(0,Z.useReducer)(ml,void 0,fl),[m,h]=f,[g,v]=(0,Z.useState)((()=>({type:null,event:null}))),{draggable:{active:b,nodes:_,translate:y},droppable:{containers:w}}=m,E=b?_[b]:null,x=(0,Z.useRef)({initial:null,translated:null}),C=(0,Z.useMemo)((()=>{var e;return null!=b?{id:b,data:null!=(e=null==E?void 0:E.data)?e:Gl,rect:x}:null}),[b,E]),k=(0,Z.useRef)(null),[S,O]=(0,Z.useState)(null),[I,T]=(0,Z.useState)(null),D=(0,Z.useRef)(c),P=Ss("DndDescribedBy",e),{layoutRectMap:R,recomputeLayouts:M,willRecomputeLayouts:L}=function(e,{dragging:t,dependencies:n,config:r}){const[o,s]=(0,Z.useState)(!1),{frequency:l,strategy:i}=(a=r)?{...xl,...a}:xl;var a;const c=(0,Z.useRef)(e),u=(0,Z.useCallback)((()=>s(!0)),[]),d=(0,Z.useRef)(null),p=function(){switch(i){case _l.Always:return!1;case _l.BeforeDragging:return t;default:return!t}}(),f=xs((n=>{if(p&&!t)return El;if(!n||n===El||c.current!==e||o){for(let t of Object.values(e))t&&(t.rect.current=t.node.current?ll(t.node.current):null);return function(e){const t=new Map;if(e)for(const n of Object.values(e)){if(!n)continue;const{id:e,rect:r,disabled:o}=n;o||null==r.current||t.set(e,r.current)}return t}(e)}return n}),[e,t,p,o]);return(0,Z.useEffect)((()=>{c.current=e}),[e]),(0,Z.useEffect)((()=>{o&&s(!1)}),[o]),(0,Z.useEffect)((function(){p||requestAnimationFrame(u)}),[t,p]),(0,Z.useEffect)((function(){p||"number"!=typeof l||null!==d.current||(d.current=setTimeout((()=>{u(),d.current=null}),l))}),[l,p,u,...n]),{layoutRectMap:f,recomputeLayouts:u,willRecomputeLayouts:o}}(w,{dragging:null!=b,dependencies:[y.x,y.y],config:l}),A=function(e,t){const n=null!==t?e[t]:void 0,r=n?n.node.current:null;return xs((e=>{var n;return null===t?null:null!=(n=null!=r?r:e)?n:null}),[r,t])}(_,b),N=I?zs(I):null,F=Ol(A),V=kl(A),B=(0,Z.useRef)(null),$=(U=B.current,(H=F)&&U?{x:H.left-U.left,y:H.top-U.top}:js);var H,U;const j=(0,Z.useRef)({active:null,activeNode:A,collisionRect:null,droppableRects:R,draggableNodes:_,draggingNodeRect:null,droppableContainers:w,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null,translatedRect:null}),q=function(e,t){var n,r;return e&&null!=(n=null==(r=t[e])?void 0:r.node.current)?n:null}(null!=(u=null==(d=j.current.over)?void 0:d.id)?u:null,w),z=kl(A?A.ownerDocument.defaultView:null),W=kl(A?A.parentElement:null),G=function(e){const t=(0,Z.useRef)(e),n=xs((n=>e?n&&e&&t.current&&e.parentNode===t.current.parentNode?n:Xs(e):Cl),[e]);return(0,Z.useEffect)((()=>{t.current=e}),[e]),n}(b?null!=q?q:A:null),K=Sl(G),[Y,X]=Cs(),Q=kl(b?Y.current:null,L),ee=null!=Q?Q:V,te=function(e,{transform:t,...n}){return(null==e?void 0:e.length)?e.reduce(((e,t)=>t({transform:e,...n})),t):t}(i,{transform:{x:y.x-$.x,y:y.y-$.y,scaleX:1,scaleY:1},active:C,over:j.current.over,activeNodeRect:V,draggingNodeRect:ee,containerNodeRect:W,overlayNodeRect:Q,scrollableAncestors:G,scrollableAncestorRects:K,windowRect:z}),ne=N?Is(N,y):null,re=function(e){const[t,n]=(0,Z.useState)(null),r=(0,Z.useRef)(e),o=(0,Z.useCallback)((e=>{const t=Qs(e.target);t&&n((e=>e?(e.set(t,Zs(t)),new Map(e)):null))}),[]);return(0,Z.useEffect)((()=>{const t=r.current;if(e!==t){s(t);const l=e.map((e=>{const t=Qs(e);return t?(t.addEventListener("scroll",o,{passive:!0}),[t,Zs(t)]):null})).filter((e=>null!=e));n(l.length?new Map(l):null),r.current=e}return()=>{s(e),s(t)};function s(e){e.forEach((e=>{const t=Qs(e);null==t||t.removeEventListener("scroll",o)}))}}),[o,e]),(0,Z.useMemo)((()=>e.length?t?Array.from(t.values()).reduce(((e,t)=>Is(e,t)),js):ol(e):js),[e,t])}(G),oe=Is(te,re),se=F?Ys(F,te):null,le=se?Ys(se,re):null,ie=function(e,t){var n;return e&&null!=(n=t[e])?n:null}(C&&le?s(Array.from(R.entries()),le):null,w),ae=(0,Z.useMemo)((()=>ie&&ie.rect.current?{id:ie.id,rect:ie.rect.current,data:ie.data,disabled:ie.disabled}:null),[ie]),ce=function(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}(te,null!=(p=null==ie?void 0:ie.rect.current)?p:null,F),ue=(0,Z.useCallback)(((e,{sensor:t,options:n})=>{if(!k.current)return;const r=_[k.current];if(!r)return;const o=new t({active:k.current,activeNode:r,event:e.nativeEvent,options:n,context:j,onStart(e){const t=k.current;if(!t)return;const n=_[t];if(!n)return;const{onDragStart:r}=D.current,o={active:{id:t,data:n.data,rect:x}};h({type:Fs.DragStart,initialCoordinates:e,active:t}),v({type:Fs.DragStart,event:o}),null==r||r(o)},onMove(e){h({type:Fs.DragMove,coordinates:e})},onEnd:s(Fs.DragEnd),onCancel:s(Fs.DragCancel)});function s(e){return async function(){const{active:t,over:n,scrollAdjustedTranslate:r}=j.current;let o=null;if(t&&r){const{cancelDrop:s}=D.current;o={active:t,delta:r,over:n},e===Fs.DragEnd&&"function"==typeof s&&await Promise.resolve(s(o))&&(e=Fs.DragCancel)}if(k.current=null,h({type:e}),O(null),T(null),o){const{onDragCancel:t,onDragEnd:n}=D.current,r=e===Fs.DragEnd?n:t;v({type:e,event:o}),null==r||r(o)}}}O(o),T(e.nativeEvent)}),[h,_]),de=(0,Z.useCallback)(((e,t)=>(n,r)=>{const o=n.nativeEvent;null!==k.current||o.dndKit||o.defaultPrevented||!0===e(n,t.options)&&(o.dndKit={capturedBy:t.sensor},k.current=r,ue(n,t))}),[ue]),pe=function(e,t){return(0,Z.useMemo)((()=>e.reduce(((e,n)=>{const{sensor:r}=n;return[...e,...r.activators.map((e=>({eventName:e.eventName,handler:t(e.handler,n)})))]}),[])),[e,t])}(o,de);Es((()=>{D.current=c}),Object.values(c)),(0,Z.useEffect)((()=>{C||(B.current=null),C&&F&&!B.current&&(B.current=F)}),[F,C]),(0,Z.useEffect)((()=>{const{onDragMove:e}=D.current,{active:t,over:n}=j.current;if(!t)return;const r={active:t,delta:{x:oe.x,y:oe.y},over:n};v({type:Fs.DragMove,event:r}),null==e||e(r)}),[oe.x,oe.y]),(0,Z.useEffect)((()=>{const{active:e,scrollAdjustedTranslate:t}=j.current;if(!e||!k.current||!t)return;const{onDragOver:n}=D.current,r={active:e,delta:{x:t.x,y:t.y},over:ae};v({type:Fs.DragOver,event:r}),null==n||n(r)}),[null==ae?void 0:ae.id]),Es((()=>{j.current={active:C,activeNode:A,collisionRect:le,droppableRects:R,draggableNodes:_,draggingNodeRect:ee,droppableContainers:w,over:ae,scrollableAncestors:G,scrollAdjustedTranslate:oe,translatedRect:se},x.current={initial:ee,translated:se}}),[C,A,le,_,ee,R,w,ae,G,oe,se]),function({acceleration:e,activator:t=vl.Pointer,canScroll:n,draggingRect:r,enabled:o,interval:s=5,order:l=bl.TreeOrder,pointerCoordinates:i,scrollableAncestors:a,scrollableAncestorRects:c,threshold:u}){const[d,p]=function(){const e=(0,Z.useRef)(null);return[(0,Z.useCallback)(((t,n)=>{e.current=setInterval(t,n)}),[]),(0,Z.useCallback)((()=>{null!==e.current&&(clearInterval(e.current),e.current=null)}),[])]}(),f=(0,Z.useRef)({x:1,y:1}),m=(0,Z.useMemo)((()=>{switch(t){case vl.Pointer:return i?{top:i.y,bottom:i.y,left:i.x,right:i.x}:null;case vl.DraggableRect:return r}return null}),[t,r,i]),h=(0,Z.useRef)(js),g=(0,Z.useRef)(null),v=(0,Z.useCallback)((()=>{const e=g.current;if(!e)return;const t=f.current.x*h.current.x,n=f.current.y*h.current.y;e.scrollBy(t,n)}),[]),b=(0,Z.useMemo)((()=>l===bl.TreeOrder?[...a].reverse():a),[l,a]);(0,Z.useEffect)((()=>{if(o&&a.length&&m){for(const t of b){if(!1===(null==n?void 0:n(t)))continue;const r=a.indexOf(t),o=c[r];if(!o)continue;const{direction:l,speed:i}=nl(t,o,m,e,u);if(i.x>0||i.y>0)return p(),g.current=t,d(v,s),f.current=i,void(h.current=l)}f.current={x:0,y:0},h.current={x:0,y:0},p()}else p()}),[e,v,n,p,o,s,JSON.stringify(m),d,a,b,c,JSON.stringify(u)])}({...function(){const e=!1===(null==S?void 0:S.autoScrollEnabled),n="object"==typeof t?!1===t.enabled:!1===t,r=!e&&!n;return"object"==typeof t?{...t,enabled:r}:{enabled:r}}(),draggingRect:se,pointerCoordinates:ne,scrollableAncestors:G,scrollableAncestorRects:K});const fe=(0,Z.useMemo)((()=>({active:C,activeNode:A,activeNodeRect:F,activeNodeClientRect:V,activatorEvent:I,activators:pe,ariaDescribedById:{draggable:P},overlayNode:{nodeRef:Y,rect:Q,setRef:X},containerNodeRect:W,dispatch:h,draggableNodes:_,droppableContainers:w,droppableRects:R,over:ae,recomputeLayouts:M,scrollableAncestors:G,scrollableAncestorRects:K,willRecomputeLayouts:L,windowRect:z})),[C,A,V,F,I,pe,W,Q,Y,h,_,P,w,R,ae,M,G,K,X,L,z]);return J().createElement(hl.Provider,{value:g},J().createElement(Us.Provider,{value:fe},J().createElement(Kl.Provider,{value:ce},r)),J().createElement(gl,{announcements:n,hiddenTextDescribedById:P,screenReaderInstructions:a}))})),Xl=(0,Z.createContext)(null),Ql="button";function Zl(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Jl(e){return null!==e&&e>=0}const ei=({layoutRects:e,activeIndex:t,overIndex:n,index:r})=>{const o=Zl(e,n,t),s=e[r],l=o[r];return l&&s?{x:l.offsetLeft-s.offsetLeft,y:l.offsetTop-s.offsetTop,scaleX:l.width/s.width,scaleY:l.height/s.height}:null},ti={scaleX:1,scaleY:1},ni=({activeIndex:e,activeNodeRect:t,index:n,layoutRects:r,overIndex:o})=>{var s;const l=null!=(s=r[e])?s:t;if(!l)return null;if(n===e){const t=r[o];return t?{x:0,y:ee&&n<=o?{x:0,y:-l.height-i,...ti}:n=o?{x:0,y:l.height+i,...ti}:{x:0,y:0,...ti}},ri="Sortable",oi=J().createContext({activeIndex:-1,containerId:ri,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:ei,wasSorting:{current:!1}});function si({children:e,id:t,items:n,strategy:r=ei}){const{active:o,overlayNode:s,droppableRects:l,over:i,recomputeLayouts:a,willRecomputeLayouts:c}=(0,Z.useContext)(Us),u=Ss(ri,t),d=Boolean(null!==s.rect),p=(0,Z.useMemo)((()=>n.map((e=>"string"==typeof e?e:e.id))),[n]),f=o?p.indexOf(o.id):-1,m=-1!==f,h=(0,Z.useRef)(m),g=i?p.indexOf(i.id):-1,v=(0,Z.useRef)(p),b=function(e,t){return e.reduce(((e,n,r)=>{const o=t.get(n);return o&&(e[r]=o),e}),Array(e.length))}(p,l),_=(y=p,w=v.current,!(y.join()===w.join()));var y,w;const E=-1!==g&&-1===f||_;Es((()=>{_&&m&&!c&&a()}),[_,m,a,c]),(0,Z.useEffect)((()=>{v.current=p}),[p]),(0,Z.useEffect)((()=>{requestAnimationFrame((()=>{h.current=m}))}),[m]);const x=(0,Z.useMemo)((()=>({activeIndex:f,containerId:u,disableTransforms:E,items:p,overIndex:g,useDragOverlay:d,sortedRects:b,strategy:r,wasSorting:h})),[f,u,E,p,g,b,d,r,h]);return J().createElement(oi.Provider,{value:x},e)}const li=({isSorting:e,index:t,newIndex:n,transition:r})=>!(!r||!e&&n===t),ii={duration:200,easing:"ease"},ai="transform",ci=Ds.Transition.toString({property:ai,duration:0,easing:"linear"}),ui={roleDescription:"sortable"};function di({animateLayoutChanges:e=li,attributes:t,disabled:n,data:r,id:o,strategy:s,transition:l=ii}){const{items:i,containerId:a,activeIndex:c,disableTransforms:u,sortedRects:d,overIndex:p,useDragOverlay:f,strategy:m,wasSorting:h}=(0,Z.useContext)(oi),g=i.indexOf(o),v=(0,Z.useMemo)((()=>({sortable:{containerId:a,index:g,items:i},...r})),[a,r,g,i]),{rect:b,node:_,setNodeRef:y}=function({data:e,disabled:t=!1,id:n}){const{active:r,dispatch:o,over:s}=(0,Z.useContext)(Us),l=(0,Z.useRef)(null),[i,a]=Cs(),c=wl(e);return Es((()=>(o({type:Fs.RegisterDroppable,element:{id:n,disabled:t,node:i,rect:l,data:c}}),()=>o({type:Fs.UnregisterDroppable,id:n}))),[n]),(0,Z.useEffect)((()=>{o({type:Fs.SetDroppableDisabled,id:n,disabled:t})}),[t]),{active:r,rect:l,isOver:(null==s?void 0:s.id)===n,node:i,over:s,setNodeRef:a}}({id:o,data:v}),{active:w,activeNodeRect:E,activatorEvent:x,attributes:C,setNodeRef:k,listeners:S,isDragging:O,over:I,transform:T}=function({id:e,data:t,disabled:n=!1,attributes:r}){const{active:o,activeNodeRect:s,activatorEvent:l,ariaDescribedById:i,draggableNodes:a,droppableRects:c,activators:u,over:d}=(0,Z.useContext)(Us),{role:p=Ql,roleDescription:f="draggable",tabIndex:m=0}=null!=r?r:{},h=(null==o?void 0:o.id)===e,g=(0,Z.useContext)(h?Kl:Xl),[v,b]=Cs(),_=function(e,t){return(0,Z.useMemo)((()=>e.reduce(((e,{eventName:n,handler:r})=>(e[n]=e=>{r(e,t)},e)),{})),[e,t])}(u,e),y=wl(t);return(0,Z.useEffect)((()=>(a[e]={node:v,data:y},()=>{delete a[e]})),[a,e]),{active:o,activeNodeRect:s,activatorEvent:l,attributes:(0,Z.useMemo)((()=>({role:p,tabIndex:m,"aria-pressed":!(!h||p!==Ql)||void 0,"aria-roledescription":f,"aria-describedby":i.draggable})),[p,m,h,f,i.draggable]),droppableRects:c,isDragging:h,listeners:n?void 0:_,node:v,over:d,setNodeRef:b,transform:g}}({id:o,data:v,attributes:{...ui,...t},disabled:n}),D=function(...e){return(0,Z.useMemo)((()=>t=>{e.forEach((e=>e(t)))}),e)}(y,k),P=Boolean(w),R=P&&h.current&&!u&&Jl(c)&&Jl(p),M=!f&&O,L=M&&R?T:null,A=R?null!=L?L:(null!=s?s:m)({layoutRects:d,activeNodeRect:E,activeIndex:c,overIndex:p,index:g}):null,N=Jl(c)&&Jl(p)?Zl(i,c,p).indexOf(o):g,F=(0,Z.useRef)(N),V=e({active:w,isDragging:O,isSorting:P,id:o,index:g,items:i,newIndex:F.current,transition:l,wasSorting:h.current}),B=function({rect:e,disabled:t,index:n,node:r}){const[o,s]=(0,Z.useState)(null),l=(0,Z.useRef)(n);return(0,Z.useEffect)((()=>{if(!t&&n!==l.current&&r.current){const t=e.current;if(t){const e=il(r.current),n={x:t.offsetLeft-e.offsetLeft,y:t.offsetTop-e.offsetTop,scaleX:t.width/e.width,scaleY:t.height/e.height};(n.x||n.y)&&s(n)}}n!==l.current&&(l.current=n)}),[t,n,r,e]),(0,Z.useEffect)((()=>{o&&requestAnimationFrame((()=>{s(null)}))}),[o]),o}({disabled:!V,index:g,node:_,rect:b});return(0,Z.useEffect)((()=>{P&&(F.current=N)}),[P,N]),{active:w,attributes:C,activatorEvent:x,rect:b,index:g,isSorting:P,isDragging:O,listeners:S,node:_,overIndex:p,over:I,setNodeRef:D,setDroppableNodeRef:y,setDraggableNodeRef:k,transform:null!=B?B:A,transition:B?ci:M||!l?null:P||V?Ds.Transition.toString({...l,property:ai}):null}}const pi=[Ml.Down,Ml.Right,Ml.Up,Ml.Left],fi=(e,{context:{droppableContainers:t,translatedRect:n,scrollableAncestors:r}})=>{if(pi.includes(e.code)){if(e.preventDefault(),!n)return;const s=[];Object.entries(t).forEach((([t,r])=>{if(null==r?void 0:r.disabled)return;const o=null==r?void 0:r.node.current;if(!o)return;const l=al(o);switch(e.code){case Ml.Down:n.top+n.height<=l.top&&s.push([t,l]);break;case Ml.Up:n.top>=l.top+l.height&&s.push([t,l]);break;case Ml.Left:n.left>=l.left+l.width&&s.push([t,l]);break;case Ml.Right:n.left+n.width<=l.left&&s.push([t,l])}}));const l=((e,t)=>{const n=ul(t,t.left,t.top),r=e.map((([e,t])=>{const r=ul(t,cl(t)?t.left:void 0,cl(t)?t.top:void 0),o=n.reduce(((e,t,n)=>e+qs(r[n],t)),0);return Number((o/4).toFixed(4))})),o=Vs(r);return e[o]?e[o][0]:null})(s,n);if(l){var o;const e=null==(o=t[l])?void 0:o.node.current;if(e){const t=Xs(e).some(((e,t)=>r[t]!==e)),o=al(e),s=t?{x:0,y:0}:{x:n.width-o.width,y:n.height-o.height};return{x:o.left-s.x,y:o.top-s.y}}}}};const mi=({transform:e})=>({...e,x:0}),hi=({transform:e,activeNodeRect:t,windowRect:n})=>t&&n?function(e,t,n){const r={...e};return t.top+e.y<=n.top?r.y=n.top-t.top:t.bottom+e.y>=n.top+n.height&&(r.y=n.top+n.height-t.bottom),t.left+e.x<=n.left?r.x=n.left-t.left:t.right+e.x>=n.left+n.width&&(r.x=n.left+n.width-t.right),r}(e,t,n):e,gi=(0,$.createElement)("svg",{width:"18",height:"18",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 18 18"},(0,$.createElement)("path",{d:"M5 4h2V2H5v2zm6-2v2h2V2h-2zm-6 8h2V8H5v2zm6 0h2V8h-2v2zm-6 6h2v-2H5v2zm6 0h2v-2h-2v2z"}));function vi(e){let{label:t,setNodeRef:n,listeners:r}=e;return t=t||(0,H.__)("Reorder instructor","lifterlms"),(0,$.createElement)(q.Button,X({isSmall:!0,showTooltip:!0,label:t,icon:gi,ref:n,className:"llms-drag-handle"},r))}function bi(e){let{id:t,index:n,item:r,isDragging:o,dragHandle:s,ListItem:l,itemClassName:i="",manageState:a,extraProps:c={}}=e;const{attributes:u,listeners:d,setNodeRef:p,transform:f,transition:m}=di({id:t}),h={transform:Ds.Transform.toString(f),transition:m};return o&&f&&f.scaleX&&f.scaleY&&(f.scaleX=.9,f.scaleY=.9),o&&(i+=" llms-is-dragging"),(0,$.createElement)("div",X({style:h,ref:s?void 0:p,className:`llms-sortable-list--item ${i}`},u,s?{}:d),(0,$.createElement)(l,{id:t,item:r,index:n,isDragging:o,setNodeRef:p,listeners:d,manageState:a,extraProps:c}))}function _i(e){let{ListItem:t,manageState:n,items:r=[],sortableStrategy:o=ni,ctxModifiers:s=[mi,hi],dragHandle:l=!0,listClassName:i="",itemClassName:a="",extraProps:c={}}=e;const[u,d]=(0,$.useState)(!1),p=function(...e){return(0,Z.useMemo)((()=>[...e].filter((e=>null!=e))),[...e])}(Dl(Ul),Dl(Nl,{coordinateGetter:fi}));return(0,$.createElement)(Yl,{sensors:p,collisionDetection:Gs,onDragStart:function(e){d(e.active.id)},onDragEnd:function(e){d(!1);const{active:t,over:o}=e;if(t.id!==o.id){const e=(0,Fr.findIndex)(r,{id:t.id}),s=(0,Fr.findIndex)(r,{id:o.id});n.updateItems(Zl(r,e,s))}},modifiers:s},(0,$.createElement)("div",{className:`llms-sortable-list ${i}`},(0,$.createElement)(si,{items:r,strategy:o},r.map(((e,r)=>(0,$.createElement)(bi,{id:e.id,key:e.id,index:r,item:e,isDragging:e.id===u,dragHandle:l,ListItem:t,itemClassName:a,manageState:n,extraProps:c}))))))}function yi(e){let{id:t,item:n,extraProps:r,manageState:o,listeners:s,setNodeRef:l}=e;const{showKeys:i,type:a,optionCount:c}=r,{updateItem:u,deleteItem:d}=o;return(0,$.createElement)($.Fragment,null,(0,$.createElement)(vi,{label:(0,H.__)("Reorder option","lifterlms"),setNodeRef:l,listeners:s}),(0,$.createElement)(q.Tooltip,{text:(0,H.__)("Make default","lifterlms")},(0,$.createElement)("div",{className:"llms-field-opt-default-wrap"},"checkbox"===a&&(0,$.createElement)((()=>(0,$.createElement)(q.CheckboxControl,{className:"llms-field-opt-default",checked:"yes"===n.default,onChange:e=>{u(t,{...n,default:!0===e?"yes":"no"})},tabIndex:"-1"})),null),"checkbox"!==a&&(0,$.createElement)((()=>(0,$.createElement)(q.RadioControl,{className:"llms-field-opt-default",selected:n.default,onChange:e=>{u(t,{...n,default:e})},options:[{label:"",value:"yes"}],tabIndex:"-1"})),null))),(0,$.createElement)("div",{className:"llms-field-opt-text-wrap"},(0,$.createElement)(q.TextControl,{className:"llms-field-opt-text",value:n.text,onChange:e=>u(t,{...n,text:e}),placeholder:(0,H.__)("Option label","lifterlms")}),i&&(0,$.createElement)("div",{className:"llms-field-opt-db-key"},(0,$.createElement)(q.Tooltip,{text:(0,H.__)("Database key value","lifterlms")},(0,$.createElement)(q.Dashicon,{icon:"database"})),(0,$.createElement)(q.TextControl,{className:"llms-field-opt-text ",value:n.key,onChange:e=>u(t,{...n,key:e}),placeholder:(0,H.__)("Database key value","lifterlms")}))),c>1&&(0,$.createElement)("div",{className:"llms-del-field-opt-wrap"},(0,$.createElement)(q.Button,{style:{flex:1},icon:"trash",label:(0,H.__)("Delete Option","lifterlms"),onClick:()=>d(t),tabIndex:"-1",isSmall:!0})))}class wi extends $.Component{constructor(){super(...arguments),K(this,"addOption",(()=>{const{options:e}=this.state,{length:t}=e,[n,r]=this.getUniqueKeyNumber(t+1),o={key:n,id:_s(),
+// Translators: %d = Option index in the list of options.
+text:(0,H.sprintf)((0,H.__)("Option %d","lifterlms"),r),default:"no"};e.push(o),this.updateOptions(e)})),K(this,"getManageState",(()=>({createItem:this.addOption,deleteItem:this.removeOption,updateItem:this.updateOption,updateItems:this.updateOptions}))),K(this,"getUniqueKeyNumber",(e=>{const t=e=>{const{options:t}=this.state;return-1===t.findIndex((t=>{let{key:n}=t;return n===e}))};// Translators: %d = Option index in the list of options.
+let n=(0,H.sprintf)((0,H.__)("option_%d","lifterlms"),e);for(;!t(n);)[n,e]=this.getUniqueKeyNumber(++e);return[n,e]})),K(this,"updateOption",((e,t)=>{const{options:n}=this.state,{field:r}=this.props.attributes,o="yes"===t.default&&"checkbox"!==r,s=n.map((n=>(e===n.id?n={...n,...t}:o&&(n={...n,default:"no"}),n)));this.updateOptions(s)})),K(this,"updateOptions",(e=>{const{setAttributes:t}=this.props;this.setState({options:e}),t({options:e.map((e=>{let{id:t,...n}=e;return n}))})})),K(this,"removeOption",(e=>{const{options:t}=this.state,{field:n}=this.props.attributes;let r=null;if("checkbox"!==n){const n=t.find((t=>{let{id:n}=t;return n===e}));r="yes"===n.default}this.updateOptions(t.filter((t=>{let{id:n}=t;return n!==e})).map(((e,t)=>(r&&0===t&&(e={...e,default:"yes"}),e))))}));const{options:e}=this.props.attributes;this.state={showKeys:!1,options:e.map((e=>({...e,id:_s()})))}}render(){const{props:e,state:t}=this,{attributes:n}=e,{id:r,field:o}=n,{options:s,showKeys:l}=t,{length:i}=s;return(0,$.createElement)(q.BaseControl,{id:r,label:(0,H.__)("Options","lifterlms")},(0,$.createElement)(_i,{ListItem:yi,items:s,itemClassName:"llms-field-option",manageState:this.getManageState(),extraProps:{type:o,showKeys:l,optionCount:i}}),(0,$.createElement)("div",{className:"llms-field-options--footer"},(0,$.createElement)(q.Button,{isSecondary:!0,onClick:this.addOption},(0,H.__)("Add option","lifterlms")),(0,$.createElement)(q.Button,{isTertiary:!0,onClick:()=>this.setState({showKeys:!l})},l?(0,H.__)("Hide keys","lifterlms"):(0,H.__)("Show keys","lifterlms"))))}}class Ei extends $.Component{constructor(e){super(e),this.state={validationErrors:{}}}getBlockByFieldId(e){const t=Gr().filter((t=>e===t.attributes.id));return!!t&&t[0]}getColumnsOptions(e){let t=[];return e&&(!e||e["llms/fieldGroup/fieldLayout"]&&"stacked"!==e["llms/fieldGroup/fieldLayout"])||t.push({value:12,label:(0,H.__)("100%","lifterlms")}),t=t.concat([{value:9,label:(0,H.__)("75%","lifterlms")},{value:8,label:(0,H.__)("66.66%","lifterlms")},{value:6,label:(0,H.__)("50%","lifterlms")},{value:4,label:(0,H.__)("33.33%","lifterlms")},{value:3,label:(0,H.__)("25%","lifterlms")}]),t}getMatchFieldOptions(){const{clientId:e,name:t}=this.props;return[{value:"",label:(0,H.__)("Select a field","lifterlms")}].concat(Gr().filter((n=>n.clientId!==e&&-1!==t.indexOf("llms/form-field-"))).map((e=>{const{id:t,label:n}=e.attributes;return{value:t,label:`${n} (${t})`}})))}hasInspectorSupport(){const{inspectorSupports:e}=this.props;return Object.keys(e).filter((t=>e[t])).length>=1}hasInspectorControlSupport(e){const{inspectorSupports:t}=this.props;return t[e]}canTransformToGroup(e){return!(!e||this.isInAConfirmGroup(e))&&(0,zr.getPossibleBlockTransformations)([e]).map((e=>{let{name:t}=e;return t})).includes("llms/form-field-confirm-group")}isInAConfirmGroup(e){return!!this.getParentGroupClientId(e)}getParentGroupClientId(e){if(!e)return!1;const{clientId:t}=e,{getBlockParentsByBlockName:n}=(0,jr.select)(j.store),r=n(t,"llms/form-field-confirm-group");return!!r.length&&r[0]}getBlockSiblings(e){const t=this.getParentGroupClientId(e);if(!t)return[];const{getBlock:n}=(0,jr.select)(j.store);return n(t).innerBlocks.filter((t=>{let{clientId:n}=t;return n!==e.clientId}))}getValidationErrText(e){let t="";const n=this.state.validationErrors[e];if(n)if(this.containsInvalidCharacters(n))
+// Translators: %s = user-submitted value.
+t=(0,H.__)('The value "%s" contains invalid characters. Only letters, numbers, underscores, and hyphens are allowed.',"lifterlms");else switch(e){case"data_store_key":
+// Translators: %s = user-submitted value.
+t=(0,H.__)('The user meta key "%s" is not unique. Please choose a unique value.',"lifterlms");break;case"id":
+// Translators: %s = user-submitted value.
+t=(0,H.__)('The ID "%s" is not unique. Please choose a unique field ID.',"lifterlms");break;case"name":
+// Translators: %s = user-submitted value.
+t=(0,H.__)('The name "%s" is not unique. Please choose a globally unique field name.',"lifterlms");break;default:
+// Translators: %s = user-submitted value.
+t=(0,H.__)('The chosen value "%s" is invalid.',"lifterlms")}else t=(0,H.__)("The value cannot be blank.","lifterlms");return(0,H.sprintf)(t,n)}containsInvalidCharacters(e){return!!e.match(/[^A-Za-z0-9\-\_]/g)}setValidationError(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.setState({validationErrors:{...this.state.validationErrors,[e]:t}})}hasValidationErr(e){return"string"==typeof this.state.validationErrors[e]}ValidatedTextControl(e){let{parent:t,attrKey:n,label:r,help:o}=e;const{attributes:s}=t.props,l=s[n],i=t.hasValidationErr(n),a=i?"llms-invalid-control":"";return(0,$.createElement)("div",{className:a},(0,$.createElement)(q.TextControl,{label:r,help:o,value:l,onChange:e=>t.updateValueWithValidation(n,e,"name"===n?"global":"local")}),i&&(0,$.createElement)("p",{className:"llms-invalid-control--msg"},t.getValidationErrText(n)))}updateValueWithValidation(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"local";const{clientId:r,attributes:o,setAttributes:s}=this.props,{name:l}=o,i=o[e],{editField:a,renameField:c}=(0,jr.dispatch)(wo),{lockPostSaving:u,unlockPostSaving:d}=(0,jr.dispatch)(qr.store),p=`llms-${e}-validation-err-${r}-${l}`;if(t===i)return;const f=!t,m=this.containsInvalidCharacters(t),h=cs(t,e,n),g=!f&&!m&&h;if(this.setValidationError(e),d(p),!g){if(this.setValidationError(e,t),f)return;u(p)}"name"===e?(h||(t=t.slice(0,-1)),c(o.name,t)):a(o.name,{[e]:t}),s({[e]:t})}render(){if(!this.hasInspectorSupport())return"";const{attributes:e,setAttributes:t,clientId:n,context:r}=this.props,o=(0,jr.select)(j.store).getBlock(n),{required:s,placeholder:l,columns:i,isConfirmationField:a,isConfirmationControlField:c}=e,u=this.canTransformToGroup(o),d=this.isInAConfirmGroup(o);return(0,$.createElement)($.Fragment,null,(0,$.createElement)(j.InspectorControls,null,(0,$.createElement)(q.PanelBody,null,!a&&this.hasInspectorControlSupport("required")&&(0,$.createElement)(q.ToggleControl,{className:"llms-required-field-toggle",label:(0,H.__)("Required","lifterlms"),checked:!!s,onChange:()=>t({required:!s}),help:s?(0,H.__)("Field is required.","lifterlms"):(0,H.__)("Field is optional.","lifterlms")}),(0,$.createElement)(q.SelectControl,{className:"llms-field-width-select",label:(0,H.__)("Field Width","lifterlms"),onChange:e=>{e=parseInt(e,10),t({columns:e});const n=this.getBlockSiblings(o);if(n.length&&e+n[0].attributes.columns>12){const{updateBlockAttributes:t}=(0,jr.dispatch)(j.store);t(n[0].clientId,{columns:12-e})}},help:(0,H.__)("Determines the width of the form field.","lifterlms"),value:i,options:this.getColumnsOptions(r)}),this.hasInspectorControlSupport("options")&&(0,$.createElement)(wi,{attributes:e,setAttributes:t}),this.hasInspectorControlSupport("placeholder")&&(0,$.createElement)(q.TextControl,{label:(0,H.__)("Placeholder","lifterlms"),value:l,onChange:e=>t({placeholder:e}),help:(0,H.__)("Displays a placeholder option as the selected instead of a default value.","lifterlms")}),(u||c&&d)&&(0,$.createElement)(q.ToggleControl,{className:"llms-confirmation-field-toggle",label:(0,H.__)("Confirmation Field","lifterlms"),checked:d,onChange:()=>{const{replaceBlock:e,selectBlock:t}=(0,jr.dispatch)(j.store),{findControllerBlockIndex:r}=(0,zr.getBlockType)("llms/form-field-confirm-group"),{getBlock:s}=(0,jr.select)(j.store);let l=n,i="llms/form-field-confirm-group",a=o,c=null;d&&(l=this.getParentGroupClientId(o),a=s(l),i=o.name);const u=(0,zr.switchToBlockType)(a,i);if(e(l,u),d)c=u[0].clientId;else{const{innerBlocks:e}=u[0];c=e[r(e)].clientId}t(c)},help:d?(0,H.__)("A Confirmation field is active.","lifterlms"):(0,H.__)("No confirmation field.","lifterlms")}),this.hasInspectorControlSupport("customFill")&&(0,$.createElement)(q.Slot,{name:`llmsInspectorControlsFill.${this.hasInspectorControlSupport("customFill")}.${n}`})),!a&&this.hasInspectorControlSupport("storage")&&(0,$.createElement)(q.PanelBody,{title:(0,H.__)("Data Storage","lifterlms")},(0,$.createElement)(this.ValidatedTextControl,{parent:this,attrKey:"data_store_key",label:(0,H.__)("Usermeta Key","lifterlms"),help:(0,H.__)("Database field key name. Only accepts alphanumeric characters, hyphens, and underscores.","lifterlms")}))),(0,$.createElement)(j.InspectorAdvancedControls,null,!a&&this.hasInspectorControlSupport("name")&&(0,$.createElement)(this.ValidatedTextControl,{parent:this,attrKey:"name",label:(0,H.__)("Field Name","lifterlms"),help:(0,H.__)("The field's HTML name attribute.","lifterlms")}),!a&&this.hasInspectorControlSupport("id")&&(0,$.createElement)(this.ValidatedTextControl,{parent:this,attrKey:"id",label:(0,H.__)("Field ID","lifterlms"),help:(0,H.__)("The field's HTML id attribute.","lifterlms")})))}}function xi(e){const t=function(e){const{getBlock:t,getBlockParentsByBlockName:n}=(0,jr.select)("core/block-editor");return t(n(e,function(){const{getBlockTypes:e,hasBlockSupport:t}=(0,jr.select)("core/blocks");return e().filter((e=>t(e,"llms_field_group")))}().map((e=>{let{name:t}=e;return t}))))}(e);return t&&t.innerBlocks.length?(0,Fr.find)(t.innerBlocks,(t=>t.clientId!==e)):null}function Ci(){let{setAttributes:e,currentUpdates:t,siblingClientId:n,siblingUpdates:r}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{updateBlockAttributes:o}=(0,jr.dispatch)("core/block-editor");setTimeout((()=>{(0,Fr.isEmpty)(t)||e(t),n&&!(0,Fr.isEmpty)(r)&&o(n,r)}))}function ki(e,t){const n={};return e.required!==t.required&&(n.required=e.required),e.field!==t.field&&(n.field=e.field),{currentUpdates:{},siblingUpdates:n}}function Si(e){const{attributes:t,block:n,setAttributes:r}=e,{fieldLayout:o}=t,{innerBlocks:s}=n;return(0,$.createElement)(q.RadioControl,{label:(0,H.__)("Field Layout","lifterlms"),selected:o,onChange:e=>function(e){let{fieldLayout:t,setAttributes:n,innerBlocks:r}=e;const{updateBlockAttributes:o}=(0,jr.dispatch)(j.store);n({fieldLayout:t});const s="columns"===t?6:12;r.forEach(((e,n)=>{let{clientId:r}=e,l=1===n;0===n&&"stacked"===t&&(l=!0),o(r,{columns:s,last_column:l})}))}({fieldLayout:e,setAttributes:r,innerBlocks:s}),options:[{value:"columns",label:(0,H.__)("Columns","lifterlms")},{value:"stacked",label:(0,H.__)("Stacked","lifterlms")}]})}const Oi=e=>{const{getCurrentPostId:t}=(0,jr.select)("core/editor");return(0,Fr.snakeCase)((0,Fr.uniqueId)(`${e}_${t()}_`))},Ii=e=>(0,Fr.kebabCase)(e),Ti={apiVersion:2,icon:{foreground:"#466dd8"},category:"llms-user-info-fields",keywords:[(0,H.__)("LifterLMS","lifterlms"),"llms"],attributes:{},supports:{llms_visibility:!0},example:{},fillInspectorControls(e,t,n){},fillEditAfter(e,t,n){}},Di={attributes:{description:{type:"string",__default:""},field:{type:"string",__default:"text"},required:{type:"boolean",__default:!1},label:{type:"string",__default:""},label_show_empty:{type:"string",__default:!1},match:{type:"string",__default:""},options:{type:"array",__default:[]},options_preset:{type:"string",__default:""},placeholder:{type:"string",__default:""},columns:{type:"integer",__default:12},last_column:{type:"boolean",__default:!0},name:{type:"string",__default:""},id:{type:"string",__default:""},data_store:{type:"string",__default:"usermeta"},data_store_key:{type:"string",__default:""},html_attrs:{type:"object",__default:{}},isConfirmationField:{type:"boolean",__default:!1},isConfirmationControlField:{type:"boolean",__default:!1}},supports:{llms_field_inspector:{id:!0,name:!0,options:!1,placeholder:!1,required:!0,customFill:!1,storage:!0},llms_edit_fill:{after:!1},llms_field_group:!1},edit:function(e){let{attributes:t}=e,n=!0;const{name:r}=e,o=(0,zr.getBlockType)(r),{clientId:s,context:l,setAttributes:i}=e,a=o.supports.llms_field_inspector,c=o.supports.llms_edit_fill,{fillEditAfter:u,fillInspectorControls:d}=o,{getSelectedBlockClientId:p}=(0,jr.select)(j.store),{isDuplicate:f}=(0,jr.select)(wo),m=!!l["llms/fieldGroup/fieldLayout"],h=t.name&&f(t.name,s),g=!m&&t.isConfirmationField;g&&(n=!1),t=n?((e,t,n)=>{if(Object.keys(t).forEach((n=>{const r=t[n].__default;void 0!==r&&void 0===e[n]&&(e[n]=r)})),!e.name||n&&!e.isConfirmationField){let t=Oi(e.field);for(;!cs("name",t);)t=Oi(e.field);e.name=t}if(!e.id||n&&!e.isConfirmationField){let t=Ii(e.name);for(;!cs("id",t,"local");)t=Ii((0,Fr.uniqueId)(`${e.field}-field-`));e.id=t}return(""===e.data_store_key||n&&!e.isConfirmationField)&&(e.data_store_key=e.name),e})(t,o.attributes,h):t,m&&n&&function(){let{attributes:e,clientId:t,setAttributes:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const r=xi(t);let o={},s={};if(!r)return;const l=r.clientId;if(e.isConfirmationControlField||e.isConfirmationField){const t=ki(e,r.attributes);o=(0,Fr.merge)(o,t.currentUpdates),s=(0,Fr.merge)(s,t.siblingUpdates)}Ci({setAttributes:n,currentUpdates:o,siblingClientId:l,siblingUpdates:s})}(e);const v=(0,j.useBlockProps)({className:`llms-fields llms-cols-${t.columns}`});return(0,$.useEffect)((()=>{if(o.variations&&o.variations.length&&s===p()){const e=setInterval((()=>{const n=document.querySelector(".block-editor-block-inspector .block-editor-block-variation-transforms");return n&&(n.style.display=t.isConfirmationField?"none":"inline-block",clearInterval(e)),()=>{clearInterval(e)}}),10)}})),g?(setTimeout((()=>{(0,jr.dispatch)(j.store).removeBlock(s)}),10),null):(0,$.createElement)("div",v,(0,$.createElement)(Ei,{attributes:t,clientId:s,name:r,setAttributes:i,inspectorSupports:a,context:l}),(0,$.createElement)(ds,{attributes:t,setAttributes:i,block:o,clientId:s,context:l}),a.customFill&&(0,$.createElement)(q.Fill,{name:`llmsInspectorControlsFill.${a.customFill}.${s}`},d(t,i,e)),c.after&&(0,$.createElement)(q.Fill,{name:`llmsEditFill.after.${c.after}.${s}`},u(t,i,e)))},save:function(e){const{attributes:t}=e;return t}},Pi={attributes:{fieldLayout:{type:"string",default:"columns"}},supports:{llms_field_group:!0,llms_field_inspector:!1},providesContext:{"llms/fieldGroup/fieldLayout":"fieldLayout"},llmsInnerBlocks:{template:[],allowed:[],lock:"insert"},edit:function(e){const{attributes:t,clientId:n,name:r,setAttributes:o}=e,{fieldLayout:s}=t,{getBlock:l}=(0,jr.select)(j.store),i=l(n),a=(0,zr.getBlockType)(r),{allowed:c,template:u,lock:d}=a.llmsInnerBlocks,p=i&&i.innerBlocks.length&&"llms/form-field-confirm-group"===i.name?i.innerBlocks[a.findControllerBlockIndex(i.innerBlocks)]:null,f=p?(0,zr.getBlockType)(p.name):null,m=f?f.supports.llms_edit_fill:{after:!1},h=a.supports.llms_field_inspector,g=a.providesContext&&a.providesContext["llms/fieldGroup/fieldLayout"];let v="columns"===s?"horizontal":"vertical";return g||(v="vertical"),(0,$.createElement)("div",(0,j.useBlockProps)(),(0,$.createElement)(j.InspectorControls,null,(0,$.createElement)(q.PanelBody,null,g&&(0,$.createElement)(Si,X({},e,{block:i})),h.customFill&&a.fillInspectorControls(t,o,e))),(0,$.createElement)("div",{className:"llms-field-group","data-field-layout":g?s:"stacked"},(0,$.createElement)(j.InnerBlocks,{allowedBlocks:c,template:"function"==typeof u?u({attributes:t,clientId:n,block:i,blockType:a}):u,templateLock:d,orientation:v})),m.after&&(0,$.createElement)(q.Slot,{name:`llmsEditFill.after.${m.after}.${p.clientId}`}))},save:function(){return(0,$.createElement)(j.InnerBlocks.Content,null)}},Ri=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"field";const t="field"===e?Di:Pi;return(0,Fr.merge)({},(0,Fr.cloneDeep)(Ti),t)};function Mi(){return(0,Fr.cloneDeep)(["llms_form","wp_block"])}function Li(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];e=(0,Fr.cloneDeep)(e);for(let t=0;t0&&void 0!==arguments[0]?arguments[0]:2,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;const n=[];for(let r=1;r<=e;r++)n.push({default:t&&t>0?"yes":"no",
+// Translators: %d = Option index in the list of options.
+text:(0,H.sprintf)((0,H.__)("Option %d","lifterlms"),r),
+// Translators: %d = Option index in the list of options.
+key:(0,H.sprintf)((0,H.__)("option_%d","lifterlms"),r)}),t--;return n}const Ni="llms/form-field-confirm-group",Fi=Mi(),Vi=!0;function Bi(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{id:t}=e;let{match:n}=e;return t&&!n&&(n=`${t}_confirm`),{...e,match:n,columns:6,last_column:!1,isConfirmationControlField:!0,llms_visibility:"off"}}function $i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{id:t,name:n,match:r}=e;return t&&!r&&(r=t,t=`${t}_confirm`,n=`${n}_confirm`),{...e,id:t,name:n,match:r,label:e.label?// Translators: %s label of the controller field.
+(0,H.sprintf)((0,H.__)("Confirm %s","lifterlms"),e.label):"",columns:6,last_column:!0,data_store:!1,data_store_key:!1,isConfirmationField:!0,llms_visibility:"off"}}function Hi(e){const{unloadField:t}=(0,jr.dispatch)(wo);t(e)}const Ui=["llms/form-field-text","llms/form-field-user-email","llms/form-field-user-login","llms/form-field-user-password"],ji={from:[],to:[]};Ui.forEach((e=>{ji.from.push({type:"block",blocks:[e],transform:t=>{Hi(t.name);const{llms_visibility:n}=t,r=Bi(t),o=$i(t),s=[(0,zr.createBlock)(e,r),(0,zr.createBlock)("llms/form-field-text",o)];return(0,zr.createBlock)(Ni,{llms_visibility:n},(0,H.isRTL)()?s.reverse():s)}}),ji.to.push({type:"block",blocks:[e],isMatch:()=>{const{getSelectedBlock:t}=(0,jr.select)(j.store),{innerBlocks:n}=t(),r=n[qi(n)],{name:o}=r||{};return o===e},transform:(e,t)=>{const{llms_visibility:n}=e,r=t[qi(t)],{name:o,attributes:s}=r;return Hi(s.name),(0,zr.createBlock)(o,{...s,columns:12,last_column:!0,isConfirmationControlField:!1,match:"",llms_visibility:n})}})}));const qi=e=>e.findIndex((e=>{let{attributes:t}=e;return t.isConfirmationControlField})),zi=Li(Ri("group"),{title:(0,H.__)("Input Confirmation Group","lifterlms"),description:(0,H.__)("Adds a required confirmation field to an input field.","lifterlms"),icon:{src:"controls-repeat"},category:"llms-custom-fields",transforms:ji,fillInspectorControls:(e,t,n)=>{const{clientId:r}=n;return(0,$.createElement)(q.Button,{isDestructive:!0,onClick:()=>function(e){const{getBlock:t}=(0,jr.select)(j.store),{replaceBlock:n}=(0,jr.dispatch)(j.store),r=t(e),{innerBlocks:o}=r,{llms_visibility:s}=r.attributes,{name:l,attributes:i}=o[qi(o)];Hi(i.name),n(e,(0,zr.createBlock)(l,{...i,columns:12,last_column:!0,isConfirmationControlField:!1,match:"",llms_visibility:s}))}(r)},(0,H.__)("Remove confirmation field","lifterlms"))},findControllerBlockIndex:qi,supports:{llms_field_inspector:{customFill:"confirmGroupAdditionalControls"},inserter:!1},llmsInnerBlocks:{allowed:Ui,template:e=>{let{block:t}=e,n=null;return t&&t.innerBlocks.length||(n=[["llms/form-field-text",Bi()],["llms/form-field-text",$i()]]),n}}}),Wi=(0,$.createElement)("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"20px",height:"20px",viewBox:"0 0 416 448"},(0,$.createElement)("path",{d:"M352 232.5v79.5q0 29.75-21.125 50.875t-50.875 21.125h-208q-29.75 0-50.875-21.125t-21.125-50.875v-208q0-29.75 21.125-50.875t50.875-21.125h208q15.75 0 29.25 6.25 3.75 1.75 4.5 5.75 0.75 4.25-2.25 7.25l-12.25 12.25q-2.5 2.5-5.75 2.5-0.75 0-2.25-0.5-5.75-1.5-11.25-1.5h-208q-16.5 0-28.25 11.75t-11.75 28.25v208q0 16.5 11.75 28.25t28.25 11.75h208q16.5 0 28.25-11.75t11.75-28.25v-63.5q0-3.25 2.25-5.5l16-16q2.5-2.5 5.75-2.5 1.5 0 3 0.75 5 2 5 7.25zM409.75 110.25l-203.5 203.5q-6 6-14.25 6t-14.25-6l-107.5-107.5q-6-6-6-14.25t6-14.25l27.5-27.5q6-6 14.25-6t14.25 6l65.75 65.75 161.75-161.75q6-6 14.25-6t14.25 6l27.5 27.5q6 6 6 14.25t-6 14.25z"})),Gi="llms/form-field-checkboxes",Ki=Mi(),Yi=!1,Xi=Li(Ri(),{title:(0,H.__)("Checkboxes","lifterlms"),description:(0,H.__)("A single checkbox toggle or a group of multiple checkboxes.","lifterlms"),icon:{src:Wi},category:"llms-custom-fields",supports:{llms_field_inspector:{options:!0}},attributes:{field:{__default:"checkbox"},options:{__default:Ai(2,0)}},transforms:{from:[{type:"block",blocks:["llms/form-field-radio","llms/form-field-select"],transform:e=>(0,zr.createBlock)(Gi,{...e,field:Xi.attributes.field.__default})}]}}),Qi=(0,$.createElement)("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"20px",height:"20px",viewBox:"0 0 768 768"},(0,$.createElement)("path",{d:"M384 640.5c141 0 256.5-115.5 256.5-256.5s-115.5-256.5-256.5-256.5-256.5 115.5-256.5 256.5 115.5 256.5 256.5 256.5zM384 64.5c177 0 319.5 142.5 319.5 319.5s-142.5 319.5-319.5 319.5-319.5-142.5-319.5-319.5 142.5-319.5 319.5-319.5zM384 223.5c88.5 0 160.5 72 160.5 160.5s-72 160.5-160.5 160.5-160.5-72-160.5-160.5 72-160.5 160.5-160.5z"})),Zi="llms/form-field-radio",Ji=Mi(),ea=!1,ta=Li(Xi,{title:(0,H.__)("Radio","lifterlms"),description:(0,H.__)("A group of radio inputs which can be populated with any number of options.","lifterlms"),icon:{src:Qi},attributes:{field:{__default:"radio"},options:{__default:Ai(2,1)}},transforms:{from:[{type:"block",blocks:["llms/form-field-checkboxes","llms/form-field-select"],transform:e=>(0,zr.createBlock)(Zi,{...e,field:ta.attributes.field.__default})}]}}),na=(0,$.createElement)("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"20px",height:"20px",viewBox:"0 0 384 448"},(0,$.createElement)("path",{d:"M286.25 168.75q4.5 8.75-1.25 16.5l-80 112q-4.75 6.75-13 6.75t-13-6.75l-80-112q-5.75-7.75-1.25-16.5 4.25-8.75 14.25-8.75h160q10 0 14.25 8.75zM320 344v-240q0-3.25-2.375-5.625t-5.625-2.375h-240q-3.25 0-5.625 2.375t-2.375 5.625v240q0 3.25 2.375 5.625t5.625 2.375h240q3.25 0 5.625-2.375t2.375-5.625zM384 104v240q0 29.75-21.125 50.875t-50.875 21.125h-240q-29.75 0-50.875-21.125t-21.125-50.875v-240q0-29.75 21.125-50.875t50.875-21.125h240q29.75 0 50.875 21.125t21.125 50.875z"})),ra="llms/form-field-select",oa=Mi(),sa=!1,la=Li(ta,{title:(0,H.__)("Dropdown","lifterlms"),description:(0,H.__)("A select field which can be populated with any number of options.","lifterlms"),icon:{src:na},attributes:{field:{__default:"select"}},supports:{llms_field_inspector:{placeholder:!0}},transforms:{from:[{type:"block",blocks:["llms/form-field-checkboxes","llms/form-field-radio"],transform:e=>(0,zr.createBlock)(ra,{...e,field:la.attributes.field.__default})}]}}),ia=(0,$.createElement)("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"20px",height:"20px",viewBox:"0 0 512 512"},(0,$.createElement)("path",{d:"M448 0h-384c-8.832 0-16 7.168-16 16v96c0 8.832 7.168 16 16 16h16c8.832 0 16-7.168 16-16l32-48h96v384l-80 32c-8.832 0-16 7.152-16 16s7.168 16 16 16h224c8.848 0 16-7.152 16-16s-7.152-16-16-16l-80-32v-384h96l32 48c0 8.832 7.152 16 16 16h16c8.848 0 16-7.168 16-16v-96c0-8.832-7.152-16-16-16z"})),aa=(0,$.createElement)("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"20px",height:"20px",viewBox:"0 0 540 540"},(0,$.createElement)("path",{d:"M247.75 256l16-64h-63.5l-16 64h63.5zM439.75 130l-14 56q-1.75 6-7.75 6h-81.75l-16 64h77.75q3.75 0 6.25 3 2.5 3.5 1.5 7l-14 56q-1.25 6-7.75 6h-81.75l-20.25 82q-1.75 6-7.75 6h-56q-4 0-6.5-3-2.25-3-1.5-7l19.5-78h-63.5l-20.25 82q-1.75 6-7.75 6h-56.25q-3.75 0-6.25-3-2.25-3-1.5-7l19.5-78h-77.75q-3.75 0-6.25-3-2.25-3-1.5-7l14-56q1.75-6 7.75-6h81.75l16-64h-77.75q-3.75 0-6.25-3-2.5-3.5-1.5-7l14-56q1.25-6 7.75-6h81.75l20.25-82q1.75-6 8-6h56q3.75 0 6.25 3 2.25 3 1.5 7l-19.5 78h63.5l20.25-82q1.75-6 8-6h56q3.75 0 6.25 3 2.25 3 1.5 7l-19.5 78h77.75q3.75 0 6.25 3 2.25 3 1.5 7z"})),ca=Ri(),ua="llms/form-field-text",da=Mi(),pa=!0,fa=[{name:"text",title:(0,H.__)("Text","lifterlms"),description:(0,H.__)("An input field which accepts any form of text.","lifterlms"),isDefault:!0,icon:ia},{name:"email",title:(0,H.__)("Email","lifterlms"),description:(0,H.__)("A text input field which only accepts an email address.","lifterlms"),icon:"email-alt"},{name:"password",title:(0,H.__)("Password","lifterlms"),description:(0,H.__)("User password confirmation field.","lifterlms"),icon:"lock",scope:[]},{name:"number",title:(0,H.__)("Number","lifterlms"),description:(0,H.__)("An input field which only accepts numeric input.","lifterlms"),icon:aa,attributes:{html_attrs:{min:"",max:""}}},{name:"tel",title:(0,H.__)("Phone Number","lifterlms"),description:(0,H.__)("An input field which only accepts phone numbers.","lifterlms"),icon:"phone"},{name:"url",title:(0,H.__)("Website Address / URL","lifterlms"),description:(0,H.__)("An input field which only accepts a website address or URL.","lifterlms"),icon:"admin-links"}];fa.forEach((e=>{e.scope=e.scope||["block","inserter","transform"],window.llmsBlocks.variationIconCanBeObject&&(e.icon={...ca.icon,src:e.icon}),e.attributes||(e.attributes={}),e.attributes.field=e.name,e.isActive=(e,t)=>e.field===t.field}));const ma=Li(ca,{title:(0,H.__)("Text","lifterlms"),description:(0,H.__)("A simple text input field.","lifterlms"),icon:{src:ia},usesContext:["llms/fieldGroup/fieldLayout"],supports:{inserter:!1,llms_field_inspector:{customFill:"fieldTextAdditionalControls"}},variations:fa,fillInspectorControls:(e,t)=>{if(e.isConfirmationField||"number"!==e.field)return;const{html_attrs:n}=e,{min:r,max:o}=n;return(0,$.createElement)($.Fragment,null,(0,$.createElement)(q.TextControl,{label:(0,H.__)("Minimum Value","lifterlms"),help:(0,H.__)("Specify the minimum allowed value. Leave blank for no minimum.","lifterlms"),value:r,type:"number",onChange:e=>t({html_attrs:{...n,min:e}})}),(0,$.createElement)(q.TextControl,{label:(0,H.__)("Maximum Value","lifterlms"),help:(0,H.__)("Specify the maximum allowed value. Leave blank for no maximum.","lifterlms"),value:o,type:"number",onChange:e=>t({html_attrs:{...n,max:e}})}))}}),ha="llms/form-field-textarea",ga=!1,va=Li(ma,{title:(0,H.__)("Textarea","lifterlms"),description:(0,H.__)("A text field accepting multiple lines of user information.","lifterlms"),icon:{src:"editor-paragraph"},category:"llms-custom-fields",supports:{inserter:!0,llms_field_inspector:{customFill:"fieldTextarea"}},attributes:{field:{__default:"textarea"},html_attrs:{__default:{rows:4}}},fillInspectorControls:(e,t)=>{const{html_attrs:n}=e,{rows:r}=n;return(0,$.createElement)(q.TextControl,{label:(0,H.__)("Rows","lifterlms"),help:(0,H.__)("Specify the number of text rows for the textarea input.","lifterlms"),value:r,type:"number",onChange:e=>t({html_attrs:{...n,rows:e}}),min:"2",step:"1"})},transforms:{from:[{type:"block",blocks:["llms/form-field-text"],transform:e=>(0,zr.createBlock)(ha,{...e,html_attrs:{...e.html_attrs,rows:4},field:"textarea"})}],to:[{type:"block",blocks:["llms/form-field-text"],transform:e=>(0,zr.createBlock)("llms/form-field-text",{...e,field:"text"})}]}},["transforms","variations"]),ba="llms/form-field-redeem-voucher",_a=!0,ya=Li(ma,{title:(0,H.__)("Voucher Code Redemption","lifterlms"),description:(0,H.__)("Allows user to redeem a voucher code during account registration.","lifterlms"),icon:{src:"tickets-alt"},supports:{inserter:!0,multiple:!1,llms_field_inspector:{id:!1,name:!1,storage:!1,customFill:"redeemVoucher"}},attributes:{id:{__default:"llms_voucher"},field:{__default:"text"},label:{__default:(0,H.__)("Have a voucher?","lifterlms")},name:{__default:"llms_voucher"},placeholder:{__default:(0,H.__)("Voucher Code","lifterlms")},data_store:{__default:!1},data_store_key:{__default:!1},toggleable:{__default:!1}},fillInspectorControls:(e,t)=>{const{toggleable:n,required:r}=e;return r?null:(0,$.createElement)(q.ToggleControl,{label:(0,H.__)("Toggleable","lifterlms"),checked:!!n,onChange:()=>t({toggleable:!n}),help:n?(0,H.__)("Field is revealed when the toggle is clicked.","lifterlms"):(0,H.__)("Field is always visible.","lifterlms")})}},["transforms","variations"]),wa="llms/form-field-user-display-name",Ea=!0,xa=Li(ma,{title:(0,H.__)("User Display Name","lifterlms"),description:(0,H.__)("Allows a user to choose how their name will be displayed publicly on the site.","lifterlms"),icon:{src:"nametag"},supports:{inserter:!0,multiple:!1,llms_field_inspector:{id:!1,name:!1,required:!1,storage:!1}},attributes:{id:{__default:"display_name"},field:{__default:"text"},label:{__default:(0,H.__)("Display Name","lifterlms")},name:{__default:"display_name"},required:{__default:!0},data_store:{__default:"users"},data_store_key:{__default:"display_name"}}},["transforms","variations"]),Ca="llms/form-field-user-login",ka=!0,Sa=Li(ma,{title:(0,H.__)("User Login","lifterlms"),description:(0,H.__)("Field used to collect a user's account username. If this field is omitted a username will be automatically generated based off their email address. Users can always login using either their email address or username.","lifterlms"),icon:{src:"admin-users"},supports:{inserter:!0,multiple:!1,llms_field_inspector:{id:!1,name:!1,required:!1,storage:!1}},attributes:{id:{__default:"user_login"},field:{__default:"text"},label:{__default:(0,H.__)("Username","lifterlms")},name:{__default:"user_login"},required:{__default:!0},data_store:{__default:"users"},data_store_key:{__default:"user_login"},llms_visibility:{default:"logged_out"}}},["transforms","variations"]),Oa="llms/form-field-user-email",Ia=!0,Ta=Li(ma,{title:(0,H.__)("User Email","lifterlms"),description:(0,H.__)("A special field used to collect a user's account email address.","lifterlms"),icon:{src:"email-alt"},supports:{inserter:!0,multiple:!1,llms_field_inspector:{id:!1,name:!1,required:!1,storage:!1}},attributes:{id:{__default:"email_address"},field:{__default:"email"},label:{__default:(0,H.__)("Email Address","lifterlms")},name:{__default:"email_address"},required:{__default:!0},data_store:{__default:"users"},data_store_key:{__default:"user_email"}}},["transforms","variations"]),Da="llms/form-field-user-first-name",Pa=!0,Ra=Li(ma,{title:(0,H.__)("First Name","lifterlms"),description:(0,H.__)("A special field used to collect a user's first name.","lifterlms"),icon:{src:"admin-users"},supports:{multiple:!1,llms_field_inspector:{id:!1,name:!1,required:!0,storage:!1}},attributes:{id:{__default:"first_name"},field:{__default:"text"},label:{__default:(0,H.__)("First Name","lifterlms")},name:{__default:"first_name"},required:{__default:!0},data_store:{__default:"usermeta"},data_store_key:{__default:"first_name"}},parent:["llms/form-field-user-name"],usesContext:["llms/fieldGroup/fieldLayout"]},["transforms","variations"]),Ma="llms/form-field-user-last-name",La=!0,Aa=Li(Ra,{title:(0,H.__)("Last Name","lifterlms"),description:(0,H.__)("A special field used to collect a user's last name.","lifterlms"),attributes:{id:{__default:"last_name"},label:{__default:(0,H.__)("Last Name","lifterlms")},name:{__default:"last_name"},data_store_key:{__default:"last_name"}}}),Na="llms/form-field-user-name",Fa=Mi(),Va=!0,Ba=Li(Ri("group"),{title:(0,H.__)("User name","lifterlms"),description:(0,H.__)("A special field used to collect a user's first and last name.","lifterlms"),icon:{src:"admin-users"},supports:{inserter:!0,multiple:!1},llmsInnerBlocks:{allowed:["llms/form-field-user-first-name","llms/form-field-user-last-name"],template:[["llms/form-field-user-first-name",{columns:6,last_column:!1}],["llms/form-field-user-last-name",{columns:6,last_column:!0}]]}}),$a="llms/form-field-user-password",Ha=!0;function Ua(e,t){return{html_attrs:{...e,minlength:t}}}const ja=Li(ma,{title:(0,H.__)("User Password","lifterlms"),description:(0,H.__)("A special field used to collect a user's account password.","lifterlms"),icon:{src:"lock"},supports:{inserter:!0,multiple:!1,llms_field_inspector:{id:!1,name:!1,required:!1,storage:!1,customFill:"userPassAdditionalControls"},llms_edit_fill:{after:"userPassStrengthMeter"}},attributes:{id:{__default:"password"},field:{__default:"password"},label:{__default:(0,H.__)("Password","lifterlms")},name:{__default:"password"},required:{__default:!0},data_store:{__default:"users"},data_store_key:{__default:"user_pass"},meter:{type:"boolean",__default:!0},meter_description:{type:"string",__default:(0,H.__)("A strong password is required with at least 8 characters. To make it stronger, use both upper and lower case letters, numbers, and symbols.","lifterlms")},min_strength:{type:"string",__default:"strong"},html_attrs:{__default:{minlength:8}}},fillEditAfter:(e,t)=>{const{meter:n,meter_description:r}=e;return n?(0,$.createElement)($.Fragment,null,(0,$.createElement)("div",{className:"llms-pwd-meter"},(0,$.createElement)("div",null,(0,H.__)("Very Weak","lifterlms"))),(0,$.createElement)(j.RichText,{style:{marginTop:0},tagName:"p",value:r,onChange:e=>t({meter_description:e}),allowedFormats:["core/bold","core/italic"],"aria-label":r?(0,H.__)("Password strength meter description","lifterlms"):(0,H.__)("Empty Password strength meter description; start writing to add a label"),placeholder:(0,H.__)("Enter a description for the password strength meter","lifterlms")})):null},fillInspectorControls:(e,t)=>{const{isConfirmationControlField:n,isConfirmationField:r,meter:o,min_strength:s,html_attrs:l}=e,{minlength:i}=l;if(r)return;return(0,$.createElement)($.Fragment,null,(0,$.createElement)(q.ToggleControl,{label:(0,H.__)("Password strength meter","lifterlms"),help:o?(0,H.__)("Password strength meter is enabled.","lifterlms"):(0,H.__)("Password strength meter is disabled.","lifterlms"),checked:o,onChange:()=>t({meter:!o})}),o&&(0,$.createElement)(q.SelectControl,{label:(0,H.__)("Minimum Password Strength","lifterlms"),value:s,onChange:e=>t({min_strength:e}),options:[{value:"strong",label:(0,H.__)("Strong","lifterlms")},{value:"medium",label:(0,H.__)("Medium","lifterlms")},{value:"weak",label:(0,H.__)("Weak","lifterlms")}]}),(0,$.createElement)(q.TextControl,{label:(0,H.__)("Minimum Password Length","lifterlms"),value:i,type:"number",min:"6",onChange:e=>(e=>{t(Ua(l,e)),n&&function(e){const{getSelectedBlockClientId:t}=(0,jr.select)(j.store),{updateBlockAttributes:n}=(0,jr.dispatch)(j.store),r=xi(t()),{attributes:o,clientId:s}=r,{html_attrs:l}=o;n(s,Ua(l,e))}(e)})(1*e)}))}},["transforms","variations"]),qa="llms/form-field-user-address",za=Mi(),Wa=!0,Ga=Li(Ri("group"),{title:(0,H.__)("User Address","lifterlms"),description:(0,H.__)("A group of fields used to collect a user's full address.","lifterlms"),icon:{src:"id-alt"},supports:{inserter:!0,multiple:!1},llmsInnerBlocks:{allowed:["llms/form-field-user-address-street","llms/form-field-user-address-city","llms/form-field-user-address-country","llms/form-field-user-address-region"],template:[["llms/form-field-user-address-street"],["llms/form-field-user-address-city"],["llms/form-field-user-address-country"],["llms/form-field-user-address-region"]]}},["providesContext"]),Ka="llms/form-field-user-address-street",Ya=Mi(),Xa=!0,Qa=Li(Ri("group"),{title:(0,H.__)("User Street Address","lifterlms"),description:(0,H.__)("Collect a user's street address.","lifterlms"),icon:{src:"id-alt"},supports:{multiple:!1},llmsInnerBlocks:{allowed:["llms/form-field-user-address-street-primary","llms/form-field-user-address-street-secondary"],template:[["llms/form-field-user-address-street-primary",{columns:8,last_column:!1}],["llms/form-field-user-address-street-secondary",{columns:4,last_column:!0}]]},parent:["llms/form-field-user-name"]}),Za="llms/form-field-user-address-street-primary",Ja=!0,ec=Li(ma,{title:(0,H.__)("User Street Address","lifterlms"),description:(0,H.__)("A special field used to collect a user's street address.","lifterlms"),icon:{src:"admin-home"},supports:{multiple:!1,llms_field_inspector:{id:!1,name:!1,required:!0,storage:!1}},attributes:{id:{__default:"llms_billing_address_1"},label:{__default:(0,H.__)("Address","lifterlms")},name:{__default:"llms_billing_address_1"},required:{__default:!0},data_store:{__default:"usermeta"},data_store_key:{__default:"llms_billing_address_1"}},parent:["llms/form-field-user-address-street"],usesContext:["llms/fieldGroup/fieldLayout"]},["transforms","variations"]),tc="llms/form-field-user-address-street-secondary",nc=!0,rc=Li(ec,{title:(0,H.__)("User Street Address Additional Information","lifterlms"),description:(0,H.__)("A special field used to collect a user's street address.","lifterlms"),attributes:{id:{__default:"llms_billing_address_2"},label:{__default:""},placeholder:{__default:(0,H.__)("Apartment, suite, etc…","lifterlms")},name:{__default:"llms_billing_address_2"},required:{__default:!1},data_store_key:{__default:"llms_billing_address_2"},label_show_empty:{__default:!0}},usesContext:["llms/fieldGroup/fieldLayout"]},["transforms","variations"]),oc="llms/form-field-user-address-city",sc=!0,lc=Li(ma,{title:(0,H.__)("User City","lifterlms"),description:(0,H.__)("A special field used to collect a user's billing city.","lifterlms"),icon:{src:"location-alt"},supports:{multiple:!1,llms_field_inspector:{id:!1,name:!1,required:!0,match:!1,storage:!1}},attributes:{id:{__default:"llms_billing_city"},label:{__default:(0,H.__)("City","lifterlms")},name:{__default:"llms_billing_city"},required:{__default:!0},data_store:{__default:"usermeta"},data_store_key:{__default:"llms_billing_city"}},parent:["llms/form-field-user-address"]},["transforms","variations"]),ic="llms/form-field-user-address-country",ac=!0,cc=Li(la,{title:(0,H.__)("User Country","lifterlms"),description:(0,H.__)("A special field used to collect a user's billing country.","lifterlms"),icon:{src:"admin-site"},supports:{multiple:!1,llms_field_inspector:{id:!1,name:!1,required:!0,match:!1,storage:!1,options:!1}},attributes:{id:{__default:"llms_billing_country"},label:{__default:(0,H.__)("Country","lifterlms")},name:{__default:"llms_billing_country"},required:{__default:!0},data_store:{__default:"usermeta"},data_store_key:{__default:"llms_billing_country"},options_preset:{__default:"countries"},placeholder:{__default:(0,H.__)("Select a Country","lifterlms")}},parent:["llms/form-field-user-address"]},["transforms"]),uc="llms/form-field-user-address-region",dc=Mi(),pc=!0,fc=Li(Ri("group"),{title:(0,H.__)("User Street Address","lifterlms"),description:(0,H.__)("Collect a user's street address.","lifterlms"),icon:{src:"id-alt"},supports:{multiple:!1},parent:["llms/form-field-user-name"],llmsInnerBlocks:{allowed:["llms/form-field-user-address-state","llms/form-field-user-address-postal-code"],template:[["llms/form-field-user-address-state",{columns:6,last_column:!1}],["llms/form-field-user-address-postal-code",{columns:6,last_column:!0}]]}}),mc="llms/form-field-user-address-state",hc=!0,gc=Li(la,{title:(0,H.__)("User Country","lifterlms"),description:(0,H.__)("A special field used to collect a user's billing country.","lifterlms"),icon:{src:"location"},supports:{multiple:!1,llms_field_inspector:{id:!1,name:!1,required:!0,storage:!1,options:!1}},attributes:{id:{__default:"llms_billing_state"},label:{__default:(0,H.__)("State / Region","lifterlms")},name:{__default:"llms_billing_state"},required:{__default:!0},data_store:{__default:"usermeta"},data_store_key:{__default:"llms_billing_state"},options_preset:{__default:"states"},placeholder:{__default:(0,H.__)("Select a State / Region","lifterlms")}},parent:["llms/form-field-user-address-region"],usesContext:["llms/fieldGroup/fieldLayout"]},["transforms"]),vc="llms/form-field-user-address-postal-code",bc=!0,_c=Li(ma,{title:(0,H.__)("User Postal Code","lifterlms"),description:(0,H.__)("A special field used to collect a user's postal or zip code.","lifterlms"),icon:{src:"post-status"},supports:{multiple:!1,llms_field_inspector:{id:!1,name:!1,required:!0,match:!1,storage:!1}},attributes:{id:{__default:"llms_billing_zip"},label:{__default:(0,H.__)("Postal / Zip Code","lifterlms")},name:{__default:"llms_billing_zip"},required:{__default:!0},data_store:{__default:"usermeta"},data_store_key:{__default:"llms_billing_zip"}},parent:["llms/form-field-user-address-region"],usesContext:["llms/fieldGroup/fieldLayout"]},["transforms","variations"]),yc="llms/form-field-user-phone",wc=!0,Ec=Li(ma,{title:(0,H.__)("User Phone","lifterlms"),description:(0,H.__)("A field used to collect a user's phone number.","lifterlms"),icon:{src:"phone"},supports:{inserter:!0,multiple:!1,llms_field_inspector:{id:!1,name:!1,storage:!1}},attributes:{id:{__default:"llms_phone"},field:{__default:"tel"},label:{__default:(0,H.__)("Phone Number","lifterlms")},name:{__default:"llms_phone"},data_store:{__default:"usermeta"},data_store_key:{__default:"llms_phone"}}},["transforms","variations"]),xc=()=>{const e=(0,V.applyFilters)("llms.formBlocksSafelist",["core/block","core/paragraph","core/heading","core/image","core/html","core/column","core/columns","core/group","core/separator","core/spacer"]),{getCurrentPost:t}=(0,jr.select)(qr.store),{meta:n={}}=t(),{_llms_form_location:r}=n;(0,zr.getBlockTypes)().forEach((t=>{let{name:n}=t;(t=>-1===e.indexOf(t)&&(0===t.indexOf("llms/form-field-redeem-voucher")?"registration"!==r:0===t.indexOf("llms/form-field-user-login")?"account"===r:-1===t.indexOf("llms/form-field")))(n)&&(0,zr.unregisterBlockType)(n)}))};Ur()((()=>{const{getCurrentPost:e}=(0,jr.select)(qr.store);let t=!1;const n=(0,jr.subscribe)((()=>{const r=e();if(!1===t&&0!==Object.keys(r).length){t=!0,n();const{type:e,is_llms_field:o}=r;"llms_form"===e?(Yr(),xc(),ko()):"wp_block"===e&&"yes"===o&&(xc(),ko())}}))}));const Cc=window.wp.plugins,kc=window.wp.editPost,Sc=(0,V.applyFilters)("llms_blocks_post_visibility_options",[{value:"catalog_search",label:(0,H.__)("Visible","lifterlms"),info:(0,H.__)("Visible in the catalog and search results.","lifterlms")},{value:"catalog",label:(0,H.__)("Catalog only","lifterlms"),info:(0,H.__)("Only visible in the catalog.","lifterlms")},{value:"search",label:(0,H.__)("Search only","lifterlms"),info:(0,H.__)("Only visible in search results.","lifterlms")},{value:"hidden",label:(0,H.__)("Hidden","lifterlms"),info:(0,H.__)("Hidden from catalog and search results.","lifterlms")}]),Oc=(0,jr.withSelect)((e=>({visibility:e("core/editor").getEditedPostAttribute("visibility")})))((function(e){let{visibility:t}=e;return Sc.find((e=>{let{value:n}=e;return n===t})).label}));class Ic extends $.Component{render(){const{onUpdateVisibility:e,instanceId:t,visibility:n}=this.props,r={catalog_search:{checked:"catalog_search"===n},catalog:{checked:"catalog"===n},search:{checked:"search"===n},hidden:{checked:"hidden"===n}};return(0,$.createElement)(kc.PluginPostStatusInfo,{className:"llms-post-visibility"},(0,$.createElement)("span",null,(0,H.__)("Catalog & Search Visibility","lifterlms")),(0,$.createElement)("div",null,(0,$.createElement)(q.Dropdown,{className:"llms-post-visibility-dropdown",contentClassName:"llms-post-visibility-content edit-post-post-visibility__dialog",renderToggle:e=>{let{isOpen:t,onToggle:n}=e;return(0,$.createElement)(q.Button,{onClick:n,"aria-expanded":t,isLink:!0},(0,$.createElement)(Oc,null))},renderContent:()=>(0,$.createElement)("fieldset",{key:"visibility-selector",className:"editor-post-visibility__dialog-fieldset"},(0,$.createElement)("legend",{className:"editor-post-visibility__dialog-legend"},(0,H.__)("Catalog Visibility","lifterlms")),Sc.map((n=>{let{value:o,label:s,info:l}=n;return(0,$.createElement)("div",{key:o,className:"editor-post-visibility__choice"},(0,$.createElement)("input",{type:"radio",name:`llms-editor-post-visibility__setting-${t}`,value:o,onChange:()=>e(o),checked:r[o].checked,id:`editor-post-${o}-${t}`,"aria-describedby":`editor-post-${o}-${t}-description`,className:"editor-post-visibility__dialog-radio"}),(0,$.createElement)("label",{htmlFor:`editor-post-${o}-${t}`,className:"editor-post-visibility__dialog-label"},s),(0,$.createElement)("p",{id:`llms-editor-post-${o}-${t}-description`,className:"editor-post-visibility__dialog-info"},l))})))})))}}const Tc=(0,U.compose)([(0,jr.withSelect)((e=>{const{getCurrentPostType:t,getEditedPostAttribute:n}=e("core/editor");return{postType:t(),visibility:n("visibility")}})),(0,jr.withDispatch)((e=>{const{editPost:t}=e("core/editor");return{onUpdateVisibility(e){t({visibility:e})}}})),(0,U.ifCondition)((e=>{let{postType:t}=e;return-1!==["course","llms_membership"].indexOf(t)})),U.withInstanceId])(Ic);(0,Cc.registerPlugin)("llms-post-visibility",{render:Tc});const{Fragment:Dc}=wp.element,Pc={fillRule:"evenodd",clipRule:"evenodd",strokeLinejoin:"round",strokeMiterlimit:1.41421},Rc=()=>(0,$.createElement)(Dc,null,(0,$.createElement)("svg",{width:"20px",height:"20px",viewBox:"0 0 85 85",version:"1.1",style:Pc},(0,$.createElement)("g",{id:"lifterlms-icon"},(0,$.createElement)("path",{d:"M29.061,50.631l-2.258,-1.29l-6.066,10.452c-5.483,-7.613 -6.58,-17.873 -2.322,-26.712l0.064,-0.065c0.258,-0.581 0.581,-1.097 0.839,-1.613c4.323,-7.485 11.873,-12.067 19.873,-12.905c1.42,-1.935 2.969,-3.614 4.711,-5.226c-11.421,-0.645 -22.843,5.032 -28.972,15.615c-7.872,13.679 -4.258,30.841 7.872,40.263l6.065,-18.003c0.065,-0.128 0.13,-0.323 0.194,-0.516m36.908,-16.712c3.227,7.421 3.033,16.195 -1.291,23.681c-0.257,0.516 -0.58,1.031 -0.903,1.548l-0.064,0.066c-5.549,8.129 -14.97,12.323 -24.326,11.355l6.066,-10.453l-2.259,-1.291c-0.129,0.13 -0.258,0.259 -0.387,0.389l-12.518,14.259c14.196,5.808 30.907,0.323 38.779,-13.357c6.13,-10.581 5.356,-23.293 -0.967,-32.842c-0.517,2.257 -1.162,4.516 -2.13,6.645"}),(0,$.createElement)("path",{d:"M44.999,50.243c-1.614,2.13 -4.194,3.228 -6.968,3.485c-0.839,0.065 -1.614,-0.387 -2.001,-1.161c-1.162,-2.517 -1.548,-5.291 -0.451,-7.743l-12.648,-7.291c-0.838,-0.516 -1.225,-1.356 -0.967,-2.258c0.193,-0.904 0.967,-1.55 1.871,-1.55l12.84,-0.451c0.968,-3.936 2.581,-7.678 4.904,-11.163c3.678,-5.484 8.904,-9.549 15.034,-12.001c1.485,-0.581 2.968,-1.096 4.453,-1.484c1.096,-0.258 2.193,0.388 2.451,1.421c0.452,1.482 0.775,3.031 1.033,4.579c0.903,6.582 -0.065,13.163 -2.903,19.099c-1.807,3.743 -4.324,6.97 -7.228,9.808l6.001,11.292c0.452,0.839 0.323,1.807 -0.387,2.452c-0.645,0.645 -1.614,0.71 -2.387,0.258l-12.647,-7.292Zm9.549,-27.035c1.936,1.162 2.581,3.614 1.485,5.549c-1.098,1.936 -3.613,2.582 -5.55,1.485c-1.935,-1.098 -2.58,-3.614 -1.484,-5.55c1.162,-1.935 3.614,-2.581 5.549,-1.484"}),(0,$.createElement)("path",{d:"M26.093,72.118l13.679,-15.551c-0.516,0.065 -1.032,0.129 -1.549,0.194c-2.064,0.129 -4,-0.968 -4.902,-2.903c-0.259,-0.452 -0.453,-0.904 -0.646,-1.42l-6.582,19.68Z"})))),Mc=window.wp.richText;function Lc(e){let{text:t,onSuccess:n}=e;const r=void 0!==U.useCopyToClipboard;return(0,$.createElement)(q.Tooltip,{text:(0,H.__)("Click to copy.","lifterlms")},r&&(0,$.createElement)((()=>{const e=(0,U.useCopyToClipboard)(t,n);return(0,$.createElement)(q.Button,{isLink:!0,ref:e},t)}),null),!r&&(0,$.createElement)((()=>(0,$.createElement)(q.ClipboardButton,{isLink:!0,text:t,onCopy:n},t)),null))}function Ac(e){let{closeModal:t,isActive:n,onChange:r,searchQuery:o,value:s,defaultValue:l}=e,{userInfoFields:i}=window.llms;o&&(i=i.filter((e=>function(e,t){let{label:n,name:r,id:o,data_store_key:s}=t;const l=[n,r,o,s],i=e.toLowerCase();return l.some((e=>e.toLowerCase().includes(i)))}(o,e))));const a=!i.length;a&&i.push({data_store_key:o,label:(0,H.__)("Custom User Information","lifterlms"),id:"custom",name:o});const c=(0,V.applyFilters)("llms/userInfoShortcodes/exclude",["password"]);return i=i.filter((e=>{let{id:t}=e;return!c.includes(t)})),(0,$.createElement)($.Fragment,null,a&&(0,$.createElement)("p",{className:"llms-error"},(0,H.__)("No fields found matching your search but you can use the shortcode below if the meta information exists in the database.","lifterlms")),(0,$.createElement)("table",{className:"llms-table zebra"},(0,$.createElement)("thead",null,(0,$.createElement)("tr",null,(0,$.createElement)("th",null,(0,H.__)("Name","lifterlms")),(0,$.createElement)("th",null,(0,H.__)("Shortcode","lifterlms")),(0,$.createElement)("th",null,(0,H.__)("Insert","lifterlms")))),(0,$.createElement)("tbody",null,i.map((e=>function(e,t,n,r,o,s){let{label:l,name:i,data_store_key:a}=e;const c=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return`[llms-user ${e}${t?` or="${t}"`:""}]`}(a,s);return(0,$.createElement)("tr",{key:i},(0,$.createElement)("td",null,l),(0,$.createElement)("td",null,(0,$.createElement)(Lc,{text:c,onSuccess:n})),(0,$.createElement)("td",null,(0,$.createElement)(q.Button,{isSecondary:!0,isSmall:!0,onClick:()=>{const e=(0,Mc.create)({html:`${c} `});n(),r(t?(0,Mc.replace)(o,/\[user .+?\]/,e):(0,Mc.insert)(o,e))}},(0,H.__)("Insert","lifterlms"))))}(e,n,t,r,s,l))))))}(0,Mc.registerFormatType)("llms/user-info-shortcodes",{title:(0,H.__)("LifterLMS User Information Shortcodes","lifterlms"),tagName:"span",className:"llms-user-sc-wrap",edit:function(e){const[t,n]=(0,$.useState)(!1),[r,o]=(0,$.useState)(""),[s,l]=(0,$.useState)(""),i=()=>n(!1),{value:a,onChange:c,isActive:u}=e;return(0,$.createElement)($.Fragment,null,(0,$.createElement)(j.RichTextToolbarButton,{icon:(0,$.createElement)(Rc,null),title:(0,H.__)("Shortcodes","lifterlms"),onClick:()=>n(!0)}),t&&(0,$.createElement)(q.Modal,{className:"llms-shortcodes-modal",title:(0,H.__)("LifterLMS User Information Shortcodes","lifterlms"),onRequestClose:i},(0,$.createElement)("div",{className:"llms-shortcodes-modal--main"},(0,$.createElement)("aside",null,(0,$.createElement)(q.TextControl,{type:"search",label:(0,H.__)("Filter by label, key, or ID…","lifterlms"),onChange:e=>o(e)}),(0,$.createElement)(q.TextControl,{label:(0,H.__)("Default value","lifterlms"),onChange:e=>l(e),help:(0,H.__)("Optional text displayed when no information exists or the user is logged out.","lifterlms")})),(0,$.createElement)("section",null,(0,$.createElement)(Ac,{closeModal:i,isActive:u,onChange:c,searchQuery:r,value:a,defaultValue:s})))))}});const Nc=window.wp.url;function Fc(e){const{id:t,item:n,index:r,setNodeRef:o,listeners:s,manageState:l}=e,{visibility:i,name:a,label:c}=n,{updateItem:u,deleteItem:d}=l,p="visible"===i,f=0===r,[m,h]=(0,$.useState)(!1);return(0,$.createElement)($.Fragment,null,(0,$.createElement)("div",{className:"llms-instructor--header"},(0,$.createElement)("section",null,(0,$.createElement)("strong",null,a),(0,$.createElement)("small",null,"(#",t,")")),(0,$.createElement)("aside",null,f&&(0,$.createElement)(q.Tooltip,{text:(0,H.__)("Primary Instructor","lifterlms")},(0,$.createElement)(q.Dashicon,{icon:"star-filled"})),(0,$.createElement)(vi,{label:(0,H.__)("Reorder instructor","lifterlms"),setNodeRef:o,listeners:s}),(0,$.createElement)(q.Button,{isSmall:!0,showTooltip:!0,label:(0,H.__)("Edit instructor","lifterlms"),icon:m?"arrow-up-alt2":"arrow-down-alt2",onClick:()=>h(!m)}))),m&&(0,$.createElement)("div",{className:"llms-instructor--settings"},(0,$.createElement)(q.ToggleControl,{label:(0,H.__)("Visibility","lifterlms"),help:p?(0,H.__)("Instructor is visible on frontend","lifterlms"):(0,H.__)("Instructor is hidden on frontend","lifterlms"),checked:p,onChange:e=>u(t,{visibility:e?"visible":"hidden"})}),p&&(0,$.createElement)(q.TextControl,{label:(0,H.__)("Label","lifterlms"),value:c,onChange:e=>u(t,{label:e})}),(0,$.createElement)(q.Button,{isSecondary:!0,iconPosition:"right",href:(0,Nc.addQueryArgs)("/wp-admin/user-edit.php",{user_id:t}),target:"_blank",rel:"noreferrer",style:{marginRight:"5px"}},(0,H.__)("Edit","lifterlms"),(0,$.createElement)(q.Dashicon,{icon:"external"})),!f&&(0,$.createElement)(q.Button,{isDestructive:!0,onClick:()=>d(n)},(0,H.__)("Remove","lifterlms"))))}function Vc(e){let{instructors:t,roles:n,addInstructor:r}=e;return(0,$.createElement)(ys,{roles:n,placeholder:(0,H.__)("Search…","lifterlms"),searchArgs:{exclude:t.map((e=>{let{id:t}=e;return t}))},onChange:r})}class Bc extends $.Component{constructor(){super(...arguments),K(this,"onSearchChange",(e=>{this.setState({search:e})})),K(this,"updateInstructor",((e,t)=>{const{instructors:n}=this.state,r=n.map((n=>(e===n.id&&(n={...n,...t}),n)));this.updateInstructors(r)})),K(this,"updateInstructors",(e=>{this.setState({instructors:e}),this.props.updateInstructors(e)})),K(this,"addInstructor",(e=>{let{id:t,name:n}=e;const{instructors:r}=this.state;r.push({...this.getInstructorDefaults(),id:t,name:n}),this.updateInstructors(r)})),K(this,"removeInstructor",(e=>{let{instructors:t}=this.state;t=t.filter((t=>{let{id:n}=t;return e.id!==n})),this.updateInstructors(t)})),K(this,"render",(()=>(0,$.createElement)(q.PanelBody,{title:(0,H.__)("Instructors","lifterlms")},(0,$.createElement)(Vc,{roles:this.getRoles(),instructors:this.state.instructors,addInstructor:this.addInstructor}),(0,$.createElement)(_i,{ListItem:Fc,items:this.state.instructors,itemClassName:"llms-instructor",manageState:{createItem:this.addInstructor,deleteItem:this.removeInstructor,updateItem:this.updateInstructor,updateItems:this.updateInstructors}}))));let{instructors:e}=this.props;e="string"==typeof e?JSON.parse(e):e,this.state={instructors:e||[],search:""}}getRoles(){return(0,V.applyFilters)("llms_instructor_roles",["administrator","lms_manager","instructor","instructors_assistant"])}getInstructorDefaults(){return(0,V.applyFilters)("llms_instructor_defaults",{label:(0,H.__)("Author","lifterlms"),visibility:"visible"})}}const $c=(0,jr.withSelect)((e=>{const{getEditedPostAttribute:t}=e("core/editor");return{instructors:t("instructors")}})),Hc=(0,jr.withDispatch)((e=>{const{editPost:t}=e("core/editor");return{updateInstructors(e){t({instructors:JSON.stringify(e)})}}})),Uc=(0,U.compose)([$c,Hc])(Bc),jc=window.wp.notices,{Fill:qc,Slot:zc}=(0,q.createSlotFill)("LLMSFormDocSettings"),Wc=e=>{let{children:t}=e;return(0,$.createElement)(qc,null,t)};Wc.Slot=zc,window.llms.plugins=window.llms.plugins||{},window.llms.plugins.LLMSFormDocSettings=Wc;const Gc=Wc;class Kc extends $.Component{constructor(){super(...arguments),K(this,"render",(()=>{if(void 0===kc.PluginDocumentSettingPanel)return null;if("llms_form"!==(0,jr.select)(qr.store).getCurrentPostType())return null;const{location:e,link:t,showTitle:n,freeApTitle:r,setFormMetas:o}=this.props,{formLocations:s}=window.llms,l=s[e];function i(e){(0,jr.dispatch)(j.store).replaceBlocks((0,jr.select)(j.store).getBlocks().map((e=>e.clientId)),(0,zr.parse)(e))}function a(){const e="llms-form-restore-default",t=(0,jr.select)(qr.store).getEditedPostAttribute("content"),{createSuccessNotice:n,removeNotice:r}=(0,jr.dispatch)(jc.store),{resetFields:o}=(0,jr.dispatch)(wo);o(),i(l.template),n((0,H.__)("The form has been restored to the default template.","lifterlms"),{id:e,actions:[{label:(0,H.__)("Undo","lifterlms"),onClick:()=>{o(),i(t),r(e)}}]})}return""===n&&o({_llms_form_show_title:"yes"}),(0,$.createElement)($.Fragment,null,(0,$.createElement)(kc.PluginDocumentSettingPanel,{className:"llms-forms-doc-settings",name:"llms-forms-doc-settings",title:(0,H.__)("Form Settings","lifterlms"),opened:!0},(0,$.createElement)(Gc.Slot,null,(s=>(0,$.createElement)($.Fragment,null,(0,$.createElement)(q.PanelRow,null,(0,$.createElement)("strong",null,(0,H.__)("Location","lifterlms")),!t&&(0,$.createElement)("strong",null,l.name),t&&(0,$.createElement)(q.ExternalLink,{href:t},l.name)),(0,$.createElement)("p",{style:{marginTop:"5px"}},(0,$.createElement)("em",null,l.description)),s,(0,$.createElement)("br",null),(0,$.createElement)(q.ToggleControl,{label:(0,H.__)("Display Form Title","lifterlms"),checked:"yes"===n,help:"yes"===n?(0,H.__)("Displaying form title.","lifterlms"):(0,H.__)("Not displaying form title.","lifterlms"),onChange:e=>o({_llms_form_show_title:e?"yes":"no"})}),"checkout"===e&&"yes"===n&&(0,$.createElement)(q.TextControl,{label:(0,H.__)("Free Access Plan Form Title","lifterlms"),value:r,onChange:e=>o({_llms_form_title_free_access_plans:e}),help:(0,H.__)("The form title to be shown for free access plans.","lifterlms")}),(0,$.createElement)("br",null),(0,$.createElement)(q.PanelRow,null,(0,$.createElement)(q.Button,{isDestructive:!0,onClick:a},(0,H.__)("Revert to Default","lifterlms"))),(0,$.createElement)("p",{style:{marginTop:"5px"}},(0,$.createElement)("em",null,(0,H.__)("Replace the existing content of the form with the original default content.","lifterlms"))))))))}))}}const Yc=(0,jr.withSelect)((e=>{const{getCurrentPost:t,getCurrentPostType:n,getEditedPostAttribute:r}=e(qr.store);if("llms_form"!==n())return{};const o=r("meta");return{link:t().link,location:o._llms_form_location,showTitle:o._llms_form_show_title,freeApTitle:o._llms_form_title_free_access_plans}})),Xc=(0,jr.withDispatch)((e=>{const{editPost:t}=e("core/editor");return{setFormMetas(e){t({meta:e})}}})),Qc=(0,U.compose)([Yc,Xc])(Kc);(0,Cc.registerPlugin)("llms",{render:()=>-1!==["course","llms_membership"].indexOf((0,jr.select)("core/editor").getCurrentPostType())?(0,$.createElement)($.Fragment,null,(0,$.createElement)(kc.PluginSidebarMoreMenuItem,{target:"llms-sidebar",icon:(0,$.createElement)(Rc,null)},"LifterLMS"),(0,$.createElement)(kc.PluginSidebar,{name:"llms-sidebar",title:"LifterLMS"},(0,$.createElement)(Uc,null))):null,icon:(0,$.createElement)(Rc,null)}),(0,Cc.registerPlugin)("llms-forms-doc-settings",{render:Qc,icon:""}),(()=>{const e=Kr(),t=[r,o,s,l,i,a,c,u,d];Object.keys(F).forEach((e=>{F[e].composed&&t.push(F[e])})),["llms_form","wp_block"].includes(e)&&(0,V.doAction)("llms_form_fields_ready",F),t.forEach((t=>{const{name:n,postTypes:r,settings:o}=t;r&&-1===r.indexOf(e)||(0,zr.registerBlockType)(n,o)}))})();const{components:Zc={}}=window.llms;window.llms.components={...Zc,...p}})()})();
\ No newline at end of file
diff --git a/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-course-information-block.php b/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-course-information-block.php
new file mode 100644
index 0000000000..f1407e9e09
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-course-information-block.php
@@ -0,0 +1,169 @@
+ __( 'Course Information', 'lifterlms' ),
+ 'title_size' => 'h3',
+ 'show_length' => true,
+ 'show_difficulty' => true,
+ 'show_tracks' => true,
+ 'show_cats' => true,
+ 'show_tags' => true,
+ )
+ );
+
+ $show_wrappers = false;
+
+ if ( $attributes['show_length'] ) {
+ $show_wrappers = true;
+ add_action( $this->get_render_hook(), 'lifterlms_template_single_length', 10 );
+ }
+
+ if ( $attributes['show_difficulty'] ) {
+ $show_wrappers = true;
+ add_action( $this->get_render_hook(), 'lifterlms_template_single_difficulty', 20 );
+ }
+
+ if ( $attributes['show_tracks'] ) {
+ $show_wrappers = true;
+ add_action( $this->get_render_hook(), 'lifterlms_template_single_course_tracks', 25 );
+ }
+
+ if ( $attributes['show_cats'] ) {
+ $show_wrappers = true;
+ add_action( $this->get_render_hook(), 'lifterlms_template_single_course_categories', 30 );
+ }
+
+ if ( $attributes['show_tags'] ) {
+ $show_wrappers = true;
+ add_action( $this->get_render_hook(), 'lifterlms_template_single_course_tags', 35 );
+ }
+
+ if ( $show_wrappers ) {
+
+ $this->title = $attributes['title'];
+ $this->title_size = $attributes['title_size'];
+
+ add_filter( 'llms_course_meta_info_title', array( $this, 'filter_title' ) );
+ add_filter( 'llms_course_meta_info_title_size', array( $this, 'filter_title_size' ) );
+
+ add_action( $this->get_render_hook(), 'lifterlms_template_single_meta_wrapper_start', 5 );
+ add_action( $this->get_render_hook(), 'lifterlms_template_single_meta_wrapper_end', 50 );
+
+ }
+
+ }
+
+ /**
+ * Filters the title of the course information headline per block settings.
+ *
+ * @param string $title default title.
+ * @return string
+ * @since 1.0.0
+ * @version 1.0.0
+ */
+ public function filter_title( $title ) {
+ return $this->title;
+ }
+
+ /**
+ * Filters the title headline element size of the course information headline per block settings.
+ *
+ * @param string $size default size.
+ * @return string
+ * @since 1.0.0
+ * @version 1.0.0
+ */
+ public function filter_title_size( $size ) {
+ return $this->title_size;
+ }
+
+ /**
+ * Register meta attributes stub.
+ *
+ * Called after registering the block type.
+ *
+ * @return void
+ * @since 1.0.0
+ * @version 1.0.0
+ */
+ public function register_meta() {
+
+ register_meta(
+ 'post',
+ '_llms_length',
+ array(
+ 'object_subtype' => 'course',
+ 'sanitize_callback' => 'sanitize_text_field',
+ 'auth_callback' => array( $this, 'meta_auth_callback' ),
+ 'type' => 'string',
+ 'single' => true,
+ 'show_in_rest' => true,
+ )
+ );
+
+ }
+
+ /**
+ * Meta field update authorization callback.
+ *
+ * @param bool $allowed Is the update allowed.
+ * @param string $meta_key Meta keyname.
+ * @param int $object_id WP Object ID (post,comment,etc)...
+ * @param int $user_id WP User ID.
+ * @param string $cap requested capability.
+ * @param array $caps user capabilities.
+ * @return bool
+ * @since 1.0.0
+ * @version 1.0.0
+ */
+ public function meta_auth_callback( $allowed, $meta_key, $object_id, $user_id, $cap, $caps ) {
+ return true;
+ }
+
+}
+
+return new LLMS_Blocks_Course_Information_Block();
diff --git a/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-course-progress-block.php b/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-course-progress-block.php
new file mode 100644
index 0000000000..31541749b5
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-course-progress-block.php
@@ -0,0 +1,92 @@
+get_render_hook(), array( $this, 'output' ), 10 );
+
+ }
+
+ /**
+ * Output the course progress bar
+ *
+ * @since 1.9.0
+ *
+ * @param array $attributes Optional. Block attributes. Default empty array.
+ * @return void
+ */
+ public function output( $attributes = array() ) {
+
+ $block_content = '';
+ $progress = do_shortcode( '[lifterlms_course_progress check_enrollment=1]' );
+ $class = empty( $attributes['className'] ) ? '' : $attributes['className'];
+
+ if ( $progress ) {
+ $block_content = sprintf(
+ '%4$s
',
+ $this->vendor,
+ $this->id,
+ // Take into account the custom class attribute.
+ empty( $attributes['className'] ) ? '' : ' ' . esc_attr( $attributes['className'] ),
+ $progress
+ );
+ }
+
+ /**
+ * Filters the block html
+ *
+ * @since 1.9.0
+ *
+ * @param string $block_content The block's html.
+ * @param array $attributes The block's array of attributes.
+ * @param LLMS_Blocks_Course_Progress_Block $block This block object.
+ */
+ $block_content = apply_filters( 'llms_blocks_render_course_progress_block', $block_content, $attributes, $this );
+
+ if ( $block_content ) {
+ echo $block_content;
+ }
+
+ }
+}
+
+return new LLMS_Blocks_Course_Progress_Block();
diff --git a/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-course-syllabus-block.php b/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-course-syllabus-block.php
new file mode 100644
index 0000000000..1de10bd48c
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-course-syllabus-block.php
@@ -0,0 +1,71 @@
+get_render_hook(), 'lifterlms_template_single_syllabus', 10 );
+
+ }
+
+ /**
+ * Retrieve custom block attributes.
+ * Necessary to override when creating ServerSideRender blocks.
+ *
+ * @return array
+ * @since 1.0.0
+ * @version 1.0.0
+ */
+ public function get_attributes() {
+ return array_merge(
+ parent::get_attributes(),
+ array(
+ 'course_id' => array(
+ 'type' => 'int',
+ 'default' => 0,
+ ),
+ )
+ );
+ }
+
+}
+
+return new LLMS_Blocks_Course_Syllabus_Block();
diff --git a/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-instructors-block.php b/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-instructors-block.php
new file mode 100644
index 0000000000..04aed6ec84
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-instructors-block.php
@@ -0,0 +1,101 @@
+get_render_hook(), $func, 10 );
+
+ }
+
+ /**
+ * Retrieve custom block attributes.
+ *
+ * Necessary to override when creating ServerSideRender blocks.
+ *
+ * @since 1.0.0
+ *
+ * @return array
+ */
+ public function get_attributes() {
+ return array_merge(
+ parent::get_attributes(),
+ array(
+ 'post_id' => array(
+ 'type' => 'int',
+ 'default' => 0,
+ ),
+ )
+ );
+ }
+
+ /**
+ * Output a message when no HTML was rendered
+ *
+ * @since 1.0.0
+ * @since 1.8.0 Fixed spelling error.
+ *
+ * @return string
+ */
+ public function get_empty_render_message() {
+ return __( 'No visible instructors were found.', 'lifterlms' );
+ }
+
+}
+
+return new LLMS_Blocks_Instructors_Block();
diff --git a/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-lesson-navigation-block.php b/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-lesson-navigation-block.php
new file mode 100644
index 0000000000..3a8b287593
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-lesson-navigation-block.php
@@ -0,0 +1,71 @@
+get_render_hook(), 'lifterlms_template_lesson_navigation', 10 );
+
+ }
+
+ /**
+ * Retrieve custom block attributes.
+ * Necessary to override when creating ServerSideRender blocks.
+ *
+ * @return array
+ * @since 1.0.0
+ * @version 1.0.0
+ */
+ public function get_attributes() {
+ return array_merge(
+ parent::get_attributes(),
+ array(
+ 'post_id' => array(
+ 'type' => 'int',
+ 'default' => 0,
+ ),
+ )
+ );
+ }
+
+}
+
+return new LLMS_Blocks_Lesson_Navigation_Block();
diff --git a/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-lesson-progression-block.php b/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-lesson-progression-block.php
new file mode 100644
index 0000000000..de07ea34d6
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-lesson-progression-block.php
@@ -0,0 +1,120 @@
+get_render_hook(), 'lifterlms_template_complete_lesson_link', 10 );
+
+ }
+
+ /**
+ * Output a message when no HTML was rendered
+ *
+ * @since 1.7.0
+ * @since 2.0.0 Ensure the queried object is an `LLMS_Lesson` before checking if it's free.
+ *
+ * @return string
+ */
+ public function get_empty_render_message() {
+ $lesson = llms_get_post( get_the_ID() );
+ if ( $lesson && is_a( $lesson, 'LLMS_Lesson' ) && $lesson->is_free() ) {
+ return '';
+ }
+ return parent::get_empty_render_message();
+ }
+
+ /**
+ * Retrieve custom block attributes.
+ *
+ * Necessary to override when creating ServerSideRender blocks.
+ *
+ * @since 1.0.0
+ *
+ * @return array
+ */
+ public function get_attributes() {
+ return array_merge(
+ parent::get_attributes(),
+ array(
+ 'post_id' => array(
+ 'type' => 'int',
+ 'default' => 0,
+ ),
+ )
+ );
+ }
+
+ /**
+ * Register meta attributes.
+ *
+ * Called after registering the block type.
+ *
+ * @since 1.0.0
+ *
+ * @return void
+ */
+ public function register_meta() {
+
+ register_meta(
+ 'post',
+ '_llms_quiz',
+ array(
+ 'object_subtype' => 'lesson',
+ 'sanitize_callback' => 'absint',
+ 'auth_callback' => '__return_true',
+ 'type' => 'string',
+ 'single' => true,
+ 'show_in_rest' => true,
+ )
+ );
+
+ }
+
+}
+
+return new LLMS_Blocks_Lesson_Progression_Block();
diff --git a/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-php-template-block.php b/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-php-template-block.php
new file mode 100644
index 0000000000..901c38c3ef
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-php-template-block.php
@@ -0,0 +1,144 @@
+ 'loop-main',
+ 'archive-llms_membership' => 'loop-main',
+ 'taxonomy-course_cat' => 'loop-main',
+ 'taxonomy-course_difficulty' => 'loop-main',
+ 'taxonomy-course_tag' => 'loop-main',
+ 'taxonomy-course_track' => 'loop-main',
+ 'taxonomy-membership_cat' => 'loop-main',
+ 'taxonomy-membership_tag' => 'loop-main',
+ 'single-certificate' => 'content-certificate',
+ 'single-no-access' => 'content-no-access',
+ );
+
+ /**
+ * Add actions attached to the render function action.
+ *
+ * @since 2.3.0
+ *
+ * @param array $attributes Optional. Block attributes. Default empty array.
+ * @param string $content Optional. Block content. Default empty string.
+ * @return void
+ */
+ public function add_hooks( $attributes = array(), $content = '' ) {
+
+ add_action( $this->get_render_hook(), array( $this, 'output' ), 10 );
+
+ }
+
+ /**
+ * Retrieve custom block attributes.
+ *
+ * Necessary to override when creating ServerSideRender blocks.
+ *
+ * @since 2.3.0
+ *
+ * @return array
+ */
+ public function get_attributes() {
+ return array(
+ 'template' => array(
+ 'type' => 'string',
+ 'default' => '',
+ ),
+ 'title' => array(
+ 'type' => 'string',
+ 'default' => '',
+ ),
+ );
+ }
+
+ /**
+ * Output the template.
+ *
+ * @since 2.3.0
+ *
+ * @param array $attributes Optional. Block attributes. Default empty array.
+ * @return void
+ */
+ public function output( $attributes = array() ) {
+
+ if ( empty( $attributes['template'] ) ) {
+ return;
+ }
+
+ /**
+ * Filters the php templates that can be render via this block.
+ *
+ * @since 2.3.0
+ *
+ * @param array $templates Templates map, where the keys are the template attribute value and the values are the php file names (w/o extension).
+ */
+ $templates = apply_filters( 'llms_blocks_php_templates_block', $this->templates );
+
+ if ( ! array_key_exists( $attributes['template'], $templates ) ) {
+ return;
+ }
+
+ ob_start();
+
+ llms_get_template( "{$templates[$attributes['template']]}.php" );
+
+ $block_content = ob_get_clean();
+
+ /**
+ * Filters the block html.
+ *
+ * @since 2.3.0
+ *
+ * @param string $block_content The block's html.
+ * @param array $attributes The block's array of attributes.
+ * @param array $template The template file basename to be rendered.
+ * @param LLMS_Blocks_PHP_Template_Block $block This block object.
+ */
+ $block_content = apply_filters( 'llms_blocks_render_php_template_block', $block_content, $attributes, $templates[ $attributes['template'] ], $this );
+
+ if ( $block_content ) {
+ echo $block_content;
+ }
+
+ }
+
+}
+
+return new LLMS_Blocks_PHP_Template_Block();
diff --git a/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-pricing-table-block.php b/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-pricing-table-block.php
new file mode 100644
index 0000000000..a47d848c10
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-pricing-table-block.php
@@ -0,0 +1,129 @@
+get_render_hook(), array( $this, 'output' ), 10 );
+
+ }
+
+ /**
+ * Retrieve custom block attributes
+ *
+ * Necessary to override when creating ServerSideRender blocks.
+ *
+ * @since 1.0.0
+ * @since 1.3.6 Unknown.
+ *
+ * @return array
+ */
+ public function get_attributes() {
+ return array_merge(
+ parent::get_attributes(),
+ array(
+ 'post_id' => array(
+ 'type' => 'int',
+ 'default' => 0,
+ ),
+ )
+ );
+ }
+
+ /**
+ * Output the pricing table.
+ *
+ * @since 1.0.0
+ * @since 1.3.7 Unknown.
+ * @since 1.9.0 Added `llms_blocks_render_pricing_table_block` filter.
+ *
+ * @param array $attributes Optional. Block attributes. Default empty array.
+ * @return void
+ */
+ public function output( $attributes = array() ) {
+
+ ob_start();
+ if ( 'edit' === filter_input( INPUT_GET, 'context' ) ) {
+ $id = filter_input( INPUT_GET, 'post_id', FILTER_SANITIZE_NUMBER_INT );
+ if ( $id ) {
+ $product = new LLMS_Product( $id );
+ if ( ! $product->get_access_plans() ) {
+ echo '' . __( 'No access plans found.', 'lifterlms' ) . '
';
+ }
+ }
+
+ // force display of the table on the admin panel.
+ add_filter( 'llms_product_pricing_table_enrollment_status', '__return_false' );
+ add_filter( 'llms_product_is_purchasable', '__return_true' );
+
+ }
+
+ lifterlms_template_pricing_table( $attributes['post_id'] );
+
+ $block_content = ob_get_clean();
+
+ /**
+ * Filters the block html
+ *
+ * @since 1.9.0
+ *
+ * @param string $block_content The block's html.
+ * @param array $attributes The block's array of attributes.
+ * @param LLMS_Blocks_Pricing_Table_Block $block This block object.
+ */
+ $block_content = apply_filters( 'llms_blocks_render_pricing_table_block', $block_content, $attributes, $this );
+
+ remove_filter( 'llms_product_pricing_table_enrollment_status', '__return_false' );
+ remove_filter( 'llms_product_is_purchasable', '__return_true' );
+
+ if ( $block_content ) {
+ echo $block_content;
+ }
+
+ }
+}
+
+return new LLMS_Blocks_Pricing_Table_Block();
diff --git a/libraries/lifterlms-blocks/includes/blocks/index.php b/libraries/lifterlms-blocks/includes/blocks/index.php
new file mode 100644
index 0000000000..82e2315c6b
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/blocks/index.php
@@ -0,0 +1,2 @@
+is_dynamic ) {
+
+ register_block_type(
+ $this->get_block_id(),
+ array(
+ 'attributes' => $this->get_attributes(),
+ 'render_callback' => array( $this, 'render_callback' ),
+ )
+ );
+
+ }
+
+ $this->register_meta();
+
+ }
+
+ /**
+ * Add hooks stub.
+ * Extending classes can use this class to add hooks attached to the render function action.
+ *
+ * @param array $attributes Optional. Block attributes. Default empty array.
+ * @param string $content Optional. Block content. Default empty string.
+ * @return void
+ * @since 1.0.0
+ * @version 1.0.0
+ */
+ public function add_hooks( $attributes = array(), $content = '' ) {}
+
+ /**
+ * Retrieve custom block attributes.
+ * Necessary to override when creating ServerSideRender blocks.
+ *
+ * @return array
+ * @since 1.0.0
+ * @version 1.0.0
+ */
+ public function get_attributes() {
+ return LLMS_Blocks_Visibility::get_attributes();
+ }
+
+ /**
+ * Retrieve the ID/Name of the block.
+ *
+ * @return string
+ * @since 1.0.0
+ * @version 1.0.0
+ */
+ public function get_block_id() {
+ return sprintf( '%1$s/%2$s', $this->vendor, $this->id );
+ }
+
+ /**
+ * Output a message when no HTML was rendered
+ *
+ * @since 1.0.0
+ * @since 1.8.0 Don't output empty render messages on the frontend.
+ *
+ * @return string
+ */
+ public function get_empty_render_message() {
+ if ( ! is_admin() ) {
+ return '';
+ }
+ return __( 'No HTML was returned.', 'lifterlms' );
+ }
+
+ /**
+ * Retrieve a string which can be used to render the block.
+ *
+ * @return string
+ * @since 1.0.0
+ * @version 1.0.0
+ */
+ public function get_render_hook() {
+ return sprintf( '%1$s_%2$s_block_render', $this->vendor, $this->id );
+ }
+
+ /**
+ * Removed hooks stub.
+ * Extending classes can use this class to remove hooks attached to the render function action.
+ *
+ * @return void
+ * @since 1.0.0
+ * @version 1.0.0
+ */
+ public function remove_hooks() {}
+
+ /**
+ * Renders the block type output for given attributes.
+ *
+ * @param array $attributes Optional. Block attributes. Default empty array.
+ * @param string $content Optional. Block content. Default empty string.
+ * @return string
+ * @since 1.0.0
+ * @version 1.0.0
+ */
+ public function render_callback( $attributes = array(), $content = '' ) {
+
+ $this->add_hooks( $attributes, $content );
+
+ ob_start();
+ do_action( $this->get_render_hook(), $attributes, $content );
+ $ret = ob_get_clean();
+
+ $this->remove_hooks();
+
+ if ( ! $ret ) {
+ $ret = $this->get_empty_render_message();
+ }
+
+ return $ret;
+
+ }
+
+ /**
+ * Register meta attributes stub.
+ *
+ * Called after registering the block type.
+ *
+ * @return void
+ * @since 1.0.0
+ * @version 1.0.0
+ */
+ public function register_meta() {}
+
+}
diff --git a/libraries/lifterlms-blocks/includes/class-llms-blocks-assets.php b/libraries/lifterlms-blocks/includes/class-llms-blocks-assets.php
new file mode 100644
index 0000000000..943da0bd5c
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/class-llms-blocks-assets.php
@@ -0,0 +1,213 @@
+assets = new LLMS_Assets(
+ 'llms-blocks',
+ array(
+ // Base defaults shared by all asset types.
+ 'base' => array(
+ 'base_file' => LLMS_BLOCKS_PLUGIN_FILE,
+ 'base_url' => LLMS_BLOCKS_PLUGIN_DIR_URL,
+ 'version' => LLMS_BLOCKS_VERSION,
+ 'suffix' => '', // Only minified files are distributed.
+ ),
+ // Script specific defaults.
+ 'script' => array(
+ 'translate' => true, // All scripts in the blocks plugin are translated.
+ ),
+ )
+ );
+
+ // Define plugin assets.
+ $this->define();
+ $this->define_bc();
+
+ // Enqueue editor assets.
+ add_action( 'enqueue_block_editor_assets', array( $this, 'editor_assets' ), 5 );
+
+ }
+
+ /**
+ * Define block plugin assets.
+ *
+ * @since 1.10.0
+ *
+ * @return void
+ */
+ private function define() {
+
+ $asset = include LLMS_BLOCKS_PLUGIN_DIR . '/assets/js/llms-blocks.asset.php';
+
+ $this->assets->define(
+ 'scripts',
+ array(
+ 'llms-blocks-editor' => array(
+ 'dependencies' => $asset['dependencies'],
+ 'file_name' => 'llms-blocks',
+ 'version' => $asset['version'],
+ ),
+ )
+ );
+
+ $this->assets->define(
+ 'styles',
+ array(
+ 'llms-blocks-editor' => array(
+ 'dependencies' => array( 'wp-edit-blocks' ),
+ 'file_name' => 'llms-blocks',
+ 'version' => $asset['version'],
+ ),
+ )
+ );
+
+ }
+
+ /**
+ * Define backwards compatibility assets
+ *
+ * @since 2.0.0
+ *
+ * @return void
+ */
+ protected function define_bc() {
+
+ if ( ! $this->use_bc_assets() ) {
+ return;
+ }
+
+ $asset = include LLMS_BLOCKS_PLUGIN_DIR . '/assets/js/llms-blocks-backwards-compat.asset.php';
+
+ $this->assets->define(
+ 'scripts',
+ array(
+ 'llms-blocks-editor-bc' => array(
+ 'dependencies' => $asset['dependencies'],
+ 'file_name' => 'llms-blocks-backwards-compat',
+ 'version' => $asset['version'],
+ ),
+ )
+ );
+
+ }
+
+ /**
+ * Enqueue block editor assets.
+ *
+ * @since 1.0.0
+ * @since 1.4.1 Fix double slash in asset path.
+ * @since 1.8.0 Update asset paths and improve script dependencies.
+ * @since 1.10.0 Use `LLMS_Assets` class methods for asset enqueues.
+ * @since 2.0.0 Maybe load backwards compatibility script.
+ * @since 2.2.0 Only load assets on post screens.
+ * @since 2.3.0 Also load assets on site editor screen.
+ * @since 2.4.3 Added script localization.
+ *
+ * @return void
+ */
+ public function editor_assets() {
+
+ $screen = get_current_screen();
+ if ( $screen && ! in_array( $screen->base, array( 'post', 'site-editor' ), true ) ) {
+ return;
+ }
+
+ if ( $this->use_bc_assets() ) {
+ $this->assets->enqueue_script( 'llms-blocks-editor-bc' );
+ }
+
+ $this->assets->enqueue_script( 'llms-blocks-editor' );
+ $this->assets->enqueue_style( 'llms-blocks-editor' );
+
+ wp_localize_script(
+ 'llms-blocks-editor',
+ 'llmsBlocks',
+ array(
+ 'variationIconCanBeObject' => self::can_variation_transform_icon_be_an_object(),
+ )
+ );
+
+ }
+
+ /**
+ * Determines if WP Core backwards compatibility scripts should defined & be loaded.
+ *
+ * @since 2.0.0
+ *
+ * @return boolean
+ */
+ private function use_bc_assets() {
+ return ( ! LLMS_Forms::instance()->are_requirements_met() &&
+ /**
+ * Filter allowing opt-out of block editor backwards compatibility scripts.
+ *
+ * @since 2.0.0
+ *
+ * @example
+ * ```
+ * // Disable backwards compatibility scripts.
+ * add_filter( 'llms_blocks_load_bc_scripts', '__return_false' );
+ * ```
+ *
+ * @param boolean $load_scripts Whether or not to load the scripts.
+ */
+ apply_filters( 'llms_blocks_load_bc_scripts', true )
+ );
+ }
+
+ /**
+ * Can a variation transform icon be an object.
+ *
+ * @since 2.4.3
+ *
+ * @link https://github.com/gocodebox/lifterlms-blocks/issues/170
+ *
+ * @return boolean
+ */
+ private static function can_variation_transform_icon_be_an_object() {
+ global $wp_version;
+ return version_compare( $wp_version, '6.0-src', '<' ) && ! defined( 'GUTENBERG_VERSION' )
+ || ( defined( 'GUTENBERG_VERSION' ) && version_compare( GUTENBERG_VERSION, '13.0', '<' ) );
+ }
+
+}
+
+return new LLMS_Blocks_Assets();
diff --git a/libraries/lifterlms-blocks/includes/class-llms-blocks-migrate.php b/libraries/lifterlms-blocks/includes/class-llms-blocks-migrate.php
new file mode 100644
index 0000000000..db8f5ccac9
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/class-llms-blocks-migrate.php
@@ -0,0 +1,433 @@
+update_post_content( $post->ID, $post->post_content . "\r\r" . $this->get_template( $post->post_type ) ) ) {
+ // Save migration state.
+ $this->update_migration_status( $post->ID );
+ return true;
+ }
+
+ return false;
+
+ }
+
+ /**
+ * Don't remove core template actions when a sales page is enabled and the page is restricted.
+
+ * @since 1.2.0
+ * @since 1.3.1 Unknown.
+ *
+ * @param bool $ret Default migration status.
+ * @param int $post_id WP_Post ID.
+ * @return bool
+ */
+ public static function check_sales_page( $ret, $post_id ) {
+
+ $page_restricted = llms_page_restricted( $post_id );
+ if ( $page_restricted['is_restricted'] ) {
+ $sales_page = get_post_meta( $post_id, '_llms_sales_page_content_type', true );
+ if ( '' === $sales_page || 'content' === $sales_page ) {
+ $ret = false;
+ }
+ }
+
+ return $ret;
+
+ }
+
+ /**
+ * Get an array of post types which can be migrated.
+ *
+ * @since 1.3.3
+ * @since 1.7.0 Memberships are migrateable.
+ *
+ * @return array
+ */
+ public function get_migrateable_post_types() {
+ /**
+ * Filters the post types that can be migrated
+ *
+ * @since 1.3.3
+ *
+ * @param string[] $post_types An array of string representing the post types that can be migrated.
+ */
+ return apply_filters( 'llms_blocks_migrateable_post_types', array( 'course', 'lesson', 'llms_membership' ) );
+ }
+
+ /**
+ * Retrieve a WP_Query for posts which have already been migrated.
+ *
+ * @since 1.4.0
+ *
+ * @param array $args Optional query arguments to pass to WP_Query.
+ * @return WP_Query
+ */
+ public function get_migrated_posts( $args = array() ) {
+
+ return new WP_Query(
+ wp_parse_args(
+ $args,
+ array(
+ 'post_type' => $this->get_migrateable_post_types(),
+ 'meta_query' => array(
+ array(
+ 'key' => '_llms_blocks_migrated',
+ 'value' => 'yes',
+ ),
+ ),
+ )
+ )
+ );
+
+ }
+
+ /**
+ * Retrieve the block template by post type.
+ *
+ * @since 1.0.0
+ * @since 1.7.0 Add membership template.
+ * @since 1.8.0 Updated course progress shortcode and added the `$merge_deprecated_versions` param.
+ * @since 1.9.1 Fix course progress block.
+ *
+ * @param string $post_type WP post type.
+ * @param boolean $merge_deprecated_versions Optional. Whether or not getting the deprecated blocks merged, useful when removing templates. Default `false`.
+ * @return string
+ */
+ private function get_template( $post_type, $merge_deprecated_versions = false ) {
+
+ if ( 'course' === $post_type ) {
+ ob_start();
+
+ ?>
+
+
+
+
+
+
+
+
+
+[lifterlms_course_progress check_enrollment=1]
+[lifterlms_course_progress]
+
+
+
+
+[lifterlms_course_continue_button]
+
+
+
+
+
+
+
+
+
+ should_migrate_post( $post->ID ) ) {
+ return;
+ }
+
+ if ( 'llms_membership' === $post->post_type ) {
+ if ( has_block( 'llms/pricing-table', $post->post_content ) ) {
+ $this->update_migration_status( $post->ID );
+ return;
+ }
+ } elseif ( has_blocks( $post->post_content ) ) {
+ $this->update_migration_status( $post->ID );
+ return;
+ }
+
+ $this->add_template_to_post( $post );
+
+ // Reload.
+ wp_safe_redirect(
+ add_query_arg(
+ array(
+ 'post' => $post->ID,
+ 'action' => 'edit',
+ ),
+ admin_url( 'post.php' )
+ )
+ );
+ exit;
+
+ }
+
+ /**
+ * Remove post type templates and any LifterLMS Blocks from a given post.
+ *
+ * @since 1.4.0
+ * @since 1.8.0 Get all post type's template with deprecated blocks versions merged.
+ *
+ * @param WP_Post $post Post object.
+ * @return bool
+ */
+ private function remove_template_from_post( $post ) {
+
+ $template = $this->get_template( $post->post_type, true );
+ if ( ! $template ) {
+ return;
+ }
+
+ // explicitly remove template pieces.
+ $parts = array_filter( array_map( 'trim', explode( "\n", $template ) ) );
+ $content = str_replace( $parts, '', $post->post_content );
+
+ // replace any remaining LLMS blocks not found in the template (also grabs any openers that have block settings JSON).
+ $content = trim( preg_replace( '##', '', $content ) );
+
+ if ( $this->update_post_content( $post->ID, $content ) ) {
+ $this->update_migration_status( $post->ID, 'no' );
+ return true;
+ }
+
+ return false;
+
+ }
+
+ /**
+ * Removes core template action hooks from posts which have been migrated to the block editor
+ *
+ * @since 1.3.2 Unknown.
+ *
+ * @return void
+ * @since 1.1.0
+ */
+ public function remove_template_hooks() {
+
+ if ( ! llms_blocks_is_post_migrated( get_the_ID() ) ) {
+ return;
+ }
+
+ // Course Information.
+ remove_action( 'lifterlms_single_course_after_summary', 'lifterlms_template_single_meta_wrapper_start', 5 );
+ remove_action( 'lifterlms_single_course_after_summary', 'lifterlms_template_single_length', 10 );
+ remove_action( 'lifterlms_single_course_after_summary', 'lifterlms_template_single_difficulty', 20 );
+ remove_action( 'lifterlms_single_course_after_summary', 'lifterlms_template_single_course_tracks', 25 );
+ remove_action( 'lifterlms_single_course_after_summary', 'lifterlms_template_single_course_categories', 30 );
+ remove_action( 'lifterlms_single_course_after_summary', 'lifterlms_template_single_course_tags', 35 );
+ remove_action( 'lifterlms_single_course_after_summary', 'lifterlms_template_single_meta_wrapper_end', 50 );
+
+ // Remove Course Progress.
+ remove_action( 'lifterlms_single_course_after_summary', 'lifterlms_template_single_course_progress', 60 );
+
+ // Course Syllabus.
+ remove_action( 'lifterlms_single_course_after_summary', 'lifterlms_template_single_syllabus', 90 );
+
+ // Instructors.
+ remove_action( 'lifterlms_single_course_after_summary', 'lifterlms_template_course_author', 40 );
+
+ // Lesson Navigation.
+ remove_action( 'lifterlms_single_lesson_after_summary', 'lifterlms_template_lesson_navigation', 20 );
+
+ // Lesson Progression.
+ remove_action( 'lifterlms_single_lesson_after_summary', 'lifterlms_template_complete_lesson_link', 10 );
+
+ // Pricing Table.
+ remove_action( 'lifterlms_single_course_after_summary', 'lifterlms_template_pricing_table', 60 );
+ remove_action( 'lifterlms_single_membership_after_summary', 'lifterlms_template_pricing_table', 10 );
+
+ }
+
+ /**
+ * Determine if a post should be migrated.
+ *
+ * @since 1.3.3
+ *
+ * @param int $post_id WP_Post ID.
+ * @return bool
+ */
+ public function should_migrate_post( $post_id ) {
+
+ $ret = true;
+
+ // Not a valid post type.
+ if ( ! in_array( get_post_type( $post_id ), $this->get_migrateable_post_types(), true ) ) {
+
+ $ret = false;
+
+ // Classic is enabled, don't migrate.
+ } elseif ( llms_blocks_is_classic_enabled_for_post( $post_id ) ) {
+
+ $ret = false;
+
+ // Already Migrated.
+ } elseif ( llms_parse_bool( get_post_meta( $post_id, '_llms_blocks_migrated', true ) ) ) {
+
+ $ret = false;
+
+ }
+
+ /**
+ * Filters whether or not a post should be migrated
+ *
+ * @since 1.3.3
+ *
+ * @param bool $migrate Whether or not a post should be migrated.
+ * @param int $post_id WP_Post ID.
+ */
+ return apply_filters( 'llms_blocks_should_migrate_post', $ret, $post_id );
+
+ }
+
+ /**
+ * Unmigrates migrated posts.
+ *
+ * @since 1.4.0
+ *
+ * @return void.
+ */
+ public function unmigrate_posts() {
+
+ $posts = $this->get_migrated_posts( array( 'posts_per_page' => 250 ) ); // phpcs:ignore WordPress.WP.PostsPerPage.posts_per_page_posts_per_page
+
+ if ( $posts->posts ) {
+ foreach ( $posts->posts as $post ) {
+ $this->remove_template_from_post( $post );
+ }
+ }
+
+ }
+
+ /**
+ * Update post meta data to signal status of the editor migration.
+ *
+ * @since 1.1.0
+ *
+ * @param int $post_id WP_Post ID.
+ * @param string $status Yes or no.
+ * @return void
+ */
+ private function update_migration_status( $post_id, $status = 'yes' ) {
+ update_post_meta( $post_id, '_llms_blocks_migrated', $status );
+ }
+
+ /**
+ * Update the post content for a given post.
+ *
+ * @since 1.4.0
+ *
+ * @param int $id WP_Post ID.
+ * @param string $content Post content to update.
+ * @return bool
+ */
+ private function update_post_content( $id, $content ) {
+
+ global $wpdb;
+ $update = $wpdb->update(
+ $wpdb->posts,
+ array(
+ 'post_content' => $content,
+ ),
+ array(
+ 'ID' => $id,
+ ),
+ array( '%s' ),
+ array( '%d' )
+ ); // db no-cache okay.
+
+ return false === $update ? false : true;
+
+ }
+
+}
+
+global $llms_blocks_migrate;
+$llms_blocks_migrate = new LLMS_Blocks_Migrate();
+return $llms_blocks_migrate;
diff --git a/libraries/lifterlms-blocks/includes/class-llms-blocks-page-builders.php b/libraries/lifterlms-blocks/includes/class-llms-blocks-page-builders.php
new file mode 100644
index 0000000000..a635193b2c
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/class-llms-blocks-page-builders.php
@@ -0,0 +1,133 @@
+instructors()->get_instructors( false );
+ foreach ( $ret as &$instructor ) {
+ $name = '';
+ $student = llms_get_student( $instructor['id'] );
+ if ( $student ) {
+ $name = $student->get_name();
+ }
+ $instructor['name'] = $name;
+ }
+ }
+ return $ret;
+
+ }
+
+ /**
+ * Automatically sets instructor data when a new course/membership is created.
+ *
+ * @since 1.6.0
+ *
+ * @link https://developer.wordpress.org/reference/hooks/save_post_post-post_type/
+ *
+ * @param int $post_id WP_Post ID.
+ * @param WP_Post $post Post object.
+ * @param bool $update Whether the save is an update (`true`) or a creation (`false`).
+ * @return bool
+ */
+ public function maybe_set_default_instructor( $post_id, $post, $update ) {
+
+ if ( $update || ! $post->post_author ) {
+ return false;
+ }
+
+ $obj = llms_get_post( $post );
+ if ( ! $obj || ! is_a( $obj, 'LLMS_Post_Model' ) || ! in_array( $obj->get( 'type' ), $this->post_types, true ) ) {
+ return false;
+ }
+
+ remove_action( 'save_post_course', array( $this, 'maybe_set_instructors' ), 50, 3 );
+ $obj->instructors()->set_instructors( array( array( 'id' => $post->post_author ) ) );
+
+ return true;
+
+ }
+
+ /**
+ * Update instructor information for a given object.
+ *
+ * @since 1.0.0
+ * @since 1.7.1 Decode JSON prior to saving.
+ * @since 2.4.0 Fix access to non-existing variable when current user canno edit the course/membership.
+ *
+ * @param string $value Instructor data to add to the object (JSON).
+ * @param WP_Post $object WP_Post object.
+ * @param string $key Name of the field.
+ * @return null|WP_Error
+ */
+ public function update_callback( $value, $object, $key ) {
+
+ if ( ! current_user_can( 'edit_post', $object->ID ) ) {
+ return new WP_Error(
+ 'rest_cannot_update',
+ __( 'Sorry, you are not allowed to edit the object instructors.', 'lifterlms' ),
+ array(
+ 'key' => $key,
+ 'status' => rest_authorization_required_code(),
+ )
+ );
+ }
+
+ $value = json_decode( $value, true );
+
+ $obj = llms_get_post( $object );
+ if ( $obj ) {
+ $obj->instructors()->set_instructors( $value );
+ }
+
+ return null;
+ }
+
+ /**
+ * Register custom meta fields.
+ *
+ * @since 1.0.0
+ * @since 1.6.0 Use `$this->post_types` for loop.
+ * @since 1.7.1 Don't define a schema.
+ *
+ * @return void
+ */
+ public function register_meta() {
+
+ foreach ( $this->post_types as $post_type ) {
+
+ register_rest_field(
+ $post_type,
+ 'instructors',
+ array(
+ 'get_callback' => array( $this, 'get_callback' ),
+ 'update_callback' => array( $this, 'update_callback' ),
+ 'schema' => null,
+ )
+ );
+
+ }
+
+ }
+
+}
+
+return new LLMS_Blocks_Post_Instructors();
diff --git a/libraries/lifterlms-blocks/includes/class-llms-blocks-post-types.php b/libraries/lifterlms-blocks/includes/class-llms-blocks-post-types.php
new file mode 100644
index 0000000000..4fe0c64dab
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/class-llms-blocks-post-types.php
@@ -0,0 +1,155 @@
+ __( 'Add a short description of your course visible to all visitors...', 'lifterlms' ),
+ ),
+ ),
+ array( 'llms/course-information' ),
+ array( 'llms/instructors' ),
+ array( 'llms/pricing-table' ),
+ array( 'llms/course-progress' ),
+ array( 'llms/course-continue-button' ),
+ array( 'llms/course-syllabus' ),
+ );
+
+ return $post_type;
+
+ }
+
+ /**
+ * Add an editor template for memberships.
+ *
+ * @since 1.7.0
+ * @since 1.11.0 Add instructors block.
+ *
+ * @param array $post_type Post type registration data.
+ * @return array
+ */
+ public function add_membership_template( $post_type ) {
+
+ $post_type['template'] = array(
+ array(
+ 'core/paragraph',
+ array(
+ 'placeholder' => __( 'Add a short description of your membership visible to all visitors...', 'lifterlms' ),
+ ),
+ ),
+ array( 'llms/instructors' ),
+ array( 'llms/pricing-table' ),
+ );
+
+ return $post_type;
+
+ }
+
+ /**
+ * Add an editor template for lessons
+ *
+ * @param array $post_type post type data.
+ * @return array
+ * @since 1.0.0
+ * @version 1.0.0
+ */
+ public function add_lesson_template( $post_type ) {
+
+ $post_type['template'] = array(
+ array(
+ 'core/paragraph',
+ array(
+ 'placeholder' => __( 'Add your lesson content...', 'lifterlms' ),
+ ),
+ ),
+ array( 'llms/lesson-progression' ),
+ array( 'llms/lesson-navigation' ),
+ );
+
+ return $post_type;
+
+ }
+
+}
+
+return new LLMS_Blocks_Post_Types();
diff --git a/libraries/lifterlms-blocks/includes/class-llms-blocks-post-visibility.php b/libraries/lifterlms-blocks/includes/class-llms-blocks-post-visibility.php
new file mode 100644
index 0000000000..cd3b3efe05
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/class-llms-blocks-post-visibility.php
@@ -0,0 +1,134 @@
+get_catalog_visibility();
+ }
+ return $ret;
+
+ }
+
+ /**
+ * Update visibility information for a given object.
+ *
+ * @param string $value new visibility status value.
+ * @param WP_Post $object WP_Post object.
+ * @param string $key name of the field.
+ * @return null|WP_Error
+ * @since 1.3.0
+ * @version 1.3.0
+ */
+ public function update_callback( $value, $object, $key ) {
+
+ if ( ! current_user_can( 'edit_post', $object->ID ) ) {
+ return new WP_Error(
+ 'rest_cannot_update',
+ __( 'Sorry, you are not allowed to edit the object visibility.', 'lifterlms' ),
+ array(
+ 'key' => $name,
+ 'status' => rest_authorization_required_code(),
+ )
+ );
+ }
+
+ $obj = new LLMS_Product( $object->ID );
+ if ( $obj ) {
+ $obj->set_catalog_visibility( $value );
+ }
+
+ return null;
+ }
+
+ /**
+ * Register custom meta fields.
+ *
+ * @return void
+ * @since 1.3.0
+ * @version 1.3.0
+ */
+ public function register_meta() {
+
+ foreach ( array( 'course', 'llms_membership' ) as $post_type ) {
+
+ register_rest_field(
+ $post_type,
+ 'visibility',
+ array(
+ 'get_callback' => array( $this, 'get_callback' ),
+ 'update_callback' => array( $this, 'update_callback' ),
+ 'schema' => array(
+ 'description' => __( 'Post visibility.', 'lifterlms' ),
+ 'type' => 'object',
+ 'context' => array( 'view', 'edit' ),
+ 'properties' => array(),
+ 'arg_options' => array(
+ 'sanitize_callback' => null,
+ 'validate_callback' => null,
+ ),
+ ),
+ )
+ );
+
+ }
+
+ }
+
+}
+
+return new LLMS_Blocks_Post_Visibility();
diff --git a/libraries/lifterlms-blocks/includes/class-llms-blocks-reusable.php b/libraries/lifterlms-blocks/includes/class-llms-blocks-reusable.php
new file mode 100644
index 0000000000..3a39b7e6e6
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/class-llms-blocks-reusable.php
@@ -0,0 +1,200 @@
+ID, '_is_llms_field', $value ) ? true : false;
+ }
+
+ /**
+ * Register custom rest fields
+ *
+ * @since 2.0.0
+ *
+ * @return void
+ */
+ public function rest_register_fields() {
+
+ register_rest_field(
+ 'wp_block',
+ 'is_llms_field',
+ array(
+ 'get_callback' => array( $this, 'rest_callback_get' ),
+ 'update_callback' => array( $this, 'rest_callback_update' ),
+ )
+ );
+
+ }
+
+ /**
+ * Modify the rest request query used to list reusable blocks within the block editor
+ *
+ * Ensures that reusable blocks containing LifterLMS Form Fields can only be inserted/viewed
+ * in the context that we allow them to be used within.
+ *
+ * + When viewing a `wp_block` post, all reusable blocks should be displayed.
+ * + When viewing an `llms_form` post, only blocks that specify `is_llms_field` as 'yes' can be displayed.
+ * + When viewing any other post, any post with `is_llms_field` of 'yes' is excluded.
+ *
+ * @since 2.0.0
+ *
+ * @see [Reference]
+ * @link [URL]
+ *
+ * @param arrays $args WP_Query arguments.
+ * @param WP_REST_Request $request Request object.
+ * @return array
+ */
+ public function mod_wp_block_query( $args, $request ) {
+
+ $referer = $request->get_header( 'referer' );
+ $screen = empty( $referer ) ? false : $this->get_screen_from_referer( $referer );
+
+ // We don't care about the screen or it's a reusable block screen.
+ if ( empty( $screen ) || 'wp_block' === $screen ) {
+ return $args;
+ }
+
+ // Add a meta query if it doesn't already exist.
+ if ( empty( $args['meta_query'] ) ) {
+ $args['meta_query'] = array(
+ 'relation' => 'AND',
+ );
+ }
+
+ // Forms should show only blocks with forms and everything else should exclude blocks with forms.
+ $include_fields = 'llms_form' === $screen;
+ $args['meta_query'][] = $this->get_meta_query( $include_fields );
+
+ return $args;
+
+ }
+
+ /**
+ * Retrieve a meta query array depending on the post type of the referring rest request
+ *
+ * @since 2.0.0
+ *
+ * @param boolean $include_fields Whether or not to include form fields.
+ * @return array
+ */
+ private function get_meta_query( $include_fields ) {
+
+ // Default query when including fields.
+ $meta_query = array(
+ 'key' => '_is_llms_field',
+ 'value' => 'yes',
+ );
+
+ // Excluding fields.
+ if ( ! $include_fields ) {
+
+ $meta_query = array(
+ 'relation' => 'OR',
+ wp_parse_args(
+ array(
+ 'compare' => '!=',
+ ),
+ $meta_query
+ ),
+ array(
+ 'key' => '_is_llms_field',
+ 'compare' => 'NOT EXISTS',
+ ),
+ );
+ }
+
+ return $meta_query;
+
+ }
+
+ /**
+ * Determine the screen where a reusable blocks rest query originated
+ *
+ * The screen name will either be "widgets" or the WP_Post name of a registered WP_Post type.
+ *
+ * For any other screen we return `false` because we don't care about it.
+ *
+ * @since 2.0.0
+ * @since 2.3.1 Don't pass `null` to `basename()`.
+ *
+ * @param string $referer Referring URL for the REST request.
+ * @return string|boolean Returns the screen name or `false` if we don't care about the screen.
+ */
+ private function get_screen_from_referer( $referer ) {
+
+ // Blockified widgets screen.
+ $url_path = wp_parse_url( $referer, PHP_URL_PATH );
+ if ( $url_path && 'widgets.php' === basename( $url_path ) ) {
+ return 'widgets';
+ }
+
+ $query_args = array();
+ wp_parse_str( wp_parse_url( $referer, PHP_URL_QUERY ), $query_args );
+
+ // Something else.
+ if ( empty( $query_args['post'] ) ) {
+ return false;
+ }
+
+ // Block editor for a WP_Post.
+ return get_post_type( $query_args['post'] );
+
+ }
+
+}
+
+return new LLMS_Blocks_Reusable();
diff --git a/libraries/lifterlms-blocks/includes/class-llms-blocks-status-tools.php b/libraries/lifterlms-blocks/includes/class-llms-blocks-status-tools.php
new file mode 100644
index 0000000000..66c486f1cb
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/class-llms-blocks-status-tools.php
@@ -0,0 +1,88 @@
+get_migrated_posts();
+
+ if ( $posts->found_posts ) {
+
+ $desc = __( 'Removes block editor code from all courses and lessons which were migrated to the block editor during an upgrade to WordPress 5.0 or later. If you installed the Classic Editor plugin after upgrading and see duplicate content items (such as the course syllabus or lesson mark complete button) this tool will remove the duplicates.', 'lifterlms' );
+ $desc .= ' ';
+ // Translators: %d = number of affected courses/lessons.
+ $desc .= sprintf( __( 'Currently %d courses and/or lessons are affected.', 'lifterlms' ), $posts->found_posts );
+
+ $tools['blocks-unmigrate'] = array(
+ 'description' => $desc,
+ 'label' => __( 'Remove LifterLMS Block Code', 'lifterlms' ),
+ 'text' => __( 'Remove Block Code', 'lifterlms' ),
+ );
+
+ }
+
+ return $tools;
+
+ }
+
+ /**
+ * Run tool actions on tool page form submission.
+ *
+ * @since 1.4.0
+ *
+ * @param string $tool ID of the tool being run.
+ * @return void
+ */
+ public function maybe_toggle_mode( $tool ) {
+
+ if ( 'blocks-unmigrate' !== $tool ) {
+ return;
+ }
+
+ do_action( 'llms_blocks_unmigrate_posts' );
+
+ }
+
+}
+
+return new LLMS_Blocks_Status_Tools();
diff --git a/libraries/lifterlms-blocks/includes/class-llms-blocks-visibility.php b/libraries/lifterlms-blocks/includes/class-llms-blocks-visibility.php
new file mode 100644
index 0000000000..6ccf56222c
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/class-llms-blocks-visibility.php
@@ -0,0 +1,266 @@
+ array(
+ 'default' => 'all',
+ 'type' => 'string',
+ ),
+ 'llms_visibility_in' => array(
+ 'default' => '',
+ 'type' => 'string',
+ ),
+ 'llms_visibility_posts' => array(
+ 'default' => '[]',
+ 'type' => 'string',
+ ),
+ );
+ }
+
+ /**
+ * Get the number of enrollments for a user by post type.
+ *
+ * @since 1.0.0
+ *
+ * @param int $uid WP_User ID.
+ * @param string $type Post type.
+ * @return int
+ */
+ private function get_enrollment_count_by_type( $uid, $type ) {
+
+ $found = 0;
+ $student = llms_get_student( $uid );
+
+ $type = str_replace( 'any_', '', $type );
+
+ if ( 'course' === $type || 'membership' === $type ) {
+ $enrollments = $student->get_enrollments( $type, array( 'limit' => 1 ) );
+ $found = $enrollments['found'];
+ } elseif ( 'any' === $type ) {
+ $found = $this->get_enrollment_count_by_type( $uid, 'course' );
+ if ( ! $found ) {
+ $found = $this->get_enrollment_count_by_type( $uid, 'membership' );
+ }
+ }
+
+ return $found;
+
+ }
+
+ /**
+ * Parse post ids from block visibility in attributes.
+ *
+ * @since 1.0.0
+ *
+ * @param array $attrs Block attributes.
+ * @return array
+ */
+ private function get_post_ids_from_block_attributes( $attrs ) {
+
+ $ids = array();
+ if ( 'this' === $attrs['llms_visibility_in'] ) {
+ $ids[] = get_the_ID();
+ } elseif ( ! empty( $attrs['llms_visibility_posts'] ) ) {
+ $ids = wp_list_pluck( json_decode( $attrs['llms_visibility_posts'] ), 'id' );
+ }
+
+ return $ids;
+
+ }
+
+ /**
+ * Filter block output.
+ *
+ * @since 1.0.0
+ * @since 1.6.0 Add logic for `logged_in` and `logged_out` block visibility options.
+ * @since 2.0.0 Added a conditional prior to checking the block's visibility attributes.
+ * @since 2.4.2 Set the `user_login` field block's visibility to its default 'logged_out' if not set.
+ *
+ * @param string $content Block inner content.
+ * @param array $block Block data array.
+ * @return string
+ */
+ public function maybe_filter_block( $content, $block ) {
+
+ // Allow conditionally filtering the block based on external context.
+ if ( ! $this->should_filter_block( $block ) ) {
+ return $content;
+ }
+
+ // Set the `user_login` field block's visibility to its default 'logged_out' if not set.
+ // The WordPress serializer `getCommentAttributes()` function removes the attribute before being
+ // serialized into `post_content` if the attribute can have only one value and it's the default.
+ if ( 'llms/form-field-user-login' === $block['blockName'] && empty( $block['attrs']['llms_visibility'] ) ) {
+ $block['attrs']['llms_visibility'] = 'logged_out';
+ }
+
+ // No attributes or no llms visibility settings (visible to "all").
+ if ( empty( $block['attrs'] ) || empty( $block['attrs']['llms_visibility'] ) ) {
+ return $content;
+ }
+
+ $uid = get_current_user_id();
+
+ // Show only to logged in users.
+ if ( 'logged_in' === $block['attrs']['llms_visibility'] && ! $uid ) {
+
+ $content = '';
+
+ // Show only to logged out users.
+ } elseif ( 'logged_out' === $block['attrs']['llms_visibility'] && $uid ) {
+ $content = '';
+
+ // Enrolled checks.
+ } elseif ( 'enrolled' === $block['attrs']['llms_visibility'] && ! empty( $block['attrs']['llms_visibility_in'] ) ) {
+
+ // Don't have to run any further checks if we don't have a user.
+ if ( ! $uid ) {
+
+ $content = '';
+
+ // Checks for the "any" conditions.
+ } elseif ( in_array( $block['attrs']['llms_visibility_in'], array( 'any', 'any_course', 'any_membership' ), true ) ) {
+
+ $found = $this->get_enrollment_count_by_type( $uid, $block['attrs']['llms_visibility_in'] );
+ if ( ! $found ) {
+ $content = '';
+ }
+
+ // Checks for specifics.
+ } elseif ( in_array( $block['attrs']['llms_visibility_in'], array( 'this', 'list_all', 'list_any' ), true ) ) {
+
+ $relation = 'list_any' === $block['attrs']['llms_visibility_in'] ? 'any' : 'all'; // "this" becomes an "all" relationship
+ if ( ! llms_is_user_enrolled( $uid, $this->get_post_ids_from_block_attributes( $block['attrs'] ), $relation ) ) {
+ $content = '';
+ }
+ }
+
+ // Not-Enrolled checks.
+ } elseif ( 'not_enrolled' === $block['attrs']['llms_visibility'] && ! empty( $block['attrs']['llms_visibility_in'] ) ) {
+
+ // Only need to check logged in users.
+ if ( $uid ) {
+
+ // Checks for the "any" conditions.
+ if ( in_array( $block['attrs']['llms_visibility_in'], array( 'any', 'any_course', 'any_membership' ), true ) ) {
+
+ $found = $this->get_enrollment_count_by_type( $uid, $block['attrs']['llms_visibility_in'] );
+ if ( $found ) {
+ $content = '';
+ }
+
+ // Checks for specifics.
+ } elseif ( in_array( $block['attrs']['llms_visibility_in'], array( 'this', 'list_all', 'list_any' ), true ) ) {
+
+ $relation = 'list_any' === $block['attrs']['llms_visibility_in'] ? 'any' : 'all'; // "this" becomes an "all" relationship
+ if ( llms_is_user_enrolled( $uid, $this->get_post_ids_from_block_attributes( $block['attrs'] ), $relation ) ) {
+ $content = '';
+ }
+ }
+ }
+ }
+
+ /**
+ * Filters a blocks content after it has been run through visibility attribute filters
+ *
+ * @since 1.0.0
+ *
+ * @param string $content The HTML content for a block. May be an empty string if the block should be invisible to the current user.
+ * @param array $block Block data array.
+ */
+ return apply_filters( 'llms_blocks_visibility_render_block', $content, $block );
+
+ }
+
+ /**
+ * Determine whether or not a block's rendering should be modified by block-level visibility settings
+ *
+ * This method does not determine whether or not the block will be rendered, it only determines whether
+ * or not we should check if it should be rendered.
+ *
+ * This method is primarily used to ensure that LifterLMS core dynamic blocks (pricing table, course syllabus, etc...)
+ * are *always* displayed to creators when editing content within the block editor. This parses data from a block-renderer
+ * WP Core API request.
+ *
+ * @since 2.0.0
+ * @since 2.3.1 Don't use deprecated `FILTER_SANITIZE_STRING`.
+ *
+ * @link https://developer.wordpress.org/rest-api/reference/rendered-blocks/
+ *
+ * @param array $block Block data array.
+ * @return boolean If `true`, block filters should be checked, other wise they will be skipped.
+ */
+ private function should_filter_block( $block ) {
+
+ // Always filter unless explicitly told not to.
+ $should_filter = true;
+
+ if ( llms_is_rest() ) {
+
+ $context = llms_filter_input( INPUT_GET, 'context' );
+ $post_id = llms_filter_input( INPUT_GET, 'post_id', FILTER_SANITIZE_NUMBER_INT );
+
+ // Always render blocks when a valid user is requesting the block in the edit context.
+ if ( 'edit' === $context && $post_id && current_user_can( 'edit_post', $post_id ) ) {
+ $should_filter = false;
+ }
+ }
+
+ /**
+ * Filters whether or not a block's rendering should be modified by block-level visibility settings
+ *
+ * This filter does not determine whether or not the block will be rendered, it only determines whether
+ * or not we should check if it should be rendered.
+ *
+ * @since 2.0.0
+ *
+ * @param boolean $should_filter Whether or not to apply visibility filters.
+ * @param array $block Block data array.
+ */
+ return apply_filters( 'llms_blocks_visibility_should_filter_block', $should_filter, $block );
+
+ }
+
+}
+
+return new LLMS_Blocks_Visibility();
diff --git a/libraries/lifterlms-blocks/includes/class-llms-blocks.php b/libraries/lifterlms-blocks/includes/class-llms-blocks.php
new file mode 100644
index 0000000000..beca425dc3
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/class-llms-blocks.php
@@ -0,0 +1,252 @@
+ 'llms-blocks',
+ 'title' => __( 'LifterLMS Blocks', 'lifterlms' ),
+ );
+
+ array_unshift(
+ $categories,
+ array(
+ 'slug' => 'llms-custom-fields',
+ 'title' => __( 'Custom User Information', 'lifterlms' ),
+ )
+ );
+
+ array_unshift(
+ $categories,
+ array(
+ 'slug' => 'llms-user-info-fields',
+ 'title' => __( 'User Information', 'lifterlms' ),
+ )
+ );
+
+ return $categories;
+ }
+
+
+ /**
+ * Print dynamic block information as a JS variable.
+ *
+ * Allows us to ensure we only add visibility attributes to static blocks.
+ * Prevents an issue causing rest api validation issues during attribute validation
+ * because it's impossible to register custom attributes on a block.
+ *
+ * @link https://github.com/gocodebox/lifterlms-blocks/issues/30
+ *
+ * @since 1.5.1
+ * @since 2.0.0 Since WordPress 5.8 blocks are available in widgets and customizer screen too.
+ *
+ * @return void
+ */
+ public function admin_print_scripts() {
+
+ $screen = get_current_screen();
+ if ( ! $screen || ( empty( $screen->is_block_editor ) && 'customize' !== $screen->base ) ) {
+ return;
+ }
+
+ echo '';
+
+ }
+
+ /**
+ * Retrieve a list of dynamic block names registered with WordPress (excluding LifterLMS blocks).
+ *
+ * @since 1.5.1
+ *
+ * @return array
+ */
+ private function get_dynamic_block_names() {
+ $blocks = array();
+ foreach ( get_dynamic_block_names() as $name ) {
+ if ( 0 !== strpos( $name, 'llms/' ) ) {
+ $blocks[] = $name;
+ }
+ }
+ return apply_filters( 'llms_blocks_get_dynamic_block_names', $blocks );
+ }
+
+ /**
+ * Include all files.
+ *
+ * @since 2.0.0
+ * @since 2.3.0 Include php template block file.
+ *
+ * @return void
+ */
+ private function includes() {
+
+ // Functions.
+ require_once LLMS_BLOCKS_PLUGIN_DIR . '/includes/functions-llms-blocks.php';
+
+ // Classes.
+ require_once LLMS_BLOCKS_PLUGIN_DIR . '/includes/class-llms-blocks-assets.php';
+ require_once LLMS_BLOCKS_PLUGIN_DIR . '/includes/class-llms-blocks-abstract-block.php';
+ require_once LLMS_BLOCKS_PLUGIN_DIR . '/includes/class-llms-blocks-migrate.php';
+ require_once LLMS_BLOCKS_PLUGIN_DIR . '/includes/class-llms-blocks-page-builders.php';
+ require_once LLMS_BLOCKS_PLUGIN_DIR . '/includes/class-llms-blocks-post-instructors.php';
+ require_once LLMS_BLOCKS_PLUGIN_DIR . '/includes/class-llms-blocks-post-types.php';
+ require_once LLMS_BLOCKS_PLUGIN_DIR . '/includes/class-llms-blocks-post-visibility.php';
+ require_once LLMS_BLOCKS_PLUGIN_DIR . '/includes/class-llms-blocks-reusable.php';
+ require_once LLMS_BLOCKS_PLUGIN_DIR . '/includes/class-llms-blocks-status-tools.php';
+
+ // Block Visibility Component.
+ require_once LLMS_BLOCKS_PLUGIN_DIR . '/includes/class-llms-blocks-visibility.php';
+
+ // Dynamic Blocks.
+ require_once LLMS_BLOCKS_PLUGIN_DIR . '/includes/blocks/class-llms-blocks-course-information-block.php';
+ require_once LLMS_BLOCKS_PLUGIN_DIR . '/includes/blocks/class-llms-blocks-course-syllabus-block.php';
+ require_once LLMS_BLOCKS_PLUGIN_DIR . '/includes/blocks/class-llms-blocks-course-progress-block.php';
+ require_once LLMS_BLOCKS_PLUGIN_DIR . '/includes/blocks/class-llms-blocks-instructors-block.php';
+ require_once LLMS_BLOCKS_PLUGIN_DIR . '/includes/blocks/class-llms-blocks-lesson-navigation-block.php';
+ require_once LLMS_BLOCKS_PLUGIN_DIR . '/includes/blocks/class-llms-blocks-lesson-progression-block.php';
+ require_once LLMS_BLOCKS_PLUGIN_DIR . '/includes/blocks/class-llms-blocks-pricing-table-block.php';
+ require_once LLMS_BLOCKS_PLUGIN_DIR . '/includes/blocks/class-llms-blocks-php-template-block.php';
+
+ }
+
+ /**
+ * Register all blocks & components.
+ *
+ * @since 1.0.0
+ * @since 1.4.0 Add status tools class.
+ * @since 1.9.0 Added course progress block class.
+ * @since 2.0.0 Return early if LifterLMS isn't installed, move file inclusion to `$this->includes()`,
+ * and moved actions and filters from the constructor.
+ * @since 2.2.1 Handle '-src' in WordPress version numbers.
+ *
+ * @return void
+ */
+ public function init() {
+
+ if ( ! function_exists( 'llms' ) || ! version_compare( '5.0.0-rc.2', llms()->version, '<=' ) ) {
+ return;
+ }
+
+ $this->includes();
+
+ add_action( 'add_meta_boxes', array( $this, 'remove_metaboxes' ), 999, 2 );
+
+ global $wp_version;
+ $filter = version_compare( $wp_version, '5.8-src', '>=' ) ? 'block_categories_all' : 'block_categories';
+
+ add_filter( $filter, array( $this, 'add_block_category' ) );
+ add_action( 'admin_print_scripts', array( $this, 'admin_print_scripts' ), 15 );
+
+ /**
+ * When loaded as a library included by the LifterLMS core localization is handled by the LifterLMS core.
+ *
+ * When the plugin is loaded by itself as a plugin, we must localize it independently.
+ */
+ if ( ! defined( 'LLMS_BLOCKS_LIB' ) || ! LLMS_BLOCKS_LIB ) {
+ add_action( 'init', array( $this, 'load_textdomain' ), 0 );
+ }
+
+ }
+
+ /**
+ * Load l10n files.
+ *
+ * This method is only used when the plugin is loaded as a standalone plugin (for development purposes),
+ * otherwise (when loaded as a library from within the LifterLMS core plugin) the localization
+ * strings are included into the LifterLMS Core plugin's po/mo files and are localized by the LifterLMS
+ * core plugin.
+ *
+ * Files can be found in the following order (The first loaded file takes priority):
+ * 1. WP_LANG_DIR/lifterlms/lifterlms-blocks-LOCALE.mo
+ * 2. WP_LANG_DIR/plugins/lifterlms-blocks-LOCALE.mo
+ * 3. WP_CONTENT_DIR/plugins/lifterlms-blocks/i18n/lifterlms-blocks-LOCALE.mo
+ *
+ * Note: The function `load_plugin_textdomain()` is not used because the same textdomain as the LifterLMS core
+ * is used for this plugin but the file is named `lifterlms-blocks` in order to allow using a separate language
+ * file for each codebase.
+ *
+ * @since 1.10.0
+ *
+ * @return void
+ */
+ public function load_textdomain() {
+
+ // load locale.
+ $locale = apply_filters( 'plugin_locale', get_locale(), 'lifterlms' );
+
+ // Load from the LifterLMS "safe" directory if it exists.
+ load_textdomain( 'lifterlms', WP_LANG_DIR . '/lifterlms/lifterlms-blocks-' . $locale . '.mo' );
+
+ // Load from the default plugins language file directory.
+ load_textdomain( 'lifterlms', WP_LANG_DIR . '/plugins/lifterlms-blocks-' . $locale . '.mo' );
+
+ // Load from the plugin's language file directory.
+ load_textdomain( 'lifterlms', LLMS_BLOCKS_PLUGIN_DIR . '/i18n/lifterlms-blocks-' . $locale . '.mo' );
+
+ }
+
+ /**
+ * Remove deprecated core metaboxes.
+ *
+ * @since 1.0.0
+ * @since 1.3.0 Updated.
+ *
+ * @param string $post_type WP post type of the current post.
+ * @param string $post WP_Post.
+ * @return void
+ */
+ public function remove_metaboxes( $post_type, $post ) {
+
+ if ( ! llms_blocks_is_classic_enabled_for_post( $post ) ) {
+
+ remove_meta_box( 'llms-instructors', 'course', 'normal' );
+ remove_meta_box( 'llms-instructors', 'llms_membership', 'normal' );
+
+ }
+
+ }
+
+}
+
+return new LLMS_Blocks();
diff --git a/libraries/lifterlms-blocks/includes/functions-llms-blocks.php b/libraries/lifterlms-blocks/includes/functions-llms-blocks.php
new file mode 100644
index 0000000000..9102605455
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/functions-llms-blocks.php
@@ -0,0 +1,75 @@
+ID, 'classic-editor-remember', true ) );
+ }
+
+ // Uses same editor for all posts.
+ } else {
+
+ $ret = ( 'classic' === get_option( 'classic-editor-replace', 'classic' ) );
+
+ }
+ }
+
+ return apply_filters( 'llms_blocks_is_classic_enabled_for_post', $ret, $post );
+
+}
+
+/**
+ * Determine if a post is migrated
+ *
+ * @param mixed $post WP_Post or WP_Post ID.
+ * @return boolean
+ * @since 1.3.1
+ * @version 1.3.1
+ */
+function llms_blocks_is_post_migrated( $post ) {
+
+ $post_id = null;
+ $ret = false;
+
+ $post = get_post( $post );
+ if ( $post ) {
+
+ $post_id = $post->ID;
+
+ // Classic editor is being used for this post.
+ if ( llms_blocks_is_classic_enabled_for_post( $post_id ) ) {
+ $ret = false;
+ } else {
+ $ret = llms_parse_bool( get_post_meta( $post_id, '_llms_blocks_migrated', true ) );
+ }
+ }
+
+ return apply_filters( 'llms_blocks_is_post_migrated', $ret, $post_id );
+
+}
diff --git a/libraries/lifterlms-blocks/includes/index.php b/libraries/lifterlms-blocks/includes/index.php
new file mode 100644
index 0000000000..82e2315c6b
--- /dev/null
+++ b/libraries/lifterlms-blocks/includes/index.php
@@ -0,0 +1,2 @@
+chaining = true;
+ $this->$command( $args, $assoc_args );
+ $this->chaining = false;
+ }
+
+ /**
+ * Retrieve an LLMS_Add_On object for a given add-on by it's slug.
+ *
+ * @since 0.0.1
+ *
+ * @param string $slug An add-on slug. Must be prefixed.
+ * @param bool|WP_Error|string $err If truthy, will return `null` and use log to the console using a WP_CLI method as defined by $err_type.
+ * Pass `true` to output a default error message.
+ * Pass a WP_Error object or string to use as the error.
+ * @param string $err_type Method to pass `$err` to when an error is encountered. Default `\WP_CLI::error()`.
+ * Use `\WP_CLI::warning()` or `\WP_CLI::log()` where appropriate.
+ * @return LLMS_Add_On|boolean|null Returns an add-on object if the add-on can be located or `false` if not found.
+ * Returns `null` when an error is encountered and `$err` is a truthy.
+ */
+ protected function get_addon( $slug, $err = false, $err_type = 'error' ) {
+
+ $addon = llms_get_add_on( $this->prefix_slug( $slug ), 'slug' );
+ $exists = ! empty( $addon->get( 'id' ) );
+
+ if ( ! $exists && $err ) {
+ $err = is_bool( $err ) ? sprintf( 'Invalid slug: %s.', $slug ) : $err;
+ return \WP_CLI::$err_type( $err );
+ }
+
+ return ! $exists ? false : $addon;
+ }
+
+ /**
+ * Prefix an add-on slug with `lifterlms-` if it's not already present.
+ *
+ * @since 0.0.1
+ *
+ * @param string $slug Add-on slug.
+ * @return string
+ */
+ protected function prefix_slug( $slug ) {
+ if ( 0 !== strpos( $slug, 'lifterlms-' ) ) {
+ $slug = "lifterlms-{$slug}";
+ }
+ return $slug;
+ }
+
+}
diff --git a/libraries/lifterlms-cli/src/Commands/AddOn/Activate.php b/libraries/lifterlms-cli/src/Commands/AddOn/Activate.php
new file mode 100644
index 0000000000..a7973ba0dc
--- /dev/null
+++ b/libraries/lifterlms-cli/src/Commands/AddOn/Activate.php
@@ -0,0 +1,101 @@
+...]
+ * : The slug of one or more LifterLMS add-on to install.
+ *
+ * [--all]
+ * : If set, all of the LifterLMS add-ons installed on the site will be activated.
+ *
+ * ## EXAMPLES
+ *
+ * # Activate the LifterLMS Groups add-on.
+ * $ wp llms addon activate lifterlms-groups
+ *
+ * # Activate an add-on without using the `lifterlms-` prefix.
+ * $ wp llms addon activate advanced-videos
+ *
+ * # Activate multiple LifterLMS add-ons.
+ * $ wp llms addon activate lifterlms-groups lifterlms-assignments lifterlms-pdfs
+ *
+ * # Activate all installed LifterLMS add-ons.
+ * $ wp llms addon activate --all
+ *
+ * @since 0.0.1
+ *
+ * @param array $args Indexed array of positional command arguments.
+ * @param array $assoc_args Associative array of command options.
+ * @return null
+ */
+ public function activate( $args, $assoc_args ) {
+
+ if ( ! empty( $assoc_args['all'] ) ) {
+ $args = $this->get_available_addons( 'inactive', false );
+ if ( empty( $args ) ) {
+ return \WP_CLI::warning( 'No add-ons to activate.' );
+ }
+ }
+
+ $results = $this->loop( $args, $assoc_args, 'activate_one' );
+ if ( ! $this->chaining ) {
+ \WP_CLI\Utils\report_batch_operation_results( 'add-on', 'activate', count( $args ), $results['successes'], $results['errors'] );
+ }
+
+ }
+
+ /**
+ * Loop callback function for activate()
+ *
+ * Ensures add-on can be activated and actually activates the add-on.
+ *
+ * @since 0.0.1
+ * @since 0.0.2 Fixed unmerged placeholder in warning message when add-on is not installed.
+ *
+ * @param string $slug Add-on slug.
+ * @param LLMS_Add_On $addon Add-on object.
+ * @param array $assoc_args Associative array of command options.
+ * @return null|true Returns `null` if an error is encountered and `true` on success.
+ */
+ private function activate_one( $slug, $addon, $assoc_args ) {
+
+ if ( $addon->is_active() ) {
+ return \WP_CLI::warning( sprintf( 'Add-on "%s" is already active.', $slug ) );
+ }
+
+ if ( ! $addon->is_installed() ) {
+ return \WP_CLI::warning( sprintf( 'Add-on "%1$s" is not installed. Run \'wp llms addon install %s\' to install it.', $slug ) );
+ }
+
+ $res = $addon->activate();
+ if ( is_wp_error( $res ) ) {
+ return \WP_CLI::warning( $res );
+ }
+
+ \WP_CLI::log( $res );
+
+ return true;
+
+ }
+
+}
diff --git a/libraries/lifterlms-cli/src/Commands/AddOn/ChannelSet.php b/libraries/lifterlms-cli/src/Commands/AddOn/ChannelSet.php
new file mode 100644
index 0000000000..256c6fe07f
--- /dev/null
+++ b/libraries/lifterlms-cli/src/Commands/AddOn/ChannelSet.php
@@ -0,0 +1,61 @@
+
+ * : The slug of the add-on.
+ *
+ * []
+ * : The update channel to subscribe to.
+ * ---
+ * default: 'stable'
+ * options:
+ * - stable
+ * - beta
+ * ---
+ *
+ * ## EXAMPLES
+ *
+ * # Subscribe the Groups add-on to the beta channel.
+ * $ wp llms addon channel-set lifterlms-groups stable
+ *
+ * # Subscribe to the stable channel.
+ * $ wp llms addon channel-set lifterlms-groups stable
+ *
+ * @subcommand channel-set
+ *
+ * @since 0.0.1
+ * @since 0.0.2 Updated success message.
+ *
+ * @param array $args Indexed array of positional command arguments.
+ * @return null
+ */
+ public function channel_set( $args ) {
+
+ $addon = $this->get_addon( $args[0], true );
+ $addon->subscribe_to_channel( $args[1] );
+ return \WP_CLI::success( sprintf( 'Subscribed to the %s channel.', $args[1] ) );
+
+ }
+
+}
diff --git a/libraries/lifterlms-cli/src/Commands/AddOn/Deactivate.php b/libraries/lifterlms-cli/src/Commands/AddOn/Deactivate.php
new file mode 100644
index 0000000000..117e898e4b
--- /dev/null
+++ b/libraries/lifterlms-cli/src/Commands/AddOn/Deactivate.php
@@ -0,0 +1,111 @@
+...]
+ * : The slug of one or more add-on to deactivate.
+ *
+ * [--uninstall]
+ * : Uninstall the add-ons after deactivation.
+ *
+ * [--all]
+ * : If set, all of the plugin add-ons installed on the site will be activated.
+ *
+ * ## EXAMPLES
+ *
+ * # Deactivate the LifterLMS Groups add-on.
+ * $ wp llms addon deactivate lifterlms-groups
+ *
+ * # Deactivate an add-on without using the `lifterlms-` prefix.
+ * $ wp llms addon deactivate advanced-videos
+ *
+ * # Deactivate multiple LifterLMS add-ons.
+ * $ wp llms addon deactivate lifterlms-groups lifterlms-assignments lifterlms-pdfs
+ *
+ * # Deactivate all installed LifterLMS add-ons.
+ * $ wp llms addon deactivate --all
+ *
+ * # Deactivate and uninstall the LifterLMS Groups add-on.
+ * $ wp llms addon deactivate lifterlms-groups --uninstall
+ *
+ * @since 0.0.1
+ * @since 0.0.2 Completion messages use says "deactivate(d)" in favor of "activate(d)".
+ *
+ * @param array $args Indexed array of positional command arguments.
+ * @param array $assoc_args Associative array of command options.
+ * @return null
+ */
+ public function deactivate( $args, $assoc_args ) {
+
+ if ( ! empty( $assoc_args['all'] ) ) {
+ $args = $this->get_available_addons( 'active', false, 'plugin' );
+ if ( empty( $args ) ) {
+ return \WP_CLI::warning( 'No add-ons to deactivate.' );
+ }
+ }
+
+ $results = $this->loop( $args, $assoc_args, 'deactivate_one' );
+ if ( ! $this->chaining ) {
+ \WP_CLI\Utils\report_batch_operation_results( 'add-on', 'deactivate', count( $args ), $results['successes'], $results['errors'] );
+ }
+
+ }
+
+ /**
+ * Loop callback function for deactivate()
+ *
+ * Ensures add-on can be deactivated and actually deactivates (and maybe uninstalls) the add-on.
+ *
+ * @since 0.0.1
+ *
+ * @param string $slug Add-on slug.
+ * @param LLMS_Add_On $addon Add-on object.
+ * @param array $assoc_args Associative array of command options.
+ * @return null|true Returns `null` if an error is encountered and `true` on success.
+ */
+ private function deactivate_one( $slug, $addon, $assoc_args ) {
+
+ if ( ! $addon->is_installed() ) {
+ return \WP_CLI::warning( sprintf( 'Add-on "%1$s" is not installed.', $slug ) );
+ }
+
+ if ( ! $addon->is_active() ) {
+ return \WP_CLI::warning( sprintf( 'Add-on "%s" is already deactivated.', $slug ) );
+ }
+
+ $res = $addon->deactivate();
+ if ( is_wp_error( $res ) ) {
+ return \WP_CLI::warning( $res );
+ }
+
+ if ( ! empty( $assoc_args['uninstall'] ) ) {
+ $this->chain_command( 'uninstall', array( $slug ) );
+ }
+
+ \WP_CLI::log( $res );
+
+ return true;
+
+ }
+
+}
diff --git a/libraries/lifterlms-cli/src/Commands/AddOn/Enumerate.php b/libraries/lifterlms-cli/src/Commands/AddOn/Enumerate.php
new file mode 100644
index 0000000000..d98d9eed07
--- /dev/null
+++ b/libraries/lifterlms-cli/src/Commands/AddOn/Enumerate.php
@@ -0,0 +1,127 @@
+=]
+ * : Filter results based on the value of a field.
+ *
+ * [--field=]
+ * : Prints the value of a single field for each add-on.
+ *
+ * [--fields=]
+ * : Limit the output to only the specified fields. Use "all" to display all available fields.
+ *
+ * [--format=]
+ * : Render output in a particular format.
+ * ---
+ * default: table
+ * options:
+ * - table
+ * - csv
+ * - count
+ * - json
+ * - yaml
+ * ---
+ *
+ * ## AVAILABLE FIELDS
+ *
+ * These fields will be displayed by default for each add-on:
+ *
+ * * name
+ * * status
+ * * update
+ * * version
+ *
+ * These fields are optionally available:
+ *
+ * * update_version
+ * * license
+ * * title
+ * * channel
+ * * type
+ * * file
+ *
+ * ## EXAMPLES
+ *
+ * # List all add-ons.
+ * $ wp llms addon list
+ *
+ * # List all add-ons in JSON format.
+ * $ wp llms addon list --format=json
+ *
+ * # List all add-ons by name only.
+ * $ wp llms addon list --field=name
+ *
+ * # List all add-ons with all available fields.
+ * $ wp llms addon list --fields=all
+ *
+ * # List all add-ons with a custom fields list.
+ * $ wp llms addon list --fields=title,status,version
+ *
+ * # List currently activated add-ons.
+ * $ wp llms addon list --status=active
+ *
+ * # List all theme add-ons.
+ * $ wp llms addon list --type=theme
+ *
+ * # List all add-ons with available updates.
+ * $ wp llms addon list --update=available
+ *
+ * # List all add-ons licensed on the site.
+ * $ wp llms addon list --license=active
+ *
+ * @since 0.0.1
+ *
+ * @param array $args Indexed array of positional command arguments.
+ * @param array $assoc_args Associative array of command options.
+ * @return null
+ */
+ public function list( $args, $assoc_args ) {
+
+ $fields = array( 'name', 'status', 'update', 'version' );
+ $all_fields = array_merge( $fields, array( 'update_version', 'license', 'title', 'channel', 'type', 'file' ) );
+
+ // Determine if there's a user filter submitted through`--=`.
+ $filter_field = array_values( array_intersect( $all_fields, array_keys( $assoc_args ) ) );
+
+ $list = $this->get_filtered_items( $assoc_args, ! empty( $filter_field ) ? $filter_field[0] : '' );
+
+ if ( ! empty( $assoc_args['fields'] ) && 'all' === $assoc_args['fields'] ) {
+ $assoc_args['fields'] = $all_fields;
+ }
+
+ $formatter = new Formatter( $assoc_args, $fields );
+ return $formatter->display_items( $list );
+
+ }
+
+}
diff --git a/libraries/lifterlms-cli/src/Commands/AddOn/Get.php b/libraries/lifterlms-cli/src/Commands/AddOn/Get.php
new file mode 100644
index 0000000000..0ea53099ee
--- /dev/null
+++ b/libraries/lifterlms-cli/src/Commands/AddOn/Get.php
@@ -0,0 +1,120 @@
+
+ * : The slug of the add-on to get information about.
+ *
+ * ## OPTIONS
+ *
+ * [--field=]
+ * : Retrieve a single piece of information about the add-on.
+ *
+ * [--fields=]
+ * : Limit the output to only the specified fields. Use "all" to display all available fields.
+ *
+ * [--format=]
+ * : Render output in a particular format.
+ * ---
+ * default: table
+ * options:
+ * - table
+ * - csv
+ * - json
+ * - yaml
+ * ---
+ *
+ * ## AVAILABLE FIELDS
+ *
+ * These fields will be displayed by default for each add-on:
+ *
+ * * name
+ * * title
+ * * version
+ * * description
+ * * status
+ *
+ * These fields are optionally available:
+ *
+ * * update
+ * * update_version
+ * * license
+ * * title
+ * * channel
+ * * type
+ * * file
+ * * permalink
+ * * changelog
+ * * documentation
+ *
+ * @since 0.0.1
+ *
+ * @param array $args Indexed array of positional command arguments.
+ * @param array $assoc_args Associative array of command options.
+ * @return null
+ */
+ public function get( $args, $assoc_args ) {
+
+ $addon = $this->get_addon( $args[0], true );
+ $fields = array( 'name', 'title', 'version', 'description', 'status' );
+ $all_fields = array_merge( $fields, array( 'update', 'update_version', 'license', 'title', 'channel', 'type', 'file', 'permalink', 'changelog', 'documentation' ) );
+
+ if ( ! empty( $assoc_args['fields'] ) ) {
+ $assoc_args['fields'] = 'all' === $assoc_args['fields'] ? $all_fields : $assoc_args['fields'];
+ } else {
+ $assoc_args['fields'] = $fields;
+ }
+
+ // Get formatted item.
+ $item = $this->format_item( $addon );
+
+ // Put the keys in the order defined by input args.
+ $item = array_merge( array_flip( $assoc_args['fields'] ), $item );
+
+ // Pass the item as an array and all fields for proper formatting when --field= is passed.
+ $list = array( $item );
+ $format_fields = $all_fields;
+
+ // Format when displaying multiple fields.
+ if ( empty( $assoc_args['field'] ) ) {
+
+ $list = array();
+ foreach ( $item as $Field => $Value ) { // phpcs:ignore WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase
+ if ( ! in_array( $Field, $assoc_args['fields'], true ) ) { // phpcs:ignore WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase
+ continue;
+ }
+ $list[] = compact( 'Field', 'Value' );
+ }
+ $format_fields = array( 'Field', 'Value' );
+ unset( $assoc_args['fields'] );
+
+ }
+
+ $formatter = new Formatter( $assoc_args, $format_fields );
+ return $formatter->display_items( $list );
+
+ }
+
+}
diff --git a/libraries/lifterlms-cli/src/Commands/AddOn/Install.php b/libraries/lifterlms-cli/src/Commands/AddOn/Install.php
new file mode 100644
index 0000000000..91892b1df0
--- /dev/null
+++ b/libraries/lifterlms-cli/src/Commands/AddOn/Install.php
@@ -0,0 +1,106 @@
+...]
+ * : The slug of one or more add-on to install.
+ *
+ * [--key=]
+ * : If set, will attempt to activate and use the provided license key.
+ *
+ * [--activate]
+ * : If set, the add-on(s) will be activated immediately after install.
+ *
+ * [--all]
+ * : If set, all of the add-ons available to the site will be installed.
+ * All existing license keys stored on the site will be queried for the list of available add-ons.
+ *
+ * [--type=]
+ * : When using '--all', determines the type of add-on to be installed.
+ * ---
+ * default: 'all'
+ * options:
+ * - all
+ * - plugin
+ * - theme
+ * ---
+ *
+ * @since 0.0.1
+ *
+ * @param array $args Indexed array of positional command arguments.
+ * @param array $assoc_args Associative array of command options.
+ * @return null
+ */
+ public function install( $args, $assoc_args ) {
+
+ // If a key is provided, activate it first.
+ if ( ! empty( $assoc_args['key'] ) ) {
+ \WP_CLI::runcommand( "llms license activate {$assoc_args['key']}" );
+ }
+
+ if ( ! empty( $assoc_args['all'] ) ) {
+ $args = $this->get_available_addons( 'uninstalled', true, $assoc_args['type'] );
+ if ( empty( $args ) ) {
+ return \WP_CLI::warning( 'No add-ons to install.' );
+ }
+ }
+
+ $results = $this->loop( $args, $assoc_args, 'install_one' );
+ \WP_CLI\Utils\report_batch_operation_results( 'add-on', 'install', count( $args ), $results['successes'], $results['errors'] );
+
+ }
+
+ /**
+ * Loop callback function for install()
+ *
+ * Ensures add-on can be installed and actually installs (and maybe activates) the add-on.
+ *
+ * @since 0.0.1
+ *
+ * @param string $slug Add-on slug.
+ * @param LLMS_Add_On $addon Add-on object.
+ * @param array $assoc_args Associative array of command options.
+ * @return null|true Returns `null` if an error is encountered and `true` on success.
+ */
+ private function install_one( $slug, $addon, $assoc_args ) {
+
+ if ( $addon->is_installed() ) {
+ return \WP_CLI::warning( sprintf( 'Add-on "%s" is already installed.', $slug ) );
+ }
+
+ \WP_CLI::log( sprintf( 'Installing add-on: %s...', $addon->get( 'title' ) ) );
+ $res = $addon->install();
+ if ( is_wp_error( $res ) ) {
+ return \WP_CLI::warning( $res );
+ }
+
+ \WP_CLI::log( $res );
+ if ( ! empty( $assoc_args['activate'] ) ) {
+ $this->chain_command( 'activate', array( $slug ) );
+ }
+
+ return true;
+
+ }
+
+}
diff --git a/libraries/lifterlms-cli/src/Commands/AddOn/Main.php b/libraries/lifterlms-cli/src/Commands/AddOn/Main.php
new file mode 100644
index 0000000000..b5beab0b95
--- /dev/null
+++ b/libraries/lifterlms-cli/src/Commands/AddOn/Main.php
@@ -0,0 +1,202 @@
+ $addon->get( 'slug' ),
+ 'description' => $addon->get( 'description' ),
+ 'status' => $addon->get_status(),
+ 'license' => str_replace( 'license_', '', $addon->get_license_status() ),
+ 'update' => $addon->has_available_update() ? 'available' : 'none',
+ 'version' => $addon->is_installed() ? $addon->get_installed_version() : 'N/A',
+ 'update_version' => $addon->get( 'version' ),
+ 'title' => $addon->get( 'title' ),
+ 'channel' => $addon->get_channel_subscription(),
+ 'type' => $addon->get( 'type' ),
+ 'file' => $addon->get( 'update_file' ),
+ 'permalink' => $addon->get( 'permalink' ),
+ 'changelog' => $addon->get( 'changelog' ),
+ 'documentation' => $addon->get( 'documentation' ),
+ );
+
+ return $formatted;
+ }
+
+ /**
+ * Retrieve an array of available add-on slugs based on the supplied query criteria.
+ *
+ * This function passes data to `wp llms addon list` with specific filters and returns an associative
+ * array of add-on slugs from that list.
+ *
+ * This is used, mostly, to generate a list of available addons for various commands which provide an `--all` flag/option.
+ *
+ * @since 0.0.1
+ *
+ * @param string $status Add-on status, passed as the `--status` option to `llms addon list`.
+ * @param bool $check_license Whether or not the add-on should be licensed. This is used to determine what is installable / upgradeable.
+ * @param string $type Add-on type. Accepts 'all' (default), 'plugin' or 'theme'.
+ * @return string[] Array of add-on slugs meeting the specified filters.
+ */
+ private function get_available_addons( $status, $check_license, $type = 'all' ) {
+
+ $list = \WP_CLI::runcommand(
+ "llms addon list --format=json --status={$status} --fields=name,license,type",
+ array(
+ 'return' => true,
+ )
+ );
+ $list = array_filter(
+ json_decode( $list, true ),
+ function( $item ) use ( $check_license, $type ) {
+ return ( ( $check_license && 'active' === $item['license'] ) || ! $check_license ) && ( 'all' === $type || $type === $item['type'] );
+ }
+ );
+
+ return wp_list_pluck( $list, 'name' );
+
+ }
+
+ /**
+ * Retrieves an optionally filtered list of add-ons for use in the `list` command.
+ *
+ * @since 0.0.1
+ *
+ * @param array $assoc_args Associative array of command options.
+ * @param string $filter_field The optional name of the field to filter results by.
+ * @return array[] Array of add-on items.
+ */
+ private function get_filtered_items( $assoc_args, $filter_field = '' ) {
+
+ $addons = llms_get_add_ons();
+
+ $list = array_filter(
+ $addons['items'],
+ function( $item ) {
+ return // Skip anything without a slug.
+ ! empty( $item['slug'] ) &&
+ // Skip the LifterLMS core.
+ 'lifterlms' !== $item['slug'] &&
+ // Skip third party add-ons.
+ ! in_array( 'third-party', array_keys( $item['categories'] ), true );
+ }
+ );
+
+ // Format remaining items.
+ $list = array_map( array( $this, 'format_item' ), $list );
+
+ // Filter by field value.
+ if ( $filter_field ) {
+ $field_val = $assoc_args[ $filter_field ];
+ $list = array_filter(
+ $list,
+ function( $item ) use ( $filter_field, $field_val ) {
+ return $item[ $filter_field ] === $field_val;
+ }
+ );
+ }
+
+ // Alpha sort the list by slug.
+ usort(
+ $list,
+ function( $a, $b ) {
+ return strcmp( $a['name'], $b['name'] );
+ }
+ );
+
+ return $list;
+
+ }
+
+ /**
+ * Reusable loop function for handling commands which accept one or more slugs as the commands first argument
+ *
+ * @since 0.0.1
+ *
+ * @param string[] $slugs Array of add-on slugs, with or without the `lifterlms-` prefix.
+ * @param array $assoc_args Associative array of command options from the original command.
+ * @param string $callback Name of the method to use for handling a single add-on for the given command.
+ * The callback should accept three arguments:
+ * + @type string $slug Add-on slug for the current item.
+ * + @type LLMS_Add_On $addon Add-on object for the current item.
+ * + @type array $assoc_args Array of arguments from the initial command.
+ * The callback should return a truthy to signal success and
+ * a falsy to signal an error.
+ * @return array {
+ * Associative arrays containing details on the errors and successes encountered during the loop.
+ *
+ * @type int $errors Number of errors encountered in the loop.
+ * @type int $successes Number of success encountered in the loop.
+ * }
+ */
+ private function loop( $slugs, $assoc_args, $callback ) {
+
+ $successes = 0;
+ $errors = 0;
+
+ foreach ( $slugs as $slug ) {
+
+ if ( empty( $slug ) ) {
+ \WP_CLI::warning( 'Ignoring ambiguous empty slug value.' );
+ continue;
+ }
+
+ $addon = $this->get_addon( $slug, true, 'warning' );
+ if ( empty( $addon ) ) {
+ $errors++;
+ continue;
+ }
+
+ if ( ! $this->$callback( $slug, $addon, $assoc_args ) ) {
+ $errors++;
+ continue;
+ }
+
+ $successes++;
+
+ }
+
+ return compact( 'errors', 'successes' );
+
+ }
+
+}
diff --git a/libraries/lifterlms-cli/src/Commands/AddOn/Uninstall.php b/libraries/lifterlms-cli/src/Commands/AddOn/Uninstall.php
new file mode 100644
index 0000000000..101a92202e
--- /dev/null
+++ b/libraries/lifterlms-cli/src/Commands/AddOn/Uninstall.php
@@ -0,0 +1,104 @@
+...]
+ * : The slug of one or more add-on to install.
+ *
+ * [--deactivate]
+ * : If set, the plugin add-on(s) will be deactivated prior to uninstalling. Default behavior is to warn and skip if the plugin is active.
+ * Themes cannot be deactivated, another theme must be activated and then an add-on theme can be uninstalled.
+ *
+ * [--all]
+ * : If set, all of the add-ons available to the site will be uninstalled.
+ *
+ * [--type=]
+ * : When using '--all', determines the type of add-on to be uninstalled.
+ * ---
+ * default: 'all'
+ * options:
+ * - all
+ * - plugin
+ * - theme
+ * ---
+ *
+ * @since 0.0.1
+ *
+ * @param array $args Indexed array of positional command arguments.
+ * @param array $assoc_args Associative array of command options.
+ * @return null
+ */
+ public function uninstall( $args, $assoc_args ) {
+
+ if ( ! empty( $assoc_args['all'] ) ) {
+ $args = $this->get_available_addons( 'inactive', false, $assoc_args['type'] );
+ if ( empty( $args ) ) {
+ return \WP_CLI::warning( 'No add-ons to uninstall.' );
+ }
+ }
+
+ $results = $this->loop( $args, $assoc_args, 'uninstall_one' );
+ if ( ! $this->chaining ) {
+ \WP_CLI\Utils\report_batch_operation_results( 'add-on', 'uninstall', count( $args ), $results['successes'], $results['errors'] );
+ }
+
+ }
+
+ /**
+ * Loop callback function for uninstall()
+ *
+ * Ensures add-on can be uninstalled and actually installs (and maybe deactivates) the add-on.
+ *
+ * @since 0.0.1
+ *
+ * @param string $slug Add-on slug.
+ * @param LLMS_Add_On $addon Add-on object.
+ * @param array $assoc_args Associative array of command options.
+ * @return null|true Returns `null` if an error is encountered and `true` on success.
+ */
+ private function uninstall_one( $slug, $addon, $assoc_args ) {
+
+ if ( ! $addon->is_installed() ) {
+ return \WP_CLI::warning( sprintf( 'Add-on "%s" is not installed.', $slug ) );
+ }
+
+ if ( $addon->is_active() ) {
+ if ( ! empty( $assoc_args['deactivate'] ) ) {
+ $this->chain_command( 'deactivate', array( $slug ) );
+ } else {
+ return \WP_CLI::warning( sprintf( 'Add-on "%s" is active.', $slug ) );
+ }
+ }
+
+ $res = $addon->uninstall();
+ if ( is_wp_error( $res ) ) {
+ return \WP_CLI::warning( $res );
+ }
+
+ \WP_CLI::log( $res );
+
+ return true;
+
+ }
+
+}
diff --git a/libraries/lifterlms-cli/src/Commands/AddOn/Update.php b/libraries/lifterlms-cli/src/Commands/AddOn/Update.php
new file mode 100644
index 0000000000..b179dbdcee
--- /dev/null
+++ b/libraries/lifterlms-cli/src/Commands/AddOn/Update.php
@@ -0,0 +1,165 @@
+...]
+ * : The slug of one or more add-on to update.
+ *
+ * [--exclude]
+ * : A comma-separated list of add-on slugs which should be excluded from updating.
+ *
+ * [--all]
+ * : If set, all of the add-ons available to the site will be uninstalled.
+ *
+ * [--type=]
+ * : When using '--all', determines the type of add-on to be uninstalled.
+ * ---
+ * default: 'all'
+ * options:
+ * - all
+ * - plugin
+ * - theme
+ * ---
+ *
+ * [--format=]
+ * : Render output in a particular format.
+ * ---
+ * default: table
+ * options:
+ * - table
+ * - csv
+ * - json
+ * - yaml
+ * ---
+ *
+ * [--dry-run]
+ * : Preview which plugins would be updated.
+ *
+ * @since 0.0.1
+ *
+ * @param array $include List of add-on slugs to be updated.
+ * @param array $assoc_args Associative array of command options.
+ * @return null
+ */
+ public function update( $include, $assoc_args ) {
+
+ $include = array_map( array( $this, 'prefix_slug' ), $include );
+
+ $fields = array( 'name', 'status', 'version', 'update_version' );
+
+ $exclude = ! empty( $assoc_args['exclude'] ) ? array_map( array( $this, 'prefix_slug' ), explode( ',', $assoc_args['exclude'] ) ) : array();
+
+ // Retrieve all available updates and we'll filter it down.
+ $list = \WP_CLI::runcommand(
+ "llms addon list --format=json {$fieldopt}--update=available --fields=name,status,version,update_version",
+ array(
+ 'return' => true,
+ )
+ );
+ $list = array_filter(
+ json_decode( $list, true ),
+ function( $item ) use ( $include, $exclude ) {
+ // Add-on is active and an update is available.
+ return // Add-on is installed.
+ in_array( $item['status'], array( 'active', 'inactive' ), true ) &&
+ // Not excluded.
+ ! in_array( $item['name'], $exclude, true ) &&
+ // No add-ons specified or the add-on is in the specified list.
+ ( empty( $include ) || in_array( $item['name'], $include, true ) );
+ }
+ );
+
+ // WP-CLI `wp plugin update` shows a string when displaying table and no output for other formats.
+ if ( empty( $list ) ) {
+ if ( 'table' === $assoc_args['format'] ) {
+ return \WP_CLI::log( 'No add-on updates available.' );
+ }
+ return;
+ }
+
+ /**
+ * The WP Core upgrader pulls information from the site transient.
+ * If the update check cron or a manual visit to an update screen on the admin panel
+ * hasn't recently occurred the transient won't be set and we'll know there's an update
+ * but the transient will not and the upgrader won't be able to upgrade.
+ *
+ * So we'll force a redundant check to take place here to ensure that we can upgrade.
+ */
+ wp_update_plugins();
+ wp_update_themes();
+
+ if ( empty( $assoc_args['dry-run'] ) ) {
+
+ $fields = array( 'name', 'status', 'old_version', 'new_version' );
+
+ $errors = 0;
+ $successes = 0;
+ foreach ( $list as &$item ) {
+
+ if ( $this->update_one( $item ) ) {
+ $successes++;
+ } else {
+ $errors++;
+ }
+ }
+
+ \WP_CLI\Utils\report_batch_operation_results( 'add-on', 'update', count( $list ), $successes, $errors );
+
+ }
+
+ $formatter = new Formatter( $assoc_args, $fields );
+ return $formatter->display_items( $list );
+
+ }
+
+
+ /**
+ * Update a single add-on
+ *
+ * @since 0.0.1
+ *
+ * @param array $item Associative array of add-on data.
+ * @return boolean Returns `false` when an error is encountered and `true` otherwise.
+ */
+ private function update_one( &$item ) {
+
+ $addon = $this->get_addon( $item['name'] );
+
+ \WP_CLI::log( sprintf( 'Updating add-on: %s...', $addon->get( 'title' ) ) );
+ $res = $addon->update();
+ if ( is_wp_error( $res ) ) {
+ \WP_CLI::warning( $res );
+ return false;
+ }
+
+ $item['old_version'] = $item['version'];
+ $item['new_version'] = $item['update_version'];
+
+ \WP_CLI::log( $res );
+ return true;
+
+ }
+
+}
diff --git a/libraries/lifterlms-cli/src/Commands/License.php b/libraries/lifterlms-cli/src/Commands/License.php
new file mode 100644
index 0000000000..650ec36dc9
--- /dev/null
+++ b/libraries/lifterlms-cli/src/Commands/License.php
@@ -0,0 +1,105 @@
+]
+ * : The license key to be activated.
+ *
+ * @since 0.0.1
+ *
+ * @param array $args Indexed array of positional command arguments.
+ * @return null
+ */
+ public function activate( $args ) {
+
+ $res = \LLMS_Helper_Keys::activate_keys( $args[0] );
+ if ( ! empty( $res['data']['errors'] ) ) {
+ return \WP_CLI::error( $res['data']['errors'][0] );
+ } elseif ( ! empty( $res['data']['activations'] ) ) {
+ \LLMS_Helper_Keys::add_license_key( $res['data']['activations'][0] );
+ return \WP_CLI::success( sprintf( 'License key "%s" has been activated on this site.', $args[0] ) );
+ }
+
+ return \WP_CLI::error( 'An unknown error was encountered.' );
+
+ }
+
+ /**
+ * Deactivate a license key.
+ *
+ * ## OPTIONS
+ *
+ * []
+ * : The license key to be deactivated.
+ *
+ * @since 0.0.1
+ * @since 0.0.2 Use a strict comparison when checking response status.
+ *
+ * @param array $args Indexed array of positional command arguments.
+ * @return null
+ */
+ public function deactivate( $args ) {
+
+ $res = \LLMS_Helper_Keys::deactivate_keys( array( $args[0] ) );
+ if ( ! empty( $res['data']['errors'] ) ) {
+ return \WP_CLI::error( $res['data']['errors'][0] );
+ } elseif ( ! empty( $res['data']['deactivations'] ) ) {
+ \LLMS_Helper_Keys::remove_license_key( $args[0] );
+ return \WP_CLI::success( sprintf( 'License key "%s" has been deactivated from this site.', $args[0] ) );
+ } elseif ( ! empty( $res['data']['status'] ) && 200 === absint( $res['data']['status'] ) ) {
+ return \WP_CLI::error( sprintf( 'License key "%s" was not active on this site.', $args[0] ) );
+ }
+
+ return \WP_CLI::error( 'An unknown error was encountered.' );
+
+ }
+
+ /**
+ * List activated license keys.
+ *
+ * ## OPTIONS
+ *
+ * []
+ * : The license key to be deactivated.
+ *
+ * @since 0.0.1
+ *
+ * @return null
+ */
+ public function list() {
+
+ $list = array_keys( llms_helper_options()->get_license_keys() );
+
+ if ( 0 === count( $list ) ) {
+ return \WP_CLI::warning( 'No license keys found on this site.' );
+ }
+
+ foreach ( $list as $key ) {
+ \WP_CLI::log( $key );
+ }
+
+ }
+
+}
diff --git a/libraries/lifterlms-cli/src/Commands/Restful/Command.php b/libraries/lifterlms-cli/src/Commands/Restful/Command.php
new file mode 100644
index 0000000000..7204a6d949
--- /dev/null
+++ b/libraries/lifterlms-cli/src/Commands/Restful/Command.php
@@ -0,0 +1,670 @@
+name = $name;
+ $parsed_args = preg_match_all( '#\([^\)]+\)#', $route, $matches );
+ $this->resource_identifier = ! empty( $matches[0] ) ? array_pop( $matches[0] ) : null;
+ $this->route = rtrim( $route );
+ $this->schema = $schema;
+ }
+
+ /**
+ * Create a new item.
+ *
+ * @subcommand create
+ */
+ public function create_item( $args, $assoc_args ) {
+ list( $status, $body ) = $this->do_request( 'POST', $this->get_base_route(), $assoc_args );
+ if ( \WP_CLI\Utils\get_flag_value( $assoc_args, 'porcelain' ) ) {
+ \WP_CLI::line( $body['id'] );
+ } else {
+ \WP_CLI::success( "Created {$this->name} {$body['id']}." );
+ }
+ }
+
+ /**
+ * Generate some items.
+ *
+ * @subcommand generate
+ */
+ public function generate_items( $args, $assoc_args ) {
+
+ $count = $assoc_args['count'];
+ unset( $assoc_args['count'] );
+ $format = $assoc_args['format'];
+ unset( $assoc_args['format'] );
+
+ $notify = false;
+ if ( 'progress' === $format ) {
+ $notify = \WP_CLI\Utils\make_progress_bar( 'Generating items', $count );
+ }
+
+ for ( $i = 0; $i < $count; $i++ ) {
+
+ list( $status, $body ) = $this->do_request( 'POST', $this->get_base_route(), $assoc_args );
+
+ if ( 'progress' === $format ) {
+ $notify->tick();
+ } elseif ( 'ids' === $format ) {
+ echo $body['id'];
+ if ( $i < $count - 1 ) {
+ echo ' ';
+ }
+ }
+ }
+
+ if ( 'progress' === $format ) {
+ $notify->finish();
+ }
+ }
+
+ /**
+ * Delete an existing item.
+ *
+ * @subcommand delete
+ */
+ public function delete_item( $args, $assoc_args ) {
+ list( $status, $body ) = $this->do_request( 'DELETE', $this->get_filled_route( $args ), $assoc_args );
+ $id = isset( $body['previous'] ) ? $body['previous']['id'] : $body['id'];
+ if ( \WP_CLI\Utils\get_flag_value( $assoc_args, 'porcelain' ) ) {
+ \WP_CLI::line( $id );
+ } else {
+ if ( empty( $assoc_args['force'] ) ) {
+ \WP_CLI::success( "Trashed {$this->name} {$id}." );
+ } else {
+ \WP_CLI::success( "Deleted {$this->name} {$id}." );
+ }
+ }
+ }
+
+ /**
+ * Get a single item.
+ *
+ * @subcommand get
+ */
+ public function get_item( $args, $assoc_args ) {
+ list( $status, $body, $headers ) = $this->do_request( 'GET', $this->get_filled_route( $args ), $assoc_args );
+
+ if ( ! empty( $assoc_args['fields'] ) ) {
+ $body = self::limit_item_to_fields( $body, $fields );
+ }
+
+ if ( 'headers' === $assoc_args['format'] ) {
+ echo json_encode( $headers );
+ } elseif ( 'body' === $assoc_args['format'] ) {
+ echo json_encode( $body );
+ } elseif ( 'envelope' === $assoc_args['format'] ) {
+ echo json_encode(
+ array(
+ 'body' => $body,
+ 'headers' => $headers,
+ 'status' => $status,
+ 'api_url' => $this->api_url,
+ )
+ );
+ } else {
+ $formatter = $this->get_formatter( $assoc_args );
+ $formatter->display_item( $body );
+ }
+ }
+
+ /**
+ * List all items.
+ *
+ * @subcommand list
+ */
+ public function list_items( $args, $assoc_args ) {
+ if ( ! empty( $assoc_args['format'] ) && 'count' === $assoc_args['format'] ) {
+ $method = 'HEAD';
+ } else {
+ $method = 'GET';
+ }
+ list( $status, $body, $headers ) = $this->do_request( $method, $this->get_base_route(), $assoc_args );
+ if ( ! empty( $assoc_args['format'] ) && 'ids' === $assoc_args['format'] ) {
+ $items = array_column( $body, 'id' );
+ } else {
+ $items = $body;
+ }
+
+ if ( ! empty( $assoc_args['fields'] ) ) {
+ foreach ( $items as $key => $item ) {
+ $items[ $key ] = self::limit_item_to_fields( $item, $fields );
+ }
+ }
+
+ if ( ! empty( $assoc_args['format'] ) && 'count' === $assoc_args['format'] ) {
+ echo (int) $headers['X-WP-Total'];
+ } elseif ( 'headers' === $assoc_args['format'] ) {
+ echo json_encode( $headers );
+ } elseif ( 'body' === $assoc_args['format'] ) {
+ echo json_encode( $body );
+ } elseif ( 'envelope' === $assoc_args['format'] ) {
+ echo json_encode(
+ array(
+ 'body' => $body,
+ 'headers' => $headers,
+ 'status' => $status,
+ 'api_url' => $this->api_url,
+ )
+ );
+ } else {
+ $formatter = $this->get_formatter( $assoc_args );
+ $formatter->display_items( $items );
+ }
+ }
+
+ /**
+ * Compare items between environments.
+ *
+ *
+ * : Alias for the WordPress site to compare to.
+ *
+ * []
+ * : Limit comparison to a specific resource, instead of the collection.
+ *
+ * [--fields=]
+ * : Limit comparison to specific fields.
+ *
+ * @subcommand diff
+ */
+ public function diff_items( $args, $assoc_args ) {
+
+ list( $alias ) = $args;
+ if ( ! array_key_exists( $alias, \WP_CLI::get_runner()->aliases ) ) {
+ \WP_CLI::error( "Alias '{$alias}' not found." );
+ }
+ $resource = isset( $args[1] ) ? $args[1] : null;
+ $fields = \WP_CLI\Utils\get_flag_value( $assoc_args, 'fields', null );
+
+ list( $from_status, $from_body, $from_headers ) = $this->do_request( 'GET', $this->get_base_route(), array() );
+
+ $php_bin = \WP_CLI::get_php_binary();
+ $script_path = $GLOBALS['argv'][0];
+ $other_args = implode( ' ', array_map( 'escapeshellarg', array( $alias, 'rest', $this->name, 'list' ) ) );
+ $other_assoc_args = \WP_CLI\Utils\assoc_args_to_str( array( 'format' => 'envelope' ) );
+ $full_command = "{$php_bin} {$script_path} {$other_args} {$other_assoc_args}";
+ $process = \WP_CLI\Process::create(
+ $full_command,
+ null,
+ array(
+ 'HOME' => getenv( 'HOME' ),
+ 'WP_CLI_PACKAGES_DIR' => getenv( 'WP_CLI_PACKAGES_DIR' ),
+ 'WP_CLI_CONFIG_PATH' => getenv( 'WP_CLI_CONFIG_PATH' ),
+ )
+ );
+ $result = $process->run();
+ $response = json_decode( $result->stdout, true );
+ $to_headers = $response['headers'];
+ $to_body = $response['body'];
+ $to_api_url = $response['api_url'];
+
+ if ( ! is_null( $resource ) ) {
+ $field = is_numeric( $resource ) ? 'id' : 'slug';
+ $callback = function( $value ) use ( $field, $resource ) {
+ if ( isset( $value[ $field ] ) && $resource == $value[ $field ] ) {
+ return true;
+ }
+ return false;
+ };
+ foreach ( array( 'to_body', 'from_body' ) as $response_type ) {
+ $$response_type = array_filter( $$response_type, $callback );
+ }
+ }
+
+ $display_items = array();
+ do {
+ $from_item = $to_item = array();
+ if ( ! empty( $from_body ) ) {
+ $from_item = array_shift( $from_body );
+ if ( ! empty( $to_body ) && ! empty( $from_item['slug'] ) ) {
+ foreach ( $to_body as $i => $item ) {
+ if ( ! empty( $item['slug'] ) && $item['slug'] === $from_item['slug'] ) {
+ $to_item = $item;
+ unset( $to_body[ $i ] );
+ break;
+ }
+ }
+ }
+ } elseif ( ! empty( $to_body ) ) {
+ $to_item = array_shift( $to_body );
+ }
+
+ if ( ! empty( $to_item ) ) {
+ foreach ( array( 'to_item', 'from_item' ) as $item ) {
+ if ( isset( $$item['_links'] ) ) {
+ unset( $$item['_links'] );
+ }
+ }
+ $display_items[] = array(
+ 'from' => self::limit_item_to_fields( $from_item, $fields ),
+ 'to' => self::limit_item_to_fields( $to_item, $fields ),
+ );
+ }
+ } while ( count( $from_body ) || count( $to_body ) );
+
+ \WP_CLI::line( \cli\Colors::colorize( "%R(-) {$this->api_url} %G(+) {$to_api_url}%n" ) );
+ foreach ( $display_items as $display_item ) {
+ $this->show_difference(
+ $this->name,
+ array(
+ 'from' => $display_item['from'],
+ 'to' => $display_item['to'],
+ )
+ );
+ }
+ }
+
+ /**
+ * Update an existing item.
+ *
+ * @subcommand update
+ */
+ public function update_item( $args, $assoc_args ) {
+ list( $status, $body ) = $this->do_request( 'POST', $this->get_filled_route( $args ), $assoc_args );
+ if ( \WP_CLI\Utils\get_flag_value( $assoc_args, 'porcelain' ) ) {
+ \WP_CLI::line( $body['id'] );
+ } else {
+ \WP_CLI::success( "Updated {$this->name} {$body['id']}." );
+ }
+ }
+
+ /**
+ * Open an existing item in the editor
+ *
+ * @subcommand edit
+ */
+ public function edit_item( $args, $assoc_args ) {
+ $assoc_args['context'] = 'edit';
+ list( $status, $options_body ) = $this->do_request( 'OPTIONS', $this->get_filled_route( $args ), $assoc_args );
+ if ( empty( $options_body['schema'] ) ) {
+ \WP_CLI::error( 'Cannot edit - no schema found for resource.' );
+ }
+ $schema = $options_body['schema'];
+ list( $status, $resource_fields ) = $this->do_request( 'GET', $this->get_filled_route( $args ), $assoc_args );
+ $editable_fields = array();
+ foreach ( $resource_fields as $key => $value ) {
+ if ( ! isset( $schema['properties'][ $key ] ) || ! empty( $schema['properties'][ $key ]['readonly'] ) ) {
+ continue;
+ }
+ $properties = $schema['properties'][ $key ];
+ if ( isset( $properties['properties'] ) ) {
+ $parent_key = $key;
+ $properties = $properties['properties'];
+ foreach ( $value as $key => $value ) {
+ if ( isset( $properties[ $key ] ) && empty( $properties[ $key ]['readonly'] ) ) {
+ if ( ! isset( $editable_fields[ $parent_key ] ) ) {
+ $editable_fields[ $parent_key ] = array();
+ }
+ $editable_fields[ $parent_key ][ $key ] = $value;
+ }
+ }
+ continue;
+ }
+ if ( empty( $properties['readonly'] ) ) {
+ $editable_fields[ $key ] = $value;
+ }
+ }
+ if ( empty( $editable_fields ) ) {
+ \WP_CLI::error( 'Cannot edit - no editable fields found on schema.' );
+ }
+ $ret = \WP_CLI\Utils\launch_editor_for_input( \Spyc::YAMLDump( $editable_fields ), sprintf( 'Editing %s %s', $schema['title'], $args[0] ) );
+ if ( false === $ret ) {
+ \WP_CLI::warning( 'No edits made.' );
+ } else {
+ list( $status, $body ) = $this->do_request( 'POST', $this->get_filled_route( $args ), \Spyc::YAMLLoadString( $ret ) );
+ \WP_CLI::success( "Updated {$schema['title']} {$args[0]}." );
+ }
+ }
+
+ /**
+ * Do a REST Request
+ *
+ * @param string $method
+ */
+ private function do_request( $method, $route, $assoc_args ) {
+ if ( 'internal' === $this->scope ) {
+ if ( ! defined( 'REST_REQUEST' ) ) {
+ define( 'REST_REQUEST', true );
+ }
+ $request = new \WP_REST_Request( $method, $route );
+ if ( in_array( $method, array( 'POST', 'PUT' ) ) ) {
+ $request->set_body_params( $assoc_args );
+ } else {
+ foreach ( $assoc_args as $key => $value ) {
+ $request->set_param( $key, $value );
+ }
+ }
+ if ( defined( 'SAVEQUERIES' ) && SAVEQUERIES ) {
+ $original_queries = is_array( $GLOBALS['wpdb']->queries ) ? array_keys( $GLOBALS['wpdb']->queries ) : array();
+ }
+ $response = rest_do_request( $request );
+ if ( defined( 'SAVEQUERIES' ) && SAVEQUERIES ) {
+ $performed_queries = array();
+ foreach ( (array) $GLOBALS['wpdb']->queries as $key => $query ) {
+ if ( in_array( $key, $original_queries ) ) {
+ continue;
+ }
+ $performed_queries[] = $query;
+ }
+ usort(
+ $performed_queries,
+ function( $a, $b ) {
+ if ( $a[1] === $b[1] ) {
+ return 0;
+ }
+ return ( $a[1] > $b[1] ) ? -1 : 1;
+ }
+ );
+
+ $query_count = count( $performed_queries );
+ $query_total_time = 0;
+ foreach ( $performed_queries as $query ) {
+ $query_total_time += $query[1];
+ }
+ $slow_query_message = '';
+ if ( $performed_queries && 'rest' === \WP_CLI::get_config( 'debug' ) ) {
+ $slow_query_message .= '. Ordered by slowness, the queries are:' . PHP_EOL;
+ foreach ( $performed_queries as $i => $query ) {
+ $i++;
+ $bits = explode( ', ', $query[2] );
+ $backtrace = implode( ', ', array_slice( $bits, 13 ) );
+ $seconds = round( $query[1], 6 );
+ $slow_query_message .= <<as_error() ) {
+ \WP_CLI::error( $error );
+ }
+ return array( $response->get_status(), $response->get_data(), $response->get_headers() );
+ } elseif ( 'http' === $this->scope ) {
+ $headers = array();
+ if ( ! empty( $this->auth ) && 'basic' === $this->auth['type'] ) {
+ $headers['Authorization'] = 'Basic ' . base64_encode( $this->auth['username'] . ':' . $this->auth['password'] );
+ }
+ if ( 'OPTIONS' === $method ) {
+ $method = 'GET';
+ $assoc_args['_method'] = 'OPTIONS';
+ }
+ $response = \WP_CLI\Utils\http_request( $method, rtrim( $this->api_url, '/' ) . $route, $assoc_args, $headers );
+ $body = json_decode( $response->body, true );
+ if ( $response->status_code >= 400 ) {
+ if ( ! empty( $body['message'] ) ) {
+ \WP_CLI::error( $body['message'] . ' ' . json_encode( array( 'status' => $response->status_code ) ) );
+ } else {
+ switch ( $response->status_code ) {
+ case 404:
+ \WP_CLI::error( "No {$this->name} found." );
+ break;
+ default:
+ \WP_CLI::error( 'Could not complete request.' );
+ break;
+ }
+ }
+ }
+ return array( $response->status_code, json_decode( $response->body, true ), $response->headers->getAll() );
+ }
+ \WP_CLI::error( 'Invalid scope for REST command.' );
+ }
+
+ /**
+ * Get Formatter object based on supplied parameters.
+ *
+ * @param array $assoc_args Parameters passed to command. Determines formatting.
+ * @return \WP_CLI\Formatter
+ */
+ protected function get_formatter( &$assoc_args ) {
+ if ( ! empty( $assoc_args['fields'] ) ) {
+ if ( is_string( $assoc_args['fields'] ) ) {
+ $fields = explode( ',', $assoc_args['fields'] );
+ } else {
+ $fields = $assoc_args['fields'];
+ }
+ } else {
+ if ( ! empty( $assoc_args['context'] ) ) {
+ $fields = $this->get_context_fields( $assoc_args['context'] );
+ } else {
+ $fields = $this->get_context_fields( 'view' );
+ }
+ }
+ return new \WP_CLI\Formatter( $assoc_args, $fields );
+ }
+
+ /**
+ * Get a list of fields present in a given context
+ *
+ * @param string $context
+ * @return array
+ */
+ private function get_context_fields( $context ) {
+ $fields = array();
+ foreach ( $this->schema['properties'] as $key => $args ) {
+ if ( empty( $args['context'] ) || in_array( $context, $args['context'] ) ) {
+ $fields[] = $key;
+ }
+ }
+ return $fields;
+ }
+
+ /**
+ * Get the base route for this resource
+ *
+ * @return string
+ */
+ private function get_base_route() {
+ return substr( $this->route, 0, strlen( $this->route ) - strlen( $this->resource_identifier ) );
+ }
+
+ /**
+ * Fill the route based on provided $args
+ */
+ private function get_filled_route( $args ) {
+ return rtrim( $this->get_base_route(), '/' ) . '/' . $args[0];
+ }
+
+ /**
+ * Visually depict the difference between "dictated" and "current"
+ *
+ * @param array
+ */
+ private function show_difference( $slug, $difference ) {
+ $this->output_nesting_level = 0;
+ $this->nested_line( $slug . ': ' );
+ $this->recursively_show_difference( $difference['to'], $difference['from'] );
+ $this->output_nesting_level = 0;
+ }
+
+ /**
+ * Recursively output the difference between "dictated" and "current"
+ */
+ private function recursively_show_difference( $dictated, $current = null ) {
+
+ $this->output_nesting_level++;
+
+ if ( $this->is_assoc_array( $dictated ) ) {
+
+ foreach ( $dictated as $key => $value ) {
+
+ if ( $this->is_assoc_array( $value ) || is_array( $value ) ) {
+
+ $new_current = isset( $current[ $key ] ) ? $current[ $key ] : null;
+ if ( $new_current ) {
+ $this->nested_line( $key . ': ' );
+ } else {
+ $this->add_line( $key . ': ' );
+ }
+
+ $this->recursively_show_difference( $value, $new_current );
+
+ } elseif ( is_string( $value ) ) {
+
+ $pre = $key . ': ';
+
+ if ( isset( $current[ $key ] ) && $current[ $key ] !== $value ) {
+
+ $this->remove_line( $pre . $current[ $key ] );
+ $this->add_line( $pre . $value );
+
+ } elseif ( ! isset( $current[ $key ] ) ) {
+
+ $this->add_line( $pre . $value );
+
+ }
+ }
+ }
+ } elseif ( is_array( $dictated ) ) {
+
+ foreach ( $dictated as $value ) {
+
+ if ( ! $current
+ || ! in_array( $value, $current ) ) {
+ $this->add_line( '- ' . $value );
+ }
+ }
+ } elseif ( is_string( $value ) ) {
+
+ $pre = $key . ': ';
+
+ if ( isset( $current[ $key ] ) && $current[ $key ] !== $value ) {
+
+ $this->remove_line( $pre . $current[ $key ] );
+ $this->add_line( $pre . $value );
+
+ } elseif ( ! isset( $current[ $key ] ) ) {
+
+ $this->add_line( $pre . $value );
+
+ } else {
+
+ $this->nested_line( $pre );
+
+ }
+ }
+
+ $this->output_nesting_level--;
+
+ }
+
+ /**
+ * Output a line to be added
+ *
+ * @param string
+ */
+ private function add_line( $line ) {
+ $this->nested_line( $line, 'add' );
+ }
+
+ /**
+ * Output a line to be removed
+ *
+ * @param string
+ */
+ private function remove_line( $line ) {
+ $this->nested_line( $line, 'remove' );
+ }
+
+ /**
+ * Output a line that's appropriately nested
+ */
+ private function nested_line( $line, $change = false ) {
+
+ if ( 'add' == $change ) {
+ $color = '%G';
+ $label = '+ ';
+ } elseif ( 'remove' == $change ) {
+ $color = '%R';
+ $label = '- ';
+ } else {
+ $color = false;
+ $label = false;
+ }
+
+ $spaces = ( $this->output_nesting_level * 2 ) + 2;
+ if ( $color && $label ) {
+ $line = \cli\Colors::colorize( "{$color}{$label}" ) . $line . \cli\Colors::colorize( '%n' );
+ $spaces = $spaces - 2;
+ }
+ \WP_CLI::line( str_pad( ' ', $spaces ) . $line );
+ }
+
+ /**
+ * Whether or not this is an associative array
+ *
+ * @param array
+ * @return bool
+ */
+ private function is_assoc_array( $array ) {
+
+ if ( ! is_array( $array ) ) {
+ return false;
+ }
+
+ return array_keys( $array ) !== range( 0, count( $array ) - 1 );
+ }
+
+ /**
+ * Reduce an item to specific fields.
+ *
+ * @param array $item
+ * @param array $fields
+ * @return array
+ */
+ private static function limit_item_to_fields( $item, $fields ) {
+ if ( empty( $fields ) ) {
+ return $item;
+ }
+ if ( is_string( $fields ) ) {
+ $fields = explode( ',', $fields );
+ }
+ foreach ( $item as $i => $field ) {
+ if ( ! in_array( $i, $fields ) ) {
+ unset( $item[ $i ] );
+ }
+ }
+ return $item;
+ }
+
+}
diff --git a/libraries/lifterlms-cli/src/Commands/Restful/Runner.php b/libraries/lifterlms-cli/src/Commands/Restful/Runner.php
new file mode 100644
index 0000000000..a6d2a3f739
--- /dev/null
+++ b/libraries/lifterlms-cli/src/Commands/Restful/Runner.php
@@ -0,0 +1,391 @@
+set_param( 'context', 'help' );
+
+ $response = $wp_rest_server->dispatch( $request );
+ $response_data = $response->get_data();
+ if ( empty( $response_data ) ) {
+ return;
+ }
+
+ foreach ( $response_data['routes'] as $route => $route_data ) {
+
+ // Skip non LifterLMS routes.
+ if ( 0 !== strpos( $route, '/llms/' ) ) {
+ continue;
+ }
+
+ if ( empty( $route_data['schema']['title'] ) ) {
+ \WP_CLI::debug( "No schema title found for {$route}, skipping LifterLMS CLI REST command registration.", 'lifterlms' );
+ continue;
+ }
+
+ $name = $route_data['schema']['title'];
+ $rest_command = new Command( $name, $route, $route_data['schema'] );
+ self::register_route_commands( $rest_command, $route, $route_data );
+
+ }
+
+ }
+
+
+ private static function get_command_root_desc( $resource ) {
+ $resource = str_replace( array( '-', 'students', 'api' ), array( ' ', 'student', 'API' ), $resource );
+ if ( 's' !== substr( $resource, -1 ) ) {
+ $resource .= 's';
+ }
+ return sprintf( 'Manage %s.', $resource );
+ }
+
+ private static function get_command_short_desc( $command, $resource ) {
+
+ $before = '';
+ $after = '';
+
+
+ switch ( $command ) {
+ case 'create':
+ $before = 'Creates a new';
+ break;
+
+ case 'delete':
+ $before = 'Deletes an existing';
+ break;
+
+ case 'diff':
+ $before = 'Compare';
+ $resource = self::pluralize_resource( $resource );
+ $after = 'between environments';
+ break;
+
+ case 'edit':
+ $before = 'Launches system editor to edit the';
+ $after = 'content';
+ break;
+
+ case 'generate':
+ $before = 'Generates some';
+ $resource = self::pluralize_resource( $resource );
+ break;
+
+ case 'get':
+ $before = 'Gets details about a';
+ break;
+
+ case 'list':
+ $before = 'Gets a list of ';
+ $resource = self::pluralize_resource( $resource );
+ break;
+
+ case 'update':
+ $before = 'Updates an existing';
+ break;
+ }
+
+ return trim( implode( ' ', array( $before, $resource, $after ) ) ) . '.';
+ }
+
+ private static function pluralize_resource( $resource ) {
+
+ switch ( $resource ) {
+ default:
+ $resource .= 's';
+ }
+
+ return $resource;
+ }
+
+ private static function get_supported_commands( $route, $route_data ) {
+
+ $supported_commands = array();
+ foreach ( $route_data['endpoints'] as $endpoint ) {
+
+ $parsed_args = preg_match_all( '#\([^\)]+\)#', $route, $matches );
+ $resource_id = ! empty( $matches[0] ) ? array_pop( $matches[0] ) : null;
+ $trimmed_route = rtrim( $route );
+ $is_singular = $resource_id === substr( $trimmed_route, - strlen( $resource_id ) );
+
+ // List a collection
+ if ( array( 'GET' ) == $endpoint['methods']
+ && ! $is_singular ) {
+ $supported_commands['list'] = ! empty( $endpoint['args'] ) ? $endpoint['args'] : array();
+ }
+
+ // Create a specific resource
+ if ( array( 'POST' ) == $endpoint['methods']
+ && ! $is_singular ) {
+ $supported_commands['create'] = ! empty( $endpoint['args'] ) ? $endpoint['args'] : array();
+ }
+
+ // Get a specific resource
+ if ( array( 'GET' ) == $endpoint['methods']
+ && $is_singular ) {
+ $supported_commands['get'] = ! empty( $endpoint['args'] ) ? $endpoint['args'] : array();
+ }
+
+ // Update a specific resource
+ if ( in_array( 'POST', $endpoint['methods'] )
+ && $is_singular ) {
+ $supported_commands['update'] = ! empty( $endpoint['args'] ) ? $endpoint['args'] : array();
+ }
+
+ // Delete a specific resource
+ if ( array( 'DELETE' ) == $endpoint['methods']
+ && $is_singular ) {
+ $supported_commands['delete'] = ! empty( $endpoint['args'] ) ? $endpoint['args'] : array();
+ }
+ }
+
+ return $supported_commands;
+
+ }
+
+ public static function before_invoke_command() {
+
+ /**
+ * If `--user` was passed the user will already be set, otherwise there won't be a user.
+ *
+ * It is "safe" to assume that someone using the CLI has admin access and we'll set the current
+ * user to be the first admin we find in the DB that has the `manage_options` cap.
+ */
+ if ( ! get_current_user_id() ) {
+ $user = \LLMS_Install::get_can_install_user_id();
+ if ( $user ) {
+ wp_set_current_user( $user );
+ }
+ }
+
+ if ( \WP_CLI::get_config( 'debug' ) && ! defined( 'SAVEQUERIES' ) ) {
+ define( 'SAVEQUERIES', true );
+ }
+
+ }
+
+ /**
+ * Register WP-CLI commands for all endpoints on a route
+ *
+ * @param string
+ * @param array $endpoints
+ */
+ private static function register_route_commands( $rest_command, $route, $route_data ) {
+
+ $resource = str_replace( array( 'llms_', '_' ), array( '', '-' ), $route_data['schema']['title'] );
+ $parent = "llms {$resource}";
+
+ $supported_commands = self::get_supported_commands( $route, $route_data );
+ foreach ( $supported_commands as $command => $endpoint_args ) {
+
+ $synopsis = array();
+ if ( in_array( $command, array( 'delete', 'get', 'update' ) ) ) {
+ $synopsis[] = array(
+ 'name' => 'id',
+ 'type' => 'positional',
+ 'description' => 'The id for the resource.',
+ 'optional' => false,
+ );
+ }
+
+ foreach ( $endpoint_args as $name => $args ) {
+ $arg_reg = array(
+ 'name' => $name,
+ 'type' => 'assoc',
+ 'description' => ! empty( $args['description'] ) ? $args['description'] : '',
+ 'optional' => empty( $args['required'] ) ? true : false,
+ );
+ foreach ( array( 'enum', 'default' ) as $key ) {
+ if ( isset( $args[ $key ] ) ) {
+ $new_key = 'enum' === $key ? 'options' : $key;
+ $arg_reg[ $new_key ] = $args[ $key ];
+ }
+ }
+ $synopsis[] = $arg_reg;
+ }
+
+ if ( in_array( $command, array( 'list', 'get' ) ) ) {
+ $synopsis[] = array(
+ 'name' => 'fields',
+ 'type' => 'assoc',
+ 'description' => 'Limit response to specific fields. Defaults to all fields.',
+ 'optional' => true,
+ );
+ $synopsis[] = array(
+ 'name' => 'field',
+ 'type' => 'assoc',
+ 'description' => 'Get the value of an individual field.',
+ 'optional' => true,
+ );
+ $synopsis[] = array(
+ 'name' => 'format',
+ 'type' => 'assoc',
+ 'description' => 'Render response in a particular format.',
+ 'optional' => true,
+ 'default' => 'table',
+ 'options' => array(
+ 'table',
+ 'json',
+ 'csv',
+ 'ids',
+ 'yaml',
+ 'count',
+ 'headers',
+ 'body',
+ 'envelope',
+ ),
+ );
+ }
+
+ if ( in_array( $command, array( 'create', 'update', 'delete' ) ) ) {
+ $synopsis[] = array(
+ 'name' => 'porcelain',
+ 'type' => 'flag',
+ 'description' => 'Output just the id when the operation is successful.',
+ 'optional' => true,
+ );
+ }
+
+ $methods = array(
+ 'list' => 'list_items',
+ 'create' => 'create_item',
+ 'delete' => 'delete_item',
+ 'get' => 'get_item',
+ 'update' => 'update_item',
+ );
+
+ // Add the root command, eg: wp llms course.
+ \WP_CLI::add_command(
+ "{$parent}",
+ $rest_command,
+ array(
+ 'shortdesc' => self::get_command_root_desc( $resource ),
+ )
+ );
+
+ // Register main subcommands, eg: wp llms course create, wp llms course delete, etc...
+ \WP_CLI::add_command(
+ "{$parent} {$command}",
+ array( $rest_command, $methods[ $command ] ),
+ array(
+ 'shortdesc' => self::get_command_short_desc( $command, $resource ),
+ 'synopsis' => $synopsis,
+ 'before_invoke' => array( __CLASS__, 'before_invoke_command' ),
+ )
+ );
+
+ // If listing is supported, add the diff command.
+ if ( 'list' === $command ) {
+ \WP_CLI::add_command(
+ "{$parent} diff",
+ array( $rest_command, 'diff_items' ),
+ array(
+ 'shortdesc' => self::get_command_short_desc( 'diff', $resource ),
+ 'before_invoke' => array( __CLASS__, 'before_invoke_command' ),
+ )
+ );
+ }
+
+ // If creation is supported, add the generate command.
+ if ( 'create' === $command ) {
+ \WP_CLI::add_command(
+ "{$parent} generate",
+ array( $rest_command, 'generate_items' ),
+ array(
+ 'shortdesc' => self::get_command_short_desc( 'generate', $resource ),
+ 'synopsis' => self::get_generate_command_synopsis( $synopsis ),
+ 'before_invoke' => array( __CLASS__, 'before_invoke_command' ),
+ )
+ );
+ }
+
+
+ // If updating and getting is supported, add the edit command.
+ if ( 'update' === $command && array_key_exists( 'get', $supported_commands ) ) {
+ $synopsis = array();
+ $synopsis[] = array(
+ 'name' => 'id',
+ 'type' => 'positional',
+ 'description' => 'The id for the resource.',
+ 'optional' => false,
+ );
+ \WP_CLI::add_command(
+ "{$parent} edit",
+ array( $rest_command, 'edit_item' ),
+ array(
+ 'shortdesc' => self::get_command_short_desc( 'edit', $resource ),
+ 'synopsis' => $synopsis,
+ 'before_invoke' => array( __CLASS__, 'before_invoke_command' ),
+ )
+ );
+ }
+ }
+ }
+
+ private static function get_generate_command_synopsis( $create_synopsis ) {
+
+ $generate_synopsis = array(
+ array(
+ 'name' => 'count',
+ 'type' => 'assoc',
+ 'description' => 'Number of items to generate.',
+ 'optional' => true,
+ 'default' => 10,
+ ),
+ array(
+ 'name' => 'format',
+ 'type' => 'assoc',
+ 'description' => 'Render generation in specific format.',
+ 'optional' => true,
+ 'default' => 'progress',
+ 'options' => array(
+ 'progress',
+ 'ids',
+ ),
+ ),
+ );
+
+ return array_merge( $generate_synopsis, $create_synopsis );
+
+ }
+
+}
diff --git a/libraries/lifterlms-cli/src/Commands/Root.php b/libraries/lifterlms-cli/src/Commands/Root.php
new file mode 100644
index 0000000000..0da54b4a48
--- /dev/null
+++ b/libraries/lifterlms-cli/src/Commands/Root.php
@@ -0,0 +1,83 @@
+]
+ * : The slug of the LifterLMS plugin or theme. Default: lifterlms.
+ *
+ * ## EXAMPLES
+ *
+ * # Show the LifterLMS core plugin version
+ * wp llms version
+ *
+ * # Show the LifterLMS core plugin version
+ * wp llms version core
+ *
+ * # Show an add-on version without the "lifterlms-" prefix.
+ * wp llms version groups
+ *
+ * # Show an add-on version with the "lifterlms-" prefix.
+ * wp llms version lifterlms-assignments
+ *
+ * @since 0.0.1
+ * @since 0.0.2 Remove `--db` option. This will be implemented in a separate command.
+ *
+ * @param array $args Indexed array of positional command arguments.
+ * @param array $assoc_args Associative array of command options.
+ * @return null
+ */
+ public function version( $args, $assoc_args ) {
+
+ $slug = empty( $args[0] ) ? 'core' : $args[0];
+ if ( in_array( $slug, array( 'core', 'lifterlms' ), true ) ) {
+ return \WP_CLI::log( llms()->version );
+ }
+
+ $addon = $this->get_addon( $slug );
+ if ( empty( $addon ) ) {
+ return \WP_CLI::error( 'Invalid slug.' );
+ }
+
+ if ( $addon->is_installed() ) {
+ return \WP_CLI::log( $addon->get_installed_version() );
+ }
+
+ return \WP_CLI::error(
+ sprintf(
+ "The requested add-on is not installed. Run 'wp llms addon install %s.' to install it.",
+ $args[0]
+ )
+ );
+
+ }
+
+}
diff --git a/libraries/lifterlms-cli/src/Main.php b/libraries/lifterlms-cli/src/Main.php
new file mode 100644
index 0000000000..4cd19b55e3
--- /dev/null
+++ b/libraries/lifterlms-cli/src/Main.php
@@ -0,0 +1,140 @@
+version );
+ }
+
+ // Get started (after REST).
+ add_action( 'plugins_loaded', array( $this, 'init' ) );
+
+ }
+
+ /**
+ * Add all LifterLMS CLI commands
+ *
+ * This includes a separate file so that commands can be included on their own
+ * when generating documentation.
+ *
+ * @since 0.0.1
+ *
+ * @return void
+ */
+ public function commands() {
+ require_once LLMS_CLI_PLUGIN_DIR . 'src/commands.php';
+ }
+
+ /**
+ * Register WP_CLI hooks
+ *
+ * Loads all commands and sets up license and addon commands to be aborted
+ * if the LifterLMS Helper is not present.
+ *
+ * @since 0.0.1
+ *
+ * @return void
+ */
+ private function hooks() {
+
+ \WP_CLI::add_hook( 'after_wp_load', array( $this, 'commands' ) );
+
+ // If the Helper doesn't exist abort command addition.
+ if ( ! class_exists( 'LifterLMS_Helper' ) ) {
+ $helper_commands = array(
+ 'license',
+ 'addon install',
+ 'addon uninstall',
+ 'addon activate',
+ 'addon deactivate',
+ 'addon update',
+ );
+ foreach ( $helper_commands as $command ) {
+ \WP_CLI::add_hook(
+ "before_add_command:llms {$command}",
+ function( CommandAddition $command_addition ) {
+ $command_addition->abort( 'The LifterLMS Helper is required to use this command.' );
+ }
+ );
+ }
+ }
+
+ }
+ /**
+ * Include all required files and classes
+ *
+ * @since [version
+ *
+ * @return void
+ */
+ public function init() {
+
+ // Only load if we have the minimum LifterLMS version installed & activated.
+ if ( function_exists( 'llms' ) && version_compare( '5.0.0', llms()->version, '<=' ) ) {
+
+ $this->hooks();
+
+ }
+
+ }
+
+}
diff --git a/libraries/lifterlms-cli/src/commands.php b/libraries/lifterlms-cli/src/commands.php
new file mode 100644
index 0000000000..e97b5f5d89
--- /dev/null
+++ b/libraries/lifterlms-cli/src/commands.php
@@ -0,0 +1,42 @@
+
+ * Jordi Boggiano
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Composer\Autoload;
+
+/**
+ * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
+ *
+ * $loader = new \Composer\Autoload\ClassLoader();
+ *
+ * // register classes with namespaces
+ * $loader->add('Symfony\Component', __DIR__.'/component');
+ * $loader->add('Symfony', __DIR__.'/framework');
+ *
+ * // activate the autoloader
+ * $loader->register();
+ *
+ * // to enable searching the include path (eg. for PEAR packages)
+ * $loader->setUseIncludePath(true);
+ *
+ * In this example, if you try to use a class in the Symfony\Component
+ * namespace or one of its children (Symfony\Component\Console for instance),
+ * the autoloader will first look for the class under the component/
+ * directory, and it will then fallback to the framework/ directory if not
+ * found before giving up.
+ *
+ * This class is loosely based on the Symfony UniversalClassLoader.
+ *
+ * @author Fabien Potencier
+ * @author Jordi Boggiano
+ * @see https://www.php-fig.org/psr/psr-0/
+ * @see https://www.php-fig.org/psr/psr-4/
+ */
+class ClassLoader
+{
+ /** @var ?string */
+ private $vendorDir;
+
+ // PSR-4
+ /**
+ * @var array[]
+ * @psalm-var array>
+ */
+ private $prefixLengthsPsr4 = array();
+ /**
+ * @var array[]
+ * @psalm-var array>
+ */
+ private $prefixDirsPsr4 = array();
+ /**
+ * @var array[]
+ * @psalm-var array
+ */
+ private $fallbackDirsPsr4 = array();
+
+ // PSR-0
+ /**
+ * @var array[]
+ * @psalm-var array>
+ */
+ private $prefixesPsr0 = array();
+ /**
+ * @var array[]
+ * @psalm-var array
+ */
+ private $fallbackDirsPsr0 = array();
+
+ /** @var bool */
+ private $useIncludePath = false;
+
+ /**
+ * @var string[]
+ * @psalm-var array
+ */
+ private $classMap = array();
+
+ /** @var bool */
+ private $classMapAuthoritative = false;
+
+ /**
+ * @var bool[]
+ * @psalm-var array
+ */
+ private $missingClasses = array();
+
+ /** @var ?string */
+ private $apcuPrefix;
+
+ /**
+ * @var self[]
+ */
+ private static $registeredLoaders = array();
+
+ /**
+ * @param ?string $vendorDir
+ */
+ public function __construct($vendorDir = null)
+ {
+ $this->vendorDir = $vendorDir;
+ }
+
+ /**
+ * @return string[]
+ */
+ public function getPrefixes()
+ {
+ if (!empty($this->prefixesPsr0)) {
+ return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
+ }
+
+ return array();
+ }
+
+ /**
+ * @return array[]
+ * @psalm-return array>
+ */
+ public function getPrefixesPsr4()
+ {
+ return $this->prefixDirsPsr4;
+ }
+
+ /**
+ * @return array[]
+ * @psalm-return array
+ */
+ public function getFallbackDirs()
+ {
+ return $this->fallbackDirsPsr0;
+ }
+
+ /**
+ * @return array[]
+ * @psalm-return array
+ */
+ public function getFallbackDirsPsr4()
+ {
+ return $this->fallbackDirsPsr4;
+ }
+
+ /**
+ * @return string[] Array of classname => path
+ * @psalm-var array
+ */
+ public function getClassMap()
+ {
+ return $this->classMap;
+ }
+
+ /**
+ * @param string[] $classMap Class to filename map
+ * @psalm-param array $classMap
+ *
+ * @return void
+ */
+ public function addClassMap(array $classMap)
+ {
+ if ($this->classMap) {
+ $this->classMap = array_merge($this->classMap, $classMap);
+ } else {
+ $this->classMap = $classMap;
+ }
+ }
+
+ /**
+ * Registers a set of PSR-0 directories for a given prefix, either
+ * appending or prepending to the ones previously set for this prefix.
+ *
+ * @param string $prefix The prefix
+ * @param string[]|string $paths The PSR-0 root directories
+ * @param bool $prepend Whether to prepend the directories
+ *
+ * @return void
+ */
+ public function add($prefix, $paths, $prepend = false)
+ {
+ if (!$prefix) {
+ if ($prepend) {
+ $this->fallbackDirsPsr0 = array_merge(
+ (array) $paths,
+ $this->fallbackDirsPsr0
+ );
+ } else {
+ $this->fallbackDirsPsr0 = array_merge(
+ $this->fallbackDirsPsr0,
+ (array) $paths
+ );
+ }
+
+ return;
+ }
+
+ $first = $prefix[0];
+ if (!isset($this->prefixesPsr0[$first][$prefix])) {
+ $this->prefixesPsr0[$first][$prefix] = (array) $paths;
+
+ return;
+ }
+ if ($prepend) {
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
+ (array) $paths,
+ $this->prefixesPsr0[$first][$prefix]
+ );
+ } else {
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
+ $this->prefixesPsr0[$first][$prefix],
+ (array) $paths
+ );
+ }
+ }
+
+ /**
+ * Registers a set of PSR-4 directories for a given namespace, either
+ * appending or prepending to the ones previously set for this namespace.
+ *
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param string[]|string $paths The PSR-4 base directories
+ * @param bool $prepend Whether to prepend the directories
+ *
+ * @throws \InvalidArgumentException
+ *
+ * @return void
+ */
+ public function addPsr4($prefix, $paths, $prepend = false)
+ {
+ if (!$prefix) {
+ // Register directories for the root namespace.
+ if ($prepend) {
+ $this->fallbackDirsPsr4 = array_merge(
+ (array) $paths,
+ $this->fallbackDirsPsr4
+ );
+ } else {
+ $this->fallbackDirsPsr4 = array_merge(
+ $this->fallbackDirsPsr4,
+ (array) $paths
+ );
+ }
+ } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
+ // Register directories for a new namespace.
+ $length = strlen($prefix);
+ if ('\\' !== $prefix[$length - 1]) {
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
+ }
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
+ } elseif ($prepend) {
+ // Prepend directories for an already registered namespace.
+ $this->prefixDirsPsr4[$prefix] = array_merge(
+ (array) $paths,
+ $this->prefixDirsPsr4[$prefix]
+ );
+ } else {
+ // Append directories for an already registered namespace.
+ $this->prefixDirsPsr4[$prefix] = array_merge(
+ $this->prefixDirsPsr4[$prefix],
+ (array) $paths
+ );
+ }
+ }
+
+ /**
+ * Registers a set of PSR-0 directories for a given prefix,
+ * replacing any others previously set for this prefix.
+ *
+ * @param string $prefix The prefix
+ * @param string[]|string $paths The PSR-0 base directories
+ *
+ * @return void
+ */
+ public function set($prefix, $paths)
+ {
+ if (!$prefix) {
+ $this->fallbackDirsPsr0 = (array) $paths;
+ } else {
+ $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
+ }
+ }
+
+ /**
+ * Registers a set of PSR-4 directories for a given namespace,
+ * replacing any others previously set for this namespace.
+ *
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param string[]|string $paths The PSR-4 base directories
+ *
+ * @throws \InvalidArgumentException
+ *
+ * @return void
+ */
+ public function setPsr4($prefix, $paths)
+ {
+ if (!$prefix) {
+ $this->fallbackDirsPsr4 = (array) $paths;
+ } else {
+ $length = strlen($prefix);
+ if ('\\' !== $prefix[$length - 1]) {
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
+ }
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
+ }
+ }
+
+ /**
+ * Turns on searching the include path for class files.
+ *
+ * @param bool $useIncludePath
+ *
+ * @return void
+ */
+ public function setUseIncludePath($useIncludePath)
+ {
+ $this->useIncludePath = $useIncludePath;
+ }
+
+ /**
+ * Can be used to check if the autoloader uses the include path to check
+ * for classes.
+ *
+ * @return bool
+ */
+ public function getUseIncludePath()
+ {
+ return $this->useIncludePath;
+ }
+
+ /**
+ * Turns off searching the prefix and fallback directories for classes
+ * that have not been registered with the class map.
+ *
+ * @param bool $classMapAuthoritative
+ *
+ * @return void
+ */
+ public function setClassMapAuthoritative($classMapAuthoritative)
+ {
+ $this->classMapAuthoritative = $classMapAuthoritative;
+ }
+
+ /**
+ * Should class lookup fail if not found in the current class map?
+ *
+ * @return bool
+ */
+ public function isClassMapAuthoritative()
+ {
+ return $this->classMapAuthoritative;
+ }
+
+ /**
+ * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
+ *
+ * @param string|null $apcuPrefix
+ *
+ * @return void
+ */
+ public function setApcuPrefix($apcuPrefix)
+ {
+ $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
+ }
+
+ /**
+ * The APCu prefix in use, or null if APCu caching is not enabled.
+ *
+ * @return string|null
+ */
+ public function getApcuPrefix()
+ {
+ return $this->apcuPrefix;
+ }
+
+ /**
+ * Registers this instance as an autoloader.
+ *
+ * @param bool $prepend Whether to prepend the autoloader or not
+ *
+ * @return void
+ */
+ public function register($prepend = false)
+ {
+ spl_autoload_register(array($this, 'loadClass'), true, $prepend);
+
+ if (null === $this->vendorDir) {
+ return;
+ }
+
+ if ($prepend) {
+ self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
+ } else {
+ unset(self::$registeredLoaders[$this->vendorDir]);
+ self::$registeredLoaders[$this->vendorDir] = $this;
+ }
+ }
+
+ /**
+ * Unregisters this instance as an autoloader.
+ *
+ * @return void
+ */
+ public function unregister()
+ {
+ spl_autoload_unregister(array($this, 'loadClass'));
+
+ if (null !== $this->vendorDir) {
+ unset(self::$registeredLoaders[$this->vendorDir]);
+ }
+ }
+
+ /**
+ * Loads the given class or interface.
+ *
+ * @param string $class The name of the class
+ * @return true|null True if loaded, null otherwise
+ */
+ public function loadClass($class)
+ {
+ if ($file = $this->findFile($class)) {
+ includeFile($file);
+
+ return true;
+ }
+
+ return null;
+ }
+
+ /**
+ * Finds the path to the file where the class is defined.
+ *
+ * @param string $class The name of the class
+ *
+ * @return string|false The path if found, false otherwise
+ */
+ public function findFile($class)
+ {
+ // class map lookup
+ if (isset($this->classMap[$class])) {
+ return $this->classMap[$class];
+ }
+ if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
+ return false;
+ }
+ if (null !== $this->apcuPrefix) {
+ $file = apcu_fetch($this->apcuPrefix.$class, $hit);
+ if ($hit) {
+ return $file;
+ }
+ }
+
+ $file = $this->findFileWithExtension($class, '.php');
+
+ // Search for Hack files if we are running on HHVM
+ if (false === $file && defined('HHVM_VERSION')) {
+ $file = $this->findFileWithExtension($class, '.hh');
+ }
+
+ if (null !== $this->apcuPrefix) {
+ apcu_add($this->apcuPrefix.$class, $file);
+ }
+
+ if (false === $file) {
+ // Remember that this class does not exist.
+ $this->missingClasses[$class] = true;
+ }
+
+ return $file;
+ }
+
+ /**
+ * Returns the currently registered loaders indexed by their corresponding vendor directories.
+ *
+ * @return self[]
+ */
+ public static function getRegisteredLoaders()
+ {
+ return self::$registeredLoaders;
+ }
+
+ /**
+ * @param string $class
+ * @param string $ext
+ * @return string|false
+ */
+ private function findFileWithExtension($class, $ext)
+ {
+ // PSR-4 lookup
+ $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
+
+ $first = $class[0];
+ if (isset($this->prefixLengthsPsr4[$first])) {
+ $subPath = $class;
+ while (false !== $lastPos = strrpos($subPath, '\\')) {
+ $subPath = substr($subPath, 0, $lastPos);
+ $search = $subPath . '\\';
+ if (isset($this->prefixDirsPsr4[$search])) {
+ $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
+ foreach ($this->prefixDirsPsr4[$search] as $dir) {
+ if (file_exists($file = $dir . $pathEnd)) {
+ return $file;
+ }
+ }
+ }
+ }
+ }
+
+ // PSR-4 fallback dirs
+ foreach ($this->fallbackDirsPsr4 as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
+ return $file;
+ }
+ }
+
+ // PSR-0 lookup
+ if (false !== $pos = strrpos($class, '\\')) {
+ // namespaced class name
+ $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
+ . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
+ } else {
+ // PEAR-like class name
+ $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
+ }
+
+ if (isset($this->prefixesPsr0[$first])) {
+ foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
+ if (0 === strpos($class, $prefix)) {
+ foreach ($dirs as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
+ return $file;
+ }
+ }
+ }
+ }
+ }
+
+ // PSR-0 fallback dirs
+ foreach ($this->fallbackDirsPsr0 as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
+ return $file;
+ }
+ }
+
+ // PSR-0 include paths.
+ if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
+ return $file;
+ }
+
+ return false;
+ }
+}
+
+/**
+ * Scope isolated include.
+ *
+ * Prevents access to $this/self from included files.
+ *
+ * @param string $file
+ * @return void
+ * @private
+ */
+function includeFile($file)
+{
+ include $file;
+}
diff --git a/libraries/lifterlms-cli/vendor/composer/InstalledVersions.php b/libraries/lifterlms-cli/vendor/composer/InstalledVersions.php
new file mode 100644
index 0000000000..d50e0c9fcc
--- /dev/null
+++ b/libraries/lifterlms-cli/vendor/composer/InstalledVersions.php
@@ -0,0 +1,350 @@
+
+ * Jordi Boggiano
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Composer;
+
+use Composer\Autoload\ClassLoader;
+use Composer\Semver\VersionParser;
+
+/**
+ * This class is copied in every Composer installed project and available to all
+ *
+ * See also https://getcomposer.org/doc/07-runtime.md#installed-versions
+ *
+ * To require its presence, you can require `composer-runtime-api ^2.0`
+ */
+class InstalledVersions
+{
+ /**
+ * @var mixed[]|null
+ * @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array}|array{}|null
+ */
+ private static $installed;
+
+ /**
+ * @var bool|null
+ */
+ private static $canGetVendors;
+
+ /**
+ * @var array[]
+ * @psalm-var array}>
+ */
+ private static $installedByVendor = array();
+
+ /**
+ * Returns a list of all package names which are present, either by being installed, replaced or provided
+ *
+ * @return string[]
+ * @psalm-return list
+ */
+ public static function getInstalledPackages()
+ {
+ $packages = array();
+ foreach (self::getInstalled() as $installed) {
+ $packages[] = array_keys($installed['versions']);
+ }
+
+ if (1 === \count($packages)) {
+ return $packages[0];
+ }
+
+ return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
+ }
+
+ /**
+ * Returns a list of all package names with a specific type e.g. 'library'
+ *
+ * @param string $type
+ * @return string[]
+ * @psalm-return list
+ */
+ public static function getInstalledPackagesByType($type)
+ {
+ $packagesByType = array();
+
+ foreach (self::getInstalled() as $installed) {
+ foreach ($installed['versions'] as $name => $package) {
+ if (isset($package['type']) && $package['type'] === $type) {
+ $packagesByType[] = $name;
+ }
+ }
+ }
+
+ return $packagesByType;
+ }
+
+ /**
+ * Checks whether the given package is installed
+ *
+ * This also returns true if the package name is provided or replaced by another package
+ *
+ * @param string $packageName
+ * @param bool $includeDevRequirements
+ * @return bool
+ */
+ public static function isInstalled($packageName, $includeDevRequirements = true)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (isset($installed['versions'][$packageName])) {
+ return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Checks whether the given package satisfies a version constraint
+ *
+ * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
+ *
+ * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
+ *
+ * @param VersionParser $parser Install composer/semver to have access to this class and functionality
+ * @param string $packageName
+ * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
+ * @return bool
+ */
+ public static function satisfies(VersionParser $parser, $packageName, $constraint)
+ {
+ $constraint = $parser->parseConstraints($constraint);
+ $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
+
+ return $provided->matches($constraint);
+ }
+
+ /**
+ * Returns a version constraint representing all the range(s) which are installed for a given package
+ *
+ * It is easier to use this via isInstalled() with the $constraint argument if you need to check
+ * whether a given version of a package is installed, and not just whether it exists
+ *
+ * @param string $packageName
+ * @return string Version constraint usable with composer/semver
+ */
+ public static function getVersionRanges($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ $ranges = array();
+ if (isset($installed['versions'][$packageName]['pretty_version'])) {
+ $ranges[] = $installed['versions'][$packageName]['pretty_version'];
+ }
+ if (array_key_exists('aliases', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
+ }
+ if (array_key_exists('replaced', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
+ }
+ if (array_key_exists('provided', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
+ }
+
+ return implode(' || ', $ranges);
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
+ */
+ public static function getVersion($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['version'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['version'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
+ */
+ public static function getPrettyVersion($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['pretty_version'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['pretty_version'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
+ */
+ public static function getReference($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['reference'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['reference'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
+ */
+ public static function getInstallPath($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @return array
+ * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
+ */
+ public static function getRootPackage()
+ {
+ $installed = self::getInstalled();
+
+ return $installed[0]['root'];
+ }
+
+ /**
+ * Returns the raw installed.php data for custom implementations
+ *
+ * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
+ * @return array[]
+ * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array}
+ */
+ public static function getRawData()
+ {
+ @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
+
+ if (null === self::$installed) {
+ // only require the installed.php file if this file is loaded from its dumped location,
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
+ if (substr(__DIR__, -8, 1) !== 'C') {
+ self::$installed = include __DIR__ . '/installed.php';
+ } else {
+ self::$installed = array();
+ }
+ }
+
+ return self::$installed;
+ }
+
+ /**
+ * Returns the raw data of all installed.php which are currently loaded for custom implementations
+ *
+ * @return array[]
+ * @psalm-return list}>
+ */
+ public static function getAllRawData()
+ {
+ return self::getInstalled();
+ }
+
+ /**
+ * Lets you reload the static array from another file
+ *
+ * This is only useful for complex integrations in which a project needs to use
+ * this class but then also needs to execute another project's autoloader in process,
+ * and wants to ensure both projects have access to their version of installed.php.
+ *
+ * A typical case would be PHPUnit, where it would need to make sure it reads all
+ * the data it needs from this class, then call reload() with
+ * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
+ * the project in which it runs can then also use this class safely, without
+ * interference between PHPUnit's dependencies and the project's dependencies.
+ *
+ * @param array[] $data A vendor/composer/installed.php data set
+ * @return void
+ *
+ * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array} $data
+ */
+ public static function reload($data)
+ {
+ self::$installed = $data;
+ self::$installedByVendor = array();
+ }
+
+ /**
+ * @return array[]
+ * @psalm-return list}>
+ */
+ private static function getInstalled()
+ {
+ if (null === self::$canGetVendors) {
+ self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
+ }
+
+ $installed = array();
+
+ if (self::$canGetVendors) {
+ foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
+ if (isset(self::$installedByVendor[$vendorDir])) {
+ $installed[] = self::$installedByVendor[$vendorDir];
+ } elseif (is_file($vendorDir.'/composer/installed.php')) {
+ $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
+ if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
+ self::$installed = $installed[count($installed) - 1];
+ }
+ }
+ }
+ }
+
+ if (null === self::$installed) {
+ // only require the installed.php file if this file is loaded from its dumped location,
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
+ if (substr(__DIR__, -8, 1) !== 'C') {
+ self::$installed = require __DIR__ . '/installed.php';
+ } else {
+ self::$installed = array();
+ }
+ }
+ $installed[] = self::$installed;
+
+ return $installed;
+ }
+}
diff --git a/libraries/lifterlms-cli/vendor/composer/LICENSE b/libraries/lifterlms-cli/vendor/composer/LICENSE
new file mode 100644
index 0000000000..f27399a042
--- /dev/null
+++ b/libraries/lifterlms-cli/vendor/composer/LICENSE
@@ -0,0 +1,21 @@
+
+Copyright (c) Nils Adermann, Jordi Boggiano
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/libraries/lifterlms-cli/vendor/composer/autoload_classmap.php b/libraries/lifterlms-cli/vendor/composer/autoload_classmap.php
new file mode 100644
index 0000000000..b26f1b13b1
--- /dev/null
+++ b/libraries/lifterlms-cli/vendor/composer/autoload_classmap.php
@@ -0,0 +1,10 @@
+ $vendorDir . '/composer/InstalledVersions.php',
+);
diff --git a/libraries/lifterlms-cli/vendor/composer/autoload_namespaces.php b/libraries/lifterlms-cli/vendor/composer/autoload_namespaces.php
new file mode 100644
index 0000000000..b7fc0125db
--- /dev/null
+++ b/libraries/lifterlms-cli/vendor/composer/autoload_namespaces.php
@@ -0,0 +1,9 @@
+ array($baseDir . '/src'),
+);
diff --git a/libraries/lifterlms-cli/vendor/composer/autoload_real.php b/libraries/lifterlms-cli/vendor/composer/autoload_real.php
new file mode 100644
index 0000000000..78fa4409f3
--- /dev/null
+++ b/libraries/lifterlms-cli/vendor/composer/autoload_real.php
@@ -0,0 +1,57 @@
+= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
+ if ($useStaticLoader) {
+ require __DIR__ . '/autoload_static.php';
+
+ call_user_func(\Composer\Autoload\ComposerStaticInitaa475372d1afb7f112bf50e9b8859e3a::getInitializer($loader));
+ } else {
+ $map = require __DIR__ . '/autoload_namespaces.php';
+ foreach ($map as $namespace => $path) {
+ $loader->set($namespace, $path);
+ }
+
+ $map = require __DIR__ . '/autoload_psr4.php';
+ foreach ($map as $namespace => $path) {
+ $loader->setPsr4($namespace, $path);
+ }
+
+ $classMap = require __DIR__ . '/autoload_classmap.php';
+ if ($classMap) {
+ $loader->addClassMap($classMap);
+ }
+ }
+
+ $loader->register(true);
+
+ return $loader;
+ }
+}
diff --git a/libraries/lifterlms-cli/vendor/composer/autoload_static.php b/libraries/lifterlms-cli/vendor/composer/autoload_static.php
new file mode 100644
index 0000000000..2a3b404912
--- /dev/null
+++ b/libraries/lifterlms-cli/vendor/composer/autoload_static.php
@@ -0,0 +1,36 @@
+
+ array (
+ 'LifterLMS\\CLI\\' => 14,
+ ),
+ );
+
+ public static $prefixDirsPsr4 = array (
+ 'LifterLMS\\CLI\\' =>
+ array (
+ 0 => __DIR__ . '/../..' . '/src',
+ ),
+ );
+
+ public static $classMap = array (
+ 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
+ );
+
+ public static function getInitializer(ClassLoader $loader)
+ {
+ return \Closure::bind(function () use ($loader) {
+ $loader->prefixLengthsPsr4 = ComposerStaticInitaa475372d1afb7f112bf50e9b8859e3a::$prefixLengthsPsr4;
+ $loader->prefixDirsPsr4 = ComposerStaticInitaa475372d1afb7f112bf50e9b8859e3a::$prefixDirsPsr4;
+ $loader->classMap = ComposerStaticInitaa475372d1afb7f112bf50e9b8859e3a::$classMap;
+
+ }, null, ClassLoader::class);
+ }
+}
diff --git a/libraries/lifterlms-cli/vendor/composer/installed.json b/libraries/lifterlms-cli/vendor/composer/installed.json
new file mode 100644
index 0000000000..f20a6c47c6
--- /dev/null
+++ b/libraries/lifterlms-cli/vendor/composer/installed.json
@@ -0,0 +1,5 @@
+{
+ "packages": [],
+ "dev": false,
+ "dev-package-names": []
+}
diff --git a/libraries/lifterlms-cli/vendor/composer/installed.php b/libraries/lifterlms-cli/vendor/composer/installed.php
new file mode 100644
index 0000000000..252bd7959e
--- /dev/null
+++ b/libraries/lifterlms-cli/vendor/composer/installed.php
@@ -0,0 +1,23 @@
+ array(
+ 'pretty_version' => 'dev-trunk',
+ 'version' => 'dev-trunk',
+ 'type' => 'wordpress-plugin',
+ 'install_path' => __DIR__ . '/../../',
+ 'aliases' => array(),
+ 'reference' => '82418fb524fe978ee668d33ff54bfd5d6e125cb8',
+ 'name' => 'lifterlms/lifterlms-cli',
+ 'dev' => false,
+ ),
+ 'versions' => array(
+ 'lifterlms/lifterlms-cli' => array(
+ 'pretty_version' => 'dev-trunk',
+ 'version' => 'dev-trunk',
+ 'type' => 'wordpress-plugin',
+ 'install_path' => __DIR__ . '/../../',
+ 'aliases' => array(),
+ 'reference' => '82418fb524fe978ee668d33ff54bfd5d6e125cb8',
+ 'dev_requirement' => false,
+ ),
+ ),
+);
diff --git a/libraries/lifterlms-cli/vendor/composer/platform_check.php b/libraries/lifterlms-cli/vendor/composer/platform_check.php
new file mode 100644
index 0000000000..92370c5a0c
--- /dev/null
+++ b/libraries/lifterlms-cli/vendor/composer/platform_check.php
@@ -0,0 +1,26 @@
+= 70300)) {
+ $issues[] = 'Your Composer dependencies require a PHP version ">= 7.3.0". You are running ' . PHP_VERSION . '.';
+}
+
+if ($issues) {
+ if (!headers_sent()) {
+ header('HTTP/1.1 500 Internal Server Error');
+ }
+ if (!ini_get('display_errors')) {
+ if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
+ fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
+ } elseif (!headers_sent()) {
+ echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
+ }
+ }
+ trigger_error(
+ 'Composer detected issues in your platform: ' . implode(' ', $issues),
+ E_USER_ERROR
+ );
+}
diff --git a/libraries/lifterlms-helper/CHANGELOG.md b/libraries/lifterlms-helper/CHANGELOG.md
new file mode 100644
index 0000000000..bd9d95f6d9
--- /dev/null
+++ b/libraries/lifterlms-helper/CHANGELOG.md
@@ -0,0 +1,223 @@
+LifterLMS Helper Changelog
+==========================
+
+v3.4.2 - 2022-04-01
+-------------------
+
+##### Bug Fixes
+
++ Fixed an issue where adding new license keys with an end-of-line symbol after the last key would result in an invalid license key error.
++ Fixed an issue that caused PHP warnings in the "Plugins -> Add New" page because the `plugin` property was missing. [#36](https://github.com/gocodebox/lifterlms-helper/issues/36)
+
+
+v3.4.1 - 2021-08-17
+-------------------
+
++ Fixed undefined index error encountered when programmatically deactivating a key that was not previously activated on the site.
+
+
+v3.4.0 - 2021-08-04
+-------------------
+
+##### Localization updates
+
++ Only runs localization functions when loaded as an independent plugin.
++ Replace the textdoman 'lifterlms-helper' with 'lifterlms'.
+
+##### Updates
+
++ Use `llms_helper()` in favor of deprecated `LLMS_Helper()` in various locations.
+
+##### Bugfix
+
++ Don't attempt to run migrations from versions less than 3.0.0 during first run when loaded as a library.
+
+
+v3.3.1 - 2021-07-26
+-------------------
+
++ Load `llms_helper()->upgrader` WP_CLI context in preparation for forthcoming the `lifterlms-cli`.
+
+
+v3.3.0 - 2021-06-14
+-------------------
+
++ This plugin is now included by default via the LifterLMS core in versions 5.0+. Installing this plugin directly will use the plugin version instead of the version included with the core. Direct installation is likely only required for development purposes when using LifterLMS 5.0+.
++ The main function `llms_helper()` is declared conditionally when the class `LifterLMS_Helper` is not yet declared.
++ Added a constant `LLMS_HELPER_DISABLE` which allows disabling of the plugin.
++ Distribution release zips now include a `composer.json` file to allow for installation via composer.
+
+
+v3.2.1 - 2021-06-03
+-------------------
+
+##### Updates
+
++ Flush cached update and add-on data when adding or removing license keys and when changing channel subscription for a package.
++ Enable updating to beta versions of packages that don't require a license when no license is present.
+
+
+v3.2.0 - 2020-12-02
+-------------------
+
+##### Updates
+
++ Moved the class `LifterLMS_Helper` class to its own file from `lifterlms-helper.php`.
++ Use `self::$instance` in favor of `self::$_instance`.
++ Use `llms()` in favor of deprecated `LLMS()`.
++ Use `llms_filter_input()` to access `$_POST` data in various places.
++ Use strict comparison for `in_array()`.
+
+##### Bug fixes
+
++ Fixed usage of incorrect textdomain in various places.
+
+##### Deprecations
+
++ Replaced usage of protected class property `$instance` in favor of `$_instance` in various singleton classes.
++ Function `LLMS_Helper()` is deprecated in favor of `llms_helper()`.
++ File `includes/model-llms-helper-add-on.php` is deprecated, use `includes/models/class-llms-helper-add-on.php` instead.
+
+
+v3.1.0 - 2020-05-22
+-------------------
+
++ Load changelogs from the make.lifterlms.com release notes archive in favor of from static html files.
++ Remove reliance on `file_get_contents()` causing errors on servers without access to the function.
+
+
+v3.0.2 - 2018-08-29
+-------------------
+
++ Fixed fatal errors encountered as a result of failed API calls
++ Fixed broken links output on the plugins update screen when an add-on is unlicensed and has an update available
++ Fixed issue causing non-beta versions of the LifterLMS core to be served from LifterLMS.com instead of from WordPress.org
+
+
+v3.0.1 - 2018-08-02
+-------------------
+
++ Fixed an issue causing key migration to run on the frontend resulting in a fatal error related to missing admin-only functions
++ Fixed an issue causing multiple submitted keys to not work properly on certain environments
++ Fixed issue causing installation script to make an activation API call even when no keys exist
++ Improved installation script message to only display a migration message when keys are actually migrated
+
+
+v3.0.0 - 2018-08-01
+-------------------
+
++ **This is nearly a complete rewrite of the codebase. Things have moved but no features have been removed.**
++ Requires LifterLMS version 3.22.0 or later
++ License key activation is now on a per-site basis as opposed to a per product basis. This means that if you have a license key for a bundle you don't have to enter the key for each add-on, you enter the key only once and it will activate ALL the add-ons.
++ The "Licenses" tab has been removed and your add-ons and licenses are now managed via LifterLMS -> Add-ons & More
++ A migration script exists to move license keys from previous versions of the helper to this version. After upgrading check LifterLMS -> Add-ons & More to ensure your keys were successfully migrated.
++ You can now install add-ons through the this plugin without having to download and install them manually. Enter your license key(s) and select the add-ons you wish to install to have them installed automatically. You can bulk install as well.
++ You can now subscribe to beta channels of LifterLMS and any LifterLMS add-ons. Visit the LifterLMS -> Status -> Betas screen to subscribe to betas. Always use betas at your own risk, by nature they're unstable!
++ Uses the LifterLMS.com v3 REST api for all API calls
++ Added RTL language support
++ Added i18n support
++ Removed and replaced various functions
++ Fixes many bugs and almost certainly introduces some new ones
+
+
+v2.5.1 - 2017-11-08
+-------------------
+
++ Fix issue causing false activations which cannot be deactivated due to blank activation keys
+
+
+v2.5.0 - 2017-07-18
+-------------------
+
++ Allow add-ons to be bulk deactivated
++ Integrates with LifterLMS site clone detection in order to automatically activate plugins on your new URL when cloning to staging / production.
++ Following clone detection if activation fails the plugin will no longer show the add-ons as activated (since they're not activated on the new URL)
++ Minor admin-panel performance improvements
++ Now uses minified JS and CSS assets
++ Now fully translateable!
+
+
+v2.4.3 - 2017-02-09
+-------------------
+
++ Handle undefined errors during post plugin install from zip file
+
+
+v2.4.2 - 2017-01-20
+-------------------
+
++ Handle failed api calls gracefully
+
+
+v2.4.1 - 2016-12-30
+-------------------
+
++ Cache add-on list prior to filtering
+
+
+v2.4.0 - 2016-12-20
+-------------------
+
++ Added a unified Helper sceen accessible via LifterLMS -> Settings -> Helper
++ Activate multiple addons simultaneously via one API call
++ Site deactivation now deactivates from remote activation server in addition to local deactivation
++ Upgraded database key handling prevents accidental duplicate activation attempts
++ Fixed several undefined index warnings
++ Normalized option fields keys
+
+
+v2.3.1 - 2016-10-12
+-------------------
+
++ Fixes issue with theme upgrade post install not working resulting in themes existing in the wrong directory after an upgrade
+
+
+v2.3.0 - 2016-10-10
+-------------------
+
++ Significantly upgrades the speed of version checks. Previously checked each LifterLMS Add-on separately, now makes one API call to retreive versions of all installed LifterLMS Add-ons.
++ Adds support for the Universe Bundle which is one key associated with multiple products
+
+
+v2.2.0 - 2016-07-06
+-------------------
+
++ After updates, clear cached update data so the upgrade doesn't still appear as pending
++ After changing license keys, clear cahced data so the next upgrade attempt will not fail again (unless it's still supposed to fail)
++ After updating the currently active theme, correctly reactivate the theme
+
+
+v2.1.0 - 2016-06-14
+-------------------
+
++ Prevent hijacking the LifterLMS Core lightbox data when attempting to view update details on the plugin update screen.
++ Added [Parsedown](https://github.com/erusev/parsedown) to render Markdown style changelogs into HTML when viewing extension changelogs in the the lightbox on plugin update screens.
+
+
+v2.0.0 - 2016-04-08
+-------------------
+
++ Includes theme-related APIs for serving updates for themes
++ Better error reporting and handling
++ A few very exciting performance enhancements
+
+
+v1.0.2 - 2016-03-07
+-------------------
+
++ Fixed an undefined variable which produced a php warning when `WP_DEBUG` was enabled
++ Resolved an issue that caused the LifterLMS Helper to hijack the "details" and related plugin screens that display inside a lightbox in the plugins admin page.
++ Added a .editorconfig file
++ Added changelog file
+
+
+v1.0.1 - 2016-02-11
+-------------------
+
++ Actual public release
+
+
+v1.0.0 - 2016-02-10
+-------------------
+
++ Initial public release
diff --git a/libraries/lifterlms-helper/assets/css/llms-helper-rtl.css b/libraries/lifterlms-helper/assets/css/llms-helper-rtl.css
new file mode 100644
index 0000000000..939e4bba1d
--- /dev/null
+++ b/libraries/lifterlms-helper/assets/css/llms-helper-rtl.css
@@ -0,0 +1,77 @@
+.wrap.lifterlms-addons .llms-licenses {
+ display: inline-block;
+ margin-right: 20px;
+ position: relative;
+ vertical-align: middle;
+ z-index: 1;
+}
+.wrap.lifterlms-addons .llms-licenses .llms-license-header {
+ margin: 0;
+}
+.wrap.lifterlms-addons .llms-licenses label {
+ display: block;
+ margin-top: 20px;
+}
+.wrap.lifterlms-addons .llms-licenses label:first-child {
+ margin-top: 0;
+}
+.wrap.lifterlms-addons .llms-licenses .llms-active-keys {
+ list-style-type: none;
+ margin: 5px 0;
+ padding: 0;
+}
+.wrap.lifterlms-addons .llms-licenses .llms-active-keys li {
+ margin: 0 0 5px;
+ padding: 0;
+}
+.wrap.lifterlms-addons .llms-licenses .llms-active-keys li input:checked + span {
+ color: #e5554e;
+ font-style: italic;
+}
+.wrap.lifterlms-addons .llms-licenses .fa-chevron-down {
+ margin-right: 10px;
+}
+.wrap.lifterlms-addons .llms-licenses .llms-key-field {
+ background: #fff;
+ border: 1px solid #ddd;
+ display: none;
+ margin-right: 0;
+ position: absolute;
+ right: -1px;
+ padding: 20px;
+ top: calc( 100% - 2px );
+ width: 340px;
+}
+.wrap.lifterlms-addons .llms-licenses .llms-key-field textarea {
+ display: inline-block;
+ height: 86px;
+ font-size: 14px;
+ font-family: monospace;
+ line-height: 1.8;
+ margin: 5px 0;
+ padding: 5px 10px;
+ resize: none;
+ vertical-align: middle;
+ width: 100%;
+}
+
+@media only screen and (min-width: 800px) {
+ .llms-status--betas .llms-beta-main {
+ display: flex;
+ }
+ .llms-status--betas .llms-beta-table {
+ flex: 2;
+ }
+ .llms-status--betas .llms-beta-aside {
+ flex: 1;
+ margin-left: 20px;
+ }
+}
+.llms-status--betas .llms-beta-aside {
+ background: #fef7f7;
+ border: 1px solid #e5554e;
+ padding: 20px;
+}
+.llms-status--betas .llms-beta-aside h1 {
+ padding-top: 0;
+}
diff --git a/libraries/lifterlms-helper/assets/css/llms-helper-rtl.min.css b/libraries/lifterlms-helper/assets/css/llms-helper-rtl.min.css
new file mode 100644
index 0000000000..be40f5e9ce
--- /dev/null
+++ b/libraries/lifterlms-helper/assets/css/llms-helper-rtl.min.css
@@ -0,0 +1 @@
+.wrap.lifterlms-addons .llms-licenses{display:inline-block;margin-right:20px;position:relative;vertical-align:middle;z-index:1}.wrap.lifterlms-addons .llms-licenses .llms-license-header{margin:0}.wrap.lifterlms-addons .llms-licenses label{display:block;margin-top:20px}.wrap.lifterlms-addons .llms-licenses label:first-child{margin-top:0}.wrap.lifterlms-addons .llms-licenses .llms-active-keys{list-style-type:none;margin:5px 0;padding:0}.wrap.lifterlms-addons .llms-licenses .llms-active-keys li{margin:0 0 5px;padding:0}.wrap.lifterlms-addons .llms-licenses .llms-active-keys li input:checked+span{color:#e5554e;font-style:italic}.wrap.lifterlms-addons .llms-licenses .fa-chevron-down{margin-right:10px}.wrap.lifterlms-addons .llms-licenses .llms-key-field{background:#fff;border:1px solid #ddd;display:none;margin-right:0;position:absolute;right:-1px;padding:20px;top:calc( 100% - 2px );width:340px}.wrap.lifterlms-addons .llms-licenses .llms-key-field textarea{display:inline-block;height:86px;font-size:14px;font-family:monospace;line-height:1.8;margin:5px 0;padding:5px 10px;resize:none;vertical-align:middle;width:100%}@media only screen and (min-width: 800px){.llms-status--betas .llms-beta-main{display:flex}.llms-status--betas .llms-beta-table{flex:2}.llms-status--betas .llms-beta-aside{flex:1;margin-left:20px}}.llms-status--betas .llms-beta-aside{background:#fef7f7;border:1px solid #e5554e;padding:20px}.llms-status--betas .llms-beta-aside h1{padding-top:0}
diff --git a/libraries/lifterlms-helper/assets/css/llms-helper.css b/libraries/lifterlms-helper/assets/css/llms-helper.css
new file mode 100644
index 0000000000..adba48fc1c
--- /dev/null
+++ b/libraries/lifterlms-helper/assets/css/llms-helper.css
@@ -0,0 +1,79 @@
+.wrap.lifterlms-addons .llms-licenses {
+ display: inline-block;
+ margin-left: 20px;
+ position: relative;
+ vertical-align: middle;
+ z-index: 1;
+}
+.wrap.lifterlms-addons .llms-licenses .llms-license-header {
+ margin: 0;
+}
+.wrap.lifterlms-addons .llms-licenses label {
+ display: block;
+ margin-top: 20px;
+}
+.wrap.lifterlms-addons .llms-licenses label:first-child {
+ margin-top: 0;
+}
+.wrap.lifterlms-addons .llms-licenses .llms-active-keys {
+ list-style-type: none;
+ margin: 5px 0;
+ padding: 0;
+}
+.wrap.lifterlms-addons .llms-licenses .llms-active-keys li {
+ margin: 0 0 5px;
+ padding: 0;
+}
+.wrap.lifterlms-addons .llms-licenses .llms-active-keys li input:checked + span {
+ color: #e5554e;
+ font-style: italic;
+}
+.wrap.lifterlms-addons .llms-licenses .fa-chevron-down {
+ margin-left: 10px;
+}
+.wrap.lifterlms-addons .llms-licenses .llms-key-field {
+ background: #fff;
+ border: 1px solid #ddd;
+ display: none;
+ margin-left: 0;
+ position: absolute;
+ left: -1px;
+ padding: 20px;
+ top: calc( 100% - 2px );
+ width: 340px;
+}
+.wrap.lifterlms-addons .llms-licenses .llms-key-field textarea {
+ display: inline-block;
+ height: 86px;
+ font-size: 14px;
+ font-family: monospace;
+ line-height: 1.8;
+ margin: 5px 0;
+ padding: 5px 10px;
+ resize: none;
+ vertical-align: middle;
+ width: 100%;
+}
+
+@media only screen and (min-width: 800px) {
+ .llms-status--betas .llms-beta-main {
+ display: flex;
+ }
+ .llms-status--betas .llms-beta-table {
+ flex: 2;
+ }
+ .llms-status--betas .llms-beta-aside {
+ flex: 1;
+ margin-right: 20px;
+ }
+}
+.llms-status--betas .llms-beta-aside {
+ background: #fef7f7;
+ border: 1px solid #e5554e;
+ padding: 20px;
+}
+.llms-status--betas .llms-beta-aside h1 {
+ padding-top: 0;
+}
+
+/*# sourceMappingURL=llms-helper.css.map */
diff --git a/libraries/lifterlms-helper/assets/css/llms-helper.css.map b/libraries/lifterlms-helper/assets/css/llms-helper.css.map
new file mode 100644
index 0000000000..9009cad586
--- /dev/null
+++ b/libraries/lifterlms-helper/assets/css/llms-helper.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../scss/llms-helper.scss"],"names":[],"mappings":"AAKC;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;AACA;EAAgB;;AAGjB;EACC;EACA;EACA;;AACA;EACC;EACA;;AACA;EACC,OA9BO;EA+BP;;AAKH;EAAmB;;AAEnB;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAWH;EAEC;IACC;;EAED;IACC;;EAED;IACC;IACA;;;AAKF;EACC;EACA;EACA;;AAEA;EACC","file":"llms-helper.css"}
\ No newline at end of file
diff --git a/libraries/lifterlms-helper/assets/css/llms-helper.min.css b/libraries/lifterlms-helper/assets/css/llms-helper.min.css
new file mode 100644
index 0000000000..385cae954e
--- /dev/null
+++ b/libraries/lifterlms-helper/assets/css/llms-helper.min.css
@@ -0,0 +1 @@
+.wrap.lifterlms-addons .llms-licenses{display:inline-block;margin-left:20px;position:relative;vertical-align:middle;z-index:1}.wrap.lifterlms-addons .llms-licenses .llms-license-header{margin:0}.wrap.lifterlms-addons .llms-licenses label{display:block;margin-top:20px}.wrap.lifterlms-addons .llms-licenses label:first-child{margin-top:0}.wrap.lifterlms-addons .llms-licenses .llms-active-keys{list-style-type:none;margin:5px 0;padding:0}.wrap.lifterlms-addons .llms-licenses .llms-active-keys li{margin:0 0 5px;padding:0}.wrap.lifterlms-addons .llms-licenses .llms-active-keys li input:checked+span{color:#e5554e;font-style:italic}.wrap.lifterlms-addons .llms-licenses .fa-chevron-down{margin-left:10px}.wrap.lifterlms-addons .llms-licenses .llms-key-field{background:#fff;border:1px solid #ddd;display:none;margin-left:0;position:absolute;left:-1px;padding:20px;top:calc( 100% - 2px );width:340px}.wrap.lifterlms-addons .llms-licenses .llms-key-field textarea{display:inline-block;height:86px;font-size:14px;font-family:monospace;line-height:1.8;margin:5px 0;padding:5px 10px;resize:none;vertical-align:middle;width:100%}@media only screen and (min-width: 800px){.llms-status--betas .llms-beta-main{display:flex}.llms-status--betas .llms-beta-table{flex:2}.llms-status--betas .llms-beta-aside{flex:1;margin-right:20px}}.llms-status--betas .llms-beta-aside{background:#fef7f7;border:1px solid #e5554e;padding:20px}.llms-status--betas .llms-beta-aside h1{padding-top:0}/*# sourceMappingURL=llms-helper.min.css.map */
diff --git a/libraries/lifterlms-helper/assets/css/llms-helper.min.css.map b/libraries/lifterlms-helper/assets/css/llms-helper.min.css.map
new file mode 100644
index 0000000000..cd6ffcdd0f
--- /dev/null
+++ b/libraries/lifterlms-helper/assets/css/llms-helper.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../scss/llms-helper.scss"],"names":[],"mappings":"AAKC,sCACC,qBACA,iBACA,kBACA,sBACA,UAEA,2DACC,SAGD,4CACC,cACA,gBACA,qEAGD,wDACC,qBACA,aACA,UACA,2DACC,eACA,UACA,8EACC,MA9BO,QA+BP,kBAKH,wEAEA,sDACC,gBACA,sBACA,aACA,cACA,kBACA,UACA,aACA,uBACA,YAEA,+DACC,qBACA,YACA,eACA,sBACA,gBACA,aACA,iBACA,YACA,sBACA,WAWH,0CAEC,oCACC,aAED,qCACC,OAED,qCACC,OACA,mBAKF,qCACC,mBACA,yBACA,aAEA,wCACC","file":"llms-helper.min.css"}
\ No newline at end of file
diff --git a/libraries/lifterlms-helper/class-lifterlms-helper.php b/libraries/lifterlms-helper/class-lifterlms-helper.php
new file mode 100644
index 0000000000..f04329e08b
--- /dev/null
+++ b/libraries/lifterlms-helper/class-lifterlms-helper.php
@@ -0,0 +1,216 @@
+upgrader().
+ *
+ * @var null|LLMS_Helper_Upgrader
+ */
+ private $upgrader = null;
+
+ /**
+ * Retrieve the main Instance of LifterLMS_Helper
+ *
+ * @since 3.0.0
+ * @since 3.2.0 Use `self::$instance` in favor of `self::$_instance`.
+ *
+ * @return LifterLMS_Helper
+ */
+ public static function instance() {
+ if ( is_null( self::$instance ) ) {
+ self::$instance = new self();
+ }
+ return self::$instance;
+ }
+
+ /**
+ * Constructor, get things started!
+ *
+ * @since 1.0.0
+ * @since 3.4.0 Only localize when loaded as an independent plugin.
+ *
+ * @return void
+ */
+ private function __construct() {
+
+ // Define class constants.
+ $this->define_constants();
+
+ /**
+ * When loaded as a library included by the LifterLMS core localization is handled by the LifterLMS core.
+ *
+ * When the plugin is loaded by itself as a plugin, we must localize it independently.
+ */
+ if ( ! defined( 'LLMS_HELPER_LIB' ) || ! LLMS_HELPER_LIB ) {
+ add_action( 'init', array( $this, 'load_textdomain' ), 0 );
+ }
+
+ add_action( 'plugins_loaded', array( $this, 'init' ) );
+
+ }
+
+ /**
+ * Inititalize the Plugin
+ *
+ * @since 1.0.0
+ * @since 3.0.0 Unknown.
+ * @since 3.2.0 Use `llms()` in favor of deprecated `LLMS()`.
+ * @since 3.3.1 Load the upgrader instance in WP_CLI context.
+ *
+ * @return void
+ */
+ public function init() {
+
+ // Only load if we have the minimum LifterLMS version installed & activated.
+ if ( function_exists( 'llms' ) && version_compare( '3.22.0', llms()->version, '<=' ) ) {
+
+ $this->includes();
+ $this->crons();
+
+ if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
+ $this->upgrader = LLMS_Helper_Upgrader::instance();
+ }
+ }
+
+ }
+
+ /**
+ * Schedule and handle cron functions
+ *
+ * @since 3.0.0
+ *
+ * @return void
+ */
+ private function crons() {
+
+ add_action( 'llms_helper_check_license_keys', array( 'LLMS_Helper_Keys', 'check_keys' ) );
+
+ if ( ! wp_next_scheduled( 'llms_helper_check_license_keys' ) ) {
+ wp_schedule_event( time(), 'daily', 'llms_helper_check_license_keys' );
+ }
+
+ }
+
+ /**
+ * Define constants for plugin
+ *
+ * @since 1.0.0
+ *
+ * @return void
+ */
+ private function define_constants() {
+
+ if ( ! defined( 'LLMS_HELPER_VERSION' ) ) {
+ define( 'LLMS_HELPER_VERSION', $this->version );
+ }
+
+ }
+
+ /**
+ * Include all clasess required by the plugin
+ *
+ * @since 1.0.0
+ * @since 3.0.0 Include new files.
+ *
+ * @return void
+ */
+ private function includes() {
+
+ require_once LLMS_HELPER_PLUGIN_DIR . 'includes/class-llms-helper-admin-add-ons.php';
+ require_once LLMS_HELPER_PLUGIN_DIR . 'includes/class-llms-helper-assets.php';
+ require_once LLMS_HELPER_PLUGIN_DIR . 'includes/class-llms-helper-betas.php';
+ require_once LLMS_HELPER_PLUGIN_DIR . 'includes/class-llms-helper-cloned.php';
+ require_once LLMS_HELPER_PLUGIN_DIR . 'includes/class-llms-helper-install.php';
+ require_once LLMS_HELPER_PLUGIN_DIR . 'includes/class-llms-helper-keys.php';
+ require_once LLMS_HELPER_PLUGIN_DIR . 'includes/class-llms-helper-options.php';
+ require_once LLMS_HELPER_PLUGIN_DIR . 'includes/class-llms-helper-upgrader.php';
+
+ require_once LLMS_HELPER_PLUGIN_DIR . 'includes/models/class-llms-helper-add-on.php';
+
+ require_once LLMS_HELPER_PLUGIN_DIR . 'includes/functions-llms-helper.php';
+
+ }
+
+ /**
+ * Load l10n files.
+ *
+ * This method is only used when the plugin is loaded as a standalone plugin (for development purposes),
+ * otherwise (when loaded as a library from within the LifterLMS core plugin) the localization
+ * strings are included into the LifterLMS Core plugin's po/mo files and are localized by the LifterLMS
+ * core plugin.
+ *
+ * Files can be found in the following order (The first loaded file takes priority):
+ * 1. WP_LANG_DIR/lifterlms/lifterlms-rest-LOCALE.mo
+ * 2. WP_LANG_DIR/plugins/lifterlms-rest-LOCALE.mo
+ * 3. WP_CONTENT_DIR/plugins/lifterlms-rest/i18n/lifterlms-rest-LOCALE.mo
+ *
+ * Note: The function `load_plugin_textdomain()` is not used because the same textdomain as the LifterLMS core
+ * is used for this plugin but the file is named `lifterlms-rest` in order to allow using a separate language
+ * file for each codebase.
+ *
+ * @since 2.5.0
+ * @since 3.4.0 Updated to the core textdomain.
+ *
+ * @return void
+ */
+ public function load_textdomain() {
+
+ // Load locale.
+ $locale = apply_filters( 'plugin_locale', get_locale(), 'lifterlms' );
+
+ // Load from the LifterLMS "safe" directory if it exists.
+ load_textdomain( 'lifterlms', WP_LANG_DIR . '/lifterlms/lifterlms-helper-' . $locale . '.mo' );
+
+ // Load from the default plugins language file directory.
+ load_textdomain( 'lifterlms', WP_LANG_DIR . '/plugins/lifterlms-helper-' . $locale . '.mo' );
+
+ // Load from the plugin's language file directory.
+ load_textdomain( 'lifterlms', LLMS_HELPER_PLUGIN_DIR . '/i18n/lifterlms-helper-' . $locale . '.mo' );
+ }
+
+ /**
+ * Return the singleton instance of the LLMS_Helper_Upgader
+ *
+ * @since 3.0.0
+ *
+ * @return LLMS_Helper_Upgrader
+ */
+ public function upgrader() {
+ return $this->upgrader;
+ }
+
+}
diff --git a/libraries/lifterlms-helper/includes/class-llms-helper-admin-add-ons.php b/libraries/lifterlms-helper/includes/class-llms-helper-admin-add-ons.php
new file mode 100644
index 0000000000..49f3a54642
--- /dev/null
+++ b/libraries/lifterlms-helper/includes/class-llms-helper-admin-add-ons.php
@@ -0,0 +1,405 @@
+has_keys() to retrieve the value.
+ *
+ * @var bool
+ */
+ private $has_keys = null;
+
+ /**
+ * Constructor
+ *
+ * @since 3.0.0
+ */
+ public function __construct() {
+
+ add_action( 'admin_init', array( $this, 'handle_actions' ) );
+
+ // Output navigation items.
+ add_action( 'lifterlms_before_addons_nav', array( $this, 'output_navigation_items' ) );
+
+ // Output the license manager interface button / dropdown.
+ add_action( 'llms_addons_page_after_title', array( $this, 'output_license_manager' ) );
+
+ // Filter current section default.
+ add_filter( 'llms_admin_add_ons_get_current_section', array( $this, 'filter_get_current_section' ) );
+
+ // Filter the content display for a section.
+ add_filter( 'llms_admin_add_ons_get_current_section_default_content', array( $this, 'filter_get_current_section_content' ), 10, 2 );
+
+ // Add install & update actions to the list of available management actions powered by the bulk actions functions in core.
+ add_filter( 'llms_admin_add_ons_manage_actions', array( $this, 'filter_manage_actions' ) );
+
+ // Output html for helper-powered actions (install & update).
+ add_action( 'llms_add_ons_single_item_actions', array( $this, 'output_single_install_action' ), 5, 2 );
+ add_action( 'llms_add_ons_single_item_after_actions', array( $this, 'output_single_update_action' ), 5, 2 );
+
+ add_filter( 'llms_admin_addon_features_exclude_ids', array( $this, 'filter_feature_exclude_ids' ) );
+
+ }
+
+ /**
+ * Change the default section from "All" to "Mine" but only if license keys have been saved
+ *
+ * @since 3.0.0
+ *
+ * @param string $section Section slug.
+ * @return string
+ */
+ public function filter_get_current_section( $section ) {
+
+ if ( 'all' === $section && empty( $_GET['section'] ) && $this->has_keys() ) {
+ return 'mine';
+ }
+
+ return $section;
+
+ }
+
+ /**
+ * Add "mine" tab content
+ *
+ * @since 3.0.0
+ * @since 3.0.2 Unknown.
+ *
+ * @param array $content Default items to display.
+ * @param string $section Current tab slug.
+ * @return array
+ */
+ public function filter_get_current_section_content( $content, $section ) {
+
+ if ( 'mine' === $section ) {
+ $mine = llms_helper_get_available_add_ons();
+ $addons = llms_get_add_ons();
+ if ( ! is_wp_error( $addons ) && isset( $addons['items'] ) ) {
+ foreach ( $addons['items'] as $item ) {
+ if ( in_array( $item['id'], $mine ) ) {
+ $content[] = $item;
+ }
+ }
+ }
+ }
+
+ return $content;
+
+ }
+
+ /**
+ * Exclude IDs for all add-ons that are currently available on the site
+ *
+ * @since 3.0.0
+ *
+ * @param array $ids Existing product ids to exclude.
+ * @return array
+ */
+ public function filter_feature_exclude_ids( $ids ) {
+ return array_unique( array_merge( $ids, llms_helper_get_available_add_ons( false ) ) );
+ }
+
+ /**
+ * Add installatino & update actions to the list of available management actions
+ *
+ * @since 3.0.0
+ *
+ * @param array $actions List of available actions, the action should correspond to a method in the LLMS_Helper_Add_On class.
+ * @return array
+ */
+ public function filter_manage_actions( $actions ) {
+ return array_merge( array( 'install', 'update' ), $actions );
+ }
+
+ /**
+ * Handle form submission actions
+ *
+ * @since 3.0.0
+ * @since 3.2.0 Let the LifterLMS Core output flashed notices
+ * @since 3.2.1 Flush cached addon and package update data when adding or removing keys.
+ *
+ * @return void
+ */
+ public function handle_actions() {
+
+ // License key addition & removal.
+ if ( ! llms_verify_nonce( '_llms_manage_keys_nonce', 'llms_manage_keys' ) ) {
+ return;
+ }
+
+ $flush = false;
+
+ if ( isset( $_POST['llms_activate_keys'] ) && ! empty( $_POST['llms_add_keys'] ) ) {
+
+ $flush = true;
+ $this->handle_activations();
+
+ } elseif ( isset( $_POST['llms_deactivate_keys'] ) && ! empty( $_POST['llms_remove_keys'] ) ) {
+
+ $flush = true;
+ $this->handle_deactivations();
+
+ }
+
+ if ( $flush ) {
+ llms_helper_flush_cache();
+ }
+
+ }
+
+ /**
+ * Activate license keys with LifterLMS.com api
+ *
+ * Output errors / successes & saves successful keys to the db.
+ *
+ * @since 3.0.0
+ * @since 3.2.0 Don't access $_POST directly.
+ * @since 3.4.0 Use core textdomain.
+ *
+ * @return void
+ */
+ private function handle_activations() {
+
+ $res = LLMS_Helper_Keys::activate_keys( llms_filter_input( INPUT_POST, 'llms_add_keys', FILTER_SANITIZE_STRING ) );
+
+ if ( is_wp_error( $res ) ) {
+ LLMS_Admin_Notices::flash_notice( $res->get_error_message(), 'error' );
+ return;
+ }
+
+ $data = $res['data'];
+ if ( isset( $data['errors'] ) ) {
+ foreach ( $data['errors'] as $error ) {
+ LLMS_Admin_Notices::flash_notice( make_clickable( $error ), 'error' );
+ }
+ }
+
+ if ( isset( $data['activations'] ) ) {
+ foreach ( $data['activations'] as $activation ) {
+ LLMS_Helper_Keys::add_license_key( $activation );
+ // Translators: %s = License key.
+ LLMS_Admin_Notices::flash_notice( sprintf( __( '"%s" has been saved!', 'lifterlms' ), $activation['license_key'] ), 'success' );
+ }
+ }
+
+ }
+
+ /**
+ * Deactivate license keys with LifterLMS.com api
+ *
+ * Output errors / successes & removes keys from the db.
+ *
+ * @since 3.0.0
+ * @since 3.2.0 Don't access $_POST directly.
+ * @since 3.4.0 Use core textdomain.
+ *
+ * @return void
+ */
+ private function handle_deactivations() {
+
+ $keys = llms_filter_input( INPUT_POST, 'llms_remove_keys', FILTER_UNSAFE_RAW, FILTER_REQUIRE_ARRAY );
+ $res = LLMS_Helper_Keys::deactivate_keys( $keys );
+
+ if ( is_wp_error( $res ) ) {
+ LLMS_Admin_Notices::flash_notice( $res->get_error_message(), 'error' );
+ return;
+ }
+
+ foreach ( $keys as $key ) {
+ LLMS_Helper_Keys::remove_license_key( $key );
+ /* Translators: %s = License Key */
+ LLMS_Admin_Notices::flash_notice( sprintf( __( 'License key "%s" was removed from this site.', 'lifterlms' ), $key ), 'info' );
+ }
+
+ if ( isset( $data['errors'] ) ) {
+ foreach ( $data['errors'] as $error ) {
+ LLMS_Admin_Notices::flash_notice( make_clickable( $error ), 'error' );
+ }
+ }
+
+ }
+
+ /**
+ * Determine if the current site has active license keys
+ *
+ * @since 3.0.0
+ *
+ * @return bool
+ */
+ public function has_keys() {
+
+ if ( is_null( $this->has_keys ) ) {
+ $this->has_keys = ( count( llms_helper_options()->get_license_keys() ) );
+ }
+
+ return $this->has_keys;
+
+ }
+
+ /**
+ * Output the HTML for the license manager area
+ *
+ * @since 3.0.0
+ * @since 3.4.0 Use core textdomain.
+ *
+ * @return void
+ */
+ public function output_license_manager() {
+
+ $my_keys = llms_helper_options()->get_license_keys();
+ if ( $my_keys ) {
+ wp_enqueue_style( 'plugin-install' );
+ wp_enqueue_script( 'plugin-install' );
+ add_thickbox();
+ }
+
+ ?>
+
+
+ is_installable() && ! $addon->is_installed() && ( ! $addon->requires_license() || $addon->is_licensed() ) ) {
+ ?>
+
+
+
+
+
+
+
+
+
+ is_installable() && $addon->is_installed() && ( ! $addon->requires_license() || $addon->is_licensed() ) && $addon->has_available_update() ) {
+ ?>
+
+
+
+
+
+
+
+
+
+ has_keys() ) {
+ return;
+ }
+
+ ?>
+
+
+
+ id && isset( $_GET['tab'] ) && 'betas' === $_GET['tab'] ) {
+ $load = true;
+ } elseif ( 'lifterlms_page_llms-add-ons' === $screen->id ) {
+ $load = true;
+ }
+
+ if ( ! $load ) {
+ return;
+ }
+
+ wp_register_style( 'llms-helper', LLMS_HELPER_PLUGIN_URL . 'assets/css/llms-helper' . LLMS_ASSETS_SUFFIX . '.css', array(), LLMS_HELPER_VERSION );
+ wp_enqueue_style( 'llms-helper' );
+
+ wp_style_add_data( 'llms-sl', 'rtl', 'replace' );
+ wp_style_add_data( 'llms-sl', 'suffix', LLMS_ASSETS_SUFFIX );
+
+ }
+
+}
+return new LLMS_Helper_Assets();
diff --git a/libraries/lifterlms-helper/includes/class-llms-helper-betas.php b/libraries/lifterlms-helper/includes/class-llms-helper-betas.php
new file mode 100644
index 0000000000..2395272650
--- /dev/null
+++ b/libraries/lifterlms-helper/includes/class-llms-helper-betas.php
@@ -0,0 +1,111 @@
+ $channel ) {
+
+ $addon = llms_get_add_on( $id );
+ if ( 'channel' !== $addon->get_channel_subscription() ) {
+ $addon->subscribe_to_channel( sanitize_text_field( $channel ) );
+ $new_subscription = true;
+ }
+ }
+
+ // When a channel subscription changes also flush caches so we'll get the most recent add-on data immediately and allow upgrading immediately from wp core update screens.
+ if ( $new_subscription ) {
+ llms_helper_flush_cache();
+ }
+
+ return $subs;
+
+ }
+
+ /**
+ * Output content for the beta testing screen
+ *
+ * @since 3.0.0
+ *
+ * @param string $curr_tab Current status screen tab.
+ * @return void
+ */
+ public function output_tab( $curr_tab ) {
+
+ if ( 'betas' !== $curr_tab ) {
+ return;
+ }
+
+ $addons = llms_helper_get_available_add_ons();
+ array_unshift( $addons, 'lifterlms-com-lifterlms', 'lifterlms-com-lifterlms-helper' );
+ include 'views/beta-testing.php';
+
+ }
+
+}
+return new LLMS_Helper_Betas();
diff --git a/libraries/lifterlms-helper/includes/class-llms-helper-cloned.php b/libraries/lifterlms-helper/includes/class-llms-helper-cloned.php
new file mode 100644
index 0000000000..507d4cda32
--- /dev/null
+++ b/libraries/lifterlms-helper/includes/class-llms-helper-cloned.php
@@ -0,0 +1,68 @@
+get_license_keys();
+
+ if ( ! $keys ) {
+ return;
+ }
+
+ $res = LLMS_Helper_Keys::activate_keys( array_keys( $keys ) );
+
+ if ( ! is_wp_error( $res ) ) {
+
+ $data = $res['data'];
+ if ( isset( $data['activations'] ) ) {
+ foreach ( $data['activations'] as $activation ) {
+ LLMS_Helper_Keys::add_license_key( $activation );
+ }
+ }
+ }
+
+ }
+
+}
+
+return new LLMS_Helper_Cloned();
diff --git a/libraries/lifterlms-helper/includes/class-llms-helper-install.php b/libraries/lifterlms-helper/includes/class-llms-helper-install.php
new file mode 100644
index 0000000000..2421738030
--- /dev/null
+++ b/libraries/lifterlms-helper/includes/class-llms-helper-install.php
@@ -0,0 +1,174 @@
+version ) {
+
+ self::install();
+
+ /**
+ * Action run after the helper library is updated.
+ *
+ * @since 3.0.0
+ */
+ do_action( 'llms_helper_updated' );
+
+ }
+ }
+
+ /**
+ * Core install function
+ *
+ * @since 3.0.0
+ * @since 3.4.0 Skip migration when loaded as a library.
+ *
+ * @return void
+ */
+ public static function install() {
+
+ if ( ! is_blog_installed() ) {
+ return;
+ }
+
+ do_action( 'llms_helper_before_install' );
+
+ if ( ( ! defined( 'LLMS_HELPER_LIB' ) || ! LLMS_HELPER_LIB ) && ! get_option( 'llms_helper_version', '' ) ) {
+ self::_migrate_300();
+ }
+
+ self::update_version();
+
+ do_action( 'llms_helper_after_install' );
+ }
+
+ /**
+ * Update the LifterLMS version record to the latest version
+ *
+ * @since 3.0.0
+ * @since 3.4.0 Use llms_helper() in favor of deprecated LLMS_Helper().
+ *
+ * @param string $version version number.
+ * @return void
+ */
+ public static function update_version( $version = null ) {
+ delete_option( 'llms_helper_version' );
+ add_option( 'llms_helper_version', is_null( $version ) ? llms_helper()->version : $version );
+ }
+
+ /**
+ * Migrate to version 3.0.0
+ *
+ * @since 3.0.0
+ * @since 3.0.2 Unknown.
+ * @since 3.4.0 Use core textdomain.
+ *
+ * @return void
+ */
+ private static function _migrate_300() {
+
+ $text = '' . __( 'Welcome to the LifterLMS Helper', 'lifterlms' ) . '
';
+ $text .= '' . __( 'This plugin allows your website to interact with your subscriptions at LifterLMS.com to ensure your add-ons stay up to date.', 'lifterlms' ) . '
';
+ // Translators: %1$s = Opening anchor tag; %2$s = closing anchor tag.
+ $text .= '' . sprintf( __( 'You can activate your add-ons from the %1$sAdd-Ons & More%2$s screen.', 'lifterlms' ), '', ' ' ) . '
';
+
+ $keys = array();
+ $addons = llms_get_add_ons();
+ if ( ! is_wp_error( $addons ) && isset( $addons['items'] ) ) {
+ foreach ( $addons['items'] as $addon ) {
+
+ $addon = llms_get_add_on( $addon );
+
+ if ( ! $addon->is_installable() ) {
+ continue;
+ }
+
+ $option_name = sprintf( '%s_activation_key', $addon->get( 'slug' ) );
+
+ $key = get_option( $option_name );
+ if ( $key ) {
+ $keys[] = get_option( $option_name );
+ }
+
+ delete_option( $option_name );
+ delete_option( sprintf( '%s_update_key', $addon->get( 'slug' ) ) );
+
+ }
+ }
+
+ if ( $keys ) {
+
+ $res = LLMS_Helper_Keys::activate_keys( $keys );
+
+ if ( ! is_wp_error( $res ) ) {
+
+ $data = $res['data'];
+ if ( isset( $data['activations'] ) ) {
+
+ // Translators: %d = Number of keys that have been migrated.
+ $text .= '' . sprintf( _n( '%d license has been automatically migrated from the previous version of the LifterLMS Helper', '%d licenses have been automatically migrated from the previous version of the LifterLMS Helper.', count( $data['activations'] ), 'lifterlms' ), count( $data['activations'] ) ) . ':
';
+
+ foreach ( $data['activations'] as $activation ) {
+ LLMS_Helper_Keys::add_license_key( $activation );
+ $text .= '' . $activation['license_key'] . '
';
+ }
+ }
+ }
+ }
+
+ LLMS_Admin_Notices::flash_notice( $text, 'info' );
+
+ // Clean up legacy options.
+ $remove = array(
+ 'lifterlms_stripe_activation_key',
+ 'lifterlms_paypal_activation_key',
+ 'lifterlms_gravityforms_activation_key',
+ 'lifterlms_mailchimp_activation_key',
+ 'llms_helper_key_migration',
+ );
+
+ foreach ( $remove as $opt ) {
+ delete_option( $opt );
+ }
+
+ }
+
+}
+
+LLMS_Helper_Install::init();
diff --git a/libraries/lifterlms-helper/includes/class-llms-helper-keys.php b/libraries/lifterlms-helper/includes/class-llms-helper-keys.php
new file mode 100644
index 0000000000..ad0e384433
--- /dev/null
+++ b/libraries/lifterlms-helper/includes/class-llms-helper-keys.php
@@ -0,0 +1,232 @@
+ $keys,
+ 'url' => get_site_url(),
+ );
+
+ $req = new LLMS_Dot_Com_API( '/license/activate', $data );
+ return $req->get_result();
+
+ }
+
+ /**
+ * Add a single license key
+ *
+ * @since 3.0.0
+ *
+ * @param string $activation_data Array of activation details from api call.
+ * @return boolean True if option value has changed, false if not or if update failed.
+ */
+ public static function add_license_key( $activation_data ) {
+
+ $keys = llms_helper_options()->get_license_keys();
+ $keys[ $activation_data['license_key'] ] = array(
+ 'product_id' => $activation_data['id'],
+ 'status' => 1,
+ 'license_key' => $activation_data['license_key'],
+ 'update_key' => $activation_data['update_key'],
+ 'addons' => $activation_data['addons'],
+ );
+
+ return llms_helper_options()->set_license_keys( $keys );
+
+ }
+
+ /**
+ * Check all saved keys to ensure they're still active
+ *
+ * Outputs warnings if the key has expired or the status has changed remotely.
+ *
+ * Runs on daily cron (`llms_check_license_keys`).
+ *
+ * Only make api calls to check once / week.
+ *
+ * @since 3.0.0
+ * @since 3.4.0 Use core textdomain.
+ *
+ * @param bool $force Ignore the once/week setting and force a check.
+ * @return void
+ */
+ public static function check_keys( $force = false ) {
+
+ // Don't trigger during AJAX Requests.
+ if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
+ return;
+ }
+
+ // Don't proceed if we don't have any keys to check.
+ $keys = llms_helper_options()->get_license_keys();
+ if ( ! $keys ) {
+ return;
+ }
+
+ if ( ! $force ) {
+ // Only check keys once a week.
+ $last_send = llms_helper_options()->get_last_keys_cron_check();
+ if ( $last_send > apply_filters( 'llms_check_license_keys_interval', strtotime( '-1 week' ) ) ) {
+ return;
+ }
+ }
+
+ // Record check time.
+ llms_helper_options()->set_last_keys_cron_check( time() );
+
+ $data = array(
+ 'keys' => array(),
+ 'url' => get_site_url(),
+ );
+
+ foreach ( $keys as $key ) {
+ $data['keys'][ $key['license_key'] ] = $key['update_key'];
+ }
+
+ $req = new LLMS_Dot_Com_API( '/license/status', $data );
+ if ( ! $req->is_error() ) {
+
+ $res = $req->get_result();
+ include_once LLMS_PLUGIN_DIR . 'includes/admin/class.llms.admin.notices.php';
+
+ /* Translators: %s = License Key */
+ $msg = __( 'The license "%s" is no longer valid and was deactivated. Please visit your account dashboard at https://lifterlms.com/my-account for more information.', 'lifterlms' );
+
+ // Output error responses.
+ if ( isset( $res['data']['errors'] ) ) {
+ foreach ( array_keys( $res['data']['errors'] ) as $key ) {
+ self::remove_license_key( $key );
+ LLMS_Admin_Notices::add_notice(
+ 'key_check_' . sanitize_text_field( $key ),
+ make_clickable( sprintf( $msg, $key ) ),
+ array(
+ 'type' => 'error',
+ 'dismiss_for_days' => 0,
+ )
+ );
+ }
+ }
+
+ // Check status of keys, if the status has changed remove it locally.
+ if ( isset( $res['data']['keys'] ) ) {
+ foreach ( $res['data']['keys'] as $key => $data ) {
+
+ if ( $data['status'] ) {
+ continue;
+ }
+
+ self::remove_license_key( $key );
+ LLMS_Admin_Notices::add_notice(
+ 'key_check_' . sanitize_text_field( $key ),
+ make_clickable( sprintf( $msg, $key ) ),
+ array(
+ 'type' => 'error',
+ 'dismiss_for_days' => 0,
+ )
+ );
+
+ }
+ }
+ }
+ }
+
+ /**
+ * Deactivate LifterLMS API keys with remote server
+ *
+ * @since 3.0.0
+ * @since 3.4.1 Ensure key exists before attempting to deactivate it.
+ *
+ * @param array $keys Array of keys.
+ * @return array
+ */
+ public static function deactivate_keys( $keys ) {
+
+ $keys = array_map( 'sanitize_text_field', $keys );
+ $keys = array_map( 'trim', $keys );
+
+ $data = array(
+ 'keys' => array(),
+ 'url' => get_site_url(),
+ );
+
+ $saved = llms_helper_options()->get_license_keys();
+ foreach ( $keys as $key ) {
+ if ( isset( $saved[ $key ] ) && $saved[ $key ]['update_key'] ) {
+ $data['keys'][ $key ] = $saved[ $key ]['update_key'];
+ }
+ }
+
+ $req = new LLMS_Dot_Com_API( '/license/deactivate', $data );
+ return $req->get_result();
+
+ }
+
+ /**
+ * Retrieve stored information about a key by the license key
+ *
+ * @since 3.3.1
+ *
+ * @param string $key License key.
+ * @return array|false Associative array of license key information. Returns `false` if the provided license key was not found.
+ */
+ public static function get( $key ) {
+
+ $saved = llms_helper_options()->get_license_keys();
+ return isset( $saved[ $key ] ) ? $saved[ $key ] : false;
+
+ }
+
+ /**
+ * Remove a single license key
+ *
+ * @since 3.0.0
+ *
+ * @param string $key License key.
+ * @return boolean True if option value has changed, false if not or if update failed.
+ */
+ public static function remove_license_key( $key ) {
+ $keys = llms_helper_options()->get_license_keys();
+ if ( isset( $keys[ $key ] ) ) {
+ unset( $keys[ $key ] );
+ }
+ return llms_helper_options()->set_license_keys( $keys );
+ }
+
+}
diff --git a/libraries/lifterlms-helper/includes/class-llms-helper-options.php b/libraries/lifterlms-helper/includes/class-llms-helper-options.php
new file mode 100644
index 0000000000..6a75a74b23
--- /dev/null
+++ b/libraries/lifterlms-helper/includes/class-llms-helper-options.php
@@ -0,0 +1,161 @@
+get_options();
+
+ if ( isset( $options[ $key ] ) ) {
+ return $options[ $key ];
+ }
+
+ return $default;
+
+ }
+
+ /**
+ * Retrieve all upgrader options array
+ *
+ * @since 3.0.0
+ *
+ * @return array
+ */
+ private function get_options() {
+ return get_option( 'llms_helper_options', array() );
+ }
+
+ /**
+ * Update the value of an option
+ *
+ * @since 3.0.0
+ *
+ * @param string $key Option name.
+ * @param mixed $val Option value.
+ * @return boolean True if option value has changed, false if not or if update failed.
+ */
+ private function set_option( $key, $val ) {
+
+ $options = $this->get_options();
+ $options[ $key ] = $val;
+ return update_option( 'llms_helper_options', $options, false );
+
+ }
+
+ /**
+ * Get info about addon channel subscriptions
+ *
+ * @since 3.0.0
+ *
+ * @return array
+ */
+ public function get_channels() {
+ return $this->get_option( 'channels', array() );
+ }
+
+ /**
+ * Set info about addon channel subscriptions
+ *
+ * @since 3.0.0
+ *
+ * @param array $channels Array of channel information.
+ * @return boolean True if option value has changed, false if not or if update failed.
+ */
+ public function set_channels( $channels ) {
+ return $this->set_option( 'channels', $channels );
+ }
+
+ /**
+ * Retrieve a timestamp for the last time the keys check cron was run
+ *
+ * @since 3.0.0
+ *
+ * @return int
+ */
+ public function get_last_keys_cron_check() {
+ return $this->get_option( 'last_keys_cron_check', 0 );
+ }
+
+ /**
+ * Set the last cron check time
+ *
+ * @since 3.0.0
+ *
+ * @param int $time Timestamp.
+ * @return boolean True if option value has changed, false if not or if update failed.
+ */
+ public function set_last_keys_cron_check( $time ) {
+ return $this->set_option( 'last_keys_cron_check', $time );
+ }
+
+ /**
+ * Retrieve saved license key data
+ *
+ * @since 3.0.0
+ *
+ * @return array
+ */
+ public function get_license_keys() {
+ return $this->get_option( 'license_keys', array() );
+ }
+
+ /**
+ * Update saved license key data
+ *
+ * @since 3.0.0
+ *
+ * @param array $keys Key data to save.
+ * @return boolean True if option value has changed, false if not or if update failed.
+ */
+ public function set_license_keys( $keys ) {
+ return $this->set_option( 'license_keys', $keys );
+ }
+
+}
diff --git a/libraries/lifterlms-helper/includes/class-llms-helper-upgrader.php b/libraries/lifterlms-helper/includes/class-llms-helper-upgrader.php
new file mode 100644
index 0000000000..d04ec65f3b
--- /dev/null
+++ b/libraries/lifterlms-helper/includes/class-llms-helper-upgrader.php
@@ -0,0 +1,514 @@
+is_installable() ) {
+ return new WP_Error( 'not_installable', __( 'Add-on cannot be installable.', 'lifterlms' ) );
+ }
+
+ // Make sure it's not already installed.
+ if ( 'install' === $action && $addon->is_installed() ) {
+ // Translators: %s = Add-on name.
+ return new WP_Error( 'installed', sprintf( __( '%s is already installed', 'lifterlms' ), $addon->get( 'title' ) ) );
+ }
+
+ // Get download info via llms.com api.
+ $dl_info = $addon->get_download_info();
+ if ( is_wp_error( $dl_info ) ) {
+ return $dl_info;
+ }
+ if ( ! isset( $dl_info['data']['url'] ) ) {
+ return new WP_Error( 'no_url', __( 'An error occured while attempting to retrieve add-on download information. Please try again.', 'lifterlms' ) );
+ }
+
+ require_once ABSPATH . 'wp-admin/includes/file.php';
+ include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
+ WP_Filesystem();
+
+ $skin = new Automatic_Upgrader_Skin();
+
+ if ( 'plugin' === $addon->get_type() ) {
+
+ $upgrader = new Plugin_Upgrader( $skin );
+
+ } elseif ( 'theme' === $addon->get_type() ) {
+
+ $upgrader = new Theme_Upgrader( $skin );
+
+ } else {
+
+ return new WP_Error( 'inconceivable', __( 'The requested action is not possible.', 'lifterlms' ) );
+
+ }
+
+ if ( 'install' === $action ) {
+ remove_filter( 'upgrader_package_options', array( $this, 'upgrader_package_options' ) );
+ $result = $upgrader->install( $dl_info['data']['url'] );
+ add_filter( 'upgrader_package_options', array( $this, 'upgrader_package_options' ) );
+ } elseif ( 'update' === $action ) {
+ $result = $upgrader->upgrade( $addon->get( 'update_file' ) );
+ }
+
+ if ( is_wp_error( $result ) ) {
+ return $result;
+ } elseif ( is_wp_error( $skin->result ) ) {
+ return $skin->result;
+ } elseif ( is_null( $result ) ) {
+ return new WP_Error( 'filesystem', __( 'Unable to connect to the filesystem. Please confirm your credentials.', 'lifterlms' ) );
+ }
+
+ return true;
+
+ }
+
+ /**
+ * Output additional information on plugins update screen when updates are available for an unlicensed addon
+ *
+ * @since 3.0.0
+ * @since 3.0.2 Unknown.
+ * @since 3.4.0 Use core textdomain.
+ *
+ * @param array $plugin_data Array of plugin data.
+ * @param array $res Response data.
+ * @return void
+ */
+ public function in_plugin_update_message( $plugin_data, $res ) {
+
+ if ( empty( $plugin_data['package'] ) ) {
+
+ echo '';
+
+ echo '';
+ _e( 'Your LifterLMS add-on is currently unlicensed and cannot be updated!', 'lifterlms' );
+ echo '
';
+
+ echo '';
+ // Translators: %1$s = Opening anchor tag; %2$s = Closing anchor tag.
+ printf( __( 'If you already have a license, you can activate it on the %1$sadd-ons management screen%2$s.', 'lifterlms' ), '', ' ' );
+ echo '
';
+
+ echo '';
+ // Translators: %s = URI to licensing FAQ.
+ printf( __( 'Learn more about LifterLMS add-on licensing at %s.', 'lifterlms' ), make_clickable( 'https://lifterlms.com/docs/lifterlms-helper/' ) );
+ echo '
';
+
+ }
+
+ }
+
+ /**
+ * Filter API calls to get plugin information and replace it with data from LifterLMS.com API for our addons
+ *
+ * @since 3.0.0
+ *
+ * @param bool $response False (denotes API call should be made to wp.org for plugin info).
+ * @param string $action Name of the API action.
+ * @param obj $args Additional API call args.
+ * @return false|obj
+ */
+ public function plugins_api( $response, $action = '', $args = null ) {
+
+ if ( 'plugin_information' !== $action ) {
+ return $response;
+ }
+
+ if ( empty( $args->slug ) ) {
+ return $response;
+ }
+
+ $core = false;
+
+ if ( 'lifterlms' === $args->slug ) {
+ remove_filter( 'plugins_api', array( $this, 'plugins_api' ), 10, 3 );
+ $args->slug = 'lifterlms-com-lifterlms';
+ $core = true;
+ }
+
+ if ( 0 !== strpos( $args->slug, 'lifterlms-com-' ) ) {
+ return $response;
+ }
+
+ $response = $this->set_plugins_api( $args->slug, true );
+
+ if ( $core ) {
+ add_filter( 'plugins_api', array( $this, 'plugins_api' ), 10, 3 );
+ }
+
+ return $response;
+
+ }
+
+ /**
+ * Handle setting the site transient for plugin updates
+ *
+ * @since 3.0.0
+ * @since 3.0.2 Unknown.
+ *
+ * @param obj $value Transient value.
+ * @return obj
+ */
+ public function pre_set_site_transient_update_things( $value ) {
+
+ if ( empty( $value ) ) {
+ return $value;
+ }
+
+ $which = current_filter();
+ if ( 'pre_set_site_transient_update_plugins' === $which ) {
+ $type = 'plugin';
+ } elseif ( 'pre_set_site_transient_update_themes' === $which ) {
+ $type = 'theme';
+ } else {
+ return $value;
+ }
+
+ $all_products = llms_get_add_ons( false );
+ if ( is_wp_error( $all_products ) || ! isset( $all_products['items'] ) ) {
+ return $value;
+ }
+
+ foreach ( $all_products['items'] as $addon_data ) {
+
+ $addon = llms_get_add_on( $addon_data );
+
+ if ( ! $addon->is_installable() || ! $addon->is_installed() ) {
+ continue;
+ }
+
+ if ( $type !== $addon->get_type() ) {
+ continue;
+ }
+
+ $file = $addon->get( 'update_file' );
+
+ if ( 'plugin' === $type ) {
+
+ if ( 'lifterlms-com-lifterlms' === $addon->get( 'id' ) ) {
+ if ( 'stable' === $addon->get_channel_subscription() || ! $addon->get( 'version_beta' ) ) {
+ continue;
+ }
+ }
+
+ $item = (object) $this->set_plugins_api( $addon->get( 'id' ), false );
+
+ } elseif ( 'theme' === $type ) {
+
+ $item = array(
+ 'theme' => $file,
+ 'new_version' => $addon->get_latest_version(),
+ 'url' => $addon->get_permalink(),
+ 'package' => true,
+ );
+ }
+
+ if ( $addon->has_available_update() ) {
+
+ $value->response[ $file ] = $item;
+ unset( $value->no_update[ $file ] );
+
+ } else {
+
+ $value->no_update[ $file ] = $item;
+ unset( $value->response[ $file ] );
+
+ }
+ }
+
+ return $value;
+
+ }
+
+ /**
+ * Setup an object of addon data for use when requesting plugin information normally acquired from wp.org.
+ *
+ * @since 3.0.0
+ * @since 3.2.1 Set package to `true` for add-ons which don't require a license.
+ * @since 3.4.2 Added a `plugin` property to the returned plugin object,
+ * which is required by `WP_Plugin_Install_List_Table::prepare_items()`.
+ *
+ * @param string $id Addon id.
+ * @param bool $include_sections Whether or not to include additional sections like the description and changelog.
+ * @return object
+ */
+ private function set_plugins_api( $id, $include_sections = true ) {
+
+ $addon = llms_get_add_on( $id );
+
+ if ( 'lifterlms-com-lifterlms' === $id && false !== strpos( $addon->get_latest_version(), 'beta' ) ) {
+
+ require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
+ $item = plugins_api(
+ 'plugin_information',
+ array(
+ 'slug' => 'lifterlms',
+ 'fields' => array(
+ 'banners' => true,
+ 'icons' => true,
+ ),
+ )
+ );
+ $item->version = $addon->get_latest_version();
+ $item->new_version = $addon->get_latest_version();
+ $item->package = true;
+
+ unset( $item->versions );
+
+ $item->sections['changelog'] = $this->get_changelog_for_api( $addon );
+
+ return $item;
+
+ }
+
+ $item = array(
+ 'name' => $addon->get( 'title' ),
+ 'slug' => $id,
+ 'plugin' => $addon->get( 'update_file' ),
+ 'version' => $addon->get_latest_version(),
+ 'new_version' => $addon->get_latest_version(),
+ 'author' => '' . $addon->get( 'author' )['name'] . ' ',
+ 'author_profile' => $addon->get( 'author' )['link'],
+ 'requires' => $addon->get( 'version_wp' ),
+ 'tested' => '',
+ 'requires_php' => $addon->get( 'version_php' ),
+ 'compatibility' => '',
+ 'homepage' => $addon->get( 'permalink' ),
+ 'download_link' => '',
+ 'package' => ( $addon->is_licensed() || ! $addon->requires_license() ),
+ 'banners' => array(
+ 'low' => $addon->get( 'image' ),
+ ),
+ );
+
+ if ( $include_sections ) {
+
+ $item['sections'] = array(
+ 'description' => $addon->get( 'description' ),
+ 'changelog' => $this->get_changelog_for_api( $addon ),
+ );
+
+ }
+
+ return (object) $item;
+
+ }
+
+ /**
+ * Retrieve the changelog for an addon
+ *
+ * Attempts to retrieve changelog HTML from the make blog.
+ *
+ * If the add-on's changelog is empty or a static html file, returns an error
+ * with a link to the release notes category on the make blog.
+ *
+ * @since 3.0.0
+ * @since 3.1.0 Retrieve changelog from the make blog in favor of legacy static html changelogs.
+ * @since 3.2.0 Fix usage of incorrect textdomain.
+ *
+ * @param LLMS_Add_On $addon Add-on object.
+ * @return string
+ */
+ private function get_changelog_for_api( $addon ) {
+
+ $src = $addon->get( 'changelog' );
+ $split = array_filter( explode( '/', $src ) );
+ $tag = end( $split );
+
+ $logs = false;
+ if ( ! empty( $tag ) && false === strpos( $tag, '.html' ) ) {
+ $logs = $this->get_changelog_html( $tag, $src );
+ }
+
+ // Translators: %s = URL for the changelog website.
+ return $logs ? $logs : make_clickable( sprintf( __( 'There was an error retrieving the changelog. Try visiting %s for recent changelogs.', 'lifterlms' ), 'https://make.lifterlms.com/category/release-notes/' ) );
+
+ }
+
+ /**
+ * Retrieve changelog information from the make blog
+ *
+ * Retrieves the most recent 10 changelog entries for the add-on, formats the returned information
+ * into a format suitable to display within the thickbox, adds a link to the full changelog,
+ * and returns the html string.
+ *
+ * If an error is encountered, returns an empty string.
+ *
+ * @since 3.1.0
+ * @since 3.2.0 Fix usage of incorrect textdomain.
+ *
+ * @param string $tag Tag slug for the add-on on the blog.
+ * @param string $url Full URL to the changelog entries for the add-on.
+ * @return string
+ */
+ private function get_changelog_html( $tag, $url ) {
+
+ $ret = '';
+ $req = wp_remote_get( add_query_arg( 'slug', $tag, 'https://make.lifterlms.com/wp-json/wp/v2/tags' ) );
+ $body = json_decode( wp_remote_retrieve_body( $req ), true );
+
+ if ( ! empty( $body ) && ! empty( $body[0]['_links']['wp:post_type'][0]['href'] ) ) {
+
+ $logs_url = $body[0]['_links']['wp:post_type'][0]['href'];
+ $logs_req = wp_remote_get( $logs_url );
+ $logs = json_decode( wp_remote_retrieve_body( $logs_req ), true );
+
+ if ( ! empty( $logs ) && is_array( $logs ) ) {
+ foreach ( $logs as $log ) {
+ $ts = strtotime( $log['date_gmt'] );
+ $date = function_exists( 'wp_date' ) ? wp_date( 'Y-m-d', $ts ) : gmdate( 'Y-m-d', $ts );
+ $split = array_filter( explode( ' ', $log['title']['rendered'] ) );
+ $ver = end( $split );
+ // Translators: %1$s - Version number; %2$s - Release date.
+ $ret .= '
' . sprintf( __( 'Version %1$s - %2$s', 'lifterlms' ), sanitize_text_field( wp_strip_all_tags( trim( $ver ) ) ), $date ) . ' ';
+ $ret .= strip_tags( $log['content']['rendered'], '' );
+ }
+ }
+
+ $ret .= ' ';
+ // Translators: %s = URL to the full changelog.
+ $ret .= ' ' . make_clickable( sprintf( __( 'View the full changelog at %s.', 'lifterlms' ), $url ) ) . '
';
+
+ }
+
+ return $ret;
+
+ }
+
+ /**
+ * Get a real package download url for a LifterLMS add-on
+ *
+ * This is called immediately prior to package upgrades.
+ *
+ * @since 3.0.0
+ * @since 3.0.2 Unknown.
+ * @since 3.2.1 Correctly process addons which do not require a license (e.g. free products).
+ *
+ * @param array $options Package option data.
+ * @return array
+ */
+ public function upgrader_package_options( $options ) {
+
+ if ( ! isset( $options['hook_extra'] ) ) {
+ return $options;
+ }
+
+ if ( isset( $options['hook_extra']['plugin'] ) ) {
+ $file = $options['hook_extra']['plugin'];
+ } elseif ( isset( $options['hook_extra']['theme'] ) ) {
+ $file = $options['hook_extra']['theme'];
+ } else {
+ return $options;
+ }
+
+ $addon = llms_get_add_on( $file, 'update_file' );
+ if ( ! $addon || ! $addon->is_installable() || ( $addon->requires_license() && ! $addon->is_licensed() ) ) {
+ return $options;
+ }
+
+ $info = $addon->get_download_info();
+ if ( is_wp_error( $info ) || ! isset( $info['data'] ) || ! isset( $info['data']['url'] ) ) {
+ return $options;
+ }
+
+ if ( true === $options['package'] ) {
+ $options['package'] = $info['data']['url'];
+ }
+
+ return $options;
+
+ }
+
+}
diff --git a/libraries/lifterlms-helper/includes/functions-llms-helper.php b/libraries/lifterlms-helper/includes/functions-llms-helper.php
new file mode 100644
index 0000000000..2d43ae31af
--- /dev/null
+++ b/libraries/lifterlms-helper/includes/functions-llms-helper.php
@@ -0,0 +1,61 @@
+get_license_keys() as $key ) {
+ if ( 1 == $key['status'] ) {
+ $ids = array_merge( $ids, $key['addons'] );
+ }
+ if ( false === $installable_only ) {
+ $ids[] = $key['product_id'];
+ }
+ }
+
+ return array_unique( $ids );
+
+}
+
+/**
+ * Deletes transient data related to plugin and theme updates
+ *
+ * @since 3.2.1
+ *
+ * @return void
+ */
+function llms_helper_flush_cache() {
+
+ delete_transient( 'llms_products_api_result' );
+ delete_site_transient( 'update_plugins' );
+ delete_site_transient( 'update_themes' );
+
+}
diff --git a/libraries/lifterlms-helper/includes/model-llms-helper-add-on.php b/libraries/lifterlms-helper/includes/model-llms-helper-add-on.php
new file mode 100644
index 0000000000..a45a23ab46
--- /dev/null
+++ b/libraries/lifterlms-helper/includes/model-llms-helper-add-on.php
@@ -0,0 +1,18 @@
+requires_license();
+
+ $id = $this->get( 'id' );
+ foreach ( llms_helper_options()->get_license_keys() as $data ) {
+ /**
+ * 1. If license is not required, return the first license found.
+ * 2. If the addon matches the licensed product
+ * 3. If the addon is included in the licensed bundle product.
+ */
+ if ( ! $requires_license || $id === $data['product_id'] || in_array( $id, $data['addons'], true ) ) {
+ return $data;
+ }
+ }
+
+ return false;
+
+ }
+
+ /**
+ * Retrieve the update channel for the addon
+ *
+ * @since 3.0.0
+ *
+ * @return string
+ */
+ public function get_channel_subscription() {
+ $channels = llms_helper_options()->get_channels();
+ return isset( $channels[ $this->get( 'id' ) ] ) ? $channels[ $this->get( 'id' ) ] : 'stable';
+ }
+
+ /**
+ * Retrieve download information for an add-on
+ *
+ * @since 3.0.0
+ * @since 3.2.1 Allow getting download info for add-ons which do not require licenses.
+ * @since 3.4.0 Use core textdomain.
+ *
+ * @return WP_Error|array
+ */
+ public function get_download_info() {
+
+ $key = $this->find_license();
+
+ if ( $this->requires_license() && ! $key ) {
+ return new WP_Error( 'no_license', __( 'Unable to locate a license key for the selected add-on.', 'lifterlms' ) );
+ }
+
+ $args = array(
+ 'url' => get_site_url(),
+ 'add_on_slug' => $this->get( 'slug' ),
+ 'channel' => $this->get_channel_subscription(),
+ );
+
+ if ( $key ) {
+ $args['license_key'] = $key['license_key'];
+ $args['update_key'] = $key['update_key'];
+ }
+
+ $req = new LLMS_Dot_Com_API(
+ '/license/download',
+ $args
+ );
+
+ $data = $req->get_result();
+
+ if ( $req->is_error() ) {
+ return $data;
+ }
+
+ return $data;
+
+ }
+
+ /**
+ * Translate strings
+ *
+ * @since 3.0.0
+ * @since 3.4.0 Use core textdomain.
+ *
+ * @param string $string Untranslated string / key.
+ * @return string
+ */
+ public function get_l10n( $string ) {
+
+ $strings = array(
+
+ 'active' => __( 'Active', 'lifterlms' ),
+ 'inactive' => __( 'Inactive', 'lifterlms' ),
+
+ 'installed' => __( 'Installed', 'lifterlms' ),
+ 'uninstalled' => __( 'Not Installed', 'lifterlms' ),
+
+ 'activate' => __( 'Activate', 'lifterlms' ),
+ 'deactivate' => __( 'Deactivate', 'lifterlms' ),
+ 'install' => __( 'Install', 'lifterlms' ),
+
+ 'none' => __( 'N/A', 'lifterlms' ),
+
+ 'license_active' => __( 'Licensed', 'lifterlms' ),
+ 'license_inactive' => __( 'Unlicensed', 'lifterlms' ),
+
+ );
+
+ return $strings[ $string ];
+
+ }
+
+ /**
+ * Determine the status of an addon's license
+ *
+ * @since 3.0.0
+ * @since 3.2.1 Use `requires_license()` instead of checking `has_license` prop directly.
+ *
+ * @param bool $translate If true, returns the translated string for on-screen display.
+ * @return string
+ */
+ public function get_license_status( $translate = false ) {
+
+ if ( ! $this->requires_license() ) {
+ $ret = 'none';
+ } else {
+ $ret = $this->is_licensed() ? 'license_active' : 'license_inactive';
+ }
+
+ return $translate ? $this->get_l10n( $ret ) : $ret;
+
+ }
+
+ /**
+ * Install the add-on via LifterLMS.com
+ *
+ * @since 3.0.0
+ * @since 3.4.0 Use core textdomain.
+ *
+ * @return string|WP_Error
+ */
+ public function install() {
+
+ $ret = LLMS_Helper()->upgrader()->install_addon( $this );
+
+ if ( true === $ret ) {
+
+ /* Translators: %s = Add-on name */
+ return sprintf( __( '%s was successfully installed.', 'lifterlms' ), $this->get( 'title' ) );
+
+ } elseif ( is_wp_error( $ret ) ) {
+
+ return $ret;
+
+ }
+
+ /* Translators: %s = Add-on name */
+ return new WP_Error( 'activation', sprintf( __( 'Could not install %s.', 'lifterlms' ), $this->get( 'title' ) ) );
+
+ }
+
+ /**
+ * Determines if the add-on is licensed
+ *
+ * @since 3.0.0
+ *
+ * @return bool
+ */
+ public function is_licensed() {
+ return ( false !== $this->find_license() );
+ }
+
+ /**
+ * Determines if the add-on requires a license
+ *
+ * @since 3.2.1
+ *
+ * @return bool
+ */
+ public function requires_license() {
+ return llms_parse_bool( $this->get( 'has_license' ) );
+ }
+
+ /**
+ * Update the addons update channel subscription
+ *
+ * @since 3.0.0
+ *
+ * @param string $channel Channel name [stable|beta].
+ * @return boolean
+ */
+ public function subscribe_to_channel( $channel = 'stable' ) {
+
+ $channels = llms_helper_options()->get_channels();
+ $channels[ $this->get( 'id' ) ] = $channel;
+ return llms_helper_options()->set_channels( $channels );
+
+ }
+
+ /**
+ * Install the add-on via LifterLMS.com
+ *
+ * @since 3.0.0
+ * @since 3.4.0 Use core textdomain.
+ *
+ * @return string|WP_Error
+ */
+ public function update() {
+
+ $ret = LLMS_Helper()->upgrader()->install_addon( $this, 'update' );
+
+ if ( true === $ret ) {
+
+ /* Translators: %s = Add-on name */
+ return sprintf( __( '%s was successfully updated.', 'lifterlms' ), $this->get( 'title' ) );
+
+ } elseif ( is_wp_error( $ret ) ) {
+
+ return $ret;
+
+ }
+
+ /* Translators: %s = Add-on name */
+ return new WP_Error( 'activation', sprintf( __( 'Could not update %s.', 'lifterlms' ), $this->get( 'title' ) ) );
+
+ }
+
+}
diff --git a/libraries/lifterlms-helper/includes/models/index.php b/libraries/lifterlms-helper/includes/models/index.php
new file mode 100644
index 0000000000..ff2b6071fd
--- /dev/null
+++ b/libraries/lifterlms-helper/includes/models/index.php
@@ -0,0 +1 @@
+
+
+
+ for LifterLMS or any available add-ons will allow you to automatically update to the latest beta release for the given plugin or theme.', 'lifterlms' ); ?>
+
+
+
+
+
+
+
+
+ ', '
' );
+ ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ get( 'title' ); ?>
+
+
+ get_channel_subscription() ); ?>>
+ get_channel_subscription() ); ?>>
+
+
+ get_installed_version(); ?>
+ get( 'version_beta' ) ? $addon->get( 'version_beta' ) : __( 'N/A', 'lifterlms' ); ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+version );
+ }
+
+ /**
+ * When loaded as a library included by the LifterLMS core localization is handled by the LifterLMS core.
+ *
+ * When the plugin is loaded by itself as a plugin, we must localize it independently.
+ */
+ if ( ! defined( 'LLMS_REST_API_LIB' ) || ! LLMS_REST_API_LIB ) {
+ add_action( 'init', array( $this, 'load_textdomain' ), 0 );
+ }
+
+ // Authentication needs to run early to handle basic auth.
+ include_once LLMS_REST_API_PLUGIN_DIR . 'includes/class-llms-rest-authentication.php';
+
+ // Load everything else.
+ add_action( 'plugins_loaded', array( $this, 'init' ), 10 );
+
+ }
+
+ /**
+ * Include files and instantiate classes.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.4 Load authentication early.
+ *
+ * @return void
+ */
+ public function includes() {
+
+ // Abstracts.
+ include_once LLMS_REST_API_PLUGIN_DIR . 'includes/abstracts/class-llms-rest-database-resource.php';
+ include_once LLMS_REST_API_PLUGIN_DIR . 'includes/abstracts/class-llms-rest-webhook-data.php';
+
+ // Functions.
+ include_once LLMS_REST_API_PLUGIN_DIR . 'includes/llms-rest-functions.php';
+ include_once LLMS_REST_API_PLUGIN_DIR . 'includes/server/llms-rest-server-functions.php';
+
+ // Models.
+ include_once LLMS_REST_API_PLUGIN_DIR . 'includes/models/class-llms-rest-api-key.php';
+ include_once LLMS_REST_API_PLUGIN_DIR . 'includes/models/class-llms-rest-webhook.php';
+
+ // Classes.
+ include_once LLMS_REST_API_PLUGIN_DIR . 'includes/class-llms-rest-api-keys.php';
+ include_once LLMS_REST_API_PLUGIN_DIR . 'includes/class-llms-rest-api-keys-query.php';
+ include_once LLMS_REST_API_PLUGIN_DIR . 'includes/class-llms-rest-capabilities.php';
+ include_once LLMS_REST_API_PLUGIN_DIR . 'includes/class-llms-rest-install.php';
+ include_once LLMS_REST_API_PLUGIN_DIR . 'includes/class-llms-rest-webhooks.php';
+ include_once LLMS_REST_API_PLUGIN_DIR . 'includes/class-llms-rest-webhooks-query.php';
+
+ // Include admin classes.
+ if ( is_admin() ) {
+ include_once LLMS_REST_API_PLUGIN_DIR . 'includes/admin/class-llms-rest-admin-settings.php';
+ include_once LLMS_REST_API_PLUGIN_DIR . 'includes/admin/class-llms-rest-admin-form-controller.php';
+ }
+
+ add_action( 'rest_api_init', array( $this, 'rest_api_includes' ), 5 );
+ add_action( 'rest_api_init', array( $this, 'rest_api_controllers_init' ), 10 );
+
+ }
+
+ /**
+ * Retrieve an instance of the API Keys management singleton.
+ *
+ * @example $keys = LLMS_REST_API()->keys();
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return LLMS_REST_API_Keys
+ */
+ public function keys() {
+ return LLMS_REST_API_Keys::instance();
+ }
+
+ /**
+ * Include REST api specific files.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.9 Include memberships controller class file.
+ * @since 1.0.0-beta.18 Include access plans controller class file.
+ *
+ * @return void
+ */
+ public function rest_api_includes() {
+
+ $includes = array(
+
+ // Abstracts first.
+ 'abstracts/class-llms-rest-controller-stubs',
+ 'abstracts/class-llms-rest-controller',
+ 'abstracts/class-llms-rest-users-controller',
+ 'abstracts/class-llms-rest-posts-controller',
+
+ // Functions.
+ 'server/llms-rest-server-functions',
+
+ // Controllers.
+ 'server/class-llms-rest-api-keys-controller',
+ 'server/class-llms-rest-access-plans-controller',
+ 'server/class-llms-rest-courses-controller',
+ 'server/class-llms-rest-sections-controller',
+ 'server/class-llms-rest-lessons-controller',
+ 'server/class-llms-rest-memberships-controller',
+ 'server/class-llms-rest-enrollments-controller',
+ 'server/class-llms-rest-instructors-controller',
+ 'server/class-llms-rest-students-controller',
+ 'server/class-llms-rest-students-progress-controller',
+ 'server/class-llms-rest-webhooks-controller',
+
+ );
+
+ foreach ( $includes as $include ) {
+ include_once LLMS_REST_API_PLUGIN_DIR . 'includes/' . $include . '.php';
+ }
+ }
+
+ /**
+ * Instantiate REST api Controllers.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.9 Init memberships controller.
+ * @since 1.0.0-beta.18 Init access plans controller.
+ *
+ * @return void
+ */
+ public function rest_api_controllers_init() {
+
+ $controllers = array(
+ 'LLMS_REST_API_Keys_Controller',
+ 'LLMS_REST_Courses_Controller',
+ 'LLMS_REST_Sections_Controller',
+ 'LLMS_REST_Lessons_Controller',
+ 'LLMS_REST_Memberships_Controller',
+ 'LLMS_REST_Instructors_Controller',
+ 'LLMS_REST_Students_Controller',
+ 'LLMS_REST_Students_Progress_Controller',
+ 'LLMS_REST_Enrollments_Controller',
+ 'LLMS_REST_Webhooks_Controller',
+ 'LLMS_REST_Access_Plans_Controller',
+ );
+
+ foreach ( $controllers as $controller ) {
+ $controller_instance = new $controller();
+ $controller_instance->register_routes();
+ }
+
+ }
+
+ /**
+ * Include all required files and classes.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.6 Load webhooks actions at init 1 instead of init 10.
+ * @since 1.0.0-beta.8 Load webhooks actions a little bit later: at init 6 instead of init 10,
+ * just after all the db tables are created (init 5),
+ * to avoid PHP warnings on first plugin activation.
+ * @since 1.0.0-beta.22 Bump minimum required version to 6.0.0-alpha.1.
+ * Use `llms()` in favor of deprecated `LLMS()`.
+ * @since 1.0.0-beta.25 Perform some db clean-up on user deletion.
+ * Bump minimum required version to 6.5.0.
+ *
+ * @return void
+ */
+ public function init() {
+
+ // Only load if we have the minimum LifterLMS version installed & activated.
+ if ( ! function_exists( 'llms' ) || version_compare( '6.5.0', llms()->version, '>' ) ) {
+ return;
+ }
+
+ // Load includes.
+ $this->includes();
+
+ add_action( 'init', array( $this->webhooks(), 'load' ), 6 );
+ add_action( 'deleted_user', array( $this, 'on_user_deletion' ) );
+
+ }
+
+ /**
+ * When a user is deleted in WordPress, delete corresponding LifterLMS REST API data.
+ *
+ * @since 1.0.0-beta.25
+ *
+ * @param int $user_id The ID of the just deleted WP_User.
+ * @return void
+ */
+ public function on_user_deletion( $user_id ) {
+
+ global $wpdb;
+
+ // Delete user's API keys.
+ $wpdb->delete(
+ "{$wpdb->prefix}lifterlms_api_keys",
+ array(
+ 'user_id' => $user_id,
+ ),
+ array( '%d' )
+ );// db-cache ok.
+ }
+
+ /**
+ * Load l10n files.
+ *
+ * This method is only used when the plugin is loaded as a standalone plugin (for development purposes),
+ * otherwise (when loaded as a library from within the LifterLMS core plugin) the localization
+ * strings are included into the LifterLMS Core plugin's po/mo files and are localized by the LifterLMS
+ * core plugin.
+ *
+ * Files can be found in the following order (The first loaded file takes priority):
+ * 1. WP_LANG_DIR/lifterlms/lifterlms-rest-LOCALE.mo
+ * 2. WP_LANG_DIR/plugins/lifterlms-rest-LOCALE.mo
+ * 3. WP_CONTENT_DIR/plugins/lifterlms-rest/i18n/lifterlms-rest-LOCALE.mo
+ *
+ * Note: The function `load_plugin_textdomain()` is not used because the same textdomain as the LifterLMS core
+ * is used for this plugin but the file is named `lifterlms-rest` in order to allow using a separate language
+ * file for each codebase.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.17 Fixed the name of the MO loaded from the safe directory: `lifterlms-{$locale}.mo` to `lifterlms-rest-{$locale}.mo`.
+ * Fixed double slash typo in plugin textdomain path argument.
+ * Fixed issue causing language files to not load properly.
+ *
+ * @return void
+ */
+ public function load_textdomain() {
+
+ // Load locale.
+ $locale = apply_filters( 'plugin_locale', get_locale(), 'lifterlms' );
+
+ // Load from the LifterLMS "safe" directory if it exists.
+ load_textdomain( 'lifterlms', WP_LANG_DIR . '/lifterlms/lifterlms-rest-' . $locale . '.mo' );
+
+ // Load from the default plugins language file directory.
+ load_textdomain( 'lifterlms', WP_LANG_DIR . '/plugins/lifterlms-rest-' . $locale . '.mo' );
+
+ // Load from the plugin's language file directory.
+ load_textdomain( 'lifterlms', LLMS_REST_API_PLUGIN_DIR . '/i18n/lifterlms-rest-' . $locale . '.mo' );
+
+ }
+
+ /**
+ * Retrieve an instance of the webhooks management singleton.
+ *
+ * @example $webhooks = LLMS_REST_API()->webhooks();
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return LLMS_REST_Webhooks
+ */
+ public function webhooks() {
+ return LLMS_REST_Webhooks::instance();
+ }
+
+}
diff --git a/libraries/lifterlms-rest/includes/abstracts/class-llms-rest-controller-stubs.php b/libraries/lifterlms-rest/includes/abstracts/class-llms-rest-controller-stubs.php
new file mode 100644
index 0000000000..64f9012c2c
--- /dev/null
+++ b/libraries/lifterlms-rest/includes/abstracts/class-llms-rest-controller-stubs.php
@@ -0,0 +1,245 @@
+get_object().
+ */
+ protected function create_object( $prepared, $request ) {
+
+ // @todo: add version to message.
+
+ // Translators: %s = method name.
+ _doing_it_wrong( 'LLMS_REST_Controller::create_object', sprintf( __( "Method '%s' must be overridden.", 'lifterlms' ), __METHOD__ ), '1.0.0-beta.1' );
+
+ // For example.
+ return $this->get_object( $this->get_object_id( $prepared ) );
+
+ }
+
+ /**
+ * Retrieve an ID from the object
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param obj $object Item object.
+ * @return int
+ */
+ protected function get_object_id( $object ) {
+ if ( is_object( $object ) && ! empty( $object->id ) ) {
+ return $object->id;
+ } elseif ( is_array( $object ) && ! empty( $object['id'] ) ) {
+ return $object['id'];
+ } elseif ( method_exists( $object, 'get_id' ) ) {
+ return $object->get_id();
+ } elseif ( method_exists( $object, 'get' ) ) {
+ return $object->get( 'id' );
+ }
+
+ // @todo: add version to message.
+
+ // Translators: %s = method name.
+ _doing_it_wrong( 'LLMS_REST_Controller::get_object_id', sprintf( __( "Method '%s' must be overridden.", 'lifterlms' ), __METHOD__ ), '1.0.0-beta.1' );
+
+ // For example.
+ return 0;
+
+ }
+
+ /**
+ * Retrieve a query object based on arguments from a `get_items()` (collection) request.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param array $prepared Array of collection arguments.
+ * @param WP_REST_Request $request Request object.
+ * @return object
+ */
+ protected function get_objects_query( $prepared, $request ) {
+
+ // Translators: %s = method name.
+ _doing_it_wrong( 'LLMS_REST_Controller::get_objects_query', sprintf( __( "Method '%s' must be overridden.", 'lifterlms' ), __METHOD__ ), '1.0.0-beta.1' );
+
+ // For example.
+ return new WP_Query( $prepared );
+
+ }
+
+ /**
+ * Retrieve an array of objects from the result of $this->get_objects_query().
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param obj $query Objects query result.
+ * @return obj[]
+ */
+ protected function get_objects_from_query( $query ) {
+
+ // Translators: %s = method name.
+ _doing_it_wrong( 'LLMS_REST_Controller::get_objects_from_query', sprintf( __( "Method '%s' must be overridden.", 'lifterlms' ), __METHOD__ ), '1.0.0-beta.1' );
+
+ // For example.
+ return array();
+
+ }
+
+ /**
+ * Retrieve pagination information from an objects query.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param obj $query Objects query result.
+ * @param array $prepared Array of collection arguments.
+ * @param WP_REST_Request $request Request object.
+ * @return array {
+ * Array of pagination information.
+ *
+ * @type int $current_page Current page number.
+ * @type int $total_results Total number of results.
+ * @type int $total_pages Total number of results pages.
+ * }
+ */
+ protected function get_pagination_data_from_query( $query, $prepared, $request ) {
+
+ // Translators: %s = method name.
+ _doing_it_wrong( 'LLMS_REST_Controller::get_pagination_data_from_query', sprintf( __( "Method '%s' must be overridden.", 'lifterlms' ), __METHOD__ ), '1.0.0-beta.1' );
+
+ // For example.
+ return array(
+ 'current_page' => 1,
+ 'total_results' => 1,
+ 'total_pages' => 1,
+ );
+
+ }
+
+ /**
+ * Prepare an object for response.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.3 Conditionally throw `_doing_it_wrong()`.
+ *
+ * @param LLMS_Abstract_User_Data $object User object.
+ * @param WP_REST_Request $request Request object.
+ * @return array
+ */
+ protected function prepare_object_for_response( $object, $request ) {
+
+ if ( ! method_exists( $object, 'get' ) ) {
+ // Translators: %s = method name.
+ _doing_it_wrong( 'LLMS_REST_Controller::prepare_object_for_response', sprintf( __( "Method '%s' must be overridden.", 'lifterlms' ), __METHOD__ ), '1.0.0-beta.1' );
+ }
+
+ $prepared = array();
+ $map = array_flip( $this->map_schema_to_database() );
+ $fields = $this->get_fields_for_response( $request );
+
+ foreach ( $map as $db_key => $schema_key ) {
+ if ( in_array( $schema_key, $fields, true ) ) {
+ $prepared[ $schema_key ] = $object->get( $db_key );
+ }
+ }
+
+ return $prepared;
+
+ }
+
+ /**
+ * Update the object in the database with prepared data.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param array $prepared Prepared item data.
+ * @param WP_REST_Request $request Request object.
+ * @return obj Object Instance of object from $this->get_object().
+ */
+ protected function update_object( $prepared, $request ) {
+
+ // @todo: add version to message.
+
+ // Translators: %s = method name.
+ _doing_it_wrong( 'LLMS_REST_Controller::update_object', sprintf( __( "Method '%s' must be overridden.", 'lifterlms' ), __METHOD__ ), '1.0.0-beta.1' );
+
+ // For example.
+ return $this->get_object( $prepared['id'] );
+
+ }
+
+}
diff --git a/libraries/lifterlms-rest/includes/abstracts/class-llms-rest-controller.php b/libraries/lifterlms-rest/includes/abstracts/class-llms-rest-controller.php
new file mode 100644
index 0000000000..5ea8d2c24f
--- /dev/null
+++ b/libraries/lifterlms-rest/includes/abstracts/class-llms-rest-controller.php
@@ -0,0 +1,767 @@
+prepare_item_for_database( $request );
+ $object = $this->create_object( $item, $request );
+ $schema = $this->get_item_schema();
+
+ if ( is_wp_error( $object ) ) {
+ return $object;
+ }
+
+ $this->object_inserted( $object, $request, $schema, true );
+
+ $fields_update = $this->update_additional_fields_for_object( $item, $request );
+ if ( is_wp_error( $fields_update ) ) {
+ return $fields_update;
+ }
+
+ $this->object_completely_inserted( $object, $request, $schema, true );
+
+ $request->set_param( 'context', 'edit' );
+
+ $response = $this->prepare_item_for_response( $object, $request );
+ $response = rest_ensure_response( $response );
+
+ $response->set_status( 201 );
+ $response->header( 'Location', rest_url( sprintf( '%s/%s/%d', $this->namespace, $this->rest_base, $this->get_object_id( $object ) ) ) );
+
+ return $response;
+
+ }
+
+ /**
+ * Called right after a resource is inserted (created/updated).
+ *
+ * @since 1.0.0-beta.12
+ *
+ * @param object $object Inserted or updated object.
+ * @param WP_REST_Request $request Request object.
+ * @param array $schema The item schema.
+ * @param bool $creating True when creating a post, false when updating.
+ */
+ protected function object_inserted( $object, $request, $schema, $creating ) {
+
+ $type = $this->get_object_type();
+ /**
+ * Fires after a single llms resource is created or updated via the REST API.
+ *
+ * The dynamic portion of the hook name, `$type`, refers to the object type this controller is responsible for managing.
+ *
+ * @since 1.0.0-beta.12
+ *
+ * @param object $object Inserted or updated object.
+ * @param WP_REST_Request $request Request object.
+ * @param array $schema The item schema.
+ * @param bool $creating True when creating a post, false when updating.
+ */
+ do_action( "llms_rest_insert_{$type}", $object, $request, $schema, $creating );
+ }
+
+ /**
+ * Called right after a resource is completely inserted (created/updated).
+ *
+ * @since 1.0.0-beta.12
+ *
+ * @param LLMS_Post $object Inserted or updated object.
+ * @param WP_REST_Request $request Request object.
+ * @param array $schema The item schema.
+ * @param bool $creating True when creating a post, false when updating.
+ */
+ protected function object_completely_inserted( $object, $request, $schema, $creating ) {
+
+ $type = $this->get_object_type();
+ /**
+ * Fires after a single llms resource is completely created or updated via the REST API.
+ *
+ * The dynamic portion of the hook name, `$type`, refers to the object type this controller is responsible for managing.
+ *
+ * @since 1.0.0-beta.12
+ *
+ * @param object $object Inserted or updated object.
+ * @param WP_REST_Request $request Request object.
+ * @param array $schema The item schema.
+ * @param bool $creating True when creating a post, false when updating.
+ */
+ do_action( "llms_rest_after_insert_{$type}", $object, $request, $schema, $creating );
+ }
+
+ /**
+ * Delete the item.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param WP_REST_Request $request Request object.
+ * @return WP_REST_Response|WP_Error
+ */
+ public function delete_item( $request ) {
+
+ $object = $this->get_object( $request['id'], false );
+
+ // We don't return 404s for items that are not found.
+ if ( ! is_wp_error( $object ) ) {
+
+ // If there was an error deleting the object return the error. If the error is that the object doesn't exist return 204 below!
+ $del = $this->delete_object( $object, $request );
+ if ( is_wp_error( $del ) ) {
+ return $del;
+ }
+ }
+
+ $response = rest_ensure_response( null );
+ $response->set_status( 204 );
+
+ return $response;
+
+ }
+
+ /**
+ * Retrieves the query params for the objects collection.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.12 Added `search_columns` collection param for searchable resources.
+ *
+ * @return array Collection parameters.
+ */
+ public function get_collection_params() {
+
+ $query_params = parent::get_collection_params();
+
+ $query_params['context']['default'] = 'view';
+
+ // We're not currently implementing searching for all of our controllers.
+ if ( empty( $this->is_searchable ) ) {
+ unset( $query_params['search'] );
+ } elseif ( ! empty( $this->search_columns_mapping ) ) {
+
+ $search_columns = array_keys( $this->search_columns_mapping );
+
+ $query_params['search_columns'] = array(
+ 'description' => __( 'Column names to be searched. Accepts a single column or a comma separated list of columns.', 'lifterlms' ),
+ 'type' => 'array',
+ 'items' => array(
+ 'type' => 'string',
+ 'enum' => $search_columns,
+ ),
+ 'default' => $search_columns,
+ );
+ }
+
+ // page and per_page params are already specified in WP_Rest_Controller->get_collection_params().
+
+ $query_params['order'] = array(
+ 'description' => __( 'Order sort attribute ascending or descending.', 'lifterlms' ),
+ 'type' => 'string',
+ 'default' => 'asc',
+ 'enum' => array( 'asc', 'desc' ),
+ 'validate_callback' => 'rest_validate_request_arg',
+ );
+
+ $query_params['orderby'] = array(
+ 'description' => __( 'Sort collection by object attribute.', 'lifterlms' ),
+ 'type' => 'string',
+ 'default' => $this->orderby_properties[0],
+ 'enum' => $this->orderby_properties,
+ 'validate_callback' => 'rest_validate_request_arg',
+ );
+
+ $query_params['include'] = array(
+ 'description' => __( 'Limit results to a list of ids. Accepts a single id or a comma separated list of ids.', 'lifterlms' ),
+ 'type' => 'array',
+ 'items' => array(
+ 'type' => 'integer',
+ ),
+ 'validate_callback' => 'rest_validate_request_arg',
+ );
+
+ $query_params['exclude'] = array(
+ 'description' => __( 'Exclude a list of ids from results. Accepts a single id or a comma separated list of ids.', 'lifterlms' ),
+ 'type' => 'array',
+ 'items' => array(
+ 'type' => 'integer',
+ ),
+ 'validate_callback' => 'rest_validate_request_arg',
+ );
+
+ return $query_params;
+ }
+
+ /**
+ * Get a single item.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ * @return WP_Error|WP_REST_Response
+ */
+ public function get_item( $request ) {
+
+ $object = $this->get_object( (int) $request['id'] );
+ if ( is_wp_error( $object ) ) {
+ return $object;
+ }
+
+ $response = $this->prepare_item_for_response( $object, $request );
+
+ return rest_ensure_response( $response );
+
+ }
+
+ /**
+ * Retrieves all items
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.3 Fix an issue displaying a last page for lists with 0 possible results.
+ * @since 1.0.0-beta.7 Broken into several methods so to improve abstraction.
+ * @since 1.0.0-beta.12 Return early if `prepare_collection_query_args()` is a `WP_Error`.
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+ */
+ public function get_items( $request ) {
+
+ $prepared = $this->prepare_collection_query_args( $request );
+ if ( is_wp_error( $prepared ) ) {
+ return $prepared;
+ }
+
+ $query = $this->get_objects_query( $prepared, $request );
+ $pagination = $this->get_pagination_data_from_query( $query, $prepared, $request );
+
+ // Out-of-bounds, run the query again on page one to get a proper total count.
+ if ( $pagination['total_results'] < 1 ) {
+
+ $prepared_for_total_count = $this->prepare_args_for_total_count_query( $prepared, $request );
+ $count_query = $this->get_objects_query( $prepared_for_total_count, $request );
+ $count_results = $this->get_pagination_data_from_query( $count_query, $prepared_for_total_count, $request );
+
+ $pagination['total_results'] = $count_results['total_results'];
+ }
+
+ if ( $pagination['current_page'] > $pagination['total_pages'] && $pagination['total_results'] > 0 ) {
+ return llms_rest_bad_request_error( __( 'The page number requested is larger than the number of pages available.', 'lifterlms' ) );
+ }
+
+ $objects = $this->get_objects_from_query( $query );
+ $items = $this->prepare_collection_items_for_response( $objects, $request );
+
+ $response = rest_ensure_response( $items );
+ $response = $this->add_header_pagination( $response, $pagination, $request );
+
+ return $response;
+
+ }
+
+ /**
+ * Format query arguments to retrieve a collection of objects.
+ *
+ * @since 1.0.0-beta.7
+ * @since 1.0.0-beta.12 Prepare args for search and call collection params to query args map method.
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ * @return array|WP_Error
+ */
+ protected function prepare_collection_query_args( $request ) {
+
+ // Prepare all set args.
+ $registered = $this->get_collection_params();
+ $prepared = array();
+
+ foreach ( $registered as $key => $value ) {
+ if ( isset( $request[ $key ] ) ) {
+ $prepared[ $key ] = $request[ $key ];
+ }
+ }
+
+ $prepared = $this->prepare_collection_query_search_args( $prepared, $request );
+ if ( is_wp_error( $prepared ) ) {
+ return $prepared;
+ }
+
+ $prepared = $this->map_params_to_query_args( $prepared, $registered, $request );
+
+ return $prepared;
+
+ }
+
+ /**
+ * Map schema to query arguments to retrieve a collection of objects.
+ *
+ * @since 1.0.0-beta.12
+ *
+ * @param array $prepared Array of collection arguments.
+ * @param array $registered Registered collection params.
+ * @param WP_REST_Request $request Full details about the request.
+ * @return array|WP_Error
+ */
+ protected function map_params_to_query_args( $prepared, $registered, $request ) {
+ return $prepared;
+ }
+
+ /**
+ * Format search query arguments to retrieve a collection of objects.
+ *
+ * @since 1.0.0-beta.12
+ * @since 1.0.0-beta.21 Return an error if requesting a list ordered by 'relevance' without providing a search string.
+ *
+ * @param array $prepared Array of collection arguments.
+ * @param WP_REST_Request $request Request object.
+ * @return array|WP_Error
+ */
+ protected function prepare_collection_query_search_args( $prepared, $request ) {
+
+ // Search?
+ if ( ! empty( $prepared['search'] ) ) {
+
+ if ( ! empty( $this->search_columns_mapping ) ) {
+
+ if ( empty( $prepared['search_columns'] ) ) {
+ return llms_rest_bad_request_error( __( 'You must provide a valid set of columns to search into.', 'lifterlms' ) );
+ }
+
+ // Filter search columns by context.
+ $search_columns = array_keys( $this->filter_response_by_context( array_flip( $prepared['search_columns'] ), $request['context'] ) );
+
+ // Check if one of more unallowed search columns have been provided as request query params (not merged with defaults).
+ if ( ! empty( $request->get_query_params()['search_columns'] ) ) {
+
+ $forbidden_columns = array_diff( $prepared['search_columns'], $search_columns );
+
+ if ( ! empty( $forbidden_columns ) ) {
+ return llms_rest_authorization_required_error(
+ sprintf(
+ // Translators: %1$s comma separated list of search columns.
+ __( 'You are not allowed to search into the provided column(s): %1$s', 'lifterlms' ),
+ implode( ',', $forbidden_columns )
+ )
+ );
+ }
+ }
+
+ $prepared['search_columns'] = array();
+
+ // Map our search columns into query compatible ones.
+ foreach ( $search_columns as $search_column ) {
+ if ( isset( $this->search_columns_mapping[ $search_column ] ) ) {
+ $prepared['search_columns'][] = $this->search_columns_mapping[ $search_column ];
+ }
+ }
+
+ if ( empty( $prepared['search_columns'] ) ) {
+ return llms_rest_bad_request_error( __( 'You must provide a valid set of columns to search into.', 'lifterlms' ) );
+ }
+ }
+
+ $prepared['search'] = '*' . $prepared['search'] . '*';
+
+ } else {
+
+ // Ensure a search string is set in case the orderby is set to 'relevance'.
+ if ( ! empty( $request['orderby'] ) && 'relevance' === $request['orderby'] ) {
+ return llms_rest_bad_request_error(
+ __( 'You need to define a search term to order by relevance.', 'lifterlms' )
+ );
+ }
+ }
+
+ return $prepared;
+ }
+
+ /**
+ * Prepare query args for total count query.
+ *
+ * @since 1.0.0-beta.7
+ *
+ * @param array $args Array of query args.
+ * @param WP_REST_Request $request Full details about the request.
+ * @return array
+ */
+ protected function prepare_args_for_total_count_query( $args, $request ) {
+ // Run the query again without pagination to get a proper total count.
+ unset( $args['paged'], $args['page'] );
+ return $args;
+ }
+
+ /**
+ * Prepare collection items for response.
+ *
+ * @since 1.0.0-beta.7
+ *
+ * @param array $objects Array of objects to be prepared for response.
+ * @param WP_REST_Request $request Full details about the request.
+ * @return array
+ */
+ protected function prepare_collection_items_for_response( $objects, $request ) {
+
+ $items = array();
+
+ foreach ( $objects as $object ) {
+ $object = $this->get_object( $object, false );
+
+ if ( ! $this->check_read_object_permissions( $object ) ) {
+ continue;
+ }
+
+ $item = $this->prepare_item_for_response( $object, $request );
+ if ( ! is_wp_error( $item ) ) {
+ $items[] = $this->prepare_response_for_collection( $item );
+ }
+ }
+
+ return $items;
+ }
+
+ /**
+ * Add pagination info and links to the response header.
+ *
+ * @since 1.0.0-beta.7
+ *
+ * @param WP_REST_Response $response Current response being served.
+ * @param array $pagination Pagination array.
+ * @param WP_REST_Request $request Full details about the request.
+ * @return WP_REST_Response
+ */
+ protected function add_header_pagination( $response, $pagination, $request ) {
+
+ $response->header( 'X-WP-Total', $pagination['total_results'] );
+ $response->header( 'X-WP-TotalPages', $pagination['total_pages'] );
+
+ $base = add_query_arg( urlencode_deep( $request->get_query_params() ), rest_url( $request->get_route() ) );
+
+ // First page link.
+ if ( 1 !== $pagination['current_page'] ) {
+ $first_link = add_query_arg( 'page', 1, $base );
+ $response->link_header( 'first', $first_link );
+ }
+
+ // Previous page link.
+ if ( $pagination['current_page'] > 1 ) {
+ $prev_page = $pagination['current_page'] - 1;
+ if ( $prev_page > $pagination['total_pages'] ) {
+ $prev_page = $pagination['total_pages'];
+ }
+ $prev_link = add_query_arg( 'page', $prev_page, $base );
+ $response->link_header( 'prev', $prev_link );
+ }
+
+ // Next page link.
+ if ( $pagination['total_pages'] > $pagination['current_page'] ) {
+ $next_link = add_query_arg( 'page', $pagination['current_page'] + 1, $base );
+ $response->link_header( 'next', $next_link );
+ }
+
+ // Last page link.
+ if ( $pagination['total_pages'] && $pagination['total_pages'] !== $pagination['current_page'] ) {
+ $last_link = add_query_arg( 'page', $pagination['total_pages'], $base );
+ $response->link_header( 'last', $last_link );
+ }
+
+ return $response;
+
+ }
+
+ /**
+ * Retrieves the query params for retrieving a single resource.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return array
+ */
+ public function get_get_item_params() {
+
+ return array(
+ 'context' => $this->get_context_param(
+ array(
+ 'default' => 'view',
+ )
+ ),
+ );
+
+ }
+
+ /**
+ * Retrieve arguments for deleting a resource.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return array
+ */
+ public function get_delete_item_args() {
+ return array();
+ }
+
+ /**
+ * Map request keys to database keys for insertion.
+ *
+ * Array keys are the request fields (as defined in the schema) and
+ * array values are the database fields.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return array
+ */
+ protected function map_schema_to_database() {
+
+ $schema = $this->get_item_schema();
+ $keys = array_keys( $schema['properties'] );
+ return array_combine( $keys, $keys );
+
+ }
+
+ /**
+ * Prepare request arguments for a database insert/update.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param WP_Rest_Request $request Request object.
+ * @return array
+ */
+ protected function prepare_item_for_database( $request ) {
+
+ $prepared = array();
+ $map = $this->map_schema_to_database();
+ $schema = $this->get_item_schema();
+
+ foreach ( $map as $req_key => $db_key ) {
+ if ( ! empty( $request[ $req_key ] ) ) {
+ $prepared[ $db_key ] = $request[ $req_key ];
+ }
+ }
+
+ return $prepared;
+
+ }
+
+ /**
+ * Prepares a single object for response.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.3 Return early with a WP_Error if `$object` is a WP_Error.
+ * @since 1.0.0-beta.14 Pass the `$request` parameter to `prepare_links()`.
+ *
+ * @param obj $object Raw object from database.
+ * @param WP_REST_Request $request Request object.
+ * @return WP_Error|WP_REST_Response
+ */
+ public function prepare_item_for_response( $object, $request ) {
+
+ if ( is_wp_error( $object ) ) {
+ return $object;
+ }
+
+ $data = $this->prepare_object_for_response( $object, $request );
+
+ $context = ! empty( $request['context'] ) ? $request['context'] : 'view';
+
+ $data = $this->add_additional_fields_to_object( $data, $request );
+ $data = $this->filter_response_by_context( $data, $context );
+
+ // Wrap the data in a response object.
+ $response = rest_ensure_response( $data );
+
+ // Add links.
+ $response->add_links( $this->prepare_links( $object, $request ) );
+
+ return $response;
+
+ }
+
+ /**
+ * Prepare links for the request.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.14 Added $request parameter.
+ *
+ * @param obj $object Item object.
+ * @param WP_REST_Request $request Request object.
+ * @return array
+ */
+ protected function prepare_links( $object, $request ) {
+
+ $base = rest_url( sprintf( '/%1$s/%2$s', $this->namespace, $this->rest_base ) );
+
+ $links = array(
+ 'self' => array(
+ 'href' => sprintf( '%1$s/%2$d', $base, $this->get_object_id( $object ) ),
+ ),
+ 'collection' => array(
+ 'href' => $base,
+ ),
+ );
+
+ return $links;
+
+ }
+
+ /**
+ * Register routes.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return void
+ */
+ public function register_routes() {
+
+ register_rest_route(
+ $this->namespace,
+ '/' . $this->rest_base,
+ array(
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'get_items' ),
+ 'permission_callback' => array( $this, 'get_items_permissions_check' ),
+ 'args' => $this->get_collection_params(),
+ ),
+ array(
+ 'methods' => WP_REST_Server::CREATABLE,
+ 'callback' => array( $this, 'create_item' ),
+ 'permission_callback' => array( $this, 'create_item_permissions_check' ),
+ 'args' => $this->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
+ ),
+ 'schema' => array( $this, 'get_public_item_schema' ),
+ )
+ );
+
+ register_rest_route(
+ $this->namespace,
+ '/' . $this->rest_base . '/(?P[\d]+)',
+ array(
+ 'args' => array(
+ 'id' => array(
+ 'description' => __( 'Unique identifier for the resource.', 'lifterlms' ),
+ 'type' => 'integer',
+ ),
+ ),
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'get_item' ),
+ 'permission_callback' => array( $this, 'get_item_permissions_check' ),
+ 'args' => $this->get_get_item_params(),
+ ),
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( $this, 'update_item' ),
+ 'permission_callback' => array( $this, 'update_item_permissions_check' ),
+ 'args' => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ), // see class-wp-rest-controller.php.
+ ),
+ array(
+ 'methods' => WP_REST_Server::DELETABLE,
+ 'callback' => array( $this, 'delete_item' ),
+ 'permission_callback' => array( $this, 'delete_item_permissions_check' ),
+ 'args' => $this->get_delete_item_args(),
+ ),
+ 'schema' => array( $this, 'get_public_item_schema' ),
+ )
+ );
+
+ }
+
+ /**
+ * Update item.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.12 Call `object_inserted` and `object_completely_inserted` after an object is
+ * respectively inserted in the DB and all its additional fields have been
+ * updated as well (completely inserted).
+ *
+ * @param WP_REST_Request $request Request object.
+ * @return WP_REST_Response|WP_Error Response object or WP_Error on failure.
+ */
+ public function update_item( $request ) {
+
+ $object = $this->get_object( $request['id'] );
+ if ( is_wp_error( $object ) ) {
+ return $object;
+ }
+
+ $item = $this->prepare_item_for_database( $request );
+ $object = $this->update_object( $item, $request );
+ $schema = $this->get_item_schema();
+
+ if ( is_wp_error( $object ) ) {
+ return $object;
+ }
+
+ $this->object_inserted( $object, $request, $schema, false );
+
+ $fields_update = $this->update_additional_fields_for_object( $item, $request );
+ if ( is_wp_error( $fields_update ) ) {
+ return $fields_update;
+ }
+
+ $this->object_completely_inserted( $object, $request, $schema, false );
+
+ $request->set_param( 'context', 'edit' );
+
+ $response = $this->prepare_item_for_response( $object, $request );
+ $response = rest_ensure_response( $response );
+
+ return $response;
+
+ }
+
+}
diff --git a/libraries/lifterlms-rest/includes/abstracts/class-llms-rest-database-resource.php b/libraries/lifterlms-rest/includes/abstracts/class-llms-rest-database-resource.php
new file mode 100644
index 0000000000..f16dec60f4
--- /dev/null
+++ b/libraries/lifterlms-rest/includes/abstracts/class-llms-rest-database-resource.php
@@ -0,0 +1,273 @@
+create_prepare( $data );
+ if ( is_wp_error( $data ) ) {
+ return $data;
+ }
+
+ return $this->save( new $this->model(), $data );
+
+ }
+
+ /**
+ * Prepare data for creation.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param array $data Array of data.
+ * @return array
+ */
+ public function create_prepare( $data ) {
+
+ if ( ! empty( $data['id'] ) ) {
+ // Translators: %s = name of the resource type (for example: "API Key").
+ return new WP_Error( 'llms_rest_' . $this->id . '_exists', sprintf( __( 'Cannot create a new %s with a pre-defined ID.', 'lifterlms' ), $this->get_i18n_name() ) );
+ }
+
+ // Merge in default values.
+ $data = wp_parse_args( array_filter( $data ), $this->get_default_column_values() );
+
+ // Required Fields.
+ foreach ( $this->required_columns as $key ) {
+
+ if ( empty( $data[ $key ] ) ) {
+ return new WP_Error(
+ 'llms_rest_' . $this->id . '_missing_' . $key,
+ // Translators: %1$s = name of the resource type; %2$s = field name.
+ sprintf( __( '%1$s "%2$s" is required.', 'lifterlms' ), $this->get_i18n_name(), $key )
+ );
+ }
+ }
+
+ $err = $this->is_data_valid( $data );
+ if ( is_wp_error( $err ) ) {
+ return $err;
+ }
+
+ return $data;
+
+ }
+
+ /**
+ * Delete a the resource.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param int $id Resource ID.
+ * @return bool `true` on success, `false` if the resource couldn't be found or an error was encountered during deletion.
+ */
+ public function delete( $id ) {
+ $obj = $this->get( $id, false );
+ if ( $obj ) {
+ return $obj->delete();
+ }
+ return false;
+ }
+
+ /**
+ * Retrieve an API Key object instance.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param int $id API Key ID.
+ * @param bool $hydrate If true, pulls all key data from the database on instantiation.
+ * @return obj|false
+ */
+ public function get( $id, $hydrate = true ) {
+ $obj = new $this->model( $id, $hydrate );
+ if ( $obj && $obj->exists() ) {
+ return $obj;
+ }
+ return false;
+ }
+
+ /**
+ * Get default column values.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return array
+ */
+ public function get_default_column_values() {
+
+ /**
+ * Allow customization of default Resource values.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param array $values An associative array of default values.
+ */
+ return apply_filters( 'llms_rest_' . $this->id . '_default_properties', $this->default_column_values );
+
+ }
+
+ /**
+ * Retrieve the translated resource name.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return string
+ */
+ protected function get_i18n_name() {
+ return __( 'Resource', 'lifterlms' );
+ }
+
+ /**
+ * Update a resource.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param array $data {
+ * Array of data to update.
+ *
+ * @type int $id (Required). Resource ID.
+ * }
+ * @return [type]
+ */
+ public function update( $data ) {
+
+ if ( empty( $data['id'] ) ) {
+ // Translators: %s = name of the resource type (for example: "API Key").
+ return new WP_Error( 'llms_rest_' . $this->id . '_missing_id', sprintf( __( 'No %s ID was supplied.', 'lifterlms' ), $this->get_i18n_name() ) );
+ }
+
+ $obj = $this->get( $data['id'] );
+ if ( ! $obj || ! $obj->exists() ) {
+ // Translators: %s = name of the resource type (for example: "API Key").
+ return new WP_Error( 'llms_rest_' . $this->id . '_invalid_' . $this->id, sprintf( __( 'The requested %s could not be located.', 'lifterlms' ), $this->get_i18n_name() ) );
+ }
+
+ $data = $this->update_prepare( $data );
+ if ( is_wp_error( $data ) ) {
+ return $data;
+ }
+
+ return $this->save( $obj, $data );
+
+ }
+
+ /**
+ * Prepare data for an update.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param array $data Associative array of data to set to a resources properties.
+ * @return object|WP_Error
+ */
+ protected function update_prepare( $data ) {
+
+ // Filter out write-protected keys.
+ $data = array_diff_key(
+ $data,
+ array_fill_keys( $this->read_only_columns, false )
+ );
+
+ $err = $this->is_data_valid( $data );
+ if ( is_wp_error( $err ) ) {
+ return $err;
+ }
+
+ return $data;
+
+ }
+
+ /**
+ * Persist data.
+ *
+ * This method assumes the supplied data has already been validated and sanitized.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param obj $obj Instantiated object.
+ * @param array $data Associative array of data to persist.
+ * @return obj
+ */
+ protected function save( $obj, $data ) {
+
+ $obj->setup( $data )->save();
+ return $obj;
+
+ }
+
+}
diff --git a/libraries/lifterlms-rest/includes/abstracts/class-llms-rest-posts-controller.php b/libraries/lifterlms-rest/includes/abstracts/class-llms-rest-posts-controller.php
new file mode 100644
index 0000000000..c5d22330bc
--- /dev/null
+++ b/libraries/lifterlms-rest/includes/abstracts/class-llms-rest-posts-controller.php
@@ -0,0 +1,1827 @@
+set_bulk()` when there's no data to update.
+ * Fix wp:featured_media link, we don't expose any embeddable field.
+ * Also `self` and `collection` links prepared in the parent class.
+ * Added `"llms_rest_insert_{$this->post_type}"` and `"llms_rest_insert_{$this->post_type}"` action hooks:
+ * fired after inserting/updating an llms post into the database.
+ * @since 1.0.0-beta.8 Return links to those taxonomies which have an accessible rest route.
+ * Initialize `$prepared_item` array before adding values to it.
+ * @since 1.0.0-beta.9 Implemented a generic way to create and get an llms post object instance given a `post_type`.
+ * In `get_objects_from_query()` avoid performing an additional query, just return the already retrieved posts.
+ * Removed `"llms_rest_{$this->post_type}_filters_removed_for_response"` filter hooks,
+ * `"llms_rest_{$this->post_type}_filters_removed_for_response"` added.
+ * @since 1.0.0-beta.11 Fixed `"llms_rest_insert_{$this->post_type}"` and `"llms_rest_insert_{$this->post_type}"` action hooks fourth param:
+ * must be false when updating.
+ * @since 1.0.0-beta.12 Moved parameters to query args mapping from `$this->prepare_collection_params()` to `$this->map_params_to_query_args()`.
+ * @since 1.0.0-beta.14 Update `prepare_links()` to accept a second parameter, `WP_REST_Request`.
+ * @since 1.0.0-beta.21 Enable search.
+ */
+abstract class LLMS_REST_Posts_Controller extends LLMS_REST_Controller {
+
+ /**
+ * Post type.
+ *
+ * @var string
+ */
+ protected $post_type;
+
+ /**
+ * Route base.
+ *
+ * @var string
+ */
+ protected $collection_route_base_for_pagination;
+
+ /**
+ * Schema properties available for ordering the collection.
+ *
+ * @var string[]
+ */
+ protected $orderby_properties = array(
+ 'id',
+ 'title',
+ 'date_created',
+ 'date_updated',
+ 'menu_order',
+ 'relevance',
+ );
+
+ /**
+ * Whether search is allowed
+ *
+ * @var boolean
+ */
+ protected $is_searchable = true;
+
+ /**
+ * LLMS post class name.
+ *
+ * @since 1.0.0-beta.9
+ * @var string;
+ */
+ protected $llms_post_class;
+
+ /**
+ * Retrieves an array of arguments for the delete endpoint.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return array Delete endpoint arguments.
+ */
+ public function get_delete_item_args() {
+
+ return array(
+ 'force' => array(
+ 'description' => __( 'Bypass the trash and force course deletion.', 'lifterlms' ),
+ 'type' => 'boolean',
+ 'default' => false,
+ ),
+ );
+
+ }
+
+ /**
+ * Retrieves the query params for retrieving a single resource.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return array
+ */
+ public function get_get_item_params() {
+
+ $params = parent::get_get_item_params();
+ $schema = $this->get_item_schema();
+
+ if ( isset( $schema['properties']['password'] ) ) {
+ $params['password'] = array(
+ 'description' => __( 'Post password. Required if the post is password protected.', 'lifterlms' ),
+ 'type' => 'string',
+ );
+ }
+
+ return $params;
+
+ }
+
+ /**
+ * Determine if the current user can view the object.
+ *
+ * @since 1.0.0-beta.7
+ *
+ * @param object $object Object.
+ * @return bool
+ */
+ protected function check_read_object_permissions( $object ) {
+ return $this->check_read_permission( $object );
+ }
+
+ /**
+ * Check if a given request has access to read items.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ * @return WP_Error|boolean
+ */
+ public function get_items_permissions_check( $request ) {
+
+ // Everybody can list llms posts (in read mode).
+ if ( 'edit' === $request['context'] && ! $this->check_update_permission() ) {
+ return llms_rest_authorization_required_error();
+ }
+
+ return true;
+
+ }
+
+ /**
+ * Retrieve pagination information from an objects query.
+ *
+ * @since 1.0.0-beta.7
+ *
+ * @param WP_Query $query Objects query result returned by {@see LLMS_REST_Posts_Controller::get_objects_query()}.
+ * @param array $prepared Array of collection arguments.
+ * @param WP_REST_Request $request Request object.
+ * @return array {
+ * Array of pagination information.
+ *
+ * @type int $current_page Current page number.
+ * @type int $total_results Total number of results.
+ * @type int $total_pages Total number of results pages.
+ * }
+ */
+ protected function get_pagination_data_from_query( $query, $prepared, $request ) {
+
+ $total_results = (int) $query->found_posts;
+ $current_page = isset( $prepared['paged'] ) ? (int) $prepared['paged'] : 1;
+ $total_pages = (int) ceil( $total_results / (int) $query->get( 'posts_per_page' ) );
+
+ return compact( 'current_page', 'total_results', 'total_pages' );
+
+ }
+
+ /**
+ * Check if a given request has access to create an item.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.18 Use plural post type name.
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ * @return WP_Error|boolean
+ */
+ public function create_item_permissions_check( $request ) {
+
+ $post_type_object = get_post_type_object( $this->post_type );
+ $post_type_name = $post_type_object->labels->name;
+
+ if ( ! empty( $request['id'] ) ) {
+ // Translators: %s = The post type name.
+ return llms_rest_bad_request_error( sprintf( __( 'Cannot create existing %s.', 'lifterlms' ), $post_type_name ) );
+ }
+
+ if ( ! $this->check_create_permission() ) {
+ // Translators: %s = The post type name.
+ return llms_rest_authorization_required_error( sprintf( __( 'Sorry, you are not allowed to create %s as this user.', 'lifterlms' ), $post_type_name ) );
+ }
+
+ if ( ! $this->check_assign_terms_permission( $request ) ) {
+ return llms_rest_authorization_required_error( __( 'Sorry, you are not allowed to assign the provided terms.', 'lifterlms' ) );
+ }
+
+ return true;
+ }
+
+
+ /**
+ * Creates a single LLMS post.
+ *
+ * Extending classes can add additional object fields by overriding the method `update_additional_object_fields()`.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.7 Added `"llms_rest_insert_{$this->post_type}"` and `"llms_rest_insert_{$this->post_type}"` action hooks:
+ * fired after inserting/uodateing an llms post into the database.
+ * @since 1.0.0-beta.25 Allow updating meta with the same value as the stored one.
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+ */
+ public function create_item( $request ) {
+
+ $prepared_item = $this->prepare_item_for_database( $request );
+ if ( is_wp_error( $prepared_item ) ) {
+ return $prepared_item;
+ }
+
+ $object = $this->create_llms_post( $prepared_item );
+ if ( is_wp_error( $object ) ) {
+
+ if ( 'db_insert_error' === $object->get_error_code() ) {
+ $object->add_data( array( 'status' => 500 ) );
+ } else {
+ $object->add_data( array( 'status' => 400 ) );
+ }
+
+ return $object;
+ }
+
+ $schema = $this->get_item_schema();
+
+ /**
+ * Fires after a single llms post is created or updated via the REST API.
+ *
+ * The dynamic portion of the hook name, `$this->post_type`, refers to the post type slug.
+ *
+ * @since 1.0.0-beta.7
+ *
+ * @param LLMS_Post $object Inserted or updated llms object.
+ * @param WP_REST_Request $request Request object.
+ * @param array $schema The item schema.
+ * @param bool $creating True when creating a post, false when updating.
+ */
+ do_action( "llms_rest_insert_{$this->post_type}", $object, $request, $schema, true );
+
+ // Set all the other properties.
+ // TODO: maybe we want to filter the post properties that have already been inserted before.
+ $set_bulk_result = $object->set_bulk( $prepared_item, true, true );
+ if ( is_wp_error( $set_bulk_result ) ) {
+
+ if ( 'db_update_error' === $set_bulk_result->get_error_code() ) {
+ $set_bulk_result->add_data( array( 'status' => 500 ) );
+ } else {
+ $set_bulk_result->add_data( array( 'status' => 400 ) );
+ }
+
+ return $set_bulk_result;
+ }
+
+ $object_id = $object->get( 'id' );
+
+ $additional_fields = $this->update_additional_object_fields( $object, $request, $schema, $prepared_item );
+ if ( is_wp_error( $additional_fields ) ) {
+ return $additional_fields;
+ }
+
+ if ( ! empty( $schema['properties']['featured_media'] ) && isset( $request['featured_media'] ) ) {
+ $this->handle_featured_media( $request['featured_media'], $object_id );
+ }
+
+ $terms_update = $this->handle_terms( $object_id, $request );
+ if ( is_wp_error( $terms_update ) ) {
+ return $terms_update;
+ }
+
+ /**
+ * TODO: understand how to treat possible conflicting properties => instructors are registered as additional rest field by llms_blocks
+ */
+ // $fields_update = $this->update_additional_fields_for_object( $object, $request );
+ // if ( is_wp_error( $fields_update ) ) {
+ // return $fields_update;
+ // }
+ $request->set_param( 'context', 'edit' );
+
+ /**
+ * Fires after a single llms post is completely created or updated via the REST API.
+ *
+ * The dynamic portion of the hook name, `$this->post_type`, refers to the post type slug.
+ *
+ * @since 1.0.0-beta.7
+ *
+ * @param LLMS_Post $object Inserted or updated llms object.
+ * @param WP_REST_Request $request Request object.
+ * @param array $schema The item schema.
+ * @param bool $creating True when creating a post, false when updating.
+ */
+ do_action( "llms_rest_after_insert_{$this->post_type}", $object, $request, $schema, true );
+
+ $response = $this->prepare_item_for_response( $object, $request );
+
+ $response->set_status( 201 );
+
+ $response->header( 'Location', rest_url( sprintf( '%s/%s/%d', $this->namespace, $this->rest_base, $object_id ) ) );
+
+ return $response;
+ }
+
+ /**
+ * Check if a given request has access to read an item.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ * @return WP_Error|boolean
+ */
+ public function get_item_permissions_check( $request ) {
+
+ $object = $this->get_object( (int) $request['id'] );
+ if ( is_wp_error( $object ) ) {
+ return $object;
+ }
+
+ if ( 'edit' === $request['context'] && ! $this->check_update_permission( $object ) ) {
+ return llms_rest_authorization_required_error();
+ }
+
+ if ( ! empty( $request['password'] ) ) {
+ // Check post password, and return error if invalid.
+ if ( ! hash_equals( $object->get( 'password' ), $request['password'] ) ) {
+ return llms_rest_authorization_required_error( __( 'Incorrect password.', 'lifterlms' ) );
+ }
+ }
+
+ // Allow access to all password protected posts if the context is edit.
+ if ( 'edit' === $request['context'] ) {
+ add_filter( 'post_password_required', '__return_false' );
+ }
+
+ if ( ! $this->check_read_permission( $object ) ) {
+ return llms_rest_authorization_required_error();
+ }
+
+ return true;
+ }
+
+ /**
+ * Retrieves the query params for the objects collection
+ *
+ * @since 1.0.0-beta.19
+ *
+ * @return array Collection parameters.
+ */
+ public function get_collection_params() {
+
+ $query_params = parent::get_collection_params();
+ $schema = $this->get_item_schema();
+
+ if ( isset( $schema['properties']['status'] ) ) {
+ $query_params['status'] = array(
+ 'default' => 'publish',
+ 'description' => __( 'Limit result set to posts assigned one or more statuses.', 'lifterlms' ),
+ 'type' => 'array',
+ 'items' => array(
+ 'enum' => array_merge(
+ array_keys(
+ get_post_stati()
+ ),
+ array(
+ 'any',
+ )
+ ),
+ 'type' => 'string',
+ ),
+ 'sanitize_callback' => array( $this, 'sanitize_post_statuses' ),
+ );
+ }
+
+ return $query_params;
+
+ }
+
+ /**
+ * Format query arguments to retrieve a collection of objects.
+ *
+ * @since 1.0.0-beta.7
+ * @since 1.0.0-beta.12 Moved parameters to query args mapping into a different method.
+ * @since 1.0.0-beta.18 Correctly return errors.
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ * @return array|WP_Error
+ */
+ protected function prepare_collection_query_args( $request ) {
+
+ $prepared = parent::prepare_collection_query_args( $request );
+ if ( is_wp_error( $prepared ) ) {
+ return $prepared;
+ }
+
+ // Force the post_type argument, since it's not a user input variable.
+ $prepared['post_type'] = $this->post_type;
+
+ $query_args = $this->prepare_items_query( $prepared, $request );
+
+ return $query_args;
+
+ }
+
+ /**
+ * Map schema to query arguments to retrieve a collection of objects.
+ *
+ * @since 1.0.0-beta.12
+ * @since 1.0.0-beta.19 Map 'status' collection param to to 'post_status' query arg.
+ *
+ * @param array $prepared Array of collection arguments.
+ * @param array $registered Registered collection params.
+ * @param WP_REST_Request $request Full details about the request.
+ * @return array|WP_Error
+ */
+ protected function map_params_to_query_args( $prepared, $registered, $request ) {
+
+ $args = array();
+
+ /*
+ * This array defines mappings between public API query parameters whose
+ * values are accepted as-passed, and their internal WP_Query parameter
+ * name equivalents (some are the same). Only values which are also
+ * present in $registered will be set.
+ */
+ $parameter_mappings = array(
+ 'order' => 'order',
+ 'orderby' => 'orderby',
+ 'page' => 'paged',
+ 'exclude' => 'post__not_in',
+ 'include' => 'post__in',
+ 'search' => 's',
+ 'status' => 'post_status',
+ );
+
+ /*
+ * For each known parameter which is both registered and present in the request,
+ * set the parameter's value on the query $args.
+ */
+ foreach ( $parameter_mappings as $api_param => $wp_param ) {
+ if ( isset( $registered[ $api_param ], $request[ $api_param ] ) ) {
+ $args[ $wp_param ] = $request[ $api_param ];
+ }
+ }
+
+ // Ensure our per_page parameter overrides any provided posts_per_page filter.
+ if ( isset( $registered['per_page'] ) ) {
+ $args['posts_per_page'] = $request['per_page'];
+ }
+
+ return $args;
+ }
+
+ /**
+ * Check if a given request has access to update an item.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.18 Use plural post type name.
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ * @return WP_Error|boolean
+ */
+ public function update_item_permissions_check( $request ) {
+
+ $object = $this->get_object( (int) $request['id'] );
+ if ( is_wp_error( $object ) ) {
+ return $object;
+ }
+
+ $post_type_object = get_post_type_object( $this->post_type );
+ $post_type_name = $post_type_object->labels->name;
+
+ if ( ! $this->check_update_permission( $object ) ) {
+ // Translators: %s = The post type name.
+ return llms_rest_authorization_required_error( sprintf( __( 'Sorry, you are not allowed to update %s as this user.', 'lifterlms' ), $post_type_name ) );
+ }
+
+ if ( ! $this->check_assign_terms_permission( $request ) ) {
+ return llms_rest_authorization_required_error( __( 'Sorry, you are not allowed to assign the provided terms.', 'lifterlms' ) );
+ }
+
+ return true;
+ }
+
+ /**
+ * Updates a single llms post.
+ *
+ * Extending classes can add additional object fields by overriding the method `update_additional_object_fields()`.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.7 Don't execute `$object->set_bulk()` when there's no data to update:
+ * this fixes an issue when updating only properties which are not handled in `prepare_item_for_database()`.
+ * Added `"llms_rest_insert_{$this->post_type}"` and `"llms_rest_insert_{$this->post_type}"` action hooks:
+ * fired after inserting/uodateing an llms post into the database.
+ * @since 1.0.0-beta.11 Fixed `"llms_rest_insert_{$this->post_type}"` and `"llms_rest_insert_{$this->post_type}"` action hooks fourth param:
+ * must be false when updating.
+ * @since 1.0.0-beta.25 Allow updating meta with the same value as the stored one.
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+ */
+ public function update_item( $request ) {
+
+ $object = $this->get_object( (int) $request['id'] );
+ if ( is_wp_error( $object ) ) {
+ return $object;
+ }
+
+ $prepared_item = $this->prepare_item_for_database( $request );
+ if ( is_wp_error( $prepared_item ) ) {
+ return $prepared_item;
+ }
+
+ $update_result = empty( array_diff_key( $prepared_item, array_flip( array( 'id' ) ) ) ) ? false : $object->set_bulk( $prepared_item, true, true );
+ if ( is_wp_error( $update_result ) ) {
+
+ if ( 'db_update_error' === $update_result->get_error_code() ) {
+ $update_result->add_data( array( 'status' => 500 ) );
+ } else {
+ $update_result->add_data( array( 'status' => 400 ) );
+ }
+
+ return $update_result;
+ }
+
+ $schema = $this->get_item_schema();
+
+ /**
+ * Fires after a single llms post is created or updated via the REST API.
+ *
+ * The dynamic portion of the hook name, `$this->post_type`, refers to the post type slug.
+ *
+ * @since 1.0.0-beta.7
+ *
+ * @param LLMS_Post $object Inserted or updated llms object.
+ * @param WP_REST_Request $request Request object.
+ * @param array $schema The item schema.
+ * @param bool $creating True when creating a post, false when updating.
+ */
+ do_action( "llms_rest_insert_{$this->post_type}", $object, $request, $schema, false );
+
+ $object_id = $object->get( 'id' );
+
+ $additional_fields = $this->update_additional_object_fields( $object, $request, $schema, $prepared_item, false );
+ if ( is_wp_error( $additional_fields ) ) {
+ return $additional_fields;
+ }
+
+ if ( ! empty( $schema['properties']['featured_media'] ) && isset( $request['featured_media'] ) ) {
+ $this->handle_featured_media( $request['featured_media'], $object_id );
+ }
+
+ $terms_update = $this->handle_terms( $object_id, $request );
+ if ( is_wp_error( $terms_update ) ) {
+ return $terms_update;
+ }
+
+ /**
+ * TODO: understand how to treat possible conflicting properties => instructors are registered as additional rest field by llms_blocks
+ */
+ // $fields_update = $this->update_additional_fields_for_object( $object, $request );
+ // if ( is_wp_error( $fields_update ) ) {
+ // return $fields_update;
+ // }
+ $request->set_param( 'context', 'edit' );
+
+ /**
+ * Fires after a single llms post is completely created or updated via the REST API.
+ *
+ * The dynamic portion of the hook name, `$this->post_type`, refers to the post type slug.
+ *
+ * @since 1.0.0-beta.7
+ *
+ * @param LLMS_Post $object Inserted or updated llms object.
+ * @param WP_REST_Request $request Request object.
+ * @param array $schema The item schema.
+ * @param bool $creating True when creating a post, false when updating.
+ */
+ do_action( "llms_rest_after_insert_{$this->post_type}", $object, $request, $schema, false );
+
+ return $this->prepare_item_for_response( $object, $request );
+
+ }
+
+ /**
+ * Updates a single llms post.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.7 return description updated.
+ *
+ * @param LLMS_Post_Model $object LMMS_Post_Model instance.
+ * @param array $prepared_item Array.
+ * @param WP_REST_Request $request Full details about the request.
+ * @param array $schema The item schema.
+ * @return bool|WP_Error True on success or false if nothing to update, WP_Error object if something went wrong during the update.
+ */
+ protected function update_additional_object_fields( $object, $prepared_item, $request, $schema ) {
+ return true;
+ }
+
+ /**
+ * Check if a given request has access to delete an item.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.18 Provide a more significant error message when trying to delete an item without permissions.
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ * @return bool|WP_Error
+ */
+ public function delete_item_permissions_check( $request ) {
+
+ $object = $this->get_object( (int) $request['id'] );
+ if ( is_wp_error( $object ) ) {
+ // LLMS_Post not found, we don't return a 404.
+ if ( in_array( 'llms_rest_not_found', $object->get_error_codes(), true ) ) {
+ return true;
+ }
+
+ return $object;
+ }
+
+ if ( ! $this->check_delete_permission( $object ) ) {
+ return llms_rest_authorization_required_error(
+ sprintf(
+ // Translators: %s = The post type name.
+ __( 'Sorry, you are not allowed to delete %s as this user.', 'lifterlms' ),
+ get_post_type_object( $this->post_type )->labels->name
+ )
+ );
+ }
+
+ return true;
+
+ }
+
+ /**
+ * Deletes a single llms post.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+ */
+ public function delete_item( $request ) {
+
+ $object = $this->get_object( (int) $request['id'] );
+ $response = new WP_REST_Response();
+ $response->set_status( 204 );
+
+ if ( is_wp_error( $object ) ) {
+ // Course not found, we don't return a 404.
+ if ( in_array( 'llms_rest_not_found', $object->get_error_codes(), true ) ) {
+ return $response;
+ }
+
+ return $object;
+ }
+
+ $post_type_object = get_post_type_object( $this->post_type );
+ $post_type_name = $post_type_object->labels->singular_name;
+
+ $id = $object->get( 'id' );
+ $force = $this->is_delete_forced( $request );
+
+ // If we're forcing, then delete permanently.
+ if ( $force ) {
+ $result = wp_delete_post( $id, true );
+ } else {
+
+ $supports_trash = $this->is_trash_supported();
+
+ // If we don't support trashing for this type, error out.
+ if ( ! $supports_trash ) {
+ return new WP_Error(
+ 'llms_rest_trash_not_supported',
+ /* translators: %1$s: post type name, %2$s: force=true */
+ sprintf( __( 'The %1$s does not support trashing. Set \'%2$s\' to delete.', 'lifterlms' ), $post_type_name, 'force=true' ),
+ array( 'status' => 501 )
+ );
+ }
+
+ // Otherwise, only trash if we haven't already.
+ if ( 'trash' !== $object->get( 'status' ) ) {
+ // (Note that internally this falls through to `wp_delete_post` if
+ // the trash is disabled.)
+ $result = wp_trash_post( $id );
+ } else {
+ $result = true;
+ }
+
+ $request->set_param( 'context', 'edit' );
+ $object = $this->get_object( $id );
+ $response = $this->prepare_item_for_response( $object, $request );
+
+ }
+
+ if ( ! $result ) {
+ return new WP_Error(
+ 'llms_rest_cannot_delete',
+ /* translators: %s: post type name */
+ sprintf( __( 'The %s cannot be deleted.', 'lifterlms' ), $post_type_name ),
+ array( 'status' => 500 )
+ );
+ }
+
+ return $response;
+
+ }
+
+ /**
+ * Whether the delete should be forced.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ * @return bool True if the delete should be forced, false otherwise.
+ */
+ protected function is_delete_forced( $request ) {
+ return isset( $request['force'] ) && (bool) $request['force'];
+ }
+
+ /**
+ * Whether the trash is supported.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return bool True if the trash is supported, false otherwise.
+ */
+ protected function is_trash_supported() {
+ return ( EMPTY_TRASH_DAYS > 0 );
+ }
+
+
+ /**
+ * Retrieve a query object based on arguments from a `get_items()` (collection) request.
+ *
+ * @since 1.0.0-beta.7
+ *
+ * @param array $prepared Array of collection arguments.
+ * @param WP_REST_Request $request Full details about the request.
+ * @return WP_Query
+ */
+ protected function get_objects_query( $prepared, $request ) {
+
+ return new WP_Query( $prepared );
+
+ }
+
+ /**
+ * Retrieve an array of objects from the result of `$this->get_objects_query()`.
+ *
+ * @since 1.0.0-beta.7
+ * @since 1.0.0-beta.9 Avoid performing an additional query, just return the already retrieved posts.
+ *
+ * @param WP_Query $query WP_Query query result.
+ * @return WP_Post[]
+ */
+ protected function get_objects_from_query( $query ) {
+
+ return $query->posts;
+
+ }
+
+ /**
+ * Prepare collection items for response.
+ *
+ * @since 1.0.0-beta.7
+ *
+ * @param array $objects Array of objects to be prepared for response.
+ * @param WP_REST_Request $request Full details about the request.
+ * @return array
+ */
+ protected function prepare_collection_items_for_response( $objects, $request ) {
+
+ $items = array();
+
+ // Allow access to all password protected posts if the context is edit.
+ if ( 'edit' === $request['context'] ) {
+ add_filter( 'post_password_required', '__return_false' );
+ }
+
+ $items = parent::prepare_collection_items_for_response( $objects, $request );
+
+ // Reset filter.
+ if ( 'edit' === $request['context'] ) {
+ remove_filter( 'post_password_required', '__return_false' );
+ }
+
+ return $items;
+
+ }
+
+ /**
+ * Prepare a single object output for response.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param LLMS_Post_Model $object object object.
+ * @param WP_REST_Request $request Full details about the request.
+ * @return array
+ */
+ protected function prepare_object_for_response( $object, $request ) {
+
+ $object_id = $object->get( 'id' );
+ $password_required = post_password_required( $object_id );
+ $password = $object->get( 'password' );
+
+ $data = array(
+ 'id' => $object->get( 'id' ),
+ 'date_created' => $object->get_date( 'date', 'Y-m-d H:i:s' ),
+ 'date_created_gmt' => $object->get_date( 'date_gmt', 'Y-m-d H:i:s' ),
+ 'date_updated' => $object->get_date( 'modified', 'Y-m-d H:i:s' ),
+ 'date_updated_gmt' => $object->get_date( 'modified_gmt', 'Y-m-d H:i:s' ),
+ 'menu_order' => $object->get( 'menu_order' ),
+ 'title' => array(
+ 'raw' => $object->get( 'title', true ),
+ 'rendered' => $object->get( 'title' ),
+ ),
+ 'password' => $password,
+ 'slug' => $object->get( 'name' ),
+ 'post_type' => $this->post_type,
+ 'permalink' => get_permalink( $object_id ),
+ 'status' => $object->get( 'status' ),
+ 'featured_media' => (int) get_post_thumbnail_id( $object_id ),
+ 'comment_status' => $object->get( 'comment_status' ),
+ 'ping_status' => $object->get( 'ping_status' ),
+ 'content' => array(
+ 'raw' => $object->get( 'content', true ),
+ 'rendered' => $password_required ? '' : apply_filters( 'the_content', $object->get( 'content', true ) ),
+ 'protected' => (bool) $password,
+ ),
+ 'excerpt' => array(
+ 'raw' => $object->get( 'excerpt', true ),
+ 'rendered' => $password_required ? '' : apply_filters( 'the_excerpt', $object->get( 'excerpt' ) ),
+ 'protected' => (bool) $password,
+ ),
+ );
+
+ return $data;
+
+ }
+
+ /**
+ * Prepare a single item for the REST response
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.14 Pass the `$request` parameter to `prepare_links()`.
+ *
+ * @param LLMS_Post_Model $object LLMS post object.
+ * @param WP_REST_Request $request Request object.
+ * @return WP_Error|WP_REST_Response Response object on success, or WP_Error object on failure.
+ */
+ public function prepare_item_for_response( $object, $request ) {
+
+ $context = ! empty( $request['context'] ) ? $request['context'] : 'view';
+
+ // Need to set the global $post because of references to the global $post when e.g. filtering the content, or processing blocks/shortcodes.
+ global $post;
+ $temp = $post;
+ $post = $object->get( 'post' ); // phpcs:ignore
+ setup_postdata( $post );
+
+ $removed_filters_for_response = $this->maybe_remove_filters_for_response( $object );
+
+ $has_password_filter = false;
+
+ if ( $this->can_access_password_content( $object, $request ) ) {
+ // Allow access to the post, permissions already checked before.
+ add_filter( 'post_password_required', '__return_false' );
+ $has_password_filter = true;
+ }
+
+ $data = $this->prepare_object_for_response( $object, $request );
+
+ if ( $has_password_filter ) {
+ // Reset filter.
+ remove_filter( 'post_password_required', '__return_false' );
+ }
+
+ $this->maybe_add_removed_filters_for_response( $removed_filters_for_response );
+ $post = $temp; // phpcs:ignore
+ wp_reset_postdata();
+
+ // Filter data including only schema props.
+ $data = array_intersect_key( $data, array_flip( $this->get_fields_for_response( $request ) ) );
+
+ // Filter data by context. E.g. in "view" mode the password property won't be allowed.
+ $data = $this->filter_response_by_context( $data, $context );
+
+ // Wrap the data in a response object.
+ $response = rest_ensure_response( $data );
+
+ $response->add_links( $this->prepare_links( $object, $request ) );
+
+ return $response;
+ }
+
+ /**
+ * Determines the allowed query_vars for a get_items() response and prepares
+ * them for WP_Query.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param array $prepared_args Optional. Prepared WP_Query arguments. Default empty array.
+ * @param WP_REST_Request $request Optional. Full details about the request.
+ * @return array Items query arguments.
+ */
+ protected function prepare_items_query( $prepared_args = array(), $request = null ) {
+
+ $query_args = array();
+
+ foreach ( $prepared_args as $key => $value ) {
+ $query_args[ $key ] = $value;
+ }
+
+ $query_args = $this->prepare_items_query_orderby_mappings( $query_args, $request );
+
+ // Turn exclude and include params into proper arrays.
+ foreach ( array( 'post__in', 'post__not_in' ) as $arg ) {
+ if ( isset( $query_args[ $arg ] ) && ! is_array( $query_args[ $arg ] ) ) {
+ $query_args[ $arg ] = array_map( 'absint', explode( ',', $query_args[ $arg ] ) );
+ }
+ }
+
+ return $query_args;
+
+ }
+
+ /**
+ * Map to proper WP_Query orderby param.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param array $query_args WP_Query arguments.
+ * @param WP_REST_Request $request Full details about the request.
+ * @return array Query arguments.
+ */
+ protected function prepare_items_query_orderby_mappings( $query_args, $request ) {
+
+ // Map to proper WP_Query orderby param.
+ if ( isset( $query_args['orderby'] ) && isset( $request['orderby'] ) ) {
+ $orderby_mappings = array(
+ 'id' => 'ID',
+ 'title' => 'title',
+ 'data_created' => 'post_date',
+ 'date_updated' => 'post_modified',
+ );
+
+ if ( isset( $orderby_mappings[ $request['orderby'] ] ) ) {
+ $query_args['orderby'] = $orderby_mappings[ $request['orderby'] ];
+ }
+ }
+
+ return $query_args;
+
+ }
+
+ /**
+ * Prepares a single post for create or update.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.8 Initialize `$prepared_item` array before adding values to it.
+ *
+ * @param WP_REST_Request $request Request object.
+ * @return array|WP_Error Array of llms post args or WP_Error.
+ */
+ protected function prepare_item_for_database( $request ) {
+
+ $prepared_item = array();
+
+ // LLMS Post ID.
+ if ( isset( $request['id'] ) ) {
+ $existing_object = $this->get_object( absint( $request['id'] ) );
+ if ( is_wp_error( $existing_object ) ) {
+ return $existing_object;
+ }
+
+ $prepared_item['id'] = absint( $request['id'] );
+ }
+
+ $schema = $this->get_item_schema();
+
+ // LLMS Post title.
+ if ( ! empty( $schema['properties']['title'] ) && isset( $request['title'] ) ) {
+ if ( is_string( $request['title'] ) ) {
+ $prepared_item['post_title'] = $request['title'];
+ } elseif ( ! empty( $request['title']['raw'] ) ) {
+ $prepared_item['post_title'] = $request['title']['raw'];
+ }
+ }
+
+ // LLMS Post content.
+ if ( ! empty( $schema['properties']['content'] ) && isset( $request['content'] ) ) {
+ if ( is_string( $request['content'] ) ) {
+ $prepared_item['post_content'] = $request['content'];
+ } elseif ( isset( $request['content']['raw'] ) ) {
+ $prepared_item['post_content'] = $request['content']['raw'];
+ }
+ }
+
+ // LLMS Post excerpt.
+ if ( ! empty( $schema['properties']['excerpt'] ) && isset( $request['excerpt'] ) ) {
+ if ( is_string( $request['excerpt'] ) ) {
+ $prepared_item['post_excerpt'] = $request['excerpt'];
+ } elseif ( isset( $request['excerpt']['raw'] ) ) {
+ $prepared_item['post_excerpt'] = $request['excerpt']['raw'];
+ }
+ }
+
+ // LLMS Post status.
+ if ( ! empty( $schema['properties']['status'] ) && isset( $request['status'] ) ) {
+ $status = $this->handle_status_param( $request['status'] );
+ if ( is_wp_error( $status ) ) {
+ return $status;
+ }
+
+ $prepared_item['post_status'] = $status;
+ }
+
+ // LLMS Post date.
+ if ( ! empty( $schema['properties']['date_created'] ) && ! empty( $request['date_created'] ) ) {
+ $date_data = rest_get_date_with_gmt( $request['date_created'] );
+
+ if ( ! empty( $date_data ) ) {
+ list( $prepared_item['post_date'], $prepared_item['post_date_gmt'] ) = $date_data;
+ $prepared_item['edit_date'] = true;
+ }
+ } elseif ( ! empty( $schema['properties']['date_gmt'] ) && ! empty( $request['date_gmt'] ) ) {
+ $date_data = rest_get_date_with_gmt( $request['date_created_gmt'], true );
+
+ if ( ! empty( $date_data ) ) {
+ list( $prepared_item['post_date'], $prepared_item['post_date_gmt'] ) = $date_data;
+ $prepared_item['edit_date'] = true;
+ }
+ }
+
+ // LLMS Post slug.
+ if ( ! empty( $schema['properties']['slug'] ) && isset( $request['slug'] ) ) {
+ $prepared_item['post_name'] = $request['slug'];
+ }
+
+ // LLMS Post password.
+ if ( ! empty( $schema['properties']['password'] ) && isset( $request['password'] ) ) {
+ $prepared_item['post_password'] = $request['password'];
+ }
+
+ // LLMS Post Menu order.
+ if ( ! empty( $schema['properties']['menu_order'] ) && isset( $request['menu_order'] ) ) {
+ $prepared_item['menu_order'] = (int) $request['menu_order'];
+ }
+
+ // LLMS Post Comment status.
+ if ( ! empty( $schema['properties']['comment_status'] ) && ! empty( $request['comment_status'] ) ) {
+ $prepared_item['comment_status'] = $request['comment_status'];
+ }
+
+ // LLMS Post Ping status.
+ if ( ! empty( $schema['properties']['ping_status'] ) && ! empty( $request['ping_status'] ) ) {
+ $prepared_item['ping_status'] = $request['ping_status'];
+ }
+
+ return $prepared_item;
+
+ }
+
+ /**
+ * Get the LLMS Posts's schema, conforming to JSON Schema.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.19 Allow only _built_in and not internal post status (see WordPress `get_post_stati()` ).
+ *
+ * @return array
+ */
+ public function get_item_schema() {
+
+ $schema = array(
+ '$schema' => 'http://json-schema.org/draft-04/schema#',
+ 'title' => $this->post_type,
+ 'type' => 'object',
+ 'properties' => array(
+ 'id' => array(
+ 'description' => __( 'Unique Identifier. The WordPress Post ID.', 'lifterlms' ),
+ 'type' => 'integer',
+ 'context' => array( 'view', 'edit' ),
+ 'readonly' => true,
+ ),
+ 'date_created' => array(
+ 'description' => __( 'Creation date. Format: Y-m-d H:i:s', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'view', 'edit' ),
+ ),
+ 'date_created_gmt' => array(
+ 'description' => __( 'Creation date (in GMT). Format: Y-m-d H:i:s', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'view', 'edit' ),
+ ),
+ 'date_updated' => array(
+ 'description' => __( 'Date last modified. Format: Y-m-d H:i:s', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'view', 'edit' ),
+ 'readonly' => true,
+ ),
+ 'date_updated_gmt' => array(
+ 'description' => __( 'Date last modified (in GMT). Format: Y-m-d H:i:s', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'view', 'edit' ),
+ 'readonly' => true,
+ ),
+ 'menu_order' => array(
+ 'description' => __( 'Creation date (in GMT). Format: Y-m-d H:i:s', 'lifterlms' ),
+ 'type' => 'integer',
+ 'default' => 0,
+ 'context' => array( 'view', 'edit' ),
+ 'arg_options' => array(
+ 'sanitize_callback' => 'absint',
+ ),
+ ),
+ 'title' => array(
+ 'description' => __( 'Post title.', 'lifterlms' ),
+ 'type' => 'object',
+ 'context' => array( 'view', 'edit' ),
+ 'arg_options' => array(
+ 'sanitize_callback' => null, // Note: sanitization implemented in self::prepare_item_for_database().
+ 'validate_callback' => null, // Note: validation implemented in self::prepare_item_for_database().
+ ),
+ 'required' => true,
+ 'properties' => array(
+ 'raw' => array(
+ 'description' => __( 'Raw title. Useful when displaying title in the WP Block Editor. Only returned in edit context.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'edit' ),
+ ),
+ 'rendered' => array(
+ 'description' => __( 'Rendered title.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'view', 'edit' ),
+ 'readonly' => true,
+ ),
+ ),
+ ),
+ 'content' => array(
+ 'type' => 'object',
+ 'description' => __( 'The HTML content of the post.', 'lifterlms' ),
+ 'context' => array( 'view', 'edit' ),
+ 'arg_options' => array(
+ 'sanitize_callback' => null, // Note: sanitization implemented in self::prepare_item_for_database().
+ 'validate_callback' => null, // Note: validation implemented in self::prepare_item_for_database().
+ ),
+ 'required' => true,
+ 'properties' => array(
+ 'rendered' => array(
+ 'description' => __( 'Rendered HTML content.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'view', 'edit' ),
+ 'readonly' => true,
+ ),
+ 'raw' => array(
+ 'description' => __( 'Raw HTML content. Useful when displaying title in the WP Block Editor. Only returned in edit context.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'edit' ),
+ ),
+ 'protected' => array(
+ 'description' => __( 'Whether the content is protected with a password.', 'lifterlms' ),
+ 'type' => 'boolean',
+ 'context' => array( 'view', 'edit' ),
+ 'readonly' => true,
+ ),
+ ),
+ ),
+ 'excerpt' => array(
+ 'type' => 'object',
+ 'description' => __( 'The HTML excerpt of the post.', 'lifterlms' ),
+ 'context' => array( 'view', 'edit' ),
+ 'arg_options' => array(
+ 'sanitize_callback' => null, // Note: sanitization implemented in self::prepare_item_for_database().
+ 'validate_callback' => null, // Note: validation implemented in self::prepare_item_for_database().
+ ),
+ 'properties' => array(
+ 'rendered' => array(
+ 'description' => __( 'Rendered HTML excerpt.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'view', 'edit' ),
+ 'readonly' => true,
+ ),
+ 'raw' => array(
+ 'description' => __( 'Raw HTML excerpt. Useful when displaying title in the WP Block Editor. Only returned in edit context.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'edit' ),
+ ),
+ 'protected' => array(
+ 'description' => __( 'Whether the excerpt is protected with a password.', 'lifterlms' ),
+ 'type' => 'boolean',
+ 'context' => array( 'view', 'edit' ),
+ 'readonly' => true,
+ ),
+ ),
+ ),
+ 'permalink' => array(
+ 'description' => __( 'Post URL.', 'lifterlms' ),
+ 'type' => 'string',
+ 'format' => 'uri',
+ 'context' => array( 'view', 'edit' ),
+ 'readonly' => true,
+ ),
+ 'slug' => array(
+ 'description' => __( 'Post URL slug.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'view', 'edit' ),
+ 'arg_options' => array(
+ 'sanitize_callback' => array( $this, 'sanitize_slug' ),
+ ),
+ ),
+ 'post_type' => array(
+ 'description' => __( 'LifterLMS custom post type', 'lifterlms' ),
+ 'type' => 'string',
+ 'readonly' => true,
+ 'context' => array( 'view', 'edit' ),
+ ),
+ 'status' => array(
+ 'description' => __( 'The publication status of the post.', 'lifterlms' ),
+ 'type' => 'string',
+ 'default' => 'publish',
+ 'enum' => array_keys(
+ get_post_stati(
+ array(
+ '_builtin' => true,
+ 'internal' => false,
+ )
+ )
+ ),
+ 'context' => array( 'view', 'edit' ),
+ ),
+ 'password' => array(
+ 'description' => __( 'Password used to protect access to the content.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'edit' ),
+ ),
+ 'featured_media' => array(
+ 'description' => __( 'Featured image ID.', 'lifterlms' ),
+ 'type' => 'integer',
+ 'context' => array( 'view', 'edit' ),
+ ),
+ 'comment_status' => array(
+ 'description' => __( 'Post comment status. Default comment status dependent upon general WordPress post discussion settings.', 'lifterlms' ),
+ 'type' => 'string',
+ 'default' => 'open',
+ 'enum' => array( 'open', 'closed' ),
+ 'context' => array( 'view', 'edit' ),
+ ),
+ 'ping_status' => array(
+ 'description' => __( 'Post ping status. Default ping status dependent upon general WordPress post discussion settings.', 'lifterlms' ),
+ 'type' => 'string',
+ 'default' => 'open',
+ 'enum' => array( 'open', 'closed' ),
+ 'context' => array( 'view', 'edit' ),
+ ),
+ ),
+ );
+
+ /**
+ * TODO: understand how to treat possible conflicting properties => instructors are registered as additional rest field by llms_blocks.
+ */
+ // $schema = $this->add_additional_fields_schema( $schema );
+ return $schema;
+ }
+
+ /**
+ * Get object.
+ *
+ * @since 1.0.0-beta.9
+ *
+ * @param int $id Object ID.
+ * @return LLMS_Course|WP_Error
+ */
+ protected function get_object( $id ) {
+
+ $class = $this->llms_post_class_from_post_type();
+
+ if ( ! $class ) {
+ return new WP_Error(
+ 'llms_rest_cannot_get_object',
+ /* translators: %s: post type */
+ sprintf( __( 'The %s cannot be retrieved.', 'lifterlms' ), $this->post_type ),
+ array( 'status' => 500 )
+ );
+ }
+
+ $object = llms_get_post( $id );
+ return $object && is_a( $object, $class ) ? $object : llms_rest_not_found_error();
+ }
+
+ /**
+ * Create an LLMS_Post_Model
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.9 Implement generic llms post creation.
+ *
+ * @param array $object_args Object args.
+ * @return LLMS_Post_Model|WP_Error
+ */
+ protected function create_llms_post( $object_args ) {
+
+ $class = $this->llms_post_class_from_post_type();
+
+ if ( ! $class ) {
+ return new WP_Error(
+ 'llms_rest_cannot_create_object',
+ /* translators: %s: post type */
+ sprintf( __( 'The %s cannot be created.', 'lifterlms' ), $this->post_type ),
+ array( 'status' => 500 )
+ );
+ }
+
+ $object = new $class( 'new', $object_args );
+ return $object && is_a( $object, $class ) ? $object : llms_rest_not_found_error();
+ }
+
+ /**
+ * Prepare links for the request.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.2 Filter taxonomies by `public` property instead of `show_in_rest`.
+ * @since 1.0.0-beta.3 Filter taxonomies by `show_in_llms_rest` property instead of `public`.
+ * @since 1.0.0-beta.7 `self` and `collection` links prepared in the parent class.
+ * Fix wp:featured_media link, we don't expose any embeddable field.
+ * @since 1.0.0-beta.8 Return links to those taxonomies which have an accessible rest route.
+ * @since 1.0.0-beta.14 Added $request parameter.
+ *
+ * @param LLMS_Post_Model $object Object data.
+ * @param WP_REST_Request $request Request object.
+ * @return array Links for the given object.
+ */
+ protected function prepare_links( $object, $request ) {
+
+ $links = parent::prepare_links( $object, $request );
+
+ $object_id = $object->get( 'id' );
+
+ // Content.
+ $links['content'] = array(
+ 'href' => rest_url( sprintf( '/%s/%s/%d/%s', $this->namespace, $this->rest_base, $object_id, 'content' ) ),
+ );
+
+ // If we have a featured media, add that.
+ $featured_media = get_post_thumbnail_id( $object_id );
+ if ( $featured_media ) {
+ $image_url = rest_url( 'wp/v2/media/' . $featured_media );
+
+ $links['https://api.w.org/featuredmedia'] = array(
+ 'href' => $image_url,
+ );
+ }
+
+ $taxonomies = get_object_taxonomies( $this->post_type );
+
+ if ( ! empty( $taxonomies ) ) {
+ $links['https://api.w.org/term'] = array();
+
+ foreach ( $taxonomies as $tax ) {
+ $taxonomy_obj = get_taxonomy( $tax );
+
+ // Skip taxonomies that are not set to be shown in REST and LLMS REST.
+ if ( empty( $taxonomy_obj->show_in_rest ) || empty( $taxonomy_obj->show_in_llms_rest ) ) {
+ continue;
+ }
+
+ $tax_base = ! empty( $taxonomy_obj->rest_base ) ? $taxonomy_obj->rest_base : $tax;
+
+ $terms_url = add_query_arg(
+ 'post',
+ $object_id,
+ rest_url( 'wp/v2/' . $tax_base )
+ );
+
+ $links['https://api.w.org/term'][] = array(
+ 'href' => $terms_url,
+ 'taxonomy' => $tax,
+ );
+ }
+ }
+
+ return $links;
+
+ }
+
+ /**
+ * Re-add filters previously removed
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param LLMS_Post_Model $object Object.
+ * @return array Array of filters removed for response.
+ */
+ protected function maybe_remove_filters_for_response( $object ) {
+
+ $filters_to_be_removed = $this->get_filters_to_be_removed_for_response( $object );
+ $filters_removed = array();
+
+ // Need to remove some filters.
+ foreach ( $filters_to_be_removed as $hook => $filters ) {
+ foreach ( $filters as $filter_data ) {
+ $has_filter = has_filter( $hook, $filter_data['callback'] );
+
+ if ( false !== $has_filter && $filter_data['priority'] === $has_filter ) {
+ remove_filter( $hook, $filter_data['callback'], $filter_data['priority'] );
+ if ( ! isset( $filters_removed[ $hook ] ) ) {
+ $filters_removed[ $hook ] = array();
+ }
+ $filters_removed[ $hook ][] = $filter_data;
+
+ }
+ }
+ }
+
+ return $filters_removed;
+
+ }
+
+ /**
+ * Re-add filters previously removed
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param array $filters_removed Array of filters removed to be re-added.
+ * @return void
+ */
+ protected function maybe_add_removed_filters_for_response( $filters_removed ) {
+
+ if ( ! empty( $filters_removed ) ) {
+ foreach ( $filters_removed as $hook => $filters ) {
+ foreach ( $filters as $filter_data ) {
+ add_filter(
+ $hook,
+ $filter_data['callback'],
+ $filter_data['priority'],
+ isset( $filter_data['accepted_args'] ) ? $filter_data['accepted_args'] : 1
+ );
+ }
+ }
+ }
+ }
+
+ /**
+ * Get action/filters to be removed before preparing the item for response.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.9 Removed `"llms_rest_{$this->post_type}_filters_removed_for_reponse"` filter hooks,
+ * `"llms_rest_{$this->post_type}_filters_removed_for_response"` added.
+ *
+ * @param LLMS_Post_Model $object LLMS_Post_Model object.
+ * @return array Array of action/filters to be removed for response.
+ */
+ protected function get_filters_to_be_removed_for_response( $object ) {
+
+ /**
+ * Modify the array of filters to be removed before building the response.
+ *
+ * The dynamic portion of the hook name, `$this->post_type`, refers to the post type slug.
+ *
+ * @since 1.0.0-beta.9
+ *
+ * @param array $filters Array of filters to be removed.
+ * @param LLMS_Post_Model $object LLMS_Post_Model object.
+ */
+ return apply_filters( "llms_rest_{$this->post_type}_filters_removed_for_response", array(), $object );
+
+ }
+
+ /**
+ * Determines validity and normalizes the given status parameter.
+ * Heavily based on WP_REST_Posts_Controller::handle_status_param().
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.18 Use plural post type name.
+ *
+ * @param string $status Status.
+ * @return string|WP_Error Status or WP_Error if lacking the proper permission.
+ */
+ protected function handle_status_param( $status ) {
+
+ $post_type_object = get_post_type_object( $this->post_type );
+ $post_type_name = $post_type_object->labels->name;
+
+ switch ( $status ) {
+ case 'draft':
+ case 'pending':
+ break;
+ case 'private':
+ if ( ! current_user_can( $post_type_object->cap->publish_posts ) ) {
+ // Translators: %s = The post type name.
+ return llms_rest_authorization_required_error( sprintf( __( 'Sorry, you are not allowed to create private %s.', 'lifterlms' ), $post_type_name ) );
+ }
+ break;
+ case 'publish':
+ case 'future':
+ if ( ! current_user_can( $post_type_object->cap->publish_posts ) ) {
+ // Translators: $s = The post type name.
+ return llms_rest_authorization_required_error( sprintf( __( 'Sorry, you are not allowed to publish %s.', 'lifterlms' ), $post_type_name ) );
+ }
+ break;
+ default:
+ if ( ! get_post_status_object( $status ) ) {
+ $status = 'draft';
+ }
+ break;
+ }
+
+ return $status;
+ }
+
+ /**
+ * Determines the featured media based on a request param
+ *
+ * Heavily based on WP_REST_Posts_Controller::handle_featured_media().
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.18 Fixed call to undefined function `llms_bad_request_error()`, must be `llms_rest_bad_request_error()`.
+ *
+ * @param int $featured_media Featured Media ID.
+ * @param int $object_id LLMS object ID.
+ * @return bool|WP_Error Whether the post thumbnail was successfully deleted, otherwise WP_Error.
+ */
+ protected function handle_featured_media( $featured_media, $object_id ) {
+
+ $featured_media = (int) $featured_media;
+ if ( $featured_media ) {
+ $result = set_post_thumbnail( $object_id, $featured_media );
+ if ( $result ) {
+ return true;
+ } else {
+ return llms_rest_bad_request_error( __( 'Invalid featured media ID.', 'lifterlms' ) );
+ }
+ } else {
+ return delete_post_thumbnail( $object_id );
+ }
+
+ }
+
+ /**
+ * Updates the post's terms from a REST request.
+ *
+ * Heavily based on WP_REST_Posts_Controller::handle_terms().
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.2 Filter taxonomies by `public` property instead of `show_in_rest`.
+ * @since 1.0.0-beta.3 Filter taxonomies by `show_in_llms_rest` property instead of `public`.
+ *
+ * @param int $object_id The post ID to update the terms form.
+ * @param WP_REST_Request $request The request object with post and terms data.
+ * @return null|WP_Error WP_Error on an error assigning any of the terms, otherwise null.
+ */
+ protected function handle_terms( $object_id, $request ) {
+
+ $taxonomies = wp_list_filter( get_object_taxonomies( $this->post_type, 'objects' ), array( 'show_in_llms_rest' => true ) );
+
+ foreach ( $taxonomies as $taxonomy ) {
+ $base = $this->get_taxonomy_rest_base( $taxonomy );
+
+ if ( ! isset( $request[ $base ] ) ) {
+ continue;
+ }
+
+ // We could use LLMS_Post_Model::set_terms() but it doesn't return a WP_Error which can be useful here.
+ $result = wp_set_object_terms( $object_id, $request[ $base ], $taxonomy->name );
+ if ( is_wp_error( $result ) ) {
+ return $result;
+ }
+ }
+ }
+
+ /**
+ * Checks whether current user can assign all terms sent with the current request.
+ *
+ * Heavily based on WP_REST_Posts_Controller::check_assign_terms_permission().
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.3 Filter taxonomies by `show_in_llms_rest` property instead of `public`.
+ *
+ * @param WP_REST_Request $request The request object with post and terms data.
+ * @return bool Whether the current user can assign the provided terms.
+ */
+ protected function check_assign_terms_permission( $request ) {
+ $taxonomies = wp_list_filter( get_object_taxonomies( $this->post_type, 'objects' ), array( 'show_in_llms_rest' => true ) );
+ foreach ( $taxonomies as $taxonomy ) {
+ $base = $this->get_taxonomy_rest_base( $taxonomy );
+
+ if ( ! isset( $request[ $base ] ) ) {
+ continue;
+ }
+
+ foreach ( $request[ $base ] as $term_id ) {
+ // Invalid terms will be rejected later.
+ if ( ! get_term( $term_id, $taxonomy->name ) ) {
+ continue;
+ }
+
+ if ( ! current_user_can( 'assign_term', (int) $term_id ) ) {
+ return false;
+ }
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * Maps a taxonomy name to the relative rest base
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param object $taxonomy The taxonomy object.
+ * @return string The taxonomy rest base.
+ */
+ protected function get_taxonomy_rest_base( $taxonomy ) {
+
+ return ! empty( $taxonomy->rest_base ) ? $taxonomy->rest_base : $taxonomy->name;
+
+ }
+
+ /**
+ * Checks if a post can be edited.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return bool Whether the post can be created
+ */
+ protected function check_create_permission() {
+
+ $post_type = get_post_type_object( $this->post_type );
+ return current_user_can( $post_type->cap->publish_posts );
+
+ }
+
+ /**
+ * Checks if an llms post can be edited.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param LLMS_Post_Model $object Optional. The LLMS_Post_model object. Default null.
+ * @return bool Whether the post can be edited.
+ */
+ protected function check_update_permission( $object = null ) {
+
+ $post_type = get_post_type_object( $this->post_type );
+ return is_null( $object ) ? current_user_can( $post_type->cap->edit_posts ) : current_user_can( $post_type->cap->edit_post, $object->get( 'id' ) );
+
+ }
+
+ /**
+ * Checks if an llms post can be deleted.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param LLMS_Post_Model $object The LLMS_Post_model object.
+ * @return bool Whether the post can be deleted.
+ */
+ protected function check_delete_permission( $object ) {
+
+ $post_type = get_post_type_object( $this->post_type );
+ return current_user_can( $post_type->cap->delete_post, $object->get( 'id' ) );
+
+ }
+
+ /**
+ * Checks if an llms post can be read.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param LLMS_Post_Model $object The LLMS_Post_model object.
+ * @return bool Whether the post can be read.
+ */
+ protected function check_read_permission( $object ) {
+
+ $post_type = get_post_type_object( $this->post_type );
+ $status = $object->get( 'status' );
+ $id = $object->get( 'id' );
+ $wp_post = $object->get( 'post' );
+
+ // Is the post readable?
+ if ( 'publish' === $status || current_user_can( $post_type->cap->read_post, $id ) ) {
+ return true;
+ }
+
+ $post_status_obj = get_post_status_object( $status );
+ if ( $post_status_obj && $post_status_obj->public ) {
+ return true;
+ }
+
+ // Can we read the parent if we're inheriting?
+ if ( 'inherit' === $status && $wp_post->post_parent > 0 ) {
+ $parent = get_post( $wp_post->post_parent );
+ if ( $parent ) {
+ return $this->check_read_permission( $parent );
+ }
+ }
+
+ /*
+ * If there isn't a parent, but the status is set to inherit, assume
+ * it's published (as per get_post_status()).
+ */
+ if ( 'inherit' === $status ) {
+ return true;
+ }
+
+ return false;
+
+ }
+
+
+ /**
+ * Checks if the user can access password-protected content.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param LLMS_Post_Model $object The LLMS_Post_model object.
+ * @param WP_REST_Request $request Request data to check.
+ * @return bool True if the user can access password-protected content, otherwise false.
+ */
+ public function can_access_password_content( $object, $request ) {
+
+ if ( empty( $object->get( 'password' ) ) ) {
+ // No filter required.
+ return false;
+ }
+
+ // Edit context always gets access to password-protected posts.
+ if ( 'edit' === $request['context'] ) {
+ return true;
+ }
+
+ // No password, no auth.
+ if ( empty( $request['password'] ) ) {
+ return false;
+ }
+
+ // Double-check the request password.
+ return hash_equals( $object->get( 'password' ), $request['password'] );
+ }
+
+ /**
+ * Get the llms post model class from the controller post type.
+ *
+ * @since 1.0.0-beta.9
+ *
+ * @return string|bool The llms post model class name if it exists or FALSE if it doesn't.
+ */
+ protected function llms_post_class_from_post_type() {
+
+ if ( isset( $this->llms_post_class ) ) {
+ return $this->llms_post_class;
+ }
+
+ $post_type = explode( '_', str_replace( 'llms_', '', $this->post_type ) );
+ $class = 'LLMS';
+
+ foreach ( $post_type as $part ) {
+ $class .= '_' . ucfirst( $part );
+ }
+
+ if ( class_exists( $class ) ) {
+ $this->llms_post_class = $class;
+ } else {
+ $this->llms_post_class = false;
+ }
+
+ return $this->llms_post_class;
+ }
+
+ /**
+ * Sanitizes and validates the list of post statuses, including whether the user can query private statuses
+ *
+ * Heavily based on the WordPress WP_REST_Posts_Controller::sanitize_post_statuses().
+ *
+ * @since 1.0.0-beta.19
+ *
+ * @param string|array $statuses One or more post statuses.
+ * @param WP_REST_Request $request Full details about the request.
+ * @param string $parameter Additional parameter to pass to validation.
+ * @return array|WP_Error A list of valid statuses, otherwise WP_Error object.
+ */
+ public function sanitize_post_statuses( $statuses, $request, $parameter ) {
+ $statuses = wp_parse_slug_list( $statuses );
+
+ $attributes = $request->get_attributes();
+ $default_status = $attributes['args']['status']['default'];
+
+ foreach ( $statuses as $status ) {
+ if ( $status === $default_status ) {
+ continue;
+ }
+
+ $post_type_obj = get_post_type_object( $this->post_type );
+
+ if ( current_user_can( $post_type_obj->cap->edit_posts ) || 'private' === $status && current_user_can( $post_type_obj->cap->read_private_posts ) ) {
+ $result = rest_validate_request_arg( $status, $request, $parameter );
+ if ( is_wp_error( $result ) ) {
+ return $result;
+ }
+ } else {
+ return llms_rest_authorization_required_error( __( 'Status is forbidden.', 'lifterlms' ) );
+ }
+ }
+
+ return $statuses;
+ }
+
+}
diff --git a/libraries/lifterlms-rest/includes/abstracts/class-llms-rest-users-controller.php b/libraries/lifterlms-rest/includes/abstracts/class-llms-rest-users-controller.php
new file mode 100644
index 0000000000..3ac79d800c
--- /dev/null
+++ b/libraries/lifterlms-rest/includes/abstracts/class-llms-rest-users-controller.php
@@ -0,0 +1,777 @@
+ 'ID',
+ 'username' => 'user_login',
+ 'email' => 'user_email',
+ 'url' => 'user_url',
+ 'name' => 'display_name',
+ );
+
+ /**
+ * Determine if the current user has permissions to manage the role(s) present in a request
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param WP_REST_Request $request Request object.
+ * @return true|WP_Error
+ */
+ protected function check_roles_permissions( $request ) {
+
+ global $wp_roles;
+
+ $schema = $this->get_item_schema();
+ $roles = array();
+ if ( ! empty( $request['roles'] ) ) {
+ $roles = $request['roles'];
+ } elseif ( ! empty( $schema['properties']['roles']['default'] ) ) {
+ $roles = $schema['properties']['roles']['default'];
+ }
+
+ foreach ( $roles as $role ) {
+
+ if ( ! isset( $wp_roles->role_objects[ $role ] ) ) {
+ // Translators: %s = role key.
+ return llms_rest_bad_request_error( sprintf( __( 'The role %s does not exist.', 'lifterlms' ), $role ) );
+ }
+
+ $potential_role = $wp_roles->role_objects[ $role ];
+
+ /*
+ * Don't let anyone with 'edit_users' (admins) edit their own role to something without it.
+ * Multisite super admins can freely edit their blog roles -- they possess all caps.
+ */
+ if ( ! ( is_multisite()
+ && current_user_can( 'manage_sites' ) )
+ && get_current_user_id() === $request['id']
+ && ! $potential_role->has_cap( 'edit_users' )
+ ) {
+ return llms_rest_authorization_required_error( __( 'You are not allowed to give users this role.', 'lifterlms' ) );
+ }
+
+ // Include admin functions to get access to `get_editable_roles()`.
+ require_once ABSPATH . 'wp-admin/includes/admin.php';
+
+ // The new role must be editable by the logged-in user.
+ $editable_roles = get_editable_roles();
+
+ if ( empty( $editable_roles[ $role ] ) ) {
+ return llms_rest_authorization_required_error( __( 'You are not allowed to give users this role.', 'lifterlms' ) );
+ }
+ }
+
+ return true;
+
+ }
+
+ /**
+ * Insert the prepared data into the database
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param array $prepared Prepared item data.
+ * @param WP_REST_Request $request Request object.
+ * @return obj Object Instance of object from `$this->get_object()`.
+ */
+ protected function create_object( $prepared, $request ) {
+
+ $object_id = wp_insert_user( $prepared );
+
+ if ( is_wp_error( $object_id ) ) {
+ return $object_id;
+ }
+
+ return $this->update_additional_data( $object_id, $prepared, $request );
+
+ }
+
+
+ /**
+ * Delete the object
+ *
+ * Note: we do not return 404s when the resource to delete cannot be found. We assume it's already been deleted and respond with 204.
+ * Errors returned by this method should be any error other than a 404!
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param obj $object Instance of the object from `$this->get_object()`.
+ * @param WP_REST_Request $request Request object.
+ * @return true|WP_Error `true` when the object is removed, `WP_Error` on failure.
+ */
+ protected function delete_object( $object, $request ) {
+
+ $id = $object->get( 'id' );
+ $reassign = 0 === $request['reassign'] ? null : $request['reassign'];
+
+ if ( ! empty( $reassign ) ) {
+ if ( $reassign === $id || ! get_userdata( $reassign ) ) {
+ return llms_rest_bad_request_error( __( 'Invalid user ID for reassignment.', 'lifterlms' ) );
+ }
+ }
+
+ // Include admin user functions to get access to `wp_delete_user()`.
+ require_once ABSPATH . 'wp-admin/includes/user.php';
+
+ $result = wp_delete_user( $id, $reassign );
+
+ if ( ! $result ) {
+ return llms_rest_server_error( __( 'The user could not be deleted.', 'lifterlms' ) );
+ }
+
+ return true;
+
+ }
+
+ /**
+ * Determine if the current user can view the object
+ *
+ * @since 1.0.0-beta.7
+ *
+ * @param object $object Object.
+ * @return bool
+ */
+ protected function check_read_object_permissions( $object ) {
+ return $this->check_read_item_permissions( $this->get_object_id( $object ) );
+ }
+
+ /**
+ * Retrieves the query params for the objects collection
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return array Collection parameters.
+ */
+ public function get_collection_params() {
+
+ $params = parent::get_collection_params();
+
+ $params['roles'] = array(
+ 'description' => __( 'Include only users keys matching matching a specific role. Accepts a single role or a comma separated list of roles.', 'lifterlms' ),
+ 'type' => 'array',
+ 'items' => array(
+ 'type' => 'string',
+ 'enum' => $this->get_enum_roles(),
+ ),
+ );
+
+ return $params;
+
+ }
+
+ /**
+ * Retrieve arguments for deleting a resource
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return array
+ */
+ public function get_delete_item_args() {
+ return array(
+ 'reassign' => array(
+ 'type' => 'integer',
+ 'description' => __( 'Reassign the deleted user\'s posts and links to this user ID.', 'lifterlms' ),
+ 'default' => 0,
+ 'sanitize_callback' => 'absint',
+ ),
+ );
+ }
+
+ /**
+ * Retrieve an array of allowed user role values
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return string[]
+ */
+ protected function get_enum_roles() {
+
+ global $wp_roles;
+ return array_keys( $wp_roles->roles );
+
+ }
+
+ /**
+ * Get the item schema
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return array
+ */
+ public function get_item_schema() {
+
+ $schema = array(
+ '$schema' => 'http://json-schema.org/draft-04/schema#',
+ 'title' => $this->resource_name,
+ 'type' => 'object',
+ 'properties' => array(
+ 'id' => array(
+ 'description' => __( 'Unique identifier for the user.', 'lifterlms' ),
+ 'type' => 'integer',
+ 'context' => array( 'view', 'edit' ),
+ 'readonly' => true,
+ ),
+ 'username' => array(
+ 'description' => __( 'Login name for the user.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'edit' ),
+ 'arg_options' => array(
+ 'sanitize_callback' => array( $this, 'sanitize_username' ),
+ ),
+ ),
+ 'name' => array(
+ 'description' => __( 'Display name for the user.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'view', 'edit' ),
+ 'arg_options' => array(
+ 'sanitize_callback' => 'sanitize_text_field',
+ ),
+ ),
+ 'first_name' => array(
+ 'description' => __( 'First name for the user.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'edit' ),
+ 'arg_options' => array(
+ 'sanitize_callback' => 'sanitize_text_field',
+ ),
+ ),
+ 'last_name' => array(
+ 'description' => __( 'Last name for the user.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'edit' ),
+ 'arg_options' => array(
+ 'sanitize_callback' => 'sanitize_text_field',
+ ),
+ ),
+ 'email' => array(
+ 'description' => __( 'The email address for the user.', 'lifterlms' ),
+ 'type' => 'string',
+ 'format' => 'email',
+ 'context' => array( 'edit' ),
+ 'required' => true,
+ ),
+ 'url' => array(
+ 'description' => __( 'URL of the user.', 'lifterlms' ),
+ 'type' => 'string',
+ 'format' => 'uri',
+ 'context' => array( 'view', 'edit' ),
+ ),
+ 'description' => array(
+ 'description' => __( 'Description of the user.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'view', 'edit' ),
+ ),
+ 'nickname' => array(
+ 'description' => __( 'The nickname for the user.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'edit' ),
+ 'arg_options' => array(
+ 'sanitize_callback' => 'sanitize_text_field',
+ ),
+ ),
+ 'registered_date' => array(
+ 'description' => __( 'Registration date for the user.', 'lifterlms' ),
+ 'type' => 'string',
+ 'format' => 'date-time',
+ 'context' => array( 'edit' ),
+ 'readonly' => true,
+ ),
+ 'roles' => array(
+ 'description' => __( 'Roles assigned to the user.', 'lifterlms' ),
+ 'type' => 'array',
+ 'items' => array(
+ 'type' => 'string',
+ 'enum' => $this->get_enum_roles(),
+ ),
+ 'context' => array( 'edit' ),
+ 'default' => array( 'student' ),
+ ),
+ 'password' => array(
+ 'description' => __( 'Password for the user (never included).', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array(), // Password is never displayed.
+ 'arg_options' => array(
+ 'sanitize_callback' => array( $this, 'sanitize_password' ),
+ ),
+ ),
+ 'billing_address_1' => array(
+ 'description' => __( 'User address line 1.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'edit' ),
+ 'arg_options' => array(
+ 'sanitize_callback' => 'sanitize_text_field',
+ ),
+ ),
+ 'billing_address_2' => array(
+ 'description' => __( 'User address line 2.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'edit' ),
+ 'arg_options' => array(
+ 'sanitize_callback' => 'sanitize_text_field',
+ ),
+ ),
+ 'billing_city' => array(
+ 'description' => __( 'User address city name.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'edit' ),
+ 'arg_options' => array(
+ 'sanitize_callback' => 'sanitize_text_field',
+ ),
+ ),
+ 'billing_state' => array(
+ 'description' => __( 'User address ISO code for the state, province, or district.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'edit' ),
+ 'arg_options' => array(
+ 'sanitize_callback' => 'sanitize_text_field',
+ ),
+ ),
+ 'billing_postcode' => array(
+ 'description' => __( 'User address postal code.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'edit' ),
+ 'arg_options' => array(
+ 'sanitize_callback' => 'sanitize_text_field',
+ ),
+ ),
+ 'billing_country' => array(
+ 'description' => __( 'User address ISO code for the country.', 'lifterlms' ),
+ 'type' => 'string',
+ 'context' => array( 'edit' ),
+ 'arg_options' => array(
+ 'sanitize_callback' => 'sanitize_text_field',
+ ),
+ ),
+ ),
+ );
+
+ if ( get_option( 'show_avatars' ) ) {
+
+ $avatar_properties = array();
+ foreach ( rest_get_avatar_sizes() as $size ) {
+ $avatar_properties[ $size ] = array(
+ // Translators: %d = avatar image size in pixels.
+ 'description' => sprintf( __( 'Avatar URL with image size of %d pixels.', 'lifterlms' ), $size ),
+ 'type' => 'string',
+ 'format' => 'uri',
+ 'context' => array( 'view', 'edit' ),
+ );
+ }
+
+ $schema['properties']['avatar_urls'] = array(
+ 'description' => __( 'Avatar URLs for the user.', 'lifterlms' ),
+ 'type' => 'object',
+ 'context' => array( 'view', 'edit' ),
+ 'readonly' => true,
+ 'properties' => $avatar_properties,
+ );
+
+ }
+
+ return $schema;
+
+ }
+
+ /**
+ * Retrieve a query object based on arguments from a `get_items()` (collection) request
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.12 Parse `search` and `search_columns` args.
+ *
+ * @param array $prepared Array of collection arguments.
+ * @param WP_REST_Request $request Request object.
+ * @return WP_User_Query
+ */
+ protected function get_objects_query( $prepared, $request ) {
+
+ if ( 'id' === $prepared['orderby'] ) {
+ $prepared['orderby'] = 'ID';
+ } elseif ( 'registered_date' === $prepared['orderby'] ) {
+ $prepared['orderby'] = 'registered';
+ }
+
+ $args = array(
+ 'paged' => $prepared['page'],
+ 'number' => $prepared['per_page'],
+ 'order' => strtoupper( $prepared['order'] ),
+ 'orderby' => $prepared['orderby'],
+ );
+
+ if ( ! empty( $prepared['roles'] ) ) {
+ $args['role__in'] = $prepared['roles'];
+ }
+
+ if ( ! empty( $prepared['include'] ) ) {
+ $args['include'] = $prepared['include'];
+ }
+
+ if ( ! empty( $prepared['exclude'] ) ) {
+ $args['exclude'] = $prepared['exclude'];
+ }
+
+ if ( ! empty( $prepared['search'] ) ) {
+ $args['search'] = $prepared['search'];
+ }
+
+ if ( ! empty( $prepared['search_columns'] ) ) {
+ $args['search_columns'] = $prepared['search_columns'];
+ }
+
+ return new WP_User_Query( $args );
+
+ }
+
+
+ /**
+ * Retrieve an array of objects from the result of `$this->get_objects_query()`
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param obj $query Objects query result.
+ * @return WP_User[]
+ */
+ protected function get_objects_from_query( $query ) {
+ return $query->get_results();
+ }
+
+ /**
+ * Retrieve pagination information from an objects query.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param WP_User_Query $query Objects query result returned by {@see LLMS_REST_Users_Controller::get_objects_query()}.
+ * @param array $prepared Array of collection arguments.
+ * @param WP_REST_Request $request Request object.
+ * @return array {
+ * Array of pagination information.
+ *
+ * @type int $current_page Current page number.
+ * @type int $total_results Total number of results.
+ * @type int $total_pages Total number of results pages.
+ * }
+ */
+ protected function get_pagination_data_from_query( $query, $prepared, $request ) {
+
+ $current_page = absint( $prepared['page'] );
+ $total_results = $query->get_total();
+ $total_pages = absint( ceil( $total_results / $prepared['per_page'] ) );
+
+ return compact( 'current_page', 'total_results', 'total_pages' );
+
+ }
+
+ /**
+ * Map request keys to database keys for insertion
+ *
+ * Array keys are the request fields (as defined in the schema) and
+ * array values are the database fields.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.11 Correctly map request's `billing_postcode` param to `billing_zip` meta.
+ *
+ * @return array
+ */
+ protected function map_schema_to_database() {
+
+ $map = parent::map_schema_to_database();
+
+ $map['username'] = 'user_login';
+ $map['password'] = 'user_pass';
+ $map['name'] = 'display_name';
+ $map['email'] = 'user_email';
+ $map['url'] = 'user_url';
+ $map['registered_date'] = 'user_registered';
+ $map['billing_postcode'] = 'billing_zip';
+
+ // Not inserted/read via database calls.
+ unset( $map['roles'], $map['avatar_urls'] );
+
+ return $map;
+
+ }
+
+ /**
+ * Prepare request arguments for a database insert/update
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param WP_Rest_Request $request Request object.
+ * @return array
+ */
+ protected function prepare_item_for_database( $request ) {
+
+ $prepared = parent::prepare_item_for_database( $request );
+
+ // If we're creating a new item, maybe add some defaults.
+ if ( empty( $prepared['id'] ) ) {
+
+ // Pass an explicit false to `wp_insert_user()`.
+ $prepared['role'] = false;
+
+ if ( empty( $prepared['user_pass'] ) ) {
+ $prepared['user_pass'] = wp_generate_password( 22 );
+ }
+
+ if ( empty( $prepared['user_login'] ) ) {
+ $prepared['user_login'] = LLMS_Person_Handler::generate_username( $prepared['user_email'] );
+ }
+ }
+
+ return $prepared;
+
+ }
+
+ /**
+ * Prepare an object for response
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.14 Only add remapped keys to the response when the schema key is present in the expected response fields array.
+ *
+ * @param LLMS_Abstract_User_Data $object User object.
+ * @param WP_REST_Request $request Request object.
+ * @return array
+ */
+ protected function prepare_object_for_response( $object, $request ) {
+
+ $prepared = array();
+ $map = array_flip( $this->map_schema_to_database() );
+ $fields = $this->get_fields_for_response( $request );
+
+ // Write Only.
+ unset( $map['user_pass'] );
+
+ foreach ( $map as $db_key => $schema_key ) {
+ if ( in_array( $schema_key, $fields, true ) ) {
+ $prepared[ $schema_key ] = $object->get( $db_key );
+ }
+ }
+
+ if ( in_array( 'roles', $fields, true ) ) {
+ $prepared['roles'] = $object->get_user()->roles;
+ }
+
+ if ( in_array( 'avatar_urls', $fields, true ) ) {
+ $prepared['avatar_urls'] = rest_get_avatar_urls( $object->get( 'user_email' ) );
+ }
+
+ return $prepared;
+
+ }
+
+ /**
+ * Validate a username is valid and allowed
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param string $value User-submitted username.
+ * @param WP_REST_Request $request Request object.
+ * @param string $param Parameter name.
+ * @return WP_Error|string Sanitized username if valid or error object.
+ */
+ public function sanitize_password( $value, $request, $param ) {
+
+ $password = (string) $value;
+
+ if ( false !== strpos( $password, '\\' ) ) {
+ return llms_rest_bad_request_error( __( 'Passwords cannot contain the "\\" character.', 'lifterlms' ) );
+ }
+
+ // @todo: Should validate against password strength too, maybe?
+
+ return $password;
+
+ }
+
+ /**
+ * Validate a username is valid and allowed
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param string $value User-submitted username.
+ * @param WP_REST_Request $request Request object.
+ * @param string $param Parameter name.
+ * @return WP_Error|string Sanitized username if valid or error object.
+ */
+ public function sanitize_username( $value, $request, $param ) {
+
+ $username = (string) $value;
+
+ if ( ! validate_username( $username ) ) {
+ return llms_rest_bad_request_error( __( 'Username contains invalid characters.', 'lifterlms' ) );
+ }
+
+ /**
+ * Filter defined in WP Core.
+ *
+ * @link https://developer.wordpress.org/reference/hooks/illegal_user_logins/
+ *
+ * @param array $illegal_logins Array of banned usernames.
+ */
+ $illegal_logins = (array) apply_filters( 'illegal_user_logins', array() );
+ if ( in_array( strtolower( $username ), array_map( 'strtolower', $illegal_logins ), true ) ) {
+ return llms_rest_bad_request_error( __( 'Username is not allowed.', 'lifterlms' ) );
+ }
+
+ return $username;
+
+ }
+
+ /**
+ * Updates additional information not handled by WP Core insert/update user functions
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.10 Fixed setting roles instead of appending them.
+ * @since 1.0.0-beta.11 Made sure to set user's meta with the correct db key.
+ *
+ * @param int $object_id WP User id.
+ * @param array $prepared Prepared item data.
+ * @param WP_REST_Request $request Request object.
+ * @return LLMS_Abstract_User_Data|WP_error
+ */
+ protected function update_additional_data( $object_id, $prepared, $request ) {
+
+ $object = $this->get_object( $object_id );
+
+ if ( is_wp_error( $object ) ) {
+ return $object;
+ }
+
+ $metas = array(
+ 'billing_address_1',
+ 'billing_address_2',
+ 'billing_city',
+ 'billing_state',
+ 'billing_postcode',
+ 'billing_country',
+ );
+
+ $map = $this->map_schema_to_database();
+
+ foreach ( $metas as $meta ) {
+ if ( ! empty( $map[ $meta ] ) && ! empty( $prepared[ $map[ $meta ] ] ) ) {
+ $object->set( $map[ $meta ], $prepared[ $map[ $meta ] ] );
+ }
+ }
+
+ if ( ! empty( $request['roles'] ) ) {
+ $user = $object->get_user();
+ $user->set_role( '' );
+ foreach ( $request['roles'] as $role ) {
+ $user->add_role( $role );
+ }
+ }
+
+ return $object;
+
+ }
+
+ /**
+ * Update item
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param WP_REST_Request $request Request object.
+ * @return WP_REST_Response|WP_Error Response object or `WP_Error` on failure.
+ */
+ public function update_item( $request ) {
+
+ $object = $this->get_object( $request['id'] );
+ if ( is_wp_error( $object ) ) {
+ return $object;
+ }
+
+ // Ensure we're not trying to update the email to an email that already exists.
+ $owner_id = email_exists( $request['email'] );
+
+ if ( $owner_id && $owner_id !== $request['id'] ) {
+ return llms_rest_bad_request_error( __( 'Invalid email address.', 'lifterlms' ) );
+ }
+
+ // Cannot change a username.
+ if ( ! empty( $request['username'] ) && $request['username'] !== $object->get( 'user_login' ) ) {
+ return llms_rest_bad_request_error( __( 'Username is not editable.', 'lifterlms' ) );
+ }
+
+ return parent::update_item( $request );
+
+ }
+
+ /**
+ * Update the object in the database with prepared data
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param array $prepared Prepared item data.
+ * @param WP_REST_Request $request Request object.
+ * @return obj Object Instance of object from `$this->get_object()`.
+ */
+ protected function update_object( $prepared, $request ) {
+
+ $prepared['ID'] = $prepared['id'];
+
+ $object_id = wp_update_user( $prepared );
+ if ( is_wp_error( $object_id ) ) {
+ return $object_id;
+ }
+
+ unset( $prepared['ID'] );
+
+ return $this->update_additional_data( $object_id, $prepared, $request );
+
+ }
+
+}
diff --git a/libraries/lifterlms-rest/includes/abstracts/class-llms-rest-webhook-data.php b/libraries/lifterlms-rest/includes/abstracts/class-llms-rest-webhook-data.php
new file mode 100644
index 0000000000..b064d9c743
--- /dev/null
+++ b/libraries/lifterlms-rest/includes/abstracts/class-llms-rest-webhook-data.php
@@ -0,0 +1,323 @@
+ format
+ *
+ * @var string[]
+ */
+ protected $columns = array(
+
+ 'status' => '%s',
+ 'name' => '%s',
+ 'delivery_url' => '%s',
+ 'secret' => '%s',
+ 'topic' => '%s',
+ 'user_id' => '%d',
+ 'created' => '%s',
+ 'updated' => '%s',
+ 'failure_count' => '%d',
+
+ );
+
+ /**
+ * Database Table Name
+ *
+ * @var string
+ */
+ protected $table = 'webhooks';
+
+ /**
+ * The record type
+ *
+ * Used for filters/actions.
+ *
+ * @var string
+ */
+ protected $type = 'webhook';
+
+ /**
+ * Constructor
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param int $id API Key ID.
+ * @param bool $hydrate If true, hydrates the object on instantiation if an ID is supplied.
+ */
+ public function __construct( $id = null, $hydrate = true ) {
+
+ $this->id = $id;
+ if ( $this->id && $hydrate ) {
+ $this->hydrate();
+ }
+
+ // Adds created and updated dates on instantiation.
+ parent::__construct();
+
+ }
+
+
+ /**
+ * Retrieve an admin nonce url for deleting an API key.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return string
+ */
+ public function get_delete_link() {
+
+ return add_query_arg(
+ array(
+ 'section' => 'webhooks',
+ 'delete-webhook' => $this->get( 'id' ),
+ 'delete-webhook-nonce' => wp_create_nonce( 'delete' ),
+ ),
+ LLMS_REST_API()->keys()->get_admin_url()
+ );
+
+ }
+
+ /**
+ * Generate a delivery signature from a delivery payload.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param string $payload JSON-encoded payload.
+ * @return string
+ */
+ public function get_delivery_signature( $payload ) {
+
+ /**
+ * Allow overriding of signature generation.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param string $signature Custom signature. Return a string to replace the default signature.
+ * @param string $payload JSON-encoded body to be delivered.
+ * @param int $id Webhook id.
+ */
+ $signature = apply_filters( 'llms_rest_webhook_signature_pre', null, $payload, $this->get( 'id' ) );
+ if ( $signature && is_string( $signature ) ) {
+ return $signature;
+ }
+
+ /**
+ * Customize the hash algorithm used to generate the webhook delivery signature.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param string $algo Hash algorithm. Defaults to 'sha256'. List of supported algorithms available at https://www.php.net/manual/en/function.hash-hmac-algos.php.
+ * @param string $payload JSON-encoded body to be delivered.
+ * @param int $id Webhook ID.
+ */
+ $hash_algo = apply_filters( 'llms_rest_webhook_hash_algorithm', 'sha256', $payload, $this->get( 'id' ) );
+ $ts = llms_current_time( 'timestamp' );
+ $message = $ts . '.' . $payload;
+ $hash = hash_hmac( $hash_algo, $message, $this->get( 'secret' ) );
+
+ return sprintf( 't=%1$d,v1=%2$s', $ts, $hash );
+
+ }
+
+ /**
+ * Retrieve the admin URL where the api key is managed.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return string
+ */
+ public function get_edit_link() {
+ return add_query_arg(
+ array(
+ 'section' => 'webhooks',
+ 'edit-webhook' => $this->get( 'id' ),
+ ),
+ LLMS_REST_API()->keys()->get_admin_url()
+ );
+ }
+
+ /**
+ * Retrieve the topic event
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return string
+ */
+ public function get_event() {
+
+ $topic = explode( '.', $this->get( 'topic' ) );
+ return apply_filters( 'llms_rest_webhook_get_event', isset( $topic[1] ) ? $topic[1] : '', $this->get( 'id' ) );
+
+ }
+
+ /**
+ * Retrieve an array of hooks for the webhook topic.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return string[]
+ */
+ public function get_hooks() {
+
+ if ( 'action' === $this->get_resource() ) {
+ $hooks = array( $this->get_event() => 1 );
+ } else {
+ $all_hooks = LLMS_REST_API()->webhooks()->get_hooks();
+ $topic = $this->get( 'topic' );
+ $hooks = isset( $all_hooks[ $topic ] ) ? $all_hooks[ $topic ] : array();
+ }
+
+ return apply_filters( 'llms_rest_webhook_get_hooks', $hooks, $this->get( 'id' ) );
+
+ }
+
+ /**
+ * Retrieve a payload for webhook delivery.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.6 Retrieve proper payload for enrollment and progress resources.
+ *
+ * @param array $args Numeric array of arguments from the originating hook.
+ * @return array
+ */
+ protected function get_payload( $args ) {
+
+ // Switch current user to the user who created the webhook.
+ $current_user = get_current_user_id();
+ wp_set_current_user( $this->get( 'user_id' ) );
+
+ $resource = $this->get_resource();
+ $event = $this->get_event();
+
+ $payload = array();
+ if ( 'deleted' === $event ) {
+
+ if ( in_array( $this->get_resource(), array( 'enrollment', 'progress' ), true ) ) {
+ $payload['student_id'] = $args[0];
+ $payload['post_id'] = $args[1];
+ } else {
+ $payload['id'] = $args[0];
+ }
+ } elseif ( 'action' === $resource ) {
+
+ $payload['action'] = current( $this->get_hooks() );
+ $payload['args'] = $args;
+
+ } else {
+
+ if ( 'enrollment' === $resource ) {
+ $endpoint = sprintf( '/llms/v1/students/%1$d/enrollments/%2$d', $args[0], $args[1] );
+ } elseif ( 'progress' === $resource ) {
+ $endpoint = sprintf( '/llms/v1/students/%1$d/progress/%2$d', $args[0], $args[1] );
+ } else {
+ $endpoint = sprintf( '/llms/v1/%1$ss/%2$d', $resource, $args[0] );
+ }
+
+ $payload = llms_rest_get_api_endpoint_data( $endpoint );
+
+ }
+
+ // Restore the current user.
+ wp_set_current_user( $current_user );
+
+ /**
+ * Filter the webhook payload prior to delivery
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param array $payload Webhook payload.
+ * @param string $resource Webhook resource.
+ * @param string $event Webhook event.
+ * @param array $args Numeric array of arguments from the originating hook.
+ * @param LLMS_REST_Webhook $this Webhook object.
+ */
+ return apply_filters( 'llms_rest_webhook_get_payload', $payload, $resource, $event, $args, $this );
+
+ }
+
+ /**
+ * Retrieve the topic resource.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return string
+ */
+ public function get_resource() {
+
+ $topic = explode( '.', $this->get( 'topic' ) );
+ return apply_filters( 'llms_rest_webhook_get_resource', $topic[0], $this->get( 'id' ) );
+
+ }
+
+ /**
+ * Retrieve a user agent string to use for delivering webhooks.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return string
+ */
+ protected function get_user_agent() {
+ global $wp_version;
+ return sprintf( 'LifterLMS/%1$s Hookshot (WordPress/%2$s)', LLMS()->version, $wp_version );
+ }
+
+ /**
+ * Increment delivery failures and after max allowed failures are reached, set status to disabled.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return LLMS_REST_Webhook
+ */
+ protected function set_delivery_failure() {
+
+ $failures = absint( $this->get( 'failure_count' ) );
+
+ $this->set( 'failure_count', ++$failures );
+
+ /**
+ * Filter the number of times a webhook is allowed to fail before it is automatically disabled.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param int $num Number of allowed failures. Default: 5.
+ */
+ $max_allowed = apply_filters( 'llms_rest_webhook_max_delivery_failures', 5 );
+
+ if ( $failures > $max_allowed ) {
+
+ $this->set( 'status', 'disabled' );
+
+ /**
+ * Fires immediately after a webhook has been disabled due to exceeding its maximum allowed failures.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param int $webhook_id ID of the webhook.
+ */
+ do_action( 'llms_rest_webhook_disabled_by_delivery_failures', $this->get( 'id' ) );
+
+ }
+
+ return $this;
+
+ }
+
+}
diff --git a/libraries/lifterlms-rest/includes/abstracts/index.php b/libraries/lifterlms-rest/includes/abstracts/index.php
new file mode 100644
index 0000000000..9c65c1efa6
--- /dev/null
+++ b/libraries/lifterlms-rest/includes/abstracts/index.php
@@ -0,0 +1 @@
+keys()->delete( llms_filter_input( INPUT_GET, 'revoke-key', FILTER_VALIDATE_INT ) );
+ if ( $delete ) {
+ LLMS_Admin_Notices::flash_notice( esc_html__( 'The API Key has been successfully deleted.', 'lifterlms' ), 'success' );
+ return llms_redirect_and_exit( admin_url( 'admin.php?page=llms-settings&tab=rest-api§ion=keys' ) );
+ }
+ } elseif ( llms_verify_nonce( 'llms_rest_webhook_nonce', 'create-update-webhook', 'POST' ) ) {
+ return $this->handle_webhook_upsert();
+ } elseif ( llms_verify_nonce( 'delete-webhook-nonce', 'delete', 'GET' ) ) {
+ $delete = LLMS_REST_API()->webhooks()->delete( llms_filter_input( INPUT_GET, 'delete-webhook', FILTER_VALIDATE_INT ) );
+ if ( $delete ) {
+ LLMS_Admin_Notices::flash_notice( esc_html__( 'The webhook has been successfully deleted.', 'lifterlms' ), 'success' );
+ return llms_redirect_and_exit( admin_url( 'admin.php?page=llms-settings&tab=rest-api§ion=webhooks' ) );
+ }
+ } elseif ( llms_verify_nonce( 'dl-key-nonce', 'dl-key', 'GET' ) ) {
+ return $this->handle_key_download();
+ }
+
+ return false;
+
+ }
+
+ /**
+ * Generate and download a api key credentials file.
+ *
+ * @since 1.0.0-beta.3
+ *
+ * @return false|void
+ */
+ protected function handle_key_download() {
+
+ $info = $this->prepare_key_download();
+ if ( ! $info ) {
+ return false;
+ }
+
+ header( 'Content-type: text/plain' );
+ header( 'Content-Disposition: attachment; filename="' . $info['fn'] );
+ header( 'Pragma: no-cache' );
+ header( 'Expires: 0' );
+
+ // Translators: %s = Consumer Key.
+ printf( __( 'Consumer Key: %s', 'lifterlms' ), $info['ck'] );
+ echo "\r\n";
+ // Translators: %s = Consumer Secret.
+ printf( __( 'Consumer Secret: %s', 'lifterlms' ), $info['cs'] );
+ die();
+
+ }
+
+ /**
+ * Handle creating/updating a webhook via admin interfaces
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return true|void|WP_Error true on update success, void (redirect) on creation success, WP_Error on failure.
+ */
+ protected function handle_webhook_upsert() {
+
+ $data = array(
+ 'name' => llms_filter_input( INPUT_POST, 'llms_rest_webhook_name', FILTER_SANITIZE_STRING ),
+ 'status' => llms_filter_input( INPUT_POST, 'llms_rest_webhook_status', FILTER_SANITIZE_STRING ),
+ 'topic' => llms_filter_input( INPUT_POST, 'llms_rest_webhook_topic', FILTER_SANITIZE_STRING ),
+ 'delivery_url' => llms_filter_input( INPUT_POST, 'llms_rest_webhook_delivery_url', FILTER_SANITIZE_URL ),
+ 'secret' => llms_filter_input( INPUT_POST, 'llms_rest_webhook_secret', FILTER_SANITIZE_STRING ),
+ );
+
+ if ( 'action' === $data['topic'] ) {
+ $data['topic'] .= '.' . llms_filter_input( INPUT_POST, 'llms_rest_webhook_action', FILTER_SANITIZE_STRING );
+ }
+
+ $hook_id = llms_filter_input( INPUT_POST, 'llms_rest_webhook_id', FILTER_SANITIZE_NUMBER_INT );
+
+ if ( ! $hook_id ) {
+
+ $hook = LLMS_REST_API()->webhooks()->create( $data );
+ if ( ! is_wp_error( $hook ) ) {
+ return llms_redirect_and_exit( $hook->get_edit_link(), array( 'status' => 301 ) );
+ }
+ } else {
+
+ $hook = LLMS_REST_API()->webhooks()->get( $hook_id );
+ if ( ! $hook ) {
+
+ // Translators: %s = Webhook ID.
+ $hook = new WP_Error( 'llms_rest_api_webhook_not_found', sprintf( __( '"%s" is not a valid Webhook.', 'lifterlms' ), $hook_id ) );
+
+ } else {
+
+ $data['id'] = $hook_id;
+ $hook = LLMS_REST_API()->webhooks()->update( $data );
+
+ }
+ }
+
+ if ( is_wp_error( $hook ) ) {
+ // Translators: %1$s = error message; %2$s = error code.
+ LLMS_Admin_Notices::flash_notice( sprintf( __( 'Error: %1$s [Code: %2$s]', 'lifterlms' ), $hook->get_error_message(), $hook->get_error_code() ), 'error' );
+ return $hook;
+ }
+
+ return true;
+
+ }
+
+ /**
+ * Validates `GET` information from the credential download URL and prepares information for generating the file.
+ *
+ * @since 1.0.0-beta.3
+ *
+ * @return false|array
+ */
+ protected function prepare_key_download() {
+
+ $key_id = llms_filter_input( INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT );
+ $consumer_key = llms_filter_input( INPUT_GET, 'ck', FILTER_SANITIZE_STRING );
+
+ // return if missing required fields.
+ if ( ! $key_id || ! $consumer_key ) {
+ return false;
+ }
+
+ // return if key doesn't exist.
+ $key = LLMS_REST_API()->keys()->get( $key_id );
+ if ( ! $key ) {
+ return false;
+ }
+
+ // validate the decoded consumer key looks like the stored truncated key.
+ $consumer_key = base64_decode( $consumer_key ); //phpcs:disable WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode -- This is benign usage.
+ if ( substr( $consumer_key, -7 ) !== $key->get( 'truncated_key' ) ) {
+ return false;
+ }
+
+ return array(
+ 'fn' => sanitize_file_name( $key->get( 'description' ) ) . '.txt',
+ 'ck' => $consumer_key,
+ 'cs' => $key->get( 'consumer_secret' ),
+ );
+
+ }
+
+}
+
+return new LLMS_REST_Admin_Form_Controller();
diff --git a/libraries/lifterlms-rest/includes/admin/class-llms-rest-admin-settings-api-keys.php b/libraries/lifterlms-rest/includes/admin/class-llms-rest-admin-settings-api-keys.php
new file mode 100644
index 0000000000..e367dcf027
--- /dev/null
+++ b/libraries/lifterlms-rest/includes/admin/class-llms-rest-admin-settings-api-keys.php
@@ -0,0 +1,311 @@
+ 'top',
+ 'id' => 'rest_keys_options_start',
+ 'type' => 'sectionstart',
+ );
+
+ $settings[] = array(
+ 'title' => $key_id || $add_key ? __( 'API Key Details', 'lifterlms' ) : __( 'API Keys', 'lifterlms' ),
+ 'type' => 'title-with-html',
+ 'id' => 'rest_keys_options_title',
+ 'html' => $key_id || $add_key ? '' : '' . __( 'Add API Key', 'lifterlms' ) . ' ',
+ );
+
+ if ( $add_key || $key_id ) {
+
+ $key = $add_key ? false : new LLMS_REST_API_Key( $key_id );
+ if ( self::$generated_key ) {
+ $key = self::$generated_key;
+ }
+ if ( $add_key || $key->exists() ) {
+
+ $user_id = $key ? $key->get( 'user_id' ) : get_current_user_id();
+
+ $settings[] = array(
+ 'title' => __( 'Description', 'lifterlms' ),
+ 'desc' => ' ' . __( 'A friendly, human-readable, name used to identify the key.', 'lifterlms' ),
+ 'id' => 'llms_rest_key_description',
+ 'type' => 'text',
+ 'value' => $key ? $key->get( 'description' ) : '',
+ 'custom_attributes' => array(
+ 'required' => 'required',
+ ),
+ );
+
+ $settings[] = array(
+ 'title' => __( 'User', 'lifterlms' ),
+ 'class' => 'llms-select2-student',
+ 'desc' => sprintf(
+ // Translators: %1$s = opening anchor tag to capabilities doc; %2$s closing anchor tag.
+ __( 'The owner is used to determine what user %1$scapabilities%2$s are available to the API key.', 'lifterlms' ),
+ '',
+ ' '
+ ),
+ 'custom_attributes' => array(
+ 'data-placeholder' => __( 'Select a user', 'lifterlms' ),
+ ),
+ 'id' => 'llms_rest_key_user_id',
+ 'options' => llms_make_select2_student_array( array( $user_id ) ),
+ 'type' => 'select',
+ );
+
+ $settings[] = array(
+ 'title' => __( 'Permissions', 'lifterlms' ),
+ 'desc' => ' ' . sprintf(
+ // Translators: %1$s = opening anchor tag to doc; %2$s closing anchor tag.
+ __( 'Determines what kind of requests can be made with the API key. %1$sRead more%2$s.', 'lifterlms' ),
+ '',
+ ' '
+ ),
+ 'id' => 'llms_rest_key_permissions',
+ 'type' => 'select',
+ 'options' => LLMS_REST_API()->keys()->get_permissions(),
+ 'value' => $key ? $key->get( 'permissions' ) : '',
+ );
+
+ if ( $key && ! self::$generated_key ) {
+
+ $settings[] = array(
+ 'title' => __( 'Consumer key ending in', 'lifterlms' ),
+ 'custom_attributes' => array(
+ 'readonly' => 'readonly',
+ ),
+ 'class' => 'code',
+ 'id' => 'llms_rest_key__read_only_key',
+ 'type' => 'text',
+ 'value' => '…' . $key->get( 'truncated_key' ),
+ );
+
+ $settings[] = array(
+ 'title' => __( 'Last accessed at', 'lifterlms' ),
+ 'custom_attributes' => array(
+ 'readonly' => 'readonly',
+ ),
+ 'id' => 'llms_rest_key__read_only_date',
+ 'type' => 'text',
+ 'value' => $key->get_last_access_date(),
+ );
+
+ } elseif ( self::$generated_key ) {
+
+ $settings[] = array(
+ 'type' => 'custom-html',
+ 'id' => 'llms_rest_key_onetime_notice',
+ 'value' => '' . __( 'Make sure to copy or download the consumer key and consumer secret. After leaving this page they will not be displayed again.', 'lifterlms' ) . '
',
+ );
+
+ $settings[] = array(
+ 'title' => __( 'Consumer key', 'lifterlms' ),
+ 'custom_attributes' => array(
+ 'readonly' => 'readonly',
+ ),
+ 'css' => 'width:400px',
+ 'class' => 'code widefat',
+ 'id' => 'llms_rest_key__read_only_key',
+ 'type' => 'text',
+ 'value' => $key->get( 'consumer_key_one_time' ),
+ );
+
+ $settings[] = array(
+ 'title' => __( 'Consumer secret', 'lifterlms' ),
+ 'custom_attributes' => array(
+ 'readonly' => 'readonly',
+ ),
+ 'css' => 'width:400px',
+ 'class' => 'code widefat',
+ 'id' => 'llms_rest_key__read_only_secret',
+ 'type' => 'text',
+ 'value' => $key->get( 'consumer_secret' ),
+ );
+
+ }
+
+ $buttons = ' ';
+ if ( self::$generated_key ) {
+ $download_url = wp_nonce_url(
+ admin_url(
+ add_query_arg(
+ array(
+ 'id' => $key->get( 'id' ),
+ 'ck' => base64_encode( $key->get( 'consumer_key_one_time' ) ), //phpcs:disable WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode -- This is benign usage.
+ ),
+ 'admin.php'
+ )
+ ),
+ 'dl-key',
+ 'dl-key-nonce'
+ );
+ $buttons .= ' ' . __( 'Download Keys', 'lifterlms' ) . ' ';
+ } else {
+ $buttons .= '' . __( 'Save', 'lifterlms' ) . ' ';
+ }
+ if ( $key ) {
+ $buttons .= $buttons ? ' ' : ' ';
+ $buttons .= '' . __( 'Revoke', 'lifterlms' ) . ' ';
+ }
+ $buttons .= wp_nonce_field( 'lifterlms-settings', '_wpnonce', true, false );
+
+ $settings[] = array(
+ 'type' => 'custom-html',
+ 'id' => 'llms_rest_key_buttons',
+ 'value' => $buttons,
+ );
+
+ } else {
+
+ $settings[] = array(
+ 'id' => 'rest_keys_options_invalid_error',
+ 'type' => 'custom-html',
+ 'value' => __( 'Invalid api key.', 'lifterlms' ),
+ );
+
+ }
+ } else {
+
+ $settings[] = array(
+ 'id' => 'llms_api_keys_table',
+ 'table' => new LLMS_REST_Table_API_Keys(),
+ 'type' => 'table',
+ );
+
+ }
+
+ $settings[] = array(
+ 'id' => 'rest_keys_options_end',
+ 'type' => 'sectionend',
+ );
+
+ return $settings;
+
+ }
+
+ /**
+ * Form handler to save Create / Update an API key.
+ *
+ * @since 1.0.0-beta.1
+ * @since 1.0.0-beta.3 Remove key copy message in favor of message directly above the key fields.
+ *
+ * @return null|LLMS_REST_API_Key|WP_Error
+ */
+ public static function save() {
+
+ $ret = null;
+
+ $key_id = llms_filter_input( INPUT_GET, 'edit-key', FILTER_SANITIZE_NUMBER_INT );
+ if ( $key_id ) {
+ $ret = self::save_update( $key_id );
+ } elseif ( llms_filter_input( INPUT_GET, 'add-key', FILTER_SANITIZE_NUMBER_INT ) ) {
+ $ret = self::save_create();
+ }
+
+ if ( is_wp_error( $ret ) ) {
+ // Translators: %1$s = Error message; %2$s = Error code.
+ LLMS_Admin_Settings::set_error( sprintf( __( 'Error: %1$s [Code: %2$s]', 'lifterlms' ), $ret->get_error_message(), $ret->get_error_code() ) );
+ }
+
+ return $ret;
+
+ }
+
+ /**
+ * Form handler to create a new API key.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return LLMS_REST_API_Key|WP_Error
+ */
+ protected static function save_create() {
+
+ $create = LLMS_REST_API()->keys()->create(
+ array(
+ 'description' => llms_filter_input( INPUT_POST, 'llms_rest_key_description', FILTER_SANITIZE_STRING ),
+ 'user_id' => llms_filter_input( INPUT_POST, 'llms_rest_key_user_id', FILTER_SANITIZE_NUMBER_INT ),
+ 'permissions' => llms_filter_input( INPUT_POST, 'llms_rest_key_permissions', FILTER_SANITIZE_STRING ),
+ )
+ );
+
+ if ( ! is_wp_error( $create ) ) {
+ self::$generated_key = $create;
+ }
+
+ return $create;
+
+ }
+
+ /**
+ * Form handler to save an API key.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param int $key_id API Key ID.
+ * @return LLMS_REST_API_Key|WP_Error
+ */
+ protected static function save_update( $key_id ) {
+
+ $key = LLMS_REST_API()->keys()->get( $key_id );
+ if ( ! $key ) {
+ // Translators: %s = Invalid API Key ID.
+ return new WP_Error( 'llms_rest_api_key_not_found', sprintf( __( '"%s" is not a valid API Key.', 'lifterlms' ), $key_id ) );
+ }
+
+ $update = LLMS_REST_API()->keys()->update(
+ array(
+ 'id' => $key_id,
+ 'description' => llms_filter_input( INPUT_POST, 'llms_rest_key_description', FILTER_SANITIZE_STRING ),
+ 'user_id' => llms_filter_input( INPUT_POST, 'llms_rest_key_user_id', FILTER_SANITIZE_NUMBER_INT ),
+ 'permissions' => llms_filter_input( INPUT_POST, 'llms_rest_key_permissions', FILTER_SANITIZE_STRING ),
+ )
+ );
+
+ return $update;
+
+ }
+
+}
+
diff --git a/libraries/lifterlms-rest/includes/admin/class-llms-rest-admin-settings-page.php b/libraries/lifterlms-rest/includes/admin/class-llms-rest-admin-settings-page.php
new file mode 100644
index 0000000000..9f715aeadd
--- /dev/null
+++ b/libraries/lifterlms-rest/includes/admin/class-llms-rest-admin-settings-page.php
@@ -0,0 +1,156 @@
+id = 'rest-api';
+ $this->label = __( 'REST API', 'lifterlms' );
+
+ // Output Stuff.
+ add_filter( 'lifterlms_settings_tabs_array', array( $this, 'add_settings_page' ), 20 );
+ add_action( 'lifterlms_sections_' . $this->id, array( $this, 'output_sections_nav' ) );
+ add_action( 'lifterlms_settings_' . $this->id, array( $this, 'output' ) );
+
+ // Maybe Save API Keys.
+ add_action( 'lifterlms_settings_save_' . $this->id, array( 'LLMS_Rest_Admin_Settings_API_Keys', 'save' ) );
+
+ // Disable the default page's save button.
+ add_filter( 'llms_settings_rest-api_has_save_button', '__return_false' );
+
+ add_filter( 'llms_table_get_table_classes', array( $this, 'get_table_classes' ), 10, 2 );
+ add_action( 'lifterlms_admin_field_title-with-html', array( $this, 'output_title_field' ), 10 );
+
+ }
+
+ /**
+ * Retrieve the id of the current tab/section
+ *
+ * Overrides parent function to set "keys" as the default section instead of the nonexistant "main".
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return string
+ */
+ protected function get_current_section() {
+
+ $current = parent::get_current_section();
+ if ( 'main' === $current ) {
+ $all = array_keys( $this->get_sections() );
+ $current = $all ? $all[0] : 'main';
+ }
+ return $current;
+
+ }
+
+ /**
+ * Get the page sections
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return array
+ */
+ public function get_sections() {
+
+ $sections = array();
+
+ if ( current_user_can( 'manage_lifterlms_api_keys' ) ) {
+ $sections['keys'] = __( 'API Keys', 'lifterlms' );
+ }
+
+ if ( current_user_can( 'manage_lifterlms_webhooks' ) ) {
+ $sections['webhooks'] = __( 'Webhooks', 'lifterlms' );
+ }
+
+ /**
+ * Modify the available tabs on the REST API settings screen.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param array $sections Array of settings page tabs.
+ */
+ return apply_filters( 'llms_rest_api_settings_sections', $sections );
+
+ }
+
+ /**
+ * Get settings array
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @return array
+ */
+ public function get_settings() {
+
+ $curr_section = $this->get_current_section();
+
+ $settings = array();
+ if ( current_user_can( 'manage_lifterlms_api_keys' ) && 'keys' === $curr_section ) {
+ $settings = LLMS_Rest_Admin_Settings_API_Keys::get_fields();
+ } elseif ( current_user_can( 'manage_lifterlms_webhooks' ) && 'webhooks' === $curr_section ) {
+ $settings = LLMS_Rest_Admin_Settings_Webhooks::get_fields();
+ }
+
+ return apply_filters( 'llms_rest_api_settings_' . $curr_section, $settings );
+
+ }
+
+ /**
+ * Add CSS classes to the API Keys Table.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param string[] $classes Array of css class names.
+ * @param string $id Table ID.
+ * @return string[]
+ */
+ public function get_table_classes( $classes, $id ) {
+
+ if ( in_array( $id, array( 'rest-api-keys', 'rest-webhooks' ), true ) ) {
+ $classes[] = 'text-left';
+ }
+ return $classes;
+
+ }
+
+ /**
+ * Outputs a custom "title" field with HTML content as the settings section title.
+ *
+ * @since 1.0.0-beta.1
+ *
+ * @param array $field Settings field arguments.
+ * @return void
+ */
+ public function output_title_field( $field ) {
+
+ echo '' . esc_html( $field['title'] ) . ' ' . $field['html'] . '
';
+ echo '