:root {
  --color-black: #222;
  --color-red: #FA0C0F;
  --color-red2: #cc0000;
  --color-red3: #7D0008;
  --color-blue: #2D5686;
  --color-gray: #F4F4F4;
  --color-gray2: #D9D9D9;
  --color-gray3: #B3B3B3;
  --color-gray4: #737373;
  --color-gray5: #4D4D4D;
  --color-gray6: #222;
  --color-yellowTag: #F0A632;
  --headerH: 105px;
  --contW-max: 1275px;
  --transVals: 0.3s ease;
}
@media screen and (max-width: 767px) {
  .JS #Contents {
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 80px;
  }
}
.JS .ImgBoxStyle1 .ImgOnlyStyle span, .JS .ImgBoxStyle2 .ImgOnlyStyle span,
.JS .ImgBoxStyle1 .ImgOnlyStyle img, .JS .ImgBoxStyle2 .ImgOnlyStyle img {
  height: 100% !important;
  -o-object-fit: cover !important;
  object-fit: cover !important;
}

@media not all and (max-width: 767px), print {
  .Grid4 .Section {
    padding-bottom: 40px;
  }
}
@media screen and (max-width: 767px) {
  .Grid4 .Section {
    padding-bottom: 20px;
  }
}
@media not all and (max-width: 767px), print {
  .Grid4 .Section > * + * {
    margin-top: 32px;
  }
}
@media screen and (max-width: 767px) {
  .Grid4 .Section > * + * {
    margin-top: 24px;
  }
}
@media not all and (max-width: 767px), print {
  .Grid4 .Section > * + h3 {
    margin-top: 24px;
  }
}
@media screen and (max-width: 767px) {
  .Grid4 .Section > * + h3 {
    margin-top: 16px;
  }
}
@media not all and (max-width: 767px), print {
  .Grid4 .Section > h4 {
    margin-bottom: 48px;
  }
}
@media screen and (max-width: 767px) {
  .Grid4 .Section > h4 {
    margin-bottom: 30px;
  }
}
.Grid4 .Section + .caseStudyBox {
  margin-top: 24px;
}
.Grid4 .ColumnSet__3col {
  display: flex;
  flex-wrap: wrap;
}
@media not all and (max-width: 994px), print {
  .Grid4 .ColumnSet__3col {
    gap: 25px 26px;
  }
}
@media screen and (max-width: 994px) {
  .Grid4 .ColumnSet__3col {
    flex-direction: column;
    row-gap: 12px;
  }
}
.Grid4 .ColumnSet__3col::after {
  display: none;
}
@media not all and (max-width: 994px), print {
  .Grid4 .ColumnSet__3col .Column1 {
    margin: 0;
    width: calc((100% - 52px) / 3);
  }
}
@media screen and (max-width: 994px) {
  .Grid4 .ColumnSet__3col .Column1 {
    width: 100%;
  }
}
.Grid4 .ColumnSet__3col .Column1 .ImgBoxStyle1 {
  display: flex;
  text-decoration: none;
}
@media not all and (max-width: 994px), print {
  .Grid4 .ColumnSet__3col .Column1 .ImgBoxStyle1 {
    height: 100%;
  }
}
.Grid4 .ColumnSet__3col .Column1 .ImgBoxStyle1:focus-visible {
  text-decoration: underline;
  text-decoration-color: var(--color-gray6);
}
@media (any-hover: hover) {
  .Grid4 .ColumnSet__3col .Column1 .ImgBoxStyle1:hover {
    text-decoration: underline;
    text-decoration-color: var(--color-gray6);
  }
}
.Grid4 .ColumnSet__3col .Column1 .ImgBoxStyle1 .ImgOnlyStyle {
  align-self: center;
}
@media not all and (max-width: 994px), print {
  .Grid4 .ColumnSet__3col .Column1 .ImgBoxStyle1 .ImgOnlyStyle {
    width: 34.3%;
    height: 100%;
  }
}
@media screen and (max-width: 994px) {
  .Grid4 .ColumnSet__3col .Column1 .ImgBoxStyle1 .ImgOnlyStyle {
    width: 29.85%;
    flex-shrink: 0;
  }
}
.Grid4 .ColumnSet__3col .Column1 .ImgBoxStyle1 .Inner {
  vertical-align: top;
}
@media not all and (max-width: 994px), print {
  .Grid4 .ColumnSet__3col .Column1 .ImgBoxStyle1 .Inner {
    padding-block: 24px;
    width: 64%;
  }
}
@media screen and (max-width: 994px) {
  .Grid4 .ColumnSet__3col .Column1 .ImgBoxStyle1 .Inner {
    padding-bottom: 16px;
    width: auto;
    flex-grow: 1;
  }
}
.Grid4 .ColumnSet__3col .Column1 .ImgBoxStyle1 .Inner::before {
  display: none;
}
.Grid4 .ColumnSet__3col .Column1 .ImgBoxStyle1 .Inner h4 {
  color: var(--color-gray6);
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.45;
}
@media not all and (max-width: 994px), print {
  .Grid4 .ColumnSet__3col .Column1 .ImgBoxStyle1 .Inner h4 {
    margin-bottom: 16px;
    margin-inline: 24px;
    font-size: 87.5%;
  }
}
@media screen and (max-width: 994px) {
  .Grid4 .ColumnSet__3col .Column1 .ImgBoxStyle1 .Inner h4 {
    margin-bottom: 9px;
    margin-inline: 16px !important;
    font-size: 81.25%;
  }
}
@media screen and (max-width: 767px) {
  .Grid4 .ColumnSet__3col .Column1 .ImgBoxStyle1 .Inner h4 {
    padding-inline: 0 !important;
  }
}
.Grid4 .ColumnSet__3col .Column1 .ImgBoxStyle1 .Inner .TextStyle2 {
  margin-bottom: 0;
  color: var(--color-gray6);
  font-size: 75%;
  letter-spacing: -0.02em;
  line-height: 1;
}
@media screen and (max-width: 994px) {
  .Grid4 .ColumnSet__3col .Column1 .ImgBoxStyle1 .Inner .TextStyle2 {
    margin-inline: 16px;
  }
}
@media screen and (max-width: 994px) {
  .Grid4 .ColumnSet:has(.Column1andHalf):has(.ImgOnlyStyle) > *:last-child:nth-child(odd), .Grid4 .ColumnSet:has(.Column1):has(.ImgOnlyStyle) > *:last-child:nth-child(odd) {
    width: 100% !important;
    max-width: none !important;
  }
}
@media not all and (max-width: 767px), print {
  .Grid4 .BoxPatternC:has(.HorizontalInnerLinks) {
    padding-inline: 26px;
    padding-block: 30px;
  }
}

@media not all and (max-width: 767px), print {
  .Grid3 h2 {
    margin-bottom: 32px;
  }
}
@media screen and (max-width: 767px) {
  .Grid3 h2 {
    margin-bottom: 20px;
  }
}
.Grid3 h2 > span {
  position: relative;
  margin-bottom: 0;
  color: var(--color-gray6);
  font-weight: bold;
  line-height: 1.55;
  letter-spacing: 0.04em;
  min-height: auto;
  line-height: 1.55;
}
@media not all and (max-width: 767px), print {
  .Grid3 h2 > span {
    padding-block: 10px;
    padding-left: 20px;
    font-size: 125%;
  }
}
@media screen and (max-width: 767px) {
  .Grid3 h2 > span {
    padding-block: 4px;
    padding-left: 16px;
    font-size: 112.5%;
  }
}
.Grid3 h2 > span::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background-color: var(--color-red2);
}
.Grid3 h2 > span::after {
  display: none;
}
.Grid3 h3 {
  margin-bottom: 0;
  font-weight: bold;
  line-height: 1.55;
  letter-spacing: 0.04em;
  padding-left: 0;
  padding-block: 0;
  letter-spacing: 0.02em;
  line-height: 1.125;
}
@media not all and (max-width: 767px), print {
  .Grid3 h3 {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) {
  .Grid3 h3 {
    font-size: 93.75%;
  }
}
.Grid3 h3::before {
  display: none;
}
@media not all and (max-width: 767px), print {
  .Grid3 .PageTitleStyle1 {
    margin-top: 6px;
  }
}
@media not all and (max-width: 767px), print {
  .Grid3 .PageTitleStyle1 + .Section {
    padding-bottom: 60px;
  }
}
@media screen and (max-width: 767px) {
  .Grid3 .PageTitleStyle1 + .Section {
    padding-bottom: 30px;
  }
}
@media screen and (max-width: 767px) {
  .Grid3 .ColumnSet {
    display: flex;
    flex-direction: column-reverse;
  }
}
@media not all and (max-width: 767px), print {
  .Grid3 .ColumnSet > div > h3 {
    margin-bottom: 16px;
  }
}
@media not all and (max-width: 767px), print {
  .Grid3 .Column1andHalf {
    margin-left: 40px;
    width: 40%;
  }
}
@media not all and (max-width: 1304px), print {
  .Grid3 .Column1andHalf.FirstItem {
    margin-left: 0;
    width: calc(60% - 40px);
  }
}
.Grid3 .Column1andHalf .ListStyle1 {
  font-size: 100%;
}
.Grid3 .Column1andHalf .ListStyle1 li {
  line-height: 1.75;
  margin-bottom: 1px;
  padding-left: 22px;
  font-size: 87.5%;
  letter-spacing: 0.02em;
}
.Grid3 .Column1andHalf .ListStyle1 li::before {
  top: 0.5lh;
  left: 9px;
}
.Grid3 .Column1andHalf .ImgOnlyStyle > img {
  width: 100%;
}
@media not all and (max-width: 767px), print {
  .Grid3 .Column1andHalf .main-img,
  .Grid3 .Column1andHalf .sub-img {
    width: 100%;
    margin-left: auto;
    margin-right: 0;
  }
}
.Grid3 .Column1andHalf .main-img > img {
  width: 100%;
  height: auto;
}
.Grid3 .Column1andHalf .sub-img {
  display: flex;
  flex-wrap: wrap;
  margin-top: 4px;
  gap: 4px;
}
@media not all and (max-width: 767px), print {
  .Grid3 .Column1andHalf .sub-img {
    cursor: pointer;
  }
}
.Grid3 .Column1andHalf .sub-img > li {
  width: calc(25% - 3px);
}
.Grid3 .Column1andHalf .sub-img > li > img {
  width: 100%;
  height: auto;
}
.Grid3 .Column1andHalf .sub-img > li.current {
  outline: 2px solid var(--color-red2);
}