@charset "utf-8";

/*-----------------------------------------------
  common
-----------------------------------------------*/
.inner { max-width: 1366px; }

/*-----------------------------------------------
  leadContent
-----------------------------------------------*/
.leadContent { position: relative; padding-top: 127px; margin-bottom: 113px; }
#subleadContent { z-index: 3; }
#subleadContent ul li:not(:last-child) { margin-bottom: 28px; }
#subleadContent ul li a { position: relative; font-size: 15px; font-weight: 600; opacity: 1; transition: opacity .2s ease; }
#subleadContent ul li a > span { position: relative; display: block; font-size: 20px; margin-top: 7px; transition: .3s; }
#subleadContent ul li a > span::before { content: ""; position: absolute; left: -33px; top: 0; bottom: 0; margin: auto; width: 18.5px; height: 2px; background: #000; transition: .3s; }

#subleadContent ul a > span span { position: relative;}
#subleadContent ul a > span span::after {
  position: absolute;
  left: 0;
  bottom: -6px;
  content: "";
  width: 100%;
  height: 2px;
  background: #000;
  transform: scale(0, 1);
  transform-origin: right top;
  transition: transform .4s;
}

@media (hover:hover) {
  #subleadContent ul:hover a { opacity: .2; }
  #subleadContent li:hover a { opacity: 1; }
  #subleadContent li:hover a > span span::after { transform: scale(1, 1); transform-origin: left top; }
}

.leadContent .breadcrumb { text-align: right; padding-top: 100px; }
.leadContent .breadcrumb ul { display: flex; align-items: center; justify-content: flex-end; }
.leadContent .breadcrumb a { position: relative; color: #9D9D9D; font-size: 15px; padding-right: 15px; }
.leadContent .breadcrumb a::after { content: "＞"; position: absolute; right: 5px; top: 6.5px; margin: auto; font-size: 6px; font-weight: 700; }
.leadContent h2 { font-size: 80px; font-weight: 700; text-align: right; margin-top: 12px; }
.leadContent figure { margin-top: 19px; overflow: hidden; display: flex; justify-content: center; align-items: center; }
.leadContent figure img { width: 100%; height: auto; }

@media (min-width:1080px) {
  #subleadContent { position: absolute; left: -30px; top: 0; padding: 54px 25px 40px 63px; background: rgba(255,255,255,.9); }
}
@media (max-width:1079px) {
  .leadContent { padding-top: 27px; margin-bottom: 75px; }
  .leadContent.noimg { margin-bottom: 60px; }
  #subleadContent { padding: 30px 25px 0; }
  #subleadContent ul li:not(:last-child) { margin-bottom: 12px; }
  #subleadContent ul li a { font-size: 13px; }
  #subleadContent ul li a span { font-size: 16px; }
  #subleadContent ul li a span::before { width: 13.5px; height: 2px; left: -22px; }
  .leadContent .breadcrumb { padding-top: 60px; }
  .leadContent .breadcrumb a { font-size: 13px; padding-right: 12px; }
  .leadContent .breadcrumb a::after { font-size: 7px; }
  .leadContent h2 { font-size: 45px; }
  .leadContent figure { margin-top: 20px; }
}

/*-----------------------------------------------
  head
-----------------------------------------------*/
h3 { font-size: 60px; font-weight: 700; }
h3 + p { font-family: din-2014, "Noto Sans JP", sans-serif; font-weight: 700; font-style: normal; font-size: 20px; line-height: 1.6; letter-spacing: 0; margin: 0 0 75px 6px; }
h4 { font-size: 40px; font-weight: 700; margin-bottom: 40px; }
h4 + p { font-size: 15px; font-weight: 400; line-height: 2; margin-bottom: 60px; }
h4 + p:last-child { margin-bottom: 0; }
h5 { font-size: 28px; font-weight: 700; margin-bottom: 35px; }
h6 { font-size: 22px; font-weight: 700; margin-bottom: 25px; line-height: 1.6; }

@media (max-width:767px) {
  h3 { font-size: 38px; line-height: 1; }
  h3 + p { font-size: 15px; margin: 8px 0 35px 1px; }
  h4 { font-size: 24px; margin-bottom: 25px; line-height: 32px; }
  h4 + p { font-size: 14px; margin-bottom: 45px; }
  h5 { font-size: 21px; margin-bottom: 20px; }
  h6 { font-size: 18px; margin-bottom: 17px; }
}

/*-----------------------------------------------
  layout
-----------------------------------------------*/
.cont:not(:first-of-type) { padding-top: 55px; }
.cont:last-child { padding-bottom: 140px; }
@media (min-width:768px) { .flexlist-item { display: flex; justify-content: flex-start; } }
@media (max-width:767px) { .cont:last-child { padding-bottom: 70px; } }

/*-----------------------------------------
  slider5
-----------------------------------------*/
.slider5 .slick-list { overflow: visible; }
.slider5 .slick-img { padding: 6.25vw 0; }
.slider5 .slick-img img { display: block; width: 100%; height: auto; opacity: .6; transform: scale(1.25); transition: opacity .5s ease, transform .5s ease; will-change: transform, opacity; }
.slider5 .slick-center img { opacity: 1; transform: scale(1.6); z-index: 2; position: relative; }

.arrow_box5 { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); display: flex; justify-content: space-between; align-items: center; pointer-events: none; }

@media (min-width:768px) {
  .slider5 a:hover { opacity: 1; }
  .arrow_box5 .prev-arrow { left: -23.792vw; }
  .arrow_box5 .next-arrow { right: -23.792vw; }
}
@media (max-width:767px) {
  .slider5 .slick-center img { transform: scale(1) !important; }
  .slider5 .slick-img img { transform: scale(0.8); }
  .slider5 .slick-dots { bottom: -15px !important; }
  .arrow_box5 { width: 96%; }
}

/*-----------------------------------------
  slider6
-----------------------------------------*/
.arrow_box6 { display: flex; gap: 16px; justify-content: flex-start; align-items: center; margin-top: 25px; }
@media (min-width:600px) {
  .slick-vertical + .arrow_box6 .prev-arrow { transform: rotate(-90deg) !important; }
  .slick-vertical + .arrow_box6 .next-arrow { transform: rotate(90deg) !important; }
}
@media (max-width:599px) { .arrow_box6 { gap: 10px; } }

/*-----------------------------------------------
  pagination（paginate_links 'type' => 'list'）
-----------------------------------------------*/
.sr-only {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

.pagination { margin: 40px 0 0; text-align: center; }
.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; gap: 22px; list-style: none; padding: 0; margin: 0; }
.pagination .page-numbers li { list-style: none; padding: 0; margin: 0; }
.pagination .page-numbers a,
.pagination .page-numbers span {
  display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%;
  text-decoration: none; line-height: 1; font-size: 16px; color: #9B9B9B; border: none;
  transition: transform .18s ease, color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.pagination .page-numbers .current { background: #000; color: #fff; font-weight: 700; box-shadow: 0 2px 10px rgba(0,0,0,.08); }
.pagination .page-numbers a:focus-visible { outline: 2px solid #000; outline-offset: 3px; transform: none; }
.pagination .page-numbers .dots { width: auto; height: auto; border-radius: 0; color: #B8B8B8; padding: 0 2px; }
.pagination .page-numbers.prev,
.pagination .page-numbers.next { color: transparent; text-indent: 100%; overflow: hidden; white-space: nowrap; }
.pagination .page-numbers.prev { background-image: url(../images/page-ar001.svg); background-repeat: no-repeat; transform: rotate(180deg); background-position: center center; }
.pagination .page-numbers.next { background-image: url(../images/page-ar001.svg); background-repeat: no-repeat; background-position: center center; }

@media (max-width:480px) {
  .pagination { margin: 20px 0 0; }
  .pagination .page-numbers { gap: 14px; }
  .pagination .page-numbers a,
  .pagination .page-numbers span { width: 38px; height: 38px; font-size: 14px; }
  .pagination .page-numbers .prev,
  .pagination .page-numbers .next { font-size: 22px; padding: 0 4px; }
}
@media (prefers-reduced-motion:reduce) {
  .pagination .page-numbers a,
  .pagination .page-numbers span { transition: none; }
}

/*-----------------------------------------------
  who-we-are
-----------------------------------------------*/
.who-we-are .area1 { padding-top: 50px; margin-bottom: 50px; }
.who-we-are .area1 h3 + p { margin-bottom: 90px; }
.who-we-are .area2 { margin-bottom: 25px; }
.who-we-are .area2 figure { text-align: center; }
.who-we-are .area4 { margin-top: 140px; text-align: center; }
.who-we-are .area4 img { max-width: 100%; height: auto; }

.who-we-are h5 { font-size: 18px; margin-bottom: 20px; }
.who-we-are h5 + div { line-height: 2; }
.who-we-are h5 span { color: #8F8F8F; font-size: 14px; }
.who-we-are .system-grid figure { margin-bottom: 25px; text-align: center; }
@media (min-width:768px) {
  .who-we-are h4 { font-size: 46px; }
  .who-we-are .system-grid { position: relative; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 65px 40px; overflow: hidden; }
  .who-we-are .system-grid li { position: relative; }
  .who-we-are .system-grid li:nth-child(1),
  .who-we-are .system-grid li:nth-child(2),
  .who-we-are .system-grid li:nth-child(3) { padding-bottom: 62px; }
  .who-we-are .system-grid li:nth-child(1)::before,
  .who-we-are .system-grid li:nth-child(2)::before,
  .who-we-are .system-grid li:nth-child(3)::before { content: ""; background: #cfcfcf; width: 120%; height: 1px; position: absolute; bottom: 0; }
}
@media (max-width:767px) {
  .who-we-are .area1 { padding-top: 0; margin-bottom: 15px; }
  .who-we-are .area1 h3 + p { margin-bottom: 30px; }
  .who-we-are .area2 { margin-bottom: 15px; }
  .who-we-are .area2 figure { width: 600px; }
  .who-we-are .area4 { margin-top: 70px; }

  .who-we-are h4 { font-size: 30px; }
  .who-we-are .system-grid .slick-slide { min-height: 400px; }
  .who-we-are .system-grid + .flexBox { display: flex !important; align-items: center; gap: 0 26px; margin-top: 25px; }
  .who-we-are .area3 h4 + p { margin-bottom: 15px; }
}

/*-----------------------------------------------
  service
-----------------------------------------------*/
.service .area1 h5 { font-size: 36px; font-weight: 800; line-height: 1.36363; }

/* area2 */
.service .area2 { padding-bottom: 70px; }
.service .area2 ul.flexlist li:not(:last-child) { margin-bottom: 115px; }
.service .area2 ul.flexlist li .flexlist-title { margin-bottom: 20px; }
.service .area2 ul.flexlist li .flexlist-title p.number { position: relative; font-family: din-2014, sans-serif; font-size: 80px; line-height: .875; letter-spacing: -.02em; }
.service .area2 ul.flexlist li .flexlist-title p.number::after { content: ""; position: absolute; right: 0; top: 0; bottom: 0; margin: auto; width: 2px; height: 55px; background: #000; }
.service .area2 ul.flexlist li .flexlist-title p.head { font-size: 25px; line-height: 1.4; font-weight: 700; letter-spacing: -.02em; white-space: nowrap; }
.service .area2 ul.flexlist li .flexlist-text .link-arrow { margin-top: 26px; }
.service .area2 ul.flexlist li .flexlist-image-area img { width: 100%; }

/* area3 */
.service .area3 { padding-bottom: 45px; }
.service .area3 ul.contentslist li:not(:last-child) { margin-bottom: 70px; }
.service .area3 ul.contentslist li .contentslist-lead { margin-bottom: 80px; }
.service .area3 ul.contentslist li .contentslist-lead p.head { font-family: din-2014, sans-serif; font-size: 80px; line-height: 1; letter-spacing: -.02em; margin-bottom: 30px; }
.service .area3 ul.contentslist li .image-area { text-align: center; }
.service .area3 ul.contentslist li .itemlist .item:not(:last-child) { margin-bottom: 45px; }
.service .area3 ul.contentslist li .itemlist .item .head-area .head { font-size: 25px; font-weight: 700; padding-left: 15px; }
.service .area3 ul.contentslist li .itemlist .item .head-area .head span { display: block; font-family: din-2014, sans-serif; font-size: 15px; color: #8D8D8D; margin-bottom: -8px; }
.service .area3 ul.contentslist li .itemlist .item .text-area dl { margin-top: 25px; }
.service .area3 ul.contentslist li .itemlist .item .text-area dl dt { width: 95px; }
/* .service .area3 ul.contentslist li .itemlist .item .text-area dl dt p { background: #000; color: #fff; padding: 0 11px; white-space: nowrap; } */
.service .area3 ul.contentslist li .itemlist .item .text-area dl dd ul { display: flex; justify-content: flex-start; align-items: center; gap: 8px; flex-wrap: wrap; }
.service .area3 ul.contentslist li .itemlist .item .text-area dl dd ul li { font-family:"Noto Sans JP",sans-serif; font-weight: 700; line-height: 2; background: #000; color: #fff; padding: 0 11px; white-space: nowrap; margin: 0; }

/* area4 */
.service .area4 h3 + p { margin-bottom: 0; }
.service .area4 .flexbox { margin-bottom: 75px; }
.service .area4 .flexbox .link-arrow { margin-top: 22px; }

.service .area4 .works-section .headArea { margin-bottom:25px; }
.service .area4 .works-section .head01 { font-size:15px; font-weight:200; margin-bottom: 0; color: #8D8D8D; }
.service .area4 .works-section .head02 { display: flex; align-items: center; font-size:25px; font-weight:700; line-height:2; }

.service .area4 .works-section a.head02__more { position:relative; display:inline-block; margin-left:37px; font-size:16px; font-weight:500; line-height: 1.625em; }
.service .area4 .works-section .head02__more::before { content:""; position:absolute; top:7px; left:-23px; width:18px; height:18px; background:url(../images/icon_simple-arrow-black.svg) no-repeat center bottom / contain; }
.service .area4 .works-section .head02__more::after { content:""; position:absolute; left:0; right:0; bottom:3.5px; height:1.5px; background:#000; opacity:1; transform:translateY(0); transition:transform .1s ease, opacity .1s ease; pointer-events:none; }
@media (hover:hover) {
  .service .area4 .works-section .head02__more:hover::after { transform:translateY(5px); opacity:0; }
}
@media (prefers-reduced-motion:reduce) {
  .service .area4 .works-section .head02__more::after { transition:none; }
}
.service .area4 .works-section:not(:last-of-type) { margin-bottom: 25px; }


@media (min-width:768px) {
  .service .area1 .flexbox { display: grid; grid-template-columns: 1fr 1fr; }
  .service .area1 .flexbox .flexlist-title { display: flex; }
  .service .area1 .flexbox .flexbox-text { padding-right: 60px; }
  .service .area1 .flexbox-image figure { margin-top: -110px; }
  .service .area1 .flexbox-image figure img { width: 100%; }
  .service .area2 ul.flexlist li { display: flex; }
  .service .area2 ul.flexlist li:nth-child(even) { flex-direction: row-reverse; }
  .service .area2 ul.flexlist li:nth-child(even) .flexlist-text-area { padding-right: 0; padding-left: 60px; }
  .service .area2 ul.flexlist li .flexlist-text-area { padding-right: 60px; }
  .service .area2 ul.flexlist li .flexlist-text-area,
  .service .area2 ul.flexlist li .flexlist-image-area { width: 50%; }
  .service .area2 ul.flexlist li .flexlist-title { display: flex; }
  .service .area2 ul.flexlist li .flexlist-title p.number { padding-right: 19px; margin-right: 13px; }
  .service .area3 ul.contentslist li .itemlist { padding-top: 20px; }
  .service .area3 ul.contentslist li .itemlist .item { display: flex; }
  .service .area3 ul.contentslist li .itemlist .item .head-area { width: 360px; }
  .service .area3 ul.contentslist li .itemlist .item .text-area { width: calc(100% - 360px); }
  .service .area3 ul.contentslist li .itemlist .item .text-area dl { display: flex; gap: 20px; }
  .service .area3 ul.contentslist li .itemlist .item .text-area dl dd { width: calc(100% - 115px); }
  .service .area4 .flexbox { display: flex; gap: 55px; }
}
@media (max-width:767px) {
  .service .area1 { margin-bottom: 35px; }
  .service .area1 h5 { font-size: 24px; }
  .service .area1 .flexbox .flexbox-text { margin-bottom: 40px; }
  .service .area1 .flexbox-image { text-align: center; }
  .service .area2 { margin-bottom: 35px; }
  .service .area2 ul.flexlist li:not(:last-child) { margin-bottom: 50px; }
  .service .area2 ul.flexlist li .flexlist-title p.number { font-size: 36px; padding-bottom: 20px; margin-bottom: 15px; }
  .service .area2 ul.flexlist li .flexlist-title p.number::after { right: auto; left: 0; top: auto; width: 37px; height: 2px; }
  .service .area2 ul.flexlist li .flexlist-title p.head { font-size: 20px; }
  .service .area2 ul.flexlist li .flexlist-image-area { margin-top: 25px; }
  .service .area3 ul.contentslist li .contentslist-lead p.head { font-size: 50px; }
  .service .area3 ul.contentslist li .itemlist .item .head-area { margin-bottom: 15px; }
  .service .area3 ul.contentslist li .itemlist .item .head-area .head { font-size: 18px; padding-left: 0; }
  .service .area3 ul.contentslist li .itemlist .item .text-area dl dt p { margin-bottom: 10px; text-align: center; }
  .service .area3 ul.contentslist li .contentslist-lead { margin-bottom: 45px; }
  .service .area3 ul.contentslist li .image-area img { max-width: 680px; }
  .service .area4 .flexbox { margin-bottom: 55px; }
  .service .area4 .flexbox .link-arrow { text-align: right; }
  .service .area4 .works-section .headArea { margin-bottom: 20px; }
  .service .area4 .works-section .head01 { margin-bottom: -8px; }
  .service .area4 .works-section .head02 { font-size: 18px; }
  .service .area4 .works-section:not(:last-of-type) { margin-bottom: 40px; }

  .service .works-grid { grid-template-columns: 1fr 1fr !important; }
  .service .works-grid .works-grid-item:last-child,
  .service .works-grid .works-grid-item:nth-last-child(2) { margin-bottom: 0; }
}

/*-----------------------------------------------
  company
-----------------------------------------------*/
.company .area1 { padding: 50px 0; }
.company .area2 { padding: 50px 0 100px; }
.company .gmap { margin-bottom: 30px; filter: grayscale(1) !important; }
.company .gmap iframe { width: 100%; height: 540px; }
.company .gmap + p { font-size: 20px; line-height: 1.5; }
.company .gmap + p + .link-arrow { margin-top: 40px; }

/* 会社概要：2カラム固定 */
.profile { display: grid; grid-template-columns: minmax(120px,150px) 1fr; font-size: 16px; font-weight: 400; }
.profile dt,
.profile dd { font-family: "Noto Sans JP", sans-serif; position: relative; padding: 22px 0; margin: 0; line-height: 1.6; font-weight: 400; }
.profile dt::after,
.profile dd::after { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 1px; background: #000; }
.profile dt::after { width: 80%; }
.profile dt:last-of-type::after,
.profile dd:last-of-type::after { display: none; }
.profile dt { grid-column: 1; padding-right: 16px; white-space: nowrap; }
.profile dd { grid-column: 2; }
.profile .small { font-size: .95em; color: var(--muted); }

@media (max-width:767px) {
  .company .area1 { padding: 0; }
  .company .area1 h3 + p { margin-bottom: 20px; }
  .profile { grid-template-columns: 110px 1fr; font-size: 13px; }
  .company .gmap iframe { height: 80vw; }
  .company .gmap + p { font-size: 14px; }
  .company .area2 { padding: 50px 0 120px; }
}

/* 箇条書き */
.list { margin: 0; }
.list li { margin: .2em 0; }

/* 主要取引先：段組 */
.partners { columns: 2 320px; column-gap: min(6vw,40px); list-style: none; padding: 0; margin: 0; }
.partners li { break-inside: avoid; padding: .25em 0; }

/* 備考 */
.note { margin-top: .75em; color: var(--muted); font-size: .92em; text-align: right; }

/*-----------------------------------------------
  archive-works modal
-----------------------------------------------*/
/* （必要に応じて追記） */

/*-----------------------------------------------
  archive-works
-----------------------------------------------*/
.works #subleadContent,
.news #subleadContent { padding-top: 34px; }
.archive .subleadContent-head { margin-bottom: 22px; }
.archive #subleadContent ul { display: flex; flex-wrap: wrap; flex-direction: column-reverse; }
.archive #subleadContent ul li { width: 100%; margin-bottom: 28px; }

.archive .category-name { text-align: center; margin-bottom: 90px; }
.archive .category-name p { position: relative; font-size: 20px; font-weight: 700; padding-bottom: 8px; }
.archive .category-name p::before { content: ""; position: absolute; bottom: 0; left: 0; right: 0; margin: 0 auto; width: 80px; height: 4px; background: #000; }

.works-grid .works-grid-item { margin-bottom: 40px; padding-right: 20px; }
.works-grid .thumb { margin-bottom: 20px; display: block; }
.works-grid .thumb figure { aspect-ratio: 94/53; overflow: hidden; display: flex; justify-content: center; align-items: center; background: #fff; }
.works-grid .thumb-figure { position: relative; overflow: hidden; isolation: isolate; }
.works-grid .thumb-figure.has-bg-blur::before { content: ""; position: absolute; inset: 0; z-index: 0; background: var(--bg) center/cover no-repeat; filter: blur(3px); transform: scale(1.06); }
.works-grid .thumb-figure > img { position: absolute; inset: 0; margin: auto; width: 100%; height: 100%; object-fit: contain; object-position: center; z-index: 1; }

@media (min-width:768px) {
  .works-grid .thumb figure img { transition-duration: .4s; }
  .works-grid .thumb:hover figure img { transform: scale(1.12); }
  .works-grid .thumb:hover { opacity: 1; }
  .works-grid .thumb .thumb-figure.has-bg-blur::before { transition-duration: .4s; }
  .works-grid .thumb:hover .thumb-figure.has-bg-blur::before { transform: scale(1.12); }
}

.works-grid .head { margin-bottom: 10px; }
.works-grid .head a { font-family: din-2014, "Noto Sans JP", sans-serif; font-size: 18px; font-weight: 700; line-height: 1.3; }
.works-grid .works-tags { display: flex; gap: 10px 15px; }
.works-grid .works-tag { font-family: "Noto Sans JP", sans-serif; font-size: 16px; font-weight: 700; color: #CBCBCB; }

@media (min-width:768px) {
  .archive .works-grid,
  .page .works-grid { display: flex; flex-wrap: wrap; justify-content: space-between; }
  .archive .works-grid .works-grid-item,
  .page .works-grid .works-grid-item { width: 49%; }
}
@media (max-width:767px) {
  .works .leadContent,
  .news .leadContent { margin-bottom: 25px; }
  .archive .works-grid,
  .page .works-grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 15px; }
  .works-grid .head a,
  .works-grid .head button { font-size: 14px !important; }
  .works-grid .thumb { margin-bottom: 20px; }
  .works-grid .works-grid-item { margin-bottom: 25px; }
  .archive #subleadContent ul li { margin-bottom: 14px; }
  .archive #subleadContent ul li:first-child { margin-bottom: 0; }
  .archive .subleadContent-head { margin-bottom: 14px; }
  .archive .category-name { margin-bottom: 45px; }
  .archive .category-name p { font-size: 18px; padding-bottom: 8px; }
  .archive .category-name p::before { width: 60px; height: 3px; }
  .works-grid { grid-template-columns: 1fr !important; }
  .works-grid .works-tag { font-size: 15px; }
  .works-grid .works-grid-item { padding-right: 15px; }
}

/* slick 内の調整 */
.single .workslist .slick-list { overflow: visible; }
.single .workslist .works-grid .slick-slide { margin: 0 20px 0 0; max-width: 387px; }

/* 汎用リンク風ボタン */
.link-like {
  appearance: none; background: none; border: 0; padding: 0; color: inherit; text-align: left;
  cursor: pointer; text-decoration: none; font-family: din-2014, "Noto Sans JP", sans-serif; font-size: 18px; font-weight: 700; line-height: 1.3;
}

/*-----------------------------------------------
  single-works
-----------------------------------------------*/
.single-works .allwrap { background: #F7F7F7; }

/* marquee */
.single-works .marquee { width: 100%; overflow: hidden; white-space: nowrap; position: relative; margin: 127px 0 0; padding: 5px 0 20px; }
.single-works .marquee h2 { display: inline-block; padding-left: 100%; animation: marquee-animation 20s linear infinite; color: #A7A7A7; font-size: 90px; }
@keyframes marquee-animation { from { transform: translateX(0%); } to { transform: translateX(-100%); } }

/* hero */
.single-works .hero { display: grid; place-items: center; background: #1F1F1F; padding: 110px 0 0; }
.single-works .hero .embed { width: 670px; aspect-ratio: 16/9; overflow: hidden; }
.single-works .hero .embed--instagram { width: 380px; aspect-ratio: 9/16; }
.single-works .hero .embed--other { width: 380px; aspect-ratio: 9/18; }
.tiktok-embed { margin: 0 auto; }
.tiktok-embed,
.tiktok-embed > section { background: transparent !important; box-shadow: none !important; border: 0 !important; }

.single-works .embed > iframe,
.single-works .embed > video { width: 100%; height: 100%; border: 0; display: block; }

/* card */
.single-works .card { position: relative; padding: 105px 0 0; }
.single-works .card::before { content: ""; position: absolute; top: 0; width: 100%; height: 70%; background: #1f1f1f; }
.single-works .card__inner { padding: 75px 90px 95px; background: #fff; }
.single-works .card__inner .grid { display: grid; grid-template-columns: min(30%, 300px) 2fr; gap: 15px; align-items: start; }
.single-works .card__inner .grid:not(:last-of-type) { margin-bottom: 50px; }
.single-works .card__inner .label { font-weight: 700; letter-spacing: .1em; font-size: 35px; color: #000; padding-top: 0; }
.single-works .title { font-size: 35px; line-height: 1.4; font-weight: 700; letter-spacing: .1em; }
.single-works .dl { display: grid; grid-template-columns: 85px 1fr; column-gap: 45px; font-size: 14px; }
.single-works .dl dt { letter-spacing: .1em; padding: 12px 2px; border-bottom: 1px solid #000; }
.single-works .dl dd { font-family: "Noto Sans JP", sans-serif; padding: 12px 3px; border-bottom: 1px solid #000; }
.single-works .dl dd .tag-list { display: flex; gap: 10px; }
.single-works .category-name { font-family: "Noto Sans JP", sans-serif; padding: 12px 0; margin-bottom: 14px; }
.single-works .tags { display: flex; flex-wrap: wrap; gap: 10px 14px; }
.single-works .tags div { letter-spacing: .1em; }
.single-works .tags ul { display: flex; gap: 0 24px; }
.single-works .tags a { font-family: "Noto Sans JP", sans-serif; font-size: 14px; letter-spacing: .1em; }

@media (max-width:1079px) {
  .single-works .marquee h2 { font-size: 55px; }
  .single-works .card__inner { padding: 70px 70px 80px; }
  .single-works .card__inner .label { font-size: 28px; }
  .single-works .title { font-size: 25px; }
}
@media (max-width:899px) {
  .single-works .marquee { margin: 72px 0 0; padding: 4px 0 12px; }
  .single-works .marquee h2 { font-size: 36px; padding-left: 100%; animation: marquee-animation 20s linear infinite; color: #A7A7A7; white-space: nowrap; }
  .single-works .hero { padding: 40px 0 0; }
  .single-works .hero .embed { width: min(88vw, 680px); aspect-ratio: 16/9; overflow: hidden; }
  .single-works .hero .embed--instagram { width: min(87vw, 380px); aspect-ratio: 9/16; }
  .single-works .card { padding: 40px 0 0; }
  .single-works .card::before { height: 260px; }
  .single-works .card__inner { padding: 24px 18px 32px; }
  .single-works .card__inner .grid { grid-template-columns: 1fr; gap: 10px; }
  .single-works .card__inner .grid:not(:last-of-type) { margin-bottom: 28px; }
  .single-works .card__inner .label { font-size: 18px; letter-spacing: .1em; }
  .single-works .title { font-size: 18px; line-height: 1.5; letter-spacing: .06em; }
  .single-works .dl { grid-template-columns: 90px 1fr; column-gap: 16px; font-size: 14px; }
  .single-works .dl dt { letter-spacing: .08em; padding: 10px 0; }
  .single-works .dl dd { padding: 10px 0; }
  .single-works .dl dd .tag-list { flex-wrap: wrap; gap: 8px 12px; }
  .single-works .category-name { padding: 8px 0; margin-bottom: 10px; font-size: 14px; }
  .single-works .tags { gap: 8px 12px; }
  .single-works .tags div { letter-spacing: .08em; font-size: 14px; }
  .single-works .tags ul { flex-wrap: wrap; gap: 8px 14px; }
  .single-works .tags a { font-size: 13px; letter-spacing: .08em; }
}
.relates-works-area { margin-top: 100px; }
.relates-works-area .workslist-head { font-size: 20px; margin-bottom: 20px; letter-spacing: .1em; }
@media (max-width:899px) {
  .relates-works-area { margin-top: 50px; padding: 0 0 10px; }
  .relates-works-area .workslist-head { font-size: 18px; }
}

/*-----------------------------------------------
  produce
-----------------------------------------------*/
.produce .area1 { margin-bottom: 90px; }
.produce .area1 h6 + p { margin-bottom: 40px; }
.produce .area1 figure img { width: 100%; }
.produce .area2 { margin-bottom: 80px; }
.produce .area3 { margin-bottom: 80px; }
.produce .area3 figure { margin-top: 60px; }
.produce .area3 figure img { width: 100%; }

/* feature grid */
.produce .feature-grid { position: relative; list-style: none; margin: -50px 0 0; padding: 0; }
.produce .feature-grid .card figure { margin: 0; overflow: hidden; display: grid; place-items: center; }
.produce .feature-grid .card figure img { width: 100%; height: 100%; object-fit: contain; display: block; }
.produce .feature-grid .card .card-body { padding: 10px 5px; }
.produce .feature-grid .card .card-head { font-size: 20px; font-weight: 700; letter-spacing: .05em; line-height: 1; }
.produce .feature-grid .card .card-head-sub { font-size: 13px; color: #6E6E6E; font-weight: 700; margin-bottom: 10px; }
.produce .feature-grid .card .card-text { font-size: 14px; }

@media (min-width:768px) {
  /* .produce .feature-grid::before { content: ""; } */
  .produce .feature-grid { display: flex; justify-content: center; gap: 20px; flex-wrap: wrap; }
  .produce .feature-grid .card { width: calc(100% / 3 - 15px); }
}
@media (max-width:767px) {
  .produce .area1 { margin-bottom: 25px; }
  .produce .area1 h6 + p { margin-bottom: 25px; }
  .produce .area2 { margin-bottom: 30px; }
  .produce .area2 h3 + p { margin-bottom: 0; }
  .produce .area3 { margin-bottom: 30px; }
  .produce .area3 h6 + p { margin-bottom: 30px; }
  .produce .scroll-hint figure img { width: 600px; max-width: none; }
  .produce .feature-grid { margin-top: 0; }
  .produce .feature-grid .card { min-height: 440px; }
  .produce .feature-grid .card figure img { width: 85%; }
  .produce .feature-grid + .flexBox { display: flex !important; align-items: center; gap: 0 26px; margin-top: 25px; }
}

/*-----------------------------------------------
  member grid
-----------------------------------------------*/
.memberlist-grid {
  display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 46px 16px;
  list-style: none; margin: 0; padding: 0;
}
.memberlist-grid > li { overflow: hidden; }
.memberlist-grid img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.memberlist-grid figure.thumb-figure { aspect-ratio: 1 / 1; overflow: hidden; display: flex; align-items: flex-start; justify-content: center; }

.memberlist-grid .works-card-name { font-size: 15px; font-weight: 700; line-height: 1.5; display: block; padding: 8px 0 0; letter-spacing: .05em; }

/* モーダルの縦スクロール領域調整 */
.embed-modal-member .embed-modal__content { overflow-y: scroll; background: #151515; max-height: calc(min(90vh,90dvh)); aspect-ratio: auto; padding: 0 !important; }

/* member modal */
.member-modal.layout--member { position: relative; color: #fff; width: 100%; }
.member-modal__header { position: relative; min-height: 36px; }

/* visuals */
.member-modal__visuals { display: grid; grid-template-columns: 1fr 49%; gap: 16px; align-items: stretch; }
.member-modal__visual-main { aspect-ratio: 1/1; overflow: hidden; display: flex; align-items: flex-start; justify-content: center; }
.member-modal__visual-main img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.member-modal__visual-subs { display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: 1fr; gap: 16px; }
.member-modal__visual-sub { aspect-ratio: 1/1; overflow: hidden; }
.member-modal__visual-sub img { width: 100%; height: 100%; object-fit: cover; display: block; }
.member-modal__visual-sub--placeholder { display: block; width: 100%; height: 100%; background: #2a2a2a; }

.member-modal__visual-subs img.is-fallback { opacity: .2; }

/* bio */
.member-modal__bio { position: relative; display: flex; justify-content: flex-start; gap: 30px; margin: 30px 0 70px; }
.member-modal__identity { display: grid; align-content: start; gap: 10px; white-space: nowrap; }
.member-modal__role { font-size: 12px; opacity: .75; }
.member-modal__name-ja { font-size: 30px; font-weight: 800; letter-spacing: .04em; }
.member-modal__name-en { font-size: 18px; letter-spacing: .05em; font-weight: 500; font-family: "Noto Sans JP", sans-serif; }

.member-modal__comment p { line-height: 2; font-size: 14px; }
.member-modal__watermark { position: absolute; top: 50px; right: 0; left: 0; margin: 0 auto; text-align: center; font-size: 80px; color: rgba(255,255,255,.02); z-index: -1; }

/* section */
.member-modal__section { display: grid; grid-template-columns: 115px 1fr; align-items: center; margin-top: 45px; }
.member-modal__section.flex-start { align-items: flex-start; }
.member-modal__section-title { font-size: 18px !important; letter-spacing: 0; }

/* SKILL */
.member-modal__section .skill { display: inline-block; border: 1px solid rgba(255,255,255,.35); padding: 11px 24px; font-size: 14px; line-height: 1.8; letter-spacing: .05em; margin-bottom: 0; }

/* SNS */
.member-modal__section .sns-list { display: flex; flex-wrap: wrap; gap: 14px 18px; }
.member-modal__section .sns-list a { text-decoration: underline; }

/* WORKS mini cards */
.member-modal__section .works-grid-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 25px 20px; }
.member-modal__section .works-card-mini__thumb { position: relative; aspect-ratio: 16/9; overflow: hidden; display: flex; justify-content: center; align-items: center; }
.member-modal__section .works-card-mini__thumb > img { position: relative; z-index: 1; width: auto; max-height: 100%; height: 100%; }
.member-modal__section .has-bg-blur::before { content: ""; position: absolute; inset: 0; background: var(--bg) center/cover no-repeat; filter: blur(3px); transform: scale(1.08); }
.member-modal__section .works-card-mini__title { margin-top: 15px; font-size: 14px; line-height: 1.4; }

@media (min-width:768px) {
  .member-modal__section-title { text-align: right; padding-right: 20px; }
  .memberlist-grid figure.thumb-figure img { transition-duration: .4s; }
  .memberlist-grid figure.thumb-figure:hover img { transform: scale(1.12); }
}
@media (max-width:767px) {
  .memberlist-grid { grid-template-columns: repeat(2,1fr); }
  .memberlist-grid .works-card-name { font-size: 13px; }
  .member-modal__section { grid-template-columns: 1fr; margin-top: 40px; }
  .member-modal__identity { margin-bottom: 25px; }
  .member-modal__name-ja { font-size: 24px; }
  .member-modal__name-en { font-size: 15px; }
  .member-modal__watermark { font-size: 60px; }
  .member-modal__bio { margin-bottom: 30px; display: block; }
  .member-modal__section-title { margin-bottom: 15px; }
  .member-modal__visuals { grid-template-columns: 1fr; }
  .member-modal__visual-subs { grid-template-columns: 1fr 1fr; }
  .member-modal__section .works-grid-2col { grid-template-columns: 1fr; gap: 35px 20px; }
  .member-modal__section .skill { font-size: 13px; }
}

/*-----------------------------------------------
  archive-brand
-----------------------------------------------*/
.brand .slider-wrap { position: relative; margin: 19px calc(50% - 50vw) 0; width: 100vw; }

.brand .area1 { margin-bottom: 90px; }
.brand .area1 .textbox .text1 { font-size: 18px; margin-top: 43px; line-height: 1.863636; }
.brand .area1 .textbox .text1 span { font-weight: 800; }
.brand .area1 .textbox .text2 { font-size: 28px; font-weight: 800; line-height: 1.5; margin-top: 43px; }
.brand .area2 { margin-bottom: 90px; }

.archive .brand #subleadContent ul { flex-direction: column; }
.archive .brand #subleadContent ul li:last-child { margin-bottom: 0; }

.brand .flexlist li { display: grid; grid-template-columns: min(41%,448px) 1fr; }
.brand .flexlist li:not(:last-child) { margin-bottom: 35px; }
.brand .flexlist li .flexlist-title { margin-bottom: 15px; }
.brand .flexlist li .flexlist-title .head { font-size: 22px; font-weight: 700; line-height: 1.4; }
.brand .flexlist li .flexlist-title .head span { font-size: 12px; display: block; margin-top: 5px; }
.brand .flexlist li .flexlist-info { display: flex; align-items: flex-start; gap: 16px; margin-top: 25px; }
.brand .flexlist li .flexlist-info .flexlist-info1 { font-size: 20px; font-weight: 700; white-space: nowrap; padding-top: 7.5px; }
.brand .flexlist li .flexlist-info .flexlist-info2 ul { display: flex; flex-wrap: wrap; gap: 8px; }
.brand .flexlist li .flexlist-info .flexlist-info2 ul li { font-size: 16px; font-weight: 700; background: #000; color: #fff; padding: 10px 18px; margin: 0; display: inline; }

.brand .flexlist .link-arrow { text-align: right; margin: 25px 0 0 0; }

@media (min-width:900px) {
  .brand .flexlist li .flexlist-text-area { padding-left: 60px; }
  .brand .flexlist li:hover .link-arrow span::after { transform: rotate(45deg); }
  .brand .slider-wrap figure { overflow: hidden; }
}
@media (max-width:899px) {
  .brand .flexlist li { grid-template-columns: 1fr; column-gap: 0; gap: 25px; }
  .brand .flexlist li .flexlist-title .head { font-size: 18px; }
  .brand h3 { font-size: 34px; line-height: 1.1; }
  .brand .area1 { margin-bottom: 20px; }
  .brand .area1 .textbox .text1 { font-size: 15px; margin-top: 20px; }
  .brand .area1 .textbox .text2 { font-size: 18px; margin-top: 35px; }
  .brand .area2 { margin-bottom: 30px; }
  .brand .flexlist li:not(:last-child) { margin-bottom: 40px; }
  .brand .flexlist li .flexlist-info { gap: 14px; margin-top: 20px; }
  .brand .flexlist li .flexlist-info .flexlist-info1 { font-size: 16px; padding-top: 5.5px; }
  .brand .flexlist li .flexlist-info .flexlist-info2 ul li { font-size: 13px; padding: 7px 10px; }
  .brand .flexlist .link-arrow { margin: 25px 0 0 0; float: right; }
}

/*-----------------------------------------------
  single-brand
-----------------------------------------------*/
.single-brand .inner { z-index: 2; }
.single-brand .leadContent { margin-bottom: 0; }
.single-brand .leadContent::after { content: ""; position: absolute; left: 0; bottom: 0; z-index: -1; width: 100%; height: min(34.407vw,470px); }
.single-brand .leadContent h2 { font-size: 58px; }
.single-brand .bg-color-area { position: relative; color: #fff; }
.single-brand .bg-color-area-object { position: absolute; top: -80px; right: 0; transform-origin: top right; transform: rotate(-90deg); margin-right: 280px; z-index: 0; }
.single-brand .bg-color-area-object p { font-family: din-2014, sans-serif; font-size: 380px; font-weight: 700; letter-spacing: 0; line-height: 1; white-space: nowrap; color: #000; opacity: .08; }

.single-brand .area1 { position: relative; padding: 75px 0 45px; }
.single-brand .area2 { position: relative; padding: 70px 0 65px; }
.single-brand .area1::after,
.single-brand .area2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 2px; background: #fff; }
.single-brand .area3 { padding-bottom: 75px; }
.single-brand .area3 h3 + p { margin-bottom: 65px; }
.single-brand .area4 { padding-top: 0; }
.single-brand .area5 { padding-top: 70px; }

/* hero */
.single-brand .hero { display: grid; grid-template-columns: 430px 1fr; column-gap: 50px; align-items: center; }
.single-brand .hero .hero-logo { margin: 0; }
.single-brand .hero .hero-logo img { width: 100%; height: auto; display: block; }
.single-brand .hero .hero-kana { text-align: center; display: block; margin: 30px 0 0; font-size: 14px; }

.single-brand .hero .hero-info .block:not(:last-child) { margin-bottom: 20px; }
.single-brand .hero .hero-info .block .block-label { display: inline-block; background: #fff; font-weight: 700; padding: 5px 31px; margin-bottom: 10px; font-size: 13px; line-height: 1; }
.single-brand .hero .hero-info .block .block-body,
.single-brand .hero .hero-info .block .block-body p,
.single-brand .hero .hero-info .block .block-body ul li,
.single-brand .hero .hero-info .block .block-body ul li a { font-family: "Noto Sans JP", sans-serif; font-size: 13px; line-height: 2.07692; font-weight: 700; }
.single-brand .hero .hero-info .block .block-body ul li a { text-decoration: underline; }
.single-brand .hero .hero-info .block .block-body ul.tags { display: flex; gap: 0 15px; flex-wrap: wrap; }

/* works-grid */
.single-brand .works-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 15px 20px; }
.single-brand .works-grid .works-grid-item { margin-bottom: 0; }

/* concept */
.single-brand .concept-wrap.wrap1 { margin-bottom: 80px; }
.single-brand .concept-wrap.wrap1 h5 { font-size: 30px; line-height: 1.66666; }
.single-brand .concept-wrap.wrap2 { background: #fff; color: #000; padding: 30px 50px 40px; }
.single-brand .concept-wrap.wrap2 h4 { margin-bottom: -2px; }
.single-brand .concept-wrap.wrap2 h4 + p { font-weight: 700; margin-bottom: 30px; }
.single-brand .concept-wrap.wrap2 ul li:not(:last-child) { margin-bottom: 20px; }
.single-brand .concept-wrap.wrap2 ul li .num { display: inline-block; font-size: 20px; color: #fff; padding: 5px 50px; border-radius: 20px; margin-bottom: 10px; }
.single-brand .concept-wrap.wrap2 ul li .num + p { font-size: 25px; font-weight: 700; line-height: 1.6; }
.single-brand .concept-wrap iframe { max-width: 100%; }

/* cover-image */
.single-brand .cover-image { overflow: hidden; height: 395px; display: flex; justify-content: center; align-items: center; }
.single-brand .cover-image img { width: 100%; height: auto; }

.single-brand #pagebottom { padding-top: 110px; padding-bottom: 80px; }
@media (max-width:1079px) {
  .single-brand #subleadContent ul li a { color: #fff; }
  .single-brand #subleadContent ul li a span::before { background: #fff; }
}
@media (max-width:899px) {
  .single-brand .leadContent h2 { font-size: 36px; }
  .single-brand .leadContent::after { height: 70px; }
  .single-brand .bg-color-area-object { top: -20px; margin-right: 85px; }
  .single-brand .bg-color-area-object p { font-size: 110px; }
  .single-brand .area1 { padding-top: 55px; }
  .single-brand .area2 { padding: 55px 0 45px; }
  .single-brand .hero { grid-template-columns: 1fr; }
  .single-brand .hero .hero-logo { width: 80%; margin: 0 auto; }
  .single-brand .hero .hero-kana { font-size: 13px; margin: 27px 0 45px; }
  .single-brand .works-grid { grid-template-columns: 1fr 1fr; gap: 10px 12px; }
  .single-brand .works-grid .thumb { margin-bottom: 12px; }
  .single-brand .link-like,
  .single-brand .works-grid .head a { font-size: 20px; }
  .single-brand .concept-wrap.wrap1 h5 { font-size: 20px; }
  .single-brand .area3 h3 + p { margin-bottom: 35px; }
  .single-brand .concept-wrap.wrap1 { margin-bottom: 55px; }
  .single-brand .concept-wrap.wrap2 { padding: 25px 30px 35px; }
  .single-brand .concept-wrap.wrap2 h4 + p { margin-bottom: 22px; }
  .single-brand .concept-wrap.wrap2 ul li .num { font-size: 16px; padding: 4px 35px; }
  .single-brand .concept-wrap.wrap2 ul li .num + p { font-size: 16px; }
  .single-brand .cover-image { height: auto; }
}
@media (max-width:767px) {
  .single-brand h3 { font-size: 34px; }
  .single-brand .concept-wrap.wrap1 iframe { max-width: 100%; height: auto; aspect-ratio: 16 / 9; }
  .single-brand .concept-wrap.wrap1 figure { max-width: 100%; height: auto; }
  .single-brand .concept-wrap.wrap1 figure img { width: 100%; height: auto; }
  .single-brand #pagebottom { padding-top: 65px; padding-bottom: 60px; }
}

/*-----------------------------------------------
  archive-news
-----------------------------------------------*/
.news-card__media .news_card { display: grid; grid-template-columns: 31.113% 1fr; gap: 60px; align-items: start; }
.news-card__media { display: block; overflow: hidden; }

/* 画像 */
.news-card__media .news_card .thumb-figure { width: 100%; height: auto; margin: 0; overflow: hidden; position: relative; aspect-ratio: 308 / 205; display: flex; align-items: center; }
.news-card__media .news_card .thumb-figure img { width: 100%; height: auto; object-fit: cover; display: block; }
.news-card__media .news_card .thumb-figure.has-bg-blur::before { display: none; }

/* テキスト */
.news-card__body { min-width: 0; }
.news-card__meta { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; font-size: 14px; color: #666; margin-bottom: 12px; }
.news-cat { font-weight: 600; background: #000; color: #fff; padding: 8px 13px; }
.news-date { font-size: 16px; letter-spacing: .05em; }
.news-card__title { margin: 0 0 15px; font-size: 22px; line-height: 1.4; letter-spacing: .05em; }
.news-card__title a { text-decoration: none; }
.news-card__excerpt p { font-size: 14px; line-height: 1.75; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 4; }
.news-tags { display: flex; gap: 10px 15px; margin-top: 14px; }
.news-tag { font-family: "Noto Sans JP", sans-serif; font-size: 16px; font-weight: 700; color: #CBCBCB; }
.news-grid { display: grid; gap: 40px; }
.newslist + .pagination { margin-top: 95px; }

@media (max-width:767px) {
  .news-card__media .news_card { gap: 35px; }
  .news-card__excerpt p { -webkit-line-clamp: 3; }
}
@media (max-width:599px) {
  .news-card__media .news_card { grid-template-columns: 1fr; gap: 24px; }
  .news-cat { padding: 7px 12px; font-size: 12px; }
  .news-date { font-size: 15px; }
  .news-card__title { margin: 0 0 11px; font-size: 20px; }
  .news-tag { font-size: 15px; }
  .newslist + .pagination { margin-top: 50px; }
}

/*-----------------------------------------------
  single-news
-----------------------------------------------*/
.single-news .allwrap { background: #F7F7F7; }
.single-news .leadContent { width: 100%; overflow: hidden; position: relative; margin: 127px 0 0; padding: 45px 0 30px; }
.single-news .post-meta { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; font-size: 14px; color: #666; margin-bottom: 12px; }
.single-news .post-meta__cat { font-weight: 600; background: #000; color: #fff; padding: 8px 13px; }
.post-meta__date { font-size: 16px; letter-spacing: .05em; }
.single-news h2 { color: #A7A7A7; display: inline-block; font-size: 30px; letter-spacing: .05em; line-height: 1.3; white-space: normal; text-align: left; margin: 0; }

.single-news .hero { display: grid; place-items: center; background: #1F1F1F; padding: 110px 0 0; }
.single-news .hero figure { width: min(88%,740px); overflow: hidden; }
.single-news .hero figure img { width: 100%; height: 100%; border: 0; display: block; }

.single-news .card { position: relative; padding: 105px 0 0; }
.single-news .card::before { content: ""; position: absolute; top: 0; width: 100%; height: 50%; background: #1f1f1f; }
.single-news .card__inner { padding: 70px 100px; background: #fff; }
.single-news .category-name { font-family: "Noto Sans JP", sans-serif; padding: 12px 0; margin-bottom: 14px; }
.single-news .tags { display: flex; flex-wrap: wrap; gap: 10px 14px; }
.single-news .tags div { letter-spacing: .1em; }
.single-news .tags ul { display: flex; gap: 0 24px; }
.single-news .tags a { font-family: "Noto Sans JP", sans-serif; font-size: 14px; letter-spacing: .1em; }

.single-news .relates-news-area { margin-top: 100px; }
.single-news .relates-news-area .relates-news-head { font-size: 20px; letter-spacing: .05em; margin-bottom: 25px; }
.single-news .news-grid-item { margin-bottom: 40px; }

@media (max-width:767px) {
  .single-news .leadContent { margin: 72px 0 0; padding: 17px 0 14px; }
  .single-news h2 { font-size: 20px; }
  .single-news .hero { padding: 40px 0 0; }
  .single-news .card { padding: 40px 0 0; }
  .single-news .card::before { height: 75%; }
  .single-news .card__inner { padding: 24px 30px 26px; }
  .single-news .category-name { padding: 8px 0; margin-bottom: 10px; font-size: 14px; }
  .single-news .tags { gap: 8px 12px; }
  .single-news .tags div { letter-spacing: .08em; font-size: 14px; }
  .single-news .tags ul { flex-wrap: wrap; gap: 8px 14px; }
  .single-news .tags a { font-size: 13px; letter-spacing: .08em; }
  .single-news .relates-news-area .relates-news-head { font-size: 18px; }
  .single-news .relates-news-area { margin-top: 50px; }
  .single-news .slick-slider .slick-list { padding: 0 !important; }
  .single-news .slick-dotted.slick-slider { margin-bottom: 0 !important; }
  .single-news .slick-dots { bottom: 0 !important; }
}

/*-----------------------------------------------
  contact
-----------------------------------------------*/
.contact h6 { margin-bottom: 55px; }
.contact .scroll_text { transition-delay: 400ms; height: 260px; overflow-y: scroll; border: 1px solid #cfcfcf; padding: 22px 30px; }
@media (max-width:767px) { .contact h6 { margin-bottom: 40px; } }

/*-----------------------------------------------
  cf7
-----------------------------------------------*/
.cf7__list { display: flex; flex-wrap: wrap; margin-bottom: 60px; }
.cf7__list dt:nth-of-type(n+2),
.cf7__list dd:nth-of-type(n+2) { margin-top: 30px; }
.cf7__list dt { width: 35%; padding-top: 15px; }
.cf7__list dd { width: 65%; }

/* 必須・任意 */
.cf7__required,
.cf7__optional { margin-right: 15px; padding: 6px 14px; color: #fff; font-size: 12px; vertical-align: 1px; }
.cf7__required { background: #BE1D1D; }
.cf7__optional { background: #878D8E; }

/* inputs */
.cf7__list dd input[type="text"],
.cf7__list dd input[type="tel"],
.cf7__list dd input[type="email"],
.cf7__list dd textarea { width: 100%; padding: 15px 20px; background: #F4F4F4; }

/* select */
.cf7__select { position: relative; }
.cf7__select:before {
  content: ""; position: absolute; top: 50%; right: 20px; transform: translateY(-50%);
  width: 0; height: 0; border-top: 8px solid #000; border-right: 6px solid transparent; border-left: 6px solid transparent; z-index: 10; pointer-events: none;
}
.cf7__select select { width: 100%; padding: 19px 20px; background: #F4F4F4; color: #a5a5a5; appearance: none; }

/* checkbox / radio */
.cf7__list dd .wpcf7-checkbox,
.cf7__list dd .wpcf7-radio { display: block; padding: 15px 0 10px; }
.cf7__list dd .wpcf7-acceptance { display: block; padding: 15px 0 0; }
.cf7__list dd .wpcf7-list-item { display: block; margin: 0; }
.cf7__list dd .wpcf7-list-item:nth-child(n+2) { margin-top: 18px; }
.cf7__list dd .wpcf7-list-item label { cursor: pointer; }

input[type="checkbox"],
input[type="radio"] { position: relative; width: 18px; height: 18px; margin-right: 8px; border: 1px solid #bcbcbc; vertical-align: -3px; cursor: pointer; appearance: none; }
input[type="checkbox"]:checked { border: 1px solid #000; background: #000; }
input[type="checkbox"]:checked:before { content: ""; position: absolute; top: 2px; left: 5px; width: 6px; height: 10px; transform: rotate(50deg); border-right: 2px solid #fff; border-bottom: 2px solid #fff; }
input[type="radio"] { border-radius: 50%; }
input[type="radio"]:checked:before { content: ""; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 9px; height: 9px; border-radius: 50%; background: #000; }

/* placeholders */
.cf7__list dd input[type="text"]::placeholder,
.cf7__list dd input[type="tel"]::placeholder,
.cf7__list dd input[type="email"]::placeholder,
.cf7__list dd textarea::placeholder { color: #a5a5a5; }
.cf7__list dd input[type="text"]::-ms-input-placeholder,
.cf7__list dd input[type="tel"]::-ms-input-placeholder,
.cf7__list dd input[type="email"]::-ms-input-placeholder,
.cf7__list dd textarea::-ms-input-placeholder { color: #a5a5a5; }
.cf7__list dd input[type="text"]:-ms-input-placeholder,
.cf7__list dd input[type="tel"]:-ms-input-placeholder,
.cf7__list dd input[type="email"]:-ms-input-placeholder,
.cf7__list dd textarea:-ms-input-placeholder { color: #a5a5a5; }

/* submit */
.cf7__button { padding-left: 72px; text-align: center; }
input[type="submit"] { width: 260px; height: 60px; background: #000; color: #fff; transition: opacity .6s; }
input[type="submit"]:hover { opacity: .6; }
.wpcf7-spinner { vertical-align: middle; }

@media (max-width:767px) {
  .cf7__list dt { width: 100%; margin-bottom: 15px; padding-top: 0; }
  .cf7__list dd { width: 100%; }
  .cf7__list dd:nth-of-type(n+2) { margin-top: 0; }
  .cf7__list dd .wpcf7-checkbox,
  .cf7__list dd .wpcf7-radio { padding: 15px 0 0; }
  input[type="submit"] { width: 180px; height: 56px; }
}

/*-----------------------------------------------
  policy
-----------------------------------------------*/
.policy h6 { font-size: 18px; line-height: 1.8; margin-bottom: 10px; }
.policy .area1 h6 { margin-bottom: 0; }
.policy .cont { font-family: "Noto Sans JP", sans-serif; }
.policy .address { line-height: 2; margin-top: 15px; }
.policy ul li { line-height: 2; }
@media (max-width:767px) {
  .policy h6 { font-size: 16px; }
  .policy .cont:not(:first-of-type) { padding-top: 35px; }
}

/*-----------------------------------------------
  Rich Editor Base
-----------------------------------------------*/
.entry-content img,
.entry-content svg { max-width: 100%; height: auto; }
.entry-content video,
.entry-content iframe { max-width: 100%; }
.entry-content img,
.entry-content svg,
.entry-content video,
.entry-content iframe { margin: 1em 0 0; }

.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 { line-height: 1.35; margin: 2.2em 0 0.8em; font-weight: 700; }
.entry-content h1 { font-size: clamp(28px, 4.5vw, 36px); }
.entry-content h2 { font-size: clamp(24px, 3.6vw, 30px); }
.entry-content h3 { font-size: clamp(20px, 3.0vw, 24px); }
.entry-content h4 { font-size: clamp(18px, 2.6vw, 20px); }
.entry-content h5 { font-size: 1em; }
.entry-content h6 { font-size: .95em; }

.entry-content p { margin: 2em 0 0; }
.entry-content strong,
.entry-content b { font-weight: 700; }
.entry-content em,
.entry-content i { font-style: italic; }
.entry-content u { text-decoration: underline; }
.entry-content s,
.entry-content del { text-decoration: line-through; }
.entry-content mark { background: #fffd77; padding: 0 .2em; }
.entry-content small { font-size: .875em; }
.entry-content sup { font-size: .75em; vertical-align: super; }
.entry-content sub { font-size: .75em; vertical-align: sub; }

.entry-content a { color: var(--color-link, #0a66c2); text-decoration: underline; text-underline-offset: .15em; }
.entry-content a:hover { opacity: .85; }

.entry-content hr { border: 0; border-top: 1px solid rgba(0,0,0,.12); margin: 2.5em 0; }

.entry-content blockquote { margin: 1.8em 0; padding: 1.2em 1.4em; border-left: 4px solid rgba(0,0,0,.2); background: rgba(0,0,0,.03); }
.entry-content blockquote cite { display: block; margin-top: .6em; color: #666; font-size: .9em; }

.entry-content code,
.entry-content kbd { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; font-size: .95em; background: rgba(0,0,0,.05); padding: .15em .4em; border-radius: 4px; }
.entry-content pre { margin: 1.6em 0; padding: 1em 1.2em; overflow: auto; border-radius: 6px; background: #0f172a; color: #e5e7eb; }
.entry-content pre code { background: transparent; padding: 0; color: inherit; }

.entry-content ul,
.entry-content ol { margin: 1.2em 0 1.2em 1.2em; }
.entry-content ul { list-style: disc; }
.entry-content ol { list-style: decimal; }
.entry-content li { margin: .4em 0; }
.entry-content li > ul,
.entry-content li > ol { margin-top: .4em; }

.entry-content table { border-collapse: collapse; width: 100%; margin: 1.6em 0; font-size: .95em; }
.entry-content th,
.entry-content td { border: 1px solid rgba(0,0,0,.15); padding: .7em .9em; vertical-align: top; }
.entry-content thead th { background: rgba(0,0,0,.05); font-weight: 600; }

.entry-content .wp-caption { max-width: 100%; }
.entry-content .wp-caption img { display: block; }
.entry-content .wp-caption-text,
.entry-content figcaption,
.entry-content .blocks-gallery-caption { color: #666; font-size: .9em; line-height: 1.6; text-align: center; margin-top: .6em; }

.entry-content .alignleft { float: left; margin: .2em 1.2em .8em 0; }
.entry-content .alignright { float: right; margin: .2em 0 .8em 1.2em; }
.entry-content .aligncenter { display: block; margin-left: auto; margin-right: auto; text-align: center; }
@media (max-width:640px) {
  .entry-content .alignleft,
  .entry-content .alignright { float: none; margin: 1em auto; }
}

.entry-content .has-text-align-left { text-align: left; }
.entry-content .has-text-align-center { text-align: center; }
.entry-content .has-text-align-right { text-align: right; }

.entry-content .has-text-color { color: var(--wp--preset--color, inherit); }
.entry-content .has-background { padding: 1em; border-radius: 6px; }

.entry-content .has-small-font-size { font-size: .875em; }
.entry-content .has-normal-font-size { font-size: 1em; }
.entry-content .has-medium-font-size { font-size: 1.125em; }
.entry-content .has-large-font-size { font-size: 1.25em; }
.entry-content .has-x-large-font-size { font-size: clamp(1.35em, 3.5vw, 1.6em); }

.entry-content .wp-block-quote { margin: 1.8em 0; }
.entry-content .wp-block-pullquote { margin: 2em 0; padding: 2em; border-top: 2px solid currentColor; border-bottom: 2px solid currentColor; text-align: center; }

.entry-content .wp-block-button .wp-block-button__link { display: inline-block; padding: .8em 1.2em; border-radius: 6px; text-decoration: none; background: var(--color-primary, #0a66c2); color: #fff; }
.entry-content .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--color-primary, #0a66c2); border: 2px solid currentColor; }

.entry-content .wp-block-embed,
.entry-content .wp-block-video,
.entry-content .wp-block-image { margin: 1.6em 0; }
.entry-content .wp-block-embed__wrapper,
.entry-content .wp-block-video video,
.entry-content .wp-block-image img { width: 100%; height: auto; }

.entry-content .has-drop-cap:not(:focus)::first-letter { float: left; font-size: 4.2em; line-height: .8; margin: .08em .18em 0 0; font-weight: 700; }

.entry-content::after { content: ""; display: block; clear: both; }

.entry-content p br,
.entry-content li br,
.entry-content blockquote br,
.entry-content figcaption br { display: block; margin: 0 0 .8em; }

.entry-content br { display: block; }
.entry-content br + br { margin-top: .2em; }

.mejs-container,
.mejs-container .mejs-controls,
.mejs-embed,
.mejs-embed body { background: none !important; }
