
/* Square Panel Fix */
.square-panel{
  aspect-ratio: 11 / 10;
  overflow: hidden;
}

/* Mobile Square Panel Fix */
@media (max-width: 767px) {
  .jh-square-panel-mobile {
    aspect-ratio: 11 / 10;
    overflow: hidden;
  }

	
	
	
	
	
.jh-square-menu {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 20px !important;
  width: 100% !important;
}

.jh-square-menu > .e-con-inner {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 20px !important;
  width: 100% !important;
}

.jh-square-menu-item {
  flex: 0 1 calc(25% - 20px) !important;
  width: auto !important;
  max-width: 180px !important;
  min-width: 80px !important;
  aspect-ratio: 1 / 1 !important;
  height: auto !important;
  min-height: 0 !important;
}

.jh-square-menu-item img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  display: block !important;
}

@media (max-width: 767px) {
  .jh-square-menu-item {
    flex-basis: calc(50% - 20px) !important;
    max-width: 150px !important;
  }
}
	
	
	
	
	
	
	
	
	
	/* Mobile override for panels that are both wide cards and mobile square panels */
@media (max-width: 767px) {
  .jh-wide-card.jh-square-panel-mobile {
    aspect-ratio: 11 / 10 !important;
    width: 100% !important;
    min-height: unset !important;
    overflow: hidden !important;
  }

  .jh-wide-card.jh-square-panel-mobile > .elementor-widget-wrap,
  .jh-wide-card.jh-square-panel-mobile > .e-con-inner {
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    padding: 24px !important;
  }
}
	
	
	
	
	
	

  .jh-square-panel-mobile .elementor-widget-image,
  .jh-square-panel-mobile .elementor-widget-image .elementor-widget-container {
    width: 100% !important;
    height: 100% !important;
  }

  .jh-square-panel-mobile img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
  }
}
	
	
	
	
	
	
	
	
  .jh-square-panel-mobile > .elementor-widget-wrap,
  .jh-square-panel-mobile > .e-con-inner {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 24px;
  }
}

.square-panel > .elementor-widget-wrap{
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 40px;
}

@media screen and (min-width: 44.375em) {
  .site {
    margin: 0 !important;
  }

  body:not(.custom-background-image):before,
  body:not(.custom-background-image):after {
    height: 0 !important;
  }
}

/* Fix Fluent Forms checkbox labels on mobile */
.fluentform .ff-el-form-check {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  margin-bottom: 14px !important;
}

.fluentform .ff-el-form-check-input {
  flex: 0 0 auto !important;
  margin-top: 5px !important;
}

.fluentform .ff-el-form-check-label {
  display: block !important;
  width: auto !important;
  line-height: 1.5 !important;
  letter-spacing: normal !important;
  white-space: normal !important;
  font-size: 15px !important;
  color: #545454 !important;
}

/* Space above the first checkbox field */
.fluentform .ff-el-group:has(.ff-el-form-check):first-of-type {
  margin-top: 30px !important;
}

/* Keep checkbox fields close together */
.fluentform .ff-el-group:has(.ff-el-form-check) {
  margin-bottom: 4px !important;
}

/* Add more space after the final checkbox field */
.fluentform .ff-el-group:has(.ff-el-form-check) + .ff-el-group:not(:has(.ff-el-form-check)) {
  margin-top: 30px !important;
}

/* MENU TABLET FIX */
@media (min-width: 768px) and (max-width: 1366px) {

  /* Full menu container */
  .ekit-wid-con .elementskit-menu-container,
  .ekit-wid-con .elementskit-navbar-nav-default {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
  }

  /* Main menu row */
  .ekit-wid-con .elementskit-navbar-nav {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 38px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    width: auto !important;
    list-style: none !important;
  }

  /* Menu items */
  .ekit-wid-con .elementskit-navbar-nav > li {
    display: inline-flex !important;
    align-items: center !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: 0 0 auto !important;
    white-space: nowrap !important;
  }

  /* Menu links */
  .ekit-wid-con .elementskit-navbar-nav > li > a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;

    font-size: 11px !important;
    letter-spacing: 1.4px !important;
    line-height: 1.2 !important;
  }

  /* Hide ElementsKit's original arrow/icon so we do not get duplicates */
  .ekit-wid-con .elementskit-navbar-nav > li > a .elementskit-submenu-indicator,
  .ekit-wid-con .elementskit-navbar-nav > li > a .elementskit-submenu-indicator i,
  .ekit-wid-con .elementskit-navbar-nav > li > a .elementskit-submenu-indicator svg {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
  }

  /* Create one clean dropdown arrow manually */
  .ekit-wid-con .elementskit-navbar-nav > li.menu-item-has-children > a::after {
    content: "▾" !important;
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;

    margin-left: 6px !important;
    padding: 0 !important;

    font-size: 9px !important;
    line-height: 1 !important;
    color: inherit !important;

    position: static !important;
    transform: translateY(-1px) !important;
  }
}

  /* Clean up Tithe.ly */
.jh-tithely-wrap {
  width: 100%;
  max-width: 100%;
  overflow: visible;
}

.jh-tithely-iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  min-height: 950px;
  border: 0;
}

@media (max-width: 767px) {
  .jh-tithely-wrap {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    overflow-x: hidden;
  }

  .jh-tithely-iframe {
    width: 100vw;
    max-width: 100vw;
    min-height: 1100px;
  }
}

/* Elementskit menu + submenu hover grow using scale */

.elementskit-navbar-nav > li > a,
.elementskit-dropdown li a {
  transition: transform 0.2s ease !important;
  display: inline-block;
  transform-origin: center;
}

/* Main menu hover */
.elementskit-navbar-nav > li > a:hover {
  transform: scale(1.08);
}

/* Dropdown/submenu hover */
.elementskit-dropdown li a:hover {
  transform: scale(1.06);
}







/* JESUS HOUSE - ElementsKit Phone Menu Only */
@media (max-width: 767px) {











  /* Parent menu items */
  .elementskit-navbar-nav > li > a {
    padding: 15px 22px 7px !important;
    border-bottom: none !important;
    font-size: 18px !important;
    color: #B7A68C !important;
    font-weight: 600 !important;
  }

  /* First-level submenu items */
  .elementskit-navbar-nav > li > .elementskit-dropdown > li > a,
  .elementskit-navbar-nav > li > .elementskit-submenu-panel > li > a {
    padding: 8px 22px 8px 42px !important;
    font-size: 14px !important;
    color: #545454 !important;
    font-weight: 400 !important;
    opacity: 0.72 !important;
    border: none !important;
  }

  /* Sub-submenu items */
  .elementskit-navbar-nav .elementskit-dropdown .elementskit-dropdown li a,
  .elementskit-navbar-nav .elementskit-submenu-panel .elementskit-submenu-panel li a {
    padding: 8px 22px 8px 62px !important;
    font-size: 14px !important;
    color: #545454 !important;
    font-weight: 400 !important;
    opacity: 0.72 !important;
    border: none !important;
  }

  /* Space between major menu groups */
  .elementskit-navbar-nav > li {
    margin-bottom: 6px !important;
  }

  /* Replace closed hamburger with plus */
  .elementskit-menu-hamburger {
    border: none !important;
    background: transparent !important;
    padding: 8px !important;
    width: 44px !important;
    height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .elementskit-menu-hamburger .elementskit-menu-hamburger-icon,
  .elementskit-menu-hamburger i,
  .elementskit-menu-hamburger svg {
    display: none !important;
  }

  .elementskit-menu-hamburger::before {
    content: "+" !important;
    font-size: 34px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    color: #111111 !important;
    font-family: Arial, sans-serif !important;
  }

  /* Keep close X visible */
  .elementskit-menu-close {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #111111 !important;
    font-size: 28px !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  .elementskit-menu-close i,
  .elementskit-menu-close svg {
    display: inline-block !important;
  }
}

/* JESUS HOUSE - Tablet submenu size adjustment */
@media (min-width: 768px) and (max-width: 1024px) {

  /* Tablet submenu items */
  .elementskit-dropdown li a,
  .elementskit-submenu-panel li a {
    font-size: 13px !important;
    line-height: 1.3 !important;
  }

}

/* Fix menu hidden on mobile /events/... */
#jh-global-header,
.ekit-template-content-header,
.elementor-location-header,
.elementskit-navbar,
.elementskit-menu-container,
.elementskit-navbar-nav-default,
.elementskit-megamenu-panel,
.elementskit-dropdown {
  overflow: visible !important;
}

.elementskit-menu-container {
  z-index: 999999 !important;
}

.elementskit-menu-container.active,
.elementskit-menu-container.show,
.elementskit-menu-container.ekit-menu-open {
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
}

/* Fix menu scrolling hiding */
@media (max-width: 1024px) {
  .elementskit-menu-container.active,
  .elementskit-menu-container.show,
  .elementskit-menu-container.ekit-menu-open {
    position: fixed !important;
    top: 0px !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-height: calc(100vh - 80px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    z-index: 9999999 !important;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
  }

  .ekit-template-content-header,
  .elementor-location-header,
  [data-elementor-type="header"],
  .elementor-sticky,
  .elementor-sticky--active,
  .elementor-sticky--effects,
  .ekit-sticky,
  .ekit-sticky--active,
  .ekit-sticky--effects,
  #jh-global-header {
    opacity: 1 !important;
    transform: none !important;
    translate: none !important;
    pointer-events: auto !important;
    overflow: visible !important;
    max-height: none !important;
  }
}

/* BANNER WIDTH ADAPTION WITH TABLET AND MOBILE */
/* Jesus House responsive banner */
.jh-banner {
  width: 100% !important;
  max-width: 1470px !important;

  aspect-ratio: 1470 / 400 !important;
  height: auto !important;
  min-height: unset !important;

  margin-left: auto !important;
  margin-right: auto !important;

  border: none !important;
  border-radius: 4px;
  overflow: hidden;

  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;

  transition: none !important;
  animation: none !important;
}

/* Once the screen is narrower than the banner, make it full screen width */
@media (max-width: 1470px) {
  .jh-banner {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    border-radius: 0 !important;
  }
}

/* Mobile-only: taller ratio */
@media (max-width: 767px) {
  .jh-banner {
    aspect-ratio: 2.6 / 1 !important;
  }
}

/* EVENTS SQUARE Home Color */
.jh-events-home-square-heading a:hover {

  color: #B7A68C !important;

  opacity: 1 !important;

}

/* EVENTS SQUARE Overflow */
.jh-events-home-square {
  overflow: hidden !important;
}

.jh-events-home-square-list {
  overflow: hidden !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
}

.jh-events-home-square-event {
  min-height: 0 !important;
  padding-top: 4px !important;
  padding-bottom: 4px !important;
}

/* Jesus House Events Square — fixed home square layout */

.elementor-widget-shortcode:has(.jh-events-home-square),
.elementor-widget-shortcode:has(.jh-events-home-square) .elementor-widget-container {
  height: 100% !important;
}

/* Main square fills the Elementor square container */
.jh-events-home-square {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  padding: clamp(24px, 3vw, 42px) !important;
}

/* Heading */
.jh-events-home-square-heading {
  flex: 0 0 auto !important;
  margin: 0 0 clamp(14px, 1.5vw, 24px) !important;
  font-size: clamp(18px, 2vw, 29px) !important;
  line-height: 1 !important;
  letter-spacing: clamp(3px, 0.35vw, 5px) !important;
}

/* List fills remaining area but does not scroll */
.jh-events-home-square-list {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
  display: grid !important;
  grid-template-rows: repeat(8, minmax(0, 1fr)) !important;
  gap: clamp(2px, 0.45vw, 8px) !important;
  padding-right: 0 !important;
}

/* Desktop: show up to 8 */
.jh-events-home-square-event:nth-child(n+9) {
  display: none !important;
}

/* Event rows */
.jh-events-home-square-event {
  min-height: 0 !important;
  height: auto !important;
  display: grid !important;
  grid-template-columns: clamp(42px, 4.2vw, 62px) 2px minmax(0, 1fr) !important;
  align-items: center !important;
  color: inherit !important;
  text-decoration: none !important;
  overflow: hidden !important;
}

/* Date column */
.jh-events-home-square-datebox {
  min-height: 0 !important;
  height: auto !important;
  overflow: hidden !important;
}

.jh-events-home-square-month {
  font-size: clamp(7px, 0.65vw, 10px) !important;
  line-height: 1 !important;
  letter-spacing: clamp(0.8px, 0.1vw, 1.5px) !important;
  margin-bottom: 1px !important;
}

.jh-events-home-square-day {
  font-size: clamp(19px, 2.2vw, 30px) !important;
  line-height: 0.9 !important;
}

/* Divider */
.jh-events-home-square-divider {
  min-height: 28px !important;
  height: 70% !important;
  align-self: center !important;
}

/* Info column */
.jh-events-home-square-info {
  min-width: 0 !important;
  padding-left: clamp(9px, 1vw, 15px) !important;
  overflow: hidden !important;
}

.jh-events-home-square-title {
  font-size: clamp(8px, 0.8vw, 13px) !important;
  line-height: 1.02 !important;
  letter-spacing: clamp(0.5px, 0.08vw, 1.2px) !important;
  margin: 0 0 2px !important;

  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  display: block !important;
}

.jh-events-home-square-meta {
  font-size: clamp(7px, 0.7vw, 11px) !important;
  line-height: 1 !important;
  letter-spacing: clamp(0.4px, 0.07vw, 1px) !important;

  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.jh-events-home-square-separator {
  margin: 0 3px !important;
}

/* Tablet: show up to 4 */
@media (max-width: 1024px) {
  .jh-events-home-square-list {
    grid-template-rows: repeat(4, minmax(0, 1fr)) !important;
    gap: clamp(6px, 1vw, 14px) !important;
  }

  .jh-events-home-square-event:nth-child(n+5) {
    display: none !important;
  }

  .jh-events-home-square-event {
    grid-template-columns: clamp(48px, 7vw, 68px) 2px minmax(0, 1fr) !important;
  }

  .jh-events-home-square-title {
    font-size: clamp(11px, 1.6vw, 15px) !important;
    line-height: 1.08 !important;
  }

  .jh-events-home-square-meta {
    font-size: clamp(9px, 1.3vw, 13px) !important;
  }

  .jh-events-home-square-day {
    font-size: clamp(24px, 4vw, 34px) !important;
  }
}

/* Mobile: show up to 4 */
@media (max-width: 767px) {
  .jh-events-home-square {
    padding: 24px !important;
  }

  .jh-events-home-square-heading {
    letter-spacing: 3.5px !important;
  }

  .jh-events-home-square-list {
    grid-template-rows: repeat(4, minmax(0, 1fr)) !important;
  }

  .jh-events-home-square-event:nth-child(n+5) {
    display: none !important;
  }
}

/* Make the Events Square shortcode fill the full Elementor square/container */
.elementor-widget-shortcode:has(.jh-events-home-square),
.elementor-widget-shortcode:has(.jh-events-home-square) > .elementor-widget-container,
.elementor-widget-shortcode:has(.jh-events-home-square) .elementor-shortcode,
.jh-events-home-square {
  height: 100% !important;
  min-height: 100% !important;
}

/* Make sure the square itself controls the full clickable/active area */
.jh-events-home-square {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Make the event list use the available height */
.jh-events-home-square-list {
  flex: 1 1 auto !important;
  min-height: 0 !important;
}

/* 7px outer page gutters for each row */
.jh-section-row {
  width: 100% !important;
  max-width: 100% !important;
  padding-inline: 7px !important;
  box-sizing: border-box !important;
}

/* Keep Elementor's inner wrapper inside that padded row */
.jh-section-row > .e-con-inner {
  width: 100% !important;
  max-width: 100% !important;
  padding-inline: 0 !important;
  margin-inline: 0 !important;
  box-sizing: border-box !important;
}

/* Make cells respect available space */
.jh-section-row > .jh-section-cell,
.jh-section-row > .e-con-inner > .jh-section-cell,
.jh-section-row > .square-panel,
.jh-section-row > .e-con-inner > .square-panel {
  min-width: 0 !important;
  box-sizing: border-box !important;
}

/* Turn off debug outlines */
.jh-section-row,
.jh-section-cell,
.square-panel {
  outline: none !important;
}

/* Rows should only organize cells — not add extra visual bulk */
.jh-section-row {
  display: flex !important;
  flex-direction: row !important;
  gap: 7px !important;
  padding: 0 !important;
  margin: 0 0 7px 0 !important;
  box-sizing: border-box !important;
}

/* Elementor inner wrapper cleanup */
.jh-section-row > .e-con-inner {
  display: flex !important;
  gap: 7px !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}

/* Cells/panels keep their own backgrounds/images */
.jh-section-cell,
.square-panel {
  border: none !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

/* Side-by-side cells split evenly */
.jh-section-row > .jh-section-cell,
.jh-section-row > .e-con-inner > .jh-section-cell {
  flex: 1 1 0 !important;
}

/* One cell in a row fills the row */
.jh-section-row > .jh-section-cell:only-child,
.jh-section-row > .e-con-inner > .jh-section-cell:only-child {
  flex-basis: 100% !important;
  width: 100% !important;
}

/* Mobile stacking */
@media (max-width: 767px) {
  .jh-section-row,
  .jh-section-row > .e-con-inner {
    flex-direction: column !important;
    gap: 7px !important;
  }

  .jh-section-row > .jh-section-cell,
  .jh-section-row > .e-con-inner > .jh-section-cell {
    width: 100% !important;
    flex-basis: auto !important;
  }
}

.jh-hero-row {
  margin-bottom: 7px;
}

/* OVERFLOW ON TABLET SOLUTION */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

.elementor,
.elementor-section,
.elementor-container,
.elementor-widget-wrap,
.e-con,
.e-con-inner {
  max-width: 100%;
}

/* WIDE CARD BANNER */
.jh-wide-card {
  aspect-ratio: 2.2 / 1;
  width: 100%;
  min-height: unset !important;
}

/* ================================
   JESUS HOUSE FOOTER MENU
   Expanded sitemap footer on all devices
   ================================ */

/* Full-width wrapper */
.jh-footer-menu,
.jh-footer-menu .elementor-widget-container,
.jh-footer-menu .ekit-wid-con,
.jh-footer-menu nav,
.jh-footer-menu .elementskit-menu-container,
.jh-footer-menu .elementskit-navbar-nav-default {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  max-height: none !important;
  display: block !important;
  position: static !important;
  overflow: visible !important;
  transform: none !important;
  visibility: visible !important;
  opacity: 1 !important;
  background: transparent !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
}

/* Disable ElementsKit mobile/offcanvas behavior in footer */
.jh-footer-menu .elementskit-menu-hamburger,
.jh-footer-menu .elementskit-menu-close,
.jh-footer-menu .elementskit-menu-overlay,
.jh-footer-menu .elementskit-nav-identity-panel {
  display: none !important;
}

/* Actual menu list: stable centered flex layout */
.jh-footer-menu .elementskit-navbar-nav,
.jh-footer-menu > ul,
.jh-footer-menu ul.menu {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: flex-start !important;

  width: 100% !important;
  max-width: 980px !important;
  margin: 0 auto !important;
  padding: 0 !important;

  gap: 32px 96px !important;

  columns: unset !important;
  column-count: unset !important;
  column-gap: unset !important;

  list-style: none !important;
  box-sizing: border-box !important;
}

/* Each parent section becomes one stable column/card */
.jh-footer-menu .elementskit-navbar-nav > li,
.jh-footer-menu > ul > li,
.jh-footer-menu ul.menu > li {
  display: block !important;
  flex: 0 0 145px !important;
  width: 145px !important;
  max-width: 145px !important;

  margin: 0 !important;
  padding: 0 !important;

  list-style: none !important;
  background: transparent !important;
  box-shadow: none !important;
  position: static !important;
}

/* Always show submenus */
.jh-footer-menu .sub-menu,
.jh-footer-menu .elementskit-dropdown,
.jh-footer-menu .elementskit-submenu-panel {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: static !important;
  transform: none !important;

  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;

  box-shadow: none !important;
  background: transparent !important;

  margin: 8px 0 0 !important;
  padding: 0 !important;
}

/* Parent section titles */
.jh-footer-menu .elementskit-navbar-nav > li > a,
.jh-footer-menu > ul > li > a,
.jh-footer-menu ul.menu > li > a {
  pointer-events: none !important;
  cursor: default !important;
  display: block !important;

  margin: 0 0 14px !important;
  padding: 0 !important;

  font-weight: 700 !important;
  text-decoration: none !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
  color: inherit !important;
}

/* Child list items */
.jh-footer-menu .sub-menu li,
.jh-footer-menu .elementskit-dropdown li,
.jh-footer-menu .elementskit-submenu-panel li {
  display: block !important;
  margin: 0 0 5px !important;
  padding: 0 !important;

  list-style: none !important;
  background: transparent !important;
  box-shadow: none !important;
  position: static !important;
}

/* Remove manually-created dropdown arrows from footer only */
.jh-footer-menu .elementskit-navbar-nav > li.menu-item-has-children > a::after,
.jh-footer-menu .elementskit-navbar-nav > li.menu-item-has-children > a::before,
.jh-footer-menu .ekit-menu-dropdown-toggle::after,
.jh-footer-menu .ekit-menu-dropdown-toggle::before,
.jh-footer-menu a::after,
.jh-footer-menu a::before {
  content: none !important;
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Hide footer menu dropdown/submenu icons */
.jh-footer-menu .elementskit-submenu-indicator,
.jh-footer-menu .elementskit-submenu-indicator i,
.jh-footer-menu .elementskit-submenu-indicator svg,
.jh-footer-menu .sub-arrow,
.jh-footer-menu .sub-arrow i,
.jh-footer-menu .sub-arrow svg,
.jh-footer-menu svg {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
}

/* All links: kill hover boxes/growing */
.jh-footer-menu a,
.jh-footer-menu a:hover,
.jh-footer-menu a:focus,
.jh-footer-menu li:hover,
.jh-footer-menu li:hover > a {
  color: inherit !important;
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
  transform: none !important;
  scale: 1 !important;
  transition: text-decoration-color 0.18s ease !important;
}

/* Child links: underline only on hover */
.jh-footer-menu .sub-menu a,
.jh-footer-menu .elementskit-dropdown a,
.jh-footer-menu .elementskit-submenu-panel a {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;

  text-decoration: underline !important;
  text-decoration-color: transparent !important;
  text-underline-offset: 3px !important;
  text-decoration-thickness: 1px !important;
}

.jh-footer-menu .sub-menu a:hover,
.jh-footer-menu .elementskit-dropdown a:hover,
.jh-footer-menu .elementskit-submenu-panel a:hover {
  text-decoration-color: currentColor !important;
}

/* Parent headings: no underline */
.jh-footer-menu .elementskit-navbar-nav > li > a,
.jh-footer-menu > ul > li > a,
.jh-footer-menu ul.menu > li > a,
.jh-footer-menu .elementskit-navbar-nav > li > a:hover,
.jh-footer-menu > ul > li > a:hover,
.jh-footer-menu ul.menu > li > a:hover {
  text-decoration: none !important;
}

/* Remove bullets/default indentation */
.jh-footer-menu ul,
.jh-footer-menu li {
  list-style: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}

/* Prevent dropdown positioning classes from interfering */
.jh-footer-menu .elementskit-dropdown-has,
.jh-footer-menu .elementskit-mobile-builder-content,
.jh-footer-menu .relative_position {
  position: static !important;
}

/* Tablet + Mobile: keep footer menu in one row and shrink */
@media (max-width: 1024px) {
  .jh-footer-menu .elementskit-navbar-nav,
  .jh-footer-menu > ul,
  .jh-footer-menu ul.menu {
    max-width: 100% !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    gap: clamp(10px, 3vw, 42px) !important;
  }

  .jh-footer-menu .elementskit-navbar-nav > li,
  .jh-footer-menu > ul > li,
  .jh-footer-menu ul.menu > li {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 145px !important;
  }

  .jh-footer-menu .elementskit-navbar-nav > li > a,
  .jh-footer-menu > ul > li > a,
  .jh-footer-menu ul.menu > li > a {
    font-size: clamp(9px, 1.4vw, 13px) !important;
    line-height: 1.15 !important;
    letter-spacing: clamp(0.4px, 0.12vw, 1px) !important;
  }

  .jh-footer-menu .sub-menu a,
  .jh-footer-menu .elementskit-dropdown a,
  .jh-footer-menu .elementskit-submenu-panel a {
    font-size: clamp(8px, 1.35vw, 13px) !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;
  }

  .jh-footer-menu .sub-menu li,
  .jh-footer-menu .elementskit-dropdown li,
  .jh-footer-menu .elementskit-submenu-panel li {
    margin-bottom: clamp(2px, 0.7vw, 5px) !important;
  }
}

/* FOOTER ON EVERY PAGE */

footer,
.elementor-location-footer,
[data-elementor-type="footer"],
.ekit-template-content-footer {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  transform: none !important;
  position: relative !important;
  z-index: 10 !important;
}

/* ================================
   JESUS HOUSE FOOTER BOTTOM INFO
   Keep one row, shrink with screen
   ================================ */

.jh-footer-bottom {
  width: 100% !important;
  max-width: 980px !important;
  margin-left: auto !important;
  margin-right: auto !important;

  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: center !important;

  gap: clamp(10px, 3vw, 52px) !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

.jh-footer-bottom .elementor-widget,
.jh-footer-bottom .elementor-widget-container,
.jh-footer-bottom p,
.jh-footer-bottom a,
.jh-footer-bottom span,
.jh-footer-bottom div {
  font-size: clamp(7px, 1.05vw, 13px) !important;
  line-height: 1.25 !important;
  letter-spacing: clamp(0px, 0.08vw, 0.6px) !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  box-sizing: border-box !important;
}

.jh-footer-bottom .elementor-widget {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
}

/* Logo should shrink too */
.jh-footer-bottom img {
  display: block !important;
  width: clamp(70px, 15vw, 170px) !important;
  max-width: 100% !important;
  height: auto !important;
}

/* ================================
   FOOTER BOTTOM INFO — SCALE AS ONE UNIT
   ================================ */

/* Outer area stays full width and centers the fixed layout */
.jh-footer-bottom-scale {
  width: 100% !important;
  overflow: hidden !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  box-sizing: border-box !important;
}

/* The actual inner row stays fixed and scales visually */
.jh-footer-bottom-scale > .e-con-inner,
.jh-footer-bottom-scale > .elementor-container,
.jh-footer-bottom-scale > .elementor-widget-wrap {
  width: 980px !important;
  max-width: 980px !important;
  min-width: 980px !important;

  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: center !important;

  transform-origin: center center !important;
  scale: min(1, calc(100vw / 980)) !important;
}

/* Footer desktop: spread parent menu columns farther apart */
@media (min-width: 1025px) {
  .jh-footer-menu .elementskit-navbar-nav > li,
  .jh-footer-menu > ul > li,
  .jh-footer-menu ul.menu > li {
    flex-basis: 200px !important;
    width: 200px !important;
    max-width: 200px !important;
  }

  .jh-footer-menu .elementskit-navbar-nav,
  .jh-footer-menu > ul,
  .jh-footer-menu ul.menu {
    max-width: 1120px !important;
    justify-content: center !important;
  }
}

/* FOOTER NUDGING */

/* Footer menu optical centering adjustment */
@media (min-width: 1025px) {
  .jh-footer-menu .elementskit-navbar-nav,
  .jh-footer-menu > ul,
  .jh-footer-menu ul.menu {
    transform: translateX(70px) !important;
  }
}

/* Footer menu tablet optical centering adjustment */

@media (min-width: 768px) and (max-width: 1024px) {

  .jh-footer-menu .elementskit-navbar-nav,

  .jh-footer-menu > ul,

  .jh-footer-menu ul.menu {

    transform: translateX(38px) !important;

  }

}

/* Footer mobile: override global phone menu spacing */
@media (max-width: 767px) {

  /* Parent footer headings: Church, Gatherings, etc. */
  .jh-footer-menu .elementskit-navbar-nav > li > a,
  .jh-footer-menu .elementskit-navbar-nav > li.menu-item-has-children > a,
  .jh-footer-menu .elementskit-navbar-nav > li.menu-item-has-children > a.ekit-menu-nav-link {
    padding: 0 !important;
    margin: 0 0 7px !important;
    font-size: 7px !important;
    line-height: 1 !important;
    letter-spacing: 0.4px !important;
    font-weight: 700 !important;
    color: inherit !important;
    opacity: 1 !important;
  }

  /* Submenu panel itself */
  .jh-footer-menu .elementskit-navbar-nav > li > .elementskit-dropdown,
  .jh-footer-menu .elementskit-navbar-nav > li > .elementskit-submenu-panel {
    padding: 0 !important;
    margin: 0 !important;
  }

  /* Submenu list items */
  .jh-footer-menu .elementskit-navbar-nav > li > .elementskit-dropdown > li,
  .jh-footer-menu .elementskit-navbar-nav > li > .elementskit-submenu-panel > li {
    padding: 0 !important;
    margin: 0 0 4px !important;
  }

  /* Actual submenu links */
  .jh-footer-menu .elementskit-navbar-nav > li > .elementskit-dropdown > li > a,
  .jh-footer-menu .elementskit-navbar-nav > li > .elementskit-submenu-panel > li > a,
  .jh-footer-menu .elementskit-navbar-nav .elementskit-dropdown li a,
  .jh-footer-menu .elementskit-navbar-nav .elementskit-submenu-panel li a {
    padding: 0 !important;
    margin: 0 !important;
    font-size: 10px !important;
    line-height: 1.05 !important;
    letter-spacing: 0 !important;
    font-weight: 400 !important;
    color: inherit !important;
    opacity: 1 !important;
  }
}

/* FOOTER MOBILE: 3 ROWS, BIGGER TEXT, FOLLOW US LEFT */
@media (max-width: 767px) {

  .jh-footer-menu .elementskit-navbar-nav,
  .jh-footer-menu > ul,
  .jh-footer-menu ul.menu {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;

    width: 100% !important;
    max-width: 340px !important;
    margin: 0 auto !important;
    padding: 0 !important;

    gap: 28px 28px !important;

    transform: none !important;
  }

  .jh-footer-menu .elementskit-navbar-nav > li,
  .jh-footer-menu > ul > li,
  .jh-footer-menu ul.menu > li {
    flex: 0 0 150px !important;
    width: 150px !important;
    max-width: 150px !important;

    margin: 0 !important;
    padding: 0 !important;
  }

  .jh-footer-menu .elementskit-navbar-nav > li:last-child,
  .jh-footer-menu > ul > li:last-child,
  .jh-footer-menu ul.menu > li:last-child {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .jh-footer-menu .elementskit-navbar-nav > li > a,
  .jh-footer-menu .elementskit-navbar-nav > li.menu-item-has-children > a,
  .jh-footer-menu .elementskit-navbar-nav > li.menu-item-has-children > a.ekit-menu-nav-link {
    padding: 0 !important;
    margin: 0 0 10px !important;

    font-size: 10px !important;
    line-height: 1.1 !important;
    letter-spacing: 0.5px !important;
    font-weight: 700 !important;

    color: inherit !important;
    opacity: 1 !important;
  }

  .jh-footer-menu .elementskit-navbar-nav > li > .elementskit-dropdown,
  .jh-footer-menu .elementskit-navbar-nav > li > .elementskit-submenu-panel {
    padding: 0 !important;
    margin: 0 !important;
  }

  .jh-footer-menu .elementskit-navbar-nav > li > .elementskit-dropdown > li,
  .jh-footer-menu .elementskit-navbar-nav > li > .elementskit-submenu-panel > li,
  .jh-footer-menu .elementskit-navbar-nav .elementskit-dropdown li,
  .jh-footer-menu .elementskit-navbar-nav .elementskit-submenu-panel li {
    padding: 0 !important;
    margin: 0 0 5px !important;
  }

  .jh-footer-menu .elementskit-navbar-nav > li > .elementskit-dropdown > li > a,
  .jh-footer-menu .elementskit-navbar-nav > li > .elementskit-submenu-panel > li > a,
  .jh-footer-menu .elementskit-navbar-nav .elementskit-dropdown li a,
  .jh-footer-menu .elementskit-navbar-nav .elementskit-submenu-panel li a {
    padding: 0 !important;
    margin: 0 !important;

    font-size: 12px !important;
    line-height: 1.15 !important;
    letter-spacing: 0 !important;
    font-weight: 400 !important;

    color: inherit !important;
    opacity: 1 !important;
  }
}

/* Fix footer hidden/clipped when it already exists */
#jh-global-footer,
.ekit-template-content-footer,
.elementor-location-footer,
[data-elementor-type="footer"],
footer,
.site-footer {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
  translate: none !important;
  pointer-events: auto !important;
  overflow: visible !important;
  max-height: none !important;
  height: auto !important;
  position: relative !important;
  z-index: 10 !important;
}

.ekit-template-content-footer *,
.elementor-location-footer *,
[data-elementor-type="footer"] *,
footer *,
.site-footer * {
  overflow: visible;
}

/* Footer bottom info row max width */
#jh-global-footer .jh-footer-bottom,
#jh-global-footer .jh-footer-bottom-scale,
#jh-global-footer .jh-footer-bottom-fixed {
  max-width: 1100px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Footer bottom info row nudge — desktop */
@media (min-width: 1025px) {
  #jh-global-footer .jh-footer-bottom,
  #jh-global-footer .jh-footer-bottom-scale,
  #jh-global-footer .jh-footer-bottom-fixed {
    transform: translateX(30px) !important;
  }
}

/* Footer bottom info row nudge — tablet */
@media (min-width: 768px) and (max-width: 1024px) {
  #jh-global-footer .jh-footer-bottom,
  #jh-global-footer .jh-footer-bottom-scale,
  #jh-global-footer .jh-footer-bottom-fixed {
    transform: translateX(15px) !important;
  }
}

/* No footer bottom nudge on mobile */
@media (max-width: 767px) {
  #jh-global-footer .jh-footer-bottom,
  #jh-global-footer .jh-footer-bottom-scale,
  #jh-global-footer .jh-footer-bottom-fixed {
    transform: none !important;
  }
}

/* Hide selected footer items on mobile */
@media (max-width: 767px) {
  .jh-hide-mobile {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }
}

/* Force effect on whatever is inside the logo widget */
.elementor-widget-theme-site-logo:hover *,
.elementor-widget-image:hover *,
.site-logo:hover *,
.custom-logo-link:hover *,
.logo:hover * {
  opacity: 0.7 !important;
  transform: translateY(-1px) !important;
  transition: all 0.25s ease !important;
}

/* EVENTS PAGES: prevent doubled footer when global footer is present */
body:has(#jh-global-footer) > footer:not(#jh-global-footer),
body:has(#jh-global-footer) > .site-footer:not(#jh-global-footer),
body:has(#jh-global-footer) > .elementor-location-footer:not(#jh-global-footer),
body:has(#jh-global-footer) > [data-elementor-type="footer"]:not(#jh-global-footer),
body:has(#jh-global-footer) > .ekit-template-content-footer:not(#jh-global-footer) {
  display: none !important;
}





/* CAROUSEL ASPECT RATIO */
.ratio-square .swiper-slide-image {
  width: 100% !important;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.ratio-landscape .swiper-slide-image {
  width: 100% !important;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.ratio-portrait .swiper-slide-image {
  width: 100% !important;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}








/* Compact Jesus House Outreach square */
.jho-square {
  padding: clamp(22px, 3vw, 34px);
}

.jho-square-heading {
  margin-bottom: 18px;
  font-size: clamp(16px, 1.7vw, 23px);
  letter-spacing: 3px;
}

.jho-square-columns-2 .jho-square-list {
  column-gap: 18px;
  row-gap: 8px;
}

.jho-square-item {
  grid-template-columns: 50px 2px minmax(0, 1fr);
  min-height: 58px;
}

.jho-square-info {
  padding-left: 11px;
}

.jho-square-date-word {
  font-size: 8px;
}

.jho-square-scope {
  margin-bottom: 3px;
  font-size: 7px;
  letter-spacing: 1.2px;
}

.jho-square-title {
  font-size: clamp(10px, 0.95vw, 13px);
  line-height: 1.05;
  letter-spacing: 0.6px;
}







/* DESKTOP: distribute entries through the available square */
@media (min-width: 1025px) {
  .jho-square-list {
    flex: 1;
    min-height: 0;
    align-content: space-between;
    row-gap: 12px;
  }
}

/* TABLET: slightly smaller, tighter typography */
@media (min-width: 768px) and (max-width: 1024px) {
  .jho-square {
    padding: 22px;
  }

  .jho-square-heading {
    margin-bottom: 16px;
    font-size: 18px;
    letter-spacing: 2.5px;
  }

  .jho-square-columns-2 .jho-square-list {
    column-gap: 14px;
    row-gap: 8px;
  }

  .jho-square-item {
    grid-template-columns: 46px 2px minmax(0, 1fr);
    min-height: 54px;
  }

  .jho-square-info {
    padding-left: 10px;
  }

  .jho-square-date-word {
    font-size: 7.5px;
  }

  .jho-square-scope {
    margin-bottom: 3px;
    font-size: 6.5px;
    letter-spacing: 1px;
  }

  .jho-square-title {
    font-size: 10.5px;
    line-height: 1.04;
    letter-spacing: 0.45px;
  }
}

/* MOBILE: one column with modestly smaller wording */
@media (max-width: 767px) {
  .jho-square {
    padding: 22px 20px;
  }

  .jho-square-heading {
    margin-bottom: 20px;
    font-size: 17px;
    letter-spacing: 2.5px;
  }

  .jho-square-list {
    row-gap: 10px;
  }

  .jho-square-item {
    grid-template-columns: 50px 2px minmax(0, 1fr);
    min-height: 54px;
  }

  .jho-square-info {
    padding-left: 11px;
  }

  .jho-square-date-word {
    font-size: 8px;
  }

  .jho-square-scope {
    margin-bottom: 3px;
    font-size: 7px;
    letter-spacing: 1px;
  }

  .jho-square-title {
    font-size: 11px;
    line-height: 1.06;
    letter-spacing: 0.5px;
  }
}






/* MOBILE HEADER: closed by default, open only after tapping + */
@media (max-width: 767px) {
  #jh-global-header
  .elementskit-menu-container:not(.active):not(.show):not(.ekit-menu-open) {
    left: -100% !important;
    right: auto !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    overflow: hidden !important;
  }

  #jh-global-header .elementskit-menu-container.active,
  #jh-global-header .elementskit-menu-container.show,
  #jh-global-header .elementskit-menu-container.ekit-menu-open {
    left: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
}






