@charset "utf-8";

@font-face {
  font-family: "Yu Gothic M";
  src: local("Yu Gothic Medium");
}

body {
  background: #fff;
  width: 100%;
  font-weight: 400;
  -webkit-text-size-adjust: 100%;
  /* font-feature-settings: "palt"; */
  /* font-family: "游明朝", "Yu Mincho","Hiragino Mincho Pro", serif; */
  /* font-family: "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", sans-serif; */
  /*font-family: "ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",sans-serif;*/
  font-family: "Noto Sans JP", sans-serif;
  }

/* -------

【重要】
上記bodyに対するfont-familyの記述は必要なものだけ使用し、
使わない分は忘れずに削除すること。

----*/

img {
  max-width: 100%;
  width: auto;
  height: auto;
  vertical-align: bottom;
}


/*PC用*/
@media print,screen {
  .pc { display: block !important }
  .sp { display: none !important }
  .h_menu, #sp_global_nav { display: none; }

  #header {
    position: relative;
    top: 0;
    padding-right: 40px;
    width: 100%;
    height: 108px;
    z-index: 1000;
    background: #FFFFFF;
  }

  .ft_tel,
  .globalMenuSp {
    display: none;
  }
  #header.show {
    position: fixed; /* スクロール後に固定される */
    transform: translateY(-100%);
  }
  #header.fixed {
    position: fixed; /* スクロール後に固定される */
    top: 0;
    transform: translateY(0);
    transition: .7s;
  }

  #header .flex {
    height: 108px;
    align-items: center;
    justify-content: flex-end;
  }
  #header h1 {
    position: absolute;
    top: 24px;
    left: 24px;
    width: 300px;
  }
  #header.show h1,
  #header.fixed h1 {
    top: 15px;
    left: 12px;
    width: 154px;
  }
  #header #gnav {
    margin-right: 22px;
  }
  #header #gnav ul {
    gap: 0 26px;
    text-align: center;
  }
  #header #gnav ul li a {
    font-size: 18px;
    font-style: normal;
    font-weight: 500;
    line-height: 40px;
    text-align: center;
  }
  #header #gnav ul li span {
    display: block;
    color: var(--main-color);
    font-size: 12px;
    font-style: normal;
    font-weight: 700;
    line-height: 19.413px; /* 161.776% */
    letter-spacing: 1.68px;
  }
  #header .sns .chita {
    width: 131px;
    display: inline-block;
  }
  #header .sns .insta {
    width: 34px;
    display: inline-block;
  }
  #header .sns {
    align-items: center;
  }
  #header .hd_contact {
    margin-left: 14px;
  }
  #header .hd_contact .tl {
    margin-bottom: 9px;
    padding: 4px 0;
    width: 200px;
    border-radius: 5px;
    color: #FFFFFF;
    font-size: 15px;
    font-weight: 900;
    line-height: 19.413px; /* 129.421% */
    letter-spacing: 2.1px;
    text-align: center;
    background: var(--main-color);
  }
  #header .hd_contact .tel {
    position: relative;
    text-align: right;
  }
  #header .hd_contact .tel a {
    font-size: 26px;
    font-weight: 500;
    line-height: 29.049px; /* 111.726% */
    letter-spacing: 2.08px;
  }
  #header .hd_contact .tel::before {
    content:'';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    width: 19px;
    height: 20px;
    background: url(../../images/src/hd_tel.svg) no-repeat left top / 100%;
  }

  #footer {
    margin: 0 auto;
    padding: 50px 0 25px;
    width: 1000px;
    box-sizing: border-box;
    max-width: 95%;
    background: #FFFFFF;
  }
  #footer .ft_upper {
    align-items: center;
    margin-bottom: 19px;
    padding-bottom: 52px;
    border-bottom: 1px solid #D0D0D0;
  }
  #footer .ft_upper .ft_address {
    gap: 0 32px;
    align-items: center;
  }
  #footer .ft_upper .ft_logo {
    width: 204px;
  }
  #footer .ft_upper .ft_address .ft_txt {
    font-size: 14px;
    font-weight: 400;
    line-height: 26px;
    letter-spacing: 1.96px;
  }
  #footer .ft_upper .ft_address .ft_txt .ttl {
    font-size: 18px;
    font-weight: 700;
    line-height: 38px; /* 211.111% */
    letter-spacing: 2.52px;
  }
  #footer .ft_upper .ft_logo_bnr img {
    width: 193px;
  }
  #footer #copyright {
    color: #777777;
    font-size: 12px;
    font-weight: 400;
    line-height: 32px; /* 266.667% */
    letter-spacing: 1.68px;
    text-align: center;
  }

}


/*1280用*/
@media screen and (max-width:1390px) {
  #header h1 {
    width: 120px;
  }
}

@media screen and (max-width:1250px) {
  #header {
    padding-right: 20px;
  }
  #header #gnav ul {
    gap: 0 10px;
  }
  #header #gnav ul li a {
    font-size: 14px;
  }
  #header #gnav ul li a span {
    font-size: 10px;
  }
  #header .sns .insta {
    width: 22px;
  }
  #header .sns .chita {
    width: 110px;
  }
  #header .hd_contact .tl {
    width: 150px;
  }
  #header .hd_contact .tel::before {
    width: 16px;
    height: 17px;
  }
  #header .hd_contact .tel a {
    font-size: 18px;
  }
  
}


/*SP用*/
@media screen and (max-width:828px) {
  .pc { display: none !important }
  .sp { display: block !important }
  img { max-width: 100%; height: auto; width: auto; }
  body { min-width: auto !important; overflow: inherit !important; }
  div, p, dd, dl, dt, th, td, span, li { box-sizing: border-box; }
  #header {
    padding-right: 0;
    height: 14.493vw;
  }
  #header .flex {
    height: 14.493vw;;
    align-items: center;
    justify-content: flex-end;
    position: relative;
    z-index: 100;
  }
  #header h1 {
    top: 4.831vw;
    left: 3.623vw;
    width: 48.309vw;
  }
  #header.show h1,
  #header.fixed h1 {
    top: 1.329vw;
    left: 2.415vw;
    width: 23.671vw;
  }
  #header #gnav,
  #header .hd_contact,
  #header .sns {
    display: none;
  }
  #header .hamburger {
    position: relative;
    width: 14.493vw;
    height: 14.493vw;
    background: var(--main-color);
    z-index: 9999;
  }
  #header .hamburger span {
      position: absolute;
      left: 0;
      right: 0;
      margin: auto;
      width: 5.797vw;
      height: 0.362vw;
      background: #FFFFFF;
      transition: .7s;
  }
  #header .hamburger span:nth-of-type(1) {
    top: 5.507vw;
  }
  #header .hamburger span:nth-of-type(2) {
    top: 7.246vw;
  }
  #header .hamburger span:nth-of-type(3) {
    top: 8.986vw;
  }
  #header .hamburger.active span:nth-child(1) {
    top: 7.005vw;
    left: 0;
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    transform: rotate(-45deg);
  }
  #header .hamburger.active span:nth-child(2),
  #header .hamburger.active span:nth-child(3) {
    top: 7.005vw;
    left: 0;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  #header .globalMenuSp {
    background: #FFFFFF;
    height: 100vh;
    overflow-y: scroll;
  }
  #header .globalMenuSp.active {
    display: block;
    position: relative;
    top: -14.493vw;
    z-index: 10;
    padding: 43.237vw 4.831vw 12.923vw;
  }
  #header .globalMenuSp .hd_logo {
    position: absolute;
    top: 4.831vw;
    left: 3.623vw;
    width: 48.309vw;
  }
  #header .globalMenuSp ul li a {
    display: block;
    padding: 7.246vw 0;
    border-top: 0.121vw solid #D0D0D0;
    font-size: 4.589vw;
    font-weight: 500;
    line-height: 7.005vw;
  }
  #header .globalMenuSp ul li:last-of-type a {
    border-bottom: 0.121vw solid #D0D0D0;
  }
  #header .globalMenuSp ul li a span {
    margin-left: 4.831vw;
    color: var(--main-color);
    font-size: 2.899vw;
    font-weight: 700;
    line-height: 4.517vw; 
    letter-spacing: 0.406vw;
  }
  
  #header .globalMenuSp .sns_sp {
    height: auto;
    margin:8.696vw 0 7.246vw 16.077vw;
    gap: 0 7.971vw;
    justify-content: flex-start;
  }
  #header .globalMenuSp .sns_sp p:first-of-type {
    width: 10.145vw;
  }
  #header .globalMenuSp .sns_sp p {
    width: 41.546vw;
  }
  
  .ft_tel {
    display: block;
    position: fixed;
    bottom: env(safe-area-inset-bottom, 0);
    left: 0;
    z-index: 100;
  }
  
  #footer {
    margin: 0 auto;
    padding: 12.077vw 0 17.633vw;
    width: auto;
    max-width: initial;
    text-align: center;
  }
  #footer .ft_upper {
    display: block;
    margin: 0 5.314vw 4.831vw;
    padding-bottom: 10.386vw;
    border-width: 0.121vw;
  }
  #footer .ft_upper .ft_address {
    margin-bottom: 8.454vw;
    gap: 6.159vw 0;
    flex-direction: column;
    justify-content: center;
  }
  #footer .ft_upper .ft_logo {
    width: 62.319vw;
  }
  #footer .ft_upper .ft_address .ft_txt {
    font-size: 3.14vw;
    line-height: 5.797vw;
    letter-spacing: 0.44vw;
  }
  #footer .ft_upper .ft_address .ft_txt .ttl {
    font-size: 3.623vw;
    line-height: 6.763vw;
    letter-spacing: 0.507vw;
  }
  #footer .ft_upper .ft_logo_bnr {
    position: relative;
  }
  #footer .ft_upper .ft_logo_bnr img {
    width: 38.647vw;
  }
  #footer .ft_upper .ft_logo_bnr #pagetop {
    position: absolute;
    top: 3vw;
    right: 5.314vw;
    width: 10.386vw;
  }
  #footer #copyright {
    font-size: 2.657vw;
    line-height: 4.589vw;
    letter-spacing: 0.372vw;
  }
  
}
  


/* 印刷用 */
@media print {
  body { zoom: 0.6; -webkit-print-color-adjust: exact; }
}

/* 印刷用 IE10以上 */
@media print and (-ms-high-contrast:none) {
@page { size: A4; margin: 12.7mm 9.7mm; }
body { zoom: 1.8; width: 1200px; transform: scale(0.5); transform-origin: 0 0; }
}