@charset "UTF-8";

#sub .subMain {
	width: 100%;
    height: 50vh;
	margin: 0 auto;
	position: relative;
	background-size: cover;
	background-position: center;
}

#sub .subMain h1 {
    position: absolute;
    top: 55%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: none;
    display: block;
    padding: 0;
    color: #fff;
}

.bgGray {
    background: #f0f2f2;
    padding: 6rem 0;
}

@media (max-width: 926px) {
	#sub .subMain {
		height: 30vh;
	}
}

@media (max-width: 559px) {
	.bgGray {
		padding: 3rem 0;
	}
}

/* ---------- ページ内リンクエリア ---------- */

.pageBox {
  padding: 3rem 5rem;
}

.service .pageBox h3 span {
    font-size: 1.4rem;
    color: #7d7876;
    font-family: 'Noto Serif JP', serif;
    padding-left: 1rem;
}

@media (max-width: 559px) {
  .pageBox {
    padding: 3rem 1rem;
  }
}

/* ---------- bottom 2 cards ---------- */
.pageBottom .flex {
  gap: 40px;
}

.pageBottom .ItemService,
.pageBottom .ItemCompany,
.pageBottom .ItemAbout,
.pageBottom .ItemOffice,
.pageBottom .ItemItem,
.pageBottom .ItemPrivacy  {
  position: relative;
  display: block;
  flex: 1 1 calc(50% - 20px);
  overflow: hidden;
  height: 260px;               /* Fallback */
  aspect-ratio: 16 / 7;        /* 対応ブラウザで比率固定 */
  text-decoration: none;
}


.pageBottom .ItemService::before,
.pageBottom .ItemCompany::before,
.pageBottom .ItemAbout::before,
.pageBottom .ItemOffice::before,
.pageBottom .ItemItem::before,
.pageBottom .ItemPrivacy::before  {
  content: "";
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1);
  transition: transform .6s ease;
}


.pageBottom .ItemService::before { background-image: url("../images/bottom-service.jpg"); }
.pageBottom .ItemCompany::before { background-image: url("../images/bottom-company.jpg"); }
.pageBottom .ItemAbout::before { background-image: url("../images/bottom-about.jpg"); }
.pageBottom .ItemOffice::before { background-image: url("../images/bottom-office.jpg"); }
.pageBottom .ItemItem::before { background-image: url("../images/bottom-item.jpg"); }
.pageBottom .ItemPrivacy::before { background-image: url("../images/bottom-privacy.jpg"); }

.pageBottom .ItemService::after,
.pageBottom .ItemCompany::after,
.pageBottom .ItemAbout::after,
.pageBottom .ItemOffice::after,
.pageBottom .ItemItem::after,
.pageBottom .ItemPrivacy::after   {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.28);
  transition: background .3s ease;
}


.pageBottom .ItemService span,
.pageBottom .ItemCompany span,
.pageBottom .ItemAbout span,
.pageBottom .ItemOffice span,
.pageBottom .ItemItem span,
.pageBottom .ItemPrivacy span {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-size: 1.6rem;
  font-weight: 600;
  letter-spacing: .08em;
  pointer-events: none;
  font-family: 'Noto Serif JP', serif;
  z-index: 2;
  white-space: nowrap;
}


.pageBottom .ItemService:hover::before,
.pageBottom .ItemCompany:hover::before,
.pageBottom .ItemService:focus-visible::before,
.pageBottom .ItemCompany:focus-visible::before,
.pageBottom .ItemAbout:hover::before,
.pageBottom .ItemOffice:hover::before,
.pageBottom .ItemItem:hover::before,
.pageBottom .ItemPrivacy:hover::before,
.pageBottom .ItemAbout:focus-visible::before,
.pageBottom .ItemOffice:focus-visible::before,
.pageBottom .ItemItem:focus-visible::before,
.pageBottom .ItemPrivacy:focus-visible::before {
  transform: scale(1.06);
}
.pageBottom .ItemService:hover::after,
.pageBottom .ItemCompany:hover::after,
.pageBottom .ItemService:focus-visible::after,
.pageBottom .ItemCompany:focus-visible::after,
.pageBottom .ItemAbout:hover::after,
.pageBottom .ItemOffice:hover::after,
.pageBottom .ItemItem:hover::after,
.pageBottom .ItemPrivacy:hover::after,
.pageBottom .ItemAbout:focus-visible::after,
.pageBottom .ItemOffice:focus-visible::after,
.pageBottom .ItemItem:focus-visible::after,
.pageBottom .ItemPrivacy:focus-visible::after {
  background: rgba(0,0,0,.45);
}


.pageBottom .ItemService:focus-visible,
.pageBottom .ItemCompany:focus-visible,
.pageBottom .ItemAbout:focus-visible,
.pageBottom .ItemOffice:focus-visible,
.pageBottom .ItemItem:focus-visible,
.pageBottom .ItemPrivacy:focus-visible {
  outline: 3px solid #265f9a;
  outline-offset: 3px;
}


@media (max-width: 768px) {
  .pageBottom .flex { gap: 24px; }
  .pageBottom .ItemService,
  .pageBottom .ItemCompany,
  .pageBottom .ItemAbout,
  .pageBottom .ItemOffice,
  .pageBottom .ItemItem,
  .pageBottom .ItemPrivacy {
    flex-basis: 100%;
    height: 200px;
  }
}

/* 動きが苦手な環境配慮 */
@media (prefers-reduced-motion: reduce) {
  .pageBottom .ItemService::before,
  .pageBottom .ItemCompany::before,
  .pageBottom .ItemAbout,
  .pageBottom .ItemOffice,
  .pageBottom .ItemItem,
  .pageBottom .ItemPrivacy {
    transition: none;
  }
}


/* ------------------------------------------------
   #servicePageLink 専用レイアウト＆装飾
   ------------------------------------------------ */

/*
#servicePageLink .pageLink{
  width: calc((100% - 40px) / 3);
}
#servicePageLink .pageLink.pageLinkBl a {
  width: 80%;
}
@media (max-width: 926px) {
  #servicePageLink .pageLink.pageLinkBl a {
    width: 100%;
  }
}
*/

.serviceLinkWrap {
  gap: 20px;
}

.serviceLinkWrap .pageLink {
  width: calc((100% - 60px) / 2);
  padding-bottom: 0;
}

.service .serviceLinkWrap .pageLink {
  margin: 0px auto;
}

.serviceLinkWrap .pageLink a {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 22px 10px 20px;
  background: #fff;
  border-radius: 8px;
  text-align: center;
  text-decoration: none;
  transform: none;
}

.serviceLinkWrap .pageLink a::before {
  content: none;
}

.serviceLinkWrap .pageLink a::after {
  content: '';
  display: block;
  width: 22px;
  height: 22px;
  margin: 4px auto 0;
  border-radius: 50%;
  background-color: #073e79;
  background-image: url(../images/icon-arrow-down.png);
  background-repeat: no-repeat;
  background-position: center;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.serviceLinkWrap .pageLink a:hover {
  transform: translateY(-3px);
}

.serviceLinkWrap .pageLink a:hover::after {
  transform: translateY(6px);
}

@media (max-width: 559px) {
  .serviceLinkWrap .pageLink {
      width: 100%;
  }
  .serviceLinkWrap .pageLink a {
      padding: 13px 5px 12px;
      margin-bottom: 10px;
  }
  .serviceLinkWrap .pageLink a::after {
      margin: 8px auto 0;
  }
}