@charset "UTF-8";
/*==================================================

** index
==================================================*/
@keyframes down-border {
  0% {
    height: 0%;
    top: 0px; }
  50% {
    height: 100%;
    top: 0; }
  100% {
    height: 0px;
    top: 100%; } }
#indexSec .indexpagenav {
  margin-top: 96px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 2.94%; }
  #indexSec .indexpagenav li {
    border-radius: 8px;
    border: 1px solid #ddd;
    overflow: hidden;
    box-shadow: 4px 4px 0px rgba(0, 0, 0, 0.08); }
  #indexSec .indexpagenav a {
    display: grid;
    grid-template-columns: 27.8% 1fr;
    gap: 5.96%;
    align-items: center; }
    #indexSec .indexpagenav a:hover {
      color: #df2b22; }
  #indexSec .indexpagenav .txtbox {
    padding-right: 5.96%; }
    #indexSec .indexpagenav .txtbox p {
      font-weight: 700;
      font-size: 1.8rem; }

#mainvisual {
  order: -1;
  background: url("../img/index/index_mainvisual_bg_pc.webp") no-repeat center center/cover;
  height: 688px;
  position: relative; }
  #mainvisual .txtbox {
    margin-top: 184px; }
  #mainvisual .mv-ttl p {
    font-size: 2.0rem;
    font-weight: 900;
    line-height: 1.2; }
    #mainvisual .mv-ttl p .fz-l {
      font-size: 3.2rem; }
  #mainvisual .mv-ttl h1 {
    margin-top: 16px;
    font-size: 3.6rem;
    font-weight: 900; }
    #mainvisual .mv-ttl h1 .fz-l {
      font-size: 133%; }
  #mainvisual .mv-btn {
    margin-top: 32px;
    width: 550px; }
    #mainvisual .mv-btn a {
      display: block;
      text-align: center;
      color: #fff;
      background: #043160;
      padding: 32px;
      border-radius: 16px;
      box-shadow: 4px 4px 0px rgba(0, 0, 0, 0.08);
      position: relative; }
      #mainvisual .mv-btn a:before {
        content: "";
        font: normal normal 400 1em "Font Awesome 6 Free";
        line-height: inherit;
        color: #fff;
        position: absolute;
        left: 32px;
        top: 50%;
        transform: translateY(-50%); }
      #mainvisual .mv-btn a:hover {
        opacity: .9; }
  #mainvisual .mv-scroll {
    position: absolute;
    bottom: 102px;
    right: 3.52%; }
    #mainvisual .mv-scroll-txt {
      writing-mode: vertical-rl;
      color: #fff;
      font-size: 1.4rem;
      line-height: 0;
      white-space: nowrap; }
    #mainvisual .mv-scroll-bar {
      display: block;
      margin: 8px auto 0;
      width: 1px;
      height: 80px;
      position: relative;
      overflow: hidden; }
      #mainvisual .mv-scroll-bar:after {
        content: '';
        display: block;
        width: 1px;
        height: 100%;
        background: #fff;
        position: absolute;
        left: 0;
        animation: down-border 2.4s cubic-bezier(0.85, 0, 0.15, 1) 0s infinite normal forwards; }

#indexService .service-ttl {
  margin-top: 96px;
  font-weight: 700; }
  #indexService .service-ttl h2 {
    margin-top: 8px; }
  #indexService .service-ttl + p {
    margin-top: 48px; }
#indexService .service-list {
  margin-top: 48px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.85%; }
#indexService .service-li {
  position: relative;
  display: flex;
  flex-direction: column; }
  #indexService .service-li:before {
    content: "";
    background: url("../img/common/ico_tri_rounded_rd_btm.svg") no-repeat center center/contain;
    display: block;
    width: 26px;
    height: 19px;
    margin: 0 auto 16px; }
  #indexService .service-li a {
    border: 2px solid #df2b22;
    background: #fff;
    border-radius: 16px;
    padding: 5.88%;
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 24px;
    box-shadow: 4px 4px 0px rgba(0, 0, 0, 0.08);
    flex: 1; }
  #indexService .service-li h3 + p {
    margin-top: 8px; }

#indexSitenav .sitenav-pagenv {
  margin-top: 48px;
  gap: 48px 3.95%; }
#indexSitenav .sitenav-li {
  width: 30.7%; }
#indexSitenav .sitenav-box a {
  display: flex;
  justify-content: center;
  align-content: center;
  padding: 39px 0;
  position: relative;
  z-index: 1; }
  #indexSitenav .sitenav-box a:hover {
    opacity: 1; }
    #indexSitenav .sitenav-box a:hover img {
      scale: 1.1;
      transition: all 0.8s; }
#indexSitenav .sitenav-box .ttl {
  margin-top: 0; }
  #indexSitenav .sitenav-box .ttl:after {
    content: "";
    display: block;
    background: url("../img/common/ico_circle_angle_wt_rt.svg") no-repeat center center/contain;
    width: 40px;
    aspect-ratio: 1/1;
    margin: 12px auto 0; }
  #indexSitenav .sitenav-box .ttl span {
    font-size: 2.0rem;
    color: #fff;
    height: calc(2em*1.6);
    display: flex;
    align-items: center; }
#indexSitenav .sitenav-box .pht {
  overflow: hidden;
  width: 100%;
  height: 100%;
  margin-top: 0;
  border-radius: 8px;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1; }
  #indexSitenav .sitenav-box .pht img {
    transition: all 0.4s; }
#indexSitenav .sitenav-box img {
  object-fit: cover;
  width: 100%;
  height: 100%; }
#indexSitenav .sitenav-box + p {
  margin-top: 16px; }

#indexNews {
  margin-top: 80px; }
  #indexNews .news-ttl {
    gap: 0 12px; }
    #indexNews .news-ttl h2 {
      margin-top: 0; }
    #indexNews .news-ttl p {
      margin: 0 0 4px; }
  #indexNews .news-list a {
    border-bottom: none;
    padding: 16px 0; }
  #indexNews .white-btn {
    position: absolute;
    top: -2px;
    right: 20px;
    margin-top: 0;
    width: 160px; }
    #indexNews .white-btn a {
      border: 1px solid #ddd;
      background: #fff;
      color: #df2b22;
      font-size: 1.4rem;
      font-weight: 500;
      padding: 12px;
      border-radius: 8px;
      margin: 0; }
      #indexNews .white-btn a:hover {
        border-color: #df2b22;
        background: #df2b22;
        color: #fff; }

@media screen and (max-width: 960px) {
  #indexSec .indexpagenav {
    grid-template-columns: 1fr;
    gap: 24px; }
    #indexSec .indexpagenav a {
      grid-template-columns: 98px 1fr; }

  #indexService .service-li a {
    padding: 31px 5.88%;
    grid-template-columns: 1fr;
    gap: 16px; }
  #indexService .service-li .phtbox {
    width: 140px;
    margin: auto; }
  #indexService .service-li h3, #indexService .service-li p {
    text-align: center; }

  #indexSitenav .sitenav-pagenv {
    margin-top: 48px;
    gap: 32px 4%; }
  #indexSitenav .sitenav-li {
    width: 48%; }

  #indexNews .white-btn {
    right: 0; } }
@media screen and (max-width: 767px) {
  #indexSec .indexpagenav {
    margin-top: 80px; }

  #mainvisual {
    background-image: url("../img/index/index_mainvisual_bg_sp.webp");
    height: 100svh;
    min-height: 688px; }
    #mainvisual .txtbox {
      margin-top: 124px; }
    #mainvisual .mv-ttl p {
      font-size: 4vw; }
      #mainvisual .mv-ttl p .fz-l {
        font-size: 150%; }
    #mainvisual .mv-ttl h1 {
      font-size: 6vw; }
      #mainvisual .mv-ttl h1 .fz-l {
        font-size: 125%; }
    #mainvisual .mv-btn {
      width: 100%; }
      #mainvisual .mv-btn a {
        padding: 14px;
        line-height: 1.6; }
        #mainvisual .mv-btn a:before {
          left: 24px; }
    #mainvisual .mv-scroll {
      bottom: 32px;
      right: 5%; }

  #indexService .service-ttl {
    margin-top: 80px; }
  #indexService .service-list {
    margin-top: 48px;
    grid-template-columns: 1fr;
    gap: 32px; }
  #indexService .service-li a {
    padding: 32px 5%;
    grid-template-columns: 1fr;
    gap: 16px; }

  #indexSitenav .sitenav-pagenv {
    margin-top: 64px;
    gap: 48px; }
  #indexSitenav .sitenav-li {
    width: 100%; }
    #indexSitenav .sitenav-li p {
      margin-top: 16px; }
  #indexSitenav .sitenav-box a {
    padding: 44px 0; }

  #indexNews .white-btn {
    position: static;
    margin-top: 32px;
    width: 100%; } }
