/*
Theme Name: Hello Elementor - ITF
Template: hello-elementor
Author: ITF
Description: Child theme for ITF website (Feb 2026 launch)
Version: 2.0.0
Updated: 2025-01-06

*/

/* ==========================================================================
   TABLE OF CONTENTS
   ==========================================================================
   1. BASE STYLES
   2. LAYOUT - SECTION CONTAINERS
   3. UTILITY CLASSES
   4. FORM ELEMENTS
   5. LANGUAGE VISIBILITY (TranslatePress)
   6. SENSEI LMS - PAGE HEADERS
   7. SENSEI LMS - TYPOGRAPHY
   8. SENSEI LMS - LINK STYLES
   9. SENSEI LMS - PROGRESS BARS
   10. SENSEI LMS - MY COURSES PAGE
   11. SENSEI LMS - COURSE PAGE BLOCKS
   12. SENSEI LMS - SPACING
   13. BUTTONS - SENSEI & SITE-WIDE
   14. LISTDOM - SEARCH FORM
   15. LISTDOM - MAP STYLING
   16. LISTDOM - LISTING CARDS (DIRECTORY)
   17. LISTDOM - SINGLE LISTING PAGE
   18. RESPONSIVE - TABLET
   19. RESPONSIVE - MOBILE
   ========================================================================== */


/* ==========================================================================
   1. BASE STYLES
   ========================================================================== */

:root {
    font-size: 62.5%;
}

html, body {
    font-size: 1.6rem;
    overflow-x: hidden;
}

body.disable-scroll {
    overflow: hidden;
}

.elementor a {
    box-shadow: none;
    text-decoration: none
}


/* ==========================================================================
   2. LAYOUT - SECTION CONTAINERS
   ========================================================================== */

header > section:not(.full).e-con,
footer > section:not(.full).e-con,
main > section:not(.full).e-con,
#elementor-preview section:not(.full).e-con,
#content section:not(.full).e-con,
.elementor-edit-area section:not(.full).e-con,
.elementor-location-single section:not(.full).e-con,
.elementor-location-archive section:not(.full).e-con,
.product section:not(.full).e-con {
    padding-right: 1.4rem;
    padding-left: 1.4rem;
}

.full-gauche {
    padding-left: max(2rem, (100vw - 1160px - var(--gutter-width)) / 2);
}

.full-droite {
    padding-right: max(2rem, (100vw - 1160px - var(--gutter-width)) / 2);
}


/* ==========================================================================
   3. UTILITY CLASSES
   ========================================================================== */

.fixe {
    position: fixed !important;
    top: 0;
    z-index: 25;
}

/* Add space above a specific menu item */
.menu-item.spacer-above {
    margin-top: 20px !important;
}

/* Add space below a specific menu item */
.menu-item.spacer-below {
    margin-bottom: 50px !important;
}

/* Add a divider line above an item */
.menu-item.menu-divider {
    border-top: 1px solid rgba(0,0,0,0.1);
    margin-top: 10px;
    padding-top: 10px;
}

/* Fix Cookie Consent link styling with Elementor */
.cc-link.has-background,
button.cc-link {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    padding: 0 !important;
    color: #82071A !important;
    text-decoration: underline !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    cursor: pointer !important;
    display: inline !important;
}

.cc-link.has-background:hover,
button.cc-link:hover {
    background: transparent !important;
    color: #5C0512 !important;
    text-decoration: underline !important;
}

/* Hide empty Sensei alerts on password reset pages */
body.page-template-default .sensei-message.alert:empty,
body.page .sensei-message.alert:empty {
    display: none;
}

/* ==========================================================================
   4. FORM ELEMENTS
   ========================================================================== */

.select-hidden {
    display: none;
}

body .custom-select .select-caret-down-wrapper svg {
    max-width: 2rem;
    width: 100%;
}

.custom-select .select-options {
    margin: 0;
    padding: 0;
}

.custom-select .select-options li {
    list-style: none outside;
    margin: 0;
    padding: 0;
}


/* ==========================================================================
   5. LANGUAGE VISIBILITY (TranslatePress)
   Add CSS classes to widgets: english-content or french-content
   ========================================================================== */

/* English content - hide on French pages */
html[lang^="fr"] .english-content {
    display: none !important;
}

/* French content - hide on English pages */
html:not([lang^="fr"]) .french-content {
    display: none !important;
}


/* ==========================================================================
   6. SENSEI LMS - PAGE HEADERS
   ========================================================================== */

.sensei .page-header,
.single-course .page-header,
.single-lesson .page-header {
    display: flex !important;
    justify-content: center !important;
    background-color: #82071a !important;
    margin-bottom: 20px !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding: 80px 0 !important;
    position: relative !important;
    width: 100vw !important;
}

.sensei .page-header .entry-title,
.single-course .page-header .entry-title {
    color: #fff !important;
    padding: 0 20px !important;
    margin: 0 !important;
    max-width: 1140px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* ----- Course Page Breadcrumbs ----- */
.sensei-course-breadcrumbs {
    display: block;
    font-size: 1.6rem;
    margin-bottom: 1.5rem;
    font-family: "DM Sans", sans-serif;
    font-style: normal;
    font-weight: normal;
}

.sensei-course-breadcrumbs a,
.sensei-course-breadcrumbs .sep,
.sensei-course-breadcrumbs .current {
    font-family: inherit;
    font-style: normal;
    font-weight: normal;
    color: #ffffff;
}

.sensei-course-breadcrumbs a {
    text-decoration: none;
}

.sensei-course-breadcrumbs a:hover {
    color: #ffffff;
}

.sensei-course-breadcrumbs .sep {
    margin: 0 0.4rem;
}

/* ==========================================================================
   7. SENSEI LMS - TYPOGRAPHY
   ========================================================================== */

/* DM Sans font for Sensei content */
.sensei-course-theme .wp-block-post-content > *,
.sensei-course-theme .wp-block-post-content ~ div > *,
.sensei-course-theme .wp-block-post-content .wp-block-group__inner-container > * {
    font-family: 'DM Sans', sans-serif;
}

/* Course title font on lesson pages */
.single-lesson .wp-block-sensei-lms-course-title h2,
.single-lesson .sensei-course-theme .wp-block-sensei-lms-course-title,
.single-lesson h2.wp-block-sensei-lms-course-title {
    font-family: 'DM Sans', sans-serif !important;
    font-weight: 600 !important;
}

/* Navigation lesson and module title size with text wrapping */
.sensei-lms-course-navigation-lesson__title,
.sensei-lms-course-navigation-module__title {
    font-size: 1.6rem;
    white-space: normal !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    hyphens: auto;
}

/* Module summary size */
.editor-styles-wrapper .sensei-lms-course-navigation-module__summary,
.sensei-lms-course-navigation-module__summary {
    font-size: 1.4rem;
}

/* Course outline module title size */
.wp-block-sensei-lms-course-outline .wp-block-sensei-lms-course-outline-module .wp-block-sensei-lms-course-outline-module__title,
.wp-block .wp-block-sensei-lms-course-outline-module .wp-block-sensei-lms-course-outline-module__title,
.wp-block-sensei-lms-course-outline .wp-block-sensei-lms-course-outline-module h3.wp-block-sensei-lms-course-outline-module__title,
.wp-block .wp-block-sensei-lms-course-outline-module h3.wp-block-sensei-lms-course-outline-module__title,
h3.wp-block-sensei-lms-course-outline-module__title,
h3.sensei-lms-course-navigation-module__title {
    font-size: 2rem !important;
}


/* ==========================================================================
   8. SENSEI LMS - LINK STYLES
   ========================================================================== */

/* Sidebar links - no underline on hover */
.editor-styles-wrapper .sensei-course-theme__sidebar a:hover,
.editor-styles-wrapper .sensei-course-theme__sidebar a:hover *,
.editor-styles-wrapper .sensei-course-theme__sidebar [class*=sensei-] a:hover,
.editor-styles-wrapper .sensei-course-theme__sidebar [class*=sensei-] a:hover *,
.editor-styles-wrapper .sensei-course-theme__sidebar a[class*=sensei-]:hover,
.editor-styles-wrapper .sensei-course-theme__sidebar a[class*=sensei-]:hover *,
.sensei-course-theme__sidebar a:hover,
.sensei-course-theme__sidebar a:hover *,
.sensei-course-theme__sidebar [class*=sensei-] a:hover,
.sensei-course-theme__sidebar [class*=sensei-] a:hover *,
.sensei-course-theme__sidebar a[class*=sensei-]:hover,
.sensei-course-theme__sidebar a[class*=sensei-]:hover * {
    text-decoration: none;
}

/* Exit course link */
.editor-styles-wrapper .wp-block .wp-block-sensei-lms-exit-course,
.wp-block-sensei-lms-exit-course {
    text-decoration: none;
}

/* Course title links */
.course-title a,
h4.course-title a {
    text-decoration: none !important;
}

.course-title a:hover,
h4.course-title a:hover {
    color: #000 !important;
}

/* Course outline lesson links */
.wp-block-sensei-lms-course-outline-lesson {
    text-decoration: none !important;
}

.wp-block-sensei-lms-course-outline-lesson:hover {
    text-decoration: underline !important;
}

/* Module titles */
.wp-block-sensei-lms-course-outline-module__title {
    text-decoration: none !important;
}

/* Navigation module titles on hover */
.editor-styles-wrapper .sensei-lms-course-navigation-module .sensei-collapsible__toggle:hover h3,
.sensei-lms-course-navigation-module .sensei-collapsible__toggle:hover h3 {
    text-decoration: none;
}

/* Course page list links */
.single-course .page-content ul.wp-block-list li a {
    text-decoration: none;
}


/* ==========================================================================
   9. SENSEI LMS - PROGRESS BARS
   ========================================================================== */

.sensei-progress-bar__progress {
    background-color: #575757;
}

.sensei-course-theme-course-progress-bar-inner {
    background-color: #F3F3F3;
}


/* ==========================================================================
   10. SENSEI LMS - MY COURSES PAGE
   ========================================================================== */

.my-messages-link-container,
.course-lesson-count,
.course-category,
.course-excerpt {
    display: none !important;
}

.course:not(body),
.course-container,
.course-container .course {
    border-bottom: none;
    margin: 0 0 5px;
}

.course-container li.course {
    padding: 1px;
    float: left;
}


/* ==========================================================================
   11. SENSEI LMS - COURSE PAGE BLOCKS
   ========================================================================== */

.wp-block-sensei-lms-course-outline.is-style-default .wp-block-sensei-lms-course-outline-module:not(.is-style-minimal) .wp-block-sensei-lms-course-outline-module__header:not(.has-background),
.wp-block-sensei-lms-course-outline-module.is-style-default .wp-block-sensei-lms-course-outline-module__header:not(.has-background) {
    background-color: #575757;
}

.wp-block-sensei-lms-course-outline-module-bordered {
    border: 1px solid #575757;
}


/* ==========================================================================
   12. SENSEI LMS - SPACING
   ========================================================================== */

/* Course page spacing */
.single-course .page-content > p {
    margin-top: 1em;
    margin-bottom: 1em;
    line-height: 1.4;
}

.single-course .page-content ul.wp-block-list li {
    line-height: 1.6;
}

/* Lesson page spacing */
.single-lesson .wp-block-post-content.is-layout-constrained > * {
    margin-block-start: 12px;
    margin-block-end: 0;
}

.single-lesson .wp-block-post-content p {
    margin-top: 0;
    margin-bottom: 0.8em;
    line-height: 1.5;
}


/* ==========================================================================
   13. BUTTONS - SENSEI & SITE-WIDE
   ========================================================================== */

/* Override Listdom CSS variables for button colors */
:root {
    --listdom-primary-button-hover-bg: #000 !important;
    --listdom-primary-button-hover-bg-2: #000 !important;
}

/* Base button styles */
.sensei-course-theme .wp-block-button.wp-block-button .wp-block-button__link,
.sensei-course-theme__button.wp-block-button__link,
.sensei-course-theme .wp-block-button .wp-block-button__link,
button.wp-block-button__link.sensei-stop-double-submission,
.sensei-course-theme .sensei-course-theme__button,
.wp-block-sensei-lms-course-theme-lesson-actions .wp-block-button__link,
.wp-block-sensei-lms-quiz-actions .wp-block-button__link,
.wp-block-file__button,
.button.wp-element-button,
input[type="submit"].button.wp-element-button,
input.button.wp-element-button,
.sensei input[type="submit"].button,
form input[type="submit"].button,
input[type="submit"].wp-element-button,
button.wp-element-button,
.wp-block-button__link.wp-element-button,
a.wp-block-button__link.wp-element-button {
    all: revert !important;
    display: inline-block !important;
    box-sizing: border-box !important;
    font-family: inherit !important;
    font-size: 1.6rem !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
    text-align: center !important;
    text-decoration: none !important;
    cursor: pointer !important;
    white-space: normal !important;
    padding: 1rem 4rem !important;
    margin: 0 !important;
    background-color: #82071a !important;
    background-image: none !important;
    color: #ffffff !important;
    border: 1px solid #82071a !important;
    border-radius: 50px !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    transition: background-color 0.2s ease-in-out,
                border-color 0.2s ease-in-out,
                color 0.2s ease-in-out !important;
}

/* Button hover states */
.sensei-course-theme .wp-block-button.wp-block-button .wp-block-button__link:hover,
.sensei-course-theme__button.wp-block-button__link:hover,
.sensei-course-theme .wp-block-button .wp-block-button__link:hover,
button.wp-block-button__link.sensei-stop-double-submission:hover,
.sensei-course-theme .sensei-course-theme__button:hover,
.wp-block-sensei-lms-course-theme-lesson-actions .wp-block-button__link:hover,
.wp-block-sensei-lms-quiz-actions .wp-block-button__link:hover,
.wp-block-file__button:hover,
.button.wp-element-button:hover,
input[type="submit"].button.wp-element-button:hover,
input.button.wp-element-button:hover,
.sensei input[type="submit"].button:hover,
form input[type="submit"].button:hover,
input[type="submit"].wp-element-button:hover,
button.wp-element-button:hover,
form:not(.lsd-search-form) input[type="submit"]:hover,
.wp-block-button__link.wp-element-button:hover,
a.wp-block-button__link.wp-element-button:hover {
    background: #000 !important;
    background-color: #000 !important;
    background-image: none !important;
    border-color: #000 !important;
    color: #ffffff !important;
    text-decoration: none !important;
    padding: 1rem 4rem !important;
    border: 1px solid #000 !important;
}

/* Button focus states */
.sensei-course-theme .wp-block-button.wp-block-button .wp-block-button__link:focus,
.sensei-course-theme__button.wp-block-button__link:focus,
.sensei-course-theme .wp-block-button .wp-block-button__link:focus,
button.wp-block-button__link.sensei-stop-double-submission:focus,
.sensei-course-theme .sensei-course-theme__button:focus,
.wp-block-sensei-lms-course-theme-lesson-actions .wp-block-button__link:focus,
.wp-block-sensei-lms-quiz-actions .wp-block-button__link:focus,
.wp-block-file__button:focus,
.button.wp-element-button:focus,
input[type="submit"].button.wp-element-button:focus,
.wp-block-button__link.wp-element-button:focus,
a.wp-block-button__link.wp-element-button:focus {
    outline: 2px solid #000 !important;
    outline-offset: 2px !important;
    border: 1px solid #000 !important;
    box-shadow: none !important;
}

/* Button active states */
.sensei-course-theme .wp-block-button.wp-block-button .wp-block-button__link:active,
.sensei-course-theme__button.wp-block-button__link:active,
.sensei-course-theme .wp-block-button .wp-block-button__link:active,
button.wp-block-button__link.sensei-stop-double-submission:active,
.sensei-course-theme .sensei-course-theme__button:active,
.wp-block-sensei-lms-course-theme-lesson-actions .wp-block-button__link:active,
.wp-block-sensei-lms-quiz-actions .wp-block-button__link:active,
.wp-block-file__button:active,
.button.wp-element-button:active,
input[type="submit"].button.wp-element-button:active,
.wp-block-button__link.wp-element-button:active,
a.wp-block-button__link.wp-element-button:active {
    background-color: #000 !important;
    border-color: #000 !important;
    transform: translateY(1px);
}

/* Button disabled states */
.sensei-course-theme .wp-block-button.wp-block-button .wp-block-button__link:disabled,
.sensei-course-theme__button.wp-block-button__link:disabled,
.sensei-course-theme .wp-block-button .wp-block-button__link:disabled,
button.wp-block-button__link.sensei-stop-double-submission:disabled,
.sensei-course-theme .sensei-course-theme__button:disabled,
.wp-block-sensei-lms-course-theme-lesson-actions .wp-block-button__link:disabled,
.wp-block-sensei-lms-quiz-actions .wp-block-button__link:disabled,
.sensei-course-theme .wp-block-button[aria-disabled="true"],
.sensei-course-theme__button[aria-disabled="true"],
.wp-block-file__button:disabled,
.button.wp-element-button:disabled,
input[type="submit"].button.wp-element-button:disabled {
    opacity: 0.5 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

/* Button container overrides */
.sensei-course-theme .wp-block-button.wp-block-button,
.sensei-course-theme .wp-block-button.is-primary,
.sensei-course-theme .wp-block-button.is-secondary,
.wp-block-sensei-lms-course-theme-lesson-actions .wp-block-button,
.wp-block-sensei-lms-quiz-actions .wp-block-button {
    background-color: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Icon buttons */
.sensei-course-theme__button.has-icon,
.sensei-course-theme .wp-block-button__link.has-icon {
    gap: 8px;
}


/* ==========================================================================
   14. LISTDOM - SEARCH FORM
   ========================================================================== */

.lsd-search-row {
    margin-bottom: 20px;
}

.lsd-row.lsd-grid-container {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 15px;
    align-items: end;
}

.lsd-search-filter {
    display: flex;
    flex-direction: column;
}

.lsd-search-filter label {
    font-family: 'DM Sans', sans-serif;
    font-size: 1rem;
    font-weight: 500;
    color: #1e1e1e;
    margin-bottom: 8px;
    display: block;
}

/* Text inputs */
.lsd-search-filter input[type="text"],
.lsd-radius-search-address {
    width: 100%;
    padding: 12px 16px;
    font-family: 'DM Sans', sans-serif;
    font-size: 1rem;
    line-height: 1.5;
    color: #1e1e1e;
    background-color: #ffffff;
    border: 1px solid #ddd;
    border-radius: 4px;
    box-sizing: border-box;
    transition: border-color 0.2s ease-in-out;
}

.lsd-search-filter input[type="text"]:focus,
.lsd-radius-search-address:focus {
    outline: none;
    border-color: #82071a;
    box-shadow: 0 0 0 1px #82071a;
}

.lsd-search-filter input[type="text"]::placeholder,
.lsd-radius-search-address::placeholder {
    color: #999;
}

/* Select dropdown */
.lsd-search-filter select,
select.listdom-location {
    width: 100%;
    padding: 12px 16px;
    font-family: 'DM Sans', sans-serif;
    font-size: 1rem;
    line-height: 1.5;
    color: #1e1e1e;
    background-color: #ffffff;
    border: 1px solid #ddd;
    border-radius: 4px;
    box-sizing: border-box;
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23333' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px;
    padding-right: 36px;
    transition: border-color 0.2s ease-in-out;
}

.lsd-search-filter select:focus,
select.listdom-location:focus {
    outline: none;
    border-color: #82071a;
    box-shadow: 0 0 0 1px #82071a;
}

/* Address autocomplete */
.lsd-radius-search-field,
.lsd-radius-search-address-wrapper {
    position: relative;
    width: 100%;
}

.lsd-address-autocomplete-popup {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1000;
    background-color: #ffffff;
    border: 1px solid #ddd;
    border-top: none;
    border-radius: 0 0 4px 4px;
    max-height: 300px;
    overflow-y: auto;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    margin-top: -1px;
}

.lsd-address-autocomplete-popup[aria-hidden="true"] {
    display: none;
}

.lsd-address-autocomplete-list {
    padding: 0;
    margin: 0;
    list-style: none;
}

/* Search and Clear button containers */
.lsd-search-buttons,
.lsd-search-clear {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    align-items: stretch !important;
    padding: 0 !important;
    margin: 0 !important;
}

.lsd-search-buttons-submit,
.lsd-search-clear-submit {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

.lsd-search-buttons input[type="hidden"],
.lsd-search-clear input[type="hidden"] {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
}

/* Search button */
.lsd-search.lsd-search-default-style .lsd-search-row .lsd-search-buttons .lsd-search-buttons-submit .lsd-search-button {
    width: 100% !important;
    display: inline-block !important;
    box-sizing: border-box !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 1.6rem !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
    text-align: center !important;
    text-decoration: none !important;
    cursor: pointer !important;
    white-space: normal !important;
    padding: 12px 16px !important;
    margin: 0 !important;
    background-color: #82071a !important;
    background-image: none !important;
    background: #82071a !important;
    color: #ffffff !important;
    border: 1px solid #82071a !important;
    border-radius: 50px !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    height: auto !important;
    min-height: 48px !important;
    transition: background-color 0.2s ease-in-out,
                border-color 0.2s ease-in-out,
                color 0.2s ease-in-out !important;
}

.lsd-search.lsd-search-default-style .lsd-search-row .lsd-search-buttons .lsd-search-buttons-submit .lsd-search-button:hover {
    background: #000 !important;
    background-color: #000 !important;
    background-image: none !important;
    border-color: #000 !important;
    border-radius: 50px !important;
    color: #ffffff !important;
}

/* Clear All button */
.lsd-search.lsd-search-default-style .lsd-search-row .lsd-search-clear .lsd-search-clear-submit .lsd-search-clear-all {
    width: 100% !important;
    display: inline-block !important;
    box-sizing: border-box !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 1.6rem !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
    text-align: center !important;
    text-decoration: none !important;
    cursor: pointer !important;
    white-space: normal !important;
    padding: 12px 16px !important;
    margin: 0 !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
    background-image: none !important;
    color: #82071a !important;
    border: 1px solid #82071a !important;
    border-radius: 50px !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    height: auto !important;
    min-height: 48px !important;
    transition: background-color 0.2s ease-in-out,
                border-color 0.2s ease-in-out,
                color 0.2s ease-in-out !important;
}

.lsd-search.lsd-search-default-style .lsd-search-row .lsd-search-clear .lsd-search-clear-submit .lsd-search-clear-all:hover {
    background: #f5f5f5 !important;
    background-color: #f5f5f5 !important;
    background-image: none !important;
    color: #000 !important;
    border-color: #000 !important;
    border-radius: 50px !important;
}

/* Search/Clear button focus state */
.lsd-search .lsd-search-row .lsd-search-buttons .lsd-search-buttons-submit .lsd-search-button:focus,
.lsd-search .lsd-search-row .lsd-search-clear .lsd-search-clear-submit .lsd-search-clear-all:focus {
    outline: 2px solid #000;
    outline-offset: 2px;
}

/* Grid column spans */
.lsd-col-span-2 {
    grid-column: span 2;
}

.lsd-col-span-3 {
    grid-column: span 3;
}

/* Remove paragraph spacing in search form */
.lsd-search-filter p,
.lsd-search-buttons p,
.lsd-search-clear p,
.lsd-search-buttons-submit p,
.lsd-search-clear-submit p {
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    line-height: 0 !important;
}


/* ==========================================================================
   15. LISTDOM - MAP STYLING
   ========================================================================== */

/* Marker color */
.lsd-marker-container {
    background-color: #82071a !important;
}

/* Cluster icon colors - all sizes */
div[style*="cluster1/m1.png"],
div[style*="cluster1/m2.png"],
div[style*="cluster1/m3.png"] {
    background-image: radial-gradient(circle, rgba(130, 7, 26, 0.8) 40%, rgba(130, 7, 26, 0.3) 80%, rgba(130, 7, 26, 0) 100%) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #ffffff !important;
    font-weight: bold !important;
    text-shadow: 0 0 4px rgba(0, 0, 0, 0.7) !important;
}

/* Info window centering */
.lsd-infowindow-wrapper,
.lsd-infowindow-container {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
}

.lsd-infowindow-body {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
}

/* Info window image */
.lsd-infowindow-wrapper .lsd-listing-image,
.lsd-infowindow-wrapper .lsd-listing-image .lsd-cover-img-wrapper,
.lsd-infowindow-wrapper .lsd-listing-image img {
    width: 150px !important;
    height: 150px !important;
    min-width: 150px !important;
    max-width: 150px !important;
    min-height: 150px !important;
    max-height: 150px !important;
    border-radius: 0 !important;
    object-fit: cover !important;
    display: block !important;
    margin: 0 auto !important;
}

/* Info window title */
.lsd-infowindow-wrapper .lsd-listing-title,
.lsd-infowindow-wrapper .lsd-listing-title a {
    font-size: 1.4rem !important;
    font-weight: 700 !important;
    color: #82071a !important;
    text-align: center !important;
    width: 100% !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
}

/* Info window address */
.lsd-infowindow-wrapper .lsd-listing-address,
.lsd-infowindow-wrapper .lsd-address-text {
    font-family: 'DM Sans', sans-serif;
    font-size: 1.2rem !important;
    color: #000000 !important;
    text-align: center !important;
    width: 100% !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
}


/* ==========================================================================
   16. LISTDOM - LISTING CARDS (DIRECTORY)
   ========================================================================== */

/* Card styling - flat design with bottom border only */
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing {
    border: none !important;
    border-bottom: 1px solid #000000 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background-color: #ffffff;
    transition: background-color 0.3s ease;
    height: 200px !important;
    min-height: 200px !important;
    max-height: 200px !important;
    align-items: center !important;
    overflow: hidden !important;
}

.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing:hover {
    background-color: rgba(0, 0, 0, 0.1) !important;
    box-shadow: none !important;
    transform: none !important;
}

/* Card image - 150x150px */
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-listing-image {
    width: 150px !important;
    height: 150px !important;
    min-width: 150px !important;
    min-height: 150px !important;
    max-width: 150px !important;
    max-height: 150px !important;
    border-radius: 0 !important;
    overflow: hidden;
    flex-shrink: 0 !important;
}

.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-listing-image .lsd-image,
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-listing-image .lsd-image > a,
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-listing-image a {
    width: 150px !important;
    height: 150px !important;
    display: block !important;
}

.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-listing-image a > img,
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-listing-image img {
    width: 150px !important;
    height: 150px !important;
    min-width: 150px !important;
    min-height: 150px !important;
    object-fit: cover !important;
}

/* Card body */
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-listing-body {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    padding: 15px !important;
    margin: 0 !important;
    height: 100% !important;
    overflow: hidden !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
}

/* Card title */
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-listing-title {
    font-size: 1.8rem !important;
    font-weight: 700 !important;
    color: #82071a !important;
    transition: color 0.3s ease;
    margin: 0 0 10px 0 !important;
    max-height: 60px !important;
    overflow: hidden !important;
    line-height: 1.3 !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
}

.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-listing-title a {
    font-size: 1.8rem !important;
    font-weight: 700 !important;
    color: #82071a !important;
    transition: color 0.3s ease;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    max-width: 100% !important;
}

.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-listing-title a:hover {
    color: #000000 !important;
}

/* Title wrapper */
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-listing-title-wrapper,
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid .lsd-listing .lsd-listing-title-wrapper {
    display: flex !important;
    flex-direction: row !important;
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    gap: 0 !important;
}

/* Contact info wrapper */
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-listing-contact-info {
    margin: -5px 0 0 0 !important;
    padding: 0 !important;
}

/* Contact info */
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-contact-info {
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    max-width: 100% !important;
}

.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-contact-info ul {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-contact-info li {
    margin: 0 0 5px 0 !important;
    padding: 0 !important;
    line-height: 1.6rem !important;
    list-style: none !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    max-width: 100% !important;
}

/* Phone number & address */
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-contact-info li,
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-contact-info li span,
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-contact-info li a {
    font-size: 1.5rem !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    max-width: 100% !important;
}

/* See Details link - bold and underlined */
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-contact-info li:not(:has(strong)) a {
    font-weight: bold !important;
    text-decoration: underline !important;
}

/* --- HIDE ELEMENTS --- */

/* Hide ALL paragraph tags in cards */
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing p,
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid .lsd-listing p,
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid .lsd-listing .lsd-listing-title-wrapper p,
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid .lsd-listing .lsd-listing-body p,
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid .lsd-listing .lsd-contact-info p {
    display: none !important;
    flex: 0 0 0 !important;
    width: 0 !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    position: absolute !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(100%) !important;
}

/* Hide icon wrapper divs */
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-listing-icons-wrapper,
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid .lsd-listing .lsd-listing-icons-wrapper {
    display: none !important;
}

/* Hide bottom bar */
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-listing-bottom-bar {
    display: none !important;
}

/* Hide social media, website, email */
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-listing-social,
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-listing-social-networks,
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-social-networks,
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-listing-share,
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-social-networks {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
}

.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-listing-website {
    display: none !important;
}

.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-contact-info li:has(a[href^="mailto:"]) {
    display: none !important;
}

.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-contact-info li:has(strong):has(a[href^="http"]:not([href^="tel:"])) {
    display: none !important;
}

/* Hide contact info icons */
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-contact-info li strong,
.lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-contact-info li i.lsd-fe-icon {
    display: none !important;
}


/* ==========================================================================
   17. LISTDOM - SINGLE LISTING PAGE
   ========================================================================== */

.single-listdom-listing .page-header {
    display: none !important;
}

.lsd-single-page-wrapper h1.lsd-single-title {
    font-family: "DM Serif Display", serif;
    font-size: 5rem;
    font-weight: 500;
    color: #ffffff !important;
    line-height: 1;
    text-align: left;
}

.lsd-single-page-wrapper .lsd-single-page-section-title {
    font-weight: 400;
    font-size: 2.5rem;
}

/* Title block with background image */
.lsd-dynamic-section-header {
    background-color: #575757 !important;
    padding: 20px !important;
    margin-bottom: 20px !important;
    margin-left: calc(-50vw + 50%) !important;
    margin-right: calc(-50vw + 50%) !important;
    padding-left: calc(50vw - 50%) !important;
    padding-right: calc(50vw - 50%) !important;
    position: relative !important;
    min-height: 200px !important;
    display: flex !important;
    align-items: center !important;
}

.lsd-dynamic-section-header::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-image: url(https://bunny-wp-pullzone-kj9qfgu6np.b-cdn.net/wp-content/uploads/2023/09/metaballs03.svg) !important;
    background-position: center right !important;
    background-repeat: no-repeat !important;
    background-size: 28% auto !important;
    filter: brightness(37%) contrast(100%) saturate(100%) blur(0px) hue-rotate(0deg) !important;
    pointer-events: none !important;
    z-index: 0 !important;
}

.lsd-dynamic-section-header > * {
    position: relative !important;
    z-index: 1 !important;
}

.single-listdom-listing .lsd-single-page-wrapper div.lsd-single-page-section {
    background-color: transparent !important;
}

body[class*=listdom] {
/*    font-family: var(--listdom-main-font-m), sans-serif; */
    font-family: "DM Sans", sans-serif;
    font-weight: normal;
    line-height: 1.4;
}

.lsd-single-page-wrapper .lsd-single-gallery-box img {
    border-radius: 0px;
}

.lsd-single-content-wrapper.lsd-single-content p,
.lsd-single-content-wrapper.lsd-single-content {
    color: #ffffff !important;
}

.lsd-attr-value {
    display: block !important;
}

.lsd-attr-value p {
    display: block !important;
    margin-bottom: 1em !important;
}

/* ----- Listdom Specialist Page Breadcrumbs ----- */
.listdom-breadcrumbs {
    display: block;
	width: 100%;
    font-size: 1.6rem;
    margin-bottom: 1.5rem;
    font-family: "DM Sans", sans-serif;
    font-style: normal;
    font-weight: normal;
}
.listdom-breadcrumbs a,
.listdom-breadcrumbs .sep,
.listdom-breadcrumbs .current {
    font-family: inherit;
    font-style: normal;
    font-weight: normal;
    color: #ffffff;
}
.listdom-breadcrumbs a {
    text-decoration: none;
}
.listdom-breadcrumbs a:hover {
    color: #ffffff;
}
.listdom-breadcrumbs .sep {
    margin: 0 0.4rem;
}

/* ==========================================================================
   18. RESPONSIVE - TABLET
   ========================================================================== */

/* Navigation dropdown fix */
@media (max-width: 1085px) {
    nav.hfe-nav-menu__layout-horizontal.hfe-dropdown {
        position: fixed !important;
        top: 98px !important;
        right: 0 !important;
        z-index: 9999 !important;
        background: #ffffff !important;
    }
}

/* Listdom search form - tablet */
@media screen and (min-width: 783px) and (max-width: 1024px) {
    .lsd-row.lsd-grid-container {
        grid-template-columns: repeat(6, 1fr);
    }

    .lsd-col-span-3 {
        grid-column: span 3;
    }

    .lsd-col-span-2 {
        grid-column: span 2;
    }
}

/* Listdom listing cards - tablet (2 columns) */
@media screen and (min-width: 768px) and (max-width: 1185px) {
    .lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 20px !important;
    }

    .lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid > div {
        display: block !important;
        width: 100% !important;
    }

    .lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid .lsd-listing {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        max-height: 210px !important;
    }

    .lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid .lsd-listing .lsd-listing-image {
        width: 150px !important;
        height: 150px !important;
        min-width: 150px !important;
        max-width: 150px !important;
        min-height: 150px !important;
        max-height: 150px !important;
        flex-shrink: 0 !important;
    }

    .lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid .lsd-listing .lsd-listing-body {
        flex: 1 !important;
        padding: 15px !important;
    }
}


/* ==========================================================================
   19. RESPONSIVE - MOBILE
   ========================================================================== */

@media screen and (max-width: 782px) {
    /* Listdom search form */
    .lsd-row.lsd-grid-container {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .lsd-col-span-2,
    .lsd-col-span-3 {
        grid-column: span 1;
    }

    .lsd-search-button {
        padding: 12px 24px !important;
        font-size: 1.4rem !important;
    }

    .lsd-search-filter input[type="text"],
    .lsd-radius-search-address,
    .lsd-search-filter select,
    select.listdom-location {
        padding: 10px 14px;
        font-size: 0.95rem;
    }

    /* Sensei button adjustments */
    .sensei-course-theme .wp-block-button.wp-block-button .wp-block-button__link,
    .sensei-course-theme__button.wp-block-button__link,
    button.wp-block-button__link.sensei-stop-double-submission,
    .wp-block-file__button {
        padding: 10px 20px !important;
        font-size: 1.6rem !important;
        width: auto !important;
    }
}

/* Listdom listing cards - mobile (1 column) */
@media screen and (max-width: 767px) {
    .lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }

    .lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid > div {
        display: block !important;
        width: 100% !important;
    }

    .lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid .lsd-listing {
        display: flex !important;
        flex-direction: row !important;
        max-height: none !important;
        align-items: center !important;
    }

    .lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid .lsd-listing .lsd-listing-image {
        width: 150px !important;
        min-width: 150px !important;
        max-width: 150px !important;
        height: 150px !important;
        min-height: 150px !important;
        max-height: 150px !important;
        flex-shrink: 0 !important;
        border-radius: 0 !important;
    }

    .lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid .lsd-listing .lsd-listing-image .lsd-image,
    .lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid .lsd-listing .lsd-listing-image .lsd-image a,
    .lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid .lsd-listing .lsd-listing-image img {
        border-radius: 0 !important;
    }

    .lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid .lsd-listing .lsd-listing-body {
        flex: 1 !important;
        padding: 10px !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        max-width: calc(100vw - 150px - 10px) !important;
        overflow: visible !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }

    .lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid .lsd-listing .lsd-listing-title,
    .lsd-grid-view-wrapper.lsd-style-style4 .lsd-listing-wrapper.lsd-grid .lsd-listing .lsd-listing-title a {
        white-space: normal !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
        overflow: visible !important;
        text-overflow: clip !important;
        hyphens: auto !important;
        font-size: 1.4rem !important;
    }

    .lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-contact-info li,
    .lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-contact-info li span,
    .lsd-grid-view-wrapper.lsd-style-style4 .lsd-grid-view-listings-wrapper .lsd-listing .lsd-contact-info li a {
        font-size: 1.4rem !important;
        white-space: normal !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }

    /* Single listing page header - mobile */
    .lsd-dynamic-section-header {
        min-height: 200px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    /* Hide background image on mobile */
    .lsd-dynamic-section-header::before {
        display: none !important;
    }
}

