@charset "utf-8";

/***************************************************************************

  企業情報
  /company/

***************************************************************************/


/*--------------------------------------------------------------------------
ヘッダー下コンテンツナビ
--------------------------------------------------------------------------*/
.subHeaderNavi {
  border-top: 1px solid #C5DFEB;
  border-bottom: 1px solid #DEDEDE;
}
.subHeaderNavi .wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 63px;
}
.subHeaderNavi .wrap div {
  color: #0091D7;
  font-weight: bold;
}
.subHeaderNavi ul {
  display: flex;
  gap: 26px;
  font-size: 1.5rem;
  height: 100%;
}
.subHeaderNavi ul li {
  height: 100%;
  display: flex;
  align-items: center;
}
.subHeaderNavi ul li a {
  display: block;
  height: 100%;
  display: flex;
  align-items: center;
}
.subHeaderNavi ul li.current {
  border-bottom: 3px solid #0091D7;
  font-weight: bold;
}
.subHeaderNavi ul li.current a {
  color: #0091D7;
}
.subHeaderNavi ul li a:hover {
  opacity: 0.7;
  transition: 0.3s;
}

@media screen and (max-width: 767px) {
  .subHeaderNavi .wrap {
    display: block;
    width: calc(100% - 30px);
    height: auto;
    transition: 0.3s;
  }
  .subHeaderNavi .wrap > div {
    position: relative;
    cursor: pointer;
    padding: 16px 0 18px;
    font-size: 1.3rem;
    transition: 0.3s;
  }
  .subHeaderNavi .wrap > div::after {
    content: "";
    width: 21px;
    height: 21px;
    background: url(../img/company/acc_arrow_down.svg) no-repeat right center;
    background-size: 21px;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
  }

  /* ulは最初は閉じる */
  .subHeaderNavi ul {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    flex-wrap: wrap;
    font-size: 1.3rem;
    gap: 10px 15px;
  }

  /* 開いた状態 */
  .subHeaderNavi .wrap.is-open ul {
    max-height: 600px; /* メニューの高さより大きめに */
    margin-bottom: 15px;
    transition: 0.3s;
  }

  /* 開いたら「−」に変更 */
  .subHeaderNavi .wrap.is-open > div::after {
    content: "";
    background: url(../img/company/acc_arrow_up.svg) no-repeat right center;
    background-size: 21px;
  }
}


/*--------------------------------------------------------------------------
タイトル
--------------------------------------------------------------------------*/
.titleBlock {
  height: 230px;
  margin: 0 0 80px;
  display: flex;
  align-items: center;
  flex-direction: column;
  background: #EBF6FC;
  background: linear-gradient(90deg, rgba(235, 246, 252, 1) 0%, rgba(207, 236, 251, 1) 100%);
}
.titleBlock h1 {
  font-size: 3.8rem;
  font-weight: bold;
  color: #333333;
}

main.company h2 {
  font-size: 3rem;
  margin: 60px 0 0 0;
  font-weight: bold;
  color: #1073E5;
}

@media screen and (max-width: 767px) {
  .titleBlock {
    height: 140px;
    margin: 0 0 40px;
  }
  .titleBlock h1 {
    font-size: 2.6rem;
  }
  main.company h2 {
    font-size: 2.2rem;
  }
}

/*--------------------------------------------------------------------------
社長挨拶 
--------------------------------------------------------------------------*/
section.companyIndexSection {
  margin: 0 0 90px;
}
main.company .company2colBlock {
  width: 100%;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
}
main.company .company2colBlock h2 {
  width: 280px;
  margin: 0 0 30px;
}
main.company .company2colBlock .company2colCnt {
  flex: 1;
}
main.company .company2colBlock p {
  line-height: 2.2;
  margin: 0 0 35px;
}
main.company .company2colBlock .presidentPic {
  width: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0 40px;
}
main.company .company2colBlock strong {
  font-size: 2.2rem;
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
main.company .company2colBlock span {
  font-size: 1.4rem;
  font-weight: normal;
  padding-right: 12px;
}
main.company .company2colBlock img {
  width: 120px;
}

@media screen and (max-width: 767px) {
  section.companyIndexSection {
    margin: 0 0 40px;
  }
  main.company .company2colBlock {
    width: 100%;
    display: block;
  }
  main.company .company2colBlock h2 {
    width: 100%;
    margin: 0 0 16px;
  }
  main.company .company2colBlock p {
    line-height: 1.8;
  }
  main.company .company2colBlock .presidentPic {
    gap: 0 23px;
  }
  main.company .company2colBlock img {
    width: 94px;
  }
  main.company .company2colBlock strong,
  main.company .company2colBlock span {
    display: block;
  }
  main.company .company2colBlock strong {
    font-size: 1.9rem;
  }
  main.company .company2colBlock span {
    font-size: 1.2rem;
  }
}


/*--------------------------------------------------------------------------
テーブル
--------------------------------------------------------------------------*/
main.company table.lwrCommonTable {
  flex: 1;
  border-spacing: 0 24px;
  margin: 0 0 0;
  border-collapse: collapse;
}
main.company table.lwrCommonTable tr:first-child th,
main.company table.lwrCommonTable tr:first-child td {
  padding: 15px 6px 24px;
}
main.company table.lwrCommonTable th {
  color: #1073E5;
  width: 150px;
  padding: 24px 6px;
}
main.company table.lwrCommonTable td {
  width: calc(100% - 150px - 24px);
  padding: 24px 6px;
}

@media screen and (max-width: 767px) {
  main.company table.lwrCommonTable {
    border-spacing: 0;
  }
  main.company table.lwrCommonTable tr:first-child th {
    padding: 10px 0;
  }
  main.company table.lwrCommonTable th {
    width: 100%;
    padding: 20px 0 10px;
  }
  main.company table.lwrCommonTable td {
    width: 100%;
    padding: 0 0 20px !important;
  }
  main.company table.lwrCommonTable td ol.listDemi {
    margin: 0 0 0 2.5rem;
  }
}


/*--------------------------------------------------------------------------
スローガン
--------------------------------------------------------------------------*/
.sloganBlock .sloganBox {
  display: flex;
  justify-content: flex-start;
  align-items: baseline;
}
.sloganBlock .sloganBox h2 {
  width: 280px;
  margin: 0;
}
.sloganBlock .sloganBox dl dt {
  font-size: 3rem;
  color: #1073E5;
  font-weight: bold;
  margin: 0 0 10px;
}
.sloganBlock .sloganBox ul {
  margin: 24px 0 0 0;
}
.sloganBlock .sloganBox ul li {
  font-size: 1.8rem;
  font-weight: bold;
  background: url(../img/icon_dot.png) no-repeat left 1.2rem;
  background-size: 6px;
  margin: 0 0 12px;
  padding: 0 0 0 16px;
}

@media screen and (max-width: 767px) {
  .sloganBlock .sloganBox {
    flex-direction: column;
  }
  .sloganBlock .sloganBox dl dt {
    font-size: 2.2rem;
    margin: 16px 0 0;
  }
  .sloganBlock .sloganBox dl dd {
  }
  .sloganBlock .sloganBox ul {
    margin: 16px 0 0 0;
  }
  .sloganBlock .sloganBox ul li {
    margin: 0 0 16px;
  }
}


/*--------------------------------------------------------------------------
資料リスト
--------------------------------------------------------------------------*/
.docListBlock dl dt {
  margin: 40px 0 0 0;
  padding: 0 0 10px;
  font-size: 2rem;
  font-weight: bold;
  border-bottom: 1px solid #0091D7;
}
.docListBlock dl dd {
  padding: 24px 12px;
  border-top: 1px solid #CCCCCC;
}
.docListBlock dl dt + dd {
  border: none;
}
.docListBlock dl dd a {
  text-decoration: underline;
  position: relative;
}
.docListBlock dl dd a[href*=".pdf"]::after {
  font-size: 1.2rem;
  font-family: 'Roboto',serif;
  content: "PDF";
  border-radius: 4px;
  background-color: #686868;
  color: #ffffff;
  font-weight: bold;
  line-height: 1;
  padding: 4px 8px 2px 8px;
  margin: 0 0 0 10px;
  display: inline-block;
}
.docListBlock dl dd a:hover {
  text-decoration: none;
  opacity: 0.7;
  transition: 0.3s;
}

@media screen and (max-width: 767px) {
  .docListBlock dl dt {
    margin: 25px 0 0 0;
    padding: 0 0 12px;
    font-size: 1.9rem;
  }
  .docListBlock dl dd {
    padding: 20px 0 20px 20px;
  }
}


/*--------------------------------------------------------------------------
広告掲出
--------------------------------------------------------------------------*/
.adInformationBlock h2 {
  margin: 0 0 40px !important;
}
.adInformationBlock h3 {
  margin: 40px 0 0;
  padding: 0 0 14px;
  font-size: 2.8rem;
  font-weight: bold;
  border-bottom: 1px solid #1073E5;
}
.adInformationBlock .adKindBox {
  padding: 48px 0 86px 0;
  display: flex;
  justify-content: space-between;
  border-top: 1px solid #DEDEDE;
}
.adInformationBlock .adKindBox:first-child {
  border-top: none;
}
.adInformationBlock .adKindBox h4 {
  margin: 0 0 20px;
  font-size: 2.6rem;
  font-weight: bold;
  color: #1073E5;
}
.adInformationBlock .adKindBox .txtBox {
  width: calc(100% - 575px - 50px);
  padding: 8px 0 0 0;
}
.adInformationBlock .adKindBox .txtBox p + p {
  margin-top: 1.5em;
}
.adInformationBlock .adKindBox .imgBox {
  width: 575px;
  text-align: center;
}
.adInformationBlock .adKindBox .imgBox figcaption {
  margin: 6px 0 0 0;
  font-size: 1.4rem;
  color: #999999;
}
.adInformationBlock .adKindBox .kindBox dl {
  margin: 6px 0 0 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.adInformationBlock .adKindBox .kindBox dl dt {
  padding: 18px 0;
  width: 90px;
  border-top: 1px solid #DEDEDE;
}
.adInformationBlock .adKindBox .kindBox dl dt span {
  font-size: 1.4rem;
  padding: 6px 0;
  background: #1073E5;
  color: #ffffff;
  font-weight: bold;
  text-align: center;
  line-height: 1;
  border-radius: 50px;
  display: block;
}
.adInformationBlock .adKindBox .kindBox dl dd {
  padding: 18px 0 18px 16px;
  width: calc(100% - 90px);
  border-top: 1px solid #DEDEDE;
}
.adInformationBlock .adKindBox .kindBox dl dt:first-child,
.adInformationBlock .adKindBox .kindBox dl dt:first-child + dd {
  border: none;
}

@media screen and (max-width: 767px) {
  .adInformationBlock h2 {
    margin: 0 0 20px !important;
  }
  .adInformationBlock h2 br {
    display: none;
  }
  .adInformationBlock h3 {
    margin: 32px 0 0;
    padding: 0 0 12px;
    font-size: 2rem;
  }
  .adInformationBlock .adKindBox {
    padding: 15px 0 25px;
    flex-direction: column;
  }
  .adInformationBlock .adKindBox h4 {
    margin: 0 0 12px;
    font-size: 1.8rem;
  }
  .adInformationBlock .adKindBox .txtBox {
    width: 100%;
    margin: 0 0 20px;
  }
}

/* スライダー */
.adInformationBlock .adKindBox .adSliderBox {
  width: 575px;
  text-align: center;
  color: #999999;
  font-size: 1.4rem;
}
.adInformationBlock .adKindBox .swiper-slide img {
  margin: 0 0 5px;
}
.controllParts {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 20px 0 0;
}
.adSliderPagenation {
  width: initial !important;
  z-index: 2;
  text-align: center;
  padding: 6px 0;
  line-height: 12px !important;
}
.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet,
.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 0 5px 0 !important;
}
.adSliderBox .swiper-pagination-bullet {
  background: #999 !important;
  height: 10px;
  width: 10px;
}
.adSliderBox .swiper-pagination-bullet-active {
    background: #0091D7 !important;
    z-index: 10 !important;
}
.stopbtn {
  margin: 0 0 0 10px;
  display: block;
  width: 22px;
  height: 22px;
}
.stopbtn img {
  display: block;
  width: 22px;
  height: 22px;
}
/* 画像サイズ調整 */
.swiper-slide img {
  height: auto;
  width: 100%;
}

@media screen and (max-width: 767px) {
  .adInformationBlock .adKindBox .adSliderBox {
    width: 100%;
  }
  .adInformationBlock .adKindBox .imgBox {
    width: 100%;
  }
  .controllParts {
    margin: 10px 0 0;
  }
  .swiper-slide {
    font-size: 1.3rem;
  }
}

/* 広告配置場所 */
.adInformationBlock .adPlaceBox {
  margin: 48px 0 80px;
}
.adInformationBlock .adPlaceBox .tabBox ul {
  display: flex;
  justify-content: space-between;
}
.adInformationBlock .adPlaceBox .tabBox ul li {
  font-size: 2rem;
  font-family: 'Roboto',serif;
  padding: 0 0 8px;
  font-weight: bold;
  display: flex;
  justify-content: center;
  align-items: center;
  width: calc(100% / 3);
  cursor: pointer;
  position: relative;
  border-bottom: 1px solid #C5DFEB;
}
.adInformationBlock .adPlaceBox .tabBox ul li span {
  margin: 0 14px 0 0;
}

.adInformationBlock .adPlaceBox .tabBox ul.tabList li:hover,
.adInformationBlock .adPlaceBox .tabBox ul.tabList li.active {
  color: #1073E5;
}
.adInformationBlock .adPlaceBox .adPlaceListBox figcaption {
  text-align: center;
}
  .adInformationBlock .adPlaceBox .adPlaceListBox figcaption img {
    height: 19px;
  }

.tabList li::after {
  content: '';
  width: 0;
  height: 0;
  background: #0091D7;
  position: absolute;
  left: 0;
  right: 0;
  margin: 0 auto;
  bottom: -1px;
  transition: 0.3s;
}

.tabList li.active::after,
.tabList li:hover::after {
  width: 100%;
  height: 3px;
}

.tabList li.active {
  pointer-events: none;
}

.tabList:has(li:hover) li.active::after {
  width: 0;
  height: 0;
}
.adInformationBlock .adPlaceBox .adPlaceListBox > div {
  padding: 20px 12px 30px;
  display: none;
}


@media screen and (max-width: 767px) {
  .adInformationBlock .adPlaceBox {
    margin: 20px 0 40px;
  }
  .adInformationBlock .adPlaceBox .tabBox ul {
    padding: 10px 0 0;
  }
  .adInformationBlock .adPlaceBox .tabBox ul li {
    font-size: 1.5rem;
    padding: 0 0 10px;
    margin: 0;
  }
  .adInformationBlock .adPlaceBox .adPlaceListBox figcaption img {
    height: 15px;
  }
}

.adContactBox p {
  margin: 50px 0 33px 0;
}
.adContactBox table {
  width: 100%;
}
.adContactBox table tr {
  border-bottom: 1px solid #DEDEDE;
}
.adContactBox table tr:last-child {
  border: none;
}
.adContactBox table th,
.adContactBox table td {
  padding: 24px 0;
}
@media screen and (max-width: 767px) {
  .adContactBox p {
    margin: 24px 0;
  }
  .adContactBox table tr {
    display: flex;
    flex-direction: column;
  }
  .adContactBox table th {
    padding: 12px 0 0;
  }
  .adContactBox table td {
    padding: 6px 0 0;
  }
  .adContactBox table tr td:last-child {
    padding-bottom: 12px;
  }

}

/*--------------------------------------------------------------------------
CMライブラリ
--------------------------------------------------------------------------*/
.cmBlock strong.Big {
  font-size: 2.2rem;
}
.cmBlock .cmBox {
  margin: 40px 0 0 0;
  display: flex;
  justify-content: space-between;
  gap: 45px;
}
.cmBlock .cmBox div{
  width: calc(100% / 3 - 24px);
}
.cmBlock .cmBox figure {
  position: relative;
  background-color: #fff;
  overflow: hidden;
}
.cmBlock .cmBox figure img {
  transition: transform .6s ease;
}
.cmBlock .cmBox figure:hover img {
  transform: scale(1.1);
}
.cmBlock .cmBox div dl dt {
  margin: 12px 0 4px;
  font-size: 2rem;
  font-weight: bold;
}
.cmBlock .cmBox a {
  position: relative;
  display: block;
}
.cmBlock .cmBox a::after {
  content: "";
  width: 64px;
  height: 64px;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  background: url(../img/company/cm/icon_play.png) no-repeat center;
  background-size: 64px;
}

@media screen and (max-width: 767px) {
  .cmBlock strong.Big {
    font-size: 2rem;
  }
  .cmBlock .cmBox {
    flex-direction: column;
    gap: 40px;
  }
  .cmBlock .cmBox div {
    width: 100%;
  }
  .cmBlock .cmBox a::after {
    width: 55px;
    height: 55px;
    background-size: 55px;
  }
  .cmBlock .cmBox div dl dt {
    font-size: 1.9rem;
  }
  .lity-wrap {
    padding: 0 20px;
  }
}

.lity {
  background: rgba(0, 0, 0, 0.6) !important;
}

/*
.lity-close {
  display: none !important;
}*/