@charset "UTF-8";
html {
  color: #000;
  font-family: "Yu Gothic", "游ゴシック体", "YuGothic", "游ゴシック", sans-serif;
  font-size: 62.5%;
  position: relative;
  background: #fff;
  font-weight: 500;
  transition: .3s;
  visibility: hidden;
}
html.wf-active {
  visibility: visible;
}
@media (max-width: 959px) {
  html {
    font-size: 52%;
  }
}

body {
  font-size: 1.2vw;
  transition: .3s;
  text-rendering: optimizeLegibility;
  font-kerning: normal;
  font-variant-ligatures: common-ligatures contextual;
  font-feature-settings: "kern", "liga", "clig", "calt";
}
body a {
  color: #000;
  text-decoration: none;
  transition: .3s;
  vertical-align: top;
  cursor: pointer;
  font-family: "Yu Gothic", "游ゴシック体", "YuGothic", "游ゴシック", sans-serif;
  display: inline-block;
}
body input {
  font-family: "Yu Gothic", "游ゴシック体", "YuGothic", "游ゴシック", sans-serif;
}
body input[type="submit"], body input[type="button"] {
  -webkit-appearance: none;
}
body a:hover {
  text-decoration: none;
}
body a:hover img {
  opacity: .8;
  transition: .3s;
}
body a:focus {
  overflow: hidden;
  outline: none;
}
body .indent {
  padding-left: 1em;
  text-indent: -1em;
}
body dt, body dd, body p, body li, body th, body td, body address {
  line-height: 2.1;
  letter-spacing: .02vw;
  font-feature-settings: "palt";
}
body h1, body h2, body h3, body h4, body h5 {
  font-feature-settings: "palt";
}
body img {
  max-width: 100%;
  transition: .3s;
}
body strong {
  font-weight: 700;
}
body .red {
  color: #be0018;
}
body .right {
  text-align: right;
}
body .left {
  text-align: left;
}
body .center {
  text-align: center;
}
body .b {
  font-weight: bold;
}
body .s {
  font-size: .9vw;
}
body .must {
  background: #be0018;
  color: #fff;
  font-weight: bold;
  text-align: center;
  display: inline-block;
  font-style: normal;
  font-size: .9vw;
  line-height: 1.4;
  box-sizing: border-box;
  padding: .2vw .5vw 0;
  position: relative;
  top: -.1vw;
  margin-left: .6vw;
}
@media (max-width: 559px) {
  body .must {
    margin-left: .6vw;
    font-size: 2.4vw;
    padding: .4vw 2vw;
    top: -.3vw;
    left: 2vw;
  }
}
@media (max-width: 959px) {
  body {
    font-size: 1.6vw;
  }
}
@media (max-width: 559px) {
  body {
    font-size: 3.2vw;
  }
}

/* -----------------------------------------
		common
----------------------------------------- */
.dPc {
  display: block;
}

.dSp {
  display: none;
}

.dPcinline {
  display: inline-block;
}

.dSpinline {
  display: none;
}

@media (max-width: 559px) {
  .dPc {
    display: none;
  }

  .dSp {
    display: block;
  }

  .dPcinline {
    display: none;
  }

  .dSpinline {
    display: inline-block;
  }
}
.container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 3rem;
}
@media (max-width: 959px) {
  .container {
    width: auto;
  }
}
@media (max-width: 559px) {
  .container {
    padding: 0 3vw;
  }
}

.breadcrumbs {
  border-bottom: 1px solid #e8e8e8;
}
.breadcrumbs .container {
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.en {
  font-family: "helvetica-neue-lt-pro-cond", sans-serif;
  font-weight: 700;
}

.scroll_down {
  position: absolute;
  z-index: 1;
  right: 6vw;
  bottom: 5vw;
  opacity: 0;
  transition: opacity .4s ease, transform .4s ease;
  will-change: opacity, transform;
}
.scroll_down a {
  position: absolute;
  left: 2.4rem;
  bottom: 87px;
  color: #fff;
  font-size: 1.4rem;
  font-family: "helvetica-neue-lt-pro-cond", sans-serif;
  letter-spacing: .2em;
  writing-mode: vertical-lr;
  text-decoration: none;
  text-transform: uppercase;
}
.scroll_down:before {
  content: "";
  position: absolute;
  bottom: 0;
  left: -4px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #fff;
  animation: circlemove 1.6s ease-in-out infinite, cirlemovehide 1.6s ease-out infinite;
}
.scroll_down:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 2px;
  height: 160px;
  background: #fff;
}
.scroll_down.is-visible {
  opacity: 1;
  transform: none;
  pointer-events: auto;
}
.scroll_down.is-hidden {
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
}
@keyframes circlemove {
  0% {
    bottom: 160px;
  }
  100% {
    bottom: 0px;
  }
}
@keyframes cirlemovehide {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  80% {
    opacity: 0.9;
  }
  100% {
    opacity: 0;
  }
}
@media (max-width: 559px) {
  .scroll_down {
    right: 16vw;
    bottom: 11vw;
  }
  .scroll_down a {
    font-size: 2.2vw;
    left: 4vw;
    letter-spacing: 1vw;
    bottom: 7vw;
  }
  .scroll_down:before {
    left: -1vw;
    width: 2vw;
    height: 2vw;
  }
  .scroll_down:after {
    width: .5vw;
    height: 20vw;
  }
  @keyframes circlemove {
    0% {
      bottom: 20vw;
    }
    100% {
      bottom: 0px;
    }
  }
}

.category-name {
  text-align: center;
  font-weight: 700;
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
  padding: 2vw 0;
  margin: 0 8vw 4vw;
}
@media (max-width: 559px) {
  .category-name {
    padding: 4vw 0;
    margin: 0 5vw 6vw;
  }
}

.link-common {
  padding-bottom: 3px;
  background-image: linear-gradient(#000000, #000000);
  background-repeat: no-repeat;
  background-position: bottom right;
  background-size: 0 1px;
  transition: background-size 0.3s;
}
.link-common:hover {
  background-position: bottom left;
  background-size: 100% 1px;
}

.link-common02 {
  position: relative;
  background-color: none;
}
.link-common02:before {
  position: absolute;
  left: 0;
  width: 0;
  height: 100%;
  content: "";
  background-color: #fff;
  mix-blend-mode: difference;
  transition: 0.3s;
}
.link-common02:hover:before {
  width: 100%;
}

.btn-common01 a {
  position: relative;
  font-size: 1.3vw;
  font-weight: 700;
}
.btn-common01 a:after {
  background: url("../img/arrow@3x.webp") no-repeat left 0.9vw top 0.7vw/0.55vw auto;
  border: 1px solid #000;
  width: 2.4vw;
  height: 2.4vw;
  content: "";
  position: absolute;
  right: -4.5vw;
  top: 0;
  transition: .3s;
}
.btn-common01 a:hover {
  color: #be0018;
}
.btn-common01 a:hover:after {
  right: -5vw;
}
@media (max-width: 559px) {
  .btn-common01 a {
    font-size: 3.2vw;
  }
  .btn-common01 a:after {
    width: 3.4vw;
    height: 3.4vw;
    right: -6.5vw;
    background-size: 1vw auto;
    background-position: top 1vw left 1.3vw;
    top: 1.4vw;
  }
}

.btn-common02 a {
  display: block;
  border: 1px solid #000;
  text-align: center;
  padding: 1vw 0;
}
.btn-common02 a span {
  position: relative;
  font-size: 1.4vw;
}
.btn-common02 a span:after {
  background: url(../img/arrow@3x.webp) no-repeat left top/0.55vw auto;
  content: "";
  position: absolute;
  right: -2vw;
  top: 0vw;
  transition: .3s;
  height: 1.6vw;
  width: .6vw;
  transform: rotateZ(90deg);
}
.btn-common02 a:hover span:after {
  top: .3vw;
}
@media (max-width: 559px) {
  .btn-common02 a {
    padding: 1vw 3vw 1vw 0;
  }
  .btn-common02 a span {
    font-size: 4vw;
  }
  .btn-common02 a span:after {
    background-size: cover;
    right: -5vw;
    top: 1vw;
    height: 3vw;
    width: 2vw;
  }
}

.btn-common03 a {
  border: 1px solid #000;
  position: relative;
  min-width: 15vw;
}
.btn-common03 a:after {
  background: url(../img/arrow@3x.webp) no-repeat left top/0.55vw auto;
  content: "";
  right: 1vw;
  top: 1vw;
  transition: .3s;
  height: 1.6vw;
  width: .6vw;
  position: absolute;
}
.btn-common03 a:hover:after {
  right: .5vw;
}
@media (max-width: 559px) {
  .btn-common03 a:after {
    background-size: cover;
    right: 3vw;
    top: 3.8vw;
    height: 2.6vw;
    width: 1.6vw;
  }
  .btn-common03 a:hover:after {
    right: 2vw;
  }
}

.btn-common04 a {
  background: #be0018;
  border-radius: .8vw;
  color: #fff;
  font-size: 2.4vw;
  width: 31vw;
  padding: .5vw 3vw .5vw 0;
}
.btn-common04 a span {
  position: relative;
}
.btn-common04 a span:after {
  content: "";
  background: url(../img/icon-email@3x.webp) no-repeat center top/cover;
  width: 2.4vw;
  height: 1.7vw;
  position: absolute;
  right: -4vw;
  top: .5vw;
}
.btn-common04 a:hover {
  background: #000;
}
@media (max-width: 559px) {
  .btn-common04 a {
    width: 84%;
    box-sizing: border-box;
    font-size: 6vw;
    padding: 1vw 9vw 1vw 2vw;
    border-radius: 1vw;
    margin: 0 0 4vw;
  }
  .btn-common04 a span:after {
    width: 5.4vw;
    height: 3.8vw;
    position: absolute;
    right: -8vw;
    top: 1.7vw;
  }
}

.bnr-common01 {
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
  margin: 0 8vw;
  padding: 7vw 5vw;
}
@media (max-width: 559px) {
  .bnr-common01 {
    margin: 0 5vw;
  }
}

.title-common01 {
  font-family: "helvetica-neue-lt-pro-cond", sans-serif;
  text-transform: uppercase;
  font-size: 6.2vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
}
.title-common01 strong {
  font-family: "Yu Gothic", "游ゴシック体", "YuGothic", "游ゴシック", sans-serif;
  font-size: 1.3vw;
  margin: 1.6vw 0 0;
}
.title-common01:before {
  width: 10vw;
  height: .3vw;
  background: #be0018;
  position: absolute;
  left: 0;
  top: -3vw;
  content: "";
}
@media (max-width: 959px) {
  .title-common01 {
    font-size: 7.2vw;
  }
  .title-common01 strong {
    font-size: 2vw;
  }
}
@media (max-width: 559px) {
  .title-common01 {
    font-size: 10vw;
  }
  .title-common01 strong {
    font-size: 3.2vw;
    text-align: center;
    margin: 3vw 0 0;
  }
  .title-common01:before {
    width: 14vw;
    height: 1vw;
    left: 50%;
    margin-left: -7vw;
    top: -6vw;
  }
}

.title-common02 {
  display: flex;
  justify-content: flex-start;
  flex-direction: column;
  font-size: 2.8vw;
  margin: 0 0 3vw;
}
.title-common02 span {
  font-size: 1.5vw;
  margin: 0 0 2.6vw;
}
@media (max-width: 559px) {
  .title-common02 {
    font-size: 4.4vw;
  }
  .title-common02 span {
    font-size: 2.4vw;
    margin: 0 0 4vw;
  }
}

.wp-block-heading,
.title-common03 {
  padding: 0 0 0 3vw;
  position: relative;
  font-size: 1.6vw;
  font-weight: 700;
  margin: 4vw 0 1.8vw;
}
.wp-block-heading:before,
.title-common03:before {
  width: 1.6vw;
  height: .8vw;
  background: #be0018;
  position: absolute;
  left: 0;
  top: .3vw;
  content: "";
}
@media (max-width: 559px) {
  .wp-block-heading,
  .title-common03 {
    margin: 7vw 0 3.8vw;
    font-size: 4vw;
    padding: 0 0 0 5vw;
    line-height: 1.4;
  }
  .wp-block-heading:before,
  .title-common03:before {
    width: 3.2vw;
    height: 1.4vw;
    top: 1.4vw;
  }
}

.title-common04 {
  text-align: center;
  font-size: 2vw;
  font-weight: 700;
  font-size: inherit;
}
.title-common04 span {
  display: block;
  font-size: 3.2vw;
  font-family: "helvetica-neue-lt-pro-cond", sans-serif;
  text-align: center;
  margin: 0 0 2.4vw;
}
@media (max-width: 559px) {
  .title-common04 {
    font-size: 5vw;
  }
  .title-common04 span {
    font-size: 2.8vw;
  }
}

.list-works {
  padding: 0 8vw;
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 5%;
  row-gap: 4vw;
}
.list-works > li {
  width: 30%;
}
.list-works > li .img img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  height: 100%;
}
.list-works > li .img a:hover {
  opacity: 1;
  filter: brightness(1.2);
}
.list-works > li .img a:hover img {
  opacity: 1;
}
.list-works > li .client {
  font-size: 1vw;
  color: #666;
}
.list-works > li .title {
  font-size: 1.4vw;
  font-weight: 700;
  line-height: 1.8;
  margin: 0 0 .8vw;
}
.list-works > li .title a {
  transform: .3s;
}
.list-works > li .title a:hover {
  color: #be0018;
}
@media (max-width: 959px) {
  .list-works {
    padding: 0 5vw;
  }
  .list-works > li {
    width: 47%;
  }
}
@media (max-width: 559px) {
  .list-works {
    row-gap: 12vw;
  }
  .list-works > li {
    width: 100%;
  }
  .list-works > li .img {
    margin: 0 0 3vw;
  }
  .list-works > li .client {
    font-size: 2.8vw;
    line-height: 1.6;
  }
  .list-works > li .title {
    font-size: 4vw;
    margin: 0 0 4vw;
  }
}

.list-term {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: .4vw;
}
.list-term li a {
  border: 1px solid #000;
  border-radius: 10rem;
  padding: 0 1vw;
  font-size: 1vw;
  font-weight: 700;
  white-space: nowrap;
  display: inline-block;
}
.list-term li a:before {
  content: "#";
  color: #666;
}
.list-term li a:hover {
  background: #000;
  color: #fff;
}
@media (max-width: 959px) {
  .list-term {
    gap: .8vw;
  }
  .list-term li a {
    padding: .2vw 1.4vw 0;
    font-size: 1.6vw;
  }
}
@media (max-width: 559px) {
  .list-term {
    gap: 1.8vw;
  }
  .list-term li a {
    font-size: 3.2vw;
    padding: .2vw 2.4vw 0;
  }
}

.list-form dl {
  display: flex;
  justify-content: space-between;
  gap: 5vw;
  padding: 1vw 0;
}
.list-form dl dt {
  font-weight: 700;
  width: 13vw;
}
.list-form dl dd {
  flex: 1;
  width: 100%;
}
.list-form dl dd .wpcf7-list-item {
  margin: 0;
  width: 33%;
}
.list-form dl dd .wpcf7-list-item label {
  margin-right: 2vw;
}
.list-form dl dd .wpcf7-list-item label input[type="checkbox"] {
  margin: 0 .4vw 0 0;
  position: relative;
  width: 1.5vw;
  height: 1.5vw;
  top: -.1vw;
}
.list-form dl dd input[type="text"], .list-form dl dd input[type="email"], .list-form dl dd input[type="tel"], .list-form dl dd input[type="date"], .list-form dl dd textarea, .list-form dl dd select {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #b2b2b2;
  border-radius: .3vw;
  min-height: 4vw;
  padding: 1.4vw 1.6vw 1.2vw;
  font-weight: 700;
  line-height: 1.4;
  font-size: 1.3vw;
}
.list-form dl dd input[type="date"] {
  width: 20vw;
  margin-right: 1vw;
}
.list-form dl dd select {
  width: 20vw;
}
.list-form dl dd dl {
  gap: 3vw;
}
.list-form dl dd dl dt {
  width: 7vw;
}
.list-form dl dd dl dd .size-s {
  width: 14vw;
}
@media (max-width: 559px) {
  .list-form dl {
    flex-direction: column;
    gap: 0;
    padding: 3vw 0;
  }
  .list-form dl dt {
    width: 100%;
    margin: 0;
  }
  .list-form dl dd .wpcf7-form-control {
    display: flex;
    flex-direction: column;
  }
  .list-form dl dd .wpcf7-form-control > span {
    width: 100%;
    border: 1px solid #ddd;
    border-radius: 1vw;
    padding: 2vw 3vw;
    margin: 0 0 2vw;
    box-sizing: border-box;
  }
  .list-form dl dd .wpcf7-list-item label input[type="checkbox"] {
    width: 3.5vw;
    height: 3.5vw;
  }
  .list-form dl dd input[type="text"], .list-form dl dd input[type="email"], .list-form dl dd input[type="tel"], .list-form dl dd input[type="date"], .list-form dl dd textarea, .list-form dl dd select {
    min-height: 13vw;
    padding: 3.4vw 2.6vw 3.2vw;
    font-size: 3.2vw;
  }
  .list-form dl dd input[type="date"] {
    width: 43vw;
    margin: 0 0 3vw;
  }
  .list-form dl dd input[type="date"] + span > span {
    width: 5vw;
  }
  .list-form dl dd select {
    width: 45vw;
  }
  .list-form dl dd dl dt {
    width: 100%;
  }
  .list-form dl dd dl dd .size-s {
    width: 40vw;
  }
  .list-form dl dd.pref-dd {
    background: #f4f4f4;
    padding: 5vw;
    box-sizing: border-box;
  }
  .list-form dl dd.pref-dd dl {
    padding: 0;
    gap: 0vw;
    margin: 0 0 3vw;
  }
  .list-form dl dd.pref-dd dl:last-of-type {
    margin: 0;
  }
}

#autozip {
  display: none !important;
}

.list-val {
  display: flex;
  justify-content: flex-start;
  gap: .6vw;
}
.list-val li a {
  background: #000;
  color: #fff;
  font-size: 1vw;
  font-weight: 700;
  padding: .1vw 1vw 0 1vw;
  border: 1px solid #000;
  line-height: 1.8;
}
.list-val li a:hover {
  background: #fff;
  color: #000;
}
@media (max-width: 959px) {
  .list-val li a {
    font-size: 1.6vw;
    padding: .3vw 1.6vw .2vw 1.6vw;
  }
}
@media (max-width: 559px) {
  .list-val {
    gap: 2vw;
  }
  .list-val li a {
    font-size: 3.2vw;
    padding: .6vw 3vw;
  }
}

.list-btnarea {
  gap: 2%;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin: 0 0 2vw;
}
.list-btnarea li {
  width: 32%;
  margin: 0 0 1vw;
}
.list-btnarea li a {
  width: 100%;
  padding: .3vw 1vw;
  box-sizing: border-box;
  min-width: auto;
}
@media (max-width: 559px) {
  .list-btnarea li {
    width: 49%;
    margin: 0 0 2vw;
    box-sizing: border-box;
  }
  .list-btnarea li a {
    padding: 2vw 3vw 1.6vw;
  }
}

.list-common01 li {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #dbdbdb;
  gap: 3vw;
  padding: 1vw 0;
}
.list-common01 li time {
  width: 10vw;
  font-size: 1.4vw;
  font-weight: 700;
}
.list-common01 li a {
  font-size: 1.4vw;
  display: block;
  flex: 1;
  width: 100%;
}
.list-common01 li a:hover {
  text-decoration: underline;
}
.list-common01 li:nth-of-type(1) {
  padding-top: 0;
}
@media (max-width: 559px) {
  .list-common01 li {
    flex-direction: column;
    gap: 0s;
    padding: 3vw 0;
  }
  .list-common01 li time {
    font-size: 3.2vw;
  }
  .list-common01 li a {
    font-size: 3.2vw;
  }
}

.list-commmon02 dl {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #c8c8c8;
  gap: 5vw;
  padding: 1.2vw 0;
}
.list-commmon02 dl dt {
  width: 12vw;
  font-weight: 700;
}
.list-commmon02 dl dd {
  flex: 1;
  width: 100%;
}
.list-commmon02 dl dd ul {
  margin: 0 0 2vw;
}
.list-commmon02 dl dd ul:last-of-type {
  margin: 0;
}
.list-commmon02 dl:last-of-type {
  border-bottom: none;
}
@media (max-width: 559px) {
  .list-commmon02 dl {
    flex-direction: column;
    gap: 0;
    padding: 0;
    border: none;
    margin: 0 0 5vw;
  }
  .list-commmon02 dl dt {
    width: 100%;
    font-weight: 700;
    border: 1px solid #000;
    background: #fff;
    padding: 1vw 3vw;
    box-sizing: border-box;
    margin: 0 0 2vw;
  }
  .list-commmon02 dl dd {
    padding: 0 3vw;
    box-sizing: border-box;
  }
}

.box01 {
  background: #f4f4f4;
  margin: 4vw 0 0;
  padding: 5vw 4vw;
  box-sizing: border-box;
  display: flex;
  justify-content: space-between;
  gap: 3vw;
}
.box01 .img {
  background: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 30vw;
}
.box01 .text {
  flex: 1;
  width: 100%;
}
.box01 .text h3 {
  font-size: 2vw;
  line-height: 1.8;
  margin: 0 0 2vw;
}
.box01 .text p {
  margin: 0 0 3vw;
}
@media (max-width: 559px) {
  .box01 {
    flex-wrap: wrap;
  }
  .box01 .img {
    width: 100%;
    text-align: center;
    padding: 13vw 0;
  }
  .box01 .img img {
    width: 34vw;
  }
  .box01 .text h3 {
    font-size: 4vw;
    margin: 2vw 0 2vw;
  }
}

.box02 {
  background: #f1f1f1;
  padding: 2.8vw 3.6vw;
  margin: 0 0 2vw;
}
.box02 h3 {
  font-size: 1.6vw;
  font-weight: 700;
  margin: 0 0 1.4vw;
  line-height: 1.6;
}
@media (max-width: 559px) {
  .box02 {
    padding: 5vw;
    margin: 0 0 5vw;
  }
  .box02 h3 {
    font-size: 4vw;
  }
}

/* -----------------------------------------
		haeder footer
----------------------------------------- */
header {
  position: fixed;
  width: 100%;
  z-index: 100;
  transition: .3s;
  top: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 1.8vw 0 0;
  box-sizing: border-box;
  transition: .3s;
  height: 9vw;
}
header .logo {
  width: 20vw;
  height: 9vw;
  display: flex;
  justify-content: center;
  align-items: center;
  line-height: 0;
  background: #be0018;
  transition: .3s;
}
header .logo img {
  width: 15.5vw;
}
header nav {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 2.5vw;
}
header nav ul {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 2vw;
}
header nav ul li a {
  color: #000;
  font-weight: 700;
  font-size: 1.2vw;
}
header nav ul.nav-cta {
  gap: 0;
}
header nav ul.nav-cta li a {
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  background: #0071bc;
  box-sizing: border-box;
  padding: .7vw 6vw .5vw 3.2vw;
  border-radius: 1rem;
  font-size: 1.6vw;
  transform: .3s;
}
header nav ul.nav-cta li a:hover {
  filter: brightness(1.2);
}
header nav ul.nav-cta li a span {
  position: relative;
}
header nav ul.nav-cta li a span:after {
  content: "";
  background: url("../img/icon-email@2x.webp") no-repeat center top/cover;
  width: 1.8vw;
  height: 1.3vw;
  position: absolute;
  right: -3.2vw;
  top: 1vw;
}
header.scroll {
  padding: 0;
  background: rgba(0, 0, 0, 0.6);
  height: 4vw;
}
header.scroll .logo {
  width: 15vw;
  height: 4vw;
}
header.scroll .logo img {
  width: 9.5vw;
}
header.scroll nav {
  gap: 2.5vw;
}
header.scroll nav ul {
  gap: 2.2vw;
}
header.scroll nav ul li {
  line-height: 1;
}
header.scroll nav ul li a {
  font-size: .9vw;
}
header.scroll nav ul li a.link-common {
  color: #fff;
  background-image: linear-gradient(#ffffff, #ffffff);
}
header.scroll nav ul.nav-cta li a {
  font-size: 1.4vw;
  padding: .4vw 5vw .4vw 3vw;
  border-radius: 0;
  height: 4vw;
  box-sizing: border-box;
}
header.scroll nav ul.nav-cta li a span:after {
  zoom: .8;
  top: .2vw;
}
@media (max-width: 959px) {
  header nav {
    display: none;
  }
  header.scroll {
    height: 9vw;
    background: none;
  }
  header.scroll .logo {
    width: 22vw;
    height: 9vw;
  }
  header.scroll .logo img {
    width: 17.5vw;
  }
}
@media (max-width: 559px) {
  header .logo {
    width: 39vw;
    height: 17vw;
    padding: 4vw 0 0;
    box-sizing: border-box;
  }
  header .logo img {
    width: 25.5vw;
  }
  header.scroll .logo {
    padding: 1vw 0 0;
    width: 100%;
    height: 10vw;
  }
  header.scroll .logo img {
    width: 21.5vw;
  }
  header.scroll + .outer-menu .checkbox-toggle {
    top: 4rem !important;
  }
  header.scroll + .outer-menu .hamburger {
    top: 4rem !important;
  }
}

.home header nav ul li a {
  color: #fff;
}
.home header nav ul li a.link-common {
  background-image: linear-gradient(#ffffff, #ffffff);
}

.outer-menu {
  display: none;
}
@media (max-width: 959px) {
  .outer-menu {
    display: block;
    position: fixed;
    top: 10vh;
    left: 0;
    z-index: 1500;
  }
  .outer-menu .checkbox-toggle {
    position: fixed;
    top: 1.7rem;
    right: 2vw;
    z-index: 2;
    cursor: pointer;
    width: 7.5rem;
    height: 7rem;
    opacity: 0;
    margin: 0;
    transition: .3s;
  }
  .outer-menu .checkbox-toggle:checked + .hamburger > div {
    transform: rotate(135deg);
  }
  .outer-menu .checkbox-toggle:checked + .hamburger > div:before, .outer-menu .checkbox-toggle:checked + .hamburger > div:after {
    top: 0;
    transform: rotate(90deg);
  }
  .outer-menu .checkbox-toggle:checked + .hamburger > div:after {
    opacity: 0;
  }
  .outer-menu .checkbox-toggle:checked ~ .menu {
    pointer-events: auto;
    visibility: visible;
  }
  .outer-menu .checkbox-toggle:checked ~ .menu > div {
    transform: scale(1);
    transition-duration: .75s;
  }
  .outer-menu .checkbox-toggle:checked ~ .menu > div > div {
    opacity: 1;
    transition: opacity .4s ease .4s;
  }
  .outer-menu .checkbox-toggle:checked:hover + .hamburger > div {
    transform: rotate(225deg);
  }
  .outer-menu .hamburger {
    transition: .3s;
    position: fixed;
    top: 1.6rem;
    right: 2vw;
    z-index: 1;
    width: 4rem;
    height: 3.2rem;
    padding: 1.8rem;
    background: none;
    cursor: pointer;
    backface-visibility: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .outer-menu .hamburger > div {
    position: relative;
    flex: none;
    width: 100%;
    height: 2px;
    background: #000;
    transition: all .4s ease;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .outer-menu .hamburger > div:before, .outer-menu .hamburger > div:after {
    content: '';
    position: absolute;
    z-index: 1;
    top: -10px;
    left: 0;
    width: 100%;
    height: 2px;
    background: inherit;
    transition: all .4s ease;
  }
  .outer-menu .hamburger > div:after {
    top: 10px;
  }
  .outer-menu .menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    visibility: hidden;
    overflow: hidden;
    backface-visibility: hidden;
    outline: 1px solid transparent;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .outer-menu .menu > div {
    width: 200vw;
    height: 200vw;
    color: #FEFEFE;
    background: rgba(0, 0, 0, 0.9);
    border-radius: 50%;
    transition: all .4s ease;
    flex: none;
    transform: scale(0);
    backface-visibility: hidden;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .outer-menu .menu > div > div {
    text-align: center;
    max-width: 90vw;
    max-height: 100vh;
    opacity: 0;
    transition: opacity .4s ease;
    overflow-y: auto;
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    display: block;
  }
  .outer-menu .menu > div > div > ul {
    list-style: none;
    padding: 0 1em;
    margin: 0;
    display: block;
    max-height: 100vh;
  }
  .outer-menu .menu > div > div > ul > li {
    padding: 0;
    margin: 3vw;
    font-size: 4vw;
    display: block;
  }
  .outer-menu .menu > div > div > ul > li > a {
    position: relative;
    display: inline;
    cursor: pointer;
    transition: color .4s ease;
    font-family: "helvetica-neue-lt-pro-cond", sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 2rem;
    color: #fff;
  }
  .outer-menu .menu > div > div > ul > li > a:hover {
    text-decoration: none;
    color: #000;
  }
  .outer-menu .menu > div > div > ul > li > a:hover:after {
    width: 100%;
  }
  .outer-menu .menu > div > div > ul > li > a:after {
    content: '';
    position: absolute;
    z-index: 1;
    bottom: -0.15em;
    left: 0;
    width: 0;
    height: 2px;
    background: none;
    transition: width .4s ease;
  }
}
@media (max-width: 559px) {
  .outer-menu .checkbox-toggle {
    width: 6rem;
    height: 5rem;
    top: 1rem;
  }
  .outer-menu .checkbox-toggle:checked ~ .menu > div {
    transition-duration: .3s;
  }
  .outer-menu .hamburger {
    width: 3rem;
    padding: 1.4rem;
    top: .5rem;
    right: 2vw;
  }
  .outer-menu .menu > div {
    height: 117vh;
    width: 117vh;
    transition: all .3s ease;
  }
}

footer {
  background: #be0018;
  padding: 5vw 8vw 7vw;
}
footer .wrap {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 6vw;
}
footer .wrap .link {
  flex: 1;
  width: 100%;
  padding: 0 0 6vw;
}
footer .wrap .link ul li a {
  color: #fff;
  font-size: 1.2vw;
  border-bottom: 1px solid #ce4052;
  padding: .4vw 1vw;
  display: block;
}
footer .wrap .logo {
  width: 27vw;
}
footer .wrap .logo p {
  margin: 0 0 1vw;
}
footer .wrap .logo small {
  color: #fff;
  font-size: .9vw;
  margin-top: -6vw;
  display: block;
}
@media (max-width: 559px) {
  footer {
    padding: 6vw 5vw 9vw;
  }
  footer .wrap {
    flex-direction: column;
  }
  footer .wrap .link ul li a {
    font-size: 3.2vw;
    padding: 3vw 0;
  }
  footer .wrap .logo {
    width: 100%;
  }
  footer .wrap .logo p {
    text-align: right;
  }
  footer .wrap .logo p img {
    width: 53vw;
  }
  footer .wrap .logo small {
    text-align: center;
    font-size: 2.4vw;
  }
}

#footer-bnr {
  padding: 0 3vw;
  margin: 5vw 0 4vw;
}
#footer-bnr ul {
  display: flex;
  justify-content: space-between;
}
#footer-bnr ul li {
  cursor: pointer;
  overflow: hidden;
  position: relative;
  width: 49%;
}
#footer-bnr ul li a {
  display: block;
  width: 100%;
  height: 35vw;
  position: relative;
}
#footer-bnr ul li a .title {
  position: absolute;
  top: 12vw;
  z-index: 2;
  width: 100%;
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  color: #fff;
  font-size: 2vw;
  font-weight: 700;
}
#footer-bnr ul li a .title span {
  font-size: 1vw;
}
#footer-bnr ul li a .btn {
  position: absolute;
  left: 50%;
  top: 20vw;
  z-index: 2;
  width: 11vw;
  border: 1px solid #fff;
  text-align: center;
  color: #fff;
  padding: .1vw 0 0;
  margin-left: -5.5vw;
}
#footer-bnr ul li a .bg {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  transition: transform .6s ease;
  width: 100%;
  height: 35vw;
}
#footer-bnr ul li a:before {
  position: absolute;
  content: "";
  width: 100%;
  height: 35vw;
  background: rgba(0, 0, 0, 0.4);
  z-index: 1;
  transition: .3s;
}
#footer-bnr ul li:hover a .bg {
  transform: scale(1.05);
}
#footer-bnr ul li:hover a:before {
  background: rgba(0, 0, 0, 0.5);
}
#footer-bnr ul li.bnr-solution a .bg {
  background-image: url("../img/footer-bnr_solution@2x.webp");
}
#footer-bnr ul li.bnr-works a .bg {
  background-image: url("../img/footer-bnr_works@2x.webp");
}
#footer-bnr ul li.bnr-reasons4 a .bg {
  background-image: url("../img/footer-bnr_reasons4@2x.webp");
}
@media (max-width: 559px) {
  #footer-bnr ul {
    flex-wrap: wrap;
    gap: 3vw;
  }
  #footer-bnr ul li {
    width: 100%;
  }
  #footer-bnr ul li a {
    height: 50vw;
  }
  #footer-bnr ul li a .title {
    font-size: 4vw;
  }
  #footer-bnr ul li a .title span {
    font-size: 3.2vw;
  }
  #footer-bnr ul li a .btn {
    width: 32vw;
    margin-left: -16vw;
    font-size: 3.2vw;
    top: 29vw;
  }
  #footer-bnr ul li a .bg {
    height: 50vw;
  }
  #footer-bnr ul li a:before {
    height: 50vw;
  }
}

.bnr-prcreative {
  padding: 0 8vw;
}
@media (max-width: 559px) {
  .bnr-prcreative {
    padding: 0 3vw;
  }
}

.cta {
  background: url("../img/cta-bg@3x.webp") no-repeat center top/cover;
  padding: 9vw 0 7vw;
  margin: 4vw 0 0;
}
.cta .wrap {
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  width: 80%;
  margin: 0 auto;
  position: relative;
  padding: 0 0 4vw;
}
.cta .wrap .title {
  position: absolute;
  font-size: 7vw;
  left: 27vw;
  top: -7.5vw;
}
.cta .wrap .copy {
  font-size: 2.4vw;
  font-weight: 700;
  text-align: center;
  padding: 5vw 0 1vw;
}
.cta .wrap .btn-common04 {
  margin: 0 0 2vw;
}
.cta .wrap dl {
  margin: 0 0 1vw;
}
.cta .wrap dl dt, .cta .wrap dl dd {
  font-family: "helvetica-neue-lt-pro-cond", sans-serif;
  font-weight: 700;
  text-align: center;
}
.cta .wrap dl dt a, .cta .wrap dl dd a {
  font-family: "helvetica-neue-lt-pro-cond", sans-serif;
}
.cta .wrap dl dt {
  font-size: 3.2vw;
  line-height: 1.2;
}
.cta .wrap dl dd {
  color: #838383;
  font-size: 1.2vw;
}
.cta .wrap .subcopy {
  font-weight: 700;
}
@media (max-width: 559px) {
  .cta {
    padding: 14vw 0 9vw;
  }
  .cta .wrap .title {
    font-size: 9vw;
    left: 22vw;
    top: -8.5vw;
  }
  .cta .wrap .copy {
    font-size: 4vw;
    padding: 8vw 0 3vw;
  }
  .cta .wrap dl dt a, .cta .wrap dl dd a {
    font-size: 5vw;
  }
  .cta .wrap dl dd {
    font-size: 2.6vw;
  }
  .cta .wrap .subcopy {
    margin: 2vw 0 0;
  }
}

#pagetop {
  position: fixed;
  right: 2vw;
  bottom: 2vw;
  background: #000;
  border-radius: 50%;
  width: 6vw;
  height: 6vw;
  box-sizing: border-box;
  z-index: 5;
  cursor: pointer;
  transition: .3s;
}
#pagetop:before {
  content: "";
  background: url(../img/arrow-white@3x.webp) no-repeat center top/cover;
  width: 1vw;
  height: 2vw;
  position: absolute;
  left: 2.4vw;
  top: 1.8vw;
  transform: rotateZ(270deg);
}
#pagetop:hover {
  background: #be0018;
}

#main {
  height: 100vh;
}
#main .video {
  width: 100%;
  height: 100vh;
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  z-index: -1;
}
#main .video .maincopy {
  position: absolute;
  left: 4vw;
  bottom: 13vw;
  color: #fff;
  z-index: 1;
}
#main .video .maincopy h1 {
  font-size: 6vw;
}
#main .video .maincopy h1 span {
  font-size: 4.5vw;
}
#main .video .subcopy {
  position: absolute;
  left: 4.4vw;
  bottom: 6vw;
  z-index: 1;
}
#main .video .subcopy p {
  color: #fff;
  font-size: 2.4vw;
  font-weight: 700;
}
#main .video video {
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
}
#main .video:after {
  content: '';
  width: 100%;
  height: 100%;
  background: url("../img/mv-bg.png") repeat center top;
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  opacity: .7;
}
@media (max-width: 559px) {
  #main {
    height: 160vw;
  }
  #main .video {
    height: 160vw;
  }
  #main .video .maincopy {
    left: 5vw;
    bottom: 29vw;
  }
  #main .video .maincopy h1 {
    font-size: 12vw;
    line-height: 1.3;
  }
  #main .video .maincopy h1 span {
    font-size: 8.5vw;
  }
  #main .video .subcopy {
    left: 6vw;
    bottom: 11vw;
  }
  #main .video .subcopy p {
    font-size: 5.4vw;
    line-height: 1.4;
  }
  #main .video .slider-sp {
    height: 160vw;
  }
}

#key, .title-set {
  padding: 20vw 8vw 10vw;
  background: url("../img/bg-key@2x.webp") no-repeat right top/90vw auto;
  display: flex;
  justify-content: flex-start;
  gap: 7vw;
}
#key h2 i, .title-set h2 i {
  font-style: normal;
  text-transform: none;
}
#key h2 i span, .title-set h2 i span {
  font-size: 3vw;
  text-transform: none;
  padding: 0 0 0 1.2vw;
}
#key .key-copy, .title-set .key-copy {
  flex: 1;
  width: 100%;
}
#key .key-copy p, .title-set .key-copy p {
  font-size: 1.3vw;
  font-weight: 700;
  line-height: 2.4;
}
#key .key-copy p span, .title-set .key-copy p span {
  font-weight: normal;
}
@media (max-width: 959px) {
  #key, .title-set {
    padding-left: 5vw;
    padding-right: 5vw;
  }
  #key .key-copy p, .title-set .key-copy p {
    font-size: 1.5vw;
  }
}
@media (max-width: 559px) {
  #key, .title-set {
    flex-direction: column;
    align-items: center;
    padding: 26vw 5vw 10vw;
  }
  #key .key-copy p, .title-set .key-copy p {
    font-size: 3.2vw;
  }
  #key .key-copy p br, .title-set .key-copy p br {
    display: none;
  }
}

.title-set {
  padding: 0;
  background: none;
  margin: 0 0 3vw;
}

#maincopy {
  padding: 8vw;
  background: url("../img/bg-square.webp") no-repeat right top 10vw/41vw auto;
}
#maincopy h2 {
  font-size: 3.5vw;
  line-height: 1.6;
  margin: 0 0 2vw;
}
#maincopy h2 + p {
  font-size: 1.4vw;
  font-weight: 700;
  margin: 0 0 7vw;
}
#maincopy section {
  margin: 0 0 4vw;
}
#maincopy section h3 {
  font-size: 2vw;
  line-height: 1.6;
  font-weight: 700;
  margin: 0;
  position: relative;
  padding: 0 0 0 2vw;
}
#maincopy section h3:before {
  content: "";
  background: #be0018;
  width: .5vw;
  height: 2.2vw;
  position: absolute;
  left: 0;
  top: .4vw;
}
#maincopy section p {
  font-weight: 700;
  padding: 0 0 0 2vw;
  margin: 1vw 0 0;
}
@media (max-width: 559px) {
  #maincopy {
    background: url(../img/bg-square.webp) no-repeat right -8vw top 23vw/36vw auto;
    padding: 10vw 8vw 2vw;
  }
  #maincopy h2 {
    font-size: 6.4vw;
  }
  #maincopy h2 + p {
    font-size: 4.2vw;
  }
  #maincopy h2 + p br {
    display: none;
  }
  #maincopy section h3 {
    font-size: 4.4vw;
    padding: 0 0 0 4vw;
  }
  #maincopy section h3:before {
    width: 1.2vw;
    height: 4.2vw;
    top: 1.2vw;
  }
  #maincopy section p {
    padding: 0 0 0 4vw;
    font-weight: 500;
  }
}

.top-solution {
  background: url("../img/img-splution@2x.webp") no-repeat right top/45vw auto;
  padding: 0 8vw 13vw;
  margin: 0 0 4vw;
}
.top-solution h2 {
  margin: 3vw 0 0;
}
.top-solution p.copy {
  font-size: 1.8vw;
  line-height: 2;
  font-weight: 700;
  margin: 2vw 0 4vw;
}
@media (max-width: 559px) {
  .top-solution {
    padding: 16vw 5vw 4vw;
    background-size: 38vw auto;
  }
  .top-solution h2:before {
    left: inherit;
    margin-left: inherit;
  }
  .top-solution p.copy {
    font-size: 3.2vw;
  }
}

.top-pr_journalism {
  background: url("../img/bnr-pr_journalism@3x.webp") no-repeat right 1.5vw center/50vw auto, url("../img/bg-link@2x.webp") no-repeat left 0vw top -27vw/116vw auto;
  margin: 0 5vw 8vw;
}
@media (max-width: 559px) {
  .top-pr_journalism {
    background-size: 54vw auto, 116vw auto;
    padding: 7vw 5vw;
  }
}

.top-works {
  padding: 2vw 8vw 9vw;
}
.top-works .logoset {
  margin: 0 0 4vw;
}
.top-works .logoset ul {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 2vw;
  grid-row-gap: 1vw;
}
.top-works .logoset ul li {
  width: auto;
}
.top-works .logoset ul li img {
  width: 100%;
  height: auto;
}
.top-works .logoset ul li:nth-of-type(5) {
  margin-right: 0;
}
.top-works .list-works {
  padding: 0;
  margin: 0 0 4vw;
}
@media (max-width: 559px) {
  .top-works {
    padding: 10vw 5vw 9vw;
  }
  .top-works .logoset {
    margin: 6vw 0 8vw;
  }
  .top-works .logoset ul li {
    zoom: .3;
  }
  .top-works .logoset ul li:last-of-type {
    margin-right: auto;
  }
}

.top-news {
  padding: 0 8vw;
}
.top-news .wrap {
  display: flex;
  justify-content: space-between;
  gap: 9vw;
}
.top-news .wrap .title h2 {
  margin: 4vw 0 0;
}
.top-news .wrap .title .btn-common01 {
  margin-top: 4vw;
}
.top-news .wrap .list {
  flex: 1;
  width: 100%;
}
.top-news .wrap .list ul li a {
  flex: 1;
  width: 100%;
}
@media (max-width: 559px) {
  .top-news {
    padding: 0 5vw;
    margin: 8vw 0 0;
  }
  .top-news .wrap {
    gap: 6vw;
    flex-direction: column;
  }
  .top-news .wrap .title .passing {
    text-align: center;
  }
  .top-news .wrap .title .btn-common01 {
    padding-right: 5vw;
    text-align: center;
  }
}

.top-about {
  padding: 12vw 8vw 4vw;
}
.top-about .wrap {
  margin: 4vw 0 0;
  display: flex;
  justify-content: space-between;
  gap: 5vw;
}
.top-about .wrap .text {
  flex: 1;
  width: 100%;
}
.top-about .wrap .text h3 {
  font-size: 2vw;
  line-height: 1.8;
  margin: 0 0 2vw;
}
.top-about .wrap .text p {
  font-weight: 700;
  margin: 0 0 3vw;
}
@media (max-width: 559px) {
  .top-about {
    padding: 23vw 5vw 14vw;
  }
  .top-about .passing {
    text-align: center;
  }
  .top-about .wrap {
    margin: 6vw 0 0;
    gap: 3vw;
    flex-wrap: wrap;
  }
  .top-about .wrap .img {
    text-align: center;
    width: 100%;
  }
  .top-about .wrap .img img {
    width: 100%;
  }
  .top-about .wrap .text h3 {
    font-size: 4.4vw;
  }
  .top-about .wrap .text p {
    font-weight: 500;
  }
}

.top-collabolation {
  padding: 7vw 8vw 7vw;
}
@media (max-width: 559px) {
  .top-collabolation .passing {
    text-align: center;
    margin: 0 0 6vw;
  }
}

#works-index {
  margin: 0 0 15vw;
}

#works-detail {
  padding: 0 8vw;
  margin: 0 0 18vw;
}
#works-detail .works-titlearea {
  margin: 2.4vw 0 3.2vw;
}
#works-detail .works-titlearea .client {
  font-size: 1.2vw;
  margin: 0 0 1.6vw;
  font-weight: 700;
}
#works-detail .works-titlearea h1 {
  font-size: 2.4vw;
  font-weight: 500;
}
#works-detail .works-titlearea .label {
  margin: 1.8vw 0 0;
}
#works-detail .works-imgmain {
  display: flex;
  justify-content: space-between;
  gap: 2vw;
  margin: 0 0 7vw;
}
#works-detail .works-imgmain .main {
  flex: 1;
  width: 100%;
  text-align: center;
}
#works-detail .works-imgmain .sub {
  width: 41vw;
}
#works-detail .works-imgmain .sub ul {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 2%;
  row-gap: .6vw;
}
#works-detail .works-imgmain .sub ul li {
  width: 49%;
  line-height: 0;
  text-align: center;
}
#works-detail .works-imgmain .sub ul li a {
  position: relative;
}
#works-detail .works-imgmain .sub ul li a img {
  width: 100%;
  height: 14vw;
  object-fit: cover;
}
#works-detail .works-imgmain .sub ul li a:before {
  content: "";
  background: #000 url("../img/icon-lupe@3x.webp") no-repeat center center/1.2vw auto;
  width: 2vw;
  height: 2vw;
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 1;
  transition: .3s;
}
#works-detail .works-imgmain .sub ul li a:hover:before {
  background-color: #be0018;
}
#works-detail .works-story {
  padding: 0 7vw;
}
#works-detail .works-story h2 {
  font-family: "helvetica-neue-lt-pro-cond", sans-serif;
  font-size: 5.2vw;
  margin: 0 0 2vw;
}
#works-detail .works-story h2 span {
  font-size: 2.4vw;
  padding: 0 0 0 .8vw;
}
#works-detail .works-story #works-story-title {
  font-size: 2.2vw;
  font-weight: 700;
  line-height: 1.6;
  margin: 0 0 5vw;
}
#works-detail .works-story section {
  margin: 0 0 3vw;
}
#works-detail .works-story section h3 {
  font-family: "helvetica-neue-lt-pro-cond", sans-serif;
  position: relative;
  z-index: 0;
  margin: 0 0 2vw;
}
#works-detail .works-story section h3 span {
  font-size: 1.8vw;
  background: #fff;
  padding: 0 2vw 0 0;
  position: relative;
  z-index: 1;
}
#works-detail .works-story section h3:before {
  background: #000;
  width: 100%;
  height: 1px;
  position: absolute;
  left: 0;
  top: 50%;
  content: "";
}
#works-detail .works-story section p {
  font-size: 1.3vw;
}
#works-detail .works-story .narrative {
  border: 1px solid #000;
  padding: 2.6vw;
  margin: 0 0 3vw;
}
#works-detail .works-story .narrative h3 {
  font-size: 1.8vw;
  font-family: "helvetica-neue-lt-pro-cond", sans-serif;
  margin: 0 0 1.5vw;
}
#works-detail .works-story .narrative ul li {
  margin: 0 0 .6vw;
  position: relative;
  padding: 0 0 0 2vw;
}
#works-detail .works-story .narrative ul li:before {
  content: "";
  width: .9vw;
  height: .4vw;
  background: #be0018;
  position: absolute;
  left: 0;
  top: 1vw;
}
#works-detail .works-story .narrative ul li:last-of-type {
  margin-bottom: 0;
}
#works-detail .works-detail {
  padding: 0 7vw;
  position: relative;
  border-bottom: 1px solid #000;
  margin: 19vw 0 4vw;
}
#works-detail .works-detail section {
  margin: 0 0 5vw;
}
#works-detail .works-detail section h3 {
  font-size: 2.2vw;
  font-weight: 700;
  line-height: 1.6;
  margin: 0 0 1.4vw;
}
#works-detail .works-detail section p {
  margin: 0 0 1.4vw;
}
#works-detail .works-detail section p.img {
  margin: 0;
}
#works-detail .works-detail section .other {
  margin: 3vw 0 0;
}
#works-detail .works-detail:before {
  content: "";
  background: #000;
  height: 9vw;
  width: 1px;
  position: absolute;
  left: 50%;
  top: -14vw;
}
@media (max-width: 959px) {
  #works-detail {
    padding: 0 5vw;
  }
  #works-detail .works-titlearea .client {
    font-size: 1.6vw;
  }
  #works-detail .works-titlearea h1 {
    font-size: 3vw;
  }
  #works-detail .works-story {
    padding: 0;
  }
  #works-detail .works-story h2 {
    font-size: 7.2vw;
  }
  #works-detail .works-story h2 span {
    font-size: 3.4vw;
  }
  #works-detail .works-story #works-story-title {
    font-size: 2.8vw;
  }
  #works-detail .works-story section h3 span {
    font-size: 2.8vw;
  }
  #works-detail .works-story section p {
    font-size: 1.6vw;
  }
  #works-detail .works-story .narrative {
    padding: 3.6vw;
  }
  #works-detail .works-story .narrative h3 {
    font-size: 2.8vw;
  }
  #works-detail .works-story .narrative ul li:before {
    height: .5vw;
    top: 1.3vw;
  }
  #works-detail .works-detail {
    padding: 0;
  }
  #works-detail .works-detail section h3 {
    font-size: 2.8vw;
  }
}
@media (max-width: 559px) {
  #works-detail .works-titlearea {
    margin: 4.4vw 0 5.2vw;
  }
  #works-detail .works-titlearea .client {
    font-size: 3.2vw;
  }
  #works-detail .works-titlearea h1 {
    font-size: 5.6vw;
    line-height: 1.6;
  }
  #works-detail .works-imgmain {
    flex-wrap: wrap;
    margin: 0 0 14vw;
  }
  #works-detail .works-imgmain .main {
    width: 100%;
  }
  #works-detail .works-imgmain .sub {
    width: 100%;
  }
  #works-detail .works-imgmain .sub ul li a:before {
    background-size: 2.2vw auto;
    width: 4vw;
    height: 4vw;
  }
  #works-detail .works-imgmain .sub ul li a img {
    height: 31vw;
  }
  #works-detail .works-story h2 {
    font-size: 10.2vw;
    margin: 0 0 4vw;
  }
  #works-detail .works-story h2 span {
    font-size: 5.4vw;
  }
  #works-detail .works-story #works-story-title {
    font-size: 4.6vw;
    margin: 0 0 8vw;
  }
  #works-detail .works-story section {
    margin: 0 0 6vw;
  }
  #works-detail .works-story section h3 {
    margin: 0 0 3vw;
  }
  #works-detail .works-story section h3 span {
    font-size: 4.8vw;
    padding: 0 4vw 0 0;
  }
  #works-detail .works-story section p {
    font-size: 3.2vw;
  }
  #works-detail .works-story .narrative {
    padding: 5.6vw;
  }
  #works-detail .works-story .narrative h3 {
    font-size: 4.8vw;
  }
  #works-detail .works-story .narrative ul li {
    margin: 0 0 1vw;
    padding: 0 0 0 6vw;
  }
  #works-detail .works-story .narrative ul li:before {
    top: 2.3vw;
    width: 3vw;
    height: 1.4vw;
  }
  #works-detail .works-detail {
    margin: 30vw 0 0;
  }
  #works-detail .works-detail section h3 {
    font-size: 4.6vw;
  }
  #works-detail .works-detail section h3 br {
    display: none;
  }
  #works-detail .works-detail:before {
    height: 16vw;
    top: -23vw;
  }
}

#news-index {
  padding: 0 8vw;
}

#news-detail {
  padding: 0 15vw;
}
#news-detail article {
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  padding: 5vw;
}
#news-detail article .title-area {
  margin: 0 0 4vw;
  border-bottom: 1px solid #000;
  padding: 0 0 3vw;
}
#news-detail article .title-area time {
  display: block;
  color: #666;
  font-weight: 700;
  margin: 0 0 1.4vw;
}
#news-detail article .title-area h1 {
  font-size: 2.4vw;
  font-weight: 500;
  line-height: 1.6;
}
#news-detail article .content .wp-block-image {
  margin: 0 0 1.4vw;
}
#news-detail article .content p {
  margin: 0 0 1.4vw;
}
#news-detail article .content a {
  text-decoration: underline;
}
#news-detail article .content a:hover {
  text-decoration: none;
}
@media (max-width: 559px) {
  #news-detail {
    padding: 0 5vw;
  }
  #news-detail article {
    padding: 7vw 6vw;
  }
  #news-detail article .title-area h1 {
    font-size: 4vw;
    font-weight: 700;
  }
}

#reasons4 {
  padding: 0 8vw;
}
#reasons4 section .title-area {
  background-repeat: no-repeat;
  background-position: right top;
  background-size: 54vw auto;
}
#reasons4 section .title-area h2 {
  font-family: "helvetica-neue-lt-pro-cond", sans-serif;
  font-size: 5.3vw;
  display: flex;
  flex-direction: column;
  gap: 1.2vw;
  position: relative;
  padding: 4vw 0 4vw 9vw;
}
#reasons4 section .title-area h2:before {
  font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  color: #dbdbdb;
  position: absolute;
  left: -2vw;
  top: -0.5vw;
  font-size: 17vw;
  font-style: italic;
  font-weight: 300;
}
#reasons4 section .title-area h2 span {
  font-size: 1.3vw;
  padding: 0 0 0 .3vw;
}
#reasons4 section .content-area {
  padding: 3vw 0 0 29vw;
  position: relative;
  margin: 0 0 8vw;
}
#reasons4 section .content-area .copy {
  font-weight: 700;
  font-size: 1.3vw;
  margin: 0 0 3vw;
}
#reasons4 section .content-area .reasons01-chart {
  border: 1px solid #000;
  padding: 3.4vw 3.4vw 2.4vw;
}
#reasons4 section .content-area .reasons01-chart .title {
  margin: 0 0 2vw;
  text-align: center;
}
#reasons4 section .content-area .reasons01-chart ul {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
#reasons4 section .content-area .reasons01-chart ul li {
  display: none;
  width: 49%;
  margin: 0 0 1vw;
  background: #ebebeb;
  position: relative;
  height: 3.6vw;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding: 0 0 0 4.4vw;
  box-sizing: border-box;
  font-weight: 700;
  letter-spacing: -.1vw;
}
#reasons4 section .content-area .reasons01-chart ul li:before {
  position: absolute;
  background: #be0018;
  width: 3.6vw;
  height: 3.6vw;
  color: #fff;
  font-family: "helvetica-neue-lt-pro-cond", sans-serif;
  font-size: 2vw;
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  left: 0;
  top: 0;
}
#reasons4 section .content-area .reasons01-chart ul li:nth-of-type(1):before {
  content: "1";
}
#reasons4 section .content-area .reasons01-chart ul li:nth-of-type(2):before {
  content: "2";
}
#reasons4 section .content-area .reasons01-chart ul li:nth-of-type(3):before {
  content: "3";
}
#reasons4 section .content-area .reasons01-chart ul li:nth-of-type(4):before {
  content: "4";
}
#reasons4 section .content-area .reasons01-chart ul li:nth-of-type(5):before {
  content: "5";
}
#reasons4 section .content-area .reasons01-chart ul li:nth-of-type(6):before {
  content: "6";
}
#reasons4 section .content-area .reasons01-chart ul li:nth-of-type(7):before {
  content: "7";
}
#reasons4 section .content-area .reasons01-chart ul li:nth-of-type(8):before {
  content: "8";
}
#reasons4 section .content-area .reasons01-chart ul li:nth-of-type(9):before {
  content: "9";
}
#reasons4 section .content-area .reasons01-chart ul li:nth-of-type(10):before {
  content: "10";
}
#reasons4 section .content-area .reasons04-chart,
#reasons4 section .content-area .reasons02-chart {
  margin: 0 0 4vw;
}
#reasons4 section .content-area .reasons04-chart ul,
#reasons4 section .content-area .reasons02-chart ul {
  display: flex;
  justify-content: space-between;
  gap: 5%;
}
#reasons4 section .content-area .reasons04-chart ul li,
#reasons4 section .content-area .reasons02-chart ul li {
  width: 16%;
  position: relative;
  border: 1px solid #000;
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  line-height: 1.3;
  text-align: center;
  font-weight: 700;
  height: 11vw;
  font-size: 1.3vw;
}
#reasons4 section .content-area .reasons04-chart ul li span,
#reasons4 section .content-area .reasons02-chart ul li span {
  font-size: .9vw;
  display: block;
  margin: .6vw 0 0;
}
#reasons4 section .content-area .reasons04-chart ul li:after,
#reasons4 section .content-area .reasons02-chart ul li:after {
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 0.7333vw solid transparent;
  border-bottom: 0.7333vw solid transparent;
  border-left: 1.333vw solid #b4b4b4;
  border-right: 0;
  content: "";
  position: absolute;
  right: -2.1vw;
  top: 5vw;
}
#reasons4 section .content-area .reasons04-chart ul li:last-of-type:after,
#reasons4 section .content-area .reasons02-chart ul li:last-of-type:after {
  display: none;
}
#reasons4 section .content-area .reasons03-chart {
  display: flex;
  flex-direction: column;
  gap: 2vw;
}
#reasons4 section .content-area .reasons03-chart .list {
  margin: 0 0 1vw;
  display: flex;
  justify-content: flex-start;
  gap: 1vw;
  position: relative;
}
#reasons4 section .content-area .reasons03-chart .list h4 {
  background: #000;
  color: #fff;
  width: 16vw;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.4vw;
}
#reasons4 section .content-area .reasons03-chart .list ul {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  width: 26vw;
  gap: 2%;
  grid-row-gap: .6vw;
}
#reasons4 section .content-area .reasons03-chart .list ul li {
  width: 49%;
  border: 1px solid #000;
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  font-weight: 700;
  font-size: 1.1vw;
  padding: .1vw 0 0;
}
#reasons4 section .content-area .reasons03-chart .list p {
  background: #feedef;
  color: #be0018;
  font-size: 1.3vw;
  font-weight: 700;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  line-height: 1.4;
  width: 13vw;
}
#reasons4 section .content-area .reasons03-chart .list:after {
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 0.7333vw solid transparent;
  border-bottom: 0.7333vw solid transparent;
  border-left: 1.333vw solid #b4b4b4;
  border-right: 0;
  content: "";
  position: absolute;
  left: 7vw;
  bottom: -2.2vw;
  transform: rotateZ(90deg);
}
#reasons4 section .content-area .reasons03-chart .list:last-of-type {
  margin: 0;
}
#reasons4 section .content-area .reasons03-chart .list:last-of-type:after {
  display: none;
}
#reasons4 section .content-area:before {
  content: "";
  width: 1.3vw;
  height: 1.3vw;
  background: #000;
  left: 12vw;
  top: 4vw;
  position: absolute;
}
#reasons4 section .content-area:after {
  height: calc(100% - 6vw);
  background: #000;
  content: "";
  width: 1px;
  position: absolute;
  left: 12.6vw;
  top: 5vw;
}
#reasons4 section#reasons01 .title-area {
  background-image: url("../img/reason4-img01@2x.webp");
}
#reasons4 section#reasons01 .title-area h2:before {
  content: "1";
}
#reasons4 section#reasons02 .title-area {
  background-image: url("../img/reason4-img02@2x.webp");
}
#reasons4 section#reasons02 .title-area h2:before {
  content: "2";
}
#reasons4 section#reasons03 .title-area {
  background-image: url("../img/reason4-img03@2x.webp");
}
#reasons4 section#reasons03 .title-area h2:before {
  content: "3";
}
#reasons4 section#reasons04 .title-area {
  background-image: url("../img/reason4-img04@2x.webp");
}
#reasons4 section#reasons04 .title-area h2:before {
  content: "4";
}
@media (max-width: 959px) {
  #reasons4 {
    padding: 0 5vw;
  }
  #reasons4 section .content-area .reasons01-chart ul li {
    font-size: 1.2vw;
  }
  #reasons4 section .content-area .reasons04-chart,
  #reasons4 section .content-area .reasons02-chart {
    margin: 0 0 4vw;
  }
  #reasons4 section .content-area .reasons04-chart ul,
  #reasons4 section .content-area .reasons02-chart ul {
    flex-direction: column;
  }
  #reasons4 section .content-area .reasons04-chart ul li,
  #reasons4 section .content-area .reasons02-chart ul li {
    width: 100%;
    margin: 0 0 7vw;
    flex-direction: initial;
    font-size: 3.2vw;
  }
  #reasons4 section .content-area .reasons04-chart ul li br,
  #reasons4 section .content-area .reasons02-chart ul li br {
    display: none;
  }
  #reasons4 section .content-area .reasons04-chart ul li span,
  #reasons4 section .content-area .reasons02-chart ul li span {
    font-size: 2vw;
    margin: 0;
    padding: 0 0 0 2vw;
  }
  #reasons4 section .content-area .reasons04-chart ul li:after,
  #reasons4 section .content-area .reasons02-chart ul li:after {
    border-top: 2vw solid transparent;
    border-bottom: 2vw solid transparent;
    border-left: 3vw solid #b4b4b4;
    transform: rotateZ(90deg);
    right: auto;
    top: auto;
    bottom: -5.8vw;
  }
  #reasons4 section .content-area .reasons03-chart .list {
    flex-wrap: wrap;
    gap: 2vw;
    margin: 0 0 3vw;
  }
  #reasons4 section .content-area .reasons03-chart .list h4 {
    width: 100%;
    font-size: 3.6vw;
    padding: 2vw 0;
    margin: 0 0 1vw;
  }
  #reasons4 section .content-area .reasons03-chart .list ul {
    width: 100%;
    margin: 0 0 1vw;
  }
  #reasons4 section .content-area .reasons03-chart .list ul li {
    font-size: 2.8vw;
  }
  #reasons4 section .content-area .reasons03-chart .list p {
    width: 100%;
    font-size: 3.2vw;
    padding: 3vw 0;
  }
}
@media (max-width: 559px) {
  #reasons4 section .title-area {
    background-size: 100% auto;
    background-position: center bottom;
    padding: 0 0 28vw;
    margin: 0 0 3vw;
  }
  #reasons4 section .title-area h2 {
    flex-direction: unset;
    align-items: center;
    font-size: 6vw;
    padding: 5vw 0 4vw 11vw;
  }
  #reasons4 section .title-area h2 span {
    padding: .6vw 0 0 1.3vw;
    font-size: 3vw;
  }
  #reasons4 section .content-area {
    padding: 3vw 0 0 13vw;
  }
  #reasons4 section .content-area .copy {
    font-size: 3.2vw;
  }
  #reasons4 section .content-area .reasons01-chart ul li {
    font-size: 3.2vw;
    width: 100%;
    height: 9vw;
    padding: 0 0 0 12vw;
  }
  #reasons4 section .content-area .reasons01-chart ul li:before {
    width: 9vw;
    height: 9vw;
    font-size: 5vw;
  }
  #reasons4 section .content-area:before {
    width: 2.5vw;
    height: 2.5vw;
    left: 2vw;
  }
  #reasons4 section .content-area:after {
    left: 3.2vw;
  }
}

#aboutus #aboutus-message {
  display: flex;
  justify-content: space-between;
  gap: 5vw;
  padding: 0 8vw 10vw;
}
#aboutus #aboutus-message .img {
  width: 23vw;
}
#aboutus #aboutus-message .img .name {
  margin: 1vw 0 0;
}
#aboutus #aboutus-message .img .name dl dt {
  font-size: 1.1vw;
  font-weight: 700;
  margin: 0 0 .6vw;
}
#aboutus #aboutus-message .img .name dl dd {
  font-size: 1.6vw;
  font-weight: 700;
}
#aboutus #aboutus-message .img .name dl dd span {
  font-size: 1.1vw;
  line-height: 1.6;
  display: block;
  font-weight: normal;
  margin: 0 0 .2vw;
}
#aboutus #aboutus-message .img .name p {
  margin: 1.5vw 0 0;
}
#aboutus #aboutus-message .img .profile {
  border: 1px solid #000;
  width: 100%;
  padding: 1.1vw 1vw .8vw;
  box-sizing: border-box;
  margin: 1.6vw 0 0;
}
#aboutus #aboutus-message .img .profile h4 {
  font-size: 1.2vw;
  margin: 0 0 .6vw;
}
#aboutus #aboutus-message .img .profile p {
  font-size: .9vw;
  margin: 0;
  line-height: 1.6;
}
#aboutus #aboutus-message .text {
  flex: 1;
  width: 100%;
  padding: 10vw 0 0;
}
#aboutus #aboutus-message .text h3 {
  font-size: 2.4vw;
  margin: 0 0 4vw;
  padding: 1vw 0 0;
}
#aboutus #aboutus-message .text p {
  font-size: 1.3vw;
  margin: 0 0 3vw;
  line-height: 2.6;
}
#aboutus #aboutus-profile {
  background: #f9f9f9;
  padding: 8vw 8vw;
}
#aboutus #aboutus-profile .list-commmon02 {
  padding: 0 8vw;
}
#aboutus #aboutus-access {
  padding: 8vw;
}
#aboutus #aboutus-access .wrap {
  display: flex;
  justify-content: space-between;
  padding: 0 3vw;
  gap: 4vw;
}
#aboutus #aboutus-access .wrap .img {
  width: 22vw;
}
#aboutus #aboutus-access .wrap .text {
  flex: 1;
  width: 100%;
}
#aboutus #aboutus-access .wrap .text section {
  margin: 0 0 4vw;
}
#aboutus #aboutus-access .wrap .text section h3 {
  border-bottom: 1px solid #000;
  padding: 0 0 1.4vw;
  margin: 0 0 1vw;
}
#aboutus #aboutus-access .wrap .text section .btn-common03 {
  margin-top: 1vw;
}
#aboutus #aboutus-access .wrap .text section .btn-common03 a {
  text-align: center;
  padding: .4vw 0;
}
#aboutus #aboutus-access .wrap .text section .btn-common03 a:after {
  top: 1.2vw;
}
#aboutus #aboutus-access .wrap .text section:last-of-type {
  margin: 0;
}
@media (max-width: 559px) {
  #aboutus #aboutus-message {
    padding: 0 5vw 11vw;
    flex-wrap: wrap;
  }
  #aboutus #aboutus-message .img {
    width: 100%;
    text-align: center;
    order: 2;
  }
  #aboutus #aboutus-message .img img {
    width: 44vw;
  }
  #aboutus #aboutus-message .img .name dl dt {
    font-size: 3.2vw;
  }
  #aboutus #aboutus-message .img .name dl dd {
    font-size: 4.4vw;
  }
  #aboutus #aboutus-message .img .name dl dd span {
    font-size: 3.2vw;
  }
  #aboutus #aboutus-message .img .name p img {
    width: 1.5vw 1.4vw 1.1vw;
  }
  #aboutus #aboutus-message .img .profile {
    margin-bottom: 5vw;
    padding: 5vw 5vw 3.6vw;
  }
  #aboutus #aboutus-message .img .profile h4 {
    font-size: 4vw;
    margin: 0 0 2vw;
  }
  #aboutus #aboutus-message .img .profile p {
    font-size: 2.8vw;
    text-align: left;
  }
  #aboutus #aboutus-message .text {
    order: 1;
  }
  #aboutus #aboutus-message .text h3 {
    font-size: 4.4vw;
    margin: 2vw 0 3vw;
    padding: 0;
  }
  #aboutus #aboutus-message .text p {
    font-size: 3.2vw;
    line-height: 2.1;
  }
  #aboutus #aboutus-profile {
    padding: 11vw 5vw;
  }
  #aboutus #aboutus-profile .list-commmon02 {
    padding: 0;
  }
  #aboutus #aboutus-access {
    padding: 13vw 5vw;
  }
  #aboutus #aboutus-access .wrap {
    padding: 0;
    flex-wrap: wrap;
  }
  #aboutus #aboutus-access .wrap .img {
    width: 100%;
    text-align: center;
  }
  #aboutus #aboutus-access .wrap .img img {
    width: 46vw;
  }
  #aboutus #aboutus-access .wrap .text section {
    margin: 0 0 7vw;
  }
  #aboutus #aboutus-access .wrap .text section h3 {
    padding: 0 0 3.4vw;
    margin: 0 0 2vw;
  }
  #aboutus #aboutus-access .wrap .text section .btn-common03 a {
    width: 40vw;
    padding: 1.4vw 0;
  }
  #aboutus #aboutus-access .wrap .text section .btn-common03 a:after {
    top: 3.2vw;
  }
}

#solution #solution01 {
  padding: 0 8vw 6vw;
}
#solution #solution01 section {
  display: flex;
  justify-content: space-between;
  gap: 11vw;
  margin: 0 0 5vw;
}
#solution #solution01 section h2 {
  display: flex;
  flex-direction: column;
  font-size: 1vw;
  font-weight: normal;
  position: relative;
  width: 16vw;
}
#solution #solution01 section h2 span {
  font-family: "helvetica-neue-lt-pro-cond", sans-serif;
  font-size: 2.4vw;
  color: #be0018;
  text-transform: uppercase;
  margin: 0 0 1.2vw;
  line-height: 1.2;
}
#solution #solution01 section h2:after {
  width: 7vw;
  height: 1px;
  background: #000;
  right: -7vw;
  top: 1vw;
  content: "";
  position: absolute;
}
#solution #solution01 section .text {
  flex: 1;
  width: 100%;
}
#solution #solution01 section.solution01-1 .text p {
  font-size: 2vw;
  font-weight: 700;
  line-height: 1.8;
  margin-top: -.8vw;
}
#solution #solution01 section.solution01-2 .text .img {
  border: 1px solid #000;
  text-align: center;
  padding: 5vw 5vw 4vw;
  margin: 0 0 1.2vw;
}
#solution #solution01 section.solution01-2 .text .img + p {
  font-size: 1.4vw;
  font-weight: 700;
}
#solution #solution01 section.solution01-3 > .text {
  display: flex;
  flex-direction: column;
}
#solution #solution01 section.solution01-3 > .text section {
  border: 1px solid #000;
  padding: 2.4vw;
  position: relative;
  margin: 0 0 2.5vw;
  gap: 2.6vw;
  align-items: flex-start;
}
#solution #solution01 section.solution01-3 > .text section .phase {
  width: 10vw;
  background: #000;
  color: #fff;
  font-family: "helvetica-neue-lt-pro-cond", sans-serif;
  text-align: center;
  font-size: 1.5vw;
}
#solution #solution01 section.solution01-3 > .text section .text {
  flex: 1;
  width: 100%;
}
#solution #solution01 section.solution01-3 > .text section .text h3 {
  font-size: 2.1vw;
  margin: 0 0 1vw;
  padding: .2vw 0 0;
  line-height: 1.4;
}
#solution #solution01 section.solution01-3 > .text section .text p {
  font-weight: 700;
}
#solution #solution01 section.solution01-3 > .text section:after {
  height: 2.6vw;
  width: 1px;
  background: #000;
  position: absolute;
  left: 7.5vw;
  bottom: -2.6vw;
  content: "";
}
#solution #solution01 section.solution01-3 > .text section:last-of-type:after {
  display: none;
}
#solution #solution02 {
  background: #efefef url("../img/bg-why_story@2x.webp") no-repeat center top/100% auto;
  padding: 9vw 8vw;
}
#solution #solution02 h2 {
  font-size: 3vw;
}
#solution #solution02 h2 span {
  font-size: 2.2vw;
  margin: 0 0 3.8vw;
}
#solution #solution02 .wrap {
  display: flex;
  justify-content: space-between;
  gap: 4vw;
}
#solution #solution02 .wrap .img {
  width: 35vw;
}
#solution #solution02 .wrap .text {
  flex: 1;
  width: 100%;
}
#solution #solution02 .wrap .text h3 {
  display: flex;
  flex-direction: column;
  margin: 0 0 2.6vw;
  font-size: 1.2vw;
}
#solution #solution02 .wrap .text h3 span {
  font-family: "helvetica-neue-lt-pro-cond", sans-serif;
  font-size: 2.5vw;
  margin: 0 0 1.8vw;
}
#solution #solution02 .wrap .text .content {
  padding: 3vw 3vw 2.6vw;
  background: #fff;
}
#solution #solution02 .wrap .text .content h4 {
  font-size: 1.6vw;
  color: #be0018;
  margin: 0 0 2vw;
}
#solution #solution02 .wrap .text .content p {
  letter-spacing: -.05vw;
}
#solution #pr_journalism {
  padding: 15vw 8vw 4vw;
  background: url("../img/img-pr_journalism@2x.webp") no-repeat right top 6vw/42vw auto, url("../img/bg-link@3x.webp") no-repeat center top -41vw/200% auto;
}
#solution #pr_journalism .title-common01 {
  text-transform: none;
  font-size: 7vw;
}
#solution #pr_journalism .title-common01 strong {
  font-size: 2vw;
  margin: 3vw 0 0;
}
#solution #pr_journalism .title-common01:before {
  top: -4vw;
}
#solution #pr_journalism section h3 {
  font-size: 2vw;
}
#solution #pr_journalism section h3:before {
  top: .5vw;
}
#solution #pr_journalism section:last-of-type {
  margin: 0 0 4vw;
}
#solution #pr_journalism p {
  font-size: 1.4vw;
  margin: 0 0 4vw;
  padding: 0 38vw 0 0;
}
#solution #pr_journalism p:last-of-type {
  margin-bottom: 0;
}
@media (max-width: 559px) {
  #solution #solution01 {
    padding-left: 5vw;
    padding-right: 5vw;
  }
  #solution #solution01 section {
    gap: 4vw;
    flex-direction: column;
    border-bottom: 1px solid #000;
    padding: 0 0 7vw;
    margin: 0 0 9vw;
  }
  #solution #solution01 section h2 {
    font-size: 3.2vw;
    width: 100%;
    margin: 0 0 2vw;
  }
  #solution #solution01 section h2 span {
    font-size: 6.4vw;
    padding-right: 5vw;
    margin: 0 0 2vw;
  }
  #solution #solution01 section h2:after {
    display: none;
  }
  #solution #solution01 section.solution01-1 .text p {
    font-size: 4vw;
  }
  #solution #solution01 section.solution01-2 .text .img {
    padding: 7vw 8vw 4vw;
    margin: 0 0 2.2vw;
  }
  #solution #solution01 section.solution01-2 .text .img + p {
    font-size: 3.2vw;
    font-weight: 500;
  }
  #solution #solution01 section.solution01-3 > .text section {
    padding: 3vw;
    margin: 0 0 4vw;
  }
  #solution #solution01 section.solution01-3 > .text section .phase {
    font-size: 4vw;
    width: 100%;
    margin: 0 0 1vw;
  }
  #solution #solution01 section.solution01-3 > .text section .text h3 {
    font-size: 4vw;
  }
  #solution #solution01 section.solution01-3 > .text section .text p {
    font-weight: 500;
  }
  #solution #solution01 section.solution01-3 > .text section:after {
    height: 4.4vw;
    bottom: -4.5vw;
    left: 50%;
  }
  #solution #solution01 section:last-of-type {
    border-bottom: none;
    padding-bottom: 0;
  }
  #solution #solution02 {
    padding: 12vw 5vw;
  }
  #solution #solution02 h2 {
    font-size: 6vw;
    line-height: 1.6;
  }
  #solution #solution02 h2 span {
    font-size: 4vw;
  }
  #solution #solution02 .wrap {
    flex-direction: column;
  }
  #solution #solution02 .wrap .img {
    margin: 0 0 4vw;
    width: 100%;
    text-align: center;
  }
  #solution #solution02 .wrap .img img {
    width: 60vw;
  }
  #solution #solution02 .wrap .text h3 {
    font-size: 3.2vw;
    margin: 0 0 5vw;
  }
  #solution #solution02 .wrap .text h3 span {
    margin: 0 0 2.8vw;
    font-size: 5vw;
  }
  #solution #solution02 .wrap .text .content {
    padding: 5vw 5vw 3.6vw;
  }
  #solution #solution02 .wrap .text .content h4 {
    font-size: 4.4vw;
    line-height: 1.6;
  }
  #solution #pr_journalism {
    padding: 19vw 5vw 6vw;
    background: none, url(../img/bg-link@3x.webp) no-repeat center top -41vw/286% auto;
  }
  #solution #pr_journalism .passing {
    text-align: center;
  }
  #solution #pr_journalism .title-common01 {
    font-size: 9vw;
  }
  #solution #pr_journalism .title-common01 strong {
    margin: 4vw 0 0;
    font-size: 3.2vw;
  }
  #solution #pr_journalism .title-common01:before {
    top: -6vw;
  }
  #solution #pr_journalism section h3 {
    font-size: 4.4vw;
  }
  #solution #pr_journalism section h3:before {
    top: 2vw;
  }
  #solution #pr_journalism p {
    padding: 0;
    font-size: 3.2vw;
  }
}

#contact {
  background: #fff;
  padding-right: 4vw;
  margin: 0 0 8vw;
  padding: 0 15vw;
  box-sizing: border-box;
}
#contact .telBox {
  display: flex;
  flex-direction: column;
  align-items: center;
  border-bottom: 1px solid #000;
  padding: 0 0 4vw;
  margin: 0 0 4vw;
  border: 1px solid #000;
  padding: 4vw 3vw 3vw;
  display: none;
}
#contact .telBox h2 {
  font-size: 2vw;
  margin: 0 0 1.6vw;
}
#contact .telBox h2 span {
  background: url(../img/icon-headset@2x.webp) no-repeat left top/2.4vw auto;
  padding: 0vw 0 1vw 3.2vw;
}
#contact .telBox h2 + p {
  margin: 0 0 1.4vw;
}
#contact .telBox .telNum {
  display: flex;
  justify-content: center;
}
#contact .telBox .telNum dl {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}
#contact .telBox .telNum dl dt a {
  font-family: "helvetica-neue-lt-pro-cond", sans-serif;
  color: #0071bc;
  font-size: 3vw;
  letter-spacing: .1vw;
  line-height: 1.4;
}
#contact .telBox .telNum dl dd {
  font-family: "helvetica-neue-lt-pro-cond", sans-serif;
  color: #838383;
}
#contact .telBox .telNum dl:nth-of-type(1) {
  margin: 0 4vw 0 0;
}
#contact .telBox .telNum dl:nth-of-type(1):after {
  position: absolute;
  right: -2.1vw;
  top: .7vw;
  height: 3vw;
  width: 1px;
  background: #000;
  content: "";
}
#contact .telBox .telNum + p {
  font-weight: 700;
  font-size: 1.1vw;
  margin: 1vw 0 0;
}
#contact .ac-menu {
  background: #000;
  text-align: center;
  color: #fff;
  font-weight: 700;
  padding: 1vw 0;
  font-size: 1.4vw;
  cursor: pointer;
  margin: 0 0 2vw;
}
#contact .ac-menu span {
  position: relative;
}
#contact .ac-menu span:after {
  content: "";
  background: url("../img/arrow-white@3x.webp") no-repeat center top/cover;
  width: .6vw;
  height: 1vw;
  position: absolute;
  right: -2vw;
  top: .5vw;
  transform: rotateZ(90deg);
  transition: .3s;
}
#contact .ac-menu:hover span:after {
  top: .8vw;
}
#contact .ac-menu.active span:after {
  transform: rotateZ(270deg);
}
#contact .ac-menu + .list-form {
  display: none;
}
#contact .list-form {
  margin: 0 0 4vw;
}
#contact .privacy {
  background: #f4f4f4;
  padding: 5vw;
  height: 15vw;
  overflow-y: auto;
  margin: 5vw 0 3vw;
}
#contact .privacy h3 {
  text-align: center;
  font-size: 2vw;
  margin: 0 0 3vw;
}
#contact .privacy h4 {
  border: 1px solid #000;
  background: #fff;
  padding: 1.4vw 1.6vw 1.2vw;
  margin: 2vw 0 1vw;
}
#contact .privacy p {
  margin: 0 0 2vw;
}
#contact .privacy ol {
  margin: 0 0 0 1.6vw;
}
#contact .privacy ol li {
  list-style: decimal;
}
#contact .privacy ol li ol li {
  list-style: lower-roman;
}
#contact .check {
  margin: 0 0 3vw;
}
#contact .check input {
  height: 1.5vw;
  width: 1.5vw;
  position: relative;
  top: -.1vw;
  margin-right: .6vw;
}
#contact .sent {
  text-align: center;
}
#contact .sent input {
  border: none;
  background: #0071bc;
  color: #fff;
  font-size: 1.8vw;
  font-weight: 700;
  border-radius: .3vw;
  padding: 1.2vw 4vw;
  cursor: pointer;
  transition: .3s;
}
#contact .sent input:hover {
  background: #000;
}
#contact .sent input:disabled {
  background: #eee;
}
#contact .sent input:disabled:hover {
  background: #eee;
}
#contact .wpcf7-spinner {
  position: absolute;
}
@media (max-width: 959px) {
  #contact {
    padding: 0;
    margin: 0 5vw;
  }
}
@media (max-width: 559px) {
  #contact {
    margin: 0 5vw;
    padding: 5vw 0;
  }
  #contact .telBox {
    padding: 0 0 6vw;
    margin: 0 0 6vw;
  }
  #contact .telBox h2 {
    font-size: 4vw;
    margin: 0 0 2.6vw;
  }
  #contact .telBox h2 span {
    background-size: 4.4vw auto;
    padding: 0vw 0 1vw 6.2vw;
  }
  #contact .telBox .telNum {
    flex-direction: column;
    margin: 3vw 0;
  }
  #contact .telBox .telNum dl dt a {
    font-size: 6vw;
    line-height: 1;
  }
  #contact .telBox .telNum dl:nth-of-type(1) {
    margin: 0 0 3vw;
  }
  #contact .telBox .telNum dl:nth-of-type(1):after {
    display: none;
  }
  #contact .telBox .telNum + p {
    font-size: 3.2vw;
    margin: 0;
  }
  #contact .ac-menu {
    font-size: 3.6vw;
    line-height: 1.4;
    text-align: left;
    padding: 4vw;
  }
  #contact .ac-menu span:after {
    width: 1.8vw;
    height: 4vw;
    right: -23vw;
    top: 3.5vw;
  }
  #contact .ac-menu:hover span:after {
    top: 4vw;
  }
  #contact .privacy {
    height: 46vw;
    padding: 8vw 5vw;
  }
  #contact .privacy h3 {
    font-size: 4vw;
  }
  #contact .privacy h4 {
    margin: 4vw 0 2vw;
    padding: 2.4vw 2.6vw 2.2vw;
  }
  #contact .privacy p {
    font-size: 2.6vw;
  }
  #contact .privacy ol li {
    font-size: 2.6vw;
  }
  #contact .check {
    margin: 6vw 4vw 5vw 0;
  }
  #contact .check input {
    height: 3.5vw;
    width: 3.5vw;
    top: -.4vw;
  }
  #contact .sent input {
    font-size: 4.8vw;
    padding: 3.2vw 7vw;
    border-radius: 1vw;
  }
}

@-webkit-keyframes passing-bar {
  0% {
    left: 0;
    right: auto;
    width: 0;
  }
  50% {
    left: 0;
    right: auto;
    width: 100%;
  }
  51% {
    left: auto;
    right: 0;
    width: 100%;
  }
  100% {
    left: auto;
    right: 0;
    width: 0;
  }
}
@keyframes passing-bar {
  0% {
    left: 0;
    width: 0;
  }
  50% {
    left: 0;
    width: 100%;
  }
  51% {
    left: 0;
    width: 100%;
  }
  100% {
    left: 100%;
    width: 0;
  }
}
@-webkit-keyframes passing-txt {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes passing-txt {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.passing .passing-bar {
  position: relative;
  display: inline-block;
  -webkit-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}
.passing .passing-bar::before {
  content: '';
  display: inline-block;
  width: 0;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
  background: #be0018;
}
.passing .passing-bar.type02:before {
  background: #000;
}
.passing .passing-txt {
  opacity: 0;
  -webkit-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  font-weight: bold;
}
.passing.move .passing-bar::before {
  -webkit-animation: passing-bar 1s ease 0s 1 normal forwards;
  animation: passing-bar 1s ease 0s 1 normal forwards;
}
.passing.move .passing-txt {
  -webkit-animation: passing-txt 0s ease 0.5s 1 normal forwards;
  animation: passing-txt 0s ease 0.5s 1 normal forwards;
}
.passing.mb5 {
  margin: 0 0 5vw;
}
.passing.mb7 {
  margin: 0 0 7vw;
}
.passing.mb8 {
  margin: 0 0 8vw;
}
