@charset "utf-8";

/*****************************************************************

	トップページ＆共通レイアウト定義

*****************************************************************/

/* ====== BASE Module SET ===== */


*{
	box-sizing: border-box;
}

html,
body{
	margin: 0;
	padding: 0;
}

html{
	overflow-y:scroll;
 font-size: 100%;
 scroll-padding-top: 60px;
}

h1,h2,h3,h4,h5,h6,
p,ul,ol,dl,dt,dd,li,
table,td,th,
address,
blockquote,form,fieldset,legend,div,hr,pre{
	margin: 0;
	padding: 0;
	font-style: normal;
	text-align: left;
	font-size: 100%;
	line-height: 1.2;
}

article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary {
	display: block;
}


body{
	background: #FFF;
	text-align: center;
	-webkit-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	-o-text-size-adjust: 100%;
	text-size-adjust: 100%;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	word-wrap: break-word;
	overflow-wrap: break-word;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

th,td{
	vertical-align: top;
}

svg,
img{
	border: 0;
	vertical-align: top;
	outline: none;
	max-width: 100%;
	height: auto;
}
svg {
 overflow-x: visible;
 overflow-y: visible;
}
img,
input,
select,
textarea{
	margin-top: 0;
	margin-bottom: 0;
	vertical-align: middle;
	font-size: 1rem;
}

input[type="button"],
input[type="submit"] {
 appearance: none;
}
select,
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"]{
 padding:  5px;
 border: 1px solid #ccc;
}
button{
	background-color: transparent;
	border: 0;
	cursor: pointer;
	outline: none;
	padding: 0;
	appearance: none;
}

::-webkit-input-placeholder{
    color: #ccc;
}
::-moz-placeholder{
    color: #ccc;
}
:-moz-placeholder{
    color: #ccc;
}
:-ms-input-placeholder{
    color: #ccc;
}

abbr{
	border: 0;
}

hr{
	margin: 2em 0;
	display: block;
	border: 0;
	border-bottom: 1px solid #ddd;
	clear: both;
}

img{
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;

	-moz-transition: 0.5s;
	-webkit-transition: 0.5s;
	transition: 0.5s;
	vertical-align: top;

	-moz-user-select: none; 
	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-user-drag: none; 
	user-drag: none;
}

iframe{
	display: block;
	vertical-align: top;
}

i,
em{
	font-style: normal;
}

a{
	color: #000;
	background: transparent;
	transition: 0.25s;
}

a:hover,
a:focus{
	color: #666;
}

a:hover img{
}

ul li{
	list-style: none;
}

::selection{background-color:#333; color: #fff; }
::-moz-selection {background-color:#333; color: #fff; }
input::selection,
textarea::selection{background-color:#b6d6fd; color: #000; }
input::-moz-selection,
textarea::-moz-selection{background-color:#b6d6fd; color: #000; }

div,
ul,
section,
article{
	width: auto;
}

.tel_dis{ cursor: default; }

.sp_i{ display: none; }
.sp_b{ display: none; }

.pc_i{ display: inline; }
.pc_b{ display: block; }

.sp_ib{ display: none; }
.pc_ib{ display: inline-block; *display: inline; zoom: 1; }

.txt_c{ text-align: center;}
.txt_r{ text-align: right;}

/*============================================================
	TopContentsStyle
============================================================*/
 
/*============================================================
	Page / column
============================================================*/
#page{
	width: 100%;
	margin: 0 auto;
	text-align: left;
}
#home #page{
 padding-top: 0;
}

.inner{
	width: 100%;
	padding:  0 10px;
	text-align: left;
	margin: 0 auto;
	position: relative;
 max-width: 1220px;
}
.sec_company h2,
.sec_company h3,
.sec_company_item h2,
.step h2,
.pagenation ul,
.news_nav,
.news_page h1,
.sub_area h3,
.toa_page_head,
.main_page_head,
.page_head_sub,
.sub_head,
.sec_program_item h4,
.sec_program_item strong,
.image h2,
.sp_menu_main,
.news_list,
.h_main_menu,
.sec_page_faq_item h3,
.head_service h2,
.top_program_head,
.top_faq_head,
.top_head,
.main_menu,
.btn_h_contact{
 font-family: "Shippori Mincho","Times New Roman", Times, "serif"
}
.sec_page_faq_item i,
body{
	background: #FFF;
	font-family: "Zen Kaku Gothic New","Hiragino Kaku Gothic Pro","ヒラギノ角ゴ Pro W3","メイリオ","meiryo","MS P Gothic","ＭＳ Ｐゴシック","Osaka", sans-serif;
}
/*============================================================
	Header
============================================================*/
#page_header{
	width: 100%;
	text-align: center;
 position: fixed;
 top: 0;
 left: 0;
 z-index: 100;
}
#page_header .inner{
 display: flex;
 justify-content: space-between;
 align-items: center;
}
#page_header h1{
 width: 260px;
 min-width: 260px;
 flex-basis: 260px;
 margin-right: 1%;
}
.btn_h_contact{
 text-decoration: none;
 display: block;
 line-height: 1;
 background: #003100;
 padding: 40px 0;
 text-align: center;
 color: #fff;
 margin-right: -10px;
 margin-left: 1%;
 min-width: 200px;
}
.btn_h_contact:hover,
.btn_h_contact:focus{
 background: #fff;
 color: #003100;
}
.h_main_menu{
 display: none;
}
.second_page #page_header,
.scr_on #page_header{
 background: #fff;
}
.second_page #page_header h1 img,
.scr_on #page_header h1 img{
 opacity: 0;
}
.second_page #page_header h1,
.scr_on #page_header h1{
 background: url("../images/logo_2.png") no-repeat 0 0;
 background-size: 100% auto;
}
 #page{
  padding-top: 96px;
 }


@media screen and (min-width: 1201px){
 .scr_on .h_main_menu{
  display: block;
 }
 .second_page .h_main_menu{
  display: block;
 }
}
/*
@media screen and (max-width: 1201px){
 .second_page .h_main_menu{
  display: none;
 }
}*/
.sp_menu_area{
 display: none;
}
@media screen and (max-width: 1201px) {
 .sp_menu_area{
  display: block;
 }
 #page{
  padding-top: 63px;
 }
 #home #page{
  padding-top: 63px;
 }

 /*============================================================
  Page / column
 ============================================================*/
 #page{
  overflow: hidden;
  padding-top: 63px;
 }

 .inner{
 }

 #page_header{
  background: #fff;
  padding:  10px 0;
 }
 #page_header h1{
  width: 200px;
  min-width: 200px;
  flex-basis: 200px;
 }
 #page_header h1 img {
  opacity: 0;
 }
 #page_header h1 {
  background: url(../images/logo_2.png) no-repeat 0 0;
  background-size: 100% auto;
 }
 /*============================================================
  Nav
 ============================================================*/
 .btn_sp_menu{
  position: absolute;
  top: -10px;
  right: -5px;
  display: block;
  width: 63px;
  height: 63px;
  background: url("../images/btn_sp_menu.png") no-repeat;
  background-size: 100% auto;
  z-index: 10;
 }

 .menu_on .btn_sp_menu{
  background-image: url("../images/btn_sp_menu_on.png")
 }
 .menu_on .sp_menu_area{
  transform: translateX(0%);
 }
 .sp_menu_area{
  overflow: auto;
  scrollbar-width: none;

  transform: translateX(100%);
  transition: 0.25s transform;
  position: fixed;

  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 9;
  background: #003100;
  padding: 70px 20px;
 }
 .sp_menu_area a{
  display: block;
  color: #fff;
  text-decoration: none;
 }
 .sp_menu::-webkit-scrollbar{display: none;}
 .sp_menu_main{
  border-top: 1px solid #999;
  margin-bottom: 30px;
  font-weight: bold;
 }
 .sp_menu_main a{
  padding: 12px 0;
  border-bottom: 1px solid #999;
 }
 .sp_menu_sub a{
  padding: 10px 0;
 }
 .btn_h_contact{
  display: none;
 }
}
/*============================================================
	Nav
============================================================*/
.main_menu{
 background: rgba(0,0,0,0.6);
 color: #fff;
 padding: 20px 0;
 margin-top: -100px;
 z-index: 2;
 position: relative
}
.h_main_menu ul,
.main_menu ul{
 display: flex;
 font-size: 1.125rem;
 border-left: 1px solid #fff;
}
.h_main_menu{
 width: 100%;
 
}
.h_main_menu ul{
 font-size: 0.78rem;
}
.h_main_menu li,
.main_menu li{
 width: 14.28%;
 line-height: 1.5;
 border-right: 1px solid #fff;
}
.h_main_menu ul,
.h_main_menu li:last-child{ border: none}
.h_main_menu a,
.main_menu a{
 display: flex;
 height: 60px;
 justify-content: center;
 align-items: center;
 color: #fff;
 text-decoration: none; 
 text-align: center;
}
.h_main_menu a:hover,
.main_menu a:hover,
.h_main_menu a:focus,
.main_menu a:focus{
 opacity: 0.65
}
.h_main_menu ul{
 border-color:#000;
}
.h_main_menu li{
 border-color:#000;
}
.h_main_menu a{
 color:#000;
 height: 40px;
}

/*
@media screen and (max-width: 1200px){
 .h_main_menu{
  display: none;
 }
 .h_main_menu ul{
 font-size: 0.78rem;
 }
 #page_header h1{
 width: 200px;
 min-width: 200px;
 flex-basis: 200px;
 }
 .btn_h_contact{
  padding: 20px 10px;
  font-size: 0.78rem;
  min-width: 180px;
 }

 #page{
  padding-top: 52px;
 }
}
@media screen and (max-width: 960px) and  (min-width: 769px){
 .main_menu ul{
  font-size: 0.78rem;
 }
}
*/
@media screen and (max-width: 1201px) {
 .main_menu{
  display: none
 }
}
/*============================================================
	Main
============================================================*/
#main{
	width: 100%;
 padding-bottom: 30px;
}

/* Main Design */
#main p,
#main li,
#main dd,
#main dt,
#main blockquote,
#main pre,
#main td,
#main th{
	line-height: 1.75;
	font-size: 1rem;
}
#main p,
#main ul,
#main dl,
#main ol,
#main blockquote,
#main pre,
#main table{
	margin-bottom: 1em;
}

#main td,
#main th{
	margin-bottom: 0;
}

#main h1,
#main h2,
#main h3,
#main h4,
#main h5,
#main h6{
	font-size: 1rem;
	line-height: 1.5;
	margin-bottom: 1em;
}

/* default */
#main ul ul,
#main ul p,
#main ul blockquote,
#main ul pre,
#main ul dl,
#main dl dl,
#main dl p,
#main dl ul,
#main dl ol,
#main blockquote p,
#main blockquote ul,
#main blockquote dl,
#main blockquote ol,
#main ol blockquote,
#main ol pre,
#main ol p,
#main td p,
#main td ul,
#main td dl{
}

#main ol li{ margin-left: 1.6em;}

#main *:last-child{
	margin-bottom: 0;
}

/*============================================================
	TOP
============================================================*/
.sec_page_faq,
.sec_page_news{
 padding-bottom: 60px
}
/* ===== top_head ===== */
#main .top_faq_head,
#main .top_program_head,
#main .top_head{
 font-size: 30px;
 margin: 0;
 text-align: center;
 padding: 60px 10px;
 background: #001c00 linear-gradient(45deg, #181818 0%, #004b00 100%);
 color: #fff;
 font-weight: normal;
 line-height: 1.5;
}
#main .top_head{
 font-size: 1.25rem;

}
#main .top_program_head{
 padding: 70px 10px;
 background: #002400;
}
#main .top_faq_head{
 padding: 70px 10px;
 background: none;
 color: #002400;
}
.sec_top_read{
 margin: 0;
 padding: 60px 10px;
 background: #001c00 linear-gradient(45deg, #002400 0%, #002400 100%);
 color: #fff;
}
.sec_top_read .inner{
 display: flex;
 justify-content: space-between;
 align-items: flex-start;
}
#main .sec_top_read h3{
 width: 23%;
 text-align: right;
 margin: 0;
}
#main .sec_top_read h3 img{
 width: 100%;
 max-width: 103px
}
#main .sec_top_read .txt_box{
 width: 70%;
 padding-right: 8%;
}
#main .sec_top_read .txt_box p{
 font-size: 1.25rem;
}
#main .sec_program_item h4{
 font-size: 35px;
 line-height: 1.2;
}#main .sec_program_item strong{
 font-size: 30px;
}
.sec_program_item_2:last-child{
 background: #003100;
 color: #fff;
}
#main .sec_program_item_2:last-child p{
 font-size: 1.125rem;
 line-height: 1.5;
}
#main .change{
 text-align: center;
 margin: 60px 0 0 0;
}
.btn_more{
 display: inline-block;
 padding: 20px 10px;
 width: 100%;
 max-width: 300px;
 color: #003100;
 background: none;
 position: relative;
 text-align: center;
 font-size: 1rem;
 text-decoration: none;
 line-height: 1;
 border: 2px solid #003100;
 font-weight: bold;
}
.btn_more::before{
 content: '';
 display: block;
 width: 10px;
 height: 10px;
 transform: rotate(45deg);
 border-top: 2px solid #003100;
 border-right: 2px solid #003100;
 top: calc(50% - 5px);
 right: 20px;
 position: absolute;
}
.btn_more:hover,
.btn_more:focus{
 border-color: #003100;
 color: #fff;
 background: #003100;
}
.btn_more:hover::before,
.btn_more:focus::before{
 border-color: #fff;
}

.btn_more_w{
 border-color: #fff;
 color: #fff;
 background: none;
}
.btn_more_w::before{
 border-color: #fff;
}
.btn_more_w:hover,
.btn_more_w:focus{
 border-color: #fff;
 color: #003100;
 background: #fff;
}
.btn_more_w:hover::before,
.btn_more_w:focus::before{
 border-color: #003100;
}

#main .head_service{
 padding: 100px 10px;
 background: #fff;
}
#main .head_service h2{
 color: #003100;
 font-size: 36px;
 line-height: 1;
 margin-bottom: 1em;
 text-align: center;
}
#main .head_service p{
 font-size: 1.125rem;
 line-height: 1;
 margin-bottom: 0;
 text-align: center;
}
/* ===== sec_program_item ===== */
#main .sec_program_item ul{
 margin: 0;
}
#main .sec_program_item .pic ul{
 margin: 0;
 position: relative;
 padding-top: 85%;
 overflow: hidden;
}
#main .sec_program_item .pic li{
 width: 100%;
 height: 100%;
 position: absolute;
 top: 0;
 left: 0;
}
#main .sec_program_item .pic img{
 display: block;
 width: 100%;
 height: 100%;
 object-fit: cover;
}
#main .sec_program_item .pic p{
 display: none;
}
#main .sec_program_item .pic{
 width: 50%;
}
#main .sec_program_item .txt_box{
 width: 46%;
 padding: 0 1%;
}
#main .sec_program_item_1 .pic{
 order: 2;
}
#main .sec_program_item_2 .txt_box{
 order: 1;
}
#main .sec_program_item{
 display: flex;
 justify-content: space-between;
 align-items: center;
}
/* ===== faq ===== */
.sec_page_faq_item {
	border-bottom: 1px dotted #ccc;
	margin: auto;
	margin-bottom: 25px;
 max-width: 1070px;
}
.sec_page_faq_item:first-child{
	border-top: 1px dotted #ccc;
 padding-top: 20px;
}
#main .sec_page_faq_item h3 {
	font-size: 1.5rem;
 position: relative;
 padding-left: 50px;
 color: #003100;
 font-weight: normal;
}
#main .sec_page_faq_item p {
	font-size: 1rem;
}

#main .sec_page_faq_item .sec_page_faq_item_a {
	padding: 0 0 20px 50px;
 position: relative;
 min-height: 60px;
}

#main .sec_page_faq_item i{
 position: absolute;
 display: block;
 left: 0;
 top: 5px;
 width: 1.5em;
 height: 1.5em;
 line-height: 1.5em;
 text-align: center;
 vertical-align: middle;
 border-radius: 50%;
 font-weight: bold;
 font-size: 20px;
 background: #003100;
 color: #fff;
}
#main .sec_page_faq_item .sec_page_faq_item_a  i{
 background: #cbd7aa;
 color: #003100;
}
/* ===== image ===== */
.image{
 overflow: hidden;
 position: relative;
}
.image h2{
 position: absolute;
 z-index: 3;
 text-align: center;
 width: 100%;
 left: 0;
 top: 50%;
 margin-top: -1.5em;
 color: #fff;
 font-size: 30px;
 line-height: 1.5;
}
.image ul{
 margin: 0;
 padding: 80vh 0 0 0;
 position: relative;
}
.image img,
.image li{
 display: block;
 width: 100%;
 height: 100%;
}
.image img{
 position: relative;
 z-index: 1;
 object-fit: cover;
}
.image li{
 position: absolute;
 top: 0;
 left: 0;
 background: #000;
 z-index: 1;
}
.image p{
 display: none;
}
.sec_page_news{
 background: #f5f5f5;
}
.sec_page_news{
 background: #f5f5f5;
}
/* ===== news_list ===== */
#main .news_list{
 border-top: 1px dotted #ccc;
}
#main .news_list a{
 display: block;
 border-bottom: 1px dotted #ccc;
 padding: 1em 0;
 text-decoration: none;
}
#main .news_list time{
 display: block;
 margin-bottom: 1em;
 line-height: 1;
 font-size: 0.88rem;
 color: #003100;
}
#main .news_list p{
 margin: 0;
 font-size: 1.125rem;
 line-height: 1.5;
}

#main .pagenation ul,
#main .news_nav{
 text-align: center;
 margin: 0;
}
#main .news_nav{
 margin-top: 40px;
 padding-top: 40px;
 border-top:  1px dotted #ccc;
}
#main .pagenation ul{
 margin: 40px 0;
}
#main .pagenation li{
 display: inline-block;
 margin: 0 2px;
 font-size: 0.78rem;
}
#main .pagenation a{
 display: block;
 color: #666;
 text-decoration:none;
 margin:  0;
 border: 1px solid #e5e5e5;
 padding: 12px;
 line-height: 1;
 position: relative;
}
#main .pagenation .active a{
 background: #e5e5e5;
}
#main .pagenation .prev a,
#main .pagenation .next a{
 padding: 12px 40px;
}
#main .news_nav a{
 display: inline-block;
 color: #666;
 text-decoration:none;
 margin:  0 1em;
 border: 1px solid #e5e5e5;
 padding: 12px 40px;
 line-height: 1;
 position: relative;
}


/* ===== path ===== */
#main .path{
 padding: 15px 0;
 background: #f3f3f3;
}
#main .path p{
 line-height: 1;
 display: flex;
 font-size: 0.78rem;
 color: #333;
 gap: 5px;
}
#main .path a{
 color: #999;
 text-decoration: none;
}
#main .path em{
 font-weight: bold;
}
/* ===== voice ===== */
#main .page_image_location{
 padding-top: 55%;
 position: relative;
 overflow: hidden;
}
#main .page_image_slide{
 margin: 0 0 30px 0;
 padding-top: 43%;
 position: relative;
 overflow: hidden;
}
#main .inner+.page_image_slide{
 margin-top: 50px;
}
#main .page_image_location ul,
#main .page_image_slide ul{
 margin: 0;
 width: 100%;
 height: 100%;
 opacity: 1 !important
}
.mark{
 display: none;
}
#main .page_image_location li,
#main .page_image_slide li{
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
}

#main .page_image{
 margin: 0;
}
#main .page_image img{
 width: 100%;
}
#main .sub_head{
 line-height: 1;
 font-size: 30px;
 margin-bottom: 1em;
 color: #003100;
}
#main .page_head_sub{
 text-align: center;
 line-height: 1;
 font-size: 36px;
 margin-bottom: 60px;;
 color: #003100;
 font-weight: bold;
}
#main .path+.page_head_sub{
 margin-top: 60px;
}
#main .sec_voice h3{
 font-size: 1.25rem;
}
.sec_company,
.sec_voice{
 border-bottom: 1px solid #eee;
 padding: 50px 0;
}
.sec_company{
 margin-bottom: 50px;
}

.sec_service .inner{
 max-width: 1160px;
}
.sec_voice .inner{
 max-width: 1090px;
}
.grp_voice{
 display: flex;
 justify-content: space-between;
 padding: 20px;
 border: 1px solid #eee;
 border-radius: 10px;
}
#main .grp_voice .pic{
 width: 40%;
 margin: 0;
}
#main .grp_voice .pic img+img{
 margin-top: 30px;
}
.grp_voice .txt_box{
 width: 58%;
}
.sec_service_item{
 padding: 30px;
 border: 1px solid #ddd;
 border-radius: 20px;
 background: #fff;
 margin-top: 25px;
}
#main .sec_service_item h3{
 line-height: 1;
 font-size: 30px;
 margin-bottom: 1em;
 color: #003100;
}
#main .page_list{
 margin: 0;
 font-size: 1.125rem;
 font-weight: bold;
 overflow: hidden;
}
#main .page_list li::before{
 position: absolute;
 left: 0;
 content: "●";
 color: #ccc;
 display: block;
}
#main .sec_service .sec_service_item p,
#main .page_list li{
 position: relative;
 margin-bottom: 0.75em;
 padding-left: 1.5em;
 font-size: 1.125rem;
}
/* ===== main_page_head ===== */
#main .main_page_head{
 background: #002400;
 font-size: 36px;
 line-height: 1;
 color: #fff;
 padding: 65px 10px;
 text-align: center;
}
#main .txt_read+.main_page_head {
 margin: 0;
}
.txt_read{
 padding: 40px 0;
}
#main .txt_read p{
 font-size: 1rem;
 line-height: 2;
 color: #333;
}
.sec_service_item strong,
.txt_read strong{
 color: #003100;
}
.sec_service{
 padding: 35px 0;
 background: #f7f7f7;
 border-top: 1px solid #ddd;
}
#home .sec_service{
 padding:  0;
}
.sec_service_2{
 padding-top: 0;
}
#main .sec_service_2 .toa_page_head{
 margin-bottom: 0;
 background: #e7e7e7;
 padding:  60px 0;
 line-height: 1;
}
.sec_service_item .img_r{
 display: inline-block;
 width: 340px;
 float: right;
 margin-left: 5%;
}
.sec_service_item .img_r{
 width: 505px;
 margin-left: 5%;
}
.sec_service_item_2 .page_list{
 clear: both;
 padding-top: 2em;
}
#main .toa_page_head{
 color: #003100;
 font-size: 36px;
 line-height: 1;
 text-align: center;
}
#main .sec_service .page_image{
 margin: 60px 0;
}
#main .sec_service h2+.page_image{
 margin: 0 0 60px 0;
}
#main .sec_service .grp{
 display: flex;
 justify-content: space-between;
}
#main .sec_service .grp>p{
 width: 49%;
}
#main .sec_service .txt_box{
 width: 49%;
}
#main .sec_service p{
 font-size: 1.125rem;
}
#main .sec_service h4{
 margin: 0 0 0.5em 0;
 line-height: 1;
}
#main .sec_service p+h4{
 margin: 3em 0 0.5em 0;
}

/* ===== location_image ===== */
.location_image{
 width: 100%;
 height: 240px;
 overflow: hidden;
 background: url("../../page_images/img_location_slide.webp") repeat-x 0 0;
 background-size: auto 100%;
 animation: 40s infinite slide linear
}
@keyframes slide{
 0%{
  background-position: 0 0;
 }
 100%{
  background-position: -1297px 0;
 }
}
.sec_location_photo{
 padding: 50px 0;
}
.sec_location_item{
 padding:  50px 0;
 border-bottom: 1px solid #eee;
}
.sec_location_item .inner{
 display: flex;
 justify-content: space-between;
}
.sec_location_item .pic{
 display: block;
 order: 2;
 width: 48%;
 aspect-ratio: 4 / 3;
 position: relative;
 overflow: hidden;
}
.sec_location_item .pic li{
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
}
.sec_location_item .txt_box{
 order: 1;
 width: 50%;
}
#main .photos{
 margin: 0;
 display: flex;
 justify-content: space-between;
 flex-wrap: wrap;
}
#main .photos li{
 width: 32%;
 margin-bottom: 2%;
}
#main .photos a{
 display: block;
}
#main .photos a img{
 border: 5px solid #fff;
 box-shadow: 0 0 10px 1px rgba(0,0,0,0.1);
}
#main .photos a:hover img,
#main .photos a:focus img{
 box-shadow: 0 0 20px 1px rgba(0,0,0,0.2);
}
#main .sec_location_item p{
 margin-bottom: 2em;
}
/* ===== news_page ===== */
.news_page{
 padding:  50px 10px;
 display: flex;
 flex-wrap: wrap;
 justify-content: space-between;
}
.news_page .page_head_sub{
 width: 100%;
}
.news_page .sub_area{
 width: 24%;
 order: 1;
}
.news_page .main_area{
 width: 70%;
 order: 2;
}
#main .sub_area h3{
 color:#003100;
 font-size: 1.5rem;
 font-weight: normal;
 line-height: 1;
 margin: 0;
 padding-bottom: 0.5em;
 border-bottom: 1px solid #eee;
}
#main .categiry_list{
 margin: 0;
}
#main .categiry_list li{
 margin: 0;
 line-height: 1.5;
 font-size: 0.88rem;
}
#main .arc_list li{
 margin: 0;
 line-height: 1;
 font-size: 0.88rem;
}
#main .arc_list a,
#main .categiry_list a{
 padding: 1em 0;
 display: block;
 text-decoration: none;
 border-bottom: 1px solid #eee;
}
#main .categiry_list time{
 font-weight: normal;
 display: block;
 margin-bottom: 0.5em;
 font-size: 0.88em;
}
#main .categiry_list p{
 margin: 0.5em 0 0 0;
 font-weight: bold;
}
.sec_sub_area{
 margin-bottom: 65px;
}
#main .news_list_area{
}
#main .news_list_area a{
 padding: 1em 0;
 display: block;
 text-decoration: none;
 border-bottom: 2px dotted #ccc;
}
#main .news_list_area time{
 font-weight: normal;
 display: block;
 color: #003100;
}
#main .news_list_area p{
 margin: 0.5em 0 0 0;
 font-weight: bold;
 font-size: 1.125rem;
}
/* ===== news_detail ===== */
#main .news_page h1{
 font-size: 30px;
 margin-bottom: 1em;
 line-height: 1.5;
 padding-bottom: 20px;
 border-bottom: 1px dotted #ccc;
}
#main .news_page .date{
 margin: 0 0 1em 0;
 line-height: 1;
 font-size: 0.88rem; 
}
/* ===== flow ===== */
.txt_link{
 font-weight: bold;
 color: #003100
}
#main .step{
 list-style: none;
 max-width: 870px;
 width: 100%;
 margin: 70px auto;
}
#main .step li{
 margin: 0 0 10px 0;
 display: flex;
 justify-content: space-between;
}
#main .step i{
 display: block;
 width: 18%;
}
#main .step .txt_box{
 width: 78%;
}
#main .step h2{
 color: #003100;
 font-size: 1.5rem;
 line-height: 1;
 margin-bottom: 1em
}
#main .step .step_strong{
 color: #388238
}
#main .step p{
 line-height: 1.5;
 font-weight: bold;
}

/* ===== sec_company ===== */
#main .sec_company h3,
#main .sec_company_item h2{
 color: #003100;
}
/* ===== sec_company ===== */
#main .sec_company h2{
 font-size: 30px;
 line-height: 1.5;
 margin-bottom: 2em;
}
#main .sec_company_item h2,
#main .sec_company h3{
 font-size: 1.25rem;
 line-height: 1;
}
.sec_company_grp{
 display: flex;
 justify-content: space-between;
}
.sec_company_item{
 width: 48%
}
.address{
 display: flex;
 gap: 5%;
}
/* ===== sec_company_item ===== */
#main .sec_company_item table{
 width: 100%;
}
#main .sec_company_item th,
#main .sec_company_item td{
 padding:  5px 0;
}
#main .sec_company_item th{
 white-space: nowrap;
 padding-right: 5px;
}
.img_sign{
 width: 120px;
 margin-top: 5px;
}
/*============================================================
	Footer
============================================================*/
#page_footer{
	width: 100%;
	position: relative;
	text-align: center;
 padding: 20px 0 60px 0;
}
#page_footer p{
 margin-bottom: 1.5em;
 font-size: 0.88rem;
}
#page_footer a{
 text-decoration: none;
 font-weight: bold;
}
#page_footer a:hover,
#page_footer a:focus{
 color: #003100;
}
#page_footer small{
 display: block;
 font-size: 0.78rem;
}

#main .top_program_head.scrAni,
#main .top_head.scrAni{
 transition: 0.5s color;
 color: rgba(255,255,255,0)
}
#main .top_program_head.scrAniOn,
#main .top_head.scrAni.scrAniOn{
 color: #fff;
}

.sec_page_faq_item.scrAni,
.top_faq_head.scrAni,
.sec_program_item.scrAni,
.head_service.scrAni,
#main .txt_box.scrAni,
#main .sec_top_read h3{
 opacity: 0;
 transition: 1s opacity;
}
#main .txt_box.scrAni{ transition-delay: 0.5s}

.sec_page_faq_item.scrAniOn,
.top_faq_head.scrAniOn,
.sec_program_item.scrAniOn,
.head_service.scrAniOn,
#main .txt_box.scrAniOn,
#main .sec_top_read .scrAniOn{
 opacity: 1;
}
/*
.second_page #main h2,.second_page #main h3,.second_page #main h4,.second_page #main p,.second_page #main ul{
 opacity: 0;
 transition: 0.5s opacity;
}
.second_page  #main .scrAniOn{
 opacity: 1;
}
.second_page #main .frm_contact_area *{
 transform: none;
 opacity: 1; 
}*/
#main .top_program_head{
 transform: translateX(10%);
 transition: 0.5s !important;
 opacity: 0;
}
#main .top_program_head.scrAniOn{
 transform: translateX(0);
 opacity: 1;
}

#main{
 overflow: hidden;
}




.frm_contact_area{
 padding: 35px 20px;
 background: #fafafa;
 margin-top: 40px;
}
.frm_contact_area .grp{
 display: flex;
 justify-content: space-between
}
#main .frm_contact_area h3{
 font-size: 1rem;
 margin: 0 0 0.5em 0
}
.frm_grp{
 width: 48%;
}
select{
 height: 3em;
}
.inp_text{
 display: block;
 border: 1px solid #ccc;
 background: #fff;
 padding: 8px !important;
 width: 100%;
}
.inp_text_s{
 display: inline-block;
 border: 1px solid #ccc;
 background: #fff;
 padding: 8px !important;
 width: 5em;
 margin-right: 10px; 
}
.req{
 display: inline-block;
 padding: 5px;
 background: #f78e41;
 color: #fff;
 line-height: 1;
 font-size: 10px;
 margin-right: 5px;
}
.wpcf7-radio{
}
.wpcf7-list-item{
 margin: 0 1em 0 0 !important
}
.wpcf7-list-item label{
 display: block;
 padding: 5px 0;
}
.wpcf7-acceptance label{
 display: block;
 padding: 10px;
 background: #eee;
 text-align: center;
 margin-top: 40px;
 font-weight: bold;
}
.wpcf7-acceptance .wpcf7-list-item{ width: 100%; margin: 0}
.btn_submit,
.btn_prev{
 display: inline-block;
 padding:  15px 10px;
 text-align: center;
 background: #003100;
 color: #fff;
 font-size: 1.125rem;
 font-weight: bold;
 border-radius: 40px;
 line-height: 1;
 max-width: 260px;
 width: 100%;
 border: 0;
 margin: 0 10px;
}
.btn_prev{
 background: #999;
}

.btn_submit[disabled],
.btn_prev[disabled]{
 opacity: 0.25;
}
#main .frm_grp p+p{
 margin-top: -0.75em;
}
.second_page #main .frm_contact_area .btn_submit[disabled],
.second_page #main .frm_contact_area .btn_prev[disabled]{
 opacity: 0.25;
}


/*lb*/
/* ライトボックス全体（初期状態は非表示） */
.lightbox {
    /* 常に画面全体を覆い、最前面に表示 */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1000;
    
    /* 初期状態は非表示 */
    opacity: 0;
    visibility: hidden;
    transition: opacity 0s, visibility 0s;
    
    /* 画像を中央に配置するためのFlexbox */
    display: flex;
    justify-content: center;
    align-items: center;
}

/* ライトボックス表示時 */
.lightbox.is-open {
    opacity: 1;
    visibility: visible;
}

/* 暗い背景部分 */
.lightbox-backdrop {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255,255,255, 0.8); /* 暗い半透明の黒 */
}

/* 画像コンテナ */
.lightbox-content {
    position: relative;
    max-width: 90%;
    max-height: 90vh; /* 画面の高さの90% */
    z-index: 1001; /* 背景より前面 */
}

/* ポップアップ画像（レスポンシブ対応） */
#lightbox-image {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 90vh;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
}

/* 閉じるボタン */
#lightbox-close-btn {
    position: absolute;
    top: -30px; /* 画像の外側上部に配置 */
    right: -30px;
    background: none;
    border: none;
    color: white;
    font-size: 30px;
    cursor: pointer;
    line-height: 1;
    padding: 5px 10px;
    z-index: 1002;
}

/* スマホ表示での調整 */
@media (max-width: 600px) {
    #lightbox-close-btn {
        top: 5px;
        right: 5px;
        color: #fff;
        background: rgba(0, 0, 0, 0.5);
        border-radius: 50%;
        width: 40px;
        height: 40px;
        font-size: 20px;
        display: flex;
        justify-content: center;
        align-items: center;
    }
}