/* Ensure the name field spans the full width */
.gfield.gfield--type-name .gform-grid-row {
    display: flex !important;
    gap: 15px !important; /* Adjust the gap between first and last name fields */
}

/* Adjust the width of the first and last name fields */
.gfield.gfield--type-name .gform-grid-col {
    flex: 1 1 50% !important; /* Make each field take up 50% of the available width */
}

/* Ensure the address row spans the full width and items are flex */
.gfield.gfield--type-address .gform-grid-row {
    display: flex !important;
    /*gap: 15px !important; /* Adjust the gap between state and zip fields */
    width: 100% !important;
    flex-wrap: nowrap !important; /* Prevent wrapping */
}

/* Ensure each address field takes up 50% of the row width minus the gap */
.gfield.gfield--type-address .ginput_address_state, 
.gfield.gfield--type-address .ginput_address_zip {
    flex: 1 1 calc(50% - 7.5px) !important; /* Make each field take up 50% of the available width minus half the gap */
}

/* Add specific padding to the ZIP / Postal Code field */
.gfield.gfield--type-address .ginput_address_zip {
    padding-left: 10px !important;
}

/* Ensure padding and border are included in the element's total width and height */
.ginput_container {
    box-sizing: border-box !important;
}

/* Ensure complex input fields are displayed as flex items */
.gform_wrapper.gravity-theme .ginput_complex {
    display: flex !important;
    flex-wrap: nowrap !important;
    /*gap: 15px !important;*/
    width: 100% !important;
}

/* Ensure labels are displayed as block elements */
.ginput_complex span label {
    display: block !important;
    margin-bottom: 5px; /* Add some space between label and input */
}

/* Ensure inputs are displayed as block elements */
.ginput_complex span input {
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Ensure each address field takes up 50% of the row width minus the gap */
.ginput_complex span {
    flex: 1 1 calc(50% - 7.5px) !important; /* Make each span take up 50% of the available width minus half the gap */
}

/* Remove unnecessary margin adjustments */
.gform_wrapper.gravity-theme .ginput_container_address {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Adjust margin-bottom for address spans within gravity-theme forms */
@media (min-width: 641px) {
    .gform_wrapper.gravity-theme .ginput_container_address span, 
    .gform_wrapper.gravity-theme .ginput_full:not(:last-of-type) {
        margin-bottom: 8px !important;
    }
}

/* Ensure padding and border are included in the element's total width and height */
.gform_wrapper.gravity-theme * {
    box-sizing: border-box;
}

/* 
/* Ensure proper alignment of the address fields 
.gfield.gfield--type-address .ginput_right {
    padding-left: 10px !important;
}
*/

/*.gfield.gfield--type-address .ginput_left {
    padding-right: 10px !important;
}*/

/* Specific rule to ensure labels and inputs are not overlapping */
.ginput_complex span label {
    width: 100%;
    display: block;
}

/* Ensure complex input containers have no padding */
.ginput_complex {
    padding: 0 !important;
}

#input_12_1_3_container {
    padding-right: 0 !important;
}

#input_12_7_5_container {
    padding-right: 0 !important;
}

/* Responsive adjustments for mobile */
@media (max-width: 640px) {
    /* Stack name fields vertically */
    .gfield.gfield--type-name .gform-grid-row {
        flex-wrap: wrap !important;
    }

    .gfield.gfield--type-name .gform-grid-col {
        flex: 1 1 100% !important;
    }

    /* Stack address fields vertically */
    .gfield.gfield--type-address .gform-grid-row {
        flex-wrap: wrap !important;
    }

    .gfield.gfield--type-address .ginput_address_state,
    .gfield.gfield--type-address .ginput_address_zip {
        flex: 1 1 100% !important;
        padding-left: 0 !important; /* Reset padding for mobile */
        padding-right: 0 !important; /* Reset padding for mobile */
    }

    /* Remove specific padding for ZIP / Postal Code field */
    .gfield.gfield--type-address .ginput_address_zip {
        padding-left: 0 !important;
    }

    #input_12_1_6_container {
        padding: 0;
    }
}

.gform_required_legend {
    display: none !important;
}

/* End Contact Form rules */

/* james-footer-styles.css */

.james-footer {
    background-color: #f2f3f3;
    padding: 40px 0;
}

.james-footer-fui-container {
    max-width: 70%;
    margin-left: auto;
    margin-right: auto;
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
    font-size: 15px;
}

.james-footer-fui-container p {
    margin-bottom: 0px;
    font-size: 15px;
}

/* Contact Us Page New Styles */

.contact-page {
    position: relative;
    padding-top: 2px; /* Space for the blue line */
}

.page-template-template-new .contact-page .fui-container {
    max-width: 70%;
    margin-left: auto;
    margin-right: auto;
}

.contact-page::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background-color: var(--mgis-blue);
}


.single-solution-page .fui-container .map-container .col-md-12 .subpage .text-primary {
    text-align: left;
    font-weight: 600;
    margin-bottom: 0;

}

.single-solution-page .fui-container .map-container .col-md-12 .subpage p {
    text-align: left;
    text-transform: none;
    letter-spacing: 0px;
    margin: 0 0;
}

.map-container .gform_wrapper.gravity-theme .gfield textarea.large {
    height: 150px;
}

@media (max-width: 767px) {
    .page-template-template-new .contact-page .fui-container {
        max-width: 80%;
    }

    section.single-solution-page.contact-page.map-section > .map-container{
        padding: 40px 0px;
    }

    .page-id-62 section.single-solution-page.contact-page.map-section > .map-container h2{
        font-size: 24px;
    }

    section.single-solution-page {
        padding: 50px 0px;
    }

    section.sales-team .fui-container {
        padding-right: 0px;
    }

    .bg-light {
        display: none;
    }

}

/* Careers */

.careers-page {
    position: relative;
    padding-top: 2px; /* Space for the blue line */
}

.careers-page::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background-color: var(--mgis-blue);
}

.page-template-template-career-php .careers-page .fui-container {
    max-width: 70%;
    margin-left: auto;
    margin-right: auto;
}

.page-template-template-career-php .careers-page .fui-container .row .col-md-12{
    padding-left: 0;
    padding-right: 0;
}

.careers-page .fui-container .row .col-md-12 .subpage h1 {
    font-size: 36px;
}

.page-template-template-career-php .careers-page .fui-container .row .col-md-12 .subpage h2 {
    font-size: 24px;
}

.page-template-template-career-php .careers-page .fui-container .row .col-md-12 .subpage strong {
    color: var(--mgis-blue)
}

.page-template-template-career-php .careers-page .fui-container .row .col-md-12 .subpage p {
    color: #333333;
}

@media (max-width: 767px) {
    .page-template-template-career-php .careers-page .fui-container {
        max-width: 80%;
        padding-left: 0;
        padding-right: 0;
    }

    .careers-page .fui-container .row .col-md-12 .subpage h1 {
        font-size: 27px;
        line-height: 1.2;
    }


}

/* Login */

.page-id-271 .single-solution-page {
    position: relative;
    padding-top: 2px; /* Space for the blue line */
}

.page-id-271 .single-solution-page::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background-color: var(--mgis-blue);
}

.page-id-271 .single-solution-page .fui-container .row .col-md-12 .subpage h2 {
    padding-top: 40px;
    font-size: 36px;
}

.page-id-271 .single-solution-page .fui-container{
    max-width: 70%;
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 767px) {
    .page-id-271 .single-solution-page .fui-container .row .col-md-12 .subpage h2 {
        font-size: 27px;
    }

    .page-id-271 .single-solution-page .fui-container .row .col-md-12 .subpage h3 {
        font-size: 20px;
    }

    .page-id-271 .single-solution-page .fui-container{
        max-width: 80%;
    }


}

/* Our Partners */

.page-id-232 .single-solution-page {
    position: relative;
    padding-top: 2px; /* Space for the blue line */
}

.page-id-232 .single-solution-page::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background-color: var(--mgis-blue);
}

.page-id-232 .single-solution-page .fui-container .row .col-md-12 .subpage h2 {
    padding-top: 40px;
    font-size: 36px;
}

.page-id-232 .single-solution-page .fui-container{
    max-width: 70%;
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 767px) {
    .page-id-232 .single-solution-page .fui-container .row .col-md-12 .subpage h2 {
        font-size: 27px;
    }

    .page-id-232 .single-solution-page .fui-container .row .col-md-12 .subpage h3 {
        font-size: 20px;
    }

    .page-id-232 .single-solution-page .fui-container{
        max-width: 80%;
    }


}

/* Privacy Policy */

.page-id-3 .single-solution-page {
    position: relative;
    padding-top: 2px; /* Space for the blue line */
}

.page-id-3 .single-solution-page::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background-color: var(--mgis-blue);
}

.page-id-3 .single-solution-page .fui-container .row .col-md-12 .subpage h1 {
    padding-top: 40px;
    font-size: 36px;
    font-weight: 600;
}

.page-id-3 .single-solution-page .fui-container .row .col-md-12 .subpage h2 {
	font-size: 20px;
	margin-top: 15px;
}

.page-id-3 .single-solution-page .fui-container{
    max-width: 70%;
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 767px) {
    .page-id-3 .single-solution-page .fui-container .row .col-md-12 .subpage h1 {
        font-size: 27px;
    }

    .page-id-3 .single-solution-page .fui-container .row .col-md-12 .subpage h3 {
        font-size: 20px;
    }

    .page-id-3 .single-solution-page .fui-container{
        max-width: 80%;
    }

    .page-id-3 .single-solution-page .fui-container .row .col-md-12 .subpage h2 {
        font-size: 18px;
    }


}

/*Blog*/

section.blog-hero{
    position: relative;
    padding-top: 2px; /* Space for the blue line */
}

section.blog-hero::before{
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background-color: var(--mgis-blue);
}

.breadcrumb-top{
    position: relative;
    padding-top: 2px; /* Space for the blue line */
}

.breadcrumb-top::before{
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background-color: var(--mgis-blue);
}

.bg-light{
    margin-top: 40px;
}

.podcasts-hero-container-top{
    position: relative;
    padding-top: 2px; /* Space for the blue line */
}

.podcasts-hero-container-top::before{
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background-color: var(--mgis-blue);
}

.podcasts-hero {
    margin-top: 40px;
}

.single-article-page .blog-content .content iframe[src*="player.vimeo.com"] {
    height: auto !important;
    min-height: 400px; /* Fallback minimum height */
}


/* Production - id for newsletter html content block is different on dev vs prod */
#field_9_3{
    font-size: 12px;
    text-align: left;
}

/* Dev - id for newsletter html content block is different on dev vs prod */
#field_9_4{
    font-size: 12px;
    text-align: left;
}

#field_12_9 {
    font-size: 12px;
}

#field_13_9 {
    font-size: 12px;
}

#field_11_8 {
    font-size: 12px;
}

#field_14_15 {
    font-size: 12px;
}

/* === Category Grid (video with image fallback) === */
.browse-categories .category-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

/* Card shell */
.category-card {
  position: relative;
  display: block;
  aspect-ratio: 1 / 1;         /* square tiles */
  border-radius: 16px;
  overflow: hidden;
  background: #0b1220;         /* base bg (covered by media) */
  box-shadow: 0 2px 10px rgba(0,0,0,.08);
  text-decoration: none;
  color: inherit;
  isolation: isolate;
}

/* Media layers — video, real image, or placeholder all behave the same */
.category-card__video,
.category-card__poster,
.category-card__image {         /* alias for older image-only markup */
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}

/* Placeholder tint if no media image available */
.category-card__poster--placeholder,
.category-card__image--placeholder { /* alias for older image-only markup */
  background:
    linear-gradient(135deg,
      color-mix(in srgb, var(--accent, #3b82f6) 85%, #0b1220) 0%,
      color-mix(in srgb, var(--accent, #3b82f6) 45%, #0b1220) 100%);
}

/* Color tint (lets the media show through with a hue) */
.category-card__tint {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg,
      color-mix(in srgb, var(--accent, #3b82f6) 65%, transparent) 0%,
      color-mix(in srgb, var(--accent, #3b82f6) 25%, transparent) 100%);
  mix-blend-mode: multiply;
  opacity: .9;
  pointer-events: none;
}

/* Shade for title legibility */
.category-card__shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top, rgba(0,0,0,.55) 0%, rgba(0,0,0,.15) 55%, rgba(0,0,0,0) 100%);
  pointer-events: none;
  opacity: .95;
}

/* Legacy single-layer overlay support (from your image-only version) */
.category-card__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top, rgba(0,0,0,.55) 0%, rgba(0,0,0,.15) 60%, rgba(0,0,0,0) 100%),
    linear-gradient(135deg,
      color-mix(in srgb, var(--accent, #3b82f6) 65%, transparent) 0%,
      color-mix(in srgb, var(--accent, #3b82f6) 25%, transparent) 100%);
  mix-blend-mode: multiply;
  opacity: .9;
  pointer-events: none;
}

/* Title */
.category-card__title {
  position: absolute;
  left: .9rem;
  right: .9rem;
  bottom: .8rem;
  font-weight: 800;
  font-size: 1.05rem;
  line-height: 1.2;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0,0,0,.35);
  z-index: 2;
}

/* Accent border */
.category-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 2px solid color-mix(in srgb, var(--accent, #3b82f6) 55%, transparent);
  border-radius: 16px;
  opacity: .75;
  pointer-events: none;
}

/* Hover / focus */
.category-card:hover .category-card__video,
.category-card:hover .category-card__poster,
.category-card:hover .category-card__image {  /* covers both markups */
  transform: scale(1.05);
}

.category-card:focus-visible {
  outline: 3px solid var(--accent, #3b82f6);
  outline-offset: 2px;
}

/* Motion/accessibility */
@media (prefers-reduced-motion: reduce) {
  .category-card__video { animation: none !important; transition: none !important; }
  .category-card__poster,
  .category-card__image { transition: none !important; }
}

/* Larger screens */
@media (min-width: 1024px) {
  .browse-categories .category-grid { gap: 1.25rem; }
}

/* --- Width + wrapping --- */
.browse-categories .fui-container {
  max-width: 1300px;
  margin-inline: auto;
  padding-inline: 1rem; /* keeps nice gutters at small widths */
}

/* --- Grid --- */
.browse-categories .category-grid {
  display: grid;
  gap: 1rem;
  /* bump the min tile width a bit so it wraps nicely under 1300px */
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

/* --- Cards (same classes as before; keeps your look) --- */
.category-card {
  position: relative;
  display: block;
  aspect-ratio: 1 / 1;     /* square tiles; change to 4/3 if you prefer */
  border-radius: 16px;
  overflow: hidden;
  background: #0b1220;
  box-shadow: 0 2px 10px rgba(0,0,0,.08);
  text-decoration: none;
  color: inherit;
  isolation: isolate;
  cursor: pointer;
}

/* Media layers — video, poster image, or placeholder */
.category-card__video,
.category-card__poster,
.category-card__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}

.category-card__poster--placeholder,
.category-card__image--placeholder {
  background:
    linear-gradient(135deg,
      color-mix(in srgb, var(--accent, #3b82f6) 85%, #0b1220) 0%,
      color-mix(in srgb, var(--accent, #3b82f6) 45%, #0b1220) 100%);
}

/* Tint + shade overlays */
.category-card__tint {
  position: absolute; inset: 0;
  background:
    linear-gradient(135deg,
      color-mix(in srgb, var(--accent, #3b82f6) 65%, transparent) 0%,
      color-mix(in srgb, var(--accent, #3b82f6) 25%, transparent) 100%);
  mix-blend-mode: multiply;
  opacity: .9; pointer-events: none;
}
.category-card__shade {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,.15) 55%, rgba(0,0,0,0));
  opacity: .95; pointer-events: none;
}

/* Title */
.category-card__title {
  position: absolute;
  left: .9rem; right: .9rem; bottom: .8rem;
  font-weight: 800; font-size: 1.05rem; line-height: 1.2;
  color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.35);
  z-index: 2;
}

/* Accent border */
.category-card::after {
  content: "";
  position: absolute; inset: 0;
  border: 2px solid color-mix(in srgb, var(--accent, #3b82f6) 55%, transparent);
  border-radius: 16px; opacity: .75; pointer-events: none;
}

/* Hover zoom (affects both image and video) */
.category-card:hover .category-card__video,
.category-card:hover .category-card__poster,
.category-card:hover .category-card__image {
  transform: scale(1.05);
}

/* Focus ring */
.category-card:focus-visible {
  outline: 3px solid var(--accent, #3b82f6);
  outline-offset: 2px;
}

/* Motion/accessibility */
@media (prefers-reduced-motion: reduce) {
  .category-card__video,
  .category-card__poster,
  .category-card__image { transition: none !important; }
}

/* Larger screens: slightly bigger gaps */
@media (min-width: 1024px) {
  .browse-categories .category-grid { gap: 1.25rem; }
}

/* Quick fix: Always hide poster when hovering on desktop */
@media (min-width: 1024px) {
  .category-card:hover .category-card__poster {
    opacity: 0;
    pointer-events: none;
  }
}

