﻿@charset "utf-8";
/*-----------------------------------------------------------------
		基礎設計
-----------------------------------------------------------------*/
* {
	margin: 0px;
	padding: 0px;
	font-size:17px;
	color: #000;
	line-height: 160%;
	font-family: Osaka, "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td {
	margin: 0;
	padding: 0;
}
address, caption, cite, code, dfn, em, strong, th, var {
	font-style: normal;
}
 @media screen and (-webkit-min-device-pixel-ratio:0) {
 body {
 font-family: Osaka, "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
}
/* 画像スタイル */
img {
	border: 0;
}
img.i-window {
	vertical-align: middle;
	margin-left: 5px;
}
/*-----------------------------------------------------------------
		調整用
-----------------------------------------------------------------*/

.v-hidden {
	visibility: hidden;
}
/* 整列系 */
.ta-center {
	text-align: center !important;
}
.ta-right {
	text-align: right;
}
.ta-left {
	text-align: left;
}
.va-middle {
	vertical-align: middle;
}
.va-middle img {
	vertical-align: middle;
}
.f-left {
	float: left;
}
.f-right {
	float: right;
}
/* クリア */
.clearfix:after {
	content: ".";
	display: block;
	height: 0;
	clear: both;
	visibility: hidden;
	font-size: 1px;
}
.clearfix {
	display: inline-table;
}
/* Hides from IE-mac \*/
* html .clearfix {
	height: 1%;
}
.clearfix {
	display: block;
}
/* End hide from IE-mac */

*:first-child+html .clearfix { /* IE7用 */
	width: 100%;
}
.clear {
	padding: 0px;
	margin: 0px;
	clear: both;
}
/* フォント関連 */

p.cap {
	font-size:15px;
	text-align: center;
	margin-bottom: 5px;
	;
	margin-top: 10px;
}
p.triangle {
	background:url(../img/icon_triangle.png) 0 2px no-repeat;
	padding: 0 0 0 18px;
}
.ft-bd {
	font-weight: bold;
}
.font-normal {
	font-weight: normal;
}
.fs100 {
	font-size: 100% !important;
}
.large-l {
	font-size: 130%;
}
.large-m {
	font-size: 120%;
}
.large-s {
	font-size: 110%;
}
.middle-l {
	font-size: 95%;
}
.middle-m {
	font-size: 87%;
}
.middle-s {
	font-size: 67%;
}
.fc-blue {
	color:#125687;
}
.fc-green {
	color:#01a982;
}
.fc-orange {
	color:#FF9900;
}
.fc-pink {
	color:#E7336E;
}
.fc-red {
	color:#990000;
	font-weight: bold;
}
.fc-gray {
	color:#445565;
}
.bg-lightgray {
	background-color:#dbdbdb;
}
.line-red {
	border-left: 7px solid #900;
	padding-left: 10px;
}
.va-middle, .va-middle img {
	vertical-align: middle !important;
}
img.ex-link {
	vertical-align: middle;
	margin: 0 5px;
}
/* 1文字字下げ */
.txt-ind1 {
	padding-left: 1em;
	text-indent: -1em;
}
.txt-ind15 {
	padding-left: 1.5em;
	text-indent: -1.5em;
}
.txt-ind2 {
	padding-left: 2em;
	text-indent: -2em;
}
/* マージン調整 */
.spct3 {
	margin-top:3px !important;
}
.spct5 {
	margin-top:5px !important;
}
.spct8 {
	margin-top:8px !important;
}
.spct10 {
	margin-top:10px !important;
}
.spct15 {
	margin-top:15px !important;
}
.spct20 {
	margin-top:20px !important;
}
.spct25 {
	margin-top:25px !important;
}
.spct30 {
	margin-top:30px !important;
}
.spct40 {
	margin-top: 40px !important;
}
.spct50 {
	margin-top: 50px !important;
}
.spct60 {
	margin-top: 60px !important;
}
.spct100 {
	margin-top: 100px !important;
}
.spcb0 {
	margin-bottom: 0px !important;
}
.spcb3 {
	margin-bottom: 3px !important;
}
.spcb5 {
	margin-bottom: 5px !important;
}
.spcb10 {
	margin-bottom: 10px !important;
}
.spcb15 {
	margin-bottom: 15px !important;
}
.spcb20 {
	margin-bottom: 20px !important;
}
.spcb25 {
	margin-bottom: 25px !important;
}
.spcb30 {
	margin-bottom: 30px !important;
}
.spcb40 {
	margin-bottom: 40px !important;
}
.spcb50 {
	margin-bottom: 50px !important;
}
.spcb60 {
	margin-bottom: 60px !important;
}
.spcl6 {
	margin-left: 6px !important;
}
.spcl0 {
	margin-left: 0px !important;
}
.spcl5 {
	margin-left: 5px !important;
}
.spcl10 {
	margin-left: 10px !important;
}
.spcl15 {
	margin-left: 15px !important;
}
.spcl20 {
	margin-left: 20px !important;
}
.spcl25 {
	margin-left: 25px !important;
}
.spcl30 {
	margin-left: 30px !important;
}
.spcl40 {
	margin-left: 40px !important;
}
.spcl50 {
	margin-left: 50px !important;
}
.spcl60 {
	margin-left: 60px !important;
}
.spcl70 {
	margin-left: 70px !important;
}
.spcl80 {
	margin-left: 80px !important;
}
.spcl100 {
	margin-left: 100px !important;
}
.spcl140 {
	margin-left: 140px !important;
}
.spcr0 {
	margin-right: 0px !important;
}
.spcr5 {
	margin-right: 5px !important;
}
.spcr10 {
	margin-right: 10px !important;
}
.spcr15 {
	margin-right: 15px !important;
}
.spcr20 {
	margin-right: 20px !important;
}
.spcr21 {
	margin-right: 21px !important;
}
.spcr25 {
	margin-right: 25px !important;
}
.spcr30 {
	margin-right: 30px !important;
}
.spcr35 {
	margin-right: 35px !important;
}
.spcr40 {
	margin-right: 40px !important;
}
.spcr50 {
	margin-right: 50px !important;
}
.spcr60 {
	margin-right: 60px !important;
}
.spcr100 {
	margin-right: 100px !important;
}
.spcr150 {
	margin-right: 150px !important;
}
.img-left {
	float: left;
	margin: 0 10px 10px 0;
}
.img-right {
	float: right;
	margin: 0 0 10px 10px;
}
.img-center {
	margin: 0 auto;
	text-align: center;
}
.center {
	width:960px;
	margin: 0 auto;
	text-align: center;
}
.base {
	vertical-align: baseline;
}
/* デフォルト */

ul, dl, dd, li {
	margin: 0px;
	padding: 0px;
	list-style: none;
	text-align: left;
}
ul.deci li {
	list-style-type: decimal;
	margin-left: 50px;
}
.division {
	height: auto;
	padding: 0;
	float: left;
	width:100%;
}
.division .inner {
	width: 960px;
	margin: 0 auto;
	padding: 30px 0;
}
.abstract {
	width:426px;
	float:left;
	display:block;
	min-height:200px;
	padding:20px 20px;
	border-radius: 5px;
	-webkit-border-radius: 5px;    /* Safari,Google Chrome用 */
	-moz-border-radius: 5px;
	letter-spacing: 0.5px;
	background:url(../img/bg_01.png) repeat;
	margin:0 0 20px 0;
}
.abstract ul.check {
	width:270px;
	float:left;
	margin-top:15px;
	margin-right: 8px;
}
.abstract ul.check li {
	font-size:15px;
	padding-left: 28px;
	background:url(../img/check_icon.png) no-repeat 4px 1px;
	margin-top:8px;
}
.abstract2base {
	width:920px;
	padding:20px;
	background:#002b62;
	-webkit-border-radius: 5px;    /* Safari,Google Chrome用 */
	-moz-border-radius: 5px;
	letter-spacing: 0.5px;
	float: left;
}
.abstract2inner {
	width:608px;
	display: block;
	margin: 0 auto;
	text-align:center;
	height: auto;
}
.abstract2 {
	width:253px;
	float:left;
	display:block;
	min-height:200px;
	padding:20px 20px;
	border-radius: 5px;
	-webkit-border-radius: 5px;    /* Safari,Google Chrome用 */
	-moz-border-radius: 5px;
	letter-spacing: 0.5px;
	background:url(../img/bg_01.png) repeat;
	margin:0;
}
.abstract2 ul.check {
	width:270px;
	float:left;
	margin-top:15px;
	margin-right: 8px;
}
.abstract2 ul.check li {
	font-size:15px;
	padding-left: 28px;
	background:url(../img/check_icon.png) no-repeat 4px 1px;
	margin-top:8px;
}
div.btn-more {
	margin-top:10px;
	height:40px;
	width:252px;
	display: block;
}
/*-----------------------------------------------------------------
		上へ戻る
-----------------------------------------------------------------*/
.page-top a img {
	width:90px;
	height:90px;
    position: fixed;
    bottom: 60px;
    right: 40px;
	z-index:2;
	display:block;
	text-indent:-3333px;
}
.page-top a:hover img {
	opacity:0.7;
	filter:alpha(opacity=70);
	-ms-filter: "alpha( opacity=70 )";
	z-index:2;
}
/* =========================================
   NOP notice 共通仕様（線なしが基本）
   ========================================= */

.nop-notice-wrap {
  background: #fff;
  text-align: center;
  padding: 8px 0;
}

.nop-notice {
  display: inline-block;
  padding: 0.5em 0.75em;
  border: 1px solid #FF0000;
  background: #FFEEEF;
  color: #FF0000;
  font-weight: 700;
}

.nop-notice a {
  color: #FF0000;
  text-decoration: none;
}

.nop-notice a:hover {
  text-decoration: underline;
}

/* =========================================
   表示制御（PC）
   ========================================= */
@media screen and (min-width: 960px) {

  /* デフォルトは非表示 */
  .nop-notice-wrap {
    display: none;
  }

  /* notice 表示ページ */
  body.has-notice .nop-notice-wrap {
    display: block;
    position: relative;
    z-index: 2;
  }

  /* TOPページだけ下線を出す */
  body.is-top .nop-notice-wrap {
    border-bottom: 1px solid #425563;
  }

  /* notice があるページは breadcrumb の余白を詰める */
  body.has-notice #breadcrumb {
    padding-top: 6px; /* 元50px → 調整 */
  }
}
/* =========================================
   TOPページ：メニューバー分の逃げを作る
   ========================================= */
@media screen and (min-width: 960px) {
  body.is-top #header {
    padding-bottom: 49px; /* メニュー48px + 下線1px */
  }
}
/* NOP notice 微調整 */
@media screen and (min-width: 960px) {
  body.is-top .nop-notice-wrap {
    padding: 2px 0;   /* ← 6px → 2px に変更 */
  }
}
/* =========================================
   NOP notice 文字色を最優先で赤にする
   ========================================= */
body.has-notice .nop-notice-wrap,
body.has-notice .nop-notice-wrap * {
  color: #FF0000 !important;
}

/* 下層ページでは wrapper の余白を戻す */
@media screen and (min-width: 960px) {
  body:not(.has-notice) #wrapper {
    padding-top: 0;
  }
}
/* =========================================
   has-notice ページ共通：メニュー＋notice分の逃げ
   ========================================= */
@media screen and (min-width: 960px) {
  body.has-notice #header {
    padding-bottom: 49px; /* メニュー48px + 下線1px */
  }
}
/* =========================================
   notice 表示ページでは breadcrumb の余白を消す
   ========================================= */
@media screen and (min-width: 960px) {
  body.has-notice #breadcrumb {
    padding-top: 0;
  }
}
/* =========================================
   notice 表示ページ用 breadcrumb 微調整
   ========================================= */
@media screen and (min-width: 960px) {
  body.has-notice #breadcrumb {
    padding-top: 10px;   /* ← 50px → 10px に縮める */
  }

  body.has-notice .nop-notice-wrap {
    padding: 4px 0;      /* ← notice 側も少し詰める */
  }
}
/* =========================================
   notice 表示ページ共通：fixed gnav 分の逃げ
   ========================================= */
@media screen and (min-width: 960px) {

  /* TOPページ：しっかり逃げ */
  body.is-top #header {
    padding-bottom: 49px; /* 48px + 線 */
  }

  /* 下層ページ：少なめに逃げ */
  body.has-notice:not(.is-top) #header {
    padding-bottom: 32px; /* ← ここがポイント */
  }

  /* 下層ページ：breadcrumb の余白を最小化 */
  body.has-notice:not(.is-top) #breadcrumb {
    padding-top: 8px;   /* 元50px → 8px */
  }
}
@media screen and (min-width: 960px) {
  body.has-notice .nop-notice-wrap {
    margin-top: 48px; /* ← gnav の高さ分 */
  }
}
/* =========================================
   notice 表示ページ：breadcrumb 余白を強制上書き
   ========================================= */
@media screen and (min-width: 960px) {
  body.has-notice #breadcrumb {
    padding-top: 6px !important;
    padding-bottom: 0 !important;
  }
}
/* =========================================
   notice 表示ページ：breadcrumb の実体を調整
   ========================================= */
@media screen and (min-width: 960px) {

  /* グレー帯の本体（section）の余白を詰める */
  body.has-notice #breadcrumb .section {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }
}
@media screen and (min-width: 960px) {
  body.has-notice .nop-notice-wrap {
    margin-top: 48px; /* fixed gnav の高さ分 */
  }
}
/* =========================================
   breadcrumb のテキストを縦中央に揃える
   ========================================= */
@media screen and (min-width: 960px) {
  body.has-notice #breadcrumb .section {
    display: flex;
    align-items: center;   /* ← 縦中央 */
  }

  body.has-notice #breadcrumb .section ul {
    margin: 0;             /* 余計なズレ防止 */
  }
}
/* =========================================
   breadcrumb テキストを強制的に縦中央揃え
   ========================================= */
@media screen and (min-width: 960px) {
  body.has-notice #breadcrumb .section {
    display: flex !important;      /* ← 強制 */
    align-items: center !important;/* ← 強制 */
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }

  body.has-notice #breadcrumb .section ul {
    margin: 0 !important;
  }
}
/* =========================================
   breadcrumb（グレー帯）最終調整
   ========================================= */
@media screen and (min-width: 960px) {

  /* 高さは section で管理（48px） */
  body.has-notice #breadcrumb .section {
    height: 48px !important;
    padding: 0 !important;
    display: block !important;
  }

  /* ul は横並び維持 */
  body.has-notice #breadcrumb .section ul {
    height: 48px;
    margin: 0;
    padding: 0;
  }

  /* li は float のまま・縦中央 */
  body.has-notice #breadcrumb .section li {
    float: left;                /* ← これが重要 */
    height: 48px;
    line-height: 48px;          /* ← 縦中央 */
    margin: 0;
    padding: 0 10px;            /* 文字間の余白 */
    white-space: nowrap;
  }

  body.has-notice #breadcrumb .section li a {
    display: inline;            /* block にしない */
    line-height: 48px;
  }
}