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


/* --- 下層ページ共通 --- */
body {overflow-x: hidden;}

/*　固定ロゴ(左上ロゴ) */
.fixed_header_subpage{position:fixed; top:20px; left:40px; width:180px; height:40px; z-index:10000;}
.fixed_header_subpage .logo{margin:0; width:100%; height:100;}
.fixed_header_subpage .logo img{display:block; width:100%; height:100%; object-fit:contain;}

.subpage{ min-height: 100vh; max-height: calc(100vh - (calc(40px + 2px + 20px + 40px) + calc(40px + 2px))) ; overflow:scroll;
/* スクロールバーを非表示 */
  /* IE, Edge 対応 */
  -ms-overflow-style: none;
  /* Firefox 対応 */
  scrollbar-width: none;}
/* Chrome, Safari, Microsoft Edge (Chromium版) 対応 */
.subpage::-webkit-scrollbar {
  display: none;
}
.section_subpage{height:calc(100vh - calc(102px + 40px)); margin:102px auto 40px; padding-bottom:calc(40px + 2px); padding-left:calc(40px + 2px); padding-right:calc(40px + 2px); overflow:scroll;
/* スクロールバーを非表示 */
  /* IE, Edge 対応 */
  -ms-overflow-style: none;
  /* Firefox 対応 */
  scrollbar-width: none;}
/* Chrome, Safari, Microsoft Edge (Chromium版) 対応 */
.section_subpage::-webkit-scrollbar {
  display: none;
}

/* パンくずリスト */
.breadcrumb{ font-size: 1.4rem; margin-bottom: 30px; color: #666;}
.breadcrumb a{ color: #666; text-decoration: none; font-size: 1.4rem;}
.breadcrumb a:hover{ text-decoration: underline;}
.breadcrumb span{ color: #333; font-weight: bold;}

/* footer */
.subpage footer{position:fixed; bottom:8px; text-align:center;}
/* -------------------- */



/* --- news記事詳細ページ --- */
.news_detail_top{margin:0 40px 40px;}
.news_detail_top .eyecatch_img{width:100%; max-width:600px; height:auto; margin:0 auto;}
.news_detail_top h2{font-size:3rem; margin-bottom: 15px; line-height: 1.4; text-align: left; font-style:normal;}
.news_detail_top .date{ font-size: 1.6rem; color: #666; margin-bottom: 40px; text-align: left;}
.news_content{margin:0 40px;} 
.news_content p{line-height:1.8;}
.news_content a{text-decoration: underline; text-decoration:underline #ddd dotted 2px; text-underline-offset:5px; transition: color 0.3s ease;}
.news_content a:hover{/* グラデーションテキストhover */
　-webkit-text-fill-color: transparent;  /*Safari対応 */
  color: transparent; 
  background: linear-gradient(to right, #4169E1, #5F9EA0); 
  -webkit-background-clip: text; /* Chrome, Safari対応 */
  background-clip: text; 
}
.back_to_news{margin-top: 60px; text-align: center;}
.back_to_news a{text-decoration: underline; text-decoration:underline #ddd dotted 2px; text-underline-offset:5px; transition: color 0.3s ease;}




/* --- news記事一覧ページ --- */
.news_list_header{margin:0 40px 40px; text-align:left;}
.news_list_header .page_title{font-size:4rem; margin-top:20px; margin-bottom:0; line-height:1.2; font-style:normal;}
.news_items_wrapper{display:flex; flex-wrap:wrap; gap:36px; margin:0 40px; align-items: flex-start;}
.news_item{width:calc(33.33% - 25px);background-color:#fff; text-decoration:none;display:flex;flex-direction:column;}
.news_item a{text-decoration:none; color:inherit; display:block;}
.news_item:hover{opacity:0.7;}
.news_item .news_thumb{width:100%; padding-bottom:60%; position:relative; overflow:hidden;}
.news_item .news_thumb img{position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; border:1px solid #f4f4f2;}
.news_item .news_info{padding:10px 0; flex-grow:1; display:flex; flex-direction:column; justify-content:space-between;}
.news_item .news_date{font-size:1.4rem; color:#666; margin-bottom:10px;}
.news_item .news_title{font-size:1.8rem; line-height:1.5; margin:0; color:#333; font-style:normal;}

/* ページネーション */
.pagination{display: flex; justify-content: center; margin-top: 40px; margin-bottom: 40px; font-family: 'Georgia', serif; font-size: 16px; line-height: 1; }
.screen-reader-text{position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0; }
.nav-links{display: flex; flex-wrap: wrap; gap: 15px; list-style: none; padding: 0; margin: 0; }
.page-numbers{display: block; padding: 10px 18px; min-width: 45px; text-align: center; text-decoration: none; background-color: transparent; transition: all 0.3s ease; }
.page-numbers:hover{background-color: #eee; }
.page-numbers.current{background-color: #f4f4f2; cursor: default; }
.page-numbers.current:hover{background-color: #e0e0e0; color: #333; border-color: #ccc; }
.page-numbers.dots{background-color: transparent; border: none; }


/* --- お問い合わせページ --- */
.contact_top{margin:0 40px 40px; text-align:left;}
.contact_top .title{font-size:3rem; margin-bottom:15px; line-height:1.2; font-style:normal; text-align:center;}
.contact_top .description{font-size:1.6rem; color:#666; margin-bottom:40px; text-align:left; line-height:1.8; text-align:center;}

/* (プラグインcontact_form7を使う時) */
.wpcf7{max-width:700px;margin:0 auto;padding:0 40px;}
form p{margin-bottom:30px; text-align:center;}
form p label{display:block; font-size:1.8rem; margin-bottom:10px; color:#333; font-weight:bold; text-align:left;}
form p label .required{color:#e04444; font-size:1.4rem; margin-left:8px;}
form p input[type="text"],
form p input[type="email"],
form p input[type="tel"],
form p textarea{width:100%; padding:15px; font-size:1.6rem; border:1px solid #ddd; border-radius:4px; box-sizing:border-box; color:#333; transition:border-color 0.3s ease;}
form p input[type="text"]:focus,
form p input[type="email"]:focus,
form p input[type="tel"]:focus,
form p textarea:focus{outline:none; border-color:#888;}
form p textarea{resize:vertical; min-height:150px;}
.wpcf7-submit{display:inline-block; padding:15px 40px; font-size:1.8rem; font-weight:bold; color:#fff; background-color:#333; border:none; border-radius:5px; cursor:pointer; transition:background-color 0.3s ease, color 0.3s ease; text-decoration:none;}


/* (プラグインcontact_form7を使わない時) */
/*.contact_form_wrapper{max-width:700px;margin:0 auto;padding:0 40px;}
.contact_form .form_group{margin-bottom:30px;}
.contact_form label{display:block; font-size:1.8rem; margin-bottom:10px; color:#333; font-weight:bold;}
.contact_form label .required{color:#e04444; font-size:1.4rem; margin-left:8px;}
.contact_form input[type="text"],
.contact_form input[type="email"],
.contact_form input[type="tel"],
.contact_form textarea{width:100%; padding:15px; font-size:1.6rem; border:1px solid #ddd; border-radius:4px; box-sizing:border-box; color:#333; transition:border-color 0.3s ease;}
.contact_form input[type="text"]:focus,
.contact_form input[type="email"]:focus,
.contact_form input[type="tel"]:focus,
.contact_form textarea:focus{outline:none; border-color:#888;}
.contact_form textarea{resize:vertical; min-height:150px;}

.submit_button_wrapper{text-align:center; margin-top:50px;}
.submit_button{display:inline-block; padding:15px 40px; font-size:1.8rem; font-weight:bold; color:#fff; background-color:#333; border:none; border-radius:5px; cursor:pointer; transition:background-color 0.3s ease, color 0.3s ease; text-decoration:none;}
*/

@media only screen and (max-width: 768px) {
/* --- 下層ページ共通 --- */
/*　固定ロゴ(左上ロゴ) */
.fixed_header_subpage{top:10px; left:20px; width:120px; height:30px;}
.subpage{max-height: calc(100dvh - (calc(20px + 2px + 20px + 40px) + calc(20px + 2px)));}
.section_subpage{height:calc(100vh - calc(82px + 20px)); margin:82px auto 20px; padding-bottom:calc(20px + 2px); padding-left:calc(20px + 2px); padding-right:calc(20px + 2px);}

.breadcrumb {margin-bottom: 20px;}
/* -------------------- */

/* --- news記事詳細ページ --- */
.news_detail_top h2{font-size:2rem; margin-bottom:10px;}
.news_detail_top .date{font-size: 1.4rem; margin-bottom: 20px;}
.news_content p,
.news_content a{font-size:1.6rem; line-height:1.6;}
.back_to_news{margin-top:40px;}

/* --- news記事一覧ページ --- */	
.news_list_header{margin:0 20px 30px;}
.news_list_header .page_title{font-size:3rem;}
.news_items_wrapper{gap:30px;margin:0 20px;}
.news_item{width:calc(50% - 15px);}
.news_item .news_info{padding:15px;}
.news_item .news_date{font-size:1.3rem;}
.news_item .news_title{font-size:1.8rem;}

/* --- お問い合わせページ --- */
.contact_top{margin:0 20px 30px;}
.contact_top .title{font-size:3rem;margin-bottom:10px;}
.contact_top .description{font-size:1.4rem;margin-bottom:20px; text-align:left;}

/* (プラグインcontact_form7を使う時) */
.wpcf7{padding:0 20px;}
form p label{font-size:1.6rem;margin-bottom:8px;}
form p label .required{font-size:1.2rem;}
form p input[type="text"],
form p input[type="email"],
form p input[type="tel"],
form p textarea{font-size:1.4rem;padding:12px;}
.wpcf7-submit{padding:12px 30px;font-size:1.6rem;}

/* (プラグインcontact_form7を使わない時) */
/*.contact_form_wrapper{padding:0 20px;}
.contact_form label{font-size:1.6rem;margin-bottom:8px;}
.contact_form label .required{font-size:1.2rem;}
.contact_form input[type="text"],
.contact_form input[type="email"],
.contact_form input[type="tel"],
.contact_form textarea{font-size:1.4rem;padding:12px;}
.submit_button{padding:12px 30px;font-size:1.6rem;}*/
}

@media only screen and (max-width: 480px) {
/* --- 下層ページ共通 --- */
.section_subpage{height:calc(100dvh - calc(52px + 20px)); margin:52px auto 20px;}
.breadcrumb {font-size: 1.2rem; margin-bottom:15px;}
.breadcrumb a {font-size: 1.2rem;} 
.subpage footer{bottom:11px;}
/* -------------------- */

/* --- news記事詳細ページ --- */
.news_detail_top{margin:0 10px 20px;}   
.news_detail_top .date{font-size:1.2rem;}
.news_content{margin:0 10px;} 
.news_content p,
.news_content a{font-size:1.5rem;}
.back_to_news a{font-size:1.5rem;}

/* --- news記事一覧ページ --- */
.news_list_header{margin:0 10px 20px;}
.news_list_header .page_title{font-size:2.5rem;}
.news_items_wrapper{gap:20px;margin:0 10px;}
.news_item{width:100%;}
.news_item .news_info{padding:4px 10px 10px;}
.news_item .news_date{font-size:1.2rem;}
.news_item .news_title{font-size:1.6rem;}

/* --- お問い合わせページ --- */
.contact_top{margin:0 10px 20px;}
.contact_top .title{font-size:2.5rem;}
.contact_top .description{font-size:1.3rem;margin-bottom:15px;}

/* (プラグインcontact_form7を使う時) */
.wpcf7{padding:0 10px;}
form p{margin-bottom:20px;}
form p label{font-size:1.5rem;margin-bottom:6px;}
form p input[type="text"],
form p input[type="email"],
form p input[type="tel"],
form p textarea{font-size:1.3rem;padding:10px;}
form p textarea{min-height:120px;}
.wpcf7-submit{padding:10px 25px;font-size:1.5rem;margin-top:30px;}

/* (プラグインcontact_form7を使わない時) */
/*.contact_form_wrapper{padding:0 10px;}
.contact_form .form_group{margin-bottom:20px;}
.contact_form label{font-size:1.5rem;margin-bottom:6px;}
.contact_form input[type="text"],
.contact_form input[type="email"],
.contact_form input[type="tel"],
.contact_form textarea{font-size:1.3rem;padding:10px;}
.contact_form textarea{min-height:120px;}
.submit_button_wrapper{margin-top:0px;}
.submit_button{padding:10px 25px;font-size:1.5rem;margin-top:30px;}*/

}
