@charset "UTF-8";
/* CSS Document */

*{
	margin: 0;
	padding: 0;
    box-sizing: border-box;
}

body{
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', Meiryo, 'Helvetica Neue', 'Verdana', Arial, sans-serif;
    color: #212121;
	font-size: 18px;
	line-height: 1.8;
}

img{
    width: 100%;
    height: auto;
}

a{
    color: #212121;
    text-decoration: none;
}
a:hover{
    color: #EB6100;
    cursor: pointer;
}

li{
    list-style: none;
}

/* ******************** header ******************** */
:root {
    --header: 106px;
    scroll-padding-top: calc(var(--header));
    scroll-behavior: smooth;
}
header{
    position: sticky;
    top: 0;
    display: flex;
    width: 100%;
    height: var(--header);
    padding: 10px 50px;
    align-items: center;
    background: #fff;
    z-index: 10;
}
.ttl{
    display: flex;
    width: 350px;
    margin-right: 20px;
    align-items: center;
}
.ttl img{
    width: 54px;
    margin-right: 20px;
}
.ttl h1{
    font-size: 0.98rem;
    font-weight: 400;
    line-height: 1.1;
}
.ttl h1 span{
    font-size: 3.1rem;
    font-weight: 900;
    color: #EB6100;
}
.ttl h1 span a{
    color: #EB6100;
}
/* --------- nav --------- */
nav{
    width: 75%;
}
nav ul{
    display: flex;
    flex-wrap: wrap;
}
nav li{
    margin-right: 3%;
    font-size: 0.925rem;
}
nav li:last-child{
    margin-right: 0;
}
nav li a{
    display: block;
    margin: 0;
    padding: 0.2rem 0;  /* 下線の位置と幅調整*/
    position: relative; 
    text-decoration: none;  /*デフォルトで下線を非表示*/
    color: initial;
}
nav a:after{
    position: absolute;
    bottom: 0;
    left: 0;
    content: '';
    width: 100%;
    height: 2px;     /*下線の太さ*/
    background-color: #EB6100; /*下線の色*/
    transition: all .3s;
    transform: scaleX(0);
}
nav a:hover:after{
    transform: scaleX(1);
}

/* ******************** KV ******************** */
.kv_area{
    width: 100%;
}

/* ******************** コンテンツ ******************** */
article{
    width: 100%;
}
section{
    max-width: 1100px;
    margin: 0 auto;
    padding: 50px;
}


/* ******************** キャッチ ******************** */
.catch{
    text-align: center;
}
h2.catch_ttl{
    font-size: 2rem;
    text-decoration: underline;
    text-decoration-thickness: 0.5em;
    text-decoration-color: #FFCC00;
    text-underline-offset: -0.2em;
    text-decoration-skip-ink: none;
}
.catch p{
    margin-top: 1.5em;
    font-size: 1.3rem;
    font-weight: 700;
}
.catch p span{
    color: #EB6100;
}

/* ******************** メッセージ ******************** */
article:nth-child(2){
    width: 100%;
    /*background: linear-gradient(180deg, rgba(255,255,255,1), rgba(0,0,0,0.1)75%), url('../img/bg_pc.jpg') no-repeat bottom;*/
    background: url('../img/bg_pc.jpg') no-repeat bottom;
    background-size: cover;
}
.message_ttl h2{
    font-size: 2rem;
    line-height: 1.3;
}
.message_ttl p{
    color: #EB6100;
    font-size: 1.2rem;
    font-weight: bold;
    align-items: center; /* 横線を上下中央 */
    display: flex; /* 文字と横線を横並び */
    justify-content: left;
}
.message_ttl p::before{
    background-color: #EB6100;
    content: "";
    height: 3px; /* 横線の高さ */
    width: 30px; /* 横線の長さ */
    margin-right: 10px;
}
.message{
    position: relative;
    display: flex;
    flex-wrap: wrap;
    margin-top: 1em;
}
.message .txt{
    width: 67%;
}
.message .txt p{
    margin-right: 2em;
    padding-top: 0.6em;
    font-weight: bold;
    text-shadow: 1px 1px 10px #fff, -1px -1px 10px #fff,
    -1px 1px 10px #fff,  1px -1px 10px #fff;
}
.message .txt p:first-child{
    padding-top: 0;
}
.message p:last-child{
    text-align: right;
}
.message .txt p img.sign{
    width: 30%;
    text-align: right;
}
.message .ph{
    width: 28%;
}
/* ------------ プロフィール ------------ */
.profile_box{
    margin-top: 50px;
    padding: 30px;
    background-color: rgba(255,255,255,0.8);
    border-radius: 20px;
}
.profile_box h2{
    font-size: 1.5rem;
    color: orangered;
}
.profile_box p{
    margin-top: 0.5rem;
    color: #000;
}
.profile_img{
    display: flex;
    flex-wrap: wrap;
    margin-top: 1.5em;
}
.profile_img li{
    width: 25%;
}
.profile_sns{
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    margin: 1.5em auto;
    align-items: center;
    justify-content: center;
}
.profile_sns li{
    width: 30px;
    margin: 0 30px;
    line-height: 1;
}

/* ******************** 動画 ******************** */
ul.movie{
    display: flex;
    flex-wrap: wrap;
    width: 95%;
    margin: 0 auto;
    text-align: center;
    align-items: center;
    justify-content: center;
}
.movie li{
    width: 50%;
    padding: 1em;
    aspect-ratio: 16/9;
}
.movie video,
.movie li iframe{
    width: 95%;
    height: 100%;
    border: 1px solid #eee;
}

/* ******************** 3つの重点政策 ******************** */
#anc_02{
    background: linear-gradient(180deg, #EB6100, #F4BF33);
}
.rogo{
    width: 18%;
    margin: 0 auto;
}
#anc_02 h2{
    margin: 0 auto;
    font-size: 2.6rem;
    color: #fff;
    text-align: center;
}
#anc_02 h2 span{
    font-size: 3.5rem;
    line-height: 1;
}
.policy_box{
    margin: 1.5em;
    padding: 20px;
    background: #fff;
    border-radius: 20px;
}
.policy_box ul{
    display: flex;
    flex-wrap: wrap;
}
.policy_box li:first-child{
    width: 25%;
    margin-right: 1.5em;
}
.policy_box li:last-child{
    width: 70%;
}
.policy_box li h3{
    font-size: 2rem;
    color: #EB6301;
}
.policy_box li h4{
    margin-top: 0.5rem;
    font-size: 1.3rem;
}
.policy_box .txt_link li{
    width: initial;
}
.policy_box .txt_link li:first-child{
    font-weight: bold;
}
.policy_box .txt_link li:nth-child(2),
.policy_box .txt_link li:nth-child(3){
    list-style: disc;
    margin-left: 1.5em;
    padding-right: 1em;
}
.policy_box .txt_link a{
    text-decoration: underline;
}
.policy_box .txt_link a:hover{
    text-decoration: none;
}

/* =================== h2 =================== */
#anc_03 h2,
#anc_04 h2,
#anc_05 h2{
    margin: 0 auto;
    font-size: 2.6rem;
    color: #EB6100;
    text-align: center;
    line-height: 1.3;
}

/* ******************** 活動情報 ******************** */
#anc_03 section{
    max-width: 960px;
    margin: 0 auto;
}
#anc_03 iframe{
    width: 100%;
    margin-top: 1.5rem;
}

/* ******************** 情報提供・寄付 ******************** */
#anc_04{
    background: #FFFDE8;
}
.read{
    margin: 2em auto;
    text-align: center;
}
.read h3{
    font-size: 2rem;
    line-height: 1.3;
    padding-bottom: 0.8em;
}
.read p{
    font-size: 1.3rem;
    font-weight: 700;
}
.read p span{
    color: #EB6100;
}
.content{
    display: flex;
    flex-wrap: wrap;
}
.content dl,
.content .area_txt{
    width: 67%;
    margin-right: 2em;
}
.content p.ph{
    width: 28%;
}
.content dt{
    font-size: 1.3rem;
    color: #EB6100;
    font-weight: 700;
}
.content dd{
    padding-bottom: 1em;
}

/* ---------- contact --------- */
.contact_box{
    width: 85%;
    margin: 3em auto 2em;
    padding: 1em;
    text-align: center;
    border: solid 3px #EB6100;
    background: #fff;
}
.contact_box a{
    display: block;
    width: 45%;
    margin: 0 auto;
    font-size: 1.5rem;
    color: #fff;
    font-weight: 500;
}
.contact_box a p{
    width: 100%;
    margin: 0.8em auto 0;
    padding: 0.2em;
    background: #EB6100;
    border-radius: 32px;
    transition: all  0.3s ease;
}
.contact_box a p:hover{
    background-color: #fd9800;
    border-radius: 30px;
}
.policy{
    width: 85%;
    margin: 1em auto 0;
}

/* *********************** footer *********************** */
footer{
    border-top: 3px solid #EB6100;
}
footer .add h2{
    font-size: 1.5rem;
}
footer li:nth-child(2) i,
footer li:nth-child(3) i{
    padding-right: 0.5em;
}
footer p{
    padding: 0.5em;
    color: #fff;
    text-align: center;
    background: #EB6100;
}
/* ------ tel 751px以上は反応しない ------ */
@media (min-width: 412px) {
    a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
    }
  }

/* *********************** scrool top *********************** */
.scroll{
    position: fixed;
    bottom: 60px;
    right: 50px;
    width: 40px;
    height: 40px;
    padding-top: 6px;
    color: #fff; 
    font-size: 0.9rem;
    text-align: center;
    background: #EB6100;
    border: 2px solid #fff;
    border-radius: 20px;
}
.scroll a{
    color: #fff; 
}
.scroll a:hover{
    color: #fff; 
    text-decoration: none;
}

/* *********************** 汎用 *********************** */
.mb1em{
    margin-bottom: 1em;
}
.mb15em{
    margin-bottom: 1.5em;
}
.mb2em{
    margin-bottom: 2em;
}
.mt1em{
    margin-top: 1em;
}
.mt15em{
    margin-top: 1.5em;
}
.mt2em{
    margin-top: 2em;
}

/* ============================================================
     max-width: 1218px
============================================================ */
@media screen and (max-width: 1218px){
    .ttl h1{
        font-size: 0.88rem;
        line-height: 1.3;
    }
    .ttl h1 span{
        font-size: 2.8rem;
        font-weight: 900;
        color: #EB6100;
    }
}

/* ============================================================
     max-width: 995px
============================================================ */
@media screen and (max-width: 995px){

    /* ******************** header ******************** */
    :root {
        --header: 90px;
        scroll-padding-top: calc(var(--header));
    }
    header{
        height: var(--header);
        padding: 10px 15px;
    }
    .ttl{
        width: 90%;
        margin-right: 10px;
    }
    .ttl img{
        width: 44px;
        margin-right: 10px;
    }
    .ttl h1{
        font-size: 0.75rem;
        line-height: 1.3;
    }
    .ttl h1 span{
        font-size: 2.2rem;
    }
    /* --------- nav --------- */
    nav{
        display: none;
    }
}

/* ============================================================
     max-width: 840px
============================================================ */
@media screen and (max-width: 840px){

/* ******************** コンテンツ ******************** */
    section{
        padding: 8% 3%;
    }

/* ******************** メッセージ ******************** */
    article:nth-child(2){
        width: 100%;
        background: linear-gradient(180deg, rgba(255,255,255,1), rgba(148, 212, 255, 0.1)75%), url('../img/bg_sp.png') no-repeat;
        background-position: center bottom;
        background-size: contain;
    }
    .message{
        padding-bottom: 0;
    }
    .message .txt{
        width: 100%;
    }
    .message .txt p{
        margin-right: 0;
    }
    .message .txt p:last-child{
        text-align: right;
    }
    .message .txt p img.sign{
        width: 45%;
    }
    .message .ph{
        width: 50%;
        margin: 0 auto;
        padding-top: 1.5em;
    }
/* ------------ プロフィール ------------ */
    .profile_box{
        margin-top: 1.5em;
        padding: 5%;
        border: 2px solid #dcecf2;
        border-radius: 15px;
    }
    .profile_img{
        margin-top: 1.5em;
    }
    .profile_img li{
        width: 50%;
        line-height: 0;
    }
    .profile_sns{
        margin: 1em auto 0;
    }
    .profile_sns li{
        width: 32px;
        margin: 0.3em 0.6em;
    }

/* ******************** 動画 ******************** */
    .movie li{
        width:100%;
        padding: 0.6em 0;
        aspect-ratio: 16/9;
    }
    .movie li iframe{
        width: 100%;
        height: 114%;
    }

/* ******************** 情報提供・寄付 ******************** */
    .content{
        display: flex;
        flex-wrap: wrap;
    }
    .content dl,
    .content .area_txt{
        width: 100%;
        margin-right: 0;
    }
    .content p.ph{
        width: 50%;
        margin: 1.5em auto 0;
    }
    /* ---------- contact --------- */
    .contact_box{
        width: 100%;
        margin: 2em auto;
    }
    .contact_box a{
        width: 80%;
    }
    .policy{
        width: 100%;
    }

/* *********************** scrool top *********************** */
    .scroll{
        bottom: 60px;
        right: 20px;
    }
}

/* ******************** 3つの重点政策 ******************** */
@media screen and (max-width: 700px) {
    .rogo{
        width: 30%;
    }
    .policy_box{
        margin: 1.5em 0;
        padding: 3%;
        border-radius: 15px;
    }
    .policy_box:last-child{
        margin-bottom: 0;
    }
    .policy_box ul{
        display: inherit;
    }
    .policy_box li img.sp{
        margin-bottom: 0.5em;
    }
    .policy_box li:first-child{
        width: 100%;
        margin-right: 0;
    }
    .policy_box li:last-child{
        width: 100%;
    }
}

/* ============================================================
     max-width: 414px    
============================================================ */
@media screen and (max-width: 414px){
    body{
        font-size: 1.1rem;
    }
    :root {
        --header: 90px;
        scroll-padding-top: calc(var(--header));
    }
    header{
        height: var(--header);
        padding: 10px;
    }

/* ******************** キャッチ ******************** */
    h2.catch_ttl{
        font-size: 1.5rem;
    }
    .catch p{
        margin-top: 1.5em;
        font-size: 1.2rem;
        text-align: left;
    }
 /* ******************** メッセージ ******************** */
    .message_ttl h2{
        font-size: 1.4rem;
        line-height: 1.3;
    }
    .message .ph{
        width: 65%;
    }
/* ******************** 3つの重点政策 ******************** */
    .rogo{
        width: 45%;
    }
    #anc_02 h2{
        font-size: 2rem;
    }
    #anc_02 h2 span{
        font-size: 3rem;
    }
    .policy_box{
        margin: 1em 0;
    }
   .policy_box li h3{
        font-size: 1.6rem;
        text-align: center;
    }
    .policy_box li h4{
        margin: 0.5em 0;
        font-size: 1.2rem;
        line-height: 1.5;
    }
/* =================== h2 =================== */
    #anc_03 h2,
    #anc_04 h2,
    #anc_05 h2{
        font-size: 1.8rem;
    }
/* ******************** 情報提供・寄付 ******************** */
    .read h3{
        font-size: 1.4rem;
        text-align: left;
    }
    .read p{
        font-size: 1.2rem;
        text-align: left;
    }
    .content p.ph{
        width: 65%;
        margin: 1em auto 0;
    }
/* ---------- contact --------- */
    .contact_box{
        width: 100%;
        margin: 2em 0;
    }
    .contact_box a{
        width: 100%;
    }
/* ******************** 動画 ******************** */
    ul.movie,
    ul.youtube{
        width: 100%;
        margin: 0;
    }
    .movie video{
        width: 100%;
        height: auto;
    }
    .youtube li iframe{
        width:100%;
        height:100%;
    }
    footer .add a{
        text-decoration: underline;
    }
}


/* *************************************************************
    ハンバーガー
************************************************************** */
@media screen and (min-width: 994px){
	.hamburger-menu{
		display: none;
	}
}

@media screen and (max-width: 995px){
	.menu-btn {
	    position: absolute;
	    top: 5px;
	    right: 15px;
	    display: flex;
	    width: 50px;
        height: 90px;
	    justify-content: center;
	    align-items: center;
	    z-index: 90;
	}
	.menu-btn span,
	.menu-btn span:before,
	.menu-btn span:after {
	    content: '';
	    display: block;
	    height: 3px;
	    width: 28px;
	    border-radius: 3px;
	    background-color: #463933;
	    position: absolute;
	}
	.menu-btn span:before {
	    bottom: 8px;
	}
	.menu-btn span:after {
	    top: 8px;
	}

	#menu-btn-check:checked ~ .menu-btn span {
	    background-color: rgba(255, 255, 255, 0);/*メニューオープン時は真ん中の線を透明にする*/
	}
	#menu-btn-check:checked ~ .menu-btn span::before {
	    bottom: 0;
	    transform: rotate(45deg);
	}
	#menu-btn-check:checked ~ .menu-btn span::after {
	    top: 0;
	    transform: rotate(-45deg);
	}
	#menu-btn-check {
	    display: none;
	}

	.menu-content {
        width: 100%;
        height: 100%;
        position: fixed;
        top: 90px;
        left: 100%;/*leftの値を変更してメニューを画面外へ*/
        z-index: 80;
        /*background-color: rgba(0,0,0,0.5);*/
        background: #fff;
        transition: all 0.5s;/*アニメーション設定*/
	}
	.menu-content ul {
	    padding: 20px 20px 0;
		background: #EB6100;
	}
	.menu-content ul li {
	    list-style: none;
        border-bottom: 1px solid #fff;
	}
	.menu-content ul li a {
	    display: block;
	    width: 100%;
	    font-size: 1.2rem;
	    box-sizing: border-box;
	    color: #fff;
	    text-decoration: none;
	    padding: 10px;
	    position: relative;
	}
	.menu-content ul li a img{
		width: 40px;
		margin: 0 auto;
		text-align: center;
	}
    .menu-content li.sns ul{
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 1em 0;
        text-align: center;
    }
    .menu-content li.sns li img{
        width: 35%;
    }
    .menu-content li.sns,
    .menu-content li.sns li,
    .menu-content ul.rogo{
        border: none;
    }
    .menu-content ul.rogo{
        width: 100%;
        padding: 0.8em;
        text-align: center;
        background: #fff;
    }
    .menu-content ul.rogo p img{
        width: 25%;
        margin: 0 auto;  
    }

	.menu-content ul li.bnr{
		margin-top: 20px;
		text-align: center;
		line-height: 1.3;
		border: 1px solid #000;
	}
	.menu-content ul li.bnr a{
		padding: 10px;
		font-size: 0.8rem;
	}
	.menu-content ul li.bnr a:hover{
		background: #eee;
	}
	.menu-content ul li.phone{
		margin-top: 5px;
		padding-top: 10px;
		border-top: 1px solid #ccc;
	}
	.menu-content ul li.phone a{
		padding: 10px 0;
		color: #fff;
	}
	.menu-content li.phone a p{
		padding: 10px;
		font-size: 1rem;
		font-weight: bold;
		text-align: center;
		background: #92ab31;
		border-radius: 5px;
		font-family: 'Noto Sans JP', sans-serif;
	}
	.menu-content li.phone p{
    	font-size: 0.8rem;
    	text-align: center;
	}
	#menu-btn-check:checked ~ .menu-content {
	    left: 0;/*メニューを画面内へ*/
	}

/* *********************** scrool top *********************** */
    .scroll{
        bottom: 55px;
        right: 15px;
    }
}

@media screen and (max-width: 414px){
    .menu-btn {
	    top: 0;
	    right: 10px;
	}
    .menu-content li.sns li img{
        width: 70%;
    }
    .menu-content ul.rogo p img{
        width: 35%;
        margin: 0 auto;  
    }
}


/* *********************** 表示・非表示 *********************** */
.yellow{
    background: #FFFBE8;
}
.pc{
    display: block;
}
.sp{
    display: none;
}
@media screen and (max-width: 700px){
    .pc{
        display: none;
    }
    .sp{
        display: block;
    }
}