/*
Theme Name: GR-CPS Child Theme
Template: hello-elementor
Version: 3.4.6.1771625640
*/
html, body {
    overflow-x: hidden;
}

@media (max-width: 767px) {
    h1 {
        margin-top: 10px;
    }
}


/* =========================================================
   MEGA MENU — SHARED BASE
   ========================================================= */

.mega,
.mega .elementor-nav-menu__container,
.mega .elementor-nav-menu--main,
.mega .elementor-widget-container {
  overflow: visible !important;
  z-index: 9999 !important;
}

.mega .elementor-nav-menu--main > .elementor-nav-menu {
  position: relative !important;
  width: 100% !important;
  display: flex !important;
  justify-content: flex-start;
}

.mega .elementor-nav-menu--main > .elementor-nav-menu > .menu-item-has-children {
  position: static !important;
}

/* =========================================================
   DROPDOWN PANEL
   ========================================================= */

.mega .elementor-nav-menu--main > .elementor-nav-menu > .menu-item-has-children > .sub-menu {
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  right: 0 !important;
  width: auto !important;
  margin-left: 0 !important;
  margin-top: 0 !important;
  max-width: none !important;
  min-width: 0 !important;
  transform: none !important;
  background: #f3f1ef;
  padding: 28px 24px !important;
  border-radius: 0 0 16px 16px;
  box-shadow: 0 12px 32px rgba(0,0,0,.08), 0 2px 10px rgba(0,0,0,.05);
  z-index: 99999 !important;
}

/* =========================================================
   STANDARD 2-LEVEL MEGA GRID
   ========================================================= */

.mega .elementor-nav-menu--main > .elementor-nav-menu > .menu-item-has-children > .sub-menu[style*="display: block"] {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(170px, 220px));
  justify-content: flex-start;
  gap: 22px 20px !important;
}

.mega .elementor-nav-menu--main > .elementor-nav-menu > .menu-item-has-children > .sub-menu > li {
  width: auto !important;
  max-width: none !important;
  flex: none !important;
  text-align: left;
}

/* =========================================================
   CARD LAYOUT
   ========================================================= */

.mega .elementor-sub-item {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 10px;
  width: 100%;
  text-decoration: none !important;
}

.mega .menu-thumb {
  width: 100%;
  max-width: 220px;
  aspect-ratio: 1/1;
  object-fit: cover;
  border-radius: 14px;
  display: block;
  transition: transform .25s ease, opacity .25s ease, box-shadow .25s ease;
}

.mega .elementor-sub-item:hover .menu-thumb {
  transform: translateY(-2px);
  opacity: .9;
  box-shadow: 0 6px 14px rgba(0,0,0,.12);
}

.mega .menu-text {
  display: block;
  width: 100%;
  font-size: 14px;
  line-height: 1.35;
  letter-spacing: .04em;
  font-weight: 500;
  color: #3a3a3a;
  white-space: normal;
  word-break: normal;
}

/* =========================================================
   REMOVE ELEMENTOR DEFAULT DROPDOWN STYLES
   ========================================================= */

.mega .elementor-nav-menu--dropdown li,
.mega .elementor-nav-menu--dropdown .elementor-sub-item,
.mega .elementor-nav-menu--dropdown .elementor-item-active {
  background: transparent !important;
  color: #3a3a3a !important;
}

.mega .elementor-nav-menu--dropdown .elementor-sub-item:hover,
.mega .elementor-nav-menu--dropdown .elementor-item:hover,
.mega .elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
.mega .elementor-nav-menu--dropdown .elementor-item.highlighted,
.mega .elementor-nav-menu--dropdown .elementor-item:focus,
.mega .elementor-sub-item.elementor-item-active,
.mega .elementor-sub-item.highlighted,
.mega .elementor-sub-item:focus,
.mega .elementor-sub-item:hover {
  background-color: transparent !important;
  color: #3a3a3a !important;
}

.mega .elementor-nav-menu--dropdown a,
.mega .elementor-sub-item,
.mega .menu-text {
  color: #3a3a3a !important;
}

/* =========================================================
   TOP NAV — NO DARKENING
   ========================================================= */

.mega .elementor-nav-menu--main > .elementor-nav-menu > li > a,
.mega .elementor-nav-menu--main > .elementor-nav-menu > li:hover > a,
.mega .elementor-nav-menu--main > .elementor-nav-menu > li > a:hover,
.mega .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item-active,
.mega .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item-highlighted {
  background: transparent !important;
  color: inherit !important;
}

/* =========================================================
   TOP NAV UNDERLINE ANIMATION
   ========================================================= */

.mega .elementor-nav-menu--main > .elementor-nav-menu > li > a {
  position: relative;
}

.mega .elementor-nav-menu--main > .elementor-nav-menu > li > a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 0;
  height: 2px;
  background: #c6b7a7;
  transition: width .25s ease;
}

.mega .elementor-nav-menu--main > .elementor-nav-menu > li:hover > a::after {
  width: 100%;
}

.mega .elementor-nav-menu--main > .elementor-nav-menu > li.current-menu-parent > a::after,
.mega .elementor-nav-menu--main > .elementor-nav-menu > li.current-menu-ancestor > a::after,
.mega .elementor-nav-menu--main > .elementor-nav-menu > li.current-page-parent > a::after,
.mega .elementor-nav-menu--main > .elementor-nav-menu > li.current-page-ancestor > a::after {
  opacity: 1 !important;
  width: 100% !important;
}

/* =========================================================
   DROPDOWN ITEM UNDERLINE
   ========================================================= */

.mega .elementor-nav-menu a {
  position: relative;
}

.mega .elementor-nav-menu a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 0;
  height: 2px;
  background: #A08773;
  transition: width .25s ease;
}

.mega .elementor-nav-menu a:hover::after {
  width: 100%;
}

.mega .elementor-sub-item::after {
  left: 58px;
}

.mega .current-menu-item > a::after,
.mega .current-menu-parent > a::after,
.mega .current-menu-ancestor > a::after,
.mega .elementor-item-active::after {
  width: 100% !important;
}

/* =========================================================
   TERTIARY MEGA MENU — .mega-procedures
   Tab row across top, cards positioned via JS
   ========================================================= */

.mega .mega-procedures > .sub-menu {
  min-width: 0 !important;
  max-width: none !important;
  overflow: visible !important;
}

.mega .mega-procedures > .sub-menu[style*="display: block"] {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: flex-start !important;
  padding: 16px 24px 24px !important;
  gap: 4px !important;
}

/* 2nd-level li: tab pills */
.mega .mega-procedures > .sub-menu > li {
  flex: 0 0 auto !important;
  width: auto !important;
  display: block !important;
  position: relative !important;
  overflow: visible !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Tab link */
.mega .mega-procedures > .sub-menu > li > a.elementor-sub-item {
  display: inline-flex !important;
  align-items: center !important;
  width: auto !important;
  padding: 10px 18px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  color: #3a3a3a !important;
  white-space: nowrap !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  background: transparent !important;
  transition: background .2s ease !important;
}

.mega .mega-procedures > .sub-menu > li:hover > a.elementor-sub-item,
.mega .mega-procedures > .sub-menu > li.current-menu-item > a.elementor-sub-item,
.mega .mega-procedures > .sub-menu > li.current-menu-ancestor > a.elementor-sub-item {
  background: rgba(160,135,115,.12) !important;
}

/* Hide arrows and underlines on tabs */
.mega .mega-procedures > .sub-menu > li > a .sub-arrow,
.mega .mega-procedures > .sub-menu > li > a::after {
  display: none !important;
}

/* Tertiary ul — hidden by default, shown/positioned by JS */
.mega .mega-procedures > .sub-menu > li.has-tertiary > .sub-menu {
  display: none !important;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  min-width: 0 !important;
  max-width: none !important;
}

/* Hide arrows in tertiary */
.mega .mega-procedures > .sub-menu > li.has-tertiary > .sub-menu .sub-arrow,
.mega .mega-procedures > .sub-menu > li.has-tertiary > .sub-menu a::after {
  display: none !important;
}

/* 3rd-level li */
.mega .mega-procedures > .sub-menu > li.has-tertiary > .sub-menu > li {
  flex: 0 0 180px !important;
  width: 180px !important;
  max-width: 180px !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 3rd-level card link */
.mega .mega-procedures > .sub-menu > li.has-tertiary > .sub-menu > li > a.elementor-sub-item {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 10px !important;
  width: 100% !important;
  padding: 0 !important;
  text-decoration: none !important;
  background: transparent !important;
  color: #3a3a3a !important;
}

.mega .mega-procedures > .sub-menu > li.has-tertiary > .sub-menu > li > a .menu-thumb {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  border-radius: 14px !important;
  transition: transform .25s ease, opacity .25s ease, box-shadow .25s ease !important;
}

.mega .mega-procedures > .sub-menu > li.has-tertiary > .sub-menu > li > a:hover .menu-thumb {
  transform: translateY(-2px) !important;
  opacity: .92 !important;
  box-shadow: 0 6px 14px rgba(0,0,0,.12) !important;
}

.mega .mega-procedures > .sub-menu > li.has-tertiary > .sub-menu > li > a .menu-text {
  display: block !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  font-weight: 500 !important;
  color: #3a3a3a !important;
  white-space: normal !important;
  text-transform: none !important;
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 1200px) {

  .mega .elementor-nav-menu--main > .elementor-nav-menu > .menu-item-has-children > .sub-menu {
    position: static !important;
    width: 100% !important;
    padding: 8px 0 !important;
    margin-left: 0 !important;
  }

  .mega .elementor-nav-menu--main > .elementor-nav-menu > .menu-item-has-children > .sub-menu[style*="display: block"] {
    display: block !important;
  }

  .mega .elementor-sub-item {
    flex-direction: row !important;
    align-items: center !important;
    gap: 12px;
    padding: 8px 0;
  }

  .mega .menu-thumb {
    display: block !important;
    width: 46px;
    height: 46px;
    min-width: 46px;
    border-radius: 8px;
    margin: 0;
  }

  .mega .menu-text {
    font-size: 15px;
    line-height: 1.3;
  }

  .mega .mega-procedures > .sub-menu,
  .mega .mega-procedures > .sub-menu[style*="display: block"] {
    position: static !important;
    display: block !important;
    padding: 8px 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }

  .mega .mega-procedures > .sub-menu > li,
  .mega .mega-procedures > .sub-menu > li.has-tertiary {
    display: block !important;
    flex: none !important;
    width: 100% !important;
    min-height: 0 !important;
  }

  .mega .mega-procedures > .sub-menu > li > a.elementor-sub-item {
    display: block !important;
    width: 100% !important;
    padding: 10px 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  .mega .mega-procedures > .sub-menu > li.has-tertiary > .sub-menu {
    position: static !important;
    display: flex !important;
    flex-direction: column !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    padding: 8px 0 12px 16px !important;
    margin: 0 !important;
    gap: 8px !important;
  }

  .mega .mega-procedures > .sub-menu > li.has-tertiary > .sub-menu > li {
    flex: none !important;
    width: 100% !important;
    max-width: none !important;
  }

  .mega .mega-procedures > .sub-menu > li.has-tertiary > .sub-menu > li > a.elementor-sub-item {
    flex-direction: row !important;
    align-items: center !important;
    width: 100% !important;
    gap: 12px !important;
    padding: 8px 0 !important;
  }

  .mega .mega-procedures > .sub-menu > li.has-tertiary > .sub-menu > li > a .menu-thumb {
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
    height: 46px !important;
    border-radius: 8px !important;
  }
}

/* =========================================================
   HOME SLIDER
   ========================================================= */

.home-slider .swiper-pagination { display: none !important; }

.home-slider .elementor-swiper-button-prev,
.home-slider .elementor-swiper-button-next {
  position: absolute !important;
  bottom: 24px !important;
  top: auto !important;
  transform: none !important;
  width: 48px !important;
  height: 48px !important;
  background: #fff !important;
  border-radius: 50% !important;
  box-shadow: 0 4px 16px rgba(0,0,0,.15) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.home-slider .elementor-swiper-button-prev { left: 24px !important; right: auto !important; }
.home-slider .elementor-swiper-button-next { left: 86px !important; right: auto !important; }

.home-slider .elementor-swiper-button-prev svg,
.home-slider .elementor-swiper-button-next svg {
  width: 18px !important;
  height: 18px !important;
  fill: #333 !important;
}

@media (max-width: 767px) {
  .home-slider .elementor-element-1d60e62 { flex-direction: column-reverse !important; }
}

/* =========================================================
   FOOTER NAV
   ========================================================= */

.footer-nav .elementor-nav-menu {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  justify-content: space-evenly !important;
  width: 100% !important;
}

.footer-nav .elementor-nav-menu > li {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
}

.footer-nav .elementor-nav-menu > li > ul {
  display: flex !important;
  flex-direction: column !important;
  position: static !important;
  opacity: 1 !important;
  visibility: visible !important;
  box-shadow: none !important;
  background: transparent !important;
  min-width: unset !important;
  padding: 0 !important;
}

.footer-nav .elementor-nav-menu li a { white-space: normal !important; }
.footer-nav .elementor-nav-menu > li > ul > li,
.footer-nav .elementor-nav-menu > li > ul > li a { padding: 6px !important; }
.footer-nav .elementor-nav-menu > li > ul > li { display: block !important; float: none !important; }
.footer-nav img, .footer-nav svg { display: none !important; }
.footer-nav .elementor-nav-menu > li > ul > li a:hover { background-color: transparent !important; }

@media (max-width: 767px) {
  .footer-nav .elementor-nav-menu { flex-direction: column !important; }
}

/* =========================================================
   GLOBAL
   ========================================================= */

:not(header):not(footer) > .e-parent {
  padding: 1em !important;
}


.reviews-loop-grid .e-loop-item {
	border-bottom: 1px solid #E0D8D1;
}

@media (min-width: 1025px) {
    .reviews-loop-grid .e-loop-item {
        border-right: 1px solid #E0D8D1;
        padding-right: 40px;
        padding-left: 40px;
    }

    /* Remove left padding on first column */
    .reviews-loop-grid .e-loop-item:nth-child(even) {
        padding-left: 0;
    }

    /* Remove right border on second column */
    .reviews-loop-grid .e-loop-item:nth-child(odd) {
        border-right: none;
        padding-right: 0;
    }
}