/* =========================================
   GEM MOBILE WIDTH / OVERFLOW FIX
   Applies only to phones
   ========================================= */

@media screen and (max-width: 767px) {

    /* Stop the entire site from extending past the phone screen */
    html,
    body {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Keep Elementor itself inside the viewport */
    .elementor,
    .elementor-section,
    .elementor-section-wrap,
    .elementor-container,
    .elementor-column,
    .elementor-widget-wrap,
    .elementor-widget,
    .elementor-widget-container,
    .e-con,
    .e-con-inner {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Fix modern Elementor containers */
    .e-con,
    .e-con-inner {
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* Give page content a clean mobile margin */
    .elementor > .e-con,
    .elementor-section > .elementor-container {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    /* Prevent widgets from forcing the page wider */
    .elementor-widget {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* Images and media must shrink to fit */
    img,
    video,
    iframe,
    svg {
        max-width: 100% !important;
        height: auto !important;
    }

    /* Prevent long headings or text from overflowing */
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    p,
    a,
    span {
        max-width: 100% !important;
        overflow-wrap: break-word !important;
        word-wrap: break-word !important;
    }

    /* Prevent buttons from extending beyond screen */
    .elementor-button-wrapper,
    .elementor-button {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Remove accidental horizontal transforms */
    .elementor-element {
        left: auto !important;
        right: auto !important;
    }@media screen and (max-width: 767px) {
    * {
	/* ==================================================
   GEM HOMEPAGE MOBILE WIDTH FIX
   Handles WordPress Blocks + Elementor
   Homepage only
   ================================================== */

@media screen and (max-width: 767px) {

    /* Lock homepage itself to the phone */
    html,
    body.home,
    body.home #page,
    body.home #content,
    body.home main,
    body.home .site,
    body.home .site-content,
    body.home .entry-content,
    body.home .wp-site-blocks {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
    }


    /* =====================================
       WORDPRESS / GUTENBERG BLOCKS
       ===================================== */

    body.home .wp-block-group,
    body.home .wp-block-cover,
    body.home .wp-block-columns,
    body.home .wp-block-column,
    body.home .wp-block-image,
    body.home .wp-block-media-text,
    body.home .wp-block-buttons,
    body.home .wp-block-button,
    body.home .wp-block-heading {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        left: auto !important;
        right: auto !important;
        transform: none !important;
    }


    /* IMPORTANT:
       Fix full-width blocks that are extending past phone */
    body.home .alignfull,
    body.home .alignwide {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        left: auto !important;
        right: auto !important;
        transform: none !important;
    }


    /* Stack WordPress columns */
    body.home .wp-block-columns {
        display: flex !important;
        flex-direction: column !important;
        gap: 30px !important;
    }

    body.home .wp-block-column {
        flex-basis: 100% !important;
        width: 100% !important;
    }


    /* Give text safe mobile breathing room */
    body.home .wp-block-group > *,
    body.home .wp-block-column > *,
    body.home .entry-content > p,
    body.home .entry-content > h1,
    body.home .entry-content > h2,
    body.home .entry-content > h3,
    body.home .entry-content > h4 {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }


    /* Standard text padding */
    body.home p,
    body.home h1,
    body.home h2,
    body.home h3,
    body.home h4,
    body.home h5,
    body.home h6 {
        max-width: 100% !important;
        overflow-wrap: break-word !important;
        word-wrap: break-word !important;
    }


    /* Images */
    body.home img,
    body.home figure,
    body.home .wp-block-image img {
        max-width: 100% !important;
        height: auto !important;
        box-sizing: border-box !important;
    }


    /* =====================================
       ELEMENTOR - if present on homepage
       ===================================== */

    body.home .elementor,
    body.home .elementor-section,
    body.home .elementor-container,
    body.home .elementor-row,
    body.home .elementor-column,
    body.home .elementor-widget-wrap,
    body.home .elementor-widget,
    body.home .elementor-widget-container,
    body.home .e-con,
    body.home .e-con-inner {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        box-sizing: border-box !important;
        left: auto !important;
        right: auto !important;
        transform: none !important;
    }


    /* Absolute final safeguard */
    body.home * {
        max-width: 100%;
        box-sizing: border-box;
    }

    body.home {
        overflow-x: clip !important;
    }
}
		/* =========================================
   GEM MOBILE SITE TITLE FIX
   ========================================= */

@media screen and (max-width: 767px) {

    /* Site title */
    .site-title,
    .site-title a {
        font-size: 32px !important;
        line-height: 1.15 !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        white-space: normal !important;
        overflow-wrap: normal !important;
        box-sizing: border-box !important;
    }

    /* Site branding container */
    .site-branding {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 28px 20px 15px 20px !important;
        box-sizing: border-box !important;
        position: relative !important;
        top: auto !important;
        transform: none !important;
    }

    /* Site description/tagline */
    .site-description {
        width: 100% !important;
        max-width: 100% !important;
        margin-top: 14px !important;
        line-height: 1.45 !important;
        box-sizing: border-box !important;
    }
}	
		@media screen and (max-width: 767px) {

    /* Force mobile header title to fit */
    header h1,
    header .wp-block-site-title,
    header .wp-block-site-title a,
    .site-header h1,
    .site-header .wp-block-site-title,
    .site-header .wp-block-site-title a,
    .wp-site-blocks header h1,
    .wp-site-blocks header .wp-block-site-title,
    .wp-site-blocks header .wp-block-site-title a {
        font-size: 32px !important;
        line-height: 1.1 !important;
        max-width: 100% !important;
        width: 100% !important;
        white-space: normal !important;
        overflow: visible !important;
        margin: 0 !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }

    /* Make sure header itself is not hiding the title */
    header,
    .site-header,
    .wp-block-template-part {
        overflow: visible !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Give title room below login/register bar */
    .wp-block-site-title,
    .site-title {
        padding-top: 20px !important;
    }
}	
.gem-download-button {
    background-color: #295177 !important;
    color: #ffffff !important;
    border: 1px solid #295177 !important;
    padding: 10px 20px !important;
    border-radius: 4px !important;
    display: inline-block !important;
    text-decoration: none !important;
}

.gem-download-button:hover {
    background-color: #1f3f5d !important;
    color: #ffffff !important;
    border-color: #1f3f5d !important;
}