﻿
/* ---------- font ---------- */

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Zen+Maru+Gothic:wght@400;700&display=swap');

:root{
    --font-jp: 'Noto Sans JP', "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic,"ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic",  sans-serif;
    --font-title: 'Zen Maru Gothic', "游ゴシック 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-family: var(--font-jp);
    font-weight: 500;
}
.title, h2, h3, h4 {
    font-family: var(--font-title) !important;
    font-weight: bold;
    letter-spacing: 2px;
}



/* ---------- color ---------- */

.linkStyle{color: var(--txt_color1);transition: opacity .3s;text-decoration: underline;}
.linkStyle:hover{opacity: 0.7}

:root {
    --normal_color: #333333;
    --color1: #91cdd4;
    --color2: #faf5ee;
    --color3: #007F84;
    --color4: #faf5ee;
    --color5: #faf5ee;
    --color6: #dff1f1;
    --txt_color1: #91cdd4;
}
.txt{
	color: var(--normal_color);
}
#intro_bg, #contents{
    background-color: var(--color6);
    background-image: radial-gradient(circle, rgb(255 255 255 / 72%) 1.5px, transparent 1.5px);
    background-position: 0 0;
    background-size: 25px 25px;
}
#foot_banner a {
    color: #fff;
}


/* ---------- all ---------- */
#page-top a{
   background-color: #75c3bd; 
}
#logo .logo {
    width: 132px;
}
header.top{
    background-color: rgb(255 255 255 / 60%);
    transform: translateY(-90%) translateX(-50%);
    margin: auto;
    left: 50%;
    transition: .5s;
}
header{
    min-width: 1200px;
    border-radius: 0 0 20px 20px;
}

.bg_fil_blur{
    backdrop-filter: blur(6px);
}
.news.top_cms_box {
    background: url( "../img/bg_img02.jpg" ) left top / 1000px repeat ;
}
#page_title,footer > div.bg_color2,#contents{
    position: relative;
}
#contents:before,#page_title:before, #top_cms:before, footer > div.bg_color2:before {
    content: "";
    display: block;
    position: absolute;
    top: -43px;
    left: 0px;
    width: 100%;
    height: 43px;
    background-image: url(../img/wave01.png);
    background-position: 50% 100%;
    background-repeat: repeat-x;
    background-size: 760px 13px;
    z-index: 2;
    pointer-events: none;
}
#contents:before{
    background-image: url(../img/wave02.png);
}
footer > div.bg_color2 {
    position: relative;
    background-color: #ffffff;
}

.svg_wrap{
    display: none;
}

/* anim*/
#main_img .main_logo{
    width: 60%!important;
    top: 53%;
    max-width: 332px!important;
}
.fv_logo_bg1 {
    width: min(47%, 398px);
    top: 50%;
    left: 50%;
    opacity: 0.80;
}
.fv_logo_bg2 {
    width: min(47%, 397px);
    left: 50.5%;
    top: 50%;
    opacity: 0.85;
}
.fv_logo_bg1 .rotation{
    animation:30s linear infinite rotation;
}
.fv_logo_bg2 .rotation{
    animation:20s linear infinite rotation;
}
@keyframes rotation{
  0%{ transform:rotate(0);}
  100%{ transform:rotate(360deg); }
}

/*.anim_type1 {animation: anim_type1 3s infinite ease-in-out alternate;}
@keyframes anim_type1 {
	0% {transform:translate(0, 0) rotate(-7deg);}
	50% {transform:translate(0, -7px) rotate(0deg);}
	100% {transform:translate(0, 0) rotate(7deg);}
}*/

/*.follower.is-active{
	opacity: 1;
	background-color: transparent;
	transform: scale(1.5);
    border: none;
}*/
/*.follower.is-active::before{
	content: " ";
    display: block;
    width: 65px;
    height: 65px;
    position: relative;
    top: -22px;
    left: -18px;
    opacity: 1;
    transition: 0.3s;
    background-image: url("../img/cursor_hover.png");
    background-size: contain;
    background-repeat: no-repeat;

}*/

.f_txt{
    font-size: 16px;
    margin-top: 5px;
    color: red;
}


/* ---------- top ---------- */
#main_img {
    padding-top: 0;
}
#main_img .main_img_wrap {
    height: 789px;
    /*height: 662px;*/
}
#main_img .main_img_wrap:before{background-color: transparent;}

#intro {
    overflow: visible;
}
.intro_wrap {
    transform: translateY(-34px);
    border-radius: 20px 20px 0 0;
}
.intro_item{
    right: 0;
    bottom: 0;
    z-index: 2;
    width: min(30%, 200px);
}
#intro_bg h2{
    font-size: clamp(23px, 2.5vw, 35px);
}
.news.top_cms_box{
    margin-top: -34px;
    position: relative;
    z-index: 2;
}

.cms_title {
    background-image: url(../img/icon01.png);
    background-repeat: no-repeat;
    background-size: 76px;
    padding-top: 74px;
    background-position: 50% 0px;
}


/* ---------- under ---------- */
.cate_list li a {
    padding: 10px 15px;
    background-color: #fff;
    border-radius: 5px;
}
#cms_2-g .cate_title h3{
    padding-bottom: 10px;
}

/* cms */
#cms_3-b .cate_box{
    background-color: #fff;
    border-radius: 5px;
    border: none;
}




/* ---------- tablet ---------- */
@media screen and (max-width: 768px){
header{
    min-width: 100%;
    padding-right: 15px !important;
    padding-left: 15px !important;
     border-radius: 0;
}
header #header #header_menu li a{padding: 0;}
#logo {
    padding-top: 0;
}
#main_img .main_img_wrap {
    height: 575px;
}
#main_img .main_logo {
    max-width: 261px !important;
}
.intro_no, #intro_bg h2{text-align: center;}
#intro h2 span.border{right: 0;margin: auto;}
.intro_txt_wrap {margin-bottom: 70px;}
.intro_item {width: min(25%, 200px);}
.intro_wrap {padding-bottom: 112px;}
#intro .intro_wrap{background-size: 160px;}
#top_cms .top_cms_box {margin-bottom: 37px;}

#main_img .main_logo{
    max-width: 219px;
}
#intro_bg h2 {
    font-size: clamp(29px, 2.5vw, 35px);
}
#cms_2-g .cate_title {
    font-size: 1.8em;
    line-height: 1.5;
}
}

/* ---------- mobile ---------- */
@media screen and (max-width: 667px){
header.bg_fil_blur{
    padding-top: 0;
    padding-bottom: 15px;
}
#logo .logo {
    width: 118px;
}
.menu_bt {
    padding-top: 8px;
}
#main_img {
    padding-top: 0;
}
#main_img .main_img_wrap {
    height: 621px;
}
#main_img .main_logo {
    top: 50%;
}
.fv_logo_bg1 {
    width: min(71%, 351px);
    top: 48%;
}
.fv_logo_bg2 {
    width: min(70%, 368px);
    top: 48%;
}
#intro_bg h2 {
    font-size: clamp(25px, 2.5vw, 35px);
}
.intro_txt_wrap {margin-bottom: 67px;}
.con_no {margin-bottom: 7px;}
.more {
    margin: 37px auto 0;
}
.top_cms_box .cms_title h2 {
    font-size: 24px;
}
#page_title h2 span {
    font-size: 26px;
}
#cms_2-g .cate_title {
    font-size: 1.3em;
    line-height: 1.5;
}
}






