@charset "utf-8";
/* System fonts for better performance and no external dependencies */

/* Prefer Century Gothic for ASCII (en) via local font with unicode-range */
@font-face {
  font-family: "CenturyGothicOverride";
  src: local("Century Gothic"), local("CenturyGothic");
  unicode-range: U+0000-00FF; /* Basic Latin + Latin-1 Supplement */
  font-display: swap;
}

/*=========================================

	汎用
	
=========================================*/

/* Slider default state (disabled) */
.home-slide.slider-disabled {
    display: none;
}

/* Slider enabled state */
.home-slide.slider-enabled {
    display: block;
}

html,body {
    margin: 0 0 40px 0;
    font-size: 12px;
    color: #333; /* near-black dark gray */
    line-height: 1.5em;
    /* System fonts for better performance and no external dependencies */
    font-family: "Hiragino Sans", "Yu Gothic UI", "Yu Gothic", YuGothic, Meiryo, "MS PGothic",
                 "CenturyGothicOverride", "Segoe UI", Arial, Helvetica, sans-serif;
}

body {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.allow-copy,
.allow-copy * {
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
    user-select: text;
}

input,
textarea,
select,
button,
label {
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
    user-select: text;
}

a {color: #cc0000;}
a:hover {color: #cc0000; text-decoration: none;}

a.linkover:hover img {
	opacity: 0.7;
	filter: alpha(opacity=70);
}

img {border:0;}

p,
ul,
li,
dl,
dt,
dd {
	margin: 0;
	padding: 0;
	font-weight:normal;
	list-style-type: none;
}

/* Global default paragraph style */
p {
	color: inherit;
	font-size: 1.2rem;
	line-height: 1.8;
	text-align: left;
}

/* Global default list item style (match paragraph defaults) */
#pageWrap li {
    color: inherit;
    font-size: 1.2rem;
    line-height: 1.8;
}

/* Reset legacy image-replacement on headings */

.txt_red {
	color: #c40840;
}

.fleft {
	float:left;
}

.fright {
	float:right;
}

.fclear {
	clear:both;
}

.fcenter {
margin:0 auto 0 auto;
}

.redtxtb {
	color: #c00000;
	font-weight: bold;
}
.redtxtn {
	color: #C00000;
}

.manon {
	margin: 0;
}

#pageWrap .pagetop {
	clear: both;
	text-align: right;
	padding: 40px 0 0 0;
	margin: 0;
}

#main .ptop_ma01 {
	padding:110px 0 0 0;
}

#main .ptop_ma02 {
	padding-top:185px;
}

/*----- list_top ------*/

#pageWrap .list_top {
	text-align: right;
	padding: 0 0 14px 0;
}

#pageWrap .list_top li  {
	background: url(../images/link_arr.gif) no-repeat 0px 0.2em;
	padding:0 0 0 9px;
	margin: 0 0 0 20px;
	float: right;
	line-height: 1em;
}

/*----- list_arr ------*/
#pageWrap .list_arr {
	padding:0 0 0 8px;
	margin: 0;
	background: url(../images/link_arr.gif) no-repeat 0px 0.4em;
	list-style: none;
}



/*　clearfix
---------------------*/

.clearfix {
  min-height: 1px;
}

* html .clearfix {
  height: 1px;
  /*\*//*/
  height: auto;
  overflow: hidden;
  /**/
}

.clearfix:after {
  content: ".";  /* 新しい要素を作る */
  display: block;  /* ブロックレベル要素に */
  clear: both;
  height: 0;
  visibility: hidden;
}
#top {
	padding: 17px 0 0 0;
}

/* パラメータ機能用：空要素を非表示 */
h1:empty, h2:empty, h3:empty, h4:empty, h5:empty, h6:empty,
p:empty, div:empty, span:empty {
    display: none;
}

/* パラメータ機能用：空のクラス付き要素も非表示 */
.gallery-description:empty,
.gallery-grid:empty {
    display: none;
}

/* セクション見出しスタイル（赤い■ + 大きいフォント + 下のライン） */
.section-heading {
    margin: 0 0 0.6em;
    font-size: 1.5em;
}

.section-heading .red-bullet {
    color: rgb(192, 0, 0);
}

.section-divider {
    border-bottom: 1px solid #ccc !important;
    margin-bottom: 1.2em !important;
    height: 1px !important;
    width: 100% !important;
    display: block !important;
    background-color: transparent !important;
    padding: 0 !important;
    margin-top: 0 !important;
}

/*=========================================

	共通（テンプレート）
	
=========================================*/

#pageWrap {
	height: auto;
	width: 1001px;
	margin: 0 auto 0 auto;
	border: 1px solid #c00000;
	border-top: 3px solid #c00000;
	border-bottom: 3px solid #c00000;
}

/*-------------------------------------

	ヘッダー
	
---------------------------------------*/

#pageWrap #header {
	margin:0 0 0 21px;
}

#pageWrap #header .site-logo {
	margin: 6px 0 0 -15px;
}

#pageWrap #header .langbt {
	text-align: right;
}

#pageWrap #header .nolang {
	margin:20px 0 0 0;
}

/*　GMENU グランドメニュー（HTML/CSS代替版）
-----------------------------*/

#pageWrap #header .gmenu {
	margin: 8px 0 0 0;
	width: 959px;
}

#pageWrap #header .gmenu ul {
	width: 959px;
	height: 38px;
	background: rgb(192, 0, 0); /* RGB(192,0,0) */
	display: flex;
	margin: 0;
	padding: 0;
	list-style: none;
	box-shadow: 0 0 0 1px rgb(192, 0, 0), 0 2px 4px rgba(0,0,0,0.1);
}

#pageWrap #header .gmenu li {
	flex: 1;
	height: 38px;
	position: relative;
	border-right: 1px solid rgba(255, 255, 255, 0.3); /* 極細の白い線 */
}

/* 日本語表示時に左上に三角形を表示 */
#pageWrap #header .gmenu li a:hover::before,
#pageWrap #header .gmenu li a:active::before,
#pageWrap #header .gmenu li a:focus::before,
#pageWrap #header .gmenu li a.active::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 0;
	height: 0;
	border-left: 8px solid white;
	border-bottom: 8px solid transparent;
	z-index: 2;
}

#pageWrap #header .gmenu li:last-child {
	border-right: none; /* 最後の項目は右側の線を削除 */
}

#pageWrap #header .gmenu li.access {
	flex: 0 0 159px; /* access項目は少し狭く */
}

#pageWrap #header .gmenu li a {
	width: 100%;
	height: 38px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	color: white;
	font-size: 14px;
	font-weight: bold;
	position: relative;
	overflow: hidden;
}

#pageWrap #header .gmenu li a:hover {
	background: rgb(192, 0, 0); /* ホバー時も同じRGB(192,0,0) */
	color: white;
	text-decoration: none;
}

/* クリック時の表示変更を防ぐ */
#pageWrap #header .gmenu li a:active {
	background: rgb(192, 0, 0); /* クリック時も同じRGB(192,0,0) */
	color: white;
	text-decoration: none;
}

/* gmenu英語テキストの表示（Century Gothic） */
#pageWrap #header .gmenu li a .menu-text-en {
	display: block;
	opacity: 1;
	transition: none;
	font-family: "Century Gothic", "CenturyGothic", AppleGothic, sans-serif !important;
	font-weight: normal !important;
}

/* gmenu日本語テキストの表示（ヒラギノ丸ゴシック） */
#pageWrap #header .gmenu li a .menu-text-ja {
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	opacity: 0;
	font-size: 14px;
	transition: none;
	font-family: "Hiragino Maru Gothic ProN", "ヒラギノ丸ゴ ProN W4", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", sans-serif !important;
	font-weight: normal !important;
}



/* ホバー時のテキスト切り替え */
#pageWrap #header .gmenu li a:hover .menu-text-en {
	opacity: 0;
}

#pageWrap #header .gmenu li a:hover .menu-text-ja {
	opacity: 1;
}


/* マウスダウン時に即座に日本語表示に固定（:hover解除前に固定） */
#pageWrap #header .gmenu li a:active .menu-text-en {
	opacity: 0 !important;
}

#pageWrap #header .gmenu li a:active .menu-text-ja {
	opacity: 1 !important;
}


/* ホバー状態が解除されても:active状態で日本語を維持 */
#pageWrap #header .gmenu li a:focus .menu-text-en {
	opacity: 0 !important;
}

#pageWrap #header .gmenu li a:focus .menu-text-ja {
	opacity: 1 !important;
}



/* アクティブ状態のスタイル */
#pageWrap #header .gmenu li a.active {
	background: rgb(192, 0, 0); /* アクティブ時も同じRGB(192,0,0) */
	color: white;
}

#pageWrap #header .gmenu li a.active .menu-text-en {
	opacity: 0;
}

#pageWrap #header .gmenu li a.active .menu-text-ja {
	opacity: 1;
}

/* 訪問済みリンクでも日本語表示を維持 */
#pageWrap #header .gmenu li a:visited .menu-text-en {
	opacity: 0 !important;
}

#pageWrap #header .gmenu li a:visited .menu-text-ja {
	opacity: 1 !important;
}

/* JavaScript制御用の強制日本語表示クラス */
#pageWrap #header .gmenu li a.force-japanese .menu-text-en {
	opacity: 0 !important;
	transition: none !important;
}

#pageWrap #header .gmenu li a.force-japanese .menu-text-ja {
	opacity: 1 !important;
	transition: none !important;
}



/*------------------------------------*/

.home-images {
	width: 959px !important; /* gmenuと同じ幅に固定 */
	display: flex !important;
	gap: 20px !important;
	margin: 0 auto !important; /* 上下マージンを0に、中央揃え */
	background-color: transparent;
	padding: 0; /* パディングを削除して画像の端を合わせる */
}

.home-images .home-image-card {
	flex: 1 1 calc((100% - 20px) / 2);
	max-width: calc((100% - 20px) / 2);
	height: 300px;
	border: none;
	box-sizing: border-box;
	overflow: hidden;
}

.home-images .home-image-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border: none;
}

/* Global page title band under header/gmenu */
.pagetitle {
    width: 959px; /* align with gmenu width */
    height: 36px; /* matches title_main image height */
    margin: 20px auto 0 auto; /* centered block, left-aligned background */
    background-repeat: no-repeat;
    background-position: left top;
}

div#header .topic_path {
	font-family: Verdana, "ＭＳ Ｐゴシック", Osaka;
	width: 959px;
	margin: 11px 0 0 2px;
	padding: 0;
	line-height: 1em;
	font-size: 10px;
}

/*-------------------------------------

	コンテナ
	
---------------------------------------*/

#pageWrap #container {
    width: 959px;
    margin: 0 auto 0 auto;
    clear: both;
    border-top: 2px solid #C00000;
    border-bottom: 1px solid #C00000;
    display: flex;            /* equal-height columns */
    align-items: stretch;     /* stretch children to same height */
}

#container #subMenu {
    width: 192px;
    float: none;              /* flex item */
}

#container #main {
    flex: 1 1 auto;           /* take remaining width */
    float: none;              /* flex item */
    background-image: url(../images/main_bg.gif);
    background-repeat: repeat-y;
    background-position: left;
    padding-bottom: 25px;
}

#container #subMenu ul {
	width: 192px;
	height: auto;
}

#container #subMenu li{
	float:left;
	list-style-type: none;
}

/* Remove fixed height and background from h2 to show text by default */


#container #main .mainWrap {
    width: 697px;
    margin: 0 0 0 50px;
}

/* Global spacing: ensure ~3 lines below section-title images */
#container #main .section-title + .mainWrap { margin-top: 3em; }





/*-------------------------------------

	フッター
	
---------------------------------------*/

#pageWrap #footer {
	height: auto;
	clear: both;
	padding: 19px 21px;
}

#footer .footerLink {
	width: 370px;
	float: left;
}

#footer .copyright {
	float: none;
	width: auto;
	text-align: center;
	font-size: 12px;
	color: #949494;
	line-height: 1.4;
}

/* New footer block styles (for injected markup) */
#footer .footer-inner { width: 959px; margin: 0 auto; text-align: center; }
#footer .footer-menu { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6em 1.4em; padding: 0; margin: 0 0 10px; list-style: none; }
#footer .footer-menu li { display: inline-flex; }
#footer .footer-menu li.break { flex-basis: 100%; height: 0; padding: 0; margin: 0; }
#footer .footer-menu a, #footer .footer-menu span { color: #565749; text-decoration: none; font-size: 12px; }
#footer .footer-note { margin: 4px 0 0; font-size: 12px; color: #565749; text-align: center; }

/*　フッターメニュー
-----------------------------*/

div#footer .footerLink ul {
	width: 370px;
	height: 13px;
}

div#footer .footerLink li{
	float:left;
	height: 13px;
	list-style-type: none;
}

div#footer .footerLink li a{
	height: 13px;
	display: block;
	text-indent: -9999px;
	overflow: hidden;
	background-image: url(../images/footer_link.gif);
	background-repeat: no-repeat;
}

div#footer .footerLink li.fcontact {
	width: 77px;
}

div#footer .footerLink li.fcontact a{
	width: 77px;
	background-position: 0 0;
}

div#footer .footerLink li.fcontact a:hover{
	width: 77px;
	background-position: 0 -17px;
}

div#footer .footerLink li.faccess {
	width: 63px;
}

div#footer .footerLink li.faccess a{
	width: 63px;
	background-position: -77px 0;
}

div#footer .footerLink li.faccess a:hover{
	width: 63px;
	background-position: -77px -17px;
}

div#footer .footerLink li.fmap {
	width: 71px;
}

div#footer .footerLink li.fmap a{
	width: 71px;
	background-position: -140px 0;
}

div#footer .footerLink li.fmap a:hover{
	width: 71px;
	background-position: -140px -17px;
}

div#footer .footerLink li.fpolicy {
	width: 115px;
}

div#footer .footerLink li.fpolicy a{
	width: 115px;
	background-position: -211px 0;
}

div#footer .footerLink li.fpolicy a:hover{
	width: 115px;
	background-position: -211px -17px;
}

div#footer .footerLink li.flink {
	width: 44px;
}

div#footer .footerLink li.flink a{
	width: 44px;
	background-position: -326px 0;
}

div#footer .footerLink li.flink a:hover{
	width: 44px;
	background-position: -326px -17px;
}

/* Notice section styles */
.notice-content {
	margin-top: 3em; /* 3行分の上マージン */
}

.notice-section {
	margin-bottom: 2em; /* 2行分の下マージン */
}

.notice-section h2 {
	margin-bottom: 0.5em;
	color: #333;
	font-size: 1.2em;
	font-weight: bold;
}

.notice-section p {
	margin-bottom: 1em;
	line-height: 1.6;
}

.notice-section ul {
	margin-bottom: 1em;
	padding-left: 1.5em;
}

.notice-section li {
	margin-bottom: 0.5em;
}

.notice-date {
	color: #666;
	font-size: 0.9em;
	font-weight: bold;
	margin-bottom: 1em;
}

.notice-footer {
	margin-top: 3em;
	padding-top: 1em;
}

.last-updated {
	color: #666;
	font-size: 0.9em;
	margin-bottom: 0.5em;
}
