@charset "utf-8";

/*inview.cssの読み込み*/
@import url(inview.css);


/*全端末（PC・タブレット・スマホ）共通設定
------------------------------------------------------------------------------------------------------------------------------------------------------*/

/*全体の設定
---------------------------------------------------------------------------*/
body,html {width: 100%;height: 100%;}
body {
  background-image: url(../image/header.png); 
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  background-attachment: fixed;

	margin: 0px;
	padding: 0px 30px;
  box-sizing: border-box;
  overflow-x: hidden;
	color: #333333;	/*全体の文字色*/
	font-family: 'Noto Sans JP', sans-serif;/*フォント種類*/
	font-size: 12px;	/*文字サイズ*/
	line-height: 2;		/*行間*/
	-webkit-text-size-adjust: none;
}
h1,h2,h3,h4,h5,p,ul,ol,li,dl,dt,dd,form,figure,form,input {margin: 0px;padding: 0px;font-size: 100%;font-weight: normal;}
ul {list-style-type: none;}
img {border: none;max-width: 100%;height: auto;vertical-align: middle;}
table {border-collapse:collapse;font-size: 100%;border-spacing: 0;}
iframe {width: 100%;}

/* 480px以下の設定 */
@media screen and (max-width: 480px) {
  body {
    background-image: none !important;
    font-size: 11px;
    line-height: 1.5;
  }

  /* 背景を固定するための「壁」を擬似要素で作るぜ！ */
  body::before {
    content: "";
    position: fixed; /* これで画面に固定！ */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* スマホ用の画像を指定してね */
    background-image: url(../image/header_sp.png); 
    background-size: cover;
    background-position: center;
    z-index: -1; /* 一番背面に持っていくぜ */
  }
}

/*
@media screen and (max-width: 480px) {
  body {/*スマホの背景画像変更
    background-image: url(../image/header_sp.png);

  font-size: 11px;	
	line-height: 1.5;	
}}*/



/*リンク（全般）設定
---------------------------------------------------------------------------*/
a {
	color: #fff;		/*リンクテキストの色*/
	transition: 0.4s;	/*マウスオン時の移り変わるまでの時間設定。0.4秒。*/
}
a:hover {
	color: #666;			/*マウスオン時の文字色*/
	text-decoration: none;	/*マウスオン時に下線を消す設定。残したいならこの１行削除。*/
}

/* ★ページ内リンクで飛んだ時の着地位置を調整*/
#service {
  /* ヘッダーの高さ（80px）＋ 少し余裕（20px）を空ける設定 */
  scroll-margin-top: 100px; 
}

/*トップページのcontainerとcontentsとmain
---------------------------------------------------------------------------*/
.home #container,.home #contents,.home #main{
	height: 100%;
}

/*container。サイト全体を囲むブロック
---------------------------------------------------------------------------*/
#container {
	max-width: 1600px;	/*最大幅。これ以上幅が広くならないように。*/
	margin: 0 auto;
}

/*スマホの時のみ改行*/

.br-sp {
    display: none;
}

@media (max-width: 600px) {
    .br-sp {
        display: block;
    }
}


/*header
「top: -80px」の「80」の数字は、headerのheight(高さ)に合わせる。
---------------------------------------------------------------------------*/

/*headerブロック*/
header {
	position: fixed;	/*固定表示*/
	left: 0px;top: 0px;
	z-index: 2;
	width: 100%;		/*幅*/
	height: 80px;		/*高さ*/
  background: #fff;
  background-position: center bottom;
}
/*headerブロック（トップページへの追加設定）*/
.home header {
	animation-name: header;		/*上で設定しているキーフレーム（keyframes）の名前*/
	animation-delay: 5s;		/*アニメーションを遅れて開始させる。「s」は秒の事。*/
	animation-duration: 0.2s;	/*アニメーションの実行時間。「s」は秒の事。*/
	animation-fill-mode: both;	/*アニメーションの待機中は最初のフレームを、アニメーションの完了後は最後のフレームを維持する。*/
	animation-timing-function: ease-in-out;
	background: #fff;	/*背景色（古いブラウザ用）*/
	background: rgba(255,255,255,0.9);	/*背景色。0,0,0は黒の事で0.9は色が90%出た状態の事。*/
	box-shadow: none;
}
/*ロゴ画像*/
header #logo img {
	width:250px;	/*画像の幅*/
	margin: 5px 20px;
}



/*メインメニュー
---------------------------------------------------------------------------*/
/*メニューブロック*/
#menubar {
	overflow: hidden;clear: both;
	position: absolute;
	right: 3%;   
	left: auto;
	bottom: 10px;	/*ヘッダーブロックに対して下から10pxの場所に配置*/
}
/*メニュー１個あたりの設定*/
#menubar li {
	overflow: hidden;
	float: left;		/*左に回り込み*/
	text-align: right;	/*文字をセンタリング*/
	padding: 0px 20px;	/*上下、左右へのメニュー内の余白*/
}
#menubar li a {
	display:  block;text-decoration: none;
	padding-top: 3px;	/*下のブロックの「border-bottom」と「bottom」の数字と合わせる。*/
	color: #4d4d4d;	/*文字色*/
	font-size: 0.9rem;
}
/*下線のアニメーション設定*/
#menubar li::after {
	transition: 0.3s;	/*0.3秒かけてアニメーションを実行する。*/
	content: "";
	display: block;
	border-bottom: 3px solid #db4245;	/*下線の幅、線種、色。上のブロックの「padding-top」と、下の行の「bottom」の数字と合わせる。*/
	position: relative;left: 0px;bottom: -3px;	/*bottomの数字は上のブロックの「padding-top」と、上の行の「border-bottom」の数字と合わせる。※マイナス記号は残したまま。*/
}
/*マウスオン時、現在表示中(current)、共通設定*/
#menubar li:hover::after,#menubar li.current::after {
	bottom: 0px;
}
/*スマホ用メニューを表示させない*/
#menubar-s {display: none;}
/*３本バーアイコンを表示させない*/
#menubar_hdr {display: none;}

/*contentsブロック。mainとsubを囲むブロック。
---------------------------------------------------------------------------
#contents {
	padding: 100px 3%;	/*上下、左右へのコンテンツ内の余白
}*/


/* --- 本文が画像に被らないように調整 --- */
.c1 #contents {
  background-image: url(../image/background.png);
  padding: 100px 50px; 
  max-width: 1200px;
  margin: 0 auto;
  position: relative;

  overflow: visible !important;
  background-repeat: repeat;    /* 画像をタイル状に並べる（小さい画像ならこれが自然！） */
  background-position: center;   /* 中心を基準にする */
  background-origin: content-box;
}

@media screen and (max-width: 768px) {
  .c1 #contents {
  margin: 0 0px;
  padding: 100px 20px;
}}


/* --- 【重要】トップページ（.home）では左右の余白をリセットするぜ --- */
.home #contents {
  padding: 0; /* トップページは全面で見せたいから余白なしだぜ！ */
}

/*トップページのcontentsへの追加指定。余白をリセット。*/
.home #contents {
	padding: 0;
}

/*mainブロック
---------------------------------------------------------------------------*/
/*mainブロック*/
#main {
	overflow: hidden;
	width: 75%;		/*幅*/
	float: right;	/*右に回り込み*/
}
/*トップページのmainブロックの指定*/
.home #main {
	width: 100%;
	float: none;
	background-image: url(../image/header.png);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
	height: 100vh;
	min-height: 100vh;  /*画面いっぱいの高さ */
	overflow: hidden; 
}

/*スマホでのヘッダー画像切り替え*/
@media (max-width: 600px) {
.home #main {
	background-image: url(../image/header_sp.png);
}
}



/* ===== FOOTER ===== */
footer {
  background-color: #0d1b2a;
  color: #fff;
  text-align: center;
  padding: 10px 0;
  font-size: 0.9rem;
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 10;
}


/*キャッチコピー部分*/


.hero-content {
  position: absolute;
  top: 40%;
  left: 5%;
  transform: translate(-50%, -50%);
  text-align: left;
  color: #fff;
  z-index: 1;
    opacity: 0;
  transform: translateY(20px);
  animation: fadeIn 2s ease 0.3s forwards;
}

@keyframes fadeIn {
  to {
    opacity: 1;
    transform: none;
  }
}


.hero-content h2 {
	font-family: 'Noto Sans JP', sans-serif;
	color: #f9f9f7;
	font-size: 2.4rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	margin-bottom: 12px;
	text-shadow: 0 3px 15px rgba(0,0,0,0.25);
	position: relative;
}


.hero-content p {/*英語*/
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 1.3rem;
	letter-spacing: 0.2em;
	color: rgba(255, 255, 255, 0.9);
	text-transform: none;
	opacity: 0.85;
	text-shadow: 0 2px 10px rgba(0,0,0,0.4);
}

/* 背景画像の上に少し暗いレイヤーをかけたいとき 
.home #main::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.3);
  pointer-events: none;
}
*/


/*h2タイトル装飾(TOP以外)-------------------------*/

.heading-1 {
  position: relative;
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  padding: .4em .8em; /* 左右にずらさないようにpaddingは控えめだぜ */
  border-left: 8px solid #db4245;
  background: #f7f7f7;
  color: #222;
  margin: 0; /* 隙間はwrapで管理するから0にするぜ */
}

.greeting-title {
	margin-top: 1.5rem;
  margin-bottom: 1.5em;
  font-size: 1rem;
  color: #333;
}

.greeting-title .role {
  margin-right: 1em;
  font-weight: 400;
  font-family: 'Noto Sans JP', sans-serif;/*フォント種類*/
}

/* --- 見出しを囲む親要素 --- */
.heading-wrap {
  position: relative; /* ラベルを配置する時の「基準」になるぜ */
  margin-bottom: 20px; /* 下との隙間 */
  width: 100%;
}

/* --- 縦向きの飾り文字（aboutなど） --- */
.side-label {
  position: absolute;
  
  /*位置調整*/
  left: -15px; 
  
  /* 基準を「左端」にして、その場でクルッと回すぜ */
  transform-origin: left center;
  transform: translateY(-50%) rotate(90deg);

  text-transform: initial; /*小文字*/

  /* 見た目の設定 */
  font-size: 1.5rem;
  font-weight: bold;
  color: #db4245; /* 赤い棒と同じ色 */
  white-space: nowrap;
}


/* --- スマホ・タブレット（900px以下）での表示切り替え --- */
@media screen and (max-width: 900px) {
  
  /* ★ここ！縦向きのラベルをスマホでは非表示 */
  .side-label {
    display: none !important; 
  }}


  /* --- 代表挨拶エリア全体の箱 --- */
.greeting-container {
display: flex;           /* ★横並びにするぜ！ */
  flex-wrap: wrap;         /* スマホでは縦に落ちるように設定 */
  align-items: flex-end;   /* 下揃えにして、画像とサインの高さを合わせる */
  gap: 20px;               /* 文字と画像の間の隙間 */
  margin-top: 2rem;
  padding-bottom: 20px;
}

/* 文字部分を左側に寄せるための調整 */
.greeting-container .greeting-text-group {
  flex: 1;                 /* 余ったスペースを全部使う */
  min-width: 300px;        /* 狭くなりすぎないように */
}

/* --- 右下に配置する画像の設定 --- */
.greeting-sub-image {
  width: 400px;            /* 画像の大きさ */
  height: auto;
  opacity: 0.8;
  pointer-events: none;
  flex-shrink: 0;          /* 画像が横から押されて潰れないように固定 */
}

.service-sub-image {
  width: 400px;            /* 画像の大きさ */
  height: auto;
  margin-top: 10px;
  opacity: 0.8;
  pointer-events: none;
  flex-shrink: 0;          /* 画像が横から押されて潰れないように固定 */
}


/* --- お名前部分 --- */
.greeting-signature {
  margin-top: 2rem;
  font-size: 1.1rem;
  font-weight: bold;
}



/* スマホ用の調整 */
@media screen and (max-width: 600px) {
  /* --- 沿革と代表挨拶の画像・ノイズを非表示にする --- */
  .history-sub-image,
  .greeting-sub-image,
  .history-area::after,
  .greeting-container::after {
    display: none !important; /* ★これでスマホの時だけ存在を消せる！ */
  }

  /* 画像がなくなった分、余白を少し詰めてスッキリさせるぜ */
  .history-area {
    padding-top: 10px; /* PCで空けてた隙間をリセット */
  }

  .greeting-container {
    padding-bottom: 20px; /* 画像用の下の余白をリセット */
  }
}


/* 2. 【代表挨拶】のザラザラ位置（右下） */
.greeting-container::after {
  bottom: 0;
  width: 400px; /* PCサイズ */
  height: 300px; /* 16:9 くらいに調整 */
    content: "";
  position: absolute;
  
right: 0;
z-index: 0;
pointer-events: none;
}

/* 3. 【沿革】のザラザラ位置（右上） */
.history-area::after {

  width: 300px; /* PCサイズ */  
  height: 300px;
    content: "";
  position: absolute;
  
right: 0;           
top: 0;
z-index: 0;
pointer-events: none;
}


/*h3タイトル装飾(TOP以外)-------------------------*/

.heading-3 {
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  margin-top: 50px;
  margin-bottom: 30px;
  padding: .4em .8em;
  background: #f7f7f7;
  color: #222;
}

/*h2小見出し*/

.heading-2 {
  font-size: 1.2rem;
  font-weight: 600;
  padding-left: 0.5em;
  border-left: 4px solid #db4245; /* h2より細く */
  color: #333;
  margin: 1.5em 0 1em;
}

/*沿革部分*/

/* 年 + 内容 を横並びにする */
.history-item {
  display: flex;
  gap: 25px;
  margin-bottom: 18px;
}

.history-area{
display: flex;           /* ★横並びにする */
  flex-wrap: wrap;         /* スマホでは縦に落ちるように */
  align-items: flex-start; /* 上揃え */
  gap: 20px;               /* 文字と画像の隙間 */
  position: relative;
  padding-top: 10px;
  font-size: 1rem;
}

/* 文字リストを左側に寄せる */
.history-list-group {
  flex: 1;                 /* 余ったスペースを全部使う */
  min-width: 300px;
}

/* --- 右上の画像設定（浮かさずに並べる！） --- */
.history-sub-image {
  width: 350px;            /* 画像のサイズ */
  height: auto;
  opacity: 0.8;
  flex-shrink: 0;          /* 画像が潰れないように固定 */
}

/* 年の部分 */
.history-year {
  flex-shrink: 0;
  width: 120px;
  font-weight: bold;
  color: #1a3f5f; /* ネイビー */
}

/* テキスト部分 */
.history-text {
  line-height: 1.8;
}


/* スマホは縦並びにする */
@media screen and (max-width: 768px) {
    /* 会社概要の項目を縦並びに強制変更！ */
    .profile-details .info-item {
        display: block; /* flexを解除する */
        padding: 10px 0;
    }

    /* 「名称」などのラベルを左寄せ＆「：」を消す */
    .profile-details .label {
        display: block;
        width: 100%;
        margin-bottom: 5px;
        position: relative; /* 「：」を消すための準備 */
    }

    /* テキスト部分 */
.history-text {
  font-size: 0.8rem;
}

.history-area{
	margin-top: 1.5rem;
  font-size: 0.8rem;
}

    .profile-details .label::after {
        content: none;
    }

    .profile-details .content {
        display: block;
        padding-left: 0;
        margin-top: 2px;
    }

    .greeting-title { 
	margin-top: 0.9rem;
  margin-bottom: 0.9em;
  font-size: 0.9rem;
}

    /* ★追加：概要と沿革の項目をスマホで縦並びにする設定 */
  .history-item {
    flex-direction: column; /* 横並びから縦並びに変更！ */
    gap: 5px;               /* 項目名と内容の間の隙間を調整 */
    margin-bottom: 20px;    /* 項目同士の隙間をしっかり空ける */
  }

  .history-year {
    width: 100% !important; /* 横幅を画面いっぱいに */
    font-weight: bold;
    border-bottom: 1px solid #eee; /* 項目名の下に軽く線を引くと見やすいぜ */
    padding-bottom: 3px;
  }


  .history-sub-image {
    width: 120px;     /* スマホは画像少し小さく*/
    top: auto;          /* ★PCでの「上端（0）」を解除 */
    bottom: -30px;
  }
}


/* --- 会社概要（Outline）専用の新設定！ --- */
.profile-area {
  display: block; /* 項目を縦に並べるぜ */
  width: 100%;
  margin-top: 20px;
    font-size: 1rem;
}


/*概要ページ----------------------------*/

/* リンクの通常時の設定（マウスを乗せていない時） */
.history-item .content-URL a {
    color: #0066cc; /* はっきりした青色にする！ */
    text-decoration: underline; /* リンクだとすぐわかるように下線を引く */
    opacity: 1 !important; /* 絶対に透けないようにする魔法だ */
}

/* マウスを乗せた時の設定（少し色を変えて反応させる） */
.history-item .content-URL a:hover {
    color: #ff3300; /* 乗せた時は赤っぽくして「押せるよ！」って教える */
    text-decoration: none; /* 下線を消して動きを出す */
}


.content {
    flex: 1;
    line-height: 1.6;
}

/* 電話番号・FAX番号の自動リンクやaタグの色を黒（#333）に固定する */
.contact-box .content a,
.contact-box .content {
    color: #333333 !important;
    text-decoration: none;
}


/* スマホで電話番号をタップ可能にする場合に備えて */
@media screen and (max-width: 768px) {
    .contact-box .content a {
        color: #333333;
        /* タップできることがわかるようにしたい場合は、ここに下線などを入れる */
    }
}

/* 電話番号リンク（.contact-link-tel）の文字色を強制的に指定 */
a.contact-link-tel {
    color: #333333 !important; /* 文字を黒にする */
    text-decoration: none;      /* 下線を消す */
}

/* マウスを乗せた時に少し反応させたい場合（任意） */
a.contact-link-tel:hover {
    opacity: 0.7;
    text-decoration: underline;
}


/* 地図のエリア */
.company-map {
    margin-bottom: 30px;
    flex: 0 0 450px;
    display: flex;         /* 中身を自由に配置できるようにする */
    justify-content: center; /* これで地図が真ん中にくる！ */
}

.company-map iframe {
    width: 450px; 
    height: 450px; 
    
    max-width: 100%;     
    border-radius: 15px;  /* 正方形なら、角を少し強めに丸くしてもオシャレじゃん！ */
    box-shadow: 0 4px 15px rgba(0,0,0,0.1); /* 影も少しだけリッチにしてみたぜ */
    border: none;         /* 枠線は消しちゃおう */
}

/* スマホの時は少し高さを抑えると、スクロールしやすくて親切だぜ！ */
@media screen and (max-width: 768px) {

  .outline-flex-container {
        flex-direction: column; /* 縦に並べる */
    }
  .company-map {
        flex: 1;    /* スマホでは横幅いっぱい使うぜ */
        width: 100%;
        margin-top: 20px;
    }

    .company-map iframe {
        width: 100%; /* スマホでは画面に合わせる */
        height: 300px;
    }
  }



/*自費出版(publication.html)---------------------------------*/

/* リストの設定 */
.info-item {
    display: flex;
    padding: 10px 0;
    border-bottom: 1px solid #eee; /* 項目ごとに薄い線を引く */
    line-height: 1;
}

/* 全体の横並び設定 */
.flex-container {
  display: flex;
  gap: 50px;
  align-items: flex-start;
}

/* 画像の幅 */
.book-image {
  flex: 0 0 350px; /*★と同じ数値に*/
}

.book-image img {
  width: 350px; /*★と同じ数値に*/
  height: auto;
}


/* ★ここが「：」を揃える重要ポイント！ */
.label {
  flex: 0 0 140px; /* ここで項目名の幅をガチッと固定！ */
  font-weight: bold;
  font-size: 1.0rem;
  display: flex;
  justify-content: space-between; /* 文字を広げて「：」を右端に寄せる */
}

/* ラベルの後に自動で「：」をつける */
.label::after {
  content: "：";
}

.content {
  flex: 1; /* 残りのスペースを全部使う */
  padding-left: 10px;
  font-size: 0.9rem;
}

/* リンクの文字を常に見えるようにする */
.contact-link {
  color: #0000EE; /* 一般的なリンクの青色（好きな色に変えてOK！） */
  text-decoration: underline; /* リンクだってわかりやすく下線を引く */
}

/* マウスを乗せた（ホバー）時の色も設定しておくと親切だぜ！ */
.contact-link:hover {
  color: #db4245; /* ホバーした時に赤くなる、とかね！ */
  text-decoration: none; /* ホバーで下線を消すとおしゃれじゃん？ */
}

/* 画面幅が768px以下（スマホ・タブレット）になった時の設定 */
@media screen and (max-width: 768px) {
  .flex-container {
    flex-direction: column; /* 横並びを解除して縦並びにする！ */
    align-items: center;    /* 画像を真ん中に寄せる */
    text-align: left;       /* テキストは左揃えのまま */
  }

  .book-image {
    flex: 0 0 auto;         /* 横幅固定を解除 */
    width: 80%;             /* スマホで見た時に画像が大きすぎないように調整 */
    margin-bottom: 20px;    /* 画像と文章の間にスキマを作る */
  }

/* 項目全体の設定を上書き */
  .info-item {
    display: block !important; /* flexを解除して縦並びにするぜ！ */
    padding: 15px 0;
  }

  .label {
    display: block;            /* 1行まるごと使う */
    width: 100% !important;    /* 幅固定を解除 */
    white-space: normal;       /* ★ここ！改行を許可するぜ！ */
    margin-bottom: 5px;
    flex: none !important;     /* flexの影響を完全に消す */
  }

  .content {
    display: block;            /* 中身も1行まるごと使う */
    padding-left: 0 !important;
    white-space: normal;       /* こっちも改行OKにする */
    line-height: 1.6;          /* 読みやすく */
  }
}

/* 全体の枠 */
.book-description {
  margin-top: 25px;
  padding-top: 15px;
  border-top: 1px solid #ccc;
}

/* 入選情報の赤文字（目立たせるじゃん！） */
.award-text {
  color: #6865d9;
  font-weight: bold;
  margin-bottom: 15px;
}

/* 著者コメント： の部分 */
.description-title {
  font-weight: bold;
  margin-bottom: 5px; /* 下との隙間をギュッと詰める */
}

/* 第1部・第2部の見出し（ここを狭くしたぜ！） */
.section-title {
  font-weight: bold;
  margin: 15px 0 5px 0; /* 上に15px、下に5pxだけ空ける設定 */
  border-left: 4px solid #db4245; /* 岩手っぽい緑の縦線を入れてアクセント！ */
  padding-left: 8px;
}

/* 本文のテキスト */
.description-text {
  font-size: 0.95rem;
  line-height: 1.6;
  margin-bottom: 10px; /* 段落ごとの隙間 */
  color: #333;
}

/* 注釈は少し小さく */
.note-text {
  font-size: 0.85rem;
  color: #666;
  margin-top: 10px;
}

/*秋吉敏子---------*/

.image-row {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  margin-bottom: 30px;
}

/* 表紙のサイズを固定しちゃう！ */
.cover-img {
  flex: 0 0 350px; /* ここで表紙の幅を350pxにガチッと固定！ */
}

/* 中身の画像は残りのスペースを全部使う！ */
.inner-img {
   flex: 0 0 680px;
}

/* 画像が箱からはみ出さないようにするおまじない */
.image-box img {
  width: 100%;
  height: auto;
  display: block;
}

/* 下の情報エリアを横並びにする */
.info-row {
  display: flex;
  gap: 40px; /* 左右のスキマ */
}

.info-left {
  flex: 1;
}

.info-right {
  flex: 1;
}

.rinzaiji{/*臨済寺画像*/
  margin-bottom: 20px;
  width: 700px;
}

/* ★スマホのときはどっちも100%にしたいよね！ */
@media screen and (max-width: 768px) {
  .image-row {
    flex-direction: column;
    align-items: center;
  }
  .cover-img, .inner-img {
    flex: 0 0 auto;
    width: 100%; /* スマホでは画面いっぱいに広がるぜ */
  }

  .info-row {
    flex-direction: column; /* 全部縦に並べる！ */
    gap: 20px;
  }
}

/*個人情報保護方針
-------------------------------------------------------------------------*/

.policy-list {
  padding-left: 1.5em; /* 番号のスペースを確保 */
  font-size: 1rem;
}

.policy-list li {
  margin-bottom: 15px; /* 項目ごとのスキマを空けて読みやすく！ */
  padding-left: 5px;
}

.policy-title {
  font-weight: bold; /* ローマ数字のタイトルを太字に！ */
  font-size: 1.15rem;
  margin-top: 40px;
  margin-bottom: 15px;
  color: #db4245; 
}

.dot-list {
  list-style-type: disc;
  padding-left: 20px;
  margin-bottom: 20px;
}

.policy-details{
  font-size: 1rem;
}

.sub-section {
  padding-left: 10px;
  border-left: 2px solid #eee; /* ちょっとだけ左に線を入れてまとまりを作る */
  margin-bottom: 20px;
}

/* 画面幅が768px以下（スマホ）の時の設定 */
@media screen and (max-width: 768px) {
  /* 全体の余白を少し狭くして文字を読みやすくする */
  .privacy-policy {
    padding: 15px;
  }

  .policy-list { 
    padding-left: 1.2rem; 
  font-size: 0.9rem;
}

.dot-list {
  font-size: 0.9rem;
}

.policy-details p{
  font-size: 0.9rem;
  margin: 10px 0px;
}

.sub-section {
  font-size: 0.9rem;
  margin: 20px 0px;
}

  /* 窓口のボックスの余白を調整 */
  .contact-box {
    padding: 15px;
  }

  .policy-title { /*赤字*/
  font-size: 1.0rem;
  margin-top: 0px;
  margin-bottom: 10px;
  color: #db4245; 
}

  /* 窓口情報の「：」をスマホでは縦並びにする */
.contact-box .info-item {
    display: block; /* 横並びを完全に解除するぜ！ */
  }

  /* ラベル（受付時間など）の幅を100%にして改行させる */
.contact-box .label {
    display: block; /* 1行を独占させる */
    width: 100%; 
    font-weight: bold;
    margin-bottom: 5px;
  }

  /* 「：」をスマホでは非表示にする魔法！ */
  /* もしHTMLで「：」をspanとかで囲ってなければ、
     labelの疑似要素で消すか、text-indentで調整が必要だけど、
     一番簡単なのは、labelの幅を自動にすることだぜ！ */
  .contact-box .label::after {
    content: none; /* もしCSSで「：」を付けてたらこれで消えるぜ */
  }

  /* 中身の文章の左側の余白を消す */
  .contact-box .content {
    display: block;
    padding-left: 0; 
  }
}

/* お問い合わせ窓口のボックス */
.contact-box {
  background-color: #f9f9f9;
  border: 1px solid #ccc;
  padding: 20px;
  margin-top: 20px;
}

.contact-name {
  font-weight: bold;
  margin-bottom: 10px;
}

/*お問い合わせフォーム(contact.html)---------------------------------*/

#contactForm {
	margin-top: 30px;
}

.form-item {
  margin-bottom: 20px;
}

.form-item label {
  display: block;
  font-weight: 600;
  margin-bottom: 6px;
}

.req {
  background: #db4245;
  color: #fff;
  padding: 2px 6px;
  font-size: 0.8rem;
  border-radius: 4px;
  margin-left: 6px;
}

input[type="text"],
input[type="email"],
input[type="tel"],
select,
textarea {
  width: 50%;
  margin-bottom: 2px;
  padding: 10px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background: #fff;
  font-size: 1rem;
}

.checkbox-wrap label {
  font-weight: normal;
}


.btn {
  background-color: #db4245; /* 元の背景色（例） */
  color: #fff;            /* 元の文字色 */
  border: 1px solid #333;
  padding: 12px 30px;
  cursor: pointer;
  transition: all 0.3s ease; /* これが大事！0.3秒かけて変化させるぜ */
}

.btn:hover {
  background-color: #fff; /* ホバーで白に */
  color: #333;           /* ホバーで文字を暗く */
}

.btn {
  transition: all 0.3s ease;
  box-shadow: 0 0 0 rgba(0,0,0,0); /* 最初は影なし */
}

.btn:hover {
  transform: translateY(-3px); /* 3px上に持ち上げる */
  box-shadow: 0 5px 15px rgba(0,0,0,0.1); /* 柔らかい影をつける */
}


@media (max-width: 600px) {
  .contact {
    padding: 0 15px;
  }

  label {
    font-size: 0.95rem;
  }

  .btn {
    width: 100%;
  }
}

/*郵便番号お調べ部分*/
.form-item .note {
  display: block;
  margin-bottom: 6px;
  font-size: 0.85rem;
  color: #666;
}

.form-item .note a {
  color: #db4245;
  text-decoration: underline;
}

.form-item .note a:hover {
  opacity: 0.8;
}

/*thanks.html部分*/

.thanks {
  max-width: 700px;
  margin: 60px auto;
  padding: 0 20px;
  text-align: center;
}

.thanks-message {
  font-size: 1.1rem;
  line-height: 2;
  margin: 30px 0 40px;
  color: #333;
}

.thanks-btn-wrap {
  margin-top: 20px;
}

.thanks-btn {
  display: inline-block;
  background: #db4245;
  color: #fff;
  padding: 12px 30px;
  text-decoration: none;
  border-radius: 4px;
  transition: 0.2s;
}

.thanks-btn:hover {
  opacity: 0.8;
}

@media (max-width: 600px) {
  .thanks-message {
    font-size: 1rem;
  }

  .thanks-btn {
    width: 100%;
    text-align: center;
  }
}






/*ここからした未確認　11/10*/




















/*段落(p)タグ*/
#main p {
	padding: 0 20px 20px;	/*上、左右、下への余白*/
}
/*他。微調整。*/
#main p + p {
	margin-top: -5px;
}

#main section + section {
	clear: both;
	padding-top: 40px;
}
.fl + .fr {
	clear: none !important;
	padding-top: 0 !important;
}

/*subブロック
---------------------------------------------------------------------------*/
/*subブロック*/
#sub {
	width: 20%;		/*幅*/
	float: left;	/*左に回り込み*/
}
/*１カラム時のsubブロック。非表示にする指定。*/
.c1 #sub {
	display: none;
}
/*h2タグ*/
#sub h2 {
	border: 1px solid #fff;	/*枠線の幅、線種、色*/
	text-align: center;		/*文字をセンタリング*/
}

/*サブメニュー
---------------------------------------------------------------------------*/
/*メニュー全体のブロック*/
.submenu {
	margin-bottom: 20px;	/*下に空けるスペース*/
}
/*メニュー１個あたりの指定*/
.submenu a {
	display: block;text-decoration: none;
	text-align: center;	/*文字をセンタリング*/
	padding: 5px;		/*メニュー内の余白*/
	border-bottom: 1px solid #fff;	/*下線の幅、線種、色*/
}

/*footerブロック
---------------------------------------------------------------------------*/
/*footerブロック*/

footer a {text-decoration: none;}
footer .pr {display: block;}


/*listブロック（index2.htmlで使用）
---------------------------------------------------------------------------*/
/*listブロック*/
.list {
	overflow: hidden;
	padding: 10px 20px;	/*上下、左右へのブロック内の余白*/
	border-bottom: 1px solid #fff;	/*下線の幅、線種、色*/
}
/*画像*/
.list figure img {
	float: left;	/*左に回り込み*/
	width: 15%;		/*画像の幅*/
	border-radius: 50%;	/*丸くする指定。10pxなどにすると角が丸い四角形になります。完全な四角形がいいならこの１行削除。*/
}
/*画像にtextブロックが続いた場合*/
figure + .text {
	float: right;	/*textブロックを右に回り込み*/
	width: 83%;		/*ブロック幅*/
}
/*h4見出し*/
.list h4 {
	font-size: 16px;	/*文字サイズを少し大きく*/
}
/*段落(p)タグ*/
.list p {
	padding: 0 !important;
	line-height: 1.5;	/*行間を少し狭く*/
}

/*NEWSブロック
---------------------------------------------------------------------------*/
/*日付設定*/
.news dt {
	clear: both;
	letter-spacing: 0.1em;	/*文字間隔を少し広くとる指定*/
	font-weight: bold;		/*太字にする*/
	padding: 10px 20px 0px;	/*上、左右、下への余白*/
}
/*記事設定*/
.news dd {
	overflow: hidden;
	border-bottom: 1px solid #fff;	/*下線の幅、線種、色*/
	padding: 0px 20px 10px;	/*上、左右、下への余白*/
}
/*右に回り込みの小さな画像*/
.news dd .img {
	width: 100px;	/*画像の幅*/
	float: right;	/*右に回り込み*/
}

/*NEWSブロック内のアイコン（INFORMATION,EVENT,MEDIAなどのアイコン）
---------------------------------------------------------------------------*/
/*アイコン共通*/
.news .icon {
	display: inline-block;
	background: #fff;		/*背景色*/
	color: #999;			/*文字色*/
	border: 1px solid #ccc;	/*枠線の幅、線種、色*/
	font-size: 10px;		/*文字サイズ*/
	padding: 0px 10px;		/*上下、左右へのアイコン内の余白*/
	margin-left: 10px;		/*左に空けるスペース。日付との間の余白です。*/
}
/*リンク設定した場合*/
.news .icon a {
	text-decoration: none;display: block;
	color: #999;	/*文字色*/
}
/*EVENT*/
.news .icon.event {
	border: none;			/*枠線を消す設定*/
	background: #ec4054;	/*背景色*/
	color: #fff;			/*文字色*/
}
/*MEDIA*/
.news .icon.media {
	border: none;			/*枠線を消す設定*/
	background: #4068ec;	/*背景色*/
	color: #fff;			/*文字色*/
}
/*EVENT、NEWSをリンク設定した場合*/
.news .icon.event a, .news .icon.media a {
	color: #fff;			/*文字色*/
}

/*テーブル
---------------------------------------------------------------------------*/
/*テーブル１行目に入った見出し部分（※caption）*/
.ta1 caption {
	border: 1px solid #fff;	/*テーブルの枠線の幅、線種、色*/
	border-bottom: none;	/*下線だけ消す*/
	text-align: left;		/*文字を左寄せ*/
	background: #fff;		/*背景色*/
	color: #999;			/*文字色*/
	font-weight: bold;		/*太字に*/
	padding: 10px;			/*ボックス内の余白*/
}
/*テーブルの見出し（※tamidashi）*/
.ta1 th.tamidashi {
	width: auto;
	text-align: left;	/*左よせ*/
	background: #fff;	/*背景色*/
	color: #999;		/*文字色*/
}
/*caption、tamidashiにリンクを指定した場合の文字色*/
.ta1 caption a, .ta1 th.tamidashi a {
	color: #999;		/*文字色*/
}
/*ta1設定*/
.ta1 {
	table-layout: fixed;
	width: 100%;
	margin: 0 auto 30px;
}
.ta1, .ta1 td, .ta1 th {
	word-break: break-all;
	border: 1px solid #fff;	/*テーブルの枠線の幅、線種、色*/
	padding: 10px;	/*ボックス内の余白*/
}
/*ta1の左側ボックス*/
.ta1 th {
	width: 140px;		/*幅*/
	text-align: center;	/*センタリング*/
}

/*フォーム関連
---------------------------------------------------------------------------*/
/*ボタン（btn）*/
input[type="submit"].btn,
input[type="button"].btn,
input[type="reset"].btn {
	padding: 5px 20px;		/*上下、左右へのボックス内の余白*/
	border-radius: 3px;		/*角丸のサイズ*/
	background: #eee;	/*背景色（古いブラウザ用）*/
	background: linear-gradient(#fff, #eee);/*背景グラデーション*/
}
/*マウスオン時のボタン（btn）設定*/
input[type="submit"].btn:hover,
input[type="button"].btn:hover,
input[type="reset"].btn:hover {
	background: #fff;	/*背景色*/
}
/*input,textarea共通*/
input{
	outline: none;background: transparent;
	border: 1px solid #fff;	/*枠線の幅、線種、色*/
}
/*input,textareaのフォーカス時*/
input:focus,textarea:focus {
	background: #fff;
}

/*checkブロック。赤い注意書きブロックです。
---------------------------------------------------------------------------*/
p.check {
	background: #666;
	color:#fff;
	padding: 10px 25px !important;
	margin-bottom: 20px;
}
p.check a {color: #fff;}

/*PAGE TOP（↑）設定
---------------------------------------------------------------------------*/
@keyframes scroll {
0% {opacity: 0;}
100% {opacity: 1;}
}
/*通常時のボタンは非表示*/
body .nav-fix-pos-pagetop a {
	display: none;
}
/*fixmenu_pagetop.jsで設定している設定値になったら出現するボタンスタイル*/
body.is-fixed-pagetop .nav-fix-pos-pagetop a {
	display: block;text-decoration: none;text-align: center;z-index: 100;position: fixed;animation-name: scroll;animation-duration: 1s;animation-fill-mode: forwards;
	width: 40px;		/*ボタンの幅*/
	line-height: 40px;	/*ボタンの高さ*/
	bottom: 20px;		/*ウィンドウの下から20pxの場所に配置*/
	right: 3%;			/*ウィンドウの右から3%の場所に配置*/
	background: #555;	/*背景色*/
	border-radius: 50%;
}
/*マウスオン時の背景色*/
body.is-fixed-pagetop .nav-fix-pos-pagetop a:hover {
	background: #999;
}

/*トップページのNEWアイコン
---------------------------------------------------------------------------*/
.newicon {
	background: #F00;	/*背景色*/
	color: #FFF;		/*文字色*/
	font-size: 70%;		/*文字サイズ*/
	line-height: 1.5;
	padding: 2px 5px;
	border-radius: 2px;
	margin: 0px 5px;
	vertical-align: text-top;
}

/*ul.disc,olタグ
---------------------------------------------------------------------------*/
ul.disc {
	list-style: disc;
	padding: 0 20px 20px 45px;
}
ol {
	padding: 0 20px 20px 45px;
}

/*その他
---------------------------------------------------------------------------*/
.look {background: #222;padding: 5px 10px;border-radius: 4px;border: 1px solid #333;color: #fff;}
.mb15,.mb1em {margin-bottom: 15px !important;}
.mb30 {margin-bottom: 30px !important;}
.mb50 {margin-bottom: 50px !important;}
.p0 {padding:0 !important;}
.clear {clear: both;}
.color1, .color1 a {color: #666 !important;}
.pr {font-size: 10px;}
.wl {width: 96%;}
.ws {width: 50%;}
.c {text-align: center;}
.r {text-align: right;}
.l {text-align: left;}
.fl {float: left;}
.fr {float: right;}
.w25 {width: 25%;}
.w70 {width: 70%;}
.w48 {width: 48%;}
.big1 {font-size: 50px;}
.mini1 {font-size: 11px;display: inline-block;line-height: 1.5;}
.dn {display: none;}
.sh {display: none;}
.border1 {border: 1px solid #fff;}
#sh-sub {display: none;}



/*画面を横向きにした場合の高さが500px以下の場合の設定。
※小さな端末用メニューを２列にします。
------------------------------------------------------------------------------------------------------------------------------------------------------*/
@media screen and (orientation: landscape) and (max-height:500px){

/*メインメニュー
---------------------------------------------------------------------------*/
/*メニュー１個あたりの設定*/
#menubar-s li a {
	float: left;		/*左に回り込み*/
	width: 44%;			/*幅*/
	line-height: 1.2;	/*行間*/
}

}



/*画面幅900px以下の設定
------------------------------------------------------------------------------------------------------------------------------------------------------*/
@media screen and (max-width:900px){

/*header
---------------------------------------------------------------------------*/
header {
	border-bottom: 1px solid #999;	/*下線の幅、線種、色*/
	box-shadow: none;
}
/*ロゴ画像*/
header #logo img {
	top: 10px;	/*ヘッダーブロックに対して上から10pxの場所に配置*/
	left: 10px;	/*ヘッダーブロックに対して左から10pxの場所に配置*/
}

/*headerアイコン（facebookやtwitterなどのアイコンブロック）
---------------------------------------------------------------------------*/
/*アイコンを囲むブロック全体の設定*/
header .icon {
	right: auto;
	left: 0px;		/*ヘッダーブロックに対して左から0pxの場所に配置*/
	bottom: 0px;	/*ヘッダーブロックに対して下から0pxの場所に配置*/
}

/*メインメニュー
---------------------------------------------------------------------------*/
/*アニメーションのフレーム設定。全100コマアニメーションだと思って下さい。
透明(opacity: 0;)から色をつける(opacity: 1;)までの指定。*/
@keyframes menubar {
	0% {opacity: 0;}
	100% {opacity: 1;}
}
/*スマホ用メニューブロック*/
#menubar-s {
	display: block;overflow: hidden;
	position: fixed;
	z-index: 3;
	top: 81px;
	width: 100%;
	height: 100%;
	background: rgba(255,255,255,0.5);	/*背景色*/
	animation-name: menubar;		/*上のkeyframesの名前*/
	animation-duration: 0.5s;		/*アニメーションの実行時間。0.5秒。*/
	animation-fill-mode: both;		/*待機中は最初のキーフレームを、完了後は最後のキーフレームを維持*/
}
/*メニュー１個あたりの設定*/
#menubar-s li a {
	display: block;text-decoration: none;
	background: rgba(255,255,255,0.8);	/*背景色*/
	padding: 10px 3%;	/*メニュー内の余白。上下、左右。*/
	border-bottom: 1px solid #999;	/*下の線の幅、線種、色*/
	color: #999;		/*文字色*/
	font-size: 16px;	/*文字サイズ*/
}
/*説明表記（飾り文字）*/
#menubar-s li a span {
	display: block;
	font-size: 10px;/*文字サイズ*/
}
/*PC用メニューを非表示にする*/
#menubar {display: none;}

/*３本バーアイコン設定
---------------------------------------------------------------------------*/
/*３本バーブロック*/
#menubar_hdr {
	display: block;
	position: fixed;z-index: 50;
	top: 13px;		/*上から10pxの場所に配置*/
	right: 10px;	/*右から10pxの場所に配置*/
	border: 1px solid rgba(0,0,0,0,1);
	border-radius: 4px;

}
/*アイコン共通設定*/
#menubar_hdr.close,
#menubar_hdr.open {
	width: 50px;	/*幅*/
	height: 50px;	/*高さ*/
}
/*三本バーアイコン*/
#menubar_hdr.close {
	background: url(../image/icon_menu.png) no-repeat center top/50px;	/*背景画像の読み込み、画像の上半分（３本マーク）を表示。幅は50px。*/
}
/*閉じるアイコン*/
#menubar_hdr.open {
	background: url(../image/icon_menu.png) no-repeat center bottom/50px;	/*背景画像の読み込み、画像の下半分（×マーク）を表示。幅は50px。*/
}

/*contentsブロック。mainとsubを囲むブロック。
---------------------------------------------------------------------------*/
#contents {
	padding: 100px 3% 60px;	/*上、左右、下へのコンテンツ内の余白*/
}

/*main,subコンテンツ
---------------------------------------------------------------------------*/
#main, #sub {
	float: none;
	width: auto;
	clear: both;
}
#main {
	padding-bottom: 20px;
}

/*listブロック（index2.htmlで使用）
---------------------------------------------------------------------------*/
.fl.w48, .fr.w48 {
	float: none;
	width: auto;
}
.fl + .fr {
	padding-top: 30px !important;
}

/*その他
---------------------------------------------------------------------------*/
body.s-n #sub,body.s-n #footermenu,.m-n {display: none;}
.big1 {font-size: 24px;}
.sh {display:block;}
.pc {display:none;}

}



/*画面幅480px以下の設定
------------------------------------------------------------------------------------------------------------------------------------------------------*/
@media screen and (max-width:480px){

/*全体の設定
---------------------------------------------------------------------------*/

/* ★追加：見出しや重要テキストが2行にならないように字間を詰める
  h2, h3, .heading-1, .heading-2, .heading-3 {
    letter-spacing: -0.03em !important; 
    word-break: keep-all;              
  } */

  .heading-1 { /*左に赤線の見出し*/
  font-size: 1.1rem;
  margin-top: 10px;
  font-weight: bold;
}


h3.heading-3 {
    display: block !important;
    width: auto !important;
    white-space: normal !important; /* 改行を「普通」に戻すぜ */
    word-break: break-all !important;  /* 枠の端に来たらどこでも改行OKにする */
    overflow-wrap: break-word !important;
    line-height: 1.4 !important;    /* 2行になった時、重ならないように */
    height: auto !important;        /* 高さを固定してたら解除 */
  }

  /* ★追加：画面幅（vw）を使って文字サイズを自動調整 */
  .hero-content h2 {
    font-size: 8vw !important; /* キャッチコピーがハミ出ないように画面幅に連動 */
  }

  /* ★追加：沿革（history）の年号が2行にならないように固定 */
  .history-year {
    width: 90px !important; 
    white-space: nowrap;
  }


/*トップページのSVGロゴアニメーション設定
---------------------------------------------------------------------------*/
#svg-logo {
	width: 80%;			/*画像の幅*/
	left: 10%;			/*左から10%の場所に配置*/
}


/*NEWSブロック
---------------------------------------------------------------------------*/
/*右に回り込みの小さな画像*/
.news dd .img {
	width: 50px;	/*画像の幅*/
}

/*listブロック（index2.htmlで使用）
---------------------------------------------------------------------------*/
/*listブロック*/
.list {
	padding: 10px;	/*ブロック内の余白*/
}

/*テーブル（ta1）
---------------------------------------------------------------------------*/
/*テーブル１行目に入った見出し部分（※caption）*/
.ta1 caption {
	padding: 5px;	/*ボックス内の余白*/
}
/*ta1設定*/
.ta1, .ta1 td, .ta1 th {
	padding: 5px;	/*ボックス内の余白*/
}
/*ta1の左側ボックス*/
.ta1 th {
	width: 100px;
}

/*ul.disc,olタグ
---------------------------------------------------------------------------*/
ul.disc {
	list-style: disc;
	padding: 0 10px 20px 30px;
}
ol {
	padding: 0 10px 20px 30px;
}

/*その他
---------------------------------------------------------------------------*/
.ws,.wl {width: 94%;}
.big1 {font-size: 16px;}

}


/*動き
--------------------------------------------------------------------*/

/* 共通の隠し状態 */
.fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.8s ease-out;
}

/* 表示された時の状態 */
.fade-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* 画像用のズーム演出 */
.img-zoom {
  opacity: 0;
  transform: scale(0.95);
  transition: all 1.2s ease-out;
}

.img-zoom.is-visible {
  opacity: 1;
  transform: scale(1);
}


/* 1番目のアイテムは0.1秒、2番目は0.2秒...みたいに遅らせる */
.history-item:nth-child(1) { transition-delay: 0.1s; }
.history-item:nth-child(2) { transition-delay: 0.2s; }
.history-item:nth-child(3) { transition-delay: 0.3s; }
.history-item:nth-child(4) { transition-delay: 0.4s; }
.history-item:nth-child(5) { transition-delay: 0.5s; }
.history-item:nth-child(6) { transition-delay: 0.6s; }
.history-item:nth-child(7) { transition-delay: 0.7s; }