/* Pages/home.ctp only: make the agency (人材一覧) banner full-bleed without affecting other pages */

/* Banner slider styles */
.top-banner-slider {
  position: relative;
  width: 100%;
  height: 530px;
  overflow: hidden;
}

.top-banner-slider .top-banner {
  width: 100%;
  height: 530px;
}

.top-banner-slider .slick-list,
.top-banner-slider .slick-track {
  height: 530px;
}

.top-banner-slider .slick-slide {
  height: 530px;
}

.top-banner-slider .slick-slide > div {
  height: 100%;
}

.top-banner-slider .slick-dots {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: flex !important;
  justify-content: center;
  align-items: center;
  gap: 10px;
  z-index: 10;
  padding: 0;
  margin: 0;
  list-style: none;
}

.top-banner-slider .slick-dots li {
  margin: 0;
  padding: 0;
  width: 12px;
  height: 12px;
}

.top-banner-slider .slick-dots li button {
  width: 12px;
  height: 12px;
  padding: 0;
  border: 2px solid #fff;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.3);
  font-size: 0;
  line-height: 0;
  cursor: pointer;
  transition: all 0.3s ease;
}

.top-banner-slider .slick-dots li button:before {
  content: none;
  display: none;
}

.top-banner-slider .slick-dots li button:hover {
  background: rgba(255, 255, 255, 0.6);
}

.top-banner-slider .slick-dots li.slick-active button {
  background: #fff;
  transform: scale(1.2);
}

@media screen and (max-width: 767px) {
  .top-banner-slider,
  .top-banner-slider .top-banner,
  .top-banner-slider .slick-list,
  .top-banner-slider .slick-track,
  .top-banner-slider .slick-slide {
    height: 530px;
  }
  
  .top-banner-slider .slick-dots {
    bottom: 10px;
  }
  
  .top-banner-slider .slick-dots li,
  .top-banner-slider .slick-dots li button {
    width: 10px;
    height: 10px;
  }
}

/* Break out of centered/max-width containers and span full viewport width */
#content.content-top .jbpr-recruit-header {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  /* show some background image above/below the white panel */
  padding: clamp(10px, 1.4vw, 16px) 0 !important;
  display: block !important; /* avoid any flex behavior from `.jbpr-joblist` */
}

/* Keep the photo visible on the sides by centering the white text panel */
#content.content-top .jbpr-recruit-header .jbpr-top-header {
  /* Consistent side gutters across screen sizes */
  width: calc(100% - (clamp(50px, 1.2vw, 16px) * 2)) !important;
  /* No max-width cap: keep the white panel long even on very wide screens */
  max-width: none !important;
  /* Prevent the panel from collapsing too small */
  min-width: min(320px, calc(100% - 20px));
  margin: 0 auto !important;
  box-sizing: border-box !important;
  background-color: rgba(255, 255, 255, 0.75) !important;
  padding: clamp(8px, 1.2vw, 12px) clamp(10px, 1.6vw, 16px) !important;
}

/* No extra media queries needed; `clamp()` handles responsiveness */

/* Home page: make the agency list container height follow its content (remove `min-height: 100vh`) */
#content.content-top .top-jbpr.jbpr-joblist .job-listings.joblist_container {
  min-height: 0 !important;
  height: auto !important;
}

/* Home page (SP): prevent the "もっと見る" buttons from overflowing their padded wrappers */
@media (max-width: 900px) {
  #content.content-top .pagenate.pagination a.button.pagenate {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    white-space: normal;
  }
}
