html,body,div,span,iframe,h1,h2,h3,h4,p,pre,del,em,img,b,i,dl,dt,dd,ol,ul,li,form,table,tbody,tr,th,td,article,aside,footer,header,nav,section{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;box-sizing:border-box}
article,aside,footer,header,nav,section{display:block}
body{line-height:1;overflow-wrap:break-word;word-wrap:break-word}
input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;vertical-align:middle;box-sizing:border-box}
a{margin:0;padding:0;text-decoration:none;outline:none;font-size:100%;vertical-align:baseline;background:transparent}
a img{border-style:none}
ul,li{list-style-type:none}
.cf:before,.cf:after{content:" ";display:table}.cf:after{clear:both}

/* ===================================
背景,文字,リンク設定
=================================== */

html{
font-size:62.5%;
position:relative;
height:100%
}
body{
background:#fff;/* 背景 */
color:#000;/* 文字色 */
font-size:1.2em;/* 文字の大きさ */
font-family:'Segoe UI','游ゴシック Medium','Yu Gothic Medium','游ゴシック体',YuGothic,'Hiragino Kaku Gothic ProN','メイリオ',Meiryo,sans-serif;
letter-spacing:.1em;
line-height:1.5;
text-align:center;
height:100%;width:100%
}
/*  リンク
------------------------------ */
a{
color:inherit
}
#navi-left a:not(.bg-none),#main a:not(.bg-none){
border-bottom:1px dashed #000;
color:#f90;
display:inline-block;
margin:.1em 0;
position:relative;
transition:.6s
}
#navi-left a:not(.bg-none):hover,#main a:not(.bg-none):hover{
background:#f90;
border-radius:5px 0 5px 0;
color:#000
}

/* ===================================
基本
=================================== */

#index{
padding:20px;
height:auto;width:auto
}
#main-wrap{
margin-left:-350px /* (※1)と同じだけマイナス */
}
#main{
margin-left:350px /* (※1)と同じ */
}
#menu-wrap{
width:350px /* (※1) =メニュー幅(※2)+左側の幅(※3) */
}
#navi-right{
border-left:2px solid #000;
border-right:2px solid #000;
width:100px /* メニュー幅(※2) */
}
header,#navi-left{
width:250px /* 左側の幅(※3) */
}
#fl{
left:250px; /* 左側の幅(※3)と同じ */
width:100px  /* メニュー幅(※2)と同じ */
}
/*  いじると面倒な設定は一列にまとめています
------------------------------ */
#wrapper{position:relative;text-align:left;width:100%;height:100%;min-height:100%}
header{position:absolute;left:0;z-index:10}
#contents{position:relative;height:100%}
#main-wrap{float:right;height:100%;width:100%}
#main{height:100%;overflow:auto;-webkit-overflow-scrolling:touch}
#menu-wrap{float:left;height:100%}
#menu-wrap-inner{height:100%}
#navi-right{float:right;height:100%}
#navi-left{float:left;padding:0;text-align:left;height:100%}
#navi-right-inner,#navi-left-inner{height:100%;overflow:auto;-webkit-overflow-scrolling:touch}
#header-inner,#main,#navi-left-inner{padding:10px 20px}

/* ===================================
メニュー
=================================== */

#menu{
display:block;
font-weight:700;
letter-spacing:0;
margin:0 auto;
text-align:center;
height:100%;
overflow:auto;
-webkit-overflow-scrolling:touch
}
nav{
background:#000;
color:#fff
}
nav li{
background:#f90;
color:#000
}
nav li a,nav li span{
border-bottom:1px dotted #000;
color:#000;/* メニューの文字色 */
display:block;
position:relative
}
nav li a:hover,nav li span:hover{
background:#fff;
text-decoration:none;
transition:.6s
}
.sub-menu{
display:none;
overflow:hidden
}
.sub-menu li{
background:#fff
}
/*  メニューの「>」
------------------------------ */
nav li span:after{
border-top:1px solid #000; /* 色 */
border-right:1px solid #000; /* 色 */
content:"";
display:block;
margin-top:-3px;
position:absolute;
top:50%;left:10px;
height:5px;width:5px;
-ms-transform:rotate(45deg);
-webkit-transform:rotate(45deg);
transform:rotate(45deg);
transition:.2s
}
nav li span.open:after{
-ms-transform:rotate(135deg);
-webkit-transform:rotate(135deg);
transform:rotate(135deg)
}
/*  メニューを開くボタン非表示
------------------------------ */
#open{display:none}

/* ===================================
ページ上部へのリンク、著作権表示
=================================== */

#pagetop-pc,#pagetop-sm{
background:rgba(0,0,0,.5);/* 背景 */
color:#fff;/* 色 */
box-sizing:border-box;
border-radius:5px;
display:block;
line-height:14px;
padding-top:24px;
position:fixed;
text-align:center;
height:50px;width:50px;
bottom:20px;right:30px;
z-index:10
}
#pagetop-pc:before,#pagetop-sm:before{
content:'\25B2';
font-size:14px;
position:absolute;
width:100%;
right:20px;
left:0;top:10px
}
#pagetop-sm{
display:none;
bottom:-80px
}
#pagetop-pc:hover,#pagetop-sm:hover{
background:#f90
}
#fl{
background:#000;
color:#fff;
display:inline-block;
margin-top:20px;
position:absolute;
text-align:center;
bottom:0
}

/* ===================================
見出し、枠、線
=================================== */

h1{
font-size:1.3em;
line-height:1;
margin:.5em 0;
text-shadow:3px 3px 1px #ccc
}
#navi-left h2{
background:#000;
color:#fff;
font-size:1em;
margin:1em -20px 1em 0;
padding:0 2em;
position:relative;
height:20px;line-height:20px
}
#navi-left h2::after{
border-width:0 0 10px 10px;
border-style:solid;
border-color:#000 #000 #000 #fff;
content:'';
position:absolute;
top:0;left:0;
width:0
}
h2{
background:#000;
color:#fff;
font-size:1em;
height:20px;line-height:20px;
margin:1em 0 1em -20px;
padding:0 2em;
position:relative;
text-align:left
}
h2::after{
border-width:0 10px 10px 0;
border-style:solid;
border-color:#fff #fff #f90 #f90;
box-shadow:-1px 1px 2px rgba(0,0,0,.1);
content:'';
position:absolute;
top:0;right:0;
width:0
}
h3{
border-bottom:1px dashed;
font-size:1.3rem;
margin:20px 0
}
h3:first-letter{
color:#f90;
font-size:2rem
}
dt{
background:#000;
border-radius:2px;
color:#fff;
clear:both;
font-weight:700;
float:left;
margin:0 0 5px;
padding:.2em;
width:12em
}
dd{
border-bottom:dotted 1px #999;
margin:0 0 5px 14em;
padding:.2em
}
#navi-left dt{
clear:none;
float:none
}
#navi-left dd{
margin-left:20px
}
em{
font-style:normal;
font-weight:700
}
input,textarea{
background:transparent;
border:1px solid;
margin:3px 0;
width:250px
}
textarea{
height:50px
}
#navi-left input,#navi-left textarea{
width:100%
}
height:50px
}
hr{
border:0;
border-top:1px solid #ccc;
display:block;
margin:1em 0;
padding:0;
height:1px
}
.marker{
background:#fda;
background:-webkit-linear-gradient(rgba(255,221,170,0) 50%, #fda 0%);
background:linear-gradient(rgba(255,221,170,0) 50%, #fda 0%)
}
.dcline{
border-left:8px solid #000;
margin:5px 0;
padding:3px
}
.textbox{
border:2px solid;
margin:10px 0;
padding:3px;
text-align:center
}
.title{
color:#f90;
font-size:1.5em;
font-weight:700;
letter-spacing:.1em;
margin:2em 0;
text-align:right
}
.txt{
border-left:1px dotted;
color:#999;
margin:1em;
padding:0 0 0 1em
}
.frame{
background:#000;
border-radius:3px;
padding:6px;
box-shadow:3px 3px 3px #ccc
}

/* ===================================
横幅768pxで切り替え
=================================== */

@media screen and (max-width: 768px){
input,textarea{width:100%}
dt{clear:none;float:none}
dd{margin-left:20px}
img{height:auto;max-width:100%} /* 画像の縮小表示 */
}

/* ===================================
スマホ、タブレット用
横幅600pxで切り替え
=================================== */

@media screen and (max-width: 600px){
body{
font-size:1.4em;
line-height:1.7;
width:auto
}
#wrapper{
padding:15px 15px 70px
}
#header-inner{
padding:0 60px 10px 0; /* ボタン分空ける */
min-height:60px /* ボタン分高さを取る */
}
h2{
margin:1em 0
}
h2,#navi-left h2{
margin:2em 0
}
#navi-left h2::after{
border-color:#000 #000 #000 #f90
}
#fl{
border-radius:5px;
display:inherit;
margin:50px auto 20px;
padding:3px;
position:static
}
#wrapper,#contents{height:auto}
header{position:static;width:auto}
#main-wrap{float:none;margin-left:0;height:auto}
#main{margin-left:0;padding:0;height:auto}
#menu-wrap{float:none}
#menu-wrap-inner{padding:0 15px;overflow:auto;-webkit-overflow-scrolling:touch}
#navi-right{border:0;float:none;height:auto;width:100%}
#navi-left{float:none;height:auto;width:100%}
#navi-right-inner,#navi-left-inner{height:auto;overflow:visible;-webkit-overflow-scrolling:auto}
#navi-left-inner{padding:0}
#pagetop-pc{display:none}
#pagetop-sm{display:block}

/* ===================================
スマホ、タブレット用メニュー
=================================== */

/*  スライド
------------------------------ */
#menu-wrap{
background:rgba(0,0,0,.9); /* 背景色 */
color:#fff; /* 文字色 */
display:none;
padding:80px 10px 20px; /* ボタン分上を空ける */
position:fixed;
line-height:2;
height:100%;width:300px;
top:0;right:0;
z-index:1000
}
#side-bg{
background:rgba(51,51,51,.5)/* 周りの背景色 */
}
/*  メニュー
------------------------------ */
nav{
background:none
}
nav p{
background:#000;
border-left:10px solid #f90;
color:#fff;
margin:1em 0;
padding:0 2em;
text-align:left;
height:20px;line-height:20px
}
nav li a,nav li span{
border-bottom:0;
padding:5px 0 /* 一列の高さはここで調節 */
}
nav li a:hover,nav li span:hover{
background:#000;
color:#fff
}
/*  メニューの「>」
------------------------------ */
nav li span:after{
border-top:2px solid #fff; /* 色 */
border-right:2px solid #fff; /* 色 */
}
nav > ul > li{
border-bottom:1px solid #000
}
.sub-menu{
background:#fff;
border-top:1px dashed #000
}
/* サブメニューを一列にするなら削除 */
.sub-menu li{
display:inline-block;
width:50%
}

/*  メニューを開くボタン
------------------------------ */
#open{
background:#000;
color:#fff; /* 文字色 */
display:inline-block;
position:absolute;
text-align:center;
height:50px;width:50px; /* 大きさ */
right:15px; /* 位置 */
z-index:1001
}
#side-bg{display:none;position:fixed;height:100%;width:100%;top:0;left:0;z-index:999;cursor:pointer}
.open-text{position:absolute;bottom:0;left:0;width:100%}
#open.buttonclose{position:fixed;top:15px;right:15px}
#open-icon,#open-icon:before,#open-icon:after{background:#fff}/* 線の色 */
#open-icon{display:block;margin:-1px 0 0 -10px;position:absolute;top:20px;left:50%;height:2px;width:20px}
#open-icon:before,#open-icon:after{content:"";display:block;position:absolute;top:50%;left:0;height:2px;width:20px;transition:.3s}
#open-icon:before{margin-top:-8px}
#open-icon:after{margin-top:6px}
#open .close{background:transparent}
#open .close:before,#open .close:after{margin-top:0}
#open .close + .open-text{color:#f90}/* 開いた時の文字色 */
#open .close:before{-ms-transform:rotate(-45deg);-webkit-transform:rotate(-45deg);transform:rotate(-45deg);background:#f90}/* 開いた時の線の色 */
#open .close:after{-ms-transform:rotate(-135deg);-webkit-transform:rotate(-135deg);transform:rotate(-135deg);background:#f90}/* 開いた時の線の色 */
}