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

/*------------変えない設定------------*/
.inner {
	width: 1040px;
	/*width: 65%;*/
	margin: 0 auto;
}
.flex {
    display: flex;
    justify-content: space-around;
}

/*------------header------------*/
header {
	width: 100%;
	background: #FFF;
}
header {
	padding-top: 10px;
}
header .flex {
	justify-content: space-between;
	align-items: center;
}
.logo {
	width: 45%;
	height: auto;
	margin:10px 0 20px 0;
}
.logo a img {
	width: 100%;
	height: auto;
	display: block;
}

.partner {
	width: 50%;
}
.partner li {
    width: 25%;
    height: auto;
}
.partner li a img {
    width: 100%;
}
.partner li:last-child {
	width: 45%;
}
.partner li a {
	display: block;
}
.partner li a:hover {
	opacity: 0.5;
}

.sp-header {
    width: 100%;
    background: #fff;
    border-bottom: 1px solid #ddd;
    padding: 0 15px;
}

/*------------mainimage------------*/

/* --- 親要素の設定（最重要） --- */
.mainimage_p {
    overflow: hidden;   /* 画像の max-height でトリミングした部分を隠す */
}

/* --- 画像の設定（現状維持） --- */
.mainimage_p img {
    width: 100%;
    object-position: right bottom;
	height: auto;
    /* 親要素が relative になったので、heightの調整は親に任せます */
}

/*-----title-----*/
.title {
	width: 35%;
    margin: 0 40px 0 0;
}
.read {
	width: 55%;
	line-height: 1.7;
	font-weight: bold;
}
.title img {
    width: 100%;
    height: auto;
}
.title_special {
    color: #231816;
    font-size: 1.8rem;
    border-bottom: 4px double #004099;
    text-align: center;
    letter-spacing: 1.8rem;
    padding: 0 0 10px 0;
    font-weight: bold;
    margin: 0 0 30px 0px;
    text-indent: 1.8rem;
}

/*------------mainicontents------------*/
main {
    margin-top: 50px;
}
h2 {
	font-size: 2rem;
    line-height: 1.2;
}
.section {
	margin-bottom: 40px;
}
.mini {
    font-size: 0.9rem;
	color: #454545;
}
.txt-r {
    text-align: right;
    font-weight: bold;
}

/*------------smoothscroll_content------------*/

h3 {
    font-weight: normal;
    font-size: 1.2rem;
    border-left: 10px solid #818181;
    padding: 3px 0 3px 15px;
    margin: 0 0 20px 0;
}
figure {
	width: 30%;
}
figure img {
    height: auto;
}
figcaption {
    text-align: center;
    line-height: 1.2rem;
    margin: 15px 0 0 0;
}
figcaption p {
	font-size: 0.9rem;
}
.smoothscroll_content h2,.p3 h3 {
    font-size: 1.3rem;
    font-weight: normal;
    padding: 0 0 10px 0;
    border-bottom: 1px solid #CCC;
    margin: 0 0 40px 0;
}
.s_title {
	font-size: 1rem;
}
.special {
	margin-bottom: 40px;
}
.special_read {
	margin-bottom: 50px;
}
.special_read h3 {
    border: none;
    color: #e60012;
    font-weight: bold;
	line-height: 1.7rem;
	padding: 0;
	margin-bottom: 30px;
}
.special_read p {
    line-height: 1.7rem;
    margin-bottom: 30px;
}


.section {
    margin-bottom: 50px;
}

.main_g {
    margin-bottom: 50px;
    justify-content: space-around;
}
.main_g figure img {
    margin: 0 auto;
    display: block;
}
.main_g .name {
    font-weight: bold;
    color: #000;
    margin: 0 0 10px 0;
    text-align: center;
}
/* --- Page Top ボタンの帯のスタイル --- */
.page-top-strip {
    width: 100%;
    background-color: #f2f9ff; /* 帯の背景色 */
    color: #013366;            /* 文字色を白に */
    text-align: center;
    padding: 15px 0;        
    font-size: 14px;
    font-weight: bold;
    cursor: pointer;        /* マウスカーソルをポインターに変える */
    transition: background-color 0.3s; 
    
    /* 矢印とテキストを横並びかつ中央に配置 */
    display: flex;
    justify-content: center;
    align-items: center;
}

/* ホバー時のスタイル（色を変えてクリックできることを示す） */
.page-top-strip:hover {
    background-color: #e0eefb; 
    opacity: 0.5;
}

/* --- 矢印アイコンのスタイル（CSSで三角形を生成） --- */
.page-top-arrow {
    display: inline-block;
    width: 0;
    height: 0;
    
    /* 1. border-widthで三角形のサイズを定義 */
    border-style: solid;
    border-width: 0 8px 8px 8px; /* 上辺: 0, 左右: 8px, 下辺: 8px */
    
    /* 2. 上向きの矢印の色（下側のborder）のみを指定 */
    border-color: transparent transparent #013366 transparent; 
    
    /* 矢印とテキストの間にスペースを空ける */
    margin-right: 8px;
    
    /* 矢印をテキストの中央に配置するための微調整 */
    transform: translateY(-2px); 
    transition: border-bottom-color 0.3s;
}

/* ホバー時の矢印の色変更 */
.page-top-strip:hover .page-top-arrow {
	transition: 0.3;
    opacity: 0.5;
}
.sub_title {
	height: auto;
    margin-bottom: 50px;
    width: 70%;
    margin: 0 auto 50px auto;
    display: block;
}
.sp {
	display: none;
}
footer {
    background: #013366;
    text-align: center;
    padding: 20px 0;
    color: #FFF;
	font-size: 0.8rem;
}

.name {
	font-weight: bold;
	color: #1253a4;
}

.special_read p , .read p,figcaption p {
  text-align: justify;                 /* 両端揃え */
  text-justify: inter-ideograph;       /* 和文用の均等割付 */
  hanging-punctuation: allow-end;      /* 、。！？ を外側にぶら下げて段落端を揃える */
  line-break: strict;                  /* 和文の改行規則を厳格に */
  font-feature-settings: "palt" 1, "kern" 1; /* 和文プロポーショナル＆カーニング */
  letter-spacing: 0.02em;              /* わずかに字間を空けて詰まり感を軽減 */
  -webkit-font-smoothing: antialiased; /* Mac系での描画をなめらかに（任意） */
}


@media screen and (max-width:1040px){
	.flex {
		display: inline-block;
	}
	h2 {
		font-size: 1.4rem;
	}
	header {
		padding: 10px 0;
	}
	header .sp_flex {
		display: flex;
		align-items: center;
	}
	figure {
		margin: 0;
	}
	main {
		margin-top: 30px;
	}
	figcaption p {
		font-size: 1rem;
		line-height: 1.4rem;
	}
	.main_g figure {
		margin-bottom: 40px;
	}
	.main_g figure:last-child {
		margin-bottom: 0;
	}
	.section,.special_read {
		margin-bottom: 35px;
	}
	.special_read p {
		margin-bottom: 15px;
	}
	.special_read h3 {
		margin-bottom: 20px;
	}
	.special_read .mini {
		line-height: 1.2rem;
	}
	.title_special {
		font-size: 1.5rem;
		letter-spacing: 1.5rem;
	}
    .title img {
        width: 95%;
        margin: 0 auto 20px auto;
        display: block;
    }
	.title,.read,figure {
		width: 100%;
	}
	.mini {
		font-size: 0.8rem;
	}
	.logo {
		width: 330px;
		margin: 0;
		padding: 3px 0 0 0;
	}
	.sub_title {
		margin-bottom: 45px;
		width: 100%;
	}
	.inner {
		width: auto;
		padding: 0 20px;
	}
	.sp {
		display: block;
	}
	.pc {
		display: none;
	}
	figure img {
		display: block;
		margin: 0 auto;
	}
}


