.hero {
  position: relative;
}

.welcome-line  {
  font-size: 36px;
  margin: 0 0 10px;
  line-height: 110%;
}
/* SP background - hidden on desktop */
.banner-img-sp {
  display: none;
}
/* ---- Right-side text panel (PC) ---- */
.text-panel {
  position: absolute;
  z-index: 5;
  width: 64%;
  padding: 0 2rem;
  bottom: 10%;
  right: 7%;
  text-align: center;
}
.desc-text {
  font-weight: 300;
  margin-bottom: 15px;
  font-size: 18px;
  color: var(--grey-color-santen);
}

/* Buttons */
.btn-group-custom {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}
.btn-login-c {
  border: 1px solid var(--deep-blue-color-santen);
  color: var(--deep-blue-color-santen);
  background: transparent;
  border-radius: 50px;
  padding: 11px 34px;
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  transition: all .2s;
  text-decoration: none;
  flex: 1;
  display: flex;
  justify-content: center;
  gap: 5px;
  align-items: center;
}
.btn-login-c:hover { background: var(--deep-blue-color-santen); color:#fff; }

.btn-login-c:hover svg path {
  stroke: #fff;
}

.btn-signup-c {
  background: var(--deep-blue-color-santen);
  color: #fff;
  border: 1px solid var(--deep-blue-color-santen);
  border-radius: 50px;
  padding: 11px 34px;
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  transition: background .2s;
  text-decoration: none;
  flex: 1;
  display: flex;
  justify-content: center;
  gap: 5px;
  align-items: center;
}
.btn-signup-c:hover { background: #fff; color: var(--deep-blue-color-santen) }
.btn-signup-c:hover svg path {
  stroke: var(--deep-blue-color-santen);
}

@media (min-width: 1400px) {
  .text-panel {
    bottom: 25%;
  }
}

/* ===================== MOBILE ===================== */
@media (max-width: 767px) {
  .banner-img-pc {
    display: none;
  }

  .banner-img-sp {
    display: block;
  }

  /* SP layout: top = image area, bottom = white card */
  .text-panel {
    width: auto;
    margin: auto 0 0;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 0;
    text-align: center;
    padding: 0 24px 36px;
    position: initial;
  }
  .btn-group-custom {
    flex-direction: column;
  }
  .text-panel {
    padding-bottom: 0;
  }
}
