@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;
  letter-spacing: 0.14em;
  line-height: 1;
  overflow: hidden;
  color: #10181a;
  }
  a {
    color: #10181a;
  }
/* -------

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

----*/

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


/*PC用*/
@media print,screen  {
  
  /* Header
  --------------------*/
  #header {
    position: fixed;
    top: 0;
    width: 100%;
    height: 104px;
    background: #fff;
    z-index: 1000;
  }
  #header .wrap {
    margin: 0 0 0 30px;
    height: 104px;
    align-items: stretch;
  }
  #header .logo {
    /*max-width: 15.365vw;*/
    width: 295px;
    margin: auto 0;
  }
  #header .logo_fx {
    align-items: center;
  }
  #header .logo img {
    width: 100%;
  }
  #header .logo80th {
    margin-left: 10px;
    width: 90px;
  }
  #header .pc_gnav {
    margin: auto;
    margin-right: 26px;
  }
  #header .pc_gnav ul {
    /*gap: 0 1.563vw;*/
    gap: 0 30px;
    align-items: center;
  }
  #header .pc_gnav li {
    text-align: center;
    position: relative;

  }
  #header .pc_gnav li::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -26px;
    width: 100%;
    height: 3px;
    background: var(--main-color);
    opacity: 0; 
    transform: scaleX(0);
    transform-origin: left;
    transition: opacity 0.7s ease, transform 0.7s ease;
}
  #header .pc_gnav li:hover::after {
    opacity: 1;
    transform: scaleX(1);
    transition: opacity 0.7s ease, transform 0.7s ease;
  }
  #header .pc_gnav li a {
    font-size: clamp(0.5rem, 0.31rem + 0.37vw, 0.75rem);
    font-weight: 700;
  }
  #header .pc_gnav li a span {
    display: block;
    margin-bottom: 4px;
    color: var(--main-color);
    font-size: clamp(0.875rem, 0.591rem + 0.55vw, 1.25rem);
    font-weight: 600;
  }
  #header .hd_amu_btn {
    width: clamp(7.375rem, -0.125rem + 9.38vw, 9.38rem);
  }
  #header .hd_amu_btn a {
    display: block;
    position: relative;
    padding-top: 64px;
    width: 100%;
    height: 100%;
    text-align: center;
    background: #D5EDF1;
  }
  #header .hd_amu_btn02 {
    margin: auto 1.25vw auto 1.406vw;
    /*width: 226px;*/
    width: clamp(12.5rem, 9.242rem + 4.07vw, 14.125rem);
  }
  #header .hd_amu_btn02 a {
    display: block;
    position: relative;
    padding: 11px 0 13px;
    padding-left: 5px;
    width: 100%;
    text-align: center;
    border-radius: 180px;
    background: #D5EDF1;
  }
  #header .hd_amu_btn a span,
  #header .hd_amu_btn02 a span {
    color: #10181a;
    font-size: clamp(0.625rem, 0.375rem + 0.31vw, 0.75rem);
    font-weight: 900;
    line-height: 1.38;
  }
  #header .hd_amu_btn a::before,
  #header .hd_amu_btn02 a::before,
  #header .hd_amu_btn02 a::after  {
    content:'';
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    transition: 0.7s;
  }
  #header .hd_amu_btn a::before {
    left: 0;
    right: 0;
    top: -20px;
    margin: auto;
    width: 41px;
    height: 38px;
    background: url(../../images/src/common/hd_ico01_blue.svg) no-repeat left top / 100%;
  }
  #header .hd_amu_btn02 a::before {
    left: 11px;
    width: 26px;
    height: 24px;
    background: url(../../images/src/common/hd_ico01_blue.svg) no-repeat left top / 100%;
  }
  #header .hd_amu_btn02 a::after {
    right: 10.3px;
    width: 24px;
    height: 24px;
    background: url(../../images/src/common/arrow01_blue.svg) no-repeat left top / 100%;
  }
  #header .hd_amu_btn a:hover,
  #header .hd_amu_btn02 a:hover {
    background: var(--main-color);
  }
  #header .hd_amu_btn a:hover span,
  #header .hd_amu_btn02 a:hover span {
    color: #FFFFFF;
  }
  #header .hd_amu_btn a:hover::before,
  #header .hd_amu_btn02 a:hover::before {
    background: url(../../images/src/common/hd_ico01_white.svg) no-repeat left top / 100%;
  }
  #header .hd_amu_btn a:hover::after,
  #header .hd_amu_btn02 a:hover::after {
    background: url(../../images/src/common/arrow01_white.svg) no-repeat left top / 100%;
  }
  #header .hd_contact_btn {
    width: clamp(7.375rem, -0.125rem + 9.38vw, 9.38rem);
    background: #00A546;
    transition: 0.7s;
  }
  #header .hd_contact_btn:hover {
    background: var(--main-color);
  }
  #header .hd_contact_btn a {
    display: block;
    padding-top: 64px;
    width: 100%;
    height: 100%;
    text-align: center;
  }
  #header .hd_contact_btn a span {
    position: relative;
    color: #FFFFFF;
    font-size: 14px;
    font-weight: 900;
    line-height: 1.38;
  }
  #header .hd_contact_btn a span::before {
    content:'';
    position: absolute;
    top: -36px;
    left: 0;
    right: 0;
    margin: auto;
    width: 37px;
    height: 32px;
    background: url(../../images/src/common/mail01_white.svg) no-repeat left top / 100%;
  }
  #header .globalMenuSp {
    display: none;
  }
  #header .newpost_badge {
    position: absolute;
    width: 0.75em;
    height: 0.75em;
    background: red;
    right: -1em;
    top: -1em;
    z-index: 100;
    border-radius: 50%;
  }

/* Footer
--------------------*/
  #footer {
    padding: 79px 0 69px;
    background: #F1F1F1;
  }
  #footer .inner_wrap {
    position: relative;
  }
  #footer .inner_wrap .pagetop {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 81px;
  }
  #footer .inner_wrap #caltalogtop {
    position: fixed;
    right: 4.479vw;
    bottom: 1.563vw;
    opacity: 0;
    visibility: hidden;
    transition: .3s;
  }
  #footer .inner_wrap #caltalogtop.active {
    opacity: 1;
    visibility: visible;
  }
  
  #footer .inner_wrap .ft_address .logo {
    width: 306px;
  }
  #footer .inner_wrap .ft_address .txt {
    margin: 20px 0;
    font-size: 16px;
    font-weight: 400;
    line-height: 2;
  }
  #footer .inner_wrap .ft_address ul {
    justify-content: left;
    gap: 0 26px;
  }
  #footer .inner_wrap .ft_address #copyright {
    margin-top: 90px;
    color: #535353;
    font-size: 12px;
    font-weight: 400;
    line-height: 3.70;
  }
  #footer .inner_wrap .ft_nav {
    gap: 0 80px;
    justify-content: right;
  }
  #footer .inner_wrap .ft_nav li a {
    font-size: 16px;
    font-weight: 700;
    line-height: 48px; /* 300% */
    letter-spacing: 2.24px;
    position: relative;
  }
  #footer .inner_wrap .ft_nav li a:hover {
    color: var(--main-color);
  }
  #footer .inner_wrap .ft_nav li a::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -10px;
    width: 100%;
    height: 1px;
    background: var(--main-color);
    opacity: 0; 
    transform: scaleX(0);
    transform-origin: left;
    transition: opacity 0.7s ease, transform 0.7s ease;
  }
  #footer .inner_wrap .ft_nav li a:hover::after {
    opacity: 1;
    transform: scaleX(1);
    transition: opacity 0.7s ease, transform 0.7s ease;
  }
  #footer .inner_wrap .ft_address ul li a i {
    /*font-size: 24px;*/
    font-size: 48px;
  }
  #footer .inner_wrap .ft_address ul li a:hover {
    color: #0AA547;
  }
}

@media screen and (max-width:1500px) {
  #header .hd_amu_btn a::before {
    width: 31px;
    height: 28px;
  }
  #header .hd_contact_btn a span::before {
    width: 27px;
    height: 22px;
  }
  #header .hd_amu_btn a span{
    letter-spacing: 0.05em;
  }
  
  #header .hd_amu_btn,
  #header .hd_contact_btn {
    width: 110px;
  }
  #header .hd_contact_btn a span {
    font-size: clamp(0.625rem, 0.227rem + 0.77vw, 0.875rem);
    letter-spacing: 0.05em;
    
  }
}
@media screen and (max-width:1400px) {
  #header .hd_contact_btn a span {
    font-size: clamp(0.625rem, 0.227rem + 0.77vw, 0.875rem);
  }
  #header .pc_gnav ul {
    gap: 0 30px;
  }
  #header .pc_gnav li a {
    letter-spacing: 0.04em;
  }
}
@media screen and (max-width:1590px) {/*  80thがおわったら1350px */
  #header .pc_gnav,
  #header .hd_amu_btn {
    display: none;
  }
  #header .hd_contact_btn {
    margin-left: auto;
  }
  #header .hamburger {
    width: 104px;
    height: 104px;
    box-sizing: border-box;
    position: relative;
    background: var(--main-color);
    z-index: 10;
    cursor: pointer;
  }
  #header .hamburger span {
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    width: 39px;
    height: 3px;
    background: #FFFFFF;
    transition: 1s;
  }
  #header .hamburger span:nth-of-type(1) {
    top: 35px;
  }
  #header .hamburger span:nth-of-type(2) {
    top: 50px;
  }
  #header .hamburger span:nth-of-type(3) {
    top: 63px;
  }
  
  #header .hamburger.active {
    background: #FFFFFF;
  }
  #header .hamburger.active span {
    background: var(--main-color);
    z-index: 10;
  }
  #header .hamburger.active span:nth-child(1) {
    top: 50px;
    left: 0;
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    transform: rotate(-45deg);
  }
  
  #header .hamburger.active span:nth-child(2) {
    opacity: 0;
  }
  #header .hamburger.active span:nth-child(3) {
    top: 50px;
    left: 0;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  #header .globalMenuSp {
    position: absolute;
    display: block;
    top: 0;
    right: -38.75%;
    padding-top: 104px;
    width: 38.75%;
    height: 100vh;
    background-color: #F1F1F1;
    overflow-y: scroll;
    transition: .7s;
  }
  #header .globalMenuSp.active {
    
    transform: translateX(-100%);
  }
  #header .globalMenuSp .g_menu {
    margin: 50px clamp(0.625rem, -4.347rem + 9.6vw, 3.75rem);
  }
  #header .globalMenuSp .g_menu li {
    position: relative;
    border-top: 1px solid #A1A1A1;
  }
  #header .globalMenuSp .g_menu li:last-of-type {
    border-bottom: 1px solid #A1A1A1;
  }
  #header .globalMenuSp .g_menu li::before {
    content:'';
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    margin: auto;
    width: 35px;
    height: 35px;
    background: url(../../images/src/works/arrow_right.svg) no-repeat left top / 100%;
    transition: .7s;
  }
  #header .globalMenuSp .g_menu li:hover::before {
    background: url(../../images/src/works/arrow_right_white.svg) no-repeat left top / 100%;
  }
  #header .globalMenuSp .g_menu li a {
    display: block;
    padding: 33px 0;
    font-size: 12px;
    font-style: normal;
    font-weight: 700;
    line-height: 19.413px; /* 161.776% */
    letter-spacing: 1.68px;
  }
  #header .globalMenuSp .g_menu li a span {
    padding-right: 20px;
    color: var(--main-color);
    font-size: 24px;
    font-style: normal;
    font-weight: 600;
    line-height: 19.413px; /* 80.888% */
    letter-spacing: 3.36px;
    vertical-align: top;
  }
  #header .globalMenuSp .hd_amu_btn02 {
    margin: 52px auto;
    width: 100%;
  }
  #header .hd_amu_btn02 a {
    padding: 22px 0;
    background-color: var(--main-color);
    box-shadow: 4px 4px 4px rgba(0,0,0,.25);
  }
  #header .hd_amu_btn02 a span {
    color: #FFFFFF;
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    line-height: 150%; /* 24px */
    letter-spacing: 2.24px;
  }
  #header .hd_amu_btn02 a::before {
    left: 23px;
    width: 34px;
    height: 31px;
    background: url(../../images/src/common/hd_ico01_white.svg) no-repeat left top / 100%;
  }
  #header .hd_amu_btn02 a::after {
    width: 40px;
    height: 40px;
    background: url(../../images/src/common/arrow01_white.svg) no-repeat left top / 100%;
  }
  #header .hd_amu_btn02 a:hover {
    background-color: #FFFFFF;
  }
  #header .hd_amu_btn02 a:hover span {
    color: var(--main-color);
  }
  #header .hd_amu_btn02 a:hover::before {
    background: url(../../images/src/common/hd_ico01_blue.svg) no-repeat left top / 100%;
  }
  #header .hd_amu_btn02 a:hover::after {
    background: url(../../images/src/common/arrow01_blue.svg) no-repeat left top / 100%;
  }
  #header .hd_contact_btn {
    width: 118px;
  }
  #header .hd_contact_btn a span {
    font-size: 14px;
  }
  /*#header .hd_amu_btn {
    margin: auto 1vw;
  }
  #header .hd_contact_btn a span {
    font-size: clamp(0.625rem, 0.227rem + 0.77vw, 0.875rem);
  }
  #header .hd_amu_btn {
    margin: auto 1.25vw;
    width: 44px;
    height: 44px;
  }
  #header .hd_amu_btn a {
    padding: 0;
    height: 100%;
  }
  #header .hd_amu_btn a span {
    display: none;
  }
  #header .hd_amu_btn a::before {
    left: 0;
    right: 0;
  }
  #header .hd_amu_btn a::after {
    display: none;
  }*/
}
@media screen and (max-width:1140px) {
  #header .globalMenuSp .g_menu li a span {
    display: block;
    padding-bottom: 10px;
  }
}


/*SP用*/
@media screen and (max-width:828px) {
  
  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
  --------------------*/
  #header {
    height: 12.077vw;
  }
  #header .wrap {
    margin: 0 0 0 3.623vw;
    height: 12.077vw;
    align-items: stretch;
  }
  #header .logo {
    max-width: 47.222vw;
  }
  #header .logo80th {
    margin-left: 2vw;
    width: 10vw;
  }
  #header .pc_gnav,
  #header .hd_amu_btn,
  #header .hd_contact_btn{
    display: none;
  }
  #header .hd_contact_btn_sp {
    margin-left: auto;
    width: 12.077vw;
  }
  #header .hamburger {
    width: 12.077vw;
    height: 12.077vw;
    box-sizing: border-box;
    position: relative;
    background: var(--main-color);
  }
  #header .hamburger span {
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    width: 4.71vw;
    height: 0.362vw;
    background: #FFFFFF;
  }
  #header .hamburger span:nth-of-type(1) {
    top: 4.469vw;
  }
  #header .hamburger span:nth-of-type(2) {
    top: 6.159vw;
  }
  #header .hamburger span:nth-of-type(3) {
    top: 7.729vw;
  }
  #header .hamburger.active span:nth-child(1) {
    top: 6.039vw;
    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: 6.039vw;
    left: 0;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  #header .newpost_badge {
    position: absolute;
    width: 3vw;
    height: 3vw;
    background: red;
    right: .5vw;
    top: .5vw;
    z-index: 100;
    border-radius: 50%;
  }
  #header .g_menu .newpost_badge {
    right: auto;
    left: 5em;
    top: 1.4em;
  }

  #header .globalMenuSp {
    position: relative;
    padding-top: 12.077vw;
    right: -100%;
    width: 70%;
    height: 86.5vh;
    overflow-y: scroll;
  }
  #header .globalMenuSp.active {
  }
  #header .globalMenuSp .g_menu {
    margin: 0 4.831vw 9.662vw;
  }
  #header .globalMenuSp .g_menu li {
    position: relative;
    padding-left: 0;
  }
  #header .globalMenuSp .g_menu li::before {
    content:'';
    position: absolute;
    top: 0;
    bottom: 0;
    left: auto;
    margin: auto;
    width: 7.609vw;
    height: 7.609vw;
  }
  #header .globalMenuSp .g_menu li a {
    padding: 4.831vw 0;
    font-size: 3.382vw;
    font-weight: 700;
    line-height: 1;
  }
  #header .globalMenuSp .g_menu li a span {
    padding: 0 0 1.2vw;
    font-size: 4.348vw;
    line-height: 1;
  }
  #header .globalMenuSp .sns_li {
    margin-bottom: 8.454vw;
    gap: 0 9.179vw;
    justify-content: center;
  }
  #header .globalMenuSp .sns_li a {
    font-size: 12.077vw;
  }
  #header .globalMenuSp .hd_amu_btn02 {
    margin: 8.454vw auto 0;
  }
  #header .hd_amu_btn02 a {
    padding: 3.986vw 0;
    background: #D5EDF1;
  }
  #header .hd_amu_btn02 a span {
    color: var(--black-color);
    font-size: 3.382vw;
    line-height: 5.072vw;
    letter-spacing: 0.473vw;
  }
  #header .hd_amu_btn02 a::before {
    left: 4.106vw;
    width: 7.609vw;
    height: 7.005vw;
    background: url(../../images/src/common/hd_ico01_blue.svg) no-repeat left top / 100%;
  }
  #header .hd_amu_btn02 a::after {
    width: 7.609vw; 
    height: 7.609vw;
    background: url(../../images/src/common/arrow01_blue.svg) no-repeat left top / 100%;
  }




/* Footer
--------------------*/
#footer {
  padding: 12.077vw 4.831vw 20.531vw;
}
#footer .inner_wrap {
    position: relative;
  }
  #footer .inner_wrap .pagetop {
    position: absolute;
    right: 0;
    bottom: 9.662vw;
    width: 18.116vw;
  }
  #footer .inner_wrap .ft_nav {
    width: 100%;
    gap: 0;
    order: 1;
    justify-content: space-between;
  }
  #footer .inner_wrap .ft_nav li {
    position: relative;
    padding-left: 3.623vw;
  }
  #footer .inner_wrap .ft_nav li::before {
    content:'';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    width: 1.812vw;
    height: 2.899vw;
    background: url(../../images/src/common/sp/arrow01.svg) no-repeat left top / 100%;
  }
  #footer .inner_wrap .ft_nav li a {
    font-size: 3.382vw;
    line-height: 9.903vw; /* 300% */
    letter-spacing: 0.473vw;
  }
  
  #footer .inner_wrap .ft_address {
    order: 2;
    margin-top: 12.077vw;
  }
  #footer .inner_wrap .ft_address .logo {
    width: 58.816vw;
  }
  #footer .inner_wrap .ft_address .txt {
    margin: 2.657vw 0 7.246vw;
    font-size: 3.382vw;
  }
  #footer .inner_wrap .ft_address ul {
    gap: 0 9.179vw;
  }
  
  #footer .inner_wrap .ft_address ul li a i {
    /*font-size: 6.039vw;*/
    font-size: 10vw;
  }
  #footer .inner_wrap .ft_nav li a::after {
    display: none;
  }
  #footer .inner_wrap .ft_address #copyright {
    margin-top: 10.628vw;
    font-size: 2.657vw;
    line-height: 2.02;
    text-align: center;
  }
}
@media screen and (max-width:828px) and (orientation: landscape) {
  .side_follow {
    display: none;
  }
}
/* 印刷用 */
@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; }
}