/* =======================================================
   VEO USP – Front-end Styles
   Layout: media-text (image left / right, text alongside)
   ======================================================= */
/* ---- Section wrapper ---- */
.veousp-section {
  margin: 2rem 0;
}

/* ---- Block ---- */
.veousp-block {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2rem;
}

/* ---- Media-text layout ---- */
.veousp-layout-media-text .veousp-media {
  flex: 0 0 50%;
  max-width: 50%;
}

.veousp-layout-media-text .veousp-text {
  flex: 1;
}

/* Alternate: odd blocks have image on right */
.veousp-block:nth-child(even).veousp-layout-media-text {
  flex-direction: row-reverse;
}

/* ---- Image ---- */
.veousp-image {
  display: block;
  width: 100%;
  height: auto;
  -o-object-fit: cover;
  object-fit: cover;
}

/* ---- Video ---- */
.veousp-video-wrapper {
  position: relative;
  padding-bottom: 56.25%;
  /* 16:9 */
  height: 0;
  overflow: hidden;
}

.veousp-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ---- Typography ---- */
.veousp-title {
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 1rem;
  color: #1a1a1a;
  line-height: 1.25;
}

.veousp-content {
  font-size: 1rem;
  line-height: 1.7;
  color: #444;
}

.veousp-content p {
  margin-bottom: 0.75rem;
}

.veousp-content p:last-child {
  margin-bottom: 0;
}

/* ---- Responsive ---- */
@media (max-width: 768px) {

  .veousp-layout-media-text .veousp-media,
  .veousp-layout-media-text .veousp-text {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .veousp-block:nth-child(even).veousp-layout-media-text {
    flex-direction: column;
  }

  .veousp-block {
    padding: 1.25rem;
    gap: 1.25rem;
  }

  .veousp-title {
    font-size: 1.3rem;
  }
}