
/* `version:1.0.0 hero_main.css`  */
/* `dtx_cms/public/css/hero_main.css` */
/* hero_main.css — FIXED-FRAME HERO (no jumping) */

/* GLOBAL HERO HEIGHT */
:root {
  --hero-fixed-h: 80vh;     /* desktop hero frame */
  --hero-img-frame-h: 70vh; /* desktop image frame */
}

/* SECTION WRAPPER */
#hero_section_01 {
  position: relative;
  overflow: hidden;
  margin-top: 0rem;
  /* heights now applied ONLY on desktop via media query */
}

/* Background & overlay */
#hero_section_01 .hero-bg-layer {
  position: absolute;
  inset: 0;
  background-color: #111827;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 0;
}

#hero_section_01 .hero-overlay {
  position: absolute;
  inset: 0;
  background: #000;
  opacity: 0.35;
  pointer-events: none;
  z-index: 1;
}

/* CONTENT WRAPPER */
.hero-block-shell {
  position: relative;
  z-index: 2;
  width: 100%;
}

.hero-block-inner {
  position: relative;
  width: 100%;
  max-width: min(90%, 70rem);  /* responsive container */
  margin: 1rem auto;
  padding: 2rem 1.5rem;
  display: flex;
  align-items: center;
}

/* FLEX LAYOUT */
.hero-flex {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  width: 100%;
}

@media (min-width: 768px) {
  .hero-flex {
    flex-direction: row;
    gap: 1.5rem;
  }
}

/* TEXT COLUMN */
.hero-text-col {
  flex: 0 0 var(--hero-text-basis, 60%);
  max-width: var(--hero-text-basis, 60%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  color: #ffffff;
}

.hero-text-col.hero-align-center {
  text-align: center;
  align-items: center;
}

.hero-title {
  font-size: 2.5rem;
  font-weight: 700;
}

.hero-subtitle {
  font-size: 1.3rem;
  margin-top: 0.25rem;
}

.hero-body {
  margin-top: 1rem;
  max-width: 100%;
}

/* Increased line spacing for hero paragraph text */
#hero_section_01 .hero-body,
#hero_section_01 .hero-body * {
  line-height: 1.7;
}

/* IMAGE COLUMN — base layout */
.hero-image-col {
  flex: 0 0 var(--hero-img-basis, 40%);
  max-width: var(--hero-img-basis, 40%);
  height: var(--hero-img-frame-h);
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  padding-top: 1.5rem;
  box-sizing: border-box;
}

/* The real image */
.hero-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 0.75rem;
  display: block;
  background: #111827;
}

/* Carousel Wrappers */
.hero-carousel {
  position: relative;
  width: 100%;
  height: 100%;
}

.hero-slide {
  display: none;
  width: 100%;
  height: 100%;
}

/* active slide is flex so image is centered in the frame */
.hero-slide.is-active {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Arrows */
.hero-carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  border: none;
  background: rgba(0, 0, 0, 0.35);
  color: #fff;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 1.4rem;
  z-index: 10;
}

.hero-carousel-prev {
  left: 0.75rem;
}

.hero-carousel-next {
  right: 0.75rem;
}

/* Dots */
.hero-carousel-dots {
  position: absolute;
  left: 50%;
  bottom: 1rem;
  transform: translateX(-50%);
  display: flex;
  gap: 0.4rem;
  z-index: 10;
}

.hero-carousel-dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.4);
  cursor: pointer;
}

.hero-carousel-dot.is-active {
  background: rgba(255, 255, 255, 0.95);
}

/* =========================================================
   DESKTOP HEIGHT + OFFSETS (only ≥ 768px)
   ========================================================= */
@media (min-width: 768px) {
  #hero_section_01 {
    height: var(--hero-fixed-h);
    min-height: var(--hero-fixed-h);
    max-height: var(--hero-fixed-h);
  }

  .hero-block-inner {
    height: var(--hero-fixed-h);
  }

  .hero-text-col {
    height: var(--hero-fixed-h);
  }

  /* Apply offsets only on desktop */
  #hero_img_div_1001 {
    transform: translateX(var(--hero-img-translate, 0));
  }

  #hero_text_div_1001 {
    transform: translateX(var(--hero-text-translate, 0));
  }
}

/* =========================================================
   MOBILE OVERRIDES (≤ 767px)
   ========================================================= */
@media (max-width: 767px) {

  #hero_section_01 {
    height: auto;
    min-height: auto;
    max-height: none;
    overflow: visible;
  }

  .hero-block-inner {
    padding: 1.5rem 1.25rem;
    align-items: flex-start;
  }

  /* Stack columns full width & remove any X-translate */
  .hero-text-col,
  .hero-image-col {
    flex: 0 0 100%;
    max-width: 100%;
    height: auto;
    transform: none;
  }

  .hero-text-col {
    align-items: flex-start;
    text-align: left;
  }

  .hero-image-col {
    justify-content: center;
    padding-top: 1rem;
  }

  .hero-image {
    width: 100%;
    height: auto;
    object-fit: contain;
    margin: 0 auto;
  }

  .hero-title {
    font-size: 1.8rem;
  }

  #hero_section_01 .hero-body {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  #hero_section_01 .hero-buttons,
  #hero_section_01 .hero-btn-row {
    display: flex !important;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.25rem;
    visibility: visible !important;
    opacity: 1 !important;
  }

  #hero_section_01 .hidden {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
}


