﻿
/* ---------- font ---------- */

@import url('https://fonts.googleapis.com/css2?family=Jost:wght@500&family=Zen+Kaku+Gothic+New:wght@500;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');

:root{
    --font-jp: 'Zen Kaku Gothic New', "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic,"ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic",  sans-serif;
    --font-en: 'Jost', 'Zen Kaku Gothic New', "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic,"ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic",  sans-serif;
	/*font-family: "游明朝", "YuMincho", "ＭＳ Ｐ明朝", "MS PMincho","ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "Sawarabi Mincho", "serif";*/
}
body, .font_sans-serif, .font_serif, .font_jp, .con_title, #page_title p, .cate_title, .box_title1, .box_title, .font_en, a[href^="tel:"], #pc_nav, #sp_nav, .pager, .date, #contents1 .con_box .con_sub_title, #contents1-h .con_box .con_sub_title, #top_cms .cms_title h2, .more, #top_info .con_title, #page_title h2, .cate_list::before{
    font-family: var(--font-jp);
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 500;
}
.font_en, a[href^="tel:"], #contents1 .con_box .con_sub_title, #contents1-h .con_box .con_sub_title{
    font-family: var(--font-en);
}

/* ---------- color ---------- */
body, .txt_color_nomal {
    color: var(--normal)!important;
}
#wrap, #top_cms {
    background-color: var(--color4);
}
#contents2 .con2_img::before {
    background-image: linear-gradient(to bottom, rgba(6, 32, 73, 0), var(--color4) calc(100% - 50px), rgba(6, 32, 73, 0));
}
/*#contents2 .con2_img::before {
    background: none;
    height: 200px;
    background-color: var(--color4);
}*/
.more a {
    color: var(--normal);
}
.more a::before {
    border-top: solid 1px var(--normal);
    border-right: solid 1px var(--normal);
}
.more a::after {
    border-bottom: solid 1px var(--normal);
    border-left: solid 1px var(--normal);
}
#contents1 .con_box, #contents1-h .con_box, #top_info .con_box,#footer  {
    color: #fff;
}
#top_info .con_box {
    background-color: var(--color2);
}
#sp_nav {
    background-color: var(--color4);
}
.border_color4, .hvr_border_color4:hover {
    border-color: var(--color3);
}
#top_cms .cms_title p, #page_title p {
    color: var(--color7);
}



/* ---------- all ---------- */
#wrap{
    min-width: 1100px;
}
#header h1 img {
   max-width: 97%;
}
#sp_nav a.width_300.tel_bt,.sp_contact_bt a {
        display: none;
}
.font_bold {
    font-weight: bold;
}
html, body {
    font-size: 17px;
}
#header::before, #pc_nav li a .jp, .main_txt {
    display: none!important;
}
.txt_shadow_h {
    text-shadow: 0 0 5px rgb(123 107 107 / 0%);
}
#header{
    height: auto;
}
header .menu_stick .border_so1-b {
    border-bottom: 3px solid;
    box-shadow: 0 0 5px rgb(0 0 0 / 0%);
    color: var(--normal);
}
#pc_nav li a:hover .en {
    opacity: 1;
}
#pc_nav li a:hover .jp {
    opacity: 0;
}
#pc_nav li a:hover{
    color: var(--color1);
}
#sp_nav a{
    border-radius: 50px;
    color: #fff!important;
}
#sp_nav nav{
    background-image: url('../img/bg1.png');
    background-position: right bottom;
    background-repeat: no-repeat;
    background-size: 24%;
}

.marker span div{
    /*background: linear-gradient(transparent 92%, var(--color1) 92%);*/
    border-bottom: 6px solid var(--color1);
    /*border-image: linear-gradient(to right, var(--color1), var(--color6)) 1;*/
    display: inline;
}
#footer .con_img {
    background-color: var(--color1);
}
#footer .opacity03 {
    opacity: 0;
}
#top_info .con_box a{
    border-radius: 50px;
    margin-top: 10px;
}
header .menu_stick {
    position: fixed;
}


/* ---------- anim ---------- */
.kaku {
    animation: kaku 2.6s linear infinite;
}
 @keyframes kaku {
    0%,50% {
        transform: rotate(-8deg)
    }
    
    50.1%,to {
        transform: rotate(8deg)
    }
}


/* ---------- top ---------- */
.dot-target {
  position: relative;
  display: inline-block;
}

.dot-target::before {
    content: "●";
    position: absolute;
    top: -0.8em;
    left: 50%;
    transform: translateX(-50%);
    font-size: 0.2em;
    line-height: 1;
}

.top_logo{
    z-index: 3;
    background-color: var(--color1);
    width: min(18%, 300px);
    height: 192px;
    border-radius: 0 0 20px 0;
    left: 0;
    top: 0;
}
.top_logo a{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 71%;
}
#pc_nav {
    top: 36px;
    right: 123px;
    position: absolute;
    padding-top: 0;
    padding-right: 0;
}
#pc_nav ul{
    justify-content: flex-end;
}
#pc_nav li {
    margin-bottom: 0;
    padding-right: 24px;
    font-size: 18px;
}
#pc_nav li a {
    text-shadow: 0 4px 5px rgb(0 0 0 / 0%);
    color: var(--normal);
}
#video {
    height: 39vw;
    width: 93vw !important;
    margin: 36px auto 0;
    border-radius: 41px;
    overflow: hidden;
    box-shadow: 8px 8px 0 var(--color1);
}

.fv_txt{
    z-index: 3;
    width: min(40%, 1000px);
    bottom: 50px;
    left: 90px;
}
.fv_item1 {
    z-index: 3;
    width: min(20%, 300px);
    bottom: -27px;
    right: 25px;
}
.fv_item2 {
    z-index: 3;
    width: 11vw;
    top: 50px;
    right: -52px;
}
.fv_item3 {
    z-index: 2;
    width: 11vw;
    bottom: 106px;
    left: -62px;
}
.fv_item4 {
    z-index: 2;
    width: 27vw;
    bottom: 185px;
    left: -21px;
}

#contents1 .width_90per, #contents1-h .width_90per {
    width: 98%!important;
}
#contents1 .letter_4, #contents1-h .letter_4 {
    letter-spacing: 2px;
    font-size: clamp(20px, 1.8vw, 40px);
}
#contents1 .posi_abs{
    border-radius: 0 30px 0 0;
}
#contents1-h .posi_abs{
    border-radius: 30px 0 0 0;
}
#contents1 .con_box, #contents1-h .con_box, #top_info .con_box{
    border-radius: 10px;
}
#contents2 .con2_txt_wrap {
    margin-top: -51px;
}
.contents_wrap{
    background-image: url('../img/bg1.png');
    background-position: center;
    background-size: 100% 100%;
    background-repeat: no-repeat;
}
.item1{
    position: absolute;
    width: 76px;
    top: -62px;
    right: 390px;
}
.item2 {
    position: absolute;
    width: 102px;
    top: -84px;
    left: 326px;
}
#top_info .item1{
    right: 49px;
}
#top_cms .cms_title {
    background-size: 50px 3px;
    background-image: none;
}
.cms_2-g .box_wrap {
    box-shadow: rgba(0, 0, 0, 0.15) 0px 5px 0px 0px;
    border-radius: 15px;
}
.more a::before, .more a::after {
    border-radius: 50px;
}
.more a:hover::before, .more a:hover::after {
    width: 100%;
}
.more a:hover::before {
    border-top: solid 1px var(--color1);
    border-right: solid 1px var(--color1);
}
.more a:hover::after {
    border-bottom: solid 1px var(--color1);
    border-left: solid 1px var(--color1);
}
#top_cms .cms_title h2 {
    font-size: 40px;
}
#top_banner .opacity04 {
    opacity: 0;
}
#top_banner .txt_color2 {
    color: #fff;
}
#top_banner .hvr_txt_color2:hover {
    color: #fff;
}
#top_banner .grid_4 {
    border: 4px solid var(--color4);
    border-bottom: 3px solid var(--color4);
}
#top_banner .grid_6 {
    border: 4px solid #fff;
}
#top_banner a {
    background-color: var(--color2);
    border-radius: 10px;
    padding: 120px 0 80px;
    background-image: url(../img/item3.png);
    background-position: top 65px center;
    background-size: 30px;
    background-repeat: no-repeat;
    line-height: 1.5;
}
.item4{
    z-index: 3;
    width: min(17%, 250px);
    bottom: -27px;
    left: 50px;
    margin-top: -250px;
}



/* ---------- under ---------- */
.privacy_wrap h3 {
    color: var(--color3)!important;
}
#under_page .under_box {
    background-color: #ffffff;
    border-radius: 20px;
}
#wrap:not(.top) {
    background-color: #fbf4e7;
}
#page_title {
    background-color: #ffffff;
}
.cate_list{
    background-color: #fbf4e7;
}
.cate_list li a {
    padding: 10px 20px;
    color: var(--normal);
    background-color: #ffffff;
    font-size: 16px;
}
.cate_list li a:hover{
    color: #fff;
}
#header .contact_bt{
    display: none;
}
#tel_txt h3 {
    color: var(--color1)!important;
}
#under_page .under_box a[href^="tel:"] {
    border-radius: 10px;
}
#cms_2-g .cate_title {
    line-height: 1.5;
    font-size: 2.3em;
}


/* ---------- 1250px ---------- */
@media screen and (max-width: 1250px){
#pc_nav li {
    margin-bottom: 0;
    padding-right: 21px;
    font-size: 15px;
}
#pc_nav {
    top: 41px;
    right: 109px;
    position: absolute;
    padding-top: 0;
    padding-right: 0;
}
.top_logo {
    height: 149px;
}
#video {
    height: 46vw;
}
}

/* ---------- tablet ---------- */
@media screen and (max-width: 768px){
#wrap{
    min-width: 100%;
}
.fv_item2 {
    width: 15vw;
    top: 50px;
    right: -30px;
}
.fv_item4 {
    width: 27vw;
    bottom: 135px;
    left: -21px;
}
.fv_item1 {
    width: 24%;
    bottom: -69px;
    right: 25px;
}
.fv_txt {
    width: 50%;
    bottom: 19px;
    left: 34px;
}
#page_title {
    height: 350px;
}
#page_title .page_title_box {
    top: 151px;
}
#page_title h2 {
    font-size: 40px;
}
#sp_nav nav{
    background-size: 30%;
}
.top_logo {
    width: 26%;
    height: 113px;
}
#header h1 img {
    width: 143px !important;
}
.top_logo a {
    top: 43%;
    left: 50%;
    width: 74%;
}
#video {
    height: 48vw;
    width: 93vw !important;
    margin: 21px;
    border-radius: 31px;
}
#contents1 .letter_4, #contents1-h .letter_4 {
    font-size: 30px;
}
#contents1 .width_90per, #contents1-h .width_90per {
    width: 100% !important;
}
#contents1 .posi_abs {
    border-radius: 30px;
}
#contents1 .con_title .border, #contents1-h .con_title .border{
    display: none;
}
#contents1 .posi_abs, #contents1-h .posi_abs, #top_info .posi_abs {
    height: 49vw !important;
}
.item1 {
    width: 76px;
    top: -62px;
    right: auto;
    left: 30px;
}
.item2 {
    width: 102px;
    top: -71px;
    left: auto;
    right: 30px;
}
.item4 {
    width: 22%;
    bottom: -27px;
    left: 50px;
    margin-top: -78px;
}
#contents2 .con2_img {
    height: 59vw;
}
#top_banner a p {
    font-size: 17px;
    letter-spacing: 0;
}
#top_cms .cms_title h2 {
    font-size: 30px;
}
#top_info{
    padding-top: 0;
}
#under_page .blog_list .grid_3 {
    width: 100% !important;
}
#under_page .blog_list .grid_9 {
    width: 100% !important;
}
.sitemap_box li a {
    border: 1px solid var(--normal);
    border-radius: 50px;
}
}

/* ---------- mobile ---------- */
@media screen and (max-width: 667px){
html, body {
    font-size: 15px;
}
html, body {
    line-height: 1.8;
}
#sp_nav nav {
    background-size: 43%;
}
#header h1 img {
    width: 112px !important;
}
#video {
    height: 57vw;
    width: 90vw !important;
    margin: -21px auto 92px;
    border-radius: 31px;
    box-shadow: 5px 5px 0 var(--color1);
}
.fv_item2 {
    width: 21vw;
    top: 27px;
    right: -24px;
}
.fv_item4 {
    width: 40vw;
    bottom: 135px;
    left: -21px;
}
.top_logo {
    width: 40%;
    height: 72px;
}
.top_logo a {
    top: 43%;
    left: 50%;
    width: 78%;
}
.fv_txt {
    width: 66%;
    bottom:-88px;
    left: 11px;
}
.fv_item1 {
    width: 45%;
    bottom: -174px;
    right: 5px;
}
#cms_2-g .cate_title {
    font-size: 1.4em;
    line-height: 1.4;
}
#contents1{
    text-align: center;
}
#contents1 .letter_4, #contents1-h .letter_4 {
    font-size: 22px;
    line-height: 1.8;
    text-align: left;
    display: inline-block;
    transform: translateX(10px);
    margin-bottom: 25px;
}
#contents1 .con_txt{
    text-align: left;
}
.dot-target::before {
    top: 0.7em;
}
.con2_title2 {
    font-size: 22px;
}
.marker span div {
    /* background: linear-gradient(transparent 92%, var(--color1) 92%); */
    border-bottom: 4px solid var(--color1);
    /* border-image: linear-gradient(to right, var(--color1), var(--color6)) 1; */
    display: inline;
}
#top_banner a {
    padding: 88px 0 50px;
    background-position: top 44px center;
    background-size: 23px;
    background-repeat: no-repeat;
    line-height: 1.5;
}
#top_cms .cms_title h2 {
    font-size: 22px;
}
.more a, .sitemap_box li a {
    background-color: var(--color1);
    border-radius: 50px;
    color: #fff !important;
    border: 1px solid var(--color1);
}
.more a:hover, .sitemap_box li a:hover {
    border: 1px solid var(--normal);
    color: var(--normal) !important;
}
.item4 {
    width: 46%;
    bottom: -16px;
    left: 50px;
    margin-top: -85px;
}
#top_info .posi_abs {
    height: 68vw !important;
}
#copyright {
    padding-bottom: 50px;
}
#page_title .page_title_box {
    top: 124px;
}
#page_title h2 {
    font-size: 22px;
    letter-spacing: 3px;
}
#top_info .con_box a {
    border-radius: 50px;
    margin-top: 10px;
    line-height: 1.1;
    padding: 19px 10px;
}
#page_title {
    height: 284px;
}
.item1 {
width: 61px;
top: -49px;
right: auto;
left: 30px;
}
.item2 {
width: 77px;
top: -48px;
left: auto;
right: 8px;
}
#contents1 .posi_abs, #contents1-h .posi_abs, #top_info .posi_abs {
    height: 58vw !important;
}
#contents1 .posi_abs, #contents1-h .posi_abs {
    border-radius: 10px;
}
}




/* fix_bnr ---------------------------------------------------------------------------------------------*/
#fix_bnr {
    bottom: 9px;
    right: 0;
    z-index: 10;
    width: 100%;
    max-width: 750px;
    transition: 0.5s;
    opacity: 0;
    pointer-events: none;
    z-index: 2;
    left: 0;
    margin: auto;
}
#fix_bnr.scroll{
    opacity: 1;
pointer-events: auto;
}
#fix_bnr.close{
    opacity: 0;
    z-index: -1;
}
@media screen and (max-width: 768px){
#fix_bnr.close{
    transform: translateY(-200px);
}
}
@media screen and (max-width: 667px){
#fix_bnr {
    right: 0;
    left: 0;
    margin: auto;
    bottom: 12px;
    width: 99%;
}
#fix_bnr .pd_5px_sp{
    padding: 0;
}
}
/* fix_bnr end ---------------------------------------------------------------------------------------------*/




