@charset "utf-8";
@import url('common.css?6');

html{
	 background-color: #fff !important;
}
.pc {
  display: none;
}
.sp {
  display: block;
}

* {
  -webkit-tap-highlight-color: rgba(0,0,0,0);
}



main {
  opacity: 0;
  transition: opacity 750ms ease-out;
}
body.loaded main {
  opacity: 1;
}

body.brandsolution-contact main {
  opacity: 1;
  transition: none;
}

html, body {
  overflow-x: hidden;
}



/* SP */
.module-summary-list.calendar .date {
  font-family: "Kurashikom-M", HelveticaNeue, Arial, sans-serif;
}


p:empty {
  display: none;
}



a.button {
  display: inline-block;
  width: 100%;
  box-sizing: border-box;
  padding: 14px 28px;
  font-size: 14px;
  text-align: center;
  text-decoration: none;
  border: 1px solid #1e1e1e;
  border-radius: 2px;
  cursor: pointer;
  transition: all 300ms ease-out;
}
a.button:active {
  color: #fff;
  background-color: #1e1e1e;
}




#wrapper > header {
  position: fixed;
  width: 100%;
  height: 65px;
  left: 0;
  top: 0;
  z-index: 1000;
  background: #fff;
}
#wrapper > header .inner {
  position: relative;
  height: 65px;
}

#wrapper > header .logo {
  position: absolute;
  width: 220px;
  height: 30px;
  left: 37px;
  top: calc(50% - 14px);
}
#wrapper > header .logo a {
  display: block;
  height: 30px;
  font-size: 0;
}
#wrapper > header .logo a span {
  position: absolute;
  display: block;
  width: 30px;
  height: 30px;
  left: 0;
  top: 0;
  background: url(logo.svg) 0 0 no-repeat;
  background-size: 30px 30px;
}
#wrapper > header .logo a strong {
  position: absolute;
  display: block;
  width: 180px;
  height: 25px;
  left: 40px;
  top: 0;
  background: url(typo.svg) 0 50% no-repeat;
  background-size: 100% auto;
}







#wrapper .menu-button {
  position: absolute;
  width: 25px;
  height: 25px;
  right: 37px;
  top: calc(50% - 12px);
}
#wrapper .menu-button a {
  position: relative;
  display: block;
  height: 25px;
}
#wrapper .menu-button a::before,
#wrapper .menu-button a::after {
  position: absolute;
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  left: 0;
  background: #1e1e1e;

  transition: all 300ms ease-out;
}
#wrapper .menu-button a::before {
  top: calc(50% - 4px);
}
#wrapper .menu-button a::after {
  top: calc(50% + 3px);
}

body.opened-menu #wrapper .menu-button a::before {
  transform: translateY(4px) rotate(45deg);
}
body.opened-menu #wrapper .menu-button a::after {
  transform: translateY(-3px) rotate(-45deg);
}



#wrapper > header nav {
  position: absolute;
  box-sizing: border-box;
  width: 100%;
  height: calc(var(--doc-height-dynamic) - 65px);
  left: 0;
  top: 65px;
  padding: 38px 26px 0;
  background: #fff;
  overflow: auto;

  opacity: 0;
  visibility: hidden;
  transition: all 300ms ease-out;
}
#wrapper > header nav > ul {
}
#wrapper > header nav > ul > li + li {
}
#wrapper > header nav > ul > li {
  border-top: 1px solid #1e1e1e;
}
#wrapper > header nav > ul > li > a {
  position: relative;
  display: block;
  padding: 18px 15px;
  font-size: 20px;
}

#wrapper > header .en,
#wrapper > header .ja {
  padding-top: 25px;
}
#wrapper > header .en a,
#wrapper > header .ja a {
  font-size: 18px;
}


#wrapper > header nav li.company > a i,
#wrapper > header nav li.business > a i,
#wrapper > header nav li.en-ir > a i {
  position: absolute;
  display: block;
  content: "";
  width: 28px;
  height: 28px;
  right: 6px;
  top: calc(50% - 14px);
  border-radius: 14px;
  background: #1e1e1e url(icon_plus.svg) 50% 50% no-repeat;
  background-size: 13px auto;
  transition: all 300ms ease-out;
}
#wrapper > header nav li.company > a.opened i,
#wrapper > header nav li.business > a.opened i,
#wrapper > header nav li.en-ir > a.opened i {
  transform: rotate(45deg);
}



#wrapper > header nav ul div ul {
  margin: 5px 0 25px 20px;
}
#wrapper > header nav ul div li + li {
  margin-top: 20px;
}
#wrapper > header nav ul div a {
  display: inline-block;
  padding: 5px 0;
  font-size: 16px;
}


#wrapper > header nav ul div {
  height: 0;
  overflow: hidden;
  transition: all 300ms ease-out;
}


body.opened-menu #wrapper > header nav {
  opacity: 1;
  visibility: visible;
}



body.opened-menu {
  overflow: hidden;
}



a.pdf .title::after {
  position: relative;
  display: inline-block;
  content: "";
  width: 16px;
  height: 16px;
  margin-left: 5px;
  top: -3px;
  background: url(../img/icon_pdf.svg) 0 0 no-repeat;
  background-size: 100% auto;
  vertical-align: bottom;
}



  .video-background {
    position: fixed;     /* スクロールしても背景固定 */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;   /* アスペクト比を保ったまま画面いっぱいに拡大 */
    z-index: -1;         /* コンテンツより背面に配置 */
  }




@media (max-width:374px) {
  #wrapper > header .logo {
    width: 198px;
    left: 27px;
  }
  #wrapper > header .logo a strong {
    width: 160px;
    left: 38px;
  }
  #wrapper .menu-button {
    right: 27px;
  }
}






#wrapper > footer {
  position: relative;
  z-index: 10;
  padding: 50px 0;
  background: #fff;
}
#wrapper > footer .inner {
  position: relative;
  box-sizing: border-box;
  padding: 0 25px;
}

#wrapper > footer .logo {
  position: relative;
  max-width: 316px;
  width: 100%;
  padding: 10.4% 0 0;
  margin: 0 0;
}
#wrapper > footer .logo a {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: url(logo_typo_wide.svg) 50% 0 no-repeat;
  background-size: 100% 100%;
  font-size: 0;
}

#wrapper > footer nav {
  margin: 60px 0 0;
}
#wrapper > footer nav .menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
#wrapper > footer nav .menu .main {
  width: 50%;
}
#wrapper > footer nav .menu .sub {
  width: 50%;
  margin-top: 30px;
}



#wrapper > footer .tool {
  margin: 50px 0 0;
}
#wrapper > footer .tool .english {
  margin: 35px 0 0;
}
#wrapper > footer .tool .english a {
  font-size: 14px;
}

#wrapper > footer .sns {
  margin: 50px 0 0;
}
#wrapper > footer .sns ul {
  display: flex;
  justify-content: center;
}
#wrapper > footer .sns li + li {
  margin-left: 20px;
}
#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: 30px;
}

#wrapper > footer .copyright {
  width: 100%;
  margin: 40px 0 0;
  text-align: center;
  font-size: 12px;
  line-height: 1;
  letter-spacing: 1px;
}





#wrapper > main {
  padding: 65px 0 0;
}

#wrapper > main section {
  box-sizing: border-box;
  padding-left: 26px;
  padding-right: 26px;
}




/*
#wrapper > header,
#wrapper > header nav > ul,
#wrapper > header nav > ul > li,
#wrapper > header nav > ul > li > a {
  height: 76px;
  transition: all 500ms ease-out;
}
*/
#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;
  height: 180px;
  margin: 55px auto 0;
  padding: 0 26px;
}
header.content h1 {
  font-size: 35px;
  font-weight: bold;
  letter-spacing: 4px;
  line-height: 50px;
}
header.content .ja {
  position: absolute;
  right: 26px;
  top: 106px;
  font-size: 14px;
  line-height: 1.4;
}
header.content .ja span {
  font-size: 12px;
}


header.content.single {
  height: 120px;
}
header.content.single .ja {
  top: 52px;
}



section.entries {
  margin-bottom: 50px;
}
section.entries .no-entry {
  padding: 30px 0;
  font-size: 16px;
}


.entries ul {
}
.entries li {
  position: relative;
}
.entries li + li {
  margin-top: 10px;
}
.entries li a {
  position: relative;
  box-sizing: border-box;
  display: flex;
  height: 128px;
  text-decoration: none;
  background: #fff;
  box-shadow: 0 4px 5px 0 rgba(0,0,0,0.1);
}
.entries li figure {
  width: 128px;
}
.entries li a .summary {
  padding: 12px;
}
.entries li figure img {
  width: 128px;
  height: 128px;
  object-fit: cover;
  object-position: center center;
}
.entries li .date {
  font-size: 12px;
  color: #646464;
}
.entries li .title {
  position: relative;

  margin: 6px 0 0;
  font-size: 14px;
  line-height: 1.5;

  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  height: 63px;
  text-align: left;
}
.entries li .category {
  position: absolute;
  left: 140px;
  bottom: 12px;
  font-size: 12px;
  color: #646464;
}


.entry-filter {
  position: relative;
  z-index: 10;
  margin: 0 0 18px;
}
.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: 30px;
}
.entry-filter .main a {
  font-size: 14px;
  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: 20px;
}
.entry-filter .sub li {
  margin: 0 10px 10px 0;
}
.entry-filter .sub a {
  padding: 5px 9px;
  font-size: 12px;
  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: 100%;
  height: 35px;
  z-index: 15;
  border: 1px solid #1e1e1e;
}
.entry-filter .year > a {
  position: relative;
  display: block;
  height: 33px;
  line-height: 35px;
  font-size: 14px;
  text-align: center;
  padding-right: 44px;
}
.entry-filter .year > a.no-value {
  color: #8e8e8e;
}
.entry-filter .year > a::after {
  position: absolute;
  content: "";
  display: block;
  width: 45px;
  height: 35px;
  right: -1px;
  top: -1px;
  background: #1e1e1e url(../img/arrow_pulldown.svg) 50% 50% no-repeat;
  background-size: 14px 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: 8px 0;
  background: #fff;
  border: 1px solid #1e1e1e;
}
.entry-filter .year .pulldown li {
  position: relative;
  margin-right: -1px;
}
.entry-filter .pulldown a {
  display: block;
  padding: 10px;
  font-size: 14px;
  text-align: center;
  transition: all 100ms ease-out;
}
.entry-filter .pulldown a.selected,
.entry-filter .pulldown a:active {
  color: #fff !important;
  background: #1e1e1e;
}





.shop ul {
}
.shop li {
  position: relative;
}
.shop li + li {
  margin-top: 10px;
}
.shop li a {
  position: relative;
  box-sizing: border-box;
  display: block;
  /*height: 128px;*/
  text-decoration: none;
  background: #fff;
  box-shadow: 0 4px 5px 0 rgba(0,0,0,0.1);
}
.shop li figure {
  width: 128px;
}
.shop li a .summary {
  padding: 12px;
}
.shop li figure img {
   width: 250px;
   height: 40px;
  object-fit: cover;
  object-position: center center;
	padding: 10px;
}
.shop li .date {
  font-size: 12px;
  color: #646464;
}
.shop li .title {
  position: relative;

  margin: 6px 0 0;
  font-size: 14px;
  line-height: 1.5;

  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  height: 90px;
  text-align: left;
}
.shop li .category {
  position: absolute;
  left: 140px;
  bottom: 12px;
  font-size: 12px;
  color: #646464;
}




	.product-grid{
display: grid;
gap: var(--gap);
grid-template-columns: 1fr;
max-width:100%;
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: row;
align-items: stretch;
	margin: 5px;
}


.product-media{
display:block;
width:100%;
aspect-ratio: var(--img-aspect);
overflow:hidden;
}


.product-media img{
 width: 128px;
 height: 128px;
object-fit:cover;
display:block;
}


.product-card-body{
display:flex;
flex-direction:column;
gap:8px;
	width: 140%;
}
	
.product-title{font-size:1.05rem; font-weight:700}
.product-excerpt{
	margin: 6px 0 0;
        font-size: 14px;
        line-height: 1.5;
padding: 15px;
}	
	




.title{
	padding: 10px;
	margin: 0;
	font-size: 1.2rem;
	line-height: 160%;
}



.related-link {
  text-align: right;
}
.related-link a {
  font-size: 14px;
  text-decoration: underline;
}
.entry-filter + .related-link {
  margin: -12px 0 25px;
}





.entry {
  margin: 50px 26px 0;
  line-height: 1.6;
}
.entry .entry-title {
  margin: 0 0 30px;
}
.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: 5px 9px;
  color: #fff;
  font-size: 12px;
  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 12px;
  font-size: 14px;
}
.entry .entry-title h1 {
  margin: 16px 0 0;
  font-size: 18px;
  line-height: 1.5;
}
.entry .authors {
  font-size: 14px;
  line-height: 1.8;
}

.entry-body p {
  font-size: 14px;
  line-height: 1.8;
}
.entry-body p + p {
  margin-top: 25px;
}
/*
.entry-body p[style*="text-align"] {
  text-align: left !important;
  font-size: 12px;
}
*/

.entry-body figure {
  margin-bottom: 15px;
}
.entry-body figure figcaption {
  margin: 5px 0 0;
  font-size: 12px;
  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: 10px;
}

.entry-body .lead-paragraph {
  font-size: 14px;
  line-height: 1.8;
}

.entry-body h1 {
  margin: 24px 0 10px;
  font-size: 20px;
  line-height: 1.6;
}
.entry-body h2 {
  margin: 24px 0 10px;
  font-size: 18px;
  line-height: 1.6;
}

.entry-body h3 {
  margin: 24px 0 10px;
  font-size: 16px;
  line-height: 1.6;
}
.entry-body h4 {
  margin: 24px 0 10px;
  font-size: 14px;
  line-height: 1.8;
}

.entry-content {
  margin-top: 25px;
}
.entry-body img[class*="wp-"] {
  margin: 5px 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 iframe {
  width: calc(100vw - 52px);
  height: calc((100vw - 52px) / 16 * 9);
  margin: 10px 0;
}

.entry-body img + span {
  display: inline-block;
  margin-top: 10px;
}

.entry-body .card {
  display: flex;
  margin: 16px 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: 16px;
}
.entry-body .card-title {
  font-size: 13px;
  font-weight: bold;
  margin: 0;
  color: #000;
  display: -webkit-box;
	-webkit-box-orient: vertical;
	overflow: hidden;
  -webkit-line-clamp: 3;
}
.entry-body .card-domain {
  margin-top: 8px;
  font-family: "Hiragino UD Sans W4 JIS2004", sans-serif;
  font-size: 10px;
  color: #646464;
}
.entry-body .card-image {
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  flex-shrink: 0;
  width: 120px;
  height: 120px;
  background-color: #f0f0f0;
}
.entry-body .card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.entry-body .simple-table {
  margin: 24px 0;
  overflow: scroll;
  font-size: 12px;
}
.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: 24px 0;
  padding-left: 16px;
  border-left: 1px #000 solid;
  color: #646464;
}

.entry-body ul.dot-list,
.entry-body ol.number-list {
  margin: 24px 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: 30px;
  height: 30px;
  font-size: 0;
}
.entry .sns ul .facebook a {
  background: url(../img/icon_facebook.svg) 0 0 no-repeat;
  background-size: 30px auto;
}
.entry .sns ul .twitter a {
  background: url(../img/icon_x.svg) 0 0 no-repeat;
  background-size: 30px auto;
}

.entry .entry-title .sns {
}
.entry .entry-content + .sns {
  margin-top: 45px;
}




.entry-links {
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
  margin-top: 70px;
  padding-left: 26px;
  padding-right: 26px;
}
.entry-links h3 {
  padding: 0 0 16px;
  font-size: 16px;
  font-weight: normal;
  border-bottom: 1px solid #1e1e1e;
}
.entry-links ul {
  margin: 30px 0 0;
}
.entry-links > div + div {
  margin-top: 50px;
}



.page-nav {
  box-sizing: border-box;
  margin-top: 90px;
  margin-bottom: 50px;
  padding-left: 26px;
  padding-right: 26px;
}
.page-nav a {
  position: relative;
  min-height: 28px;
  display: flex;
  font-size: 14px;
  align-items: center;
  text-decoration: none;
  padding-left: 38px;
}
.page-nav a::before {
  position: absolute;
  content: "";
  display: block;
  width: 28px;
  height: 28px;
  left: 0;
  top: 0;
  border-radius: 14px;
  background: #1e1e1e url(../img/arrow_return.svg) 48% 50% no-repeat;
  background-size: 9px auto;
}




.entry .profile {
  margin: 50px 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;
  flex-direction: column-reverse;
}
.entry .profile article {
}
.entry .profile figure {
  margin: 0 0 20px;
}
.entry .profile .position {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.7;
}
.entry .profile .name {
  font-size: 18px;
}
.entry .profile .detail {
  margin: 20px 0 0;
  font-size: 14px;
  line-height: 1.9;
}







.entry-pager {
  position: relative;
  margin: 0 -15px 100px;
}
.entry-pager .nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
}
.entry-pager .nav-links > * {
  margin: 0 10px;
}
.entry-pager .nav-links br {
  display: none;
}
.entry-pager a.page-numbers {
  display: inline-block;
  box-sizing: border-box;
  width: 30px;
  height: 30px;
  line-height: 32px;
  text-align: center;
  text-decoration: none;
}
.entry-pager .nav-links .page-numbers.dots {
  margin: 0;
}

.entry-pager span.page-numbers:not(.dots) {
  display: inline-flex;
  width: 30px;
  height: 30px;
  color: #fff;
  font-size: 14px;
  line-height: 32px;
  justify-content: center;
  background: #1e1e1e;
  border-radius: 15px;
  text-decoration: none;
}

.entry-pager .prev,
.entry-pager .next {
  display: inline-block;
  width: 30px;
  height: 30px;
  padding: 0 !important;
  font-size: 0;
}
.entry-pager .prev {
  background: url(../img/pager_prev.svg) 50% 50% no-repeat;
  background-size: 7px auto;
}
.entry-pager .next {
  background: url(../img/pager_next.svg) 50% 50% no-repeat;
  background-size: 7px 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: 28px;
  padding-left: 38px;
  font-size: 12px;
  cursor: pointer;
  transition: all 300ms ease-out;
}
.accordion nav a::before {
  position: absolute;
  content: "";
  display: block;
  width: 28px;
  height: 28px;
  left: 0;
  top: 0;
  border-radius: 14px;
  background: #1e1e1e url(../img/icon_plus.svg) 50% 50% no-repeat;
  background-size: 13px 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: 20px 0 0;
}
.full-section dt {
  font-size: 16px;
  line-height: 1.6;
}
.full-section dd {
  margin: 12px 0 0;
  font-size: 14px;
  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: 35px;
  letter-spacing: 3px;
  line-height: 1.3;
}
.module-a .ja {
  margin: 0 0 0;
  text-align: right;
  font-size: 14px;
}

.module-a header + .content {
}

.module-a h3 {
  margin: 35px 0;
  font-size: 22px;
  letter-spacing: -1px;
  line-height: 1.6;
}
.module-a article {
}
.module-a article p {
  line-height: 1.8;
  font-size: 14px;
}
.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;
  flex-flow: column-reverse;
  justify-content: space-between;
}
.module-a .content.has-image article {
  margin-top: 15px;
}
.module-a .content.has-image figure {
  width: 100%;
}
.module-a figure img {
  width: 100%;
  height: auto;
}

.module-a .leading {
  margin: 0 0 12px;
  font-size: 12px;
}
.module-a .caption {
    margin: 0 0 12px;
    font-size: 16px;
    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 30px;
  border-bottom: 1px solid #1e1e1e;
}
.module-b h2 {
  font-size: 16px;
}

.module-b ul {
}
.module-b li {
}
.module-b li + li {
  margin-top: 40px;
}
.module-b figure img {
  width: 100%;
  height: auto;
}

.module-b dl {
  margin: 20px 0 0;
}
.module-b dt {
  font-size: 16px;
}
.module-b dd {
  margin: 12px 0 0;
  line-height: 1.8;
  font-size: 14px;
}

.module-b dl.name {
  margin: 10px 0 0;
}
.module-b .name dt {
  font-size: 14px;
}
.module-b .name dd {
  margin: 4px 0 0;
  font-size: 14px;
}


.module-b dl.member {
  margin: 15px 0 0;
}
.module-b .member dt {
  font-size: 14px;
}
.module-b .member dt + dd {
  margin: 4px 0 0;
  font-size: 16px;
}
.module-b .member dd + dd {
  margin: 10px 0 0;
  font-size: 14px;
  line-height: 1.8;
}




.module-b ul.col3 {
  display: flex;
  flex-wrap: wrap;
}
.module-b ul.col3 li {
  width: calc((100% - 10px) / 2);
}
.module-b ul.col3 li + li {
  margin-top: 0;
}
.module-b ul.col3 li:nth-child(2n) {
  margin-left: 10px;
}
.module-b ul.col3 li:nth-child(n + 3) {
  margin-top: 20px;
}



.module-b ul.col2 li + li {
  margin-top: 10px;
}









.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: 15px;
  padding-bottom: 0;
  border-bottom: none;
}
.module-c h2 {
  font-size: 16px;
}
.module-c figure img {
  width: 100%;
  height: auto;
}
.module-c .content {
  display: flex;
  flex-flow: column-reverse;
  justify-content: space-between;
}
.module-c article {
  margin: 15px 0 0;
}
.module-c figure {
}
.module-c article p {
  line-height: 1.8;
  font-size: 14px;
}
.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: 12px 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: 40px;
  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 15px;
}
.module-d h1.section-head {
  font-size: 18px;
}
.module-d h2 {
  font-size: 16px;
}
.module-d h3 {
  font-size: 14px;
}
.module-d .content p {
  line-height: 1.8;
  font-size: 14px;
}
.module-d .content p + p {
  margin-top: 1.8em;
}
.module-d nav {
  margin: 20px 0 0;
}
.module-d .content.has-image article {
  margin-bottom: 32px;
}






.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: 22px 0 20px;
  text-decoration: none;
}
.module-list-a li h2 {
  font-size: 40px;
  letter-spacing: 3px;
  line-height: 48px;
}
.module-list-a li .ja {
  margin: 8px 0 0;
  font-size: 14px;
}
.module-list-a li p,
.module-list-a li br {
  display: none;
}
.module-list-a a::before {
  position: absolute;
  content: "";
  display: block;
  width: 28px;
  height: 28px;
  right: 0;
  top: calc(50% - 14px);
  z-index: 10;
  border-radius: 14px;
  background: #1e1e1e url(arrow_go.svg) 56% 50% no-repeat;
  background-size: 10px auto;
}






.brandsolution .module-summary-list {
  margin: 50px 0 0;
}

.module-summary-list {
  line-height: 1.6;
}
.module-summary-list h2 {
  padding: 0 0 10px;
  font-size: 16px;
}
.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;
  flex-wrap: wrap;
  padding: 16px 0 13px;
  line-height: 1;
  text-decoration: none;
}
.module-summary-list .date {
  position: relative;
  font-size: 12px;
}
.module-summary-list .title {
  font-size: 14px;
  line-height: 1.6;
}
.module-summary-list .category {
  font-size: 12px;
}
.module-summary-list .category span,
.module-summary-list .category a {
  display: inline-block;
  box-sizing: border-box;
  min-width: 80px;
  padding: 3px 10px;
  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: 100%;
  top: 4px;
}
.module-summary-list:not(.has-category) .title {
  width: 100%;
  margin: 10px 0 0;
}



.module-summary-list.has-category .date {
  width: 80px;
  top: 4px;
}
.module-summary-list.has-category .category {
  width: 150px;
}
.module-summary-list.has-category .title {
  width: 100%;
  margin: 10px 0 0;
}


.module-summary-list.no-date .title {
  margin-top: 0;
}



.module-summary-list .note {
  margin: 15px 0 0;
  font-size: 12px;
  line-height: 1.8;
}

.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: 20px;
}
.module-summary-list.calendar li a {
  align-items: flex-start;
}
.module-summary-list.calendar .date {
  width: 170px;
  position: relative;
  font-size: 14px;
  top: 6px;
}
.module-summary-list.calendar .title {
  width: auto;
  max-width: calc(100% - 170px);
  margin-top: 0;
}
.module-summary-list.calendar .date::after {
  position: absolute;
  content: "";
  display: block;
  width: 80px;
  height: 1px;
  right: 14px;
  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: 4px;
  padding-bottom: 4px;
}



.module-summary-list + .entry-pager {
  margin-top: 80px;
}


.text-list {
  margin-top: 1.8em;
  padding-left: 18px;
}
.text-list li {
  font-size: 14px;
  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: 12px;
  line-height: 1.6;
  font-family: "Hiragino UD Sans W4 JIS2004", sans-serif;
  color: #999;
}




.dlist-multi dl {
  line-height: 1.8;
}
.dlist-multi dl + dl {
  margin-top: 30px;
}
.dlist-multi dt {
}
.dlist-multi dd {
  margin: 8px 0 0;
}



.staff_container {
  display: grid;
grid-template-columns: 1fr; /* 1列表示 */
  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;
}

.staff_box figure{
	position: relative;
}

.nyusya{
	z-index: 2;
    position: absolute;
    top: -5px;
    right: 0;
    padding: 5px 10px;
    background: #EFEFEF;
    font-size: 1.1rem;
    font-weight: bold;
}

.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;
}



.catch-sp{
	 font-size: 36px;
     line-height: 3.5rem;
     background-color: #ffffff;
    padding: 10px 20px;
	opacity: 0.8;

}


.profile-sp{
        font-size: 12px;
        line-height: 1.3rem;
}



.container {
flex-direction: column;
}
  .container h3 { order: 2; 
margin: 10px 0;}  /* テキストを下に */
  .container img { order: 1; } /* 画像を上に */


.top-section {
  display: flex;
  justify-content: space-between;
  flex-flow: column-reverse;
  margin: 0 0 50px;
  line-height: 1.6;
}
.top-section h2 {
  line-height: 1.6;
}
.top-section .primary {
  margin: 20px 0 0;
}
.top-section .secondary {
}
.top-section .secondary img {
  width: 100%;
  height: auto;
}
.top-section .primary .leading {
  margin: 0 0 20px;
}
.top-section .primary h2 {
  margin: 0 0 12px;
  font-size: 16px;
}
.top-section .secondary.mini img {
  width: 200px;
  height: auto;
}

.top-section p {
  font-size: 14px;
  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;
}

.top-section .secondary .leading {
  margin: 0 0 15px;
}
.top-section .secondary h2 {
  margin: 0 0 20px;
  font-size: 16px;
}




.intro-mini h2 {
  font-size: 16px;
  line-height: 1.5;
}
.intro-mini article {
  margin: 15px 0 0;
}
.intro-mini article p {
  font-size: 14px;
  line-height: 1.8;
}






section.faq {
}
section.faq .faq-item {
  line-height: 1.8;
  font-size: 14px;
  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 40px 12px 20px;
}
section.faq dd .faq-inner {
  position: relative;
  padding: 5px 0 12px 20px;
}
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: 15px;
}
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: 28px;
  height: 28px;
  right: 6px;
  top: calc(50% - 14px);
  border-radius: 14px;
  background: #1e1e1e url(../img/icon_plus.svg) 50% 50% no-repeat;
  background-size: 13px auto;
  transition: all 300ms ease-out;
}


section.faq .opened dt a::after {
  transform: rotate(45deg);
}









dl.dlist {
  font-size: 14px;
  line-height: 1.8;
}
dl.dlist dd {
  margin: 10px 0 0;
}
table.simple th {
  text-align: left;
}
table.simple th,
table.simple td {
  font-size: 12px;
  line-height: 1.5;
}
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 */

.entries li a {
  transition: all 300ms ease-out;
}
.entries li a:active {
  opacity: 0.5;
}


.shop li a {
  transition: all 300ms ease-out;
}
.shop li a:active {
  opacity: 0.5;
}


a.external {
  display: inline-block;
  padding-right: 20px;
  text-decoration: underline;
  background: url(../img/icon_external.svg) 100% 40% no-repeat;
  background-size: 14px auto;
  cursor: pointer;
  transition: all 300ms ease-out;
}





#wrapper > header nav li div a {
  counter-increment: pointer;
  transition: all 300ms ease-out;
}
#wrapper > header nav li div a:active {
  opacity: 0.5;
}


#wrapper > footer a {
  counter-increment: pointer;
  transition: all 300ms ease-out;
}
#wrapper > footer a:active {
  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:active::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:active > h2,
.module-list-a a:active > div {
  color: #fff;
  transform: translateX(16px);
}







.entry .sns a {
  cursor: pointer;
  transition: all 300ms ease-out;
}
.entry .sns a:active {
  opacity: 0.5;
}

.entry-filter .sub a {
  cursor: pointer;
  transition: all 300ms ease-out;
}
.entry-filter .sub a:active {
  opacity: 0.5;
}


.related-link a {
  cursor: pointer;
  transition: all 300ms ease-out;
}
.related-link a:active {
  opacity: 0.5;
}


.entry-filter li:not(.active) a {
  transition: all 300ms ease-out;
}
.entry-filter li:not(.active) a:active {
  color: #1e1e1e;
}


.module-summary-list li a {
  cursor: pointer;
  transition: all 300ms ease-out;
}
.module-summary-list li a:active {
  opacity: 0.5;
}




.related.company li a {
  transition: all 300ms ease-out;
}
.related.company li a:active {
  color: #3c3c3c;
  background: #fff;
}


.related.ir li a {
  transition: all 300ms ease-out;
}
.related.ir li a:active {
  opacity: 0.5;
}


.related.brand li a {
  transition: all 300ms ease-out;
}
.related.brand li a:active {
  opacity: 0.5;
}


section.faq dt a {
  transition: all 300ms ease-out;
}
section.faq dt a:active {
  opacity: 0.5;
}




.recruit-movie span svg {
  fill: #fff;
  transition: all 300ms ease-out;
}
.recruit-movie a:active span svg {
  fill: #1c1c1c;
}

.recruit-movie a img {
  transition: all 300ms ease-out;
}
.recruit-movie a:active img {
  opacity: 0.5
}


.brand-plan-list a {
  transition: all 300ms ease-out;
}
.brand-plan-list a:active {
  opacity: 0.5
}
















/* TOP */

#kv {
  position: relative;
  height: calc(var(--doc-height) - 65px);
  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: 100vh;
  left: 0;
  top: 0;
  z-index: 1;
}
#kv .bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#kv .content > .inner {
  box-sizing: border-box;
  width: 100%;
  margin: 0 auto;
  padding: 0 26px;
	padding-top: 380px;
}
#kv dl {
  width: 100%;
  margin-top: -16px;
}
#kv dt {
  width: 325px;
  height: 600px;
  font-size: 0;
  background: url(copy.png) 0 0 no-repeat;
  background-size: 100% auto;
}
#kv dd {
  margin: 35px 0 0;
  font-size: 14px;
  line-height: 1.8;
}

#kv nav {
  position: absolute;
  width: calc(100% - 52px);
  left: 26px;
  bottom: 54px;
}


#kv .scroll {
  position: absolute;
  width: 100%;
  left: 0;
  bottom: 12px;
  z-index: 50;
}
#kv .scroll > .inner {
}
#kv .scroll a {
  display: block;
  width: 60px;
  height: 21px;
  margin: 0 auto;
  font-size: 10px;
  text-align: center;
  letter-spacing: 1.5px;
  white-space: nowrap;
  background: url(../img/arrow_scroll.svg) 50% 100% no-repeat;
  background-size: 12px auto;
}






body.home .top-content,
body.en .top-content {
  position: relative;
  z-index: 10;
  padding: 85px 0 0;
  background: #fafafa;
}
body.en .top-content {
  padding-bottom: 100px;
}




body.home .news-summary {
  margin-bottom: 90px !important;
}
.news-summary header {
  padding: 0 0 14px;
  margin: 0 0 34px;
  border-bottom: 1px solid #1e1e1e;
}
.news-summary h2 {
  font-size: 40px;
  letter-spacing: 3px;
}
.news-summary .ja {
  margin: 10px 0 0;
  text-align: right;
  font-size: 14px;
}

.news-summary nav {
  margin: 30px 0 0;
}

body.ir .news-summary h2 {
  font-size: 16px;
  letter-spacing: initial;
}




body.home 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;
  transition: all 300ms ease-out;
}
body.home .module-a nav {
  margin: 30px 0 0;
}



body.home .module-list-a {
  margin: 90px 0 0;
  padding: 0 0 100px;
}

body.home a.external:active {
  opacity: 0.5;
}




/*　COMPANY　*/

body.company .full-section {
  margin-bottom: 60px;
}
body.company .module-a + .module-a {
  margin-top: 60px;
}
body[class*="company"] .module-list-a {
  margin: 100px 0;
}

body.company .top-section .accordion .content {
  overflow: visible;
  height: auto;
}
body.company .top-section .accordion nav {
  display: none;
}


.related.company {
  margin: 80px 0 0;
  padding: 25px 26px 50px;
  background: #3c3c3c;
}
.related.company .inner {
  box-sizing: border-box;
}
.related.company dt {
  padding: 0 0 15px;
  color: #fff;
  font-size: 16px;
  border-bottom: 1px solid #fff;
}
.related.company dd {
  margin: 30px 0 0;
}
.related.company ul {
}
.related.company li + li {
  margin-top: 32px;
}
.related.company li a {
  display: flex;
  box-sizing: border-box;
  width: 100%;
  height: 48px;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 16px;
  text-decoration: none;
  border: 1px solid #fff;
  border-radius: 2px;
}





.company-basic dl {
  line-height: 1.8;
}
.company-basic dt {
}
.company-basic dd {
}
.company-basic dl + dl {
  margin-top: 20px;
}

body.company-profile .module-b {
  margin-top: 50px;
}
body.company-profile .module-b + .module-b {
  margin-top: 70px;
}








.history-list .inner {
  position: relative;
}
.history-list .inner::before {
  content: "";
  position: absolute;
  display: block;
  width: 1px;
  height: calc(100% - 4px);
  background: #1e1e1e;
  left: 80px;
  top: 4px;
}
.history-list .inner > dl {
  position: relative;
  display: flex;
  padding: 0 0 40px;
}
.history-list .inner > dl:last-of-type {
  padding-bottom: 0;
}
.history-list .inner > dl::before {
  position: absolute;
  content: "";
  display: block;
  width: 13px;
  height: 13px;
  left: calc(80px - 6px);
  top: 4px;
  border-radius: 7px;
  background: #1e1e1e;
  box-shadow: 0 3px 5px 0 rgba(0,0,0,0.15);
}

.history-list .inner > dl > dt {
  width: 80px;
  font-size: 25px;
}
.history-list .inner > dl > dd {
  box-sizing: border-box;
  width: calc(100% - 80px);
  padding: 0 0 0 28px;
}

.history-list .inner dd dl + dl {
  margin-top: 30px;
}
.history-list .inner dd dt {
  margin: 0 0 4px;
  font-size: 16px;
  line-height: 1.6;
}
.history-list .inner dd dd {
  font-size: 14px;
  line-height: 1.8;
}
.history-list .inner dd dd + dd {
  margin-top: 3px;
}
.history-list .inner dd nav {
  margin: 32px 0 0;
}
.history-list .inner dd nav a {
  display: inline-block;
  padding: 9px 12px;
  font-size: 14px;
  text-decoration: none;
  border: 1px solid #1e1e1e;
  border-radius: 2px;
  text-align: center;
  line-height: 1.7;
  cursor: pointer;
}







/* BUSINNES */

body.business main {
  margin-bottom: 100px;
}
body.business .top-section .primary .leading,
body.business .top-section .primary h2 {
  display: none;
}

body.business .top-section .accordion .content h3 {
  font-size: 14px;
  line-height: 1.8;
  margin: 1.8em 0;
}

body.business .module-c {
  margin-top: 50px;
}
body.business .module-c + .module-c {
  margin-top: 40px;
}
body.business .module-c + .full-section {
  margin-top: 50px;
}

body.business .module-c .place-holder {
  display: none;
}
body.business .module-c figure * {
  outline: none;
}




/* IR */

.related.ir {
  margin: 50px 0 0;
  padding: 25px 26px 40px;
  background: #3c3c3c;
}
.related.ir .inner {
}
.related.ir dl {
}
.related.ir dl + dl {
  margin-top: 40px;
}
.related.ir dt {
  padding: 0 0 15px;
  color: #fff;
  font-size: 18px;
  border-bottom: 1px solid #fff;
}
.related.ir dd {
  padding-top: 5px;
}
.related.ir li {
  margin-top: 30px;
}
.related.ir li a {
  color: #fff;
  font-size: 16px;
  text-decoration: none;
}






body.ir main {
}
body.ir main section + section {
  margin-top: 50px !important;
}

body.ir .floating {
  line-height: 1.6;
}
body.ir .floating header {
  padding: 0 0 10px;
  margin: 0 0 25px;
  border-bottom: 1px solid #1e1e1e;
}
body.ir .floating h2 {
  font-size: 16px;
}

body.ir .floating figure,
body.ir-message .floating figure {
  margin: 0 0 20px;
}
body.ir .floating .has-image article ,
body.ir-message .floating .has-image article {
}
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: 1.8em;
}
body.ir .floating .content p,
body.ir-message .floating .content p {
  font-size: 14px;
  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: 50px !important;
}



body.ir-disclosure main section + section {
  margin-top: 40px !important;
}
body.ir-return table.simple {
  margin-top: 20px;
}



body.ir-library main section + section,
body.ir-return main section + section {
  margin-top: 50px !important;
}



body.ir-calendar main section + section {
  margin-top: 50px !important;
}



body.ir-disclaimer main section + section,
body.ir-message main section + section {
  margin-top: 40px !important;
}









/* RECRUIT */

body.recruit .top-section .accordion .content {
  height: calc(1.8em * 12.25);
}



.recruit-list {
  margin: 90px 0 0;
  padding: 75px 26px 80px;
  max-width: 100vw !important;
}
.recruit-list + .recruit-list {
  margin-top: 0;
}
.recruit-list .new-graduate {
  margin-bottom: 50px;
}
.recruit-list .new-graduate figure img,
.recruit-list .mail-magazine figure img {
  width: 100%;
  height: 100%;
}
.recruit-list .new-graduate-text,
.recruit-list .mail-magazine-text {
  margin-top: 16px;
}
.recruit-list .new-graduate-text h3,
.recruit-list .mail-magazine-text h3 {
  font-size: 16px;
  line-height: 1.6;
}
.recruit-list .new-graduate-text p,
.recruit-list .mail-magazine-text p {
  margin: 10px 0 0;
  font-size: 14px;
  line-height: 1.8;
}


.recruit-list.now {
  background: #3c3c3c;
}
.recruit-list.now * {
  color: #fff !important;
}

.recruit-list.now .no-entry {
  position: relative;
  font-size: 16px;
}

.recruit-people,
.recruit-company {
  margin: 90px 0 0;
}

.recruit-list header,
.recruit-people header,
.recruit-company header {
  padding: 0 0 15px;
  margin: 0 0 55px;
  border-bottom: 1px solid #1e1e1e;
}
.recruit-list.now header {
  border-color: #fff;
}
.recruit-list h2,
.recruit-people h2,
.recruit-company h2 {
  font-size: 40px;
  letter-spacing: 3px;
}
.recruit-list .ja,
.recruit-people .ja,
.recruit-company .ja {
  margin: 12px 0 0;
  text-align: right;
  font-size: 14px;
}

.recruit-list .lead {
  margin: -20px 0 40px;
  line-height: 1.8;
}

.recruit-list ul {
}
.recruit-list li + li {
  margin-top: 50px;
}

.recruit-list dt {
  font-size: 24px;
  line-height: 1.4;
}
.recruit-list dd {
  line-height: 1.4;
}
.recruit-list dt + dd {
  margin: 14px 0 0;
  font-size: 16px;
}
.recruit-list dd + dd {
  margin: 16px 0 0;
  font-size: 14px;
  line-height: 1.8;
}

.recruit-list nav {
  margin-top: 20px;
}
.recruit-list nav a {
  font-size: 16px;
}
.recruit-list nav a span {
  position: relative;
  display: inline-block;
  top: 1px;
  margin-left: 9px;
}
.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.all {
  margin: 90px 0 0;
  padding-top: 0;
}


.recruit-list.now nav a span svg {
  fill: #fff;
}
.recruit-list.all nav a span svg {
  fill: #3c3c3c;
}





.recruit-list .extra {
  margin-bottom: 100px;
  transition: all 800ms ease-out;
  overflow: hidden;
}
.recruit-list .more {
  margin: 50px 0 0;
}
.recruit-list .more a {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding-left: 38px;
  font-size: 12px;
  cursor: pointer;
  transition: all 300ms ease-out;
}
.recruit-list .more a::before {
  position: absolute;
  content: "";
  display: block;
  width: 28px;
  height: 28px;
  left: 0;
  top: 0;
  border-radius: 14px;
  background: #1e1e1e url(../img/icon_plus.svg) 50% 50% no-repeat;
  background-size: 13px auto;
  transition: all 300ms ease-out;
}
.recruit-list.opened .more a {
  color: rgba(30,30,30,0);
}
.recruit-list.opened .more a::before {
  transform: rotate(45deg);
}


.recruit-blog .content {
  display: flex;
  flex-direction: column-reverse;
}

.recruit-blog header + .content {
  margin-top: 30px;
}
.recruit-blog .content + .content {
  margin-top: 50px;
}

.recruit-blog article {
  margin: 15px 0 0;
}
.recruit-blog figure {
}
.recruit-blog figure img {
  width: 100%;
  height: auto;
}

.recruit-blog dt {
  font-size: 16px;
  line-height: 1.6;
}
.recruit-blog dd {
  margin: 10px 0 0;
  font-size: 14px;
  line-height: 1.8;
}
.recruit-blog nav {
  margin: 25px 0 0;
}




.recruit-interview {
  margin-top: 50px;
  margin-bottom: 50px;
}

.recruit-movie h3,
.recruit-interview h3 {
  margin: 45px 0 30px;
  padding: 0 0 15px;
  font-size: 16px;
  border-bottom: 1px solid #1e1e1e;
}

.recruit-interview nav {
  margin: 30px 0 0;
}

.recruit-movie {
  margin: 50px 0 0;
}
.recruit-movie li + li,
.recruit-company li + li,
.recruit-note li + li {
  margin-top: 30px;
}
.recruit-movie img,
.recruit-company img,
.recruit-note img {
  width: 100%;
  height: auto;
}
.recruit-movie li a,
.recruit-company a,
.recruit-note 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: 16px;
  line-height: 1.6;
	font-weight: bold;
}
.recruit-movie dd,
.recruit-company dd,
.recruit-note dd {
  margin: 10px 0 0;
  font-size: 14px;
  line-height: 1.8;
}
.recruit-movie span,
.recruit-company span,
.recruit-note 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,
.recruit-company span svg,
.recruit-note span svg {
  fill: #fff;
  transition: all 300ms ease-out;
}




  .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;
    }






/* BRAND SOLUTION */

#brandsolution-kv {
  position: relative;
  height: calc(var(--doc-height) - 65px);
  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: 100vh;
  left: 0;
  top: 0;
  z-index: 1;
}
#brandsolution-kv .bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#brandsolution-kv .content > .inner {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  top: 15px;
  padding: 0 26px 15vh;
}
#brandsolution-kv h1 {
  font-size: 40px;
  color: #fff;
  line-height: 1.3;
  letter-spacing: 4px;
}
#brandsolution-kv .ja {
  margin: 6px 0 0;
  font-size: 14px;
  color: #fff;
}
#brandsolution-kv a.play {
  position: absolute;
  display: block;
  width: 80px;
  height: 80px;
  left: calc(50% - 40px);
  top: calc(50% - 60px);
  z-index: 10;
  cursor: pointer;
  border-radius: 40px;
  font-size: 0;
  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 .scroll {
  position: absolute;
  width: 100%;
  left: 0;
  bottom: 12px;
  z-index: 50;
}
#brandsolution-kv .scroll > .inner {
}
#brandsolution-kv .scroll a {
  display: block;
  width: 60px;
  height: 21px;
  margin: 0 auto;
  font-size: 10px;
  text-align: center;
  letter-spacing: 1.5px;
  white-space: nowrap;
  color: #fff;
  background: url(../img/arrow_scroll_white.svg) 50% 100% no-repeat;
  background-size: 12px auto;
}





.brand-home-inner {
  position: relative;
  z-index: 10;
  padding: 85px 0 0;
  background: #fafafa;
}


.brandsolution-box h2,
body.brandsolution h3,
body.brandsolution-plan h3 {
  margin: 0 0 30px;
  padding: 0 0 10px;
  font-size: 16px;
  line-height: 1.5;
  border-bottom: 1px solid #1e1e1e;
}


.brandsolution-box + .brandsolution-box {
  margin-top: 50px;
}
.brandsolution-box .lead {
  margin-top: -10px;
  font-size: 24px;
  line-height: 1.6;
}
.brandsolution-box article {
  margin: 15px 0 0;
  font-size: 14px;
  line-height: 1.8;
}
.brandsolution-box nav {
  margin: 20px 0 0;
}
.brandsolution-box figure img {
  width: 100%;
  height: auto;
}


.brand-intro .content {
  display: flex;
  flex-direction: column-reverse;
}
.brand-intro article {
  margin: 30px 0 0;
}
.brand-intro figure {
  width: 100px;
  height: 100px;
  overflow: hidden;
  border-radius: 50px;
}
.brand-intro figure img {
  width: 100%;
  height: auto;
}
.brand-intro dt {
  font-size: 16px;
  line-height: 1.8;
}
.brand-intro dd {
  margin: 15px 0 0;
  font-size: 14px;
  line-height: 1.8;
}

.brand-ip-contents {
  margin-top: 50px;
}

.brand-ip-content + .brand-ip-content {
  margin-top: 40px;
}

.brand-entries {
  margin: 50px 0 0;
}

.brand-entries ul {
}
.brand-entries ul li {
  background: #fff;
  box-shadow: 0 5px 6px 0 rgba(0,0,0,0.1);
}
.brand-entries ul li:nth-child(n + 2) {
  margin-top: 20px;
}
.brand-entries .summary {
  padding: 12px 16px 16px;
}
.brand-entries li a {
  text-decoration: none;
}
.brand-entries .item {
  font-size: 14px;
  line-height: 1.6;
  color: #646464;
}
.brand-entries .title {
  margin: 2px 0 0;
  font-size: 14px;
  line-height: 1.8;
}
.brand-entries .detail {
  margin: 5px 0 0;
  font-size: 14px;
  line-height: 1.8;
}

.brand-entries img {
  width: 100%;
  height: auto;
}


.brand-entries li a {
  display: block;
  transition: all 300ms ease-out;
}
.brand-entries li a:active {
  opacity: 0.5;
}

.brand-entries .mark-rt {
  font-size: 80%;
}

.brand-entries .brand-more-link {
  margin-top: 30px;
}



.brand-plan-list {
  margin: 50px 0 50px;
  line-height: 1.6;
}
body.brandsolution .brand-plan-list {
  margin-bottom: 0;
}
.brand-plan-list .box {
  margin: 0 -26px;
  padding: 25px 0 10px;
  background: #f2f2f2;
}
.brand-plan-list .box + .box {
  margin-top: 10px;
}

.brand-plan-list dl {
  margin: 0 26px 15px;
}
.brand-plan-list dt {
  font-size: 16px;
}
.brand-plan-list dd {
  margin: 10px 0 0;
  font-size: 14px;
  line-height: 1.8;
}
.brand-plan-list li a {
  position: relative;
  display: block;
  padding: 8px 26px;
  text-decoration: none;
}
.brand-plan-list li .title {
  font-size: 32px;
  letter-spacing: 3px;
}
.brand-plan-list li .ja {
  margin: -5px 0 0;
  font-size: 16px;
}

.brand-plan-list a::before {
  position: absolute;
  content: "";
  display: block;
  width: 28px;
  height: 28px;
  right: 26px;
  top: calc(50% - 14px);
  z-index: 20;
  border-radius: 14px;
  background: #1e1e1e url(arrow_go.svg) 55% 50% no-repeat;
  background-size: 9px auto;
}

.brand-plan-list a {
  transition: all 300ms ease-out;
}



body.brandsolution-plan .brand-plan-list dd {
  display: none;
}

#wrapper > main section.hubspot-form-area {
  margin-left: 0;
  margin-right: 0;
  padding: 0 26px;
}



.partner-list {
  margin: 50px 0 0;
  padding: 0 0 20px;
  line-height: 1.6;
}
.partner-list h2 {
  margin: 0 0 30px;
  padding: 0 0 10px;
  font-size: 16px;
  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% - 10px) / 2);
  margin-left: 10px;
}
.partner-list li:nth-child(2n + 1) {
  margin-left: 0;
}
.partner-list li:nth-child(n + 3) {
  margin-top: 25px;
}
.partner-list li span {
}
.partner-list img {
  width: 90px;
  height: 40px;
  object-fit: contain;
}









.related.brand {
  margin: 50px 0 0;
  padding: 25px 26px 50px;
  background: #3c3c3c;
}
.related.brand .inner {
}
.related.brand header {
  padding: 0 0 18px;
  color: #fff;
  border-bottom: 1px solid #fff;
}
.related.brand header .title {
  font-size: 40px;
  letter-spacing: 4px;
}
.related.brand header .ja {
  margin: 15px 0 0;
  font-size: 16px;
  text-align: right;
  line-height: 1.4;
}

.related.brand ul {
  margin: 30px 0 0;
}
.related.brand li + li {
  margin-top: 32px;
}
.related.brand li a {
  display: flex;
  box-sizing: border-box;
  width: 100%;
  height: 48px;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 16px;
  text-decoration: none;
  border: 1px solid #fff;
  border-radius: 2px;
}













/* SUSTAINABILITY */

body.sustainability .top-section,
body.en-sustainability .top-section {
  flex-direction: column;
}
body.sustainability .top-section h2,
body.en-sustainability .top-section h2 {
  margin: 0 0 15px;
  font-size: 16px;
}
body.sustainability .top-section .accordion .content,
body.en-sustainability .top-section .accordion .content {
  height: calc(1.8 * 7.8em);
}


body.sustainability main section + section,
body.en-sustainability main section + section {
  margin-top: 55px;
}
body.sustainability main section:last-of-type,
body.en-sustainability main section:last-of-type {
  margin-bottom: 100px;
}

body.sustainability h3,
body.en-sustainability h3 {
  margin: 0 0 50px;
  padding: 0 0 15px;
  font-size: 16px;
  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: 35px;
  letter-spacing: 3px;
}
.sustainability-box .ja {
  margin: 10px 0 0;
  text-align: right;
  font-size: 14px;
}


.sustainability-box .content {
  display: flex;
  flex-direction: column;
}
.sustainability-box .content article {
}
.sustainability-box .content figure {
  margin: 0 0 20px;
}
.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 10px;
  font-size: 16px;
  line-height: 1.7;
}
.sustainability-box .content p {
  font-size: 14px;
  line-height: 1.8;
}

.sustainability-box > dl {
  margin-top: 50px;
}
.sustainability-box > dl + dl {
  margin-top: 50px;
}

.sustainability-box > dl > dt {
  margin: 0 0 5px;
  font-size: 16px;
  line-height: 1.5;
}


.sustainability-box dl.effort dd {
  font-size: 14px;
  line-height: 1.8;
}


.sustainability-box dl.result > dt {
  margin-bottom: 30px;
  line-height: 1.5;
}
.sustainability-box dl.result > dd {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.sustainability-box dl.result dl {
  width: 50%;
}
.sustainability-box dl.result dl dt strong {
  font-size: 64px;
}
.sustainability-box dl.result dl dt span {
  font-size: 24px;
}
.sustainability-box dl.result dl dd {
  margin: 5px 0 0;
  padding-right: 20px;
  font-size: 14px;
  line-height: 1.7;
}
.sustainability-box dl.result dl:nth-of-type(n + 3) {
  margin-top: 30px;
}


/*NEWS*/

.slider-wrapper {
  overflow-x: scroll;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  width: 100%;
  padding: 20px 0;
}

.slider {
  display: flex;
  gap: 0px;
  width: max-content;
  scroll-behavior: smooth;
}

.slide {
  flex: 0 0 calc((100% - 10px) / 2.5); /* 2.5個分＝1個＋1個＋0.5個 */
  height: 300px;
  scroll-snap-align: start;
  border-radius: 10px;
  text-align: center;
  font-size: 2rem;
  line-height: 80px;
}

.slide a{
position: relative;
        box-sizing: border-box;
        display: block;
	width: 250px;
        height: 100%;
        text-decoration: none;
        background: #fff;
        box-shadow: 0 5px 6px 0 rgba(0, 0, 0, 0.1);
}

.slider-wrap {
  position: relative;
  width: 100%;
  max-width: 600px;
  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;
}
/* MEDIA KIT */

body.media-kit main section + section {
  margin-top: 50px !important;
}
body.media-kit section nav {
  margin-top: 20px;
}
body.media-kit section nav a {
  font-size: 14px;
}
body.media-kit main section:last-of-type {
  margin-bottom: 100px;
}






/* PRIVACY POLICY */

body.policy main {
  margin-bottom: 50px;
}
body.policy main section + section {
  margin-top: 40px !important;
}
body.policy main section:last-of-type {
  margin-bottom: 90px;
}





/* CONTACT */

section.form {
  margin-left: -15px;
  margin-right: -15px;
}
.note + section.form {
  margin-top: 45px;
}
section.form iframe {
  width: 100%;
}


section.form iframe::-webkit-scrollbar {
  width: 6px;
  height: 6px;
  background: #fafafa;
}
section.form iframe::-webkit-scrollbar-thumb {
  border-radius: 4px;
}
section.form iframe::-webkit-scrollbar-thumb {
  background-color: #7d7d7d;
}

section.form.contact-form iframe {
  height: 550vw;
}




/* ERROR */

section.error {
  margin-bottom: 100px;
  font-size: 14px;
  line-height: 2;
}














/* 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: 300px;
  height: 65px;
  background: url(../img/copy_en.svg) 0 0 no-repeat;
  background-size: 100% auto;
}


body.en #kv dd {
  margin-top: 20px;
}

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: 50px;
}
body.en main section + .calendar {
  margin-top: 80px;
}
body.en .module-summary-list.calendar li a {
  padding-top: 4px;
  padding-bottom: 4px;
}

body.en .module-summary-list .category span,
body.en .module-summary-list .category a {
  padding-top: 5px;
}


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: 16px;
}

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: 30px;
}
body.en .module-a h2 {
  font-size: 35px;
  letter-spacing: 2px;
}
body.en .module-a .subtitle {
  margin: 0 0 20px;
  font-size: 1.25rem;
  letter-spacing: 3px;
}
body.en .module-a p + .subtitle {
  margin-top: 70px;
}
body.en .module-a  nav {
  margin-top: 30px;
}

body.en .company-basic {
  margin-top: 30px !important;
}
body.en .company-basic dt {
}
body.en .company-basic dd {
}




body.en #ir {
  position: relative;
  padding-top: 100px;
  margin-top: -100px;
}
body.en #message,
body.en #sustainability,
body.en #company {
  margin-top: 0px;
  padding-top: 90px;
}

body.en #message .content + .content {
  margin-top: 1.8em;
}


html[lang="en"] header.content.single {
  height: 80px;
}





body.en-policy .module-d + .module-d {
  margin-top: 50px;
}
body.en-policy .module-d header {
  margin-bottom: 15px;
}
body.en-policy .module-d header h2 {
  line-height: 1.5;
}





body.en-ir-disclaimer .module-d + .module-d {
  margin-top: 50px;
}
body.en-ir-disclaimer .module-d header {
  margin-bottom: 15px;
}
body.en-ir-disclaimer .module-d header h2 {
  line-height: 1.5;
}


body.en-ir-library .module-summary-list h2 {
  line-height: 1.5;
}
body.en-ir-library .entry-filter + .module-summary-list {
  margin-top: 30px;
}
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.9);

  opacity: 0;
  transition: all 500ms ease-out;
}
body[data-player="on"] #video-overlay {
  opacity: 1;
}

#video-player {
  position: fixed;
  box-sizing: border-box;
  width: calc(100vw - 0px);
  height: calc((100vw - 0px) * 0.5625);
  left: 0px;
  top: calc(50% - calc((100vw - 0px) * 0.5625 * 0.5));
  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: 30px;
  height: 30px;
  right: 24px;
  top: calc(50% - ((100vw - 20px) * 0.5625 * 0.5) - 55px);
  z-index: 2020;

  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: 24px;
  height: 2px;
  left: 0;
  top: calc(50% - 0.5px);
  background: #fff;
}
#video-close::before {
  transform: rotate(45deg);
}
#video-close::after {
  transform: rotate(-45deg);
}







#modal {
  position: fixed;
  box-sizing: border-box;
  width: 100vw;
  height: var(--doc-height-dynamic);
  left: 0;
  top: 0;
  z-index: 2000;
  padding: 64px 0;
  background: rgba(0,0,0,0.95);
  overflow: auto;
}
#modal .modal-inner {
  box-sizing: border-box;
  width: calc(100vw - 52px);
  margin: 0 auto;
  padding: 40px 22px 30px;
  font-size: 14px;
  line-height: 1.8;
  background: #fff;
}
#modal .modal-inner p + p {
  margin-top: 15px;
}
#modal nav {
  margin: 30px 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 .menu-button {
  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;
  width: 100%;
  height: 0;
  padding-top: 160%;
  background: url(https://assets.kurashi.com/journal/uploads/2022/12/06152151/main_sp-1.jpg);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}
.brandsolution-live .company-logo {
  margin: 40px 16px 0;
}
.brandsolution-live .company-logo__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.brandsolution-live .company-logo__item {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 24px 16px 0;
}
.brandsolution-live .company-logo__item img {
  width: 130px;
  height: 59px;
}
.brandsolution-live .overview {
  margin: 80px 0 0;
}
.brandsolution-live .overview__body {
  padding: 0 26px;
}
.brandsolution-live .overview__body h2 {
  text-align: center;
  font-size: 26px;
  line-height: 1.8;
}
.brandsolution-live .overview__body p {
  margin-top: 1em;
}
.brandsolution-live .overview__body h2 + p {
  margin-top: 40px;
}
.brandsolution-live .overview__detail {
  margin-top: 40px;
  padding: 40px 26px;
  background-color: #f0f0f0;
}
.brandsolution-live .overview__detail h2 {
  font-size: 26px;
  line-height: 1.6;
}
.brandsolution-live .overview__detail__list {
  margin-top: 24px;
}
.brandsolution-live .overview__detail .note {
  margin-top: 1em;
}
.brandsolution-live .schedule,
.brandsolution-live .program {
  margin-top: 100px;
}
.brandsolution-live .schedule {
  margin-left: 26px;
  margin-right: 26px;
}
.brandsolution-live .schedule h2,
.brandsolution-live .program h2 {
  font-size: 28px;
  letter-spacing: 3px;
}
.brandsolution-live .schedule__list,
.brandsolution-live .program__list {
  margin-top: 16px;
}
.brandsolution-live .schedule__item {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  padding: 24px 0;
  border-bottom: 1px solid #d9d9d9;
}
.brandsolution-live .schedule__item:last-child {
  border-bottom: none;
}
.brandsolution-live .schedule__time {
  font-size: 18px;
  width: 128px;
  line-height: 1.4;
}
.brandsolution-live .schedule__time span {
  display: block;
  font-size: 14px;
}
.brandsolution-live .schedule__category {
  font-size: 16px;
}
.brandsolution-live .schedule__title {
  margin-top: 24px;
  font-size: 16px;
}
.brandsolution-live .schedule__company {
  margin-top: 8px;
  font-size: 14px;
  color: #333;
}
.brandsolution-live .schedule__company span {
  display: none;
}
.brandsolution-live .program__text {
  padding: 0 26px;
}
.brandsolution-live .program__item {
  margin-top: 40px;
}
.brandsolution-live .program__item:first-child {
  margin-top: 0;
}
.brandsolution-live .program-item__text {
  color: #fff;
  padding: 40px 26px;
  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: 14px;
  line-height: 1;
  margin-left: -26px;
  padding: 10px 26px;
  background-color: #D8D22B;
}
.brandsolution-live .program-item__time {
  font-size: 16px;
  margin-left: 24px;
}
.brandsolution-live .program-item__text h3 {
  margin-top: 40px;
  font-size: 20px;
  line-height: 1.6;
}
.brandsolution-live .program-item__text h3 br {
  display: none;
}
.brandsolution-live .program-item__text p {
  margin-top: 32px;
  font-size: 14px;
}
.brandsolution-live .program-item__text p .note {
  display: inline-block;
  line-height: 1.4;
  color: #e4e4e4;
}
.brandsolution-live .program-item__speakers {
  padding: 40px 26px;
  background-color: #DCE6E5;
}
.brandsolution-live .program-item-speakers__item:not(:first-of-type) {
  margin-top: 32px;
}
.brandsolution-live .program-item-speakers__body {
  display: flex;
  align-items: center;
}
.brandsolution-live .program-item-speakers__photo img {
  width: 110px;
  height: 110px;
}
.brandsolution-live .program-item-speakers__text {
  margin-left: 16px;
  font-size: 14px;
  line-height: 1.6;
}
.brandsolution-live .program-item-speakers__name {
  font-size: 14px;
}
.brandsolution-live .program-item-speakers__profile {
  margin-top: 24px;
  font-size: 12px;
}
.brandsolution-live .event {
  margin: 100px 26px 0;
}
.brandsolution-live .event__copy {
  font-size: 14px;
}
.brandsolution-live .event__title {
  font-size: 26px;
  line-height: 1.4;
}
.brandsolution-live .event__list {
  margin-top: 24px;
}
.brandsolution-live .event .note {
  margin-top: 1em;
}
.brandsolution-live .brandsolution {
  margin: 80px 26px 0;
}
.brandsolution-live .brandsolution__title {
  font-size: 20px;
  line-height: 1.4;
}
.brandsolution-live .brandsolution__text {
  margin-top: 16px;
}
.brandsolution-live .brandsolution__btn {
  margin-top: 40px;
}
.brandsolution-live .form {
  background-color: #DCE6E5;
  margin: 100px 0 0;
  padding: 40px 0;
}
.brandsolution-live .form__embed {
  margin: 24px 26px 0;
}
.brandsolution-live .form__title {
  font-size: 24px;
  text-align: center;
}
.brandsolution-live .floating {
  opacity: 0;
  position: fixed;
  left: 16px;
  bottom: 16px;
  z-index: 9999;
}
.brandsolution-live .floating__btn a:hover {
  opacity: 80%;
}
.brandsolution-live .floating__btn a img {
  width: 240px;
  height: 47px;
}
.brandsolution-live .share {
  opacity: 0;
  position: fixed;
  right: 16px;
  bottom: 22px;
  z-index: 9999;
}
.brandsolution-live .share__list {
  display: flex;
}
.brandsolution-live .share__list li a {
  display: block;
  width: 32px;
  height: 32px;
  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: 32px auto;
}
.brandsolution-live .share__facebook a {
  margin-left: 16px;
  background: url(../img/icon_facebook.svg) 0 0 no-repeat;
  background-size: 32px 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;
  }
}

.sp-w-10p {width: 10%;}
.sp-w-20p {width: 20%;}
.sp-w-30p {width: 30%;}
.sp-w-40p {width: 40%;}
.sp-w-50p {width: 50%;}
.sp-w-60p {width: 60%;}
.sp-w-70p {width: 70%;}
.sp-w-80p {width: 80%;}
.sp-w-90p {width: 90%;}
.sp-w-100p {width: 100%;}

