/* Elementor Theme Builder shell — layout fixes without full theme CSS */

html {
  margin: 0;
  padding: 0;
  height: 100%;
  box-sizing: border-box;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

body.elementor-page {
  margin: 0;
  padding: 0;
  min-height: 100vh;
  width: 100%;
  display: flex;
  flex-direction: column;
  background-color: #ffffff;
}

.elementor-site {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  width: 100%;
  overflow-x: clip;
}

/* GeneratePress separate-containers parity: grid-container + site-main + inside-article */
.elementor-site > main#content.site-main {
  flex: 1 0 auto;
  box-sizing: border-box;
  align-self: center;
  width: 100%;
  max-width: 1200px;
  margin: 20px auto;
  padding: 0;
}

.elementor-site > main#content.site-main > .inside-article {
  box-sizing: border-box;
  width: 100%;
  padding: 40px;
}

.elementor-site > main#content.site-main .entry-content {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
}

.elementor-site > main#content.site-main .entry-content > .elementor {
  width: 100%;
  max-width: 100%;
}

.elementor-site > .elementor {
  width: 100%;
  max-width: 100%;
}

.elementor-section.elementor-section-full_width,
.elementor-section.elementor-section-stretched {
  width: 100%;
  max-width: 100%;
}

.elementor-site > main#content .elementor-section-full_width > .elementor-container,
.elementor-site > main#content .elementor-section-stretched > .elementor-container {
  max-width: 100%;
}

/* Header (elementor-32) — centered inner layout aligned with main#content column */
.elementor-site > .elementor.elementor-32 header.elementor-element-7a5fe09b {
  padding-left: 0;
  padding-right: 0;
}

.elementor-site > .elementor.elementor-32 header.elementor-element-7a5fe09b > .elementor-container {
  box-sizing: border-box;
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 40px;
  padding-right: 40px;
}

.elementor-site > .elementor.elementor-32 .elementor-element-c18e919 .elementor-nav-menu--layout-horizontal .elementor-nav-menu {
  justify-content: center;
  width: 100%;
}

/* Footer (elementor-33) — match centered content width */
.elementor-site > .elementor.elementor-33 footer.elementor-element-70ba2e5 > .elementor-container {
  box-sizing: border-box;
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 40px;
  padding-right: 40px;
}

/* Footer popular-articles block — Tuba fallback CSS leaves default dark text on black footer */
.elementor-site > .elementor.elementor-33 .elementor-element-744012c,
.elementor-site > .elementor.elementor-33 .elementor-element-744012c p,
.elementor-site > .elementor.elementor-33 .elementor-element-744012c li,
.elementor-site > .elementor.elementor-33 .elementor-element-744012c a {
  color: #ffffff;
}

.elementor-site > .elementor.elementor-33 .elementor-element-744012c a:hover {
  color: #f5c4d8;
}

/* Hero banner (elementor-75 / 3297ca71) — full viewport width inside GP content box */
.elementor-site > main#content.site-main .entry-content > .elementor
  > .elementor-section.elementor-element-3297ca71 {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.elementor-site > main#content.site-main > .inside-article:has(
  > .entry-content > .elementor > .elementor-section.elementor-element-3297ca71:first-child
) {
  padding-top: 0;
}

.elementor-site > main#content.site-main:has(
  > .inside-article > .entry-content > .elementor > .elementor-section.elementor-element-3297ca71:first-child
) {
  margin-top: 0;
}

/* Prevent horizontal overflow gaps on nested containers */
.elementor-site .e-con-boxed > .e-con-inner {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

/* Elementor Posts pagination — match theme .pagination / .nav-links spacing */
.elementor-site .elementor-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin: 30px 0;
  padding: 0;
}

.elementor-site .elementor-pagination .page-numbers {
  display: inline-block;
  padding: 8px 14px;
  border: 1px solid #ddd;
  font-size: 14px;
  line-height: 1.4;
  text-decoration: none;
  color: inherit;
}

.elementor-site .elementor-pagination .page-numbers.current {
  background: #222;
  color: #fff;
  border-color: #222;
}

.elementor-site .elementor-pagination .page-numbers.prev,
.elementor-site .elementor-pagination .page-numbers.next {
  border-color: #ddd;
}

/* Blog page — section hub links (divers, uncategorized, etc.) */
.elementor-site .entry-content nav.blog-section-hubs {
  display: block;
  width: 100%;
  margin: 0 0 28px;
  padding: 18px 20px;
  border: 1px solid #e2e2e2;
  border-radius: 4px;
  background: #f7f7f7;
}

.elementor-site .entry-content nav.blog-section-hubs h2 {
  margin: 0 0 12px;
  font-family: "Lora", Georgia, serif;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
  color: #222;
}

.elementor-site .entry-content nav.blog-section-hubs ul {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.elementor-site .entry-content nav.blog-section-hubs a {
  font-family: "Karla", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
  color: #222;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.elementor-site .entry-content nav.blog-section-hubs a:hover {
  color: #555;
}

@media (max-width: 768px) {
  .elementor-site > main#content.site-main {
    margin: 10px auto;
  }

  .elementor-site > main#content.site-main > .inside-article {
    padding: 20px;
  }

  .elementor-site > .elementor.elementor-32 header.elementor-element-7a5fe09b > .elementor-container,
  .elementor-site > .elementor.elementor-33 footer.elementor-element-70ba2e5 > .elementor-container {
    padding-left: 20px;
    padding-right: 20px;
  }

  .elementor-site .elementor-pagination {
    margin: 24px 0;
  }
}

/* Posts grid — classic sections and flex containers */
.elementor-site .elementor-element.elementor-widget-posts .elementor-posts-container.elementor-grid,
.elementor-site .elementor-posts-container.elementor-grid {
  display: grid;
  width: 100%;
  column-gap: var(--grid-column-gap, 30px);
  row-gap: var(--grid-row-gap, 35px);
  grid-template-columns: repeat(var(--grid-columns, 3), minmax(0, 1fr));
}

@media (max-width: 1024px) {
  .elementor-site .elementor-posts-container.elementor-grid-tablet-2 {
    --grid-columns: 2;
  }
}

@media (max-width: 767px) {
  .elementor-site .elementor-posts-container.elementor-grid-mobile-1 {
    --grid-columns: 1;
  }
}

.elementor-site .elementor-posts-container.elementor-grid-2 {
  --grid-columns: 2;
}

.elementor-site .elementor-posts-container.elementor-grid-3 {
  --grid-columns: 3;
}

.elementor-site .elementor-posts-container.elementor-grid-4 {
  --grid-columns: 4;
}

.elementor-site .elementor-posts-container.elementor-grid-1 {
  --grid-columns: 1;
}

/* Thumbnail-left/right lists — flex stretch was collapsing ratio boxes to text height */
.elementor-site .elementor-posts--thumbnail-left .elementor-post,
.elementor-site .elementor-posts--thumbnail-right .elementor-post {
  align-items: flex-start;
}

.elementor-site .elementor-posts--thumbnail-left.elementor-has-item-ratio .elementor-post__thumbnail__link,
.elementor-site .elementor-posts--thumbnail-right.elementor-has-item-ratio .elementor-post__thumbnail__link {
  align-self: flex-start;
  flex-shrink: 0;
}

.elementor-site .elementor-posts--thumbnail-left.elementor-has-item-ratio .elementor-post__thumbnail,
.elementor-site .elementor-posts--thumbnail-right.elementor-has-item-ratio .elementor-post__thumbnail {
  inset: unset;
  position: relative;
  height: 0;
  width: 100%;
}

.elementor-site .elementor-posts--thumbnail-left.elementor-has-item-ratio .elementor-post__thumbnail img,
.elementor-site .elementor-posts--thumbnail-right.elementor-has-item-ratio .elementor-post__thumbnail img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: none;
}

.elementor-site .elementor-posts--thumbnail-left.elementor-has-item-ratio .elementor-post__thumbnail.elementor-fit-height img,
.elementor-site .elementor-posts--thumbnail-right.elementor-has-item-ratio .elementor-post__thumbnail.elementor-fit-height img {
  width: 100%;
  height: 100%;
}

/* Contact page + CF7 static snapshot */
.contact-page-content {
  max-width: 770px;
  margin: 0 auto;
  padding: 2rem 1.5rem 3rem;
}

.contact-page-content .entry-header {
  margin-bottom: 1.5rem;
}

.cf7-static-snapshot label {
  display: block;
  margin: 0.85rem 0 0.35rem;
  font-weight: 600;
}

.cf7-static-snapshot input,
.cf7-static-snapshot textarea {
  display: block;
  width: 100%;
  max-width: 100%;
  padding: 0.55rem 0.75rem;
  margin-bottom: 0.35rem;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
}

.cf7-static-snapshot button {
  margin-top: 1.25rem;
  padding: 0.65rem 1.4rem;
  background: #222;
  color: #fff;
  border: none;
  border-radius: 4px;
  cursor: not-allowed;
}

/* Mama-bears palette overrides (kit-25 family, offline fallback CSS) */
body.mama-bears-site .elementor-site > .elementor.elementor-32 header.elementor-element-7a5fe09b,
body.mama-bears-site .elementor-site > .elementor.elementor-32 header.elementor-element-7a5fe09b > .elementor-motion-effects-container > .elementor-motion-effects-layer {
  background-color: #e8a0b8 !important;
}

body.mama-bears-site .elementor-32 .elementor-element.elementor-element-c18e919 .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after {
  background-color: #d47494 !important;
}

body.mama-bears-site .elementor-32 .elementor-element.elementor-element-c18e919 .elementor-nav-menu--dropdown,
body.mama-bears-site .elementor-32 .elementor-element.elementor-element-c18e919 .elementor-nav-menu--dropdown a:hover,
body.mama-bears-site .elementor-32 .elementor-element.elementor-element-c18e919 .elementor-nav-menu--dropdown a:focus,
body.mama-bears-site .elementor-32 .elementor-element.elementor-element-c18e919 .elementor-nav-menu--dropdown a.highlighted {
  background-color: #d47494 !important;
}

/* Prefer data-rendered hero background over Tuba fallback pack image */
body.mama-bears-site .elementor-75 .elementor-element.elementor-element-3297ca71[style*="background-image"] {
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}
