/* The exported Duda pages use desktop CSS even on phones. Keep overrides scoped
   to mobile, with enough specificity to beat the asynchronously loaded styles. */
#dmRoot #dm .mobile-navigation { display: none; }

@media (max-width: 767px) {
    #dmRoot #dm .dmInner,
    #dmRoot #dm .dmLayoutWrapper,
    #dmRoot #dm .dmRespRow,
    #dmRoot #dm .dmRespColsWrapper,
    #dmRoot #dm .dmRespCol {
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }
    #dmRoot #dm .dmInner { width: 100% !important; }
    #dmRoot #dm .dmRespColsWrapper {
        display: flex !important;
        flex-direction: column;
        width: 100% !important;
        margin-inline: 0 !important;
    }
    #dmRoot #dm .dmRespCol {
        float: none !important;
        flex: 0 0 auto !important;
        width: 100% !important;
        margin-inline: 0 !important;
        padding: 12px 0 !important;
    }
    #dmRoot #dm .dmRespRow { padding: 36px 20px !important; }
    #dmRoot #dm .dmRespCol .dmRespRow { padding: 12px 0 !important; }
    #dmRoot #dm .mobile-columns-reversed > .dmRespColsWrapper { flex-direction: column-reverse; }
    #dmRoot #dm .hide-for-small { display: none !important; }

    /* An in-flow header avoids the desktop sticky runtime's fixed offsets. */
    #dmRoot #dm .dmHeaderContainer,
    #dmRoot #dm .dmHeader {
        position: relative !important;
        top: auto !important;
        height: auto !important;
        min-height: 0 !important;
        min-width: 0 !important;
        max-width: 100% !important;
        transform: none !important;
        width: 100% !important;
    }
    #dmRoot #dm .stickyHeaderSpacer { display: none !important; height: 0 !important; }
    #dmRoot #dm #site_content { padding-top: 0 !important; margin-top: 0 !important; }
    #dmRoot #dm .has-mobile-navigation > .dmHeaderResp { display: none !important; }
    #dmRoot #dm .mobile-navigation {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 16px 20px;
        background: #fff;
        border-bottom: 1px solid #e7dfea;
    }
    #dmRoot #dm .mobile-home { display: flex; align-items: center; min-height: 44px; width: min(65%, 220px); }
    #dmRoot #dm .mobile-home img { width: 100%; height: auto; }
    #dmRoot #dm .mobile-menu-toggle {
        min-width: 64px;
        min-height: 44px;
        padding: 10px 12px;
        border: 1px solid #7a2791;
        border-radius: 5px;
        background: #fff;
        color: #7a2791;
        font: 700 15px/1.4 'DM Sans', sans-serif;
        cursor: pointer;
    }
    #dmRoot #dm #mobile-site-menu { flex: 0 0 100%; text-align: left; }
    #dmRoot #dm #mobile-site-menu[hidden] { display: none !important; }
    #dmRoot #dm #mobile-site-menu ul { list-style: none; margin: 0; padding: 8px 0 0; }
    #dmRoot #dm #mobile-site-menu li { margin: 0; padding: 0; }
    #dmRoot #dm #mobile-site-menu a {
        display: flex;
        align-items: center;
        min-height: 46px;
        padding: 10px 12px;
        color: #424242;
        font: 600 15px/1.5 'DM Sans', sans-serif;
        text-decoration: none;
        border-bottom: 1px solid #eee8ef;
    }
    #dmRoot #dm #mobile-site-menu a[aria-current],
    #dmRoot #dm #mobile-site-menu a:hover { color: #7a2791; background: #f8f5f9; }
    #dmRoot #dm #mobile-site-menu .mobile-submenu-item a { padding-left: 24px; font-size: 13px; font-weight: 400; }
    #dmRoot #dm a:focus-visible,
    #dmRoot #dm button:focus-visible { outline: 2px solid #7a2791; outline-offset: 3px; }

    #dmRoot #dm .dmNewParagraph { max-width: 100%; overflow-wrap: anywhere; }
    #dmRoot #dm .dmNewParagraph:has(h1) { width: 100% !important; margin-inline: 0 !important; padding-inline: 0 !important; }
    #dmRoot #dm .dmNewParagraph h1,
    #dmRoot #dm .dmNewParagraph h1 span { font-size: clamp(28px, 7.5vw, 34px) !important; line-height: 1.2 !important; }
    #dmRoot #dm .dmNewParagraph h2,
    #dmRoot #dm .dmNewParagraph h2 span { font-size: clamp(24px, 6vw, 28px) !important; line-height: 1.25 !important; }
    #dmRoot #dm .dmNewParagraph h3,
    #dmRoot #dm .dmNewParagraph h3 span { font-size: 21px !important; line-height: 1.3 !important; }
    #dmRoot #dm .dmNewParagraph p,
    #dmRoot #dm .dmNewParagraph p span,
    #dmRoot #dm .dmNewParagraph li { font-size: 16px !important; line-height: 1.6 !important; }
    #dmRoot #dm .dmButtonLink {
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 100% !important;
        max-width: 360px !important;
        min-height: 48px !important;
        height: auto !important;
        margin: 12px auto !important;
        padding: 12px 18px !important;
        box-sizing: border-box;
    }
    #dmRoot #dm .dmButtonLink .text { padding: 0 !important; white-space: normal !important; line-height: 1.5 !important; }
    #dmRoot #dm .dmRespCol:has(> .dmButtonLink):not(:has(> :not(.dmButtonLink))) { padding-block: 0 !important; }
    #dmRoot #dm .imageWidget { max-width: 100% !important; margin-inline: auto !important; }
    #dmRoot #dm .imageWidget img { max-width: 100% !important; height: auto !important; }
    #dmRoot #dm .dmPhotoGallery .image-container img {
        display: block !important;
        position: absolute;
        inset: 0;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover;
    }
    #dmRoot #dm .dmRespCol.empty-column { min-height: 240px !important; }
    #dmRoot #dm .youtubeExt { width: 100% !important; max-width: 100% !important; height: auto !important; margin: 12px 0 !important; }
    #dmRoot #dm .innerYoutubeExt { height: auto !important; padding: 0 !important; aspect-ratio: 16 / 9; }
    #dmRoot #dm .innerYoutubeExt iframe { width: 100% !important; height: 100% !important; }
    #dmRoot #dm .dmShape[shape-type='circle'] { width: min(100%, 280px) !important; height: auto !important; aspect-ratio: 1; margin: 12px auto !important; }
    #dmRoot #dm .dmShape[shape-type='circle'] svg { display: block; width: 100%; height: 100%; aspect-ratio: 1; }
    #dmRoot #dm .fullBleedMode .dmShape[shape-type='circle'] { width: 120px !important; }
    #dmRoot #dm .dmRespRow.fullBleedMode:has(.dmShape) .dmNewParagraph { text-align: center !important; }
    #dmRoot #dm .dmRespRow.fullBleedMode:has(.dmShape) h2 { text-align: center !important; }
    #dmRoot #dm [data-anchor],
    #dmRoot #dm #telefono { scroll-margin-top: 16px; }

    #dmRoot #dm .dmform-wrapper { width: 100% !important; max-width: 100% !important; padding: 0 !important; }
    #dmRoot #dm .dmforminput { width: 100% !important; padding-inline: 0 !important; box-sizing: border-box; }
    #dmRoot #dm .dmforminput input:not([type='checkbox']):not([type='hidden']),
    #dmRoot #dm .dmforminput textarea,
    #dmRoot #dm .dmforminput select { width: 100% !important; min-height: 48px; font-size: 16px !important; box-sizing: border-box; }
    #dmRoot #dm .dmforminput textarea { min-height: 130px; }
    #dmRoot #dm .contact-checkable-container label { display: flex !important; align-items: flex-start; gap: 10px; min-height: 44px; padding-block: 10px; }
    #dmRoot #dm .contact-checkable-container input[type='checkbox'] { flex-shrink: 0; width: 20px; height: 20px; margin: 2px 0 0 !important; }
    #dmRoot #dm .dmformsubmit { max-width: 100% !important; min-height: 48px !important; }
    #dmRoot #dm .dmformsubmit input { min-height: 48px; font-size: 16px !important; }
    #dmRoot #dm .dmSocialHub a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
    #dmRoot #dm .dmFooter .dmNewParagraph { overflow-wrap: anywhere; }
    #dmRoot #dm .dmFooter .imageWidget { width: 220px !important; }
    #dmRoot #dm .dmCustomWidget:has(.accordion-wrapper) { width: 100% !important; padding-inline: 0 !important; }
    #dmRoot #dm .accordion-title { min-height: 48px; padding: 16px !important; gap: 12px; }
    #dmRoot #dm .accordion-title .title-text { flex: 1; min-width: 0; }
    #dmRoot #dm .accordion-title h3 { font-size: 16px !important; line-height: 1.5 !important; }
    #dmRoot #dm .accordion-title .arrow-wrapper { flex-shrink: 0; margin: 0 !important; }
    #dmRoot #dm .accordion-description .section-inner { padding: 16px !important; font-size: 16px !important; line-height: 1.6 !important; }
    #dmRoot #dm .clinic-maps h2 { font-size: 28px; }
}
