/* =========================================================
   RBO Blog responsive — listing + single posts + header CTA
   ========================================================= */

html, body {
  overflow-x: hidden;
}

/* ----- Header: stop CTA text clipping on phones ----- */
@media (max-width: 767px) {
  .elementor-5241 .elementor-element-154ac3e {
    max-width: none !important;
    flex: 0 0 auto !important;
  }

  .elementor-5241 .elementor-element-154ac3e .elementor-button,
  .elementor-location-header .elementor-button-link .elementor-button {
    padding: 8px 12px !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    width: auto !important;
    max-width: none !important;
  }

  .elementor-5241 .elementor-element-154ac3e .elementor-button-text {
    font-size: 12px !important;
    white-space: nowrap !important;
  }

  .elementor-location-header .e-con-inner,
  .elementor-location-header.e-con {
    gap: 8px !important;
    flex-wrap: nowrap !important;
  }

  .elementor-location-header {
    overflow-x: clip;
  }
}

/* ----- Blog listing (/blog/) ----- */
@media (max-width: 1024px) {
  .elementor-5259 .elementor-posts-container,
  .elementor-5259 .elementor-grid {
    grid-template-columns: 1fr !important;
    --grid-template-columns: 1fr !important;
  }

  .elementor-5259 .elementor-post {
    width: 100% !important;
    max-width: 100% !important;
  }

  .elementor-5259 .elementor-post__thumbnail img,
  .elementor-5259 .elementor-post__thumbnail__link img {
    width: 100% !important;
    height: auto !important;
    object-fit: cover;
  }
}

@media (max-width: 767px) {
  .elementor-5259 .elementor-element-abefee4 {
    --min-height: 180px !important;
    min-height: 180px !important;
    --padding-top: 40px !important;
    --padding-bottom: 40px !important;
  }

  .elementor-5259 .elementor-element-eac83c2 .elementor-heading-title {
    font-size: 28px !important;
    line-height: 1.2 !important;
  }

  .elementor-5259 .elementor-element-464133c .elementor-heading-title {
    font-size: 18px !important;
    line-height: 1.35 !important;
    padding-left: 12px;
    padding-right: 12px;
  }

  .elementor-5259 .elementor-element-767e382 {
    --padding-top: 24px !important;
    --padding-bottom: 24px !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  .elementor-5259 .elementor-post__card {
    margin-bottom: 22px;
  }

  .elementor-5259 .elementor-post__title,
  .elementor-5259 .elementor-post__title a {
    font-size: 20px !important;
    line-height: 1.35 !important;
  }

  .elementor-5259 .elementor-post__excerpt p {
    font-size: 14px !important;
    line-height: 1.55 !important;
  }
}

/* ----- Single post layout ----- */
.elementor-5229 .elementor-element-a920448 {
  justify-content: center !important;
}

@media (min-width: 1025px) {
  .elementor-5229 .elementor-element-a920448 {
    --flex-direction: row !important;
    --flex-wrap: nowrap !important;
    align-items: flex-start !important;
    justify-content: center !important;
  }

  .elementor-5229 .elementor-element-a920448 > .e-con-inner,
  .elementor-5229 .elementor-element-a920448.e-con {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    justify-content: center !important;
  }

  /* When only 1 container exists, center it elegantly at optimal reading width */
  .elementor-5229 .elementor-element-a920448 > .elementor-element:only-child,
  .elementor-5229 .elementor-element-a920448 > .e-con-inner > .elementor-element:only-child {
    width: 100% !important;
    max-width: 960px !important;
    margin: 0 auto !important;
    flex: 0 0 100% !important;
  }

  /* When sidebar is present, use 68% / 32% split */
  .elementor-5229 .elementor-element-a920448 > .elementor-element:first-child:not(:only-child),
  .elementor-5229 .elementor-element-a920448 > .e-con-inner > .elementor-element:first-child:not(:only-child) {
    width: 68% !important;
    max-width: 68% !important;
    flex: 0 0 68% !important;
  }

  .elementor-5229 .elementor-element-a920448 > .elementor-element:last-child:not(:only-child),
  .elementor-5229 .elementor-element-a920448 > .e-con-inner > .elementor-element:last-child:not(:only-child),
  .elementor-5229 .rbo-single-sidebar {
    width: 32% !important;
    max-width: 32% !important;
    flex: 0 0 32% !important;
    position: sticky;
    top: 100px;
    align-self: flex-start;
  }
}

@media (max-width: 1024px) {
  .elementor-5229 .elementor-element-a920448 {
    --flex-direction: column !important;
    flex-direction: column !important;
  }

  .elementor-5229 .elementor-element-a920448 > .e-con-inner,
  .elementor-5229 .elementor-element-a920448.e-con {
    flex-direction: column !important;
    flex-wrap: wrap !important;
  }

  .elementor-5229 .elementor-element-a920448 > .elementor-element,
  .elementor-5229 .elementor-element-a920448 > .e-con-inner > .elementor-element {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }

  .elementor-5229 .rbo-single-sidebar {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 8px;
  }
}

@media (max-width: 767px) {
  /* Hero */
  .elementor-5229 .elementor-element-7143e6a {
    --padding-top: 70px !important;
    --padding-bottom: 70px !important;
    --padding-left: 14px !important;
    --padding-right: 14px !important;
    --min-height: 220px !important;
    min-height: 220px !important;
  }

  .elementor-5229 .elementor-element-59c590f {
    width: 100% !important;
    max-width: 100% !important;
    --width: 100% !important;
  }

  .elementor-5229 .elementor-widget-theme-post-title .elementor-heading-title {
    font-size: 24px !important;
    line-height: 1.3 !important;
    word-break: break-word;
    padding: 0 4px;
  }

  /* Content shell */
  .elementor-5229 .elementor-element-a920448 {
    --padding-top: 20px !important;
    --padding-bottom: 28px !important;
    --padding-left: 12px !important;
    --padding-right: 12px !important;
  }

  .elementor-5229 .elementor-element-75d6a88 {
    border-radius: 10px !important;
    box-shadow: 0 4px 16px rgba(9, 32, 59, 0.07) !important;
  }

  .elementor-5229 .elementor-widget-theme-post-content .rbo-blog {
    max-width: none;
    background: transparent;
    padding: 14px 12px 22px !important;
    border-radius: 0;
  }

  .elementor-5229 .rbo-blog h2 {
    font-size: 1.25rem !important;
    line-height: 1.35 !important;
  }

  .elementor-5229 .rbo-blog h3 {
    font-size: 1.05rem !important;
  }

  .elementor-5229 .rbo-blog p,
  .elementor-5229 .rbo-blog li {
    font-size: 15px !important;
    line-height: 1.65 !important;
  }

  /* Tables scroll instead of blowing layout */
  .elementor-5229 .rbo-blog table {
    display: block;
    width: 100% !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    font-size: 13px;
  }

  .elementor-5229 .rbo-blog th,
  .elementor-5229 .rbo-blog td {
    padding: 8px 10px !important;
    white-space: nowrap;
  }

  .elementor-5229 .rbo-blog .rbo-cta,
  .elementor-5229 .rbo-blog .rbo-box {
    padding: 14px !important;
  }

  /* Sidebar cards */
  .rbo-side-card {
    padding: 18px 16px !important;
    margin-bottom: 14px !important;
  }

  .rbo-side-card h3 {
    font-size: 20px !important;
  }

  .rbo-side-btn {
    display: block !important;
    text-align: center;
    width: 100%;
    box-sizing: border-box;
  }
}

/* Desktop article content polish */
@media (min-width: 768px) {
  .elementor-5229 .elementor-widget-theme-post-content .rbo-blog {
    max-width: none;
    background: transparent;
    padding: 24px 32px 36px;
    border-radius: 0;
  }
}

/* Infographics and in-content images */
.rbo-infographic-box {
  margin: 2.2em 0;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 12px;
  box-shadow: 0 6px 20px rgba(9, 32, 59, 0.06);
  text-align: center;
}

.rbo-infographic-box img {
  width: 100%;
  height: auto;
  border-radius: 8px;
  display: block;
}

.rbo-img-caption {
  font-size: 13px !important;
  color: #64748b !important;
  margin: 10px 0 2px !important;
  font-style: italic;
  text-align: center;
  line-height: 1.4 !important;
}

.rbo-side-card a {
  word-break: break-word;
}

