.slide@charset "utf-8";
@import url('common.css?6');

html{
	 background-color: #fff !important;
}
.pc {
  display: block;
}

.sp {
  display: none;
}

* {
  -webkit-tap-highlight-color: rgba(0,0,0,0);
}


main {
  opacity: 0;
  transition: opacity 750ms ease-out 150ms;
}
body.loaded main {
  opacity: 1;
}

body.brandsolution-contact main {
  opacity: 1;
  transition: none;
}




#wrapper > header {
  position: fixed;
  width: 100%;
  height: 56px;
  left: 0;
  top: 0;
  z-index: 1000;
  background: #fff;
}
#wrapper > header .inner {
  box-sizing: border-box;
  display: flex;
  width: 100%;
  max-width: 1360px;
  margin: 0 auto;
  padding: 0 50px;
}

#wrapper > header .logo {
  position: absolute;
  width: 250px;
  height: 25px;
  top: calc(50% - 12px);
}
#wrapper > header .logo a {
  display: block;
  height: 25px;
  font-size: 0;
}
#wrapper > header .logo a span {
  position: absolute;
  display: block;
  width: 25px;
  height: 25px;
  left: 0;
  top: 0;
  background: url(logo.svg) 0 0 no-repeat;
  background-size: 25px 25px;
}
#wrapper > header .logo a strong {
  position: absolute;
  display: block;
  width: 204px;
  height: 25px;
  left: 44px;
  top: 0;
  background: url(typo.svg) 0 50% no-repeat;
  background-size: 100% auto;
}


#wrapper > header nav {
  display: flex;
  width: 100%;
  justify-content: flex-end;
}
#wrapper > header nav > ul {
  display: flex;
  align-items: center;
  height: 56px;
}
#wrapper > header nav > ul > li {
  height: 56px;
}
#wrapper > header nav > ul > li > a {
  position: relative;
  display: flex;
  align-items: center;
  height: 56px;
}
#wrapper > header nav > ul > li + li {
  margin-left: 35px;
}
#wrapper > header .en a,
#wrapper > header .ja a {
  font-size: 14px;
}

#wrapper > header li div {
  position: absolute;
  width: 100vw;
  left: 0;
  top: 56px;
  background: rgba(30,30,30,0.8);
}
#wrapper > header li div ul {
  position: relative;
  padding: 25px 0 28px;
}
#wrapper > header li div ul a {
  color: #fff;
  cursor: pointer;
}
#wrapper > header li div li + li {
  margin-top: 18px;
}



#wrapper > header nav > ul > li > a::after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 3px;
  left: 0;
  bottom: 0;
  background: #1e1e1e;

  transform: scaleX(0);
  transition: all 300ms ease-out;
}

#wrapper > header li div {
  opacity: 0;
  visibility: hidden;
  transition: all 300ms ease-out;
}

#wrapper > header li div ul {
  transform: translateY(10px);
  transition: all 300ms ease-out;
}

#wrapper > header nav > ul > li:hover a::after {
  transform: scaleX(1);
}

/* サブメニュー */
#wrapper > header nav > ul li ul {
      display: none; /* 非表示 */
      position: absolute;
      top: 100%; /* 親メニューの真下 */
      list-style: none;
      margin: 0;
      padding: 0;
      min-width: 180px;
      z-index: 1000;
	line-height: 250%;
    }


#wrapper > header nav > ul li ul li a {
      padding: 15px 20px;
      white-space: nowrap; /* 長い文字でも折り返さない */
    }

#wrapper > header nav > ul li ul li a:hover {
      background: #fff;
    }

    /* ホバーでサブメニュー表示 */
#wrapper > header nav > ul li:hover ul {
      display: block;
		background: #fff;
    }

/*
#wrapper > header nav > ul > li:hover div {
  opacity: 1;
  visibility: visible;
}
#wrapper > header nav > ul > li:hover div ul {
  transform: translateY(0px);
}
*/
/*
#wrapper > header nav > ul > li.hover div {
  opacity: 1;
  visibility: visible;
}
#wrapper > header nav > ul > li.hover div ul {
  transform: translateY(0px);
}
#wrapper > header nav > ul > li.lock div {
  pointer-events: none;
}
#wrapper > header nav > ul > li.hide div,
#wrapper > header nav > ul > li.hide div ul {
  transition-delay: 50ms;
}
*/



body[class^="news"]		#wrapper > header nav > ul > li.news a::after,
body[class^="company"]	#wrapper > header nav > ul > li.company a::after,
body[class^="business"]	#wrapper > header nav > ul > li.business a::after,
body[class^="recruit"]	#wrapper > header nav > ul > li.recruit a::after,
body[class^="ir"]		#wrapper > header nav > ul > li.ir a::after,
body[class^="journal"]	#wrapper > header nav > ul > li.journal a::after,
body[class^="en-ir"]	#wrapper > header nav > ul > li.en-ir a::after,
body[class^="en-sustainability"]	#wrapper > header nav > ul > li.en-sustainability a::after {
  transform: scaleX(1);
  transition-duration: 0ms;
}



  



  .video-background {
    position: fixed;     /* スクロールしても背景固定 */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;   /* アスペクト比を保ったまま画面いっぱいに拡大 */
    z-index: -1;         /* コンテンツより背面に配置 */
  }


a.pdf .title::after {
  position: relative;
  display: inline-block;
  content: "";
  width: 18px;
  height: 18px;
  margin-left: 5px;
  top: -0.2em;
  background: url(../img/icon_pdf.svg) 0 0 no-repeat;
  background-size: 100% auto;
  vertical-align: bottom;
}




#wrapper > footer {
  position: relative;
  z-index: 10;
  padding: 54px 0 50px;
  background: #fff;
}
#wrapper > footer .inner {
  position: relative;
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%;
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 50px;
}

#wrapper > footer .logo {
  position: absolute;
  width: 166px;
  height: 91px;
  left: 0;
  top: 3px;
}
#wrapper > footer .logo a {
  display: block;
  height: 91px;
  background: url(logo_typo.svg) 0 0 no-repeat;
  background-size: 100% auto;

  font-size: 0;

}

#wrapper > footer nav {
  display: flex;
  justify-content: center;
  width: calc(100% - 290px);
  margin: 0 auto;
}
#wrapper > footer nav .menu {
  display: flex;
  justify-content: space-between;
  width: calc(100% - 140px);
}

#wrapper > footer .tool {
  position: absolute;
  right: 140px;
  top: 0;
}
#wrapper > footer .tool .english a {
  font-size: 14px;
}

#wrapper > footer .sns {
  width: 100%;
  margin: 100px 0 0;
}
#wrapper > footer .sns ul {
  display: flex;
  justify-content: center;
}
#wrapper > footer .sns li + li {
  margin-left: 24px;
}
#wrapper > footer .sns ul a {
  display: block;
  width: 34px;
  height: 34px;
  font-size: 0;
}
#wrapper > footer .sns ul .facebook a {
  background: url(../img/icon_facebook.svg) 0 0 no-repeat;
  background-size: 34px auto;
}
#wrapper > footer .sns ul .twitter a {
  background: url(../img/icon_x.svg) 0 0 no-repeat;
  background-size: 34px auto;
}
#wrapper > footer .sns ul .instagram a {
  background: url(icon_instagram.svg) 0 0 no-repeat;
  background-size: 34px auto;
}
#wrapper > footer .sns ul .threads a {
  background: url(../img/icon_threads.svg) 0 0 no-repeat;
  background-size: 34px auto;
}
#wrapper > footer .sns ul .note a {
  background: url(../img/icon_note.svg) 0 0 no-repeat;
  background-size: 34px auto;
}
#wrapper > footer .sns ul .youtube a {
  background: url(../img/icon_youtube.svg) 0 0 no-repeat;
  background-size: 34px auto;
}


#wrapper > footer .menu a {
  font-size: 14px;
}
#wrapper > footer .tool a {
  font-size: 14px;
}

#wrapper > footer .menu li + li {
  margin-top: 38px;
}

#wrapper > footer .copyright {
  width: 100%;
  margin: 54px 0 0;
  text-align: center;
  font-size: 12px;
  line-height: 1;
  letter-spacing: 1px;
}

#wrapper > main {
  padding: 56px 0 0;
  min-height: calc(100vh - 56px - 250px);
}

#wrapper > main section {
  box-sizing: border-box;
  max-width: 996px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 50px;
  padding-right: 50px;
}



@media (max-width:1189px) {
  #wrapper > header nav > ul > li > a {
    font-size: 14px;
  }
  #wrapper > header nav > ul > li + li {
    margin-left: 22px;
  }

  #wrapper > footer .inner {
    max-width: 980px;
    padding: 0 10px;
  }
}


#wrapper > header,
#wrapper > header nav > ul,
#wrapper > header nav > ul > li,
#wrapper > header nav > ul > li > a {
  height: 76px;
  transition: all 500ms ease-out;
	font-weight: bold;
}
#wrapper > header .logo a strong {
  transition: all 500ms ease-out;
}

body.scrolled #wrapper > header,
body.scrolled #wrapper > header nav > ul,
body.scrolled #wrapper > header nav > ul > li,
body.scrolled #wrapper > header nav > ul > li > a {
  height: 56px;
}
body.scrolled #wrapper > header .logo a strong {
  opacity: 0;
}






header.content {
  position: relative;
  box-sizing: border-box;
  max-width: 996px;
  height: 240px;
  margin: 110px auto 0;
  padding: 0 50px;
}
header.content h1 {
  font-size: 80px;
  font-weight: bold;
  letter-spacing: 8px;
  line-height: 96px;
}
header.content .ja {
  position: absolute;
  right: 50px;
  top: 125px;
  font-size: 20px;
  line-height: 1.4;
}
header.content .ja span {
  font-size: 14px;
}

header.content h1 span {
  display: none;
}


section.entries {
  margin-bottom: 100px;
}
section.entries.empty {
  margin-bottom: 0;
}
section.entries .no-entry {
  padding: 15px 0 0;
  font-size: 18px;
}

.entries ul {
  display: flex;
  flex-wrap: wrap;
}
.entries li {
  position: relative;
  width: calc((100% - 32px) / 3);
}
.entries li:nth-child(3n),
.entries li:nth-child(3n + 2) {
  margin-left: 16px;
}
.entries li:nth-child(n + 4) {
  margin-top: 30px;
}
.entries li a {
  position: relative;
  box-sizing: border-box;
  display: block;
  height: 100%;
  text-decoration: none;
  background: #fff;
  box-shadow: 0 5px 6px 0 rgba(0,0,0,0.1);
}
.entries li a .summary {
  padding: 13px 16px 34px;
}
.entries li figure img {
  width: 288px;
  height: 176px;
  object-fit: cover;
  object-position: center center;
}
.entries li .date {
  font-size: 13px;
  color: #646464;
}
.entries li .title {
  margin: 8px 0 0;
  line-height: 1.8125;
}
.entries li .category {
  position: absolute;
  left: 16px;
  bottom: 12px;
  font-size: 13px;
  color: #646464;
}
.slider-wrap {
  position: relative;
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
  padding-bottom: 50px; /* ←下にドット分のスペース */
}

.swiper {
  overflow: hidden;
}

.swiper-slide img {
  width: 100%;
  display: block;
}

.swiper-pagination {
  position: absolute;   /* ←固定位置に配置 */
  bottom: 10px;         /* スライダーの下端からの距離 */
  left: 0;
  width: 100%;
  text-align: center;
}

.swiper-pagination-bullet {
  background-color: #ccc;
  opacity: 1;
}
.swiper-pagination-bullet-active {
  background-color: #333;
}


.shop ul {
  display: flex;
  flex-wrap: wrap;
}
.shop li {
  position: relative;
  width: calc((100% - 32px) / 3);
}
.shop li:nth-child(3n),
.shop li:nth-child(3n + 2) {
  margin-left: 16px;
}
.shop li:nth-child(n + 4) {
  margin-top: 30px;
}
.shop li a {
  position: relative;
  box-sizing: border-box;
  display: block;
  height: 100%;
  text-decoration: none;
  background: #fff;
  box-shadow: 0 5px 6px 0 rgba(0,0,0,0.1);
}
.shop li a .summary {
  padding: 13px 16px 34px;
}
.shop li figure img {
          width: 250px;
        height: 40px;
  object-fit: cover;
  object-position: center center;
	padding: 10px 0;
}
.shop li .date {
  font-size: 13px;
  color: #646464;
}
.shop li .title {
  margin: 8px 0 0;
  line-height: 1.8125;
}
.shop li .category {
  position: absolute;
  left: 16px;
  bottom: 12px;
  font-size: 13px;
  color: #646464;
}


.product-grid{
display: grid;
gap: var(--gap);
grid-template-columns: repeat(3, 1fr);
max-width:1200px;
margin:0 auto;
}


/* カード共通 */
.product-card{
background:#fff;
padding:var(--card-padding);
box-shadow: 0 4px 12px rgba(0,0,0,0.05);
display:flex;
flex-direction: column; /* デフォルト：画像上・テキスト下 */
align-items: stretch;
	margin: 5px;
}


.product-media{
display:block;
width:100%;
	height: 100%;
aspect-ratio: var(--img-aspect);
overflow:hidden;
}


.product-media img{
width: 288px;
height: 176px;
object-fit:cover;
display:block;
}


.product-card-body{
display:flex;
flex-direction:column;
gap:8px;
}
	
.product-title{font-size:1.05rem; font-weight:700}
.product-excerpt{
        margin: 8px 0 0;
        line-height: 1.8125;
        padding: 13px 16px 34px;
}	
	

.entry-filter {
  position: relative;
  z-index: 10;
  margin: 0 0 38px;
}
.entry-filter > ul {
  display: flex;
  flex-wrap: wrap;
}
.entry-filter a {
  position: relative;
  display: inline-block;
  cursor: pointer;
  text-decoration: none;
}
.entry-filter .main li + li {
  margin-left: 50px;
}
.entry-filter .main a {
  font-size: 18px;
  color: #bbb;
}
.entry-filter .main .active a {
  color: #1e1e1e;
}
.entry-filter .main .active a::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 1px;
  left: 0;
  bottom: -5px;
  background: #1e1e1e;
}

.entry-filter * + .sub {
  margin-top: 33px;
}
.entry-filter .sub li {
  margin: 0 11px 12px 0;
}
.entry-filter .sub a {
  box-sizing: border-box;
  min-width: 68px;
  text-align: center;
  padding: 7px 14px;
  border: 1px solid #1e1e1e;
  border-radius: 20px;
}
.entry-filter .sub .active a  {
  color: #fff;
  background: #1e1e1e;
}

.entry-filter .year {
  position: relative;
  box-sizing: border-box;
  width: 304px;
  height: 40px;
  z-index: 15;
  border: 1px solid #1e1e1e;
}
.entry-filter .year > a {
  position: relative;
  display: block;
  height: 38px;
  line-height: 38px;
  text-align: center;
  padding-right: 44px;
}
html[lang="en"] .entry-filter .year > a {
  line-height: 41px;
}
.entry-filter .year > a.no-value {
  color: #8e8e8e;
}
.entry-filter .year > a::after {
  position: absolute;
  content: "";
  display: block;
  width: 44px;
  height: 38px;
  right: 0;
  top: 0;
  background: #1e1e1e url(../img/arrow_pulldown.svg) 54% 54% no-repeat;
  background-size: 16px auto;
}
.entry-filter .year > a.opened::after {
  transform: scaleY(-1);
}


.entry-filter .year .pulldown {
  position: absolute;
  left: -1px;
  width: calc(100% - 42px);

  overflow: hidden;
  height: 0;
  transition: all 300ms ease-out;
}
.entry-filter .year .pulldown ul {
  padding: 10px 0;
  background: #fff;
  border: 1px solid #1e1e1e;
}
.entry-filter .pulldown a {
  display: block;
  padding: 12px;
  font-size: 16px;
  text-align: center;
  transition: all 100ms ease-out;
}
.entry-filter .pulldown a.selected,
.entry-filter .pulldown a:hover {
  color: #fff !important;
  background: #1e1e1e;
}



.related-link {
  text-align: right;
}
.related-link a {
  text-decoration: underline;
}
.entry-filter + .related-link {
  margin: -30px 0 45px;
}



.entry {
  width: 700px;
  margin: 90px auto 0;
  line-height: 1.6;
}
.entry .entry-title {
  justify-content: space-between;
  margin: 0 0 60px;
}
.entry-body .thumbnail img {
  width: 100%;
  height: auto;
}
.entry-content img {
  max-width: 100%;
  height: auto;
}

.entry .category {
  margin: 10px 0 0;
}
.entry .category span,
.entry .category a {
  display: inline-block;
  padding: 7px 14px;
  color: #fff;
  border: 1px solid #1e1e1e;
  border-radius: 20px;
  background: #1e1e1e;
  text-decoration: none;
}

.entry .subtitle {
  margin: 15px 0 0;
  font-size: 16px;
  line-height: 1.5;
}

.entry .title-extra {
  display: flex;
  justify-content: space-between;
  margin: 15px 0 0;
}

.entry .entry-title .date {
  margin: 0 0 15px;
  font-size: 16px;
}
.entry .entry-title h1 {
  margin: 25px 0 0;
  font-size: 22px;
  line-height: 1.5;
}
.entry .authors {
  width: calc(100% - 100px);
  font-size: 16px;
  line-height: 1.8;
}

.entry-body p {
  font-size: 16px;
  line-height: 1.9;
}
.entry-body p + p {
  margin-top: 25px;
}

/*
.entry-body p[style*="text-align"] {
  text-align: left !important;
  font-size: 14px;
}
*/

.entry-body figure {
  margin-bottom: 25px;
}
.entry-body figure figcaption {
  margin: 5px 0 0;
  font-size: 14px;

  line-height: 1.6;
  color: #646464;
}
.entry-body .img-2col {
  display: flex;
}
.entry-body .img-2col figure {
  flex: 1;
}
.entry-body .img-2col figure:nth-child(2n) {
  padding-left: 24px;
}

.entry-body p[style*="text-align"] img {
  margin-bottom: 15px;
}

.entry-body .lead-paragraph {
  font-size: 16px;
  line-height: 1.9;
}

.entry-body h1 {
  margin: 32px 0 16px;
  font-size: 26px;
  line-height: 1.6;
}
.entry-body h2 {
  margin: 32px 0 16px;
  font-size: 22px;
  line-height: 1.6;
}

.entry-body h3 {
  margin: 32px 0 16px;
  font-size: 18px;
  line-height: 1.6;
}
.entry-body h4 {
  margin: 32px 0 16px;
  font-size: 16px;
  line-height: 1.8;
}

.entry-content {
  margin-top: 25px;
}
.entry-body img[class*="wp-"] {
  margin: 10px 0;
}

.entry-body img {
  max-width: 100%;
  height: auto;
}
.entry-body .thumbnail img {
  margin: 0 0 15px;
}
.entry-body .image-wrapper img {
  margin: 15px 0;
}

.entry-body h2 + p span img,
.entry-body h3 + p span img {
  margin-top: 0 !important;
}


.entry-body img + span {
  display: inline-block;
  margin-top: 10px;
}

.entry-body iframe {
  margin: 12px 0;
}

.entry-body .card {
  display: flex;
  margin: 24px 0;
  border: 1px solid #000;
}
.entry-body .card a {
  width: 100%;
}
.entry-body .card-link {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  text-decoration: none;
}
.entry-body .card-link:hover {
    opacity: 0.5;

}
.entry-body .card-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex-grow: 1;
  padding: 24px 24px 24px 32px;
}
.entry-body .card-title {
  font-size: 16px;
  font-weight: bold;
  color: #000;
  display: -webkit-box;
	-webkit-box-orient: vertical;
	overflow: hidden;
  -webkit-line-clamp: 2;
}
.entry-body .card-domain {
  margin: 16px 0 0;
  font-family: "Hiragino UD Sans W4 JIS2004", sans-serif;
  font-size: 13px;
  color: #646464;
}
.entry-body .card-image {
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  flex-shrink: 0;
  width: 200px;
  height: 140px;
  background-color: #f0f0f0;
}
.entry-body .card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.entry-body .simple-table {
  margin: 32px 0;
}
.entry-body .simple-table table {
  border-collapse: collapse;
  text-align: left;
}
.entry-body .simple-table th {
  padding: 10px;
  white-space: nowrap;
}
.entry-body .simple-table td {
  padding: 10px;
  font-family: "Hiragino UD Sans W4 JIS2004", sans-serif;
}

.entry-body blockquote,
.entry-body q {
  margin: 32px 0;
  padding-left: 16px;
  border-left: 1px #000 solid;
  color: #646464;
}

.entry-body ul.dot-list,
.entry-body ol.number-list {
  margin: 32px 0;
  font-family: "Hiragino UD Sans W4 JIS2004", sans-serif;
}
.entry-body ul.dot-list li {
  list-style: disc;
  margin-left: 20px;
  padding-top: 8px;
}
.entry-body ul.dot-list li:first-child {
  padding-top: 0;
}
.entry-body ol.number-list li {
  list-style: decimal;
  margin-left: 20px;
  padding-top: 8px;
}
.entry-body ol.number-list li:first-child {
  padding-top: 0;
}

.entry .sns {
  display: flex;
  justify-content: flex-end;
}
.entry .sns ul {
  display: flex;
}
.entry .sns li + li {
  margin-left: 10px;
}
.entry .sns ul a {
  display: block;
  width: 34px;
  height: 34px;
  font-size: 0;
}
.entry .sns ul .facebook a {
  background: url(../img/icon_facebook.svg) 0 0 no-repeat;
  background-size: 34px auto;
}
.entry .sns ul .twitter a {
  background: url(../img/icon_x.svg) 0 0 no-repeat;
  background-size: 34px auto;
}

.entry .entry-title .sns {
}
.entry .entry-content + .sns {
  margin-top: 45px;
}




.entry-links {
  box-sizing: border-box;
  max-width: 996px;
  margin-left: auto;
  margin-right: auto;
  margin-top: 70px;
  padding-left: 50px;
  padding-right: 50px;
}
.entry-links h3 {
  padding: 0 0 18px;
  font-size: 18px;
  font-weight: normal;
  border-bottom: 1px solid #1e1e1e;
}
.entry-links ul {
  margin: 50px 0 0;
}
.entry-links > div + div {
  margin-top: 80px;
}

.page-nav {
  box-sizing: border-box;
  max-width: 996px;
  margin-left: auto;
  margin-right: auto;
  margin-top: 90px;
  margin-bottom: 42px;
  padding-left: 50px;
  padding-right: 50px;
}
.page-nav a {
  position: relative;
  min-height: 32px;
  display: flex;
  align-items: center;
  text-decoration: none;
  padding-left: 42px;
}
.page-nav a::before {
  position: absolute;
  content: "";
  display: block;
  width: 32px;
  height: 32px;
  left: 0;
  top: 0;
  border-radius: 16px;
  background: #1e1e1e url(../img/arrow_return.svg) 48% 50% no-repeat;
  background-size: 11px auto;
}




.entry .profile {
  margin: 90px 0 75px;
}
.entry .profile h5 {
  margin: 0 0 26px;
  padding: 0 0 15px;
  font-size: 18px;
  letter-spacing: 1.5px;
  border-bottom: 1px solid #1e1e1e;
}
.entry .profile .content {
  display: flex;
  justify-content: space-between;
}
.entry .profile article {
  width: 342px;
}
.entry .profile figure {
  width: 282px;
}
.entry .profile .position {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.7;
}
.entry .profile .name {
  font-size: 18px;
}
.entry .profile .detail {
  margin: 25px 0 0;
  font-size: 16px;
  line-height: 1.9;
}






.entry-pager {
  margin: 0 0 150px;
}
.entry-pager .nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
}
.entry-pager .nav-links > * {
  margin: 0 6px;
}
.entry-pager .nav-links br {
  display: none;
}
.entry-pager a.page-numbers {
  display: inline-block;
  width: 38px;
  height: 38px;
  line-height: 40px;
  text-decoration: none;
  text-align: center;
}
.entry-pager span.page-numbers:not(.dots) {
  display: inline-flex;
  width: 38px;
  height: 38px;
  color: #fff;
  font-size: 16px;
  line-height: 40px;
  justify-content: center;
  background: #1e1e1e;
  border-radius: 20px;
  text-decoration: none;
}
.entry-pager span.page-numbers.dots {
  margin: 0;
}

.entry-pager .prev,
.entry-pager .next {
  display: inline-block;
  width: 38px;
  height: 38px;
  font-size: 0;
}
.entry-pager .prev {
  background: url(../img/pager_prev.svg) 50% 50% no-repeat;
  background-size: 9px auto;
}
.entry-pager .next {
  background: url(../img/pager_next.svg) 50% 50% no-repeat;
  background-size: 9px auto;
}
.entry-pager span.prev,
.entry-pager span.next {
  opacity: 0.3;
}




/* MODULE */

.accordion .content {
  transition: all 400ms ease-out;
  overflow: hidden;
}
.accordion nav {
  margin: 10px 0 0;
}
.accordion nav a {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 31px;
  padding-left: 42px;
  cursor: pointer;
  transition: all 300ms ease-out;
}
.accordion nav a::before {
  position: absolute;
  content: "";
  display: block;
  width: 31px;
  height: 31px;
  left: 0;
  top: 0;
  border-radius: 16px;
  background: #1e1e1e url(../img/icon_plus.svg) 50% 50% no-repeat;
  background-size: 15px auto;
  transition: all 300ms ease-out;
}

.accordion.opened nav a {
  color: rgba(30,30,30,0);
}
.accordion.opened nav a::before {
  transform: rotate(45deg);
}


.full-section img {
  width: 100%;
  height: auto;
}
.full-section dl {
  margin: 28px 0 0;
}
.full-section dt {
  font-size: 18px;
  line-height: 1.6;
}
.full-section dd {
  margin: 12px 0 0;
  font-size: 16px;
  line-height: 1.8;
}
.full-section dd + dd {
  margin-top: 1.8em;
}






.module-a {
  line-height: 1.6;
}
.module-a header {
  padding: 0 0 10px;
  margin: 0 0 25px;
  border-bottom: 1px solid #1e1e1e;
}
.module-a h2 {
  font-size: 60px;
  letter-spacing: 7px;
  line-height: 1;
}
.module-a .ja {
  margin: 0 0 0;
  text-align: right;
  font-size: 18px;
  line-height: 1.4;
}

.module-a header + .content {
}

.module-a h3 {
  margin: 0 0 30px;
  font-size: 32px;
}
.module-a article {
}
.module-a article p {
  line-height: 1.8;
}

.module-a article p span{
	display: inline-block;
	width:7em;
}
.module-a article p + p {
  margin-top: 1.8em;
}
.module-a article p + p.notice {
  margin-top: 1.0em;
}
.module-a .content.has-image {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.module-a .content.has-image article {
  width: 380px;
}
.module-a .content.has-image figure {
  width: 450px;
}
.module-a figure img {
  width: 100%;
  height: auto;
}
.module-a figure span img {
  width: 40%;
  height: auto;
}

.module-a .leading {
  margin: 0 0 10px;
  font-size: 14px;
}
.module-a .caption {
  margin: 0 0 15px;
  font-size: 18px;
font-weight: bold;
}

.module-a .content > p {
  display: none;
}



.module-b {
  line-height: 1.6;
}
.module-b header {
  padding: 0 0 10px;
  margin: 0 0 25px;
  border-bottom: 1px solid #1e1e1e;
}
.module-b h2 {
  font-size: 18px;
}

.module-b ul {
  display: flex;
}
.module-b li {
  width: calc((100% - 50px) / 3);
}
.module-b li:nth-child(3n),
.module-b li:nth-child(3n + 2) {
  margin-left: 25px;
}
.module-b figure img {
  width: 100%;
  height: auto;
}

.module-b dl {
  margin: 15px 0 0;
}
.module-b dt {
  font-size: 18px;
}
.module-b dd {
  margin: 12px 0 0;
  line-height: 1.8;
}

.module-b .name dt {
  font-size: 16px;
}
.module-b .name dd {
  margin: 4px 0 0;
  font-size: 16px;
}


.module-b .member dt {
  font-size: 16px;
}
.module-b .member dt + dd {
  margin: 2px 0 0;
  font-size: 18px;
}
.module-b .member dd + dd {
  margin: 10px 0 0;
  font-size: 16px;
  line-height: 1.8;
}




.module-b ul.col2 {
  flex-wrap: wrap;
}
.module-b ul.col2 li {
  width: calc((100% - 16px) / 2);
}
.module-b ul.col2 li:nth-child(3n),
.module-b ul.col2 li:nth-child(3n + 2) {
  margin-left: 0;
}
.module-b ul.col2 li:nth-child(2n) {
  margin-left: 16px;
}
.module-b ul.col2 li:nth-child(n + 3) {
  margin-top: 16px;
}



.module-c {
  line-height: 1.6;
}
.module-c header {
  padding: 0 0 10px;
  margin: 0 0 25px;
  border-bottom: 1px solid #1e1e1e;
}
.module-c header.none-b {
  margin-bottom: 20px;
  padding-bottom: 0;
  border-bottom: none;
}
.module-c h2 {
  font-size: 18px;
}
.module-c figure img {
  width: 100%;
  height: auto;
}
.module-c .content {
  display: flex;
  justify-content: space-between;
}
.module-c article {
  width: 380px;
}
.module-c figure {
  width: 450px;
}
.module-c article p {
  line-height: 1.8;
}
.module-c article p + p {
  margin-top: 1.8em;
}
.module-c .content > p {
  display: none;
}


.module-c nav {
  margin: 20px 0 0;
}





.module-c figure {
  padding-bottom: 20px;
}
.module-c figure .slick-arrow {
  position: absolute;
  width: 40px;
  height: 40px;
  top: calc(50% - 20px);
  z-index: 50;
  font-size: 0;
  border: none;
  cursor: pointer;
}
.module-c figure .slick-arrow.slick-disabled {
  opacity: 0.3;
}
.module-c figure .slick-prev {
  left: 0;
  background: url(../img/arrow_prev_small.svg) 40% 50% no-repeat;
  background-size: 14px auto;
}
.module-c figure .slick-next {
  right: 0;
  background: url(../img/arrow_next_small.svg) right 40% top 50% no-repeat;
  background-size: 14px auto;
}
.module-c figure .slick-dots {
  position: absolute;
  display: flex;
  justify-content: flex-end;
  width: 100%;
  height: 20px;
  left: 0;
  bottom: -20px;
}
.module-c figure .slick-dots li + li {
  margin-left: 4px;
}
.module-c figure .slick-dots button {
  position: relative;
  display: block;
  width: 42px;
  height: 20px;
  font-size: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}
.module-c figure .slick-dots button::after {
  position: absolute;
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  left: 0;
  top: 50%;
  background: #8c8c8c;
}
.module-c figure .slick-dots button::before {
  position: absolute;
  content: "";
  display: block;
  width: 100%;
  height: 3px;
  left: 0;
  top: calc(50% - 1px);
  background: #8c8c8c;

  transform-origin: left top;
  transform: scaleX(0);
  transition: all 300ms ease-out;
}
.module-c figure .slick-dots .slick-active button::before {
  transform: scaleX(1);
}




.module-d {
  line-height: 1.6;
}
.module-d header {
  margin: 0 0 20px;
}
.module-d h1.section-head {
  font-size: 20px;
}
.module-d h2 {
  font-size: 18px;
}
.module-d h3 {
  font-size: 16px;
}
.module-d .content p {
  line-height: 1.8;
}
.module-d .content p + p {
  margin-top: 1.8em;
}
.module-d nav {
  margin: 20px 0 0;
}
.module-d .content.has-image {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.module-d .content.has-image article {
  width: 746px;
}
.module-d .content.has-image figure {
  width: 100px;
}











.module-list-a ul {
  border-top: 1px solid #1e1e1e;
}
.module-list-a li {
  border-bottom: 1px solid #1e1e1e;
}
.module-list-a li a {
  position: relative;
  display: block;
  padding: 28px 0 26px;
  text-decoration: none;
}
.module-list-a li h2 {
  font-size: 60px;
  letter-spacing: 7px;
}
.module-list-a li h2 span {
  display: none;
}
.module-list-a li .ja {
  margin: 18px 0 0;
  font-size: 16px;
}
.module-list-a li p,
.module-list-a li br {
  display: none;
}
.module-list-a a::before {
  position: absolute;
  content: "";
  display: block;
  width: 32px;
  height: 32px;
  right: 20px;
  top: calc(50% - 16px);
  z-index: 20;
  border-radius: 18px;
  background: #1e1e1e url(arrow_go.svg) 55% 50% no-repeat;
  background-size: 11px auto;
}



body.brandsolution .module-summary-list {
  margin: 100px 0 0;
}

.module-summary-list {
  line-height: 1.6;
}
.module-summary-list h2 {
  padding: 0 0 10px;
  font-size: 18px;
}
.module-summary-list ul {
  border-top: 1px solid #1e1e1e;
}
.module-summary-list li {
  border-bottom: 1px solid #1e1e1e;
}
.module-summary-list li > p {
  display: none;
}
.module-summary-list .annual-schedule-list li,
.module-summary-list li a {
  display: flex;
  align-items: center;
  padding: 12px 0;
  line-height: 1.6;
  text-decoration: none;
}
.module-summary-list .date {
  position: relative;
  font-size: 16px;
  top: 2px;
}
.module-summary-list .title {
  font-size: 16px;
}
.module-summary-list .category {
  font-size: 14px;
}
.module-summary-list .category span,
.module-summary-list .category a {
  display: inline-block;
  box-sizing: border-box;
  min-width: 102px;
  padding: 4px 12px;
  color: #fff;
  text-align: center;
  background: #1e1e1e;
  border-radius: 20px;
  text-decoration: none;
}
.module-summary-list p {
  display: none;
}


.module-summary-list:not(.has-category) .date {
  width: 130px;
}
.module-summary-list:not(.has-category) .title {
  width: calc(100% - 130px);
}



.module-summary-list.has-category .date {
  width: 130px;
}
.module-summary-list.has-category .category {
  width: 150px;
}
.module-summary-list.has-category .title {
  width: calc(100% - 280px);
}


.module-summary-list.no-date .title {
  width: 100% !important;
}


.module-summary-list .note {
  margin: 25px 0 0;
}

.module-summary-list nav {
  margin: 30px 0 0;
}


.module-summary-list.calendar h2 {
  border-bottom: 1px solid #1e1e1e;
}
.module-summary-list.calendar ul,
.module-summary-list.calendar li {
  border: none;
}
.module-summary-list.calendar ul {
  margin-top: 40px;
}

.module-summary-list.calendar .date {
  width: 260px;
  position: relative;
}
.module-summary-list.calendar .title {
  width: calc(100% - 260px);
}
.module-summary-list.calendar .date::after {
  position: absolute;
  content: "";
  display: block;
  width: 150px;
  height: 1px;
  right: 20px;
  top: calc(50% - 2px);
  background: #1e1e1e;
}


.module-summary-list.calendar.mini h2 {
  border-bottom: none;
}
.module-summary-list.calendar.mini ul {
  margin-top: 0;
}
.module-summary-list.calendar li a {
  padding-top: 10px;
  padding-bottom: 10px;
}


.module-summary-list + .entry-pager {
  margin-top: 80px;
}


.text-list {
  margin-top: 1.8em;
  padding-left: 18px;
}
.text-list li {
  line-height: 1.8;
  list-style: circle;
  font-family: "Hiragino UD Sans W4 JIS2004", sans-serif;
}
.text-list li.indent {
  margin-left: 30px;
}
.text-list li span {
  font-family: "Hiragino UD Sans W6 JIS2004", sans-serif;
}
.text-list li + li {
  margin-top: 8px;
}


.note {
  font-size: 14px;
  line-height: 1.6;
  font-family: "Hiragino UD Sans W4 JIS2004", sans-serif;
  color: #999;
}



.dlist-multi dl {
  display: flex;
  line-height: 1.8;
}
.dlist-multi dl + dl {
  margin-top: 30px;
}
.dlist-multi dt {
  width: 228px;
}
.dlist-multi dd {
  width: calc(100% - 228px);
}


  .hojin_button a {
        display: inline-block;
        padding: 10px 28px;
        font-size: 16px;
        text-decoration: none;
        border: 1px solid #1e1e1e;
        border-radius: 2px;
        cursor: pointer;
        transition: all 300ms 
ease-out;
    }
    .hojin_button a span {
        position: relative;
        display: inline-block;
        top: 1px;
        margin-left: 7px;
    }
	    .hojin_button a span svg {
        width: 15px;
        height: 15px;
    }



.top-section {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 0 0 100px;
  line-height: 1.6;
}
.top-section .primary {
  width: 380px;
}
.top-section .secondary {
  width: 450px;
}
.top-section .secondary img {
  width: 100%;
  height: auto;
}
.top-section .secondary.mini {
  text-align: right;
}
.top-section .secondary.mini img {
  width: 300px;
}
.top-section .leading {
  margin: 0 0 20px;
}
.top-section h2 {
  margin: 0 0 15px;
  font-size: 18px;
  line-height: 1.6;
}
.top-section p {
  line-height: 1.8;
}
.top-section p + p {
  margin-top: 1.8em;
}
.top-section .accordion .content {
  height: calc(1.8em * 7);
}

.top-section .sign {
  margin-top: 18px;
}





.intro-mini h2 {
  font-size: 18px;
  line-height: 1.5;
}
.intro-mini article {
  margin: 20px 0 0;
}
.intro-mini article p {
  font-size: 16px;
  line-height: 1.8;
}



/*staff*/

	.staff_container {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 3列 */
  gap: 20px; /* 余白 */
  max-width: 1000px;
  margin: 0 auto;
	justify-content: center; 
}

.staff_box {
  background: #f2f2f2;
  text-align: center;
  font-size: 1.2em;
  border-radius: 8px;
}

/* --- 2段目は2件だけ中央寄せにしたい場合 --- */
.staff_box:nth-child(4),
.staff_box:nth-child(5) {
  grid-column: span 1;
}

/* 5番目と6番目の位置を調整（中央寄せ） */
.staff_container::after {
  content: "";
  grid-column: 2 / 3; /* 真ん中の列にダミーを入れる */
}

.staff_box figure{
	position: relative;
}
.staff_box p{
        text-align: left;
        font-size: 16px;
        line-height: 1.5;
        margin: 12px;
        font-weight: bold;
}

.staff_box span{
	font-size: 13px;
	font-weight: normal;
}
.nyusya{
	z-index: 2;
    position: absolute;
    top: -5px;
    right: 0;
    padding: 5px 10px;
    background: #EFEFEF;
    font-size: 1.1rem;
    font-weight: bold;
}

.staff_main-left{
	position: relative;
}


.catch-left1{
	 position: absolute;
        top: 130px;
        right: 140px;
	 font-size: 36px;
     line-height: 3.5rem;
     background-color: #ffffff;
    padding: 10px 20px;
	opacity: 0.8;

}
.catch-left2{
	 position: absolute;
        top: 220px;
        right: 80px;
	 font-size: 36px;
     line-height: 3.5rem;
     background-color: #ffffff;
     padding: 10px 20px;
	opacity: 0.8;

}

.catch-right1{
	 position: absolute;
        top: 70px;
        left: 70px;
	 font-size: 36px;
     line-height: 3.5rem;
     background-color: #ffffff;
    padding: 10px 20px;
	opacity: 0.8;

}
.catch-right2{
	 position: absolute;
        top: 160px;
        left: 70px;
	 font-size: 36px;
     line-height: 3.5rem;
     background-color: #ffffff;
     padding: 10px 20px;
	opacity: 0.8;

}

.profile-left{
z-index: 100;
        position: absolute;
        bottom: -30px;
        right: 90px;
        background-color: black;
        opacity: 0.8;
        padding: 30px;
        color: #ffffff;
        font-size: 18px;
        line-height: 2rem;
	
}

.profile-right{
z-index: 100;
        position: absolute;
        bottom: -30px;
        left: 90px;
        background-color: black;
        opacity: 0.8;
        padding: 30px;
        color: #ffffff;
        font-size: 18px;
        line-height: 2rem;
	
}
.profile-left .profile-right span{
	font-size: 1.5rem;
}


section.faq {
}
section.faq .faq-item {
  line-height: 1.8;
  border-top: 1px solid #1e1e1e;
}
section.faq .faq-item:last-child {
  border-bottom: 1px solid #1e1e1e;
}

section.faq dt a {
  position: relative;
  display: block;
  cursor: pointer;
  padding: 15px 60px 15px 24px;
}
section.faq dd .faq-inner {
  position: relative;
  padding: 5px 0 15px 24px;
}
section.faq dd .faq-inner p + p {
  margin-top: 1.8em;
}
section.faq dd {
  overflow: hidden;
  height: 0;
  transition: all 400ms ease-out;
}


section.faq dt a::before {
  position: absolute;
  display: block;
  content: "Q.";
  left: 0;
  top: 16px;
}
section.faq dd .faq-inner::before {
  position: absolute;
  display: block;
  content: "A.";
  left: 0;
  top: 6px;
}

section.faq dt a::after {
  position: absolute;
  content: "";
  display: block;
  width: 31px;
  height: 31px;
  right: 20px;
  top: calc(50% - 16px);
  border-radius: 16px;
  background: #1e1e1e url(../img/icon_plus.svg) 50% 50% no-repeat;
  background-size: 15px auto;
  transition: all 300ms ease-out;
}


section.faq .opened dt a::after {
  transform: rotate(45deg);
}








dl.dlist {
  line-height: 1.8;
}
dl.dlist dd {
  margin: 12px 0 0;
}
table.simple th {
  text-align: left;
}
table.simple * + th,
table.simple * + td {
  padding-left: 2em;
}
table.simple thead + tbody tr:nth-child(1) td,
table.simple tbody tr + tr td {
  padding-top: 1em;
}







/* BUTTON, HOVER */

a.button {
  display: inline-block;
padding: 20px 38px;
        font-size: 22px;
  text-decoration: none;
  border: 1px solid #1e1e1e;
  border-radius: 2px;
  cursor: pointer;
  transition: all 300ms ease-out;
}
a.button:hover {
  color: #fff;
  background-color: #1e1e1e;
}

a.external {
  display: inline-block;
  padding-right: 20px;
  text-decoration: underline;
  background: url(../img/icon_external.svg) 100% 40% no-repeat;
  background-size: 15px auto;
  cursor: pointer;
  transition: all 300ms ease-out;
}
a.external:hover {
  opacity: 0.5;
}


.entries li a {
  transition: all 300ms ease-out;
}
.entries li a:hover {
  opacity: 0.5;
}


#wrapper > header nav li div a {
  counter-increment: pointer;
  transition: all 300ms ease-out;
}
#wrapper > header nav li div a:hover {
  opacity: 0.5;
}


#wrapper > footer a {
  counter-increment: pointer;
  transition: all 300ms ease-out;
}
#wrapper > footer a:hover {
  opacity: 0.5;
}



.module-list-a a::after {
  position: absolute;
  display: block;
  content: "";
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  z-index: 1;
  background: #1e1e1e;

  transform-origin: left top;
  opacity: 0;
  transform: scaleX(0);
  transition: all 300ms ease-out;
}
.module-list-a a:hover::after {
  opacity: 1;
  transform: scaleX(1);
}

.module-list-a a > h2,
.module-list-a a > div {
  position: relative;
  z-index: 2;
  transition: all 300ms ease-out;
}
.module-list-a a:hover > h2,
.module-list-a a:hover > div {
  color: #fff;
  transform: translateX(35px);
}



.entry .sns a {
  cursor: pointer;
  transition: all 300ms ease-out;
}
.entry .sns a:hover {
  opacity: 0.5;
}

.entry-filter .sub a {
  cursor: pointer;
  transition: all 300ms ease-out;
}
.entry-filter .sub a:hover {
  opacity: 0.5;
}


.related-link a {
  cursor: pointer;
  transition: all 300ms ease-out;
}
.related-link a:hover {
  opacity: 0.5;
}


.entry-filter li:not(.active) a {
  transition: all 300ms ease-out;
}
.entry-filter li:not(.active) a:hover {
  color: #1e1e1e;
}


.module-summary-list li a {
  cursor: pointer;
  transition: all 300ms ease-out;
}
.module-summary-list li a:hover {
  opacity: 0.5;
}




.related.company li a {
  transition: all 300ms ease-out;
}
.related.company li a:hover {
  color: #3c3c3c;
  background: #fff;
}


.related.ir li a {
  transition: all 300ms ease-out;
}
.related.ir li a:hover {
  opacity: 0.5;
}


.related.brand li a {
  transition: all 300ms ease-out;
}
.related.brand li a:hover {
  opacity: 0.5;
}


section.faq dt a {
  transition: all 300ms ease-out;
}
section.faq dt a:hover {
  opacity: 0.5;
}





/* TOP */

#kv {
  position: relative;
  height: calc(100vh - 56px);
  height: calc(var(--doc-height) - 56px);
  overflow: hidden;
}
#kv .content {
  position: absolute;
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  z-index: 10;
}
#kv .bg {
  position: fixed;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  z-index: 1;
}
#kv .bg img {
  width: 100%;
  height: 100%;
  height: calc(var(--doc-height));
  object-fit: cover;
}

#kv .content > .inner {
  box-sizing: border-box;
  width: 100%;
  max-width: 750px;
  margin: 0 auto;
  padding: 0 50px;
	padding-top: 200px;
}
#kv dl {
  width: 100%;
}
#kv dt {
  width: 700px;
  height: 324px;
  font-size: 0;
  background: url(copy.png) 0 0 no-repeat;
  background-size:700px auto;
}
#kv dd {
  width: 460px;
  margin: 40px 0 0;
  font-size: 16px;
  line-height: 1.9;
}

#kv nav {
  margin: 30px 0 0;
}

#kv .scroll {
  position: absolute;
  width: 100%;
  left: 0;
  bottom: 30px;
  z-index: 50;
}
#kv .scroll > .inner {
  box-sizing: border-box;
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 50px;
}
#kv .scroll a {
  display: block;
  width: 60px;
  height: 31px;
  font-size: 12px;
  text-align: center;
  letter-spacing: 1px;
  white-space: nowrap;
  background: url(../img/arrow_scroll.svg) 50% 100% no-repeat;
  background-size: 18px auto;
  cursor: pointer;
}





body.home .top-content,
body.en .top-content {
  position: relative;
  z-index: 10;
  padding: 115px 0 0;
  background: #fafafa;
}
body.en .top-content {
  padding-bottom: 115px;
}



body.home .news-summary {
  margin-bottom: 160px !important;
}
.news-summary header {
  padding: 0 0 15px;
  margin: 0 0 50px;
  border-bottom: 1px solid #1e1e1e;
}
.news-summary h2 {
  font-size: 60px;
  letter-spacing: 7px;
}
.news-summary .ja {
  margin: 10px 0 0;
  text-align: right;
  font-size: 18px;
}

.news-summary nav {
  margin: 50px 0 0;
}

body.ir .news-summary h2 {
  font-size: 18px;
  letter-spacing: initial;
}




body.home .module-a nav {
  margin: 65px 0 0;
}



body.home .module-list-a {
  margin: 100px 0 0;
  padding: 0 0 150px;
}







/*　COMPANY　*/

body.company .full-section {
  margin-bottom: 140px;
}
body.company .module-a + .module-a {
  margin-top: 100px;
}
body[class*="company"] .module-list-a {
  margin: 80px 0 150px;
}

body.company .top-section .accordion .content {
  overflow: visible;
  height: auto;
}
body.company .top-section .accordion nav {
  display: none;
}


.related.company {
  margin: 150px 0 0;
  padding: 80px 0;
  background: #3c3c3c;
}
.related.company .inner {
  box-sizing: border-box;
  max-width: 996px;
  margin: 0 auto;
  padding: 0 50px;
}
.related.company dt {
  padding: 0 0 18px;
  color: #fff;
  font-size: 18px;
  border-bottom: 1px solid #fff;
}
.related.company dd {
  margin: 50px 0 0;
}
.related.company ul {
  display: flex;
}
.related.company li + li {
  margin-left: 20px;
}
.related.company li a {
  display: flex;
  box-sizing: border-box;
  width: 250px;
  height: 40px;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  border: 1px solid #fff;
  border-radius: 2px;
}





.company-basic dl {
  display: flex;
  line-height: 1.8;
}
.company-basic dt {
  width: 152px;
}
.company-basic dd {
  width: calc(100% - 152px);
}
.company-basic dl + dl {
  margin-top: 25px;
}

body.company-profile .module-b {
  margin-top: 100px;
}
body.company-profile .module-b + .module-b {
  margin-top: 80px;
}








.history-list .inner {
  position: relative;
}
.history-list .inner::before {
  content: "";
  position: absolute;
  display: block;
  width: 1px;
  height: calc(100% - 8px);
  background: #1e1e1e;
  left: 162px;
  top: 8px;
}
.history-list .inner > dl {
  position: relative;
  display: flex;
  padding: 0 0 80px;
}
.history-list .inner > dl:last-of-type {
  padding-bottom: 0;
}
.history-list .inner > dl::before {
  position: absolute;
  content: "";
  display: block;
  width: 23px;
  height: 23px;
  left: calc(162px - 11px);
  top: 8px;
  border-radius: 12px;
  background: #1e1e1e;
  box-shadow: 0 4px 5px 0 rgba(0,0,0,0.15);
}

.history-list .inner > dl > dt {
  width: 165px;
  font-size: 45px;
}
.history-list .inner > dl > dd {
  box-sizing: border-box;
  width: calc(100% - 165px);
  padding: 0 0 0 64px;
}

.history-list .inner dd dl + dl {
  margin-top: 35px;
}
.history-list .inner dd dt {
  margin: 0 0 10px;
  font-size: 24px;
  line-height: 1.6;
}
.history-list .inner dd dd {
  font-size: 18px;
  line-height: 1.8;
}
.history-list .inner dd dd + dd {
  margin-top: 5px;
}
.history-list .inner dd nav {
  margin: 32px 0 0;
}
.history-list .inner dd nav br {
  display: none;
}





/* BUSINESS */

body.business main {
  margin-bottom: 150px;
}

body.business .top-section .secondary .leading,
body.business .top-section .secondary h2 {
  display: none;
}
body.business .top-section .accordion .content {
  height: calc(1.8 * 10em);
}

body.business .top-section .accordion .content h3 {
  font-size: 16px;
  line-height: 1.8;
  margin: 1.8em 0;
}


body.business .module-c {
  margin-top: 100px;
}
body.business .module-c + .module-c {
  margin-top: 80px;
}
body.business .module-c + .full-section {
  margin-top: 100px;
}

body.business .module-c .place-holder {
  display: none;
}
body.business .module-c figure * {
  outline: none;
}



/* IR */

.related.ir {
  margin: 150px 0 0;
  padding: 50px 0;
  background: #3c3c3c;
}
.related.ir .inner {
  box-sizing: border-box;
  display: flex;
  justify-content: space-between;
  max-width: 996px;
  margin: 0 auto;
  padding: 0 50px;
}
.related.ir dl {
  width: calc((100% - 150px) / 3);
}
.related.ir dt {
  padding: 0 0 18px;
  color: #fff;
  font-size: 18px;
  border-bottom: 1px solid #fff;
}
.related.ir li {
  margin-top: 20px;
}
.related.ir li a {
  color: #fff;
  text-decoration: none;
}





body.ir main {
}
body.ir main section + section {
  margin-top: 80px !important;
}

body.ir .floating header {
  padding: 0 0 10px;
  margin: 0 0 25px;
  border-bottom: 1px solid #1e1e1e;
}
body.ir .floating h2 {
  font-size: 18px;
}

body.ir .floating figure,
body.ir-message .floating figure {
  float: right;
  width: 480px;
}
body.ir .floating .has-image article,
body.ir-message .floating .has-image article {
  float: left;
  width: 380px;
}
body.ir .floating img,
body.ir-message .floating img {
  width: 100%;
  height: auto;
}
body.ir .floating .content::after,
body.ir-message .floating .content::after {
  content: "";
  clear: both;
  display: block;
  height: 0;
  visibility: hidden;
}
body.ir .floating .content + .content,
body.ir-message .floating .content + .content {
  margin-top: 40px;
}
body.ir .floating .content p,
body.ir-message .floating .content p {
  line-height: 1.8;
}
body.ir .floating .content p + p,
body.ir-message .floating .content p + p {
  margin-top: 1.8em;
}
body.ir .floating .content nav {
  margin: 20px 0 0;
}


body.ir-governance main section + section {
  margin-top: 80px !important;
}




body.ir-disclosure main section + section {
  margin-top: 70px !important;
}


body.ir-return header + .content dl.dlist {
  padding-top: 10px;
}
body.ir-return table.simple {
  margin-top: 25px;
}


body.ir-library main section + section,
body.ir-return main section + section {
  margin-top: 80px !important;
}




body.ir-calendar main section + section {
  margin-top: 80px !important;
}

body.ir-stock .page-nav {
  margin-top: 150px;
}



body.ir-disclaimer main section + section,
body.ir-message main section + section {
  margin-top: 70px !important;
}




/* RECRUIT */

body.recruit .top-section .accordion .content {
  height: calc(1.8 * 11em);
}

.recruit-list {
  padding: 80px 0;
  max-width: 100vw !important;
}

.recruit-list.now {
  margin: 0 0 100px;
  background: #3c3c3c;
}
.recruit-list.now * {
  color: #fff !important;
}

.recruit-list.now .no-entry {
  position: relative;
  top: 50px;
  font-size: 18px;
}

.recruit-list.all {
  margin: 0 0 100px;
  padding: 0;
}

.recruit-list .inner {
  box-sizing: border-box;
  max-width: 996px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 50px;
  padding-right: 50px;
}

.recruit-list header {
  padding: 0 0 15px;
  margin: 0 0 45px;
  border-bottom: 1px solid #1e1e1e;
}
.recruit-list.now header {
  border-color: #fff;
}

.recruit-list h2 {
  font-size: 60px;
  letter-spacing: 7px;
}
.recruit-list .ja {
  margin: 10px 0 0;
  text-align: right;
  font-size: 18px;
}

.recruit-list .lead {
  margin: 0 0 35px;
  line-height: 1.8;
}

.recruit-list ul {
  display: flex;
  flex-wrap: wrap;
}
.recruit-list li {
  width: calc((100% - 100px) / 3);
}
.recruit-list li:nth-child(3n),
.recruit-list li:nth-child(3n - 1) {
  margin-left: 50px;
}
.recruit-list li:nth-child(n + 4) {
  margin-top: 70px;
}

.recruit-list dt {
  font-size: 24px;
  line-height: 1.4;
}
.recruit-list dd {
  line-height: 1.5;
}
.recruit-list dt + dd {
  margin: 14px 0 0;
  font-size: 16px;
}
.recruit-list dd + dd {
  margin: 16px 0 0;
  font-size: 16px;
  line-height: 1.8;
}

.recruit-list nav {
  margin-top: 20px;
}
.recruit-list nav a span {
  position: relative;
  display: inline-block;
  top: 1px;
  margin-left: 7px;
}
.recruit-list nav a span svg {
  width: 15px;
  height: 15px;
}
.recruit-list nav a span svg {
  transition: fill 300ms ease-out;
}

.recruit-list.now nav a {
  border-color: #fff;
}
.recruit-list.now nav a.button:hover {
  color: #3c3c3c !important;
  background-color: #fff;
}

.recruit-list.now nav a span svg {
  fill: #fff;
}
.recruit-list.now nav a:hover span svg {
  fill: #3c3c3c;
}

.recruit-list.all nav a span svg {
  fill: #3c3c3c;
}
.recruit-list.all nav a:hover span svg {
  fill: #fff;
}

.recruit-list .more {
  display: none;
}
.recruit-list .extra {
  margin-bottom: 100px;
  height: auto !important;
  overflow: visible !important;
}
.recruit-list .new-graduate,
.recruit-list .mail-magazine {
  margin-bottom: 50px;
  display: flex;
  align-items: center;
}
.recruit-list .new-graduate figure img {
  max-width: 288px;
  height: 100%;
}
.recruit-list .new-graduate-text,
.recruit-list .mail-magazine-text {
  margin-left: 32px;
}
.recruit-list .new-graduate-text h3,
.recruit-list .mail-magazine-text h3 {
  font-size: 18px;
  line-height: 1.6;
}
.recruit-list .new-graduate-text p,
.recruit-list .mail-magazine-text p {
  margin: 10px 0 0;
  font-size: 16px;
  line-height: 1.8;
}
.recruit-list .mail-magazine {
  margin-bottom: 0;
}

.recruit-blog.people {
  margin: 0 0 100px;
}
.recruit-note {
  margin: 0 0 100px;
}
.recruit-company {
  margin: 0 0 100px;
}

.recruit-note {
  margin: 0 0 100px;
}
.recruit-note ul {
  display: flex;
}
.recruit-note li {
  position: relative;
  width: calc((100% - 32px) / 3);
}
.recruit-note li:nth-child(3n),
.recruit-note li:nth-child(3n + 2) {
  margin-left: 16px;
}
.recruit-note li:nth-child(n + 4) {
  margin-top: 30px;
}
.recruit-note li a {
  position: relative;
  box-sizing: border-box;
  display: block;
  height: 100%;
  text-decoration: none;
}
.recruit-note figure img {
  width: 288px;
  height: 176px;
  object-fit: cover;
  object-position: center center;
}

.recruit-note dt{
	font-weight: bold;
}
.recruit-people h2,
.recruit-company h2 {
  font-size: 60px;
  letter-spacing: 7px;
}
.recruit-people .ja,
.recruit-company .ja {
  margin: 10px 0 0;
  text-align: right;
  font-size: 18px;
}

.recruit-people header,
.recruit-company header {
  padding: 0 0 15px;
  border-bottom: 1px solid #1e1e1e;
}

.recruit-movie h3,
.recruit-interview h3 {
  margin: 90px 0 50px;
  padding: 0 0 15px;
  font-size: 18px;
  border-bottom: 1px solid #1e1e1e;
}

.recruit-interview nav {
  margin: 50px 0 0;
}

.recruit-company ul {
  margin-top: 50px;
}
.recruit-movie ul,
.recruit-company ul {
  display: flex;
  flex-wrap: wrap;
}
.recruit-movie li,
.recruit-company li {
  width: calc(50% - 20px);
}
.recruit-movie li:nth-child(2n),
.recruit-company li:nth-child(2n) {
  margin-left: 16px;
}
.recruit-movie li:nth-child(n+3),
.recruit-company li:nth-child(n+3) {
  margin-top: 30px;
}
.recruit-movie img,
.recruit-company img {
  width: 100%;
  height: auto;
}

.recruit-movie li a,
.recruit-company li a,
.recruit-note li a {
  display: block;
  cursor: pointer;
  text-decoration: none;
}
.recruit-movie li figure,
.recruit-company li figure,
.recruit-note li figure {
  position: relative;
}
.recruit-movie article,
.recruit-company article,
.recruit-note article {
  margin: 16px 0 0;
}
.recruit-movie dt,
.recruit-company dt,
.recruit-note dt {
  font-size: 18px;
  line-height: 1.6;
font-weight: bold;
}
.recruit-movie dd,
.recruit-company dd,
.recruit-note dd {
  margin: 10px 0 0;
  font-size: 16px;
  line-height: 1.8;
}

.recruit-movie span {
  position: absolute;
  display: block;
  width: 60px;
  height: 60px;
  left: calc(50% - 30px);
  top: calc(50% - 30px);
  z-index: 1;
  border-radius: 30px;
  box-shadow: 0 6px 12px 0 rgba(0,0,0,0.4);
}
.recruit-movie span svg {
  fill: #fff;
  transition: all 300ms ease-out;
}
.recruit-movie a:hover span svg {
  fill: #1c1c1c;
}

.recruit-movie a img,
.recruit-company a img,
.recruit-note a img,
.recruit-movie a:hover article,
.recruit-company a:hover article,
.recruit-note a:hover article {
  transition: all 300ms ease-out;
}
.recruit-movie a:hover img,
.recruit-company a:hover img,
.recruit-note a:hover img,
.recruit-movie a:hover article,
.recruit-company a:hover article,
.recruit-note a:hover article {
  opacity: 0.5
}





/* BRAND SOLUTION */

#brandsolution-kv {
  position: relative;
  height: calc(100vh - 56px);
  height: calc(var(--doc-height) - 56px);
  overflow: hidden;
}
#brandsolution-kv .content {
  position: absolute;
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  z-index: 10;
}
#brandsolution-kv .bg {
  position: fixed;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  z-index: 1;
}
#brandsolution-kv .bg img {
  width: 100%;
  height: 100%;
  height: calc(var(--doc-height));
  object-fit: cover;
}

#brandsolution-kv .content > .inner {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  top: 25px;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 50px 115px;
}
#brandsolution-kv h1 {
  font-size: 80px;
  color: #fff;
  line-height: 1.2;
  letter-spacing: 7px;
}
#brandsolution-kv .ja {
  margin: 20px 0 0;
  font-size: 20px;
  color: #fff;
}
#brandsolution-kv a.play {
  position: absolute;
  display: block;
  width: 80px;
  height: 80px;
  left: calc(50% - 40px);
  top: calc(50% - 40px);
  z-index: 10;
  cursor: pointer;
  border-radius: 40px;
  box-shadow: 0 6px 12px 0 rgba(0,0,0,0.4);
}
#brandsolution-kv a.play svg {
  width: 100%;
  height: 100%;
  fill: #fff;
  transition: all 300ms ease-out;
}
#brandsolution-kv a.play:hover svg {
  fill: #1c1c1c;
}

#brandsolution-kv .scroll {
  position: absolute;
  width: 100%;
  left: 0;
  bottom: 30px;
  z-index: 50;
}
#brandsolution-kv .scroll > .inner {
  box-sizing: border-box;
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 50px;
}
#brandsolution-kv .scroll a {
  display: block;
  width: 60px;
  height: 31px;
  font-size: 12px;
  text-align: center;
  letter-spacing: 1px;
  white-space: nowrap;
  color: #fff;
  background: url(../img/arrow_scroll_white.svg) 50% 100% no-repeat;
  background-size: 18px auto;
  cursor: pointer;
}


.brand-home-inner {
  position: relative;
  z-index: 10;
  padding: 115px 0 0;
  background: #fafafa;
}



.brandsolution-box h2,
body.brandsolution h3,
body.brandsolution-plan h3 {
  margin: 0 0 50px;
  padding: 0 0 10px;
  font-size: 18px;
  line-height: 1.5;
  border-bottom: 1px solid #1e1e1e;
}


.brandsolution-box + .brandsolution-box {
  margin-top: 100px;
}
.brandsolution-box .lead {
  margin-top: -15px;
  font-size: 45px;
  line-height: 1.6;
}
.brandsolution-box article {
  margin: 20px 0 0;
  font-size: 16px;
  line-height: 1.8;
}
.brandsolution-box nav {
  margin: 30px 0 0;
}
.brandsolution-box figure img {
  width: 100%;
  height: auto;
}


.brand-intro .content {
  display: flex;
  justify-content: space-between;
}
.brand-intro article {
  width: 380px;
}
.brand-intro figure {
  width: 200px;
  height: 200px;
  margin-right: 104px;
  overflow: hidden;
  border-radius: 100px;
}
.brand-intro figure img {
  width: 100%;
  height: auto;
}
.brand-intro dt {
  font-size: 18px;
  line-height: 1.8;
}
.brand-intro dd {
  margin: 15px 0 0;
  font-size: 16px;
  line-height: 1.8;
}

.brand-ip-contents {
  margin-top: 100px;
}

.brand-ip-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.brand-ip-content + .brand-ip-content {
  margin-top: 30px;
}

.brand-ip-content img {
  width: 200px;
}

.brand-ip-content dl {
  margin: 0 0 0 30px;
}

.brand-entries {
  margin: 100px 0 0;
}

.brand-entries ul {
  display: flex;
  flex-wrap: wrap;
}
.brand-entries ul li {
  box-sizing: border-box;
  width: calc(50% - 8px);
  background: #fff;
  box-shadow: 0 5px 6px 0 rgba(0,0,0,0.1);
}
.brand-entries ul li:nth-child(2n) {
  margin-left: 16px;
}
.brand-entries ul li:nth-child(n + 3) {
  margin-top: 30px;
}
.brand-entries .summary {
  padding: 13px 16px 16px;
}
.brand-entries li a {
  text-decoration: none;
}

.brand-entries li a {
  display: block;
  transition: all 300ms ease-out;
}
.brand-entries li a:hover {
  opacity: 0.5;
}

.brand-entries .item {
  font-size: 14px;
  line-height: 1.7;
  color: #646464;
}
.brand-entries .title {
  margin: 2px 0 0;
  font-size: 18px;
  line-height: 1.8;
}
.brand-entries .detail {
  margin: 5px 0 0;
  font-size: 16px;
  line-height: 1.8;
}

.brand-entries img {
  width: 100%;
  height: auto;
}

.brand-entries .mark-rt {
  font-size: 80%;
}

.brand-entries .brand-more-link {
  margin-top: 50px;
}





.brand-plan-list {
  margin: 100px 0 150px;
  line-height: 1.6;
}
body.brandsolution .brand-plan-list {
  margin-bottom: 0;
}

.brand-plan-list .box {
  padding: 25px 0;
  background: #f2f2f2;
}
.brand-plan-list .box + .box {
  margin-top: 10px;
}

.brand-plan-list dl {
  margin: 0 50px 10px;
}
.brand-plan-list dt {
  font-size: 18px;
}
.brand-plan-list dd {
  margin: 15px 0 0;
  font-size: 16px;
  line-height: 1.8;
}
.brand-plan-list li a {
  position: relative;
  display: block;
  padding: 12px 50px;
  text-decoration: none;
}
.brand-plan-list li .title {
  font-size: 45px;
  letter-spacing: 4px;
  line-height: 1.4;
}
.brand-plan-list li .ja {
  margin: -5px 0 0;
  font-size: 18px;
}

.brand-plan-list a::before {
  position: absolute;
  content: "";
  display: block;
  width: 32px;
  height: 32px;
  right: 40px;
  top: calc(50% - 16px);
  z-index: 20;
  border-radius: 18px;
  background: #1e1e1e url(arrow_go.svg) 55% 50% no-repeat;
  background-size: 11px auto;
}

.brand-plan-list a {
  transition: all 300ms ease-out;
}
.brand-plan-list a:hover {
  opacity: 0.5
}


body.brandsolution-plan .brand-plan-list dd {
  display: none;
}

#wrapper > main section.hubspot-form-area {
  max-width: 896px;
  background: #fff;
  padding-top: 40px;
  padding-bottom: 40px;
}



.partner-list {
  margin: 100px 0 0;
  padding: 0 0 30px;
  line-height: 1.6;
}
.partner-list h2 {
  margin: 0 0 50px;
  padding: 0 0 10px;
  font-size: 18px;
  border-bottom: 1px solid #1e1e1e;
}
.partner-list ul {
  display: flex;
  flex-wrap: wrap;
}
.partner-list li {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc((100% - 40px) / 5);
  margin-left: 10px;
}
.partner-list li:nth-child(5n + 1) {
  margin-left: 0;
}
.partner-list li:nth-child(n + 6) {
  margin-top: 25px;
}
.partner-list li span {
}
.partner-list img {
  width: 110px;
  height: 50px;
  object-fit: contain;
}





.related.brand {
  margin: 75px 0 0;
  padding: 50px 0 55px;
  background: #3c3c3c;
}
.related.brand .inner {
  box-sizing: border-box;
  max-width: 996px;
  margin: 0 auto;
  padding: 0 50px;
}
.related.brand header {
  padding: 0 0 18px;
  color: #fff;
  border-bottom: 1px solid #fff;
}
.related.brand header .title {
  font-size: 60px;
  letter-spacing: 7px;
}
.related.brand header .ja {
  margin: 20px 0 0;
  font-size: 18px;
  text-align: right;
}
.related.brand header .ja br {
  display: none;
}

.related.brand ul {
  display: flex;
  margin: 30px 0 0;
}
.related.brand li + li {
  margin-left: 20px;
}
.related.brand li a {
  display: flex;
  box-sizing: border-box;
  width: 250px;
  height: 40px;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  border: 1px solid #fff;
  border-radius: 2px;
}





/* SUSTAINABILITY */

body.sustainability .top-section .accordion .content,
body.en-sustainability .top-section .accordion .content {
  height: calc(1.8 * 10em);
}
body.sustainability .top-section .accordion nav,
body.en-sustainability .top-section .accordion nav {
  margin-top: 15px;
}

body.sustainability main section + section,
body.en-sustainability main section + section {
  margin-top: 100px;
}
body.sustainability main section:last-of-type,
body.en-sustainability main section:last-of-type {
  margin-bottom: 150px;
}

body.sustainability h3,
body.en-sustainability h3 {
  margin: 0 0 50px;
  padding: 0 0 15px;
  font-size: 18px;
  border-bottom: 1px solid #1e1e1e;
}
.sustainability-box header {
  padding: 0 0 15px;
  margin: 0 0 50px;
  border-bottom: 1px solid #1e1e1e;
}
.sustainability-box .title {
  font-size: 60px;
  letter-spacing: 7px;
}
.sustainability-box .ja {
  margin: 10px 0 0;
  text-align: right;
  font-size: 18px;
}


.sustainability-box .content {
  display: flex;
  flex-direction: row-reverse;
  justify-content: space-between;
}
.sustainability-box .content article {
  width: 380px;
}
.sustainability-box .content figure {
  width: 304px;
}
.sustainability-box .content figure span {
  display: inline-block;
  width: 145px;
}
.sustainability-box .content figure span + span {
  margin-left: 5px;
}
.sustainability-box .content figure img {
  width: 100%;
  height: auto;
}

.sustainability-box .content h4 {
  margin: 0 0 15px;
  font-size: 18px;
  line-height: 1.8;
}
.sustainability-box .content p {
  font-size: 16px;
  line-height: 1.8;
}

.sustainability-box > dl {
  margin-top: 80px;
}
.sustainability-box > dl + dl {
  margin-top: 50px;
}

.sustainability-box > dl > dt {
  margin: 0 0 10px;
  font-size: 18px;
  line-height: 1.5;
}


.sustainability-box dl.effort dd {
  font-size: 16px;
  line-height: 1.8;
}


.sustainability-box dl.result > dt {
  margin-bottom: 35px;
  line-height: 1.5;
}
.sustainability-box dl.result > dd {
  display: flex;
  flex-wrap: wrap;
}
.sustainability-box dl.result dl {
  width: 33.33%;
}
.sustainability-box dl.result dl dt strong {
  font-size: 120px;
}
.sustainability-box dl.result dl dt span {
  font-size: 48px;
}
.sustainability-box dl.result dl dd {
  margin: 15px 0 0;
  line-height: 1.8;
}
.sustainability-box dl.result dl:nth-of-type(n + 4) {
  margin-top: 70px;
}


.sdgs{
	display: flex;
	align-content: flex-start;
}

.container {
  display: flex;
	  /*flex-direction: row-reverse;*/
	 justify-content: space-between; 
	align-items: center;
  gap: 16px; /* ボックスの間隔 */
}
.container h3 { order: 1; }
.container img { order: 2; }

/* MEDIA KIT */

body.media-kit main section + section {
  margin-top: 70px !important;
}
body.media-kit section nav {
  margin-top: 30px;
}
body.media-kit section nav a {
  font-size: 14px;
}
body.media-kit main section:last-of-type {
  margin-bottom: 150px;
}





/* PRIVACY POLICY */

body.policy main {
  margin-bottom: 60px;
}
body.policy main section + section {
  margin-top: 70px !important;
}
body.policy main section:last-of-type {
  margin-bottom: 100px;
}




/* CONTACT */

section.form {
}
.note + section.form {
  margin-top: 90px;
}
section.form iframe {
  width: 100%;
}

section.form iframe::-webkit-scrollbar {
  width: 8px;
  height: 8px;
  background: #fafafa;
}
section.form iframe::-webkit-scrollbar-thumb {
  border-radius: 6px;
}
section.form iframe::-webkit-scrollbar-thumb {
  background-color: #7d7d7d;
}


section.form.contact-form iframe {
  width: 900px;
  height: 1700px;
}



/* ERROR */

section.error {
  margin-bottom: 200px;
}






/* EN */

html[lang="en"] #wrapper > footer .copyright {
  margin-top: 70px;
}


html[lang="en"] #wrapper > header nav > ul > li[class*="en-"] > a {
  letter-spacing: 2px;
}

body.en #kv dt {
  width: 550px;
  height: 120px;
  background: url(../img/copy_en.svg) 0 0 no-repeat;
  background-size: 100% auto;
}


html[lang="en"] a.button {
  padding-top: 12px;
}


body.en main {
}
/*
body.en main section + section {
  margin-top: 150px;
}
*/
body.en main section.compact + section {
  margin-top: 80px;
}
body.en main section + .calendar {
  margin-top: 80px;
}
body.en .module-summary-list.calendar li a {
  padding-top: 4px;
  padding-bottom: 4px;
}


body.en section + .full-section {
  margin-top: 80px;
}
body.en .full-section header {
  padding: 0 0 15px;
  margin: 0 0 25px;
  border-bottom: 1px solid #1e1e1e;
}
body.en .full-section header h2 {
  font-size: 18px;
}

body.en main section + .calendar.mini {
  margin-top: 50px;
}


body.en main .calendar.mini + section {
  margin-top: 80px;
}


body.en .module-a header {
  margin-bottom: 50px;
}
body.en .module-a .subtitle {
  margin: 0 0 20px;
  font-size: 1.25rem;
  letter-spacing: 3px;
}
body.en .module-a p + .subtitle {
  margin-top: 50px;
}
body.en .module-a  nav {
  margin-top: 30px;
}

body.en .company-basic {
  margin-top: 50px !important;
}
body.en .company-basic dt {
  width: 230px;
}
body.en .company-basic dd {
  width: calc(100% - 230px);
}




body.en #ir {
  position: relative;
  padding-top: 100px;
  margin-top: -100px;
}
body.en #message,
body.en #sustainability,
body.en #company {
  margin-top: 50px;
  padding-top: 100px;
}

body.en #message .content + .content {
  margin-top: 40px;
}


html[lang="en"] header.content.single {
  height: 180px;
}

html[lang="en"] .entry-filter .sub a {
  padding-top: 8px;
  padding-bottom: 6px;
}

html[lang="en"] .module-summary-list.has-category .category {
  width: 220px;
}
html[lang="en"] .module-summary-list.has-category .title {
  width: calc(100% - 220px);
}



body.en-policy .module-d + .module-d {
  margin-top: 50px;
}
body.en-policy .module-d header {
  margin-bottom: 15px;
}


body.en-ir-disclaimer .module-d + .module-d {
  margin-top: 50px;
}
body.en-ir-disclaimer .module-d header {
  margin-bottom: 15px;
}

body.en-ir-library .entry-filter + .module-summary-list,
body.en-ir-library .module-summary-list + .module-summary-list {
  margin-top: 80px;
}






/* VIDEO */

#video-overlay {
  position: fixed;
  width: 100vw;
  height: 100vh;
  left: 0;
  top: 0;
  z-index: 2000;
  background: rgba(0,0,0,0.95);

  opacity: 0;
  transition: all 500ms ease-out;
}
body[data-player="on"] #video-overlay {
  opacity: 1;
}

#video-player {
  position: fixed;
  width: 960px;
  height: 540px;
  left: calc(50% - 480px);
  top: calc(50% - 270px);
  z-index: 2010;

  opacity: 0;
  transition: all 500ms ease-out;
}
body[data-player="on"] #video-player {
  opacity: 1;
}

#video-player iframe {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
}

#video-close {
  position: fixed;
  display: block;
  width: 40px;
  height: 40px;
  left: calc(50% + 480px - 40px);
  top: calc(50% - 270px - 40px - 25px);
  z-index: 2020;
  cursor: pointer;

  opacity: 0;
  transition: all 500ms ease-out;
}
body[data-player="on"] #video-close {
  opacity: 1;
}

#video-close::before,
#video-close::after {
  position: absolute;
  content: "";
  display: block;
  width: 40px;
  height: 2px;
  left: 0px;
  top: calc(50% - 1px);
  background: #fff;
}
#video-close::before {
  transform: rotate(45deg);
}
#video-close::after {
  transform: rotate(-45deg);
}





#modal {
  position: fixed;
  box-sizing: border-box;
  width: 100vw;
  height: 100vh;
  left: 0;
  top: 0;
  z-index: 2000;
  padding: 165px 0;
  background: rgba(0,0,0,0.95);
  overflow: auto;
}
#modal .modal-inner {
  box-sizing: border-box;
  width: 744px;
  margin: 0 auto;
  padding: 65px 70px 90px;
  font-size: 16px;
  line-height: 1.9;
  background: #fff;
}
#modal .modal-inner p + p {
  margin-top: 20px;
}
#modal nav {
  margin: 50px 0 0;
  text-align: center;
  line-height: 1;
}

#modal {
  opacity: 0;
  transition: opacity 500ms ease-out 50ms;
}
body.loaded #modal {
  opacity: 1;
}
html.scroll-lock,
html.scroll-lock body {
  overflow: hidden;
}


/* BRAND SOLUTION LIVE */
.brandsolution-live__wrapper {
  font-family: "Kurashikom-R", HelveticaNeue, Arial, "Hiragino UD Sans W4 JIS2004", sans-serif;
  font-size: 16px;
  font-weight: normal;
  line-height: 1.8;
}
.brandsolution-live section {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.brandsolution-live #wrapper > header {
  position: absolute;
}
.brandsolution-live #wrapper > header nav {
  display: none;
}
.brandsolution-live .b {
  font-family: "Kurashikom-M", HelveticaNeue, Arial, "Hiragino UD Sans W6 JIS2004", sans-serif;
}
.brandsolution-live .note {
  color: #999999;
}
.brandsolution-live a:hover {
  text-decoration: none;
}
.brandsolution-live .en {
  font-family: "Kurashikom-M", HelveticaNeue, Arial, sans-serif;
  letter-spacing: 3px;
}
.brandsolution-live .main-visual {
  background: linear-gradient(90deg,#5883A2 0%,#5883A2 50%,#DCE6E5 50%,#DCE6E5 100%);
}
.brandsolution-live .main-visual__body {
  font-size: 0;
  height: 770px;
  background: url(https://assets.kurashi.com/journal/uploads/2022/11/30172304/main_pc.jpg);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 1258px 770px;
}
.brandsolution-live .company-logo {
  margin-top: 50px;
  width: 996px;
}
.brandsolution-live .company-logo__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 996px;
}
.brandsolution-live .company-logo__item {
  display: flex;
  align-items: center;
  justify-content: center;
}
.brandsolution-live .company-logo__item:nth-child(1) {
  margin: 0 0 0 120px;
}
.brandsolution-live .company-logo__item:nth-child(2) {
  margin: 0 60px;
}
.brandsolution-live .company-logo__item:nth-child(3) {
  margin: 0 120px 0 0;
}
.brandsolution-live .company-logo__item:nth-child(4) {
  margin: 32px 0 0;
}
.brandsolution-live .company-logo__item:nth-of-type(n+5) {
  margin: 32px 0 0 60px;
}
.brandsolution-live .company-logo__item img {
  width: 200px;
  height: 90px;
}
.brandsolution-live .overview {
  margin-top: 120px;
}
.brandsolution-live .overview__body h2 {
  text-align: center;
  font-size: 45px;
  line-height: 1.8;
}
.brandsolution-live .overview__body p {
  margin-top: 1em;
}
.brandsolution-live .overview__body h2 + p {
  margin-top: 50px;
}
.brandsolution-live .overview__detail {
  margin-top: 50px;
  padding: 60px 100px;
  border: 2px solid #000;
}
.brandsolution-live .overview__detail h2 {
  font-size: 36px;
  line-height: 1.4;
}
.brandsolution-live .overview__detail__list {
  margin-top: 32px;
}
.brandsolution-live .overview__detail .note {
  margin-top: 1em;
}
.brandsolution-live .schedule,
.brandsolution-live .program {
  margin-top: 150px;
}
.brandsolution-live .schedule h2,
.brandsolution-live .program h2 {
  font-size: 64px;
  letter-spacing: 3px;
}
.brandsolution-live .schedule__list
.brandsolution-live .program__list {
  margin-top: 40px;
}
.brandsolution-live .schedule__item {
  display: flex;
  align-items: center;
  padding: 24px 0;
  border-bottom: 1px solid #d9d9d9;
}
.brandsolution-live .schedule__item:last-child {
  border-bottom: none;
}
.brandsolution-live .schedule__time {
  font-size: 20px;
  width: 128px;
  line-height: 1.4;
}
.brandsolution-live .schedule__time span {
  display: block;
  font-size: 14px;
}
.brandsolution-live .schedule__category {
  font-size: 16px;
  width: 204px;
}
.brandsolution-live .schedule__text {
  width: 664px;
}
.brandsolution-live .schedule__title {
  font-size: 16px;
}
.brandsolution-live .schedule__company {
  font-size: 14px;
  display: flex;
  margin-top: 8px;
  color: #333;
}
.brandsolution-live .schedule__company span {
  display: inline-block;
  padding: 0 10px;
}
.brandsolution-live .program__item {
  margin-top: 100px;
}
.brandsolution-live .program__item:first-child {
  margin-top: 0;
}
.brandsolution-live .program-item__text {
  color: #fff;
  padding: 50px 60px;
  background: linear-gradient(140deg, #5883A2 52.6%, #DCE6E5 100%);
}
.brandsolution-live .program-item__head {
  display: flex;
  align-items: center;
}
.brandsolution-live .program-item__label {
  font-size: 20px;
  line-height: 1;
  margin-left: -72px;
  padding: 10px 16px;
  background-color: #D8D22B;
}
.brandsolution-live .program-item__time {
  font-size: 24px;
  margin-left: 32px;
}
.brandsolution-live .program-item__text h3 {
  margin-top: 40px;
  font-size: 32px;
}
.brandsolution-live .program-item__text p {
  margin-top: 32px;
}
.brandsolution-live .program-item__text p .note {
  color: #cdcdcd;
}
.brandsolution-live .program-item__speakers {
  display: flex;
  padding: 50px 60px;
  background-color: #DCE6E5;
}
.brandsolution-live .program-item-speakers__item {
  flex: 1;
}
.brandsolution-live .program-item-speakers__item:not(:first-of-type) {
  margin-left: 70px;
}
.brandsolution-live .program-item-speakers__body {
  display: flex;
  align-items: center;
}
.brandsolution-live .program-item-speakers__photo img {
  width: 120px;
  height: 120px;
}
.brandsolution-live .program-item-speakers__text {
  margin-left: 32px;
  font-size: 14px;
}
.brandsolution-live .program-item-speakers__name {
  font-size: 20px;
}
.brandsolution-live .program-item-speakers__profile {
  margin-top: 32px;
  font-size: 14px;
}
.brandsolution-live .program-item__speakers-3column .program-item-speakers__body {
  display: block;
}
.brandsolution-live .program-item__speakers-3column .program-item-speakers__item:not(:first-of-type) {
  margin-left: 34px;
}
.brandsolution-live .program-item__speakers-3column .program-item-speakers__text {
  margin-left: 0;
  margin-top: 24px;
}
.brandsolution-live .event {
  margin-top: 120px;
}
.brandsolution-live .event__copy {
  font-size: 20px;
}
.brandsolution-live .event__title {
  margin-top: 8px;
  font-size: 36px;
  line-height: 1.4;
}
.brandsolution-live .event__list {
  margin-top: 32px;
}
.brandsolution-live .event .note {
  margin-top: 1em;
}
.brandsolution-live .brandsolution {
  margin-top: 80px;
}
.brandsolution-live .brandsolution__title {
  font-size: 20px;
}
.brandsolution-live .brandsolution__text {
  margin-top: 16px;
}
.brandsolution-live .brandsolution__btn {
  margin-top: 40px;
}
.brandsolution-live .form {
  background-color: #DCE6E5;
  margin: 120px 0;
  padding: 80px 0;
}
.brandsolution-live .form__embed {
  margin: 40px 80px 0;
}
.brandsolution-live .form__title {
  font-size: 36px;
  text-align: center;
}
.brandsolution-live .floating {
  opacity: 0;
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: 64px;
  z-index: 9999;
}
.brandsolution-live .floating__btn a:hover {
  opacity: 80%;
}
.brandsolution-live .floating__btn a img {
  width: 400px;
  height: 78px;
}
.brandsolution-live .share {
  opacity: 0;
  position: fixed;
  right: 40px;
  bottom: 78px;
  z-index: 9999;
}
.brandsolution-live .share__list {
  display: flex;
}
.brandsolution-live .share__list li a {
  display: block;
  width: 50px;
  height: 50px;
  font-size: 0;
}
.brandsolution-live .share__list li a:hover {
  opacity: 80%;
}
.brandsolution-live .share__twitter a {
  background: url(../img/icon_x.svg) 0 0 no-repeat;
  background-size: 50px auto;
}
.brandsolution-live .share__facebook a {
  margin-left: 24px;
  background: url(../img/icon_facebook.svg) 0 0 no-repeat;
  background-size: 50px auto;
}
.brandsolution-live .js-floating-button.show {
  opacity: 1;
  animation-name: fadeInAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
}
@keyframes fadeInAnime{
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.brandsolution-live .js-floating-button.show.hide {
  opacity: 0;
  animation-name: fadeOutAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
}
@keyframes fadeOutAnime{
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}


.pc-w-10p {width: 10%;}
.pc-w-20p {width: 20%;}
.pc-w-30p {width: 30%;}
.pc-w-40p {width: 40%;}
.pc-w-50p {width: 50%;}
.pc-w-60p {width: 60%;}
.pc-w-70p {width: 70%;}
.pc-w-80p {width: 80%;}
.pc-w-90p {width: 90%;}
.pc-w-100p {width: 100%;}


.map-wrap {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* アスペクト比16:9 */
  height: 0;
}

.map-wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}