/*
 * Reconstructed minimal Elementor + Ashade layout CSS.
 *
 * The original frontend.min.css / post-17058.css / ashade style.css lived on the
 * d2yxyrkr28gmlk.cloudfront.net bucket, whose DNS no longer resolves. Those files are
 * unrecoverable (not archived, not in git). This file reimplements only the structural
 * Elementor primitives the `homes`-layout views actually use (header + course cards),
 * so the grid lays out correctly. It does NOT reproduce per-element design from
 * post-17058.css. Validated live against /courses?locale=id before shipping.
 */

/* Sections & rows */
.elementor-section { position: relative; }
.elementor-section.elementor-section-boxed > .elementor-container { max-width: 1140px; }
.elementor-container { margin-right: auto; margin-left: auto; position: relative; }
.elementor-row { display: flex; flex-wrap: wrap; }

/* Columns */
.elementor-column { position: relative; display: flex; min-height: 1px; }
.elementor-col-100 { width: 100%; }
.elementor-col-50 { width: 50%; }
.elementor-col-33 { width: 33.333%; }
.elementor-col-25 { width: 25%; }
.elementor-col-20 { width: 20%; }
.elementor-col-12 { width: 100%; }
.elementor-column-wrap { width: 100%; position: relative; display: flex; }
.elementor-element-populated {
  padding: 10px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 6px;
}

/* Widget wrappers */
.elementor-widget { position: relative; }
.elementor-widget-wrap {
  position: relative;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  flex-direction: column;
}
.elementor-widget-container { width: 100%; }
.elementor-background-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  border-radius: 6px;
}

/* Content widgets */
.elementor-image img { display: inline-block; height: auto; max-width: 100%; }
.elementor-heading-title { margin: 0; color: #fff; }
.elementor-icon { display: inline-block; line-height: 1; font-size: 24px; }
.elementor-icon-wrapper { display: flex; }
.elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}
.elementor-button-content-wrapper { display: flex; align-items: center; }

/* Responsive visibility utilities (drive the desktop vs phone header split) */
@media (max-width: 767px) {
  .elementor-hidden-phone { display: none !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-hidden-tablet { display: none !important; }
}
@media (min-width: 1025px) {
  .elementor-hidden-desktop { display: none !important; }
}
