@charset "utf-8";

/***************************************
Ver 2025.08.30-
*************************************** */



/*---------------------------------
/*　メイン領域
/*　文字サイズ　行高　色初期化
-----------------------------------*/

article { font-size: calc( 1.6rem + 0.2vw ); }
@media screen and (min-width: 999px) { article { font-size: 1.75rem; } }

article h1{ font-size:125%; line-height:175%; position: relative; }
article h2{ font-size:1.6em; line-height:175%; position: relative; }
article h3{ font-size:130%; line-height:150%; font-weight:400; }
article h4{ font-size:115%; line-height:150%; font-weight:400; }

article h2 b ,
article h3 b { display: block; font-size: 65%; line-height: 150%; font-weight: inherit; }

article li ,
article table th ,
article table td { font-size:95%; line-height:calc( 150% + 0.25vw ); letter-spacing: calc( 0.05rem + 0.2px ) ; }
article p { font-size:100%; line-height:calc( 175% + 0.25vw ); }




/*--------------------------------------
ページヘッダー
ピックパス　見出し　タイムスタンプ　概要説明　ショートカットリンク
---------------------------------------- */
.pagetop{ padding-top: 0; box-sizing: border-box; overflow: hidden;}

/* 第一見出しの背景色と左右はみだし位置を揃える */
.pagetop .topic-path , 
.pagetop h1 {
	box-sizing:border-box; overflow: hidden;
	margin-left:-5vw; margin-right:-5vw ;
	padding-left:5vw  ; padding-right:5vw;
}

.pagetop h1{ padding-bottom: 1vw ; }
.pagetop h1 b{ display: block; font-size: 60%; padding-top: 0; line-height:calc( 100% + 1.5vw ); }
.pagetop h1 + p{ margin-top:  calc( 24px + 0.5vw ) ; }

.topic-path{ font-size: calc( 10px + 0.25vw ); padding-top: calc( 4px + 0.5vw ); }
.topic-path ul{ display:flex; flex-wrap:wrap; padding:0; margin-left:0; list-style-type:none; }
.topic-path li{ position:relative; white-space:nowrap; line-height:200%; margin:0; padding:0; }
.topic-path li a{ text-decoration: none; }
.topic-path li + li::before{ content: "＞"; margin-left:calc( 0.25rem + 0.1vw ); margin-right: 0.15rem; }
.topic-path li i{ margin:0 0.2rem 0 0; padding:0; }
.topic-path li:first-child a{ display:block; position:absolute; top:0; left:0; width:100%; height:100%;  opacity:0; }
.topic-path ul li:last-child{ display: none; }

.wrap_update{
	font-size:1.3rem; padding:1rem; display:flex; justify-content: flex-end;
	margin-top: 0; margin-bottom: calc( 12px + 1vw );
	border-top: 1px solid #a0a0a0;
}
picture + .wrap_update{ border-top: none; }
.wrap_update:before{ content:"update:"; margin:0.5rem; margin-right:0.5em; }
.wrap_update ul{ list-style:none; margin:0; }
.wrap_update ul li{ padding-top: 0 ; padding-bottom: 0 ; }

.skiplink{
	display:inline-block;
	border-width: 1px; border-style: dotted; border-radius: 3px;
	margin-top: calc( 24px + 0.5vw );
	margin-top: calc( 24px + 0.5vw ); margin-bottom: calc( 24px + 0.5vw );
	padding-top: calc( 12px + 0.5vw ); padding-bottom: calc( 12px + 0.5vw );
}
.skiplink ul{ padding-left:calc( 8px + 0.2vw ); padding-right: 16px; list-style: none; }
.skiplink li::before{ display: inline-block; content: "▲"; transform: rotate( 90deg ); margin-right:0.75rem; }
.skiplink ul + ul{ margin-top: 1.5em; padding-top: 1em; border-top: 1px dotted;}

.skiplink li ,
.skiplink li a{ color: currentColor; }



.pagetop h2{ margin-top: 2em; margin-bottom: 1em; padding:0.5em 0; border-top: 1px dotted; }

/*---------------------------------
/*　インライン
/*---------------------------------*/
b ,p strong, .bold { font-weight: 700;}

.nowrap{ white-space:nowrap; }

/* スモール80％ */
.fsmall{ font-size: 80%; }
/* ラージ120％ */
.flarge{ font-size: 120%; }


/* 取り消し線  */
strike, .strike{ text-decoration:line-through; margin-right:0.2rem; }

/* 上づめ/下詰め  */
.supText { font-size: 75.5%; vertical-align: top; position: relative; top: -0.1em; }
.subText { font-size: 75.5%; vertical-align: bottom; position: relative; top: 0.1em; }

/* 左中右寄せ*/
.align-left{ text-align:left !important; }
.align-right{ text-align:right !important; }
.align-center{ text-align:center !important; }

/*　縦文字 */
.tatemoji{ writing-mode: vertical-rl; -webkit-writing-mode: vertical-rl; }

/* フォント */
.font-mincho{ font-family: 'Noto Serif JP', serif; }

/* 折り返さず超過は「...」に*/
.ellipsis{ white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }

/*---------------------------------
/* 仕切り線 */
/*---------------------------------*/
.br::before{
	position: relative; content: ''; display: block; margin-top: 2.5rem;
	border-top:1px dotted; padding-top:1rem;  margin-left: -99px; margin-right: -99px; }


/*---------------------------------
/*　標準
/*---------------------------------*/

/* 文字行間 */
section li + li{ margin-top:0.8em ;}
section table li + li{ margin-top: 0.2em ;}
section p + p{ margin-top: 0.5em;}

@media screen and (max-width: 600px) { section p + p { margin-top: 0.8em; } }


/* pの前後 */
section p + ul, section ul + p ,
section p + ol, section ol + p{ margin-top: calc( 1.5rem + 0.5vw ); }
section p + picture , section picture + p{ margin-top: calc( 2.5rem + 1vw );}

/* tableの前後 */
section table{ margin-top:calc( 8px + 1rem + 0.5vw ); margin-bottom: calc( 8px + 1rem + 0.5vw ); }


/* h2 section直下のh2のみ効かせる */
section h2:first-child{
/*	font-family: "Sawarabi Mincho",'Noto Serif JP', serif; font-weight: 400; */
	margin-bottom: calc( 2rem + 2vw ) ;
	letter-spacing: calc( 0.05em + 0.08vw );
}
/* h2 特殊 */
h2.header-sp1{
	display: inline-block;
	margin-left: auto; margin-right: auto; padding-left:calc( 0.5em + 2vw ); padding-right:calc( 0.5em + 2vw );
	margin-top: 0; margin-bottom: 1em !important;
	border-top: 3px double; border-bottom: 3px double; border-left: none; border-right: none;
	font-family: 'Noto Serif JP', serif; font-weight: 600;
	text-align: center; margin-bottom: calc( 48px + 5vw );
}
h2.header-sp1:not(:first-child){ margin-top: 2.5em;	 }


/* h3 */
section h3{
	padding:calc( 4px + 0.25vw ) calc( 34px + 0.5vw ) calc( 4px + 0.25vw ) calc( 8px + 0.1vw );
	margin-left: -6px; border-left-width: 6px; border-left-style: solid ;
	margin-bottom: calc( 16px + 1vw );
}
section div + h3,
section p + h3,
section ul.text + h3,
section table + h3,
section picture + h3,
section iframe + h3 ,
section nav + h3{ margin-top: calc( 2em + 1vw ); }

section h3 + table{ margin-top: 0; }




/*---------------------------------
/*　TABEL
/*---------------------------------*/

/* 横スクロール */
.table-scroll{ overflow:auto;}
/* htmlに貼る
@media screen and (max-width: 420px) {.table-scroll table#table1 { display:block; white-space:nowrap; padding-bottom: 8px; } }
*/

table{
	font-family:sans-serif;	text-align:left;
	width:fit-content; min-width:200px; overflow: auto; box-sizing:border-box;
	background-color:#ffffff66; border-collapse:collapse; border-spacing:0;

}
@media screen and (max-width: 420px) { table { font-size: 80%; } }

caption{ font-size:95%; text-align:left; line-height:150%; padding-bottom:0.25rem; }
caption.pre{ white-space:nowrap; text-overflow: ellipsis; }
th , td{ border:thin solid; box-sizing: border-box; vertical-align: middle; }
th{ padding:0.5rem 0.5rem; background-color:#0000000a; white-space:nowrap; }
th.wrap{ white-space:normal !important; }
th i{ display: block; font-size: 85%; }
th[scope='row']{ width:auto; }
th[scope='col']{ width:auto; text-align:center; }

.table-col-center td{ text-align:center; }
.table-col-price td{ text-align:right; }
td{ padding:0.5rem 0.5em; }

/* tdのリストはここには書かずul/olのところに書く*/
/* ここは備忘録用のベース設定のみ
td ul{ margin-top:0.5rem; margin-bottom:0.5rem; margin-left:calc( 1.5rem + 0.5vw ); }
*/

td.cell-quate{ font-size: 80%; text-align: left ;}

/*　注釈リンクを入れるセル */
td.link a{ text-decoration: none; border-bottom: 1px dotted; }

/*　縦文字にするセル */
th.cell-tatemoji ,
td.cell-tatemoji{ padding: 0; writing-mode: vertical-rl; -webkit-writing-mode: vertical-rl; }



/*---------------------------------
/*　LIST
/*  上下マージンや行高は設定しない
/*  ul/olはdivで内包するので左右幅はセットしない
/*  <ul class="list-a">
/*---------------------------------*/
ul{ margin: 0; }
ol{ margin: 0; }

/* リストマークなし（マーク分を左詰め）*/
.list-0 ,.ListMark_non{ list-style-type: none; margin-left: 0; }
.list-0 li ,.ListMark_non li{ margin-left: -12px; }

/* リストマーク変更 */
.list-sq , .ListMark_square{ list-style-type:square; }
.list-maru .ListMark_circle{ list-style-type:circle; }

/* リストマークをアルファベット（使用頻度高） */
.list-a{ list-style:upper-alpha; }
.list-a li::before { content:"" ; margin-right: 0.3vw; }
.list-a li::marker{ font-size: 90%; }

/* リストマークをfontawesomeアイコンに置き換え */
/* <ul class="list-icon"> 
/* <li><i class="fa-solid fa-square-caret-right"></i>あああ</i> */
/**/
.list-icon{ list-style-type:none; }
.list-icon li{ margin-left:-16px; }
.list-icon li i{ display: inline-block; margin-right: 0.75rem; }

/* リストをFLEXBOX化
　リストマークは消す
 <ul class="flexlist"> 
*/
.flexlist{ display: flex; flex-wrap: wrap; margin-left:0; margin-right:0; }
.flexlist li{ list-style: none; }
.flexlist li + li{ margin-left: 1.5rem; margin-top: 0; }


/* テーブルセルの中のリスト（使用頻度高） */
th ul , td ul{ margin-top:0; margin-bottom:0; margin-left: 0; }
th ol , td ol{ margin-top:0.25rem; margin-bottom:0.25rem; margin-left: 0; }
td ul li{ margin-left: 1em; }

/* リストマークなし */
th ul.list-0 , td ul.list-0{ padding-left: 0.75em; }

/* ボックスで囲わない */
ul.text{ padding-left:calc( 1em + 0.2vw ); padding-right: 8px; }

/* リストの中のリスト */
li ul , li ol{ font-size: 95%; margin-top: 0.5em; }
li ul li + li , li ol li + li{ margin-top:0.2em; }

/*---------------------------------
/*　画像
/*  pictureで内包する
/*---------------------------------*/
picture{ display:block; box-sizing:border-box; overflow:hidden; margin-left:auto; margin-right:auto; text-align:center; }
img{ max-width:100%; height:auto; vertical-align:bottom; box-sizing:border-box; object-fit:cover; }

/* 固定サイズ */
picture.clip-small{ max-width:200px; margin-left: auto; margin-right: auto; padding: 12px;  }
picture.clip-middle{ max-width:360px; margin-left: auto; margin-right: auto; padding: 12px; }
picture.clip-middle2{ max-width:480px; margin-left: auto; margin-right: auto; padding: 12px; }
picture.clip-large{ max-width:720px; }

/* 四辺スキマ */
picture.margin1{ padding: 8px; }
picture.margin2{ padding: calc( 24px + 1vw ); }




/*---------------------------------
/*　地図
/*  iframe class="gmap"
/*---------------------------------*/
iframe.gmap{
	box-sizing: border-box; padding: 4px; margin: 2em auto ; width: 100%;
	background-color: rgb( 196,196,196 );
}



/*---------------------------------
/*  flexbox
/*　とりあえず何でもFLEXBOX化 
<div class="wrap-flex" id="flex1">
<style>@media screen and (max-width: 600px) { #flex1.wrap-flex { flex-direction: column; } }</style>
<div clas="flexbox">
/*---------------------------------*/
.wrap-flex{ display: flex; flex-wrap: wrap; position: relative; box-sizing: border-box; }
.wrap-flex .flexbox{ flex: 1 ; position: relative; box-sizing: border-box; overflow: hidden; }

.wrap-flex .flexbox0{ flex: 1 ; position: relative; box-sizing: border-box; overflow: hidden; }

.wrap-flex-photo{ display: flex; flex-wrap: wrap; gap:8px; margin: calc( 32px + 3vw ) auto; }
.wrap-flex-photo picture{ flex:1; position: relative; box-sizing: border-box; overflow: hidden; }

.wrap-flex{ margin-top: calc( 1em + 1vw ); }



/*---------------------------------
/*  flex-typeA
/*　スマホ1列　タブレット2列　PC3列
<div class="wrap-flex flex-typeA">
2025使用
/*---------------------------------*/
.flex-typeA{ column-gap: 2%; row-gap: calc( 8px + 0.5vw ) ;}
.flex-typeA .flexbox{ flex-basis: 32%; max-width: 32%; }
@media screen and (max-width: 799px) {
.flex-typeA .flexbox { flex-basis: 49%; max-width: 49%; } }
@media screen and (max-width: 599px) {
.flex-typeA .flexbox{ flex-basis: 100%; max-width: 100%; } }

/*---------------------------------
/*  flex-typeB
/*　スマホ1列　タブレット/PCは2列
<div class="wrap-flex flex-typeB">
2025使用
/*---------------------------------*/
.flex-typeB{ column-gap: 2%; row-gap:calc( 4px + 1.25vw ); }
.flex-typeB .flexbox{ flex-basis: 49%; max-width: 49%; }
@media screen and (max-width: 599px) {
.flex-typeB .flexbox{ flex-basis: 100%; max-width:100%; } }


/*---------------------------------
/*  flex-typeC
/*　すべて2列
<div class="wrap-flex flex-typeB">
2025使用
/*---------------------------------*/
.flex-typeC{ column-gap: 2%; row-gap:calc( 4px + 1.25vw ); }
.flex-typeC .flexbox{ flex-basis: 49%; max-width: 49%; }


/*---------------------------------
/*  flex-typeD
/*　スマホ2列　タブレット/PCは4列
<div class="wrap-flex flex-typeD">
/*---------------------------------*/
.flex-typeD{ column-gap: 1.3%; row-gap:calc( 4px + 1.25vw ); }
.flex-typeD .flexbox{ flex-basis: 24%; width: 24%; }
@media screen and (max-width: 599px) {
.flex-typeD { column-gap: 2%; row-gap:calc( 4px + 0.25vw ); }
.flex-typeD .flexbox { flex-basis: 49%; max-width: 49%; } }

/*---------------------------------
/*  flex-typeE
/*　スマホ2列　タブレット/PCは3列
<div class="wrap-flex flex-typeE">
2025使用
/*---------------------------------*/
.flex-typeE{ column-gap: 2%; row-gap:calc( 4px + 1.25vw ); }
.flex-typeE .flexbox{ flex-basis: 32%; max-width: 32%; }
@media screen and (max-width: 599px) {
.flex-typeE .flexbox { flex-basis: 49%; max-width: 49%; } }

/*---------------------------------
/*  flex-typeF
/*　スマホ2列　タブレット/PC　無制限
　　必要に応じてflex-basisとwidthを別途指定する
<div class="wrap-flex flex-typeE">
2025使用
/*---------------------------------*/
.flex-typeF{ column-gap: 2%; row-gap: calc( 8px + 0.5vw ) ;}
@media screen and (max-width: 599px) {
.flex-typeF .flexbox { flex-basis: 49%; max-width: 49%; } }



/*--------------------------*/
/*　テキストと画像などを並べる
<div class="catch">
<div class="flexbox box-text">
<div class="flexbox box-photo">
<div class="flexbox box-map">
/*-------------------------*/
.catch{ display: flex; flex-wrap: wrap; flex-direction: column; gap: 16px; font-size: 90%; }

@media screen and (min-width: 768px) { .catch { flex-direction: row; } }

.catch .flexbox{ flex: 1 ; box-sizing: border-box; }
.catch .box-map{ padding: 8px; }
.catch .box-map iframe{ box-sizing: border-box; width: 100% ; border: 3px solid #aaa; }

.catch .box-text h2 ,
.catch .box-text h3{
	font-size:calc( 1.8rem + 0.5vw );
	line-height: 150%; 
	border:none; padding: 0; margin: 0 0 1em;
}



/*---------------------------------
  標準的なボックス
  set2は角丸
  set1/2は文字サイズ少
<div class="boxset1">
/*---------------------------------*/
.boxset3 ,
.boxset2 ,
.boxset1{
	border-width: 1px; border-style: solid;  overflow: hidden; 
	padding-left: calc( 4px + 0.5vw ); padding-right: calc( 4px + 0.5vw ); }
.boxset2 ,
.boxset1{ font-size: 94%; }
.boxset2{ border-radius: calc( 4px + 0.2vw ); }

/* 見出し 左右幅 はみだし処理 行高 リセット */
.boxset3 h2 ,
.boxset2 h2,
.boxset1 h2{ margin: calc( 4px + 0.5vw ) 0; padding-left:calc( 4px + 0.5vw ); padding-right: calc( 4px + 0.5vw ); }
.boxset3 .header ,
.boxset2 .header ,
.boxset1 .header ,
.boxset3 h3:first-child ,
.boxset2 h3 ,
.boxset1 h3 ,
.boxset3 h4:first-child ,
.boxset2 h4 ,
.boxset1 h4{
	width: calc( 100% + 4px + 0.5vw ); margin-left: calc( -4px - 0.5vw ); padding:calc( 4px + 0.1rem ) 8px;
	margin-top: 0 !important; margin-bottom:0;
	overflow: hidden; font-weight:normal;
	border-width: 0; }

.boxset3 h4:not(:first-child),
.boxset2 h4:not(:first-child),
.boxset1 h4:not(:first-child){
	margin-top:0.5em !important; margin-bottom: 0.5em !important;
}

.boxset3 h4.br::before,
.boxset2 h4.br::before,
.boxset1 h4.br::before{ margin-top: 0; }


/*---------------------------------
  枠線太 文字等倍のボックス
<div class="boxset4">
set5はインラインボックス
set6はset5の中央寄せ
/*---------------------------------*/
.boxset4 ,
.boxset5 ,
.boxset6{
	border-width:calc( 2px + 0.2vw ); border-style: solid; overflow: hidden; border-radius: 1px;
	padding-left: calc( 4px + 0.5vw ); padding-right: calc( 4px + 0.5vw ); }
.boxset5 ,
.boxset6{ width: fit-content; min-width: 15rem; }
.boxset6{ margin-left: auto; margin-right: auto; }

/* 見出し 左右幅 はみだし処理 行高 リセット */
.boxset5 ,
.boxset4 h2{ margin: calc( 4px + 0.5vw ) 0; padding-left:calc( 4px + 0.5vw ); padding-right: calc( 4px + 0.5vw ); }
.boxset5 h3 ,
.boxset4 h3 ,
.boxset5 h4 ,
.boxset4 h4{
	width: calc( 100% + 4px + 0.5vw ); margin-left: calc( -4px - 0.5vw ); padding:calc( 4px + 0.1rem ) 8px;
	margin-bottom: 0; font-weight:normal; border-width: 0; }

/*---------------------------------
/*  空ボックス（画像などで埋める） 
/*---------------------------------*/
.boxset0{ margin: calc( 32px + 3vw ) auto; }
.boxset0 picture{ padding: 2em; }

/*---------------------------------
  boxset 共通
/*---------------------------------*/


/* ボックスの上下 */
.boxset6 ,
.boxset5 ,
.boxset4 ,
.boxset3 ,
.boxset2 ,
.boxset1 { margin-top:calc( 8px + 1.5rem + 1vw ); margin-bottom: calc( 8px + 1.5rem + 1vw ); }

h3 + .boxset6 ,
h3 + .boxset5 ,
h3 + .boxset4 ,
h3 + .boxset3 ,
h3 + .boxset2 ,
h3 + .boxset1 ,
h2 + .boxset6 ,
h2 + .boxset5 ,
h2 + .boxset4 ,
h2 + .boxset3 ,
h2 + .boxset2 ,
h2 + .boxset1 { margin-top:0 ;}

.boxset6 + div ,
.boxset5 + div ,
.boxset4 + div ,
.boxset3 + div ,
.boxset2 + div ,
.boxset1 + div{ margin-top: 0; }

.wrap-flex .boxset6 ,
.wrap-flex .boxset5 ,
.wrap-flex .boxset4 ,
.wrap-flex .boxset3 ,
.wrap-flex .boxset2 ,
.wrap-flex .boxset1 { margin-top:calc( 4px + 0.5vw ); margin-bottom: calc( 4px + 0.5vw ); }


/* 左右幅（共通） */
.boxset5 ul ,
.boxset4 ul ,
.boxset3 ul ,
.boxset2 ul ,
.boxset1 ul{ padding-left:1em; padding-left: 1.5em;}
.boxset5 ol ,
.boxset4 ol ,
.boxset3 ol ,
.boxset2 ol ,
.boxset1 ol{ padding-left:2em; }
.boxset5 table ,
.boxset4 table ,
.boxset3 table ,
.boxset2 table ,
.boxset1 table{ margin-right: auto; }


/* 上下幅（共通） */
.boxset5 p + p ,
.boxset4 p + p ,
.boxset3 p + p ,
.boxset2 p + p ,
.boxset1 p + p{ margin-top: 1.25rem; }
.boxset5 picture ,
.boxset4 picture ,
.boxset3 picture ,
.boxset2 picture ,
.boxset1 picture ,
.boxset5 table ,
.boxset4 table ,
.boxset3 table ,
.boxset2 table ,
.boxset1 table{ margin-top: 1.5rem; margin-bottom: 1.5rem; }
.boxset5 ul + p ,
.boxset4 ul + p ,
.boxset3 ul + p ,
.boxset2 ul + p ,
.boxset1 ul + p ,
.boxset5 ol + p ,
.boxset4 ol + p ,
.boxset3 ol + p ,
.boxset2 ol + p ,
.boxset1 ol + p{ margin-top: 1.5rem ; }

/* ボックスの最初 */
.boxset5 > p:first-of-type ,
.boxset4 > p:first-of-type ,
.boxset3 > p:first-of-type ,
.boxset2 > p:first-of-type ,
.boxset1 > p:first-of-type ,
.boxset5 > ul:first-of-type ,
.boxset4 > ul:first-of-type ,
.boxset3 > ul:first-of-type ,
.boxset2 > ul:first-of-type ,
.boxset1 > ul:first-of-type ,
.boxset5 > ol:first-of-type ,
.boxset4 > ol:first-of-type ,
.boxset3 > ol:first-of-type ,
.boxset2 > ol:first-of-type ,
.boxset1 > ol:first-of-type { margin-top: calc( 0.5em + 0.5vw ) ; }

/* ボックスの最終 */
.boxset5 > p:last-of-type ,
.boxset4 > p:last-of-type ,
.boxset3 > p:last-of-type ,
.boxset2 > p:last-of-type ,
.boxset1 > p:last-of-type ,
.boxset5 > ul:last-of-type ,
.boxset4 > ul:last-of-type ,
.boxset3 > ul:last-of-type ,
.boxset2 > ul:last-of-type ,
.boxset1 > ul:last-of-type ,
.boxset5 > ol:last-of-type ,
.boxset4 > ol:last-of-type ,
.boxset3 > ol:last-of-type ,
.boxset2 > ol:last-of-type ,
.boxset1 > ol:last-of-type { margin-bottom: calc( 0.5em + 0.5vw ); }

/* ボックス内の仕切り */
.boxset5 .br::before ,
.boxset4 .br::before ,
.boxset3 .br::before ,
.boxset2 .br::before ,
.boxset1 .br::before{
	position: relative; content: ''; display: block; margin-top: 2.5rem;
	border-top:1px dotted; padding-top:1rem;  margin-left: -99px; margin-right: -99px; }

/* ボックス内のTABLE */
.boxset5 table th , .boxset5 table td ,
.boxset4 table th , .boxset4 table td ,
.boxset3 table th , .boxset3 table td ,
.boxset2 table th , .boxset2 table td ,
.boxset1 table th , .boxset1 table td { line-height: 140% ;  padding-top:calc( 4px + 0.2vw ); padding-bottom:calc( 4px + 0.2vw ); }





/*---------------------------------
　コースメニュー
<section>
<div class="wrap-couse">
<div class="flexbox">
<h2>中学受験コース</h2>

-----------------------------------*/
.wrap-couse{ display: flex; flex-wrap: wrap; flex-direction: row-reverse; }
@media screen and (max-width: 600px) { .wrap-couse{ display: block; } }

.wrap-couse .flexbox{ flex:1; position: relative; box-sizing: border-box; overflow: hidden; }
.wrap-couse nav{ margin: 2em 0.5em ; }
.wrap-couse nav li{
	position: relative; line-height:170%; margin:0; padding: 0.3em 0.7em;
	border-width: 1px; border-style: solid; border-radius: 4px; overflow: hidden;
	box-shadow: 2px 2px 2px 0 #ffffff33;
}
.wrap-couse nav li.no{ opacity: 0.3; }
.wrap-couse nav li + li{ margin-top: 1em; }
.wrap-couse nav li i{ margin-left: 0.5em; }
.wrap-couse nav li a{ position:absolute; top:0; left: 0; width: 100%; height: 100%; opacity: 0; }
.wrap-couse nav li:hover{ box-shadow: 1px 1px 4px 0 #ffffffbb; }
.wrap-couse nav li.no:hover{ box-shadow:none; }
.wrap-couse .text-squ{ display: flex; justify-content: center; align-items: center; padding: 1em;}
.wrap-couse .text-squ .box{
	font-size: calc( 56px + 2vw ); font-family: "Sawarabi Mincho";
	padding: 0.1em 0.1em 0em ;
	display: inline-block;
	border-width: calc( 1px + 1vw );
	border-style: solid; 
	border-radius: 4%;
	transform: rotate( -3deg );
	box-shadow: 6px 6px 3px 0px #00000066;
}
.wrap-couse .text-squ .box p{ margin: 0; padding: 0; line-height: 1; font-weight: bold; }



/*---------------------------------
　アイキャッチ
<div class="wrap-eyecatch">
<h2><i>どんな塾？</i>
<picture>
<source type="image/webp" srcset="images/img204.webp">
<img src="images/0.png" alt="">
</picture>
</h2>
<div class="box-eyecatch">
-----------------------------------*/
.wrap-eyecatch{
	position: relative; font-size:calc( 1.4rem + 0.5vw );
	margin-bottom: calc( 24px + 2vw );
}
.wrap-eyecatch h2{
	font-size: 2em;
	display: flex; flex-direction:column-reverse; align-items: center; margin: 0 0 2em !important; }
.wrap-eyecatch h2 picture{ width: auto; margin: 0 15%; max-width: 360px; }

.box-eyecatch{
	position: relative;	font-size: 1em;
	max-width:640px; margin:0 auto calc( 24px + 2vw );
	border-width:calc( 2px + 0.5vw ); border-style: solid; border-radius: 2px; overflow: hidden; 
	padding-bottom: 1.5em;
}
.box-eyecatch h3{
	font-size: 1.5em; line-height: 1.75; text-align: center;
	padding: calc( 0.5em + 0.75vw ) 0.5em ; margin: 0; border: none;
}
.box-eyecatch ul{
	font-size: 1em;
	padding-top: 1em; padding-left:1rem;
	margin-left: 1em; margin-right: 1em;
}
.box-eyecatch ul li + li{ margin-top: 1em; }



/*---------------------------------
  コースメニュー用タイル
<div class="wrap-sp-tile">
<div class="flexbox">
/*---------------------------------*/
h2 + .wrap-sp-tile{ margin-top:2em;}

.wrap-sp-tile{
  display: flex; flex-wrap: wrap; gap: calc( 1vw + 4px ); position: relative; box-sizing: border-box;
  padding-left: 1vw; margin-top: 1em;
}

.wrap-sp-tile .flexbox{
  flex: 1 ; position: relative; box-sizing: border-box; overflow: hidden;
  flex-basis: calc( 50% - 1vw - 4px ); max-width: calc( 50% - 1vw - 4px );
  outline: 1px solid #ccc; border-radius: 0.25em; box-shadow: 1px 1px 4px 0 #999; min-height: 5em;
}
@media screen and (min-width: 599px) {
.wrap-sp-tile .flexbox{ flex-basis: calc( 33% - 1vw - 4px ); max-width: calc( 33% - 1vw - 4px );  } }
@media screen and (min-width: 799px) {
.wrap-sp-tile .flexbox{ flex-basis: calc( 25% - 1vw - 4px ); max-width: calc( 25% - 1vw - 4px ); } }

.wrap-sp-tile .flexbox a{
  position: absolute; display: block; top:0; left:0; width: 100%; height: 100%; filter: opacity( 0 ); }

.wrap-sp-tile .flexbox dl{
  display: flex; flex-direction: column; justify-content: center; align-items: center; margin: 1em; }

.wrap-sp-tile .flexbox dl dt{ line-height: 1em; margin-bottom: 0.5em; }
.wrap-sp-tile .flexbox dl dd{ line-height:1.25em ; font-size:85%; margin-top: 0.2em; }



/*---------------------------------
  コースメニュー用ボックス
<div class="wrap-flex flex-typeB set-cousemenu">
<div class="flexbox box-cousemenu">
<div class="header">
/*---------------------------------*/
p + .set-cousemenu ,
picture + .set-cousemenu{ margin-top: calc( 3rem + 2vw );}

.box-cousemenu{
	font-size: 90%; border-width: 1px; border-style: solid; overflow: hidden33; border-radius: calc( 1px + 0.2vw );
	display: flex; flex-wrap: wrap; flex-direction: column; }

/* 見出し 左右幅 はみだし処理 行高 リセット */
.box-cousemenu .header{
	padding:calc( 12px + 0.3rem ) 8px; 
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.box-cousemenu h3{ border-width: 0; margin: 0 0 8px; padding: 0; }

/* 対象年齢アイコン */
.box-cousemenu ul.age{ display: flex; gap:8px; align-items: center; list-style: none; margin:0; padding:0 2px; }
.box-cousemenu ul.age li{
	font-family: sans-serif; font-size:calc( 10px + 0.1vw ) ; line-height: 100%; padding: calc( 2px + 0.1vw );
	border-width: 1px; border-style: solid; box-shadow: 1px 1px 2px 0 rgba(64,64,64,128);
	border-color:#ffffff33; background-color: #ffffff33; 
}
.box-cousemenu ul.age li.color-none{ background-color: transparent; color: #ffffff22;}
.box-cousemenu ul.age li + li{ margin-top: 0;}

/* 説明文 */
.box-cousemenu .text{ margin-top: calc( 12px + 0.5vw ); padding-left: calc( 12px + 0.1vw ); padding-right: calc( 12px + 0.1vw ); }
.box-cousemenu .text picture { height: calc( 120px + 4vw ) ; }
.box-cousemenu .text p:last-child { margin-bottom: 1.5rem; }

/* リンク領域 */
.box-cousemenu nav{
	position: relative; margin-top: auto ; margin-bottom:0; text-align: right;
	padding-top: calc( 0.8m + 0.2vw ); overflow: hidden;
}
.box-cousemenu nav b{
	display: inline-block; vertical-align: middle; padding: 8px 8px; line-height: 100%; overflow: hidden;
	border-radius: 4px 0 0 0; }
.box-cousemenu nav b i{ margin-left: 0.5em; }
.box-cousemenu nav a{ position: absolute; display: block;  width: 100%; height: 100%; opacity:0; }


/*---------------------------------
/*　改変履歴
/*---------------------------------*/

section.sec_updatelog{
	margin-bottom: 0; padding-top: 2rem ; border-top: 0; overflow:hidden;
}
section.sec_updatelog h2{
	font-size:110%; line-height: 175%;
	position: relative; text-align: center;
	padding: 1.5rem 12px; margin: 0 0 calc( 2rem + 2vw );
	border: 2px solid dimgray;
}

section.sec_updatelog h2::before{
	position: absolute; top: 2px; left: 2px; width: calc( 100% - 8px); height: calc(100% - 8px);
	content: ''; border: 2px dotted dimgray; 
}

.sec_updatelog ul{ font-size: 90%; list-style:none; margin-top:1rem ; margin-bottom:1rem ; margin-left:0; padding-left:0.5rem; }
.sec_updatelog ul li{ line-height:175%; border-bottom:1px dotted #a0a0a0; padding-top:0.75rem; padding-bottom:0.75rem; }
.sec_updatelog ul li > span{ margin-right:0.75em;}
