@charset "utf-8";

@font-face {
  font-family: "Yu Gothic M";
  src: local("Yu Gothic Medium");
}
html {
  font-size: 10px;
  /*font-size: 0.5208333vw;*/
}
body {
  background: #fff;
  width: 100%;
  font-size: 1.6rem;
  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: "Zen Maru Gothic", sans-serif;
  color: #4F4845;
  letter-spacing: 0.1em;
  overflow: hidden;
  }

/* -------

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

----*/
a {
  color: #4F4845;
}
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: absolute;
    top: 0;
    width: 100%;
    z-index: 999;
  }
  #header .hd_inner {
    height: 11.9rem;
  }
  #header .logo {
    margin: 3.6rem 0 0 3rem;
  }
  #header .hd_inner .gnav {
    margin: 0 1.3rem 0 auto;
    align-items: center;
    height: 10.9rem;
    gap: 0 2.2rem;
  }
  #header .hd_inner .gnav li {
    text-align: center;
  }
  #header .hd_inner .gnav li a {
    font-size: 1.7rem;
    font-weight: 900;
    line-height: 1.5;
  }
  #header .hd_inner .hd_btn01 {
    margin: 2.7rem 1.8rem 0 0;
    width: 20.9rem;
  }
  #header .hd_inner .hd_btn01 a {
    display: block;
    position: relative;
    width: 100%;
    padding: 1.5rem 1rem 1.5rem 0;
    color: #fff;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    border-radius: 180px;
    background: var(--green-color);
    box-shadow: 5px 5px 0 rgba(87, 194, 21, 0.3);
  }
  #header .hd_inner .hd_btn01 a::before,
  #header .hd_inner .hd_btn01 a::after {
    content:'';
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
  }
  #header .hd_inner .hd_btn01 a::before {
    left: 1.34rem;
    width: 1.8rem;
    height: 1.8rem;
    background: url(../../images/src/common/ico_home.svg) no-repeat left center / 100%;
  }
  #header .hd_inner .hd_btn01 a::after {
    right: 1.02rem;
    width: 3rem;
    height: 3rem;
    background: url(../../images/src/common/arrow_green_right.svg) no-repeat left center / 100%;
  }
  #header .hd_inner .hd_btn02 {
    width: 13.5rem;
    box-shadow: 8px 8px 0 #F3C8CB;
    border-radius: 0 0 0 13px;
  }
  #header .hd_inner .hd_btn02 a {
    display: block;
    padding: 2.5rem 0 3rem;
    width: 100%;
    color: #fff;
    text-align: center;
    border-radius: 0 0 0 13px;
    background: var(--pink-color);
  }
  
  #header .hd_inner .hd_btn02 a i {
    position: relative;
    display: block;
    margin-bottom: 2.9rem;
  }
  #header .hd_inner .hd_btn02 i::before {
    content: '';
    position: absolute;
    bottom: -1.7rem;
    left: 0;
    right: 0;
    margin: auto;
    width: 10.7rem;
    height: 1px;
    background: #fff;
  }
  #header .hd_inner .hd_btn02 a .jp {
    font-size: 1.6rem;
    font-weight: 900;
  }
  #header .hd_inner .hd_btn02 a .en {
    display: block;
    margin-top: 0.5rem;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1;
  }
  .globalMenuSp {
    display: none;
  }


  .link_sec {
    height: 324px;
  }
  .link_sec a {
    display: flex;
    flex: 1;
    position: relative;
    overflow: hidden;
  }
  
  .link_sec a::after {
    content: '';
    position: absolute;
    right: 2rem;
    bottom: 2rem;
    width: 4.4rem;
    height: 4.5rem;
    background: url(../../images/src/common/arrow_white_right.svg) no-repeat right bottom / 100%;
  }
  .link_sec a .img {
    position: absolute;
    overflow: hidden;
    width: 100%;
    height: 100%;
  }
  .link_sec a .img img {
    width: 100%;
    height: 100%;
    transition: .7s;
  }
  
  .link_sec a .txtarea {
    display: flex;
    width: 100%;
    height: 100%;
    position: relative;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 1;
    color: #fff;
  }

  .link_sec a .txtarea .ttl {
    margin: 1.6rem 0 2.8rem;
    font-size: 3.4rem;
    font-weight: 900;
    line-height: 1;
  }
  .link_sec a .txtarea .txt {
    font-size: 1.8rem;
    font-weight: 700;
  }

  .cta_sec {
    padding-top: 8rem;
    background: url(../../images/src/common/cta_bg.webp);
    overflow: hidden;
  }
  .cta_sec .inner_1120 {
    padding: 0 0 8.9rem;
    position: relative;
  }
  .cta_sec .hito01,
  .cta_sec .hito02 {
    position: absolute;
    bottom: 0;
  }
  .cta_sec .hito01 {
    left: -5.7rem;
  }
  .cta_sec .hito02 {
    right: -7.66rem;
  }
  .cta_sec .ttl_en {
    color: var(--pink-color);
  }
  .cta_sec .ttl_jp {
    margin-bottom: 3.5rem;
  }
  .cta_sec .parts {
    position: relative;
    width: calc(48% - 9px);
    border-radius: 10px;
    background: #fff;
  }
  .cta_sec .parts .dots {
    position: relative;
    padding: 3.4rem 0 5rem;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .cta_sec .parts:before,
  .cta_sec .parts:after,
  .cta_sec .parts .dots:before,
  .cta_sec .parts .dots:after {
    content: '';
    position: absolute;
    width: 1.2rem;
    height: 1.2rem;
    border-radius: 50%;
    background: rgba(244, 131, 140, 0.32);
  }
  .cta_sec .parts:before {
    left: 1.2rem;
    top: 1.2rem;
  }
  .cta_sec .parts:after {
    right: 1.2rem;
    top: 1.2rem;
  }
  .cta_sec .parts .dots:before {
    left: 1.2rem;
    bottom: 1.2rem;
  }
  .cta_sec .parts .dots:after {
    right: 1.2rem;
    bottom: 1.2rem;
  }
  .cta_sec .parts .ttl {
    position: relative;
    margin-bottom: 4.4rem;
    font-size: 2.4rem;
    font-weight: 900;
    line-height: 2.13;
  }
  .cta_sec .parts .ttl::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 0;
    right: 0;
    margin: auto;
    width: 7rem;
    height: 3px;
    background-color: var(--pink-color);
  }
  .cta_sec .parts .box {
    display: flex;
    flex-direction: column;
  }
  .cta_sec .parts .tel a {
    position: relative;
    padding-left: 4rem;
    color: var(--pink-color);
    font-size: 4.664rem;
    font-weight: 600;
  }
  .cta_sec .parts .tel a::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    width: 3.074rem;
    height: 3.18rem;
    background: url(../../images/src/common/ico_tel.svg) no-repeat left center / 100%;
  }
  .cta_sec .parts .fax span {
    position: relative;
    padding-left: 3.5rem;
    font-size: 3.05rem;
    font-weight: 600;
  }
  .cta_sec .parts .fax span::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    width: 2.8786rem;
    height: 2.4468rem;
    background: url(../../images/src/common/ico_fax.svg) no-repeat left center / 100%;
  }
  
  .cta_sec .parts .time {
    font-size: 1.6rem;
    font-weight: 900;
  }
  .cta_sec .btn {
    margin: 0 auto;
    width: 42rem;
  }
  .cta_sec .btn a {
    position: relative;
    display: block;
    padding: 4.1rem 0;
    width: 100%;
    color: #fff;
    font-size: 2rem;
    font-weight: 900;
    text-align: center;
    border-radius: 180px;
    background: var(--pink-color);
    box-shadow: 6px 6px 0 #F3C8CB;
  }
  .cta_sec .btn a::before,
  .cta_sec .btn a::after {
    content:'';
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
  }
  .cta_sec .btn a::before {
    left: 3.7rem;
    width: 2.61rem;
    height: 2.088rem;
    background: url(../../images/src/common/ico_mail.svg) no-repeat left center / 100%;
  }
  .cta_sec .btn a::after {
    right: 2rem;
    width: 4.4rem;
    height: 4.4rem;
    background: url(../../images/src/common/arrow_pink_right.svg) no-repeat left center / 100%;
  }


  #footer {
    padding: 10.3rem 0 2.8rem;
    background: url(../../images/src/common/ft_bg.webp) no-repeat center top / cover;
  }
  #footer.ct_footer {
    position: relative;
    padding: 0;
    background: url(../../images/src/contact/ft_bg.webp) no-repeat center top / cover;
  }
  #footer .ft_wrap {
    margin: 0 auto;
    width: 1204px;
    max-width: 95%;
  }
  #footer.ct_footer .ft_wrap {
    padding: 10.3rem 0;
  }
  #footer.ct_footer .ft_wrap .img01,
  #footer.ct_footer .ft_wrap .img02 {
    position: absolute;
  }
  #footer.ct_footer .ft_wrap .img01 {
    bottom: 45.7rem;
    left: calc((100vw - 1280px) * (272 / 640));
  }
  #footer.ct_footer .ft_wrap .img02 {
    bottom: 45rem;
    right: calc((100vw - 1280px) * (241 / 640));
  }
  #footer .ft_wrap .ft_upper .left_col {
    width: 36.3rem;
  }
  #footer .ft_wrap .ft_upper .left_col .ttl {
    margin-bottom: 3rem;
    color: #fff;
    font-size: 3rem;
    font-weight: 900;
  }
  #footer .ft_wrap .ft_upper .left_col ul li {
    width: 7.4rem;
  }
  
  #footer .ft_wrap .ft_upper .right_col {
    width: 41.3rem;
  }
  #footer .ft_wrap .ft_upper .right_col ul li + li { 
    margin-top: 3.3rem;
  }
  #footer .ft_wrap .ft_upper .right_col li a {
    position: relative;
    color: #fff;
    font-size: 1.8rem;
    font-weight: 900;
  }
  #footer .ft_wrap .ft_upper .right_col li a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1rem;
    width: 100%;
    height: 1px;
    background: #fff;
    opacity: 0;
    transform: scaleX(0);
    transform-origin: left;
    transition: opacity 0.7s ease, transform 0.7s ease;
  }


  #footer .ft_wrap #copyright {
    margin: 7.4rem auto 0;
    padding-top: 2.8rem;
    width: 805px;
    max-width: 100%;
    border-top: 1px solid #fff;
    color: #fff;    
    font-size: 1.2rem;
    font-weight: 700;
    text-align: center;
  }

}

@media screen and (max-width:1560px) {
}
@media screen and (max-width:1440px) {
  html {
    font-size: 0.694vw;
  }
}

@media screen and (max-width:1380px) {
  html {
    font-size: 0.725vw;
  }
}
/*小さめ画面 */
@media screen and (max-width:1280px) {
  html {
    font-size: 0.781vw;
  }
}

/*タブレット */
@media screen and (max-width:1180px) {
  html {
    font-size: 0.847vw;
  }
  #header .logo {
    margin-left: 0.5rem;
    width: 15rem;
  }
  #header .hd_inner .gnav li a {
    font-size: 1.6rem;
  }
}

/*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; }
  
  html {
    font-size: 1.208vw;
  }


  #header {
    top: 0;
    width: 100%;
    z-index: 999;
  }
  #header .hd_inner {
    height: 5.2rem;
    align-items: center;
  }
  #header .logo {
    margin: 3.623vw 0 0 4.332vw;
    width: 36.111vw;
  }
  #header .hd_inner .gnav,
  #header .hd_inner .hd_btn01,
  #header .hd_inner .hd_btn02 {
    display: none;
  }
  #header .hamburger {
    position: fixed;
    top: 0;
    right: 0;
    width: 11.473vw;
    height: 12.077vw;
    border-radius: 0 0 0 1.57vw;
    box-shadow: 5px 5px 0 #F3C8CB;
    background: var(--orange-color);
    z-index: 9999;
  }
  #header .hamburger span {
    position: absolute;
    left: 4.106vw;
    width: 3.865vw;
    height: 0.362vw;
    background-color: #fff;
  }
  #header .hamburger span:nth-of-type(1) {
    top: 4.589vw;
  }
  #header .hamburger span:nth-of-type(2) {
    top: 6.039vw;
  }
  #header .hamburger span:nth-of-type(3) {
    top: 7.005vw;

  }
  #header .hamburger.active span:nth-of-type(1) {
    top: 3vw;
    -webkit-transform: translateY(10px) rotate(-45deg);
    transform: translateY(10px) rotate(-45deg);
  }
  #header .hamburger.active span:nth-of-type(3) {
    top: 3vw;
    -webkit-transform: translateY(10px) rotate(45deg);
    transform: translateY(10px) rotate(45deg)
  }
  #header .hamburger.active span:nth-of-type(2) {
    display: none;
  }
  #header .hamburger.active {
    box-shadow: none;
  }


  .globalMenuSp {
    position: fixed;
    top: 0;
    right: 0;
    padding: 28.744vw 4.831vw 12.56vw;
    width: 66.667vw;
    height: 83svh;
    border-radius: 0 0 0 1.691vw;
    background: var(--orange-color);
    z-index: 1000;
    overflow-y: scroll;
    display: block;
    transform: translateY(-100%);
    transition: transform 0.5s ease, opacity 0.5s ease;
    opacity: 0;
    pointer-events: none;
  }

  .globalMenuSp.active {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }
  .globalMenuSp ul {
    margin-bottom: 7.246vw;
  }
  .globalMenuSp ul li a {
    display: block;
    position: relative;
    border-top: 1px solid #fff;
    padding: 3.986vw 0;
    color: #fff;
    font-size: 3.623vw;
    font-weight: 900;
  }
  .globalMenuSp ul li a::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    width: 6.039vw;
    height: 6.039vw;
    background: url(../../images/src/common/arrow_orange_right.svg) no-repeat right center / 100%;
  }
  .globalMenuSp ul li:last-of-type a {
    border-bottom: 1px solid #fff;
  }
  
  .globalMenuSp p + p {
    margin-top: 3.14vw;
  }




  .link_sec {
    display: block !important;
    height: auto;
  }
  .link_sec a {
    display: block;
    height: 51.932vw;
  }
  
  .link_sec a::after {
    right: 3.623vw;
    bottom: 3.623vw;
    width: 7.729vw;
    height: 7.85vw;
  }
  
  .link_sec .info_link .ico {
    width: 7.034vw;
  }
  .link_sec .faq_link .ico {
    width: 11.3vw;
  }
  .link_sec .rec_link .ico {
    width: 8.575vw;
  }
  .link_sec a .ico svg {
    width: 100%;
    height: auto;
  }
  .link_sec a .txtarea {
    display: flex;
    width: 100%;
    height: 100%;
    position: relative;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 1;
    color: #fff;
  }

  .link_sec a .txtarea .ttl {
    margin: 3.382vw 0 5.556vw;
    font-size: 5.556vw;
  }
  .link_sec a .txtarea .txt {
    font-size: 3.623vw;
    line-height: 1.73;
  }


  .cta_sec {
    padding-top: 13.285vw;
  }
  .cta_sec .inner_1120 {
    padding: 0 4.831vw 14.493vw;
    position: relative;
  }
  .cta_sec .hito01 {
    width: 16.063vw;
    left: -1.754vw;
  }
  .cta_sec .hito02 {
    width: 17.995vw;
    right: -3.543vw;
  }
  .cta_sec .ttl_jp {
    margin-bottom: 7.246vw;
  }
  .cta_sec .parts {
    width: 100%;
    border-radius: 1.519vw;
  }
  
  .cta_sec .parts + .parts {
    margin-top: 4.831vw;
  }
  .cta_sec .parts .dots {
    padding: 5.676vw 0 8.092vw;
  }
  .cta_sec .parts:before,
  .cta_sec .parts:after,
  .cta_sec .parts .dots:before,
  .cta_sec .parts .dots:after {
    width: 1.824vw;
    height: 1.824vw;
  }
  .cta_sec .parts:before {
    left: 1.824vw;
    top: 1.824vw;
  }
  .cta_sec .parts:after {
    right: 1.824vw;
    top: 1.824vw;
  }
  .cta_sec .parts .dots:before {
    left: 1.824vw;
    bottom: 1.824vw;
  }
  .cta_sec .parts .dots:after {
    right: 1.824vw;
    bottom: 1.824vw;
  }
  .cta_sec .parts .ttl {
    margin-bottom: 6.643vw;
    font-size: 4.106vw;
  }
  .cta_sec .parts .ttl::after {
    bottom: -1.208vw;
    width: 10.87vw;
    height: 0.483vw;
  }
  .cta_sec .parts .tel a {
    padding-left: 6.28vw;
    font-size: 7.971vw;
  }
  .cta_sec .parts .tel a::before {
    width: 4.519vw;
    height: 4.675vw;
  }
  .cta_sec .parts .fax span {
    padding-left: 6.522vw;
    font-size: 5.588vw;
  }
  .cta_sec .parts .fax span::before {
    width: 5.274vw;
    height: 4.483vw;
  }
  
  .cta_sec .parts .time {
    font-size: 3.382vw;
  }
  .cta_sec .btn {
    width: 68.599vw;
  }
  .cta_sec .btn a {
    padding: 3.865vw 0;
    font-size: 3.865vw;
    border-radius: 21.739vw;
    box-shadow: 0.725vw 0.725vw 0 #F3C8CB;
  }
  .cta_sec .btn a::before {
    left: 4.551vw;
    width: 3.728vw;
    height: 2.983vw;
  }
  .cta_sec .btn a::after {
    right: 2.943vw;
    width: 7.729vw;
    height: 7.729vw;
  }


  
  #footer {
    padding: 12.56vw 0;
    background: url(../../images/src/common/ft_bg.png) no-repeat center top / cover;
  }
  #footer .ft_wrap {
    margin: 0 auto;
    width: auto;
    max-width: initial;
  }
  #footer .pagetop {
    position: fixed;
    width: 8.937vw;
    right: 3.623vw;
    bottom: -10vw;
    z-index: 1000;
    opacity: 0;
    transition: all 0.6s ease; /
  }
  
#footer .pagetop.active {
    bottom: 5.676vw; /* 表示位置 */
    opacity: 1;
  }

  
  #footer.ct_footer .ft_wrap {
    padding: 10.3rem 0;
  }
  #footer.ct_footer .ft_wrap .img01,
  #footer.ct_footer .ft_wrap .img02 {
    position: absolute;
  }
  #footer.ct_footer .ft_wrap .img01 {
    top: -7vw;
    bottom: auto;
    left: 0;
    width: 38vw;
  }
  #footer.ct_footer .ft_wrap .img02 {
    top: -17vw;
    bottom: auto;
    right: 0;
    width: 50vw;
  }
  #footer .ft_wrap .ttl {
    order: 1;
  }
  #footer .ft_wrap .ft_upper .left_col {
    order: 3;
    margin: 0 9.662vw;
    width: 100%;
  }
  #footer .ft_wrap .ttl {
    margin: 0 auto 10vw;
    color: #fff;
    width: 33.454vw;
    text-align: center;
  }
  #footer .ft_wrap .ft_upper .left_col ul li {
    width: 14.493vw;
  }
  
  #footer .ft_wrap .ft_upper .right_col {
    order: 2;
    margin: 0 auto 7.729vw ;
    width: 57.005vw;
  }
  #footer .ft_wrap .ft_upper .right_col ul {
    width: 100%;
  }
  #footer .ft_wrap .ft_upper .right_col ul li + li { 
    margin-top: 0;
  }
  #footer .ft_wrap .ft_upper .right_col li a {
    position: relative;
    display: block;
    padding: 5.435vw 0;
    border-top: 1px solid #fff;
    font-size: 3.623vw;
  }
  #footer .ft_wrap .ft_upper .right_col ul:last-of-type li:last-of-type a {
    border-bottom: 1px solid #fff;
  }
  #footer .ft_wrap .ft_upper .right_col li a::after {
    display: none;
  }
  #footer .ft_wrap .ft_upper .right_col li a::before {
    content: '';
    position: absolute;
    right: 0.483vw;
    top: 0;
    bottom: 0;
    margin: auto;
    width: 6.039vw;
    height: 6.039vw;
    background: url(../../images/src/common/arrow_green_right.svg) no-repeat right center / 100%;
  }
  #footer .ft_wrap #copyright {
    margin: 0 4.831vw;
    padding-top: 6.159vw;
    width: auto;
    max-width: initial;  
    font-size: 2.899vw;
    border-top: none;
  }

}



/* pcのみのhoverアクションはここ */
@media (hover: hover) and (pointer: fine) {
	a:hover {
	  opacity: 0.7
	}
  .link_sec a:hover,
  .link_sec a:hover img {
    opacity: 1;
  }.link_sec a:hover img {
    transform: scale(1.2);
  }
  
  #footer .ft_wrap .ft_upper .right_col li a:hover {
    opacity: 1;
  }
  #footer .ft_wrap .ft_upper .right_col li a:hover:after {
    opacity: 1;
    transform: scaleX(1);
    transition: opacity 0.7s ease, transform 0.7s ease;
  }
}
  
 /*IE11用に以下のコードも追加*/
  @media (-ms-high-contrast: none), (-ms-high-contrast: active) {
	a:hover {
	  opacity: 0.7
	}
}



/* 印刷用 */
@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; }
}