@charset "UTF-8";
/*================================================== 
  Common
==================================================*/
/*************** header ****************/
.header__inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  flex-direction: row;
}
.header__logo {
  width: 8.75rem;
  margin-left: max(50% - 590px, 2.5%);
}

/*************** container ****************/
#container {
  position: relative;
}

/* ===== Breadcrumb ===== */
.breadcrumb {
  background: #fff;
  padding-block: 1.2rem;
  margin-top: 0.75rem;
}
.breadcrumb__inner {
  max-width: var(--container-lg);
  margin-inline: auto;
  padding-inline: var(--container-pad, 1.25rem);
  line-height: 1;
  font-size: 0;
  white-space: nowrap;
}
.breadcrumb__inner li {
  /* li が直下に入ってくる想定（NavXTの出力そのまま対応） */
  display: inline-block;
  color: #DC0012;
  font-size: clamp(0.625rem, 0.55rem + 0.4vw, 0.75rem);
  position: relative;
}
.breadcrumb__inner li:not(:last-child)::after {
  /* 区切り ＞ */
  content: " ＞ ";
  line-height: 1;
  color: currentColor;
  position: absolute;
  left: 100%;
  top: 50%;
  transform: translateY(-50%);
}
.breadcrumb__inner li:not(:first-child) {
  margin-left: 0.7rem;
}
.breadcrumb__inner a {
  /* リンク */
  color: inherit;
  text-decoration: none;
}
.breadcrumb__inner a:hover {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

/* 2行折返しを避けたい場合：狭い画面で少しだけ字間を詰める */
@media (max-width: 767.8px) {
  .breadcrumb__inner {
    line-height: 1.1;
  }
}
@media screen and (max-width: 767.8px) {
  .breadcrumb {
    overflow-x: scroll;
  }
}
/*************** footer ****************/
.footer__contactblock {
  color: #FFF;
  margin-top: 6.625rem;
}
.footer__contactblock .inner {
  max-width: 1180px;
  width: 95%;
  margin-right: auto;
  margin-left: auto;
}
.footer__contactlinklist {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  flex-direction: row;
  gap: 1.2rem;
  font-weight: 700;
  margin-bottom: 1.3125rem;
}
.footer__contactlinklist a {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 0.75rem;
  border-radius: 0.56rem;
  position: relative;
  height: 10rem;
}
.footer__contactlinklist a::after {
  content: "";
  display: inline-block;
  position: absolute;
  background: url(../img/common/icon_arrow-wh.png) no-repeat top left/contain;
  width: 1.125rem;
  height: auto;
  aspect-ratio: 2/1;
  top: 50%;
  right: 8%;
  transform: translateY(-50%);
  transition: all 0.3s ease;
}
.footer__contactlinklist a:hover {
  opacity: 1;
}
.footer__contactlinklist a:hover::after {
  right: 5%;
}
.footer__contactlinklist a .circle {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  flex-direction: row;
  width: 3.625rem;
  height: 3.625rem;
  border-radius: 50vh;
  border: solid 1px #FFF;
}
.footer__contactlinklist a .label {
  font-size: clamp(0.9rem, 2vw, 1.25rem);
}
.footer__contactlinkbtn--01 {
  background: linear-gradient(to right bottom, #FF3E4D, #CB0011);
}
.footer__contactlinkbtn--01 img {
  width: 1.625rem;
  height: auto;
}
.footer__contactlinkbtn--02 {
  background: linear-gradient(to right bottom, #0055A5, #001931);
}
.footer__contactlinkbtn--02 img {
  width: 2.1875rem;
  height: auto;
}
.footer__contactlinkbtn--03 {
  background: linear-gradient(to right bottom, #EBEBEB, #A5A5A5);
  color: #000000;
}
.footer__contactlinkbtn--03 .small {
  font-size: 0.75rem;
  text-align: center;
}
.footer__contactlinkbtn--03::after {
  background: url(../img/common/icon_arrow-bk.png) no-repeat top left/contain !important;
}
.footer__contactwrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
  height: 12rem;
  background: url(../img/common/bg_contact.png) no-repeat left top/cover;
  border-radius: 0.56rem;
  overflow: hidden;
}
.footer__contactwrap a {
  font-weight: 700;
  position: relative;
  max-width: 95%;
}
.footer__contactwrap a:hover {
  opacity: 1;
}
.footer__contactwrap a .baloon {
  color: #DC0012;
  background: #FFF;
  border-radius: 50vh;
  text-align: center;
  font-size: 0.875rem;
  padding: 0.5em 3em;
  min-width: 15em;
  line-height: 1;
  position: absolute;
  left: 50%;
  top: -1em;
  transform: translateX(-50%);
  z-index: 9;
}
.footer__contactwrap a .label {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  flex-direction: row;
  background: linear-gradient(to right bottom, #EBEBEB, #A5A5A5);
  color: #000000;
  border-radius: 50vh;
  width: 26.25rem;
  max-width: 100%;
  height: 5rem;
  font-size: 1.25rem;
  position: relative;
}
.footer__contactwrap a .label::after {
  content: "";
  display: inline-block;
  position: absolute;
  background: url(../img/common/icon_arrow-bk.png) no-repeat top left/contain;
  width: 1.125rem;
  height: auto;
  aspect-ratio: 2/1;
  top: 50%;
  right: 8%;
  transform: translateY(-50%);
  transition: all 0.3s ease;
}
.footer__contactwrap a .label:hover {
  opacity: 1;
}
.footer__contactwrap a .label:hover::after {
  right: 5%;
}
.footer__contTxt {
  text-align: center;
  font-size: 1.125rem;
  font-weight: 500;
}
.footer__mainblock {
  margin-top: 10rem;
  position: relative;
}
.footer__mainblock::before {
  content: "";
  display: inline-block;
  position: absolute;
  width: 100%;
  height: auto;
  aspect-ratio: 481/20;
  background: url(../img/common/line01.png) no-repeat left top/contain;
  bottom: calc(100% + 3.75rem);
}
.footer__mainblock .inner {
  margin-bottom: 6rem;
}
.footer__logo {
  width: 150px;
  margin-bottom: 2rem;
}
.footer__info {
  margin-bottom: 4.25rem;
}
.footer__company {
  font-weight: 700;
  font-size: 1.125rem;
  margin-bottom: 0.6875rem;
}
.footer__address, .footer__tel {
  font-size: 0.875rem;
}
.footer__snslist {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  flex-direction: row;
  gap: 1.625rem;
}
.footer__snslink {
  width: 2rem;
}
.footer__linkbtnlist {
  margin-bottom: 1rem;
}
.footer__linkbtn {
  font-size: 0.875rem;
  font-weight: 700;
}
.footer__linkbtn a {
  width: 16.75rem;
  gap: 0.5em;
  margin-left: auto;
  margin-right: auto;
}
.footer__linkbtn .btn-type02 {
  margin-bottom: 0.375rem;
}
.footer__linkbtn .btn-type02 img {
  width: 0.6875rem;
  height: auto;
}
.footer__linkbtn .btn-type03 {
  margin-bottom: 0.625rem;
}
.footer__linkbtn .btn-type03 img {
  width: 0.875rem;
  height: auto;
}
.footer__linkbtn--recruit {
  overflow: hidden;
  font-size: 0.875rem;
  font-weight: 700;
}
.footer__linkbtn--recruit a {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  flex-direction: row;
  gap: 0.5em;
  width: 20rem;
  max-width: 100%;
  height: auto;
  aspect-ratio: 8/3;
  padding-left: 10%;
  background: url(../img/common/bg_bnr-recruit.png) no-repeat left top/cover;
  color: #FFF;
  border-radius: 0.56rem;
  position: relative;
}
.footer__linkbtn--recruit a::after {
  content: "";
  display: inline-block;
  position: absolute;
  background: url(../img/common/icon_arrow-wh.png) no-repeat top left/contain;
  width: 1.125rem;
  height: auto;
  aspect-ratio: 2/1;
  top: 50%;
  right: 10%;
  transform: translateY(-50%);
  transition: all 0.3s ease;
}
.footer__linkbtn--recruit a:hover {
  opacity: 1;
}
.footer__linkbtn--recruit a:hover::after {
  right: 7%;
}
.footer__linkbtn--recruit a img {
  width: 0.875rem;
  height: auto;
}
.footer__privacymark {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  flex-direction: row;
  gap: 1em;
  width: 20rem;
  font-size: 0.75rem;
  background: #FFF;
  border: solid 1px #B9B9B9;
  padding: 1em 0;
  border-radius: 0.56rem;
}
.footer__privacymark span {
  width: calc(100% - 7rem);
}
.footer__privacymark img {
  width: 4rem;
  height: 4rem;
}
.footer__privacylink {
  text-align: center;
}
.footer__privacylink a {
  display: inline-block;
  color: #DC0012;
  font-size: 0.875rem;
  margin: 0 1em 1em;
}
.footer__copyright {
  background: #DC0012;
  font-family: "Trebuchet MS", sans-serif;
  text-align: center;
  color: #FFF;
  font-size: 0.75rem;
  line-height: 1;
  padding: 1.5em 0;
}

/*************** floating ****************/
.bnr-floating {
  position: fixed;
  bottom: 6rem;
  right: 2.5%;
  z-index: 999;
  width: 52px;
  height: 237px;
}
.bnr-floating a {
  width: 52px;
  height: 219px;
  color: #FFF;
  filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.25));
}
.bnr-floating .close {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  flex-direction: row;
  width: 18px;
  height: 18px;
  line-height: 1;
  color: #000;
  font-size: 12px;
  background: #FFF;
  border: solid 1px #000;
  border-radius: 50vh;
  cursor: pointer;
}

/*************** pagetop ****************/
.btn-ancPagetop {
  width: 4rem;
  height: 4rem;
  position: fixed;
  right: 2%;
  bottom: 1rem;
  z-index: 999;
}
.btn-ancPagetop a {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  flex-direction: row;
  width: 100%;
  height: 100%;
  color: #FFF;
  font-size: 1rem;
  line-height: 1;
  background: linear-gradient(to right bottom, #FF3E4D, #CB0011);
  border: solid 1px #FFF;
  border-radius: 50vh;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
}

/*/////////////////////////////////////////////////////////// 

 Media Query - Small（576px〜）

///////////////////////////////////////////////////////////*/
@media (min-width: 575.9px) {
  /*************** footer ****************/
  .footer__contactlinklist a {
    width: calc(50% - 1.2rem);
  }
}
/*/////////////////////////////////////////////////////////// 

 Media Query - Medium（768px〜） 

///////////////////////////////////////////////////////////*/
@media (min-width: 767.8px) {
  /*************** header ****************/
  .header {
    padding-bottom: 1rem;
  }
  .header.fixed {
    position: fixed;
    width: 100%;
    background: rgba(255, 255, 255, 0.95);
    z-index: 999;
    top: 0;
    left: 0;
  }
  .header.fixed + main {
    padding-top: 11.375rem;
  }
  .header__inner {
    margin-bottom: 1rem;
  }
  .header__pnavi {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    flex-direction: row;
    gap: 0 1rem;
  }
  .header__tel img {
    width: 12.25rem;
  }
  .header__bizhour {
    display: inline-block;
    font-size: 0.75rem;
    color: #DC0012;
    line-height: 1.4;
  }
  .header__btnlist {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start;
    flex-direction: row;
    gap: 0 2px;
  }
  .header__btn a {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    flex-direction: row;
    gap: 0.5rem;
    height: 5rem;
    color: #FFF;
    font-size: 0.75rem;
    font-weight: 700;
    text-align: center;
  }
  .header__btn img {
    display: none;
  }
  .header__btn--red {
    width: 7rem;
    background: linear-gradient(to right bottom, #FF3E4D, #CB0011);
  }
  .header__btn--blue {
    width: 8.25rem;
    background: linear-gradient(to right bottom, #0055A5, #001931);
  }
  .header__btn--blue02 {
    width: 6rem;
    background: linear-gradient(to right bottom, #448ED5, #004D97);
  }
  .header__gnavi {
    height: 4.375rem;
    background: #FFF;
    border: solid 1px #DC0012;
    border-radius: 50vh;
  }
  .header__navlist {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    flex-direction: row;
    gap: 0 6.78%;
    height: 100%;
    color: #DC0012;
    font-weight: 500;
    font-size: clamp(1rem, 2vw, 1.125rem);
  }
  .header__navlist--child {
    width: 10rem;
    height: auto;
    background: rgba(220, 1, 18, 0.85);
    border-radius: 0.56rem;
    color: #FFF;
    line-height: 1;
    font-size: 0.875rem;
    position: absolute;
    top: calc(100% + 1rem);
    left: 0;
    z-index: 999;
  }
  .header__navlist--child::after {
    content: "";
    display: inline-block;
    position: absolute;
    border: solid 0.5rem transparent;
    border-bottom: solid 0.75rem #DC0012;
    bottom: 100%;
    left: 12%;
    opacity: 0.85;
  }
  .header__navlist--child a {
    padding: 0.75rem;
  }
  .header__navitem--parent {
    position: relative;
    overflow: hidden;
    width: calc(5.34375rem + 6px);
    cursor: pointer;
  }
  .header__navitem--parent::after {
    content: "";
    display: inline-block;
    position: absolute;
    width: 6px;
    height: 6px;
    border-top: solid 1px #DC0012;
    border-right: solid 1px #DC0012;
    top: 50%;
    right: 2px;
    transform: translateY(-50%) rotate(135deg);
  }
  .header__navitem--parent.is-open {
    overflow: visible;
  }
  .header__navitem--parent.is-open::after {
    transform: translateY(calc(-50% + 3px)) rotate(-45deg);
  }
  .header__navitem--child:nth-child(n+2) {
    border-top: dotted 1px #FFF;
  }
  /*************** footer ****************/
  .footer__contactlinklist a {
    width: calc((100% - 2.4rem) / 3);
  }
  .footer__mainblock .inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    flex-direction: row;
    gap: 3rem 0;
  }
  .footer__nav {
    margin-bottom: 2rem;
  }
  .footer__navlist {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start;
    flex-direction: row;
    gap: 2.375rem;
  }
}
/*/////////////////////////////////////////////////////////// 

 Media Query - Large（980px〜） 

///////////////////////////////////////////////////////////*/
@media (min-width: 980px) {
  /*************** header ****************/
  .header__tel a {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    flex-direction: row;
    gap: 0.75rem;
  }
  .header__btn a {
    font-size: 0.875rem;
    flex-direction: column;
    gap: 0.25rem;
    line-height: 1.15;
  }
  .header__btn img {
    display: inline-block;
  }
  .header__btn--red {
    width: 9.5rem;
  }
  .header__btn--red img {
    width: 1rem;
    height: auto;
  }
  .header__btn--blue {
    width: 11.5rem;
  }
  .header__btn--blue img {
    width: 1.25rem;
    height: auto;
  }
  .header__btn--blue02 {
    width: 8.5rem;
  }
  .header__btn--blue02 img {
    width: 1.125rem;
    height: auto;
  }
  /*************** footer ****************/
  .footer__mainblock .inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    flex-direction: row;
  }
  .footer__linkbtn a {
    margin-right: 0;
  }
}
/*/////////////////////////////////////////////////////////// 

 Media Query - Extra Large（1180px〜） 

///////////////////////////////////////////////////////////*/
@media (min-width: 1180px) {
  /*************** header ****************/
  .header__tel img {
    width: 16.25rem;
  }
  .header__btn a {
    flex-direction: row;
  }
  .header__btn br {
    display: none;
  }
  .header__btn--red {
    width: 12.5rem;
  }
  .header__btn--blue {
    width: 14.5rem;
  }
  .header__btn--blue02 {
    width: 10.5rem;
  }
}
/*/////////////////////////////////////////////////////////// 

 Media Query - Medium Small（〜767px） 

///////////////////////////////////////////////////////////*/
@media (max-width: 767.8px) {
  /*************** header ****************/
  .header {
    width: 100%;
    height: 4.2rem;
  }
  .header.fixed {
    position: fixed;
    top: 0;
    left: 0;
    background: rgba(255, 255, 255, 0.9);
    z-index: 999;
  }
  .header.fixed + main {
    padding-top: 5rem;
  }
  .header__inner {
    height: 100%;
  }
  .header__logo {
    width: 6.75rem;
  }
  .header__hmbgr {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 0.6rem;
    margin-right: 2.5%;
  }
  .header__hmbgr div {
    display: inline-block;
    width: 2.5rem;
    height: 2px;
    background: #DC0012;
    transition: all 0.3s ease;
  }
  .header__hmbgr.close div:nth-of-type(1) {
    transform: translateY(10px) rotate(45deg);
  }
  .header__hmbgr.close div:nth-of-type(2) {
    width: 0;
  }
  .header__hmbgr.close div:nth-of-type(3) {
    transform: translateY(-10px) rotate(-45deg);
  }
  .header__drawer {
    width: 100%;
    background: rgba(255, 255, 255, 0.9);
    position: relative;
    z-index: 999;
    padding-top: 1rem;
  }
  .header__tel--drawer {
    width: 95%;
    max-width: 30rem;
    margin: 0 auto;
  }
  .header__tel--drawer a {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    width: 100%;
    height: 5rem;
    border: solid 2px #DC0012;
    border-radius: 0.56rem;
    background: #FFF;
  }
  .header__tel--drawer a img {
    width: 160px;
  }
  .header__tel--drawer a span {
    color: #DC0012;
    line-height: 1;
    font-size: 0.875rem;
  }
  .header__btnbox--drawer {
    width: 95%;
    max-width: 30rem;
    margin: 1rem auto;
  }
  .header__btnbox--drawer .header__btn:nth-child(n+2) {
    margin-top: 0.5rem;
  }
  .header__btnbox--drawer .header__btn a {
    gap: 0.5rem;
    height: 3.6rem;
  }
  .header__btnbox--drawer .header__btn a img {
    width: 1.25rem;
  }
  .header__navlist--drawer {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start;
    flex-direction: row;
    font-size: 0.875rem;
    border-bottom: solid 1px #B9B9B9;
  }
  .header__navitem--drawer {
    width: 50%;
    border-top: dotted 1px #B9B9B9;
  }
  .header__navitem--drawer:nth-child(even) {
    border-left: dotted 1px #B9B9B9;
  }
  .header__navitem--drawer a {
    padding: 0.5em;
  }
  /*************** footer ****************/
  .footer__contactblock {
    margin-top: 3.3rem;
  }
  .footer__contactlinklist a {
    gap: 0.5rem;
    height: 8rem;
  }
  .footer__contactlinklist a::after {
    right: 3%;
  }
  .footer__contactlinklist a:hover::after {
    right: 3%;
  }
  .footer__contactlinklist a .circle {
    width: 2.5rem;
    height: 2.5rem;
  }
  .footer__contactlinklist a .label {
    font-size: 1.125rem;
  }
  .footer__contactlinkbtn--01 img {
    width: 0.85rem;
  }
  .footer__contactlinkbtn--02 img {
    width: 1.2rem;
  }
  .footer__contactwrap a .label::after {
    right: 5%;
  }
  .footer__contactwrap a .label:hover::after {
    right: 5%;
  }
  .footer__mainblock {
    margin-top: 5rem;
  }
  .footer__mainblock::before {
    bottom: calc(100% + 1.75rem);
  }
  .footer__mainblock .inner {
    margin-bottom: 3rem;
  }
  .footer__logo {
    margin-right: auto;
    margin-left: auto;
  }
  .footer__info {
    text-align: center;
    margin-bottom: 2.25rem;
  }
  .footer__snslist {
    justify-content: center;
    margin-bottom: 2.25rem;
  }
  .footer__linkbtn--recruit a {
    margin-right: auto;
    margin-left: auto;
  }
  .footer__privacymark {
    margin-right: auto;
    margin-left: auto;
  }
}
/*/////////////////////////////////////////////////////////// 

 Media Query - Medium Extra Small（〜576px） 

///////////////////////////////////////////////////////////*/
@media (max-width: 575.8px) {
  /*************** footer ****************/
  .footer__contactlinklist {
    gap: 1.3125rem;
  }
  .footer__contactlinklist a {
    width: 100%;
  }
}