@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400&display=swap');

/* ページ全体
---------------------------------------------------- */

html {
 font-size: 62.5%;
}

body {
 color: #808080;
 font-size: 1.6rem;
 font-family: 'Noto Sans JP', sans-serif;
 letter-spacing: .1em;
 line-height: 1.8em;
 background: #FFF url(../images/bg-sta.jpg) repeat left top;
 text-size-adjust: 100%;
 -webkit-text-size-adjust: 100%;
}

html, body,
div, p,
ul, li, a,
img, input {
 margin: 0;
 padding: 0;
 box-sizing: border-box;
}

input, select, textarea, button {
 font-size: 1em;
 font-family: inherit;
 color: #666;
 letter-spacing: .1em;
 line-height: 1.8em;
}

a:link,
a:visited,
a:active {
 text-decoration: none;
 color: #808080;
}

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

img {
 border: none;
}


/* 枠組み
---------------------------------------------------- */

#content-wrap {
 margin: 0 auto;
 height: auto;
 @media screen and  ( max-width: 999px ){
  width: 90%;
  font-size: 1.4rem;
  line-height: 1.6em;
 }
 @media screen and ( min-width: 1000px ){
  width: 950px;
 }
}

#content {
 margin: 50px auto 100px;
 @media screen and ( max-width: 699px ){
  padding: 0 10px;
  width: 100%;
 }
 @media screen and ( min-width: 700px ) and ( max-width: 999px ){
  padding: 0 30px;
  width: 100%;
 }
 @media screen and ( min-width: 1000px ){
  padding: 0 50px;
  width: 950px;
 }
}


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

/* 最上部のメニュー */

#site-menu {
 display: flex;
 justify-content: space-between;
 border-bottom: 1px #DCDCDC solid;
 position: relative;
}

#site-name {
 padding: .9em 1em 1em;
 @media screen and ( min-width: 1000px ){
  padding: .6em 1em .7em;
 }
}

#site-name span {
 color: #A9A9A9;
}

#site-name a:hover {
 color: #C6C;
}

/* ロゴ部分 */

#site-info {
 text-align: center;
}

#site-logo {
 padding: 70px 0;
 @media screen and ( max-width: 699px ){
  padding: 50px 0;
 }
}

#site-logo img {
 @media screen and ( max-width: 699px ){
  width: auto;
  height: 40px;
 }
}

/* メインメニュー */

.main-menu-col {
 width: 18%;
 text-align: right;
 vertical-align: center;
  @media screen and ( max-width: 699px ){
  width: 40%;
 }
}

.main-menu-col p {
 margin: 0 0 .2em 0;
 padding: 0;
 text-align: left;
 border-bottom: 1px #DCDCDC solid;
}

#main-menu a {
 margin: 0 0 .2em;
 padding: .9em 1em 1em;
 display: block;
 @media screen and ( min-width: 1000px ){
  padding: .6em .7em .7em;
 }
}

.mm-name::after {
 margin: 0 0 0 5px;
 content: '≡';
}

input:checked + .mm-name::after {
 margin: 0 0 0 5px;
 content: '×';
}

#main-menu a:hover,
#main-menu .mm-on {
 color: #C6C;
 background-color: #F0DCF0;
}

/* メインメニューのタブ関連 */

#main-menu label {
 margin: 0;
 padding: .9em 1em 1em;
 color: #C6C;
 @media screen and ( min-width: 1000px ){
  padding: .6em 1em .7em;
 }
}

#main-menu label:hover {
 cursor: pointer;
}

.mm-name {
 display: block;
 order: -1;
}
 
input[name="tab-main-menu"] {
 display: none;
}

.mm-content {
 display: none;
}

input:checked + .mm-name + .mm-content {
 margin: 0;
 padding: 1em;
 width: 100%;
 display: flex;
 flex-wrap: wrap;
 justify-content: space-evenly;
 position: absolute;
 left: 0;
 z-index: 3;
 background-color: #FFF;
 border-bottom: 1px #DCDCDC solid;
 @media screen and ( max-width: 699px ) {
  padding: 1em 2em;
  justify-content: space-between;
 }
 @media screen and ( max-width: 999px ) {
  top: calc( 3em + 8px );
 }
 @media screen and ( min-width: 1000px ){
  top: calc( 2.7em + 7px );
 }
}

/* 最初＆キャラ設定ページへのリンク */

#sub-info {
 margin: -2.3em 0 .3em;
 padding: 0 1em 0 0;
 font-size: .9em;
 text-align: right;
}

#sub-info a {
 padding: 0 .5em;
 color: #999;
}

#sub-info a:hover,
#sub-info .si-on {
 color: #666;
 border-bottom: 1px #999 solid;
}

/* サブメニュー */

#sub-menu {
 display: flex;
 flex-wrap: wrap;
 justify-content: left;
 gap: 0 1em;
 background-color: #F0F0F0;
 position: relative;
}

#sub-menu span {
 padding: .9em 1em 1em;
 color: #66C;
 display: block;
 @media screen and ( min-width: 1000px ){
  padding: .6em 1em .7em;
 }
}

#sub-menu a {
 padding: .9em 1em 1em;
 display: inline-block;
 @media screen and ( min-width: 1000px ){
  padding: .6em 1em .7em;
 }
}

#sub-menu a:hover,
#sub-menu .sm-on {
 color: #66C;
 background-color: #DCDCF0;
}

/* サブメニューのタブ関連 */

#sub-menu label {
 margin: 0;
 padding: .9em 0 1em 1em;
 color: #66C;
 @media screen and ( min-width: 1000px ){
  padding: .6em 0 .7em 1em;
 }
}

#sub-menu label:hover {
 cursor: pointer;
}

.sm-name::after {
 margin: 0 0 0 5px;
 font-size: .8em;
 content: '▽';
}

input:checked + .sm-name::after {
 margin: 0 0 0 5px;
 font-size: .8em;
 content: '△';
}

.sm-name {
 display: block;
 order: -1;
}
 
input[name="tab-sub-menu"] {
 display: none;
}

.sm-content {
 width: 18%;
 text-align: right;
 vertical-align: center;
 display: none;
 @media screen and ( max-width: 699px ){
  width: 60%;
 }
}

input:checked + .sm-name + .sm-content {
 margin: 0;
 padding: 1em;
 display: block;
 position: absolute;
 left: 0;
 z-index: 3;
 background-color: #FFF;
 border-top: 1px #DCDCDC solid;
 border-bottom: 1px #DCDCDC solid;
 @media screen and ( max-width: 699px ) {
  padding: 1em 2em;
 }
 @media screen and ( max-width: 999px ) {
  top: calc( 3em + 8px );
 }
 @media screen and ( min-width: 1000px ){
  top: calc( 2.7em + 7px );
 }
}

#sub-menu .sm-content a {
 margin: 0 0 .2em;
 display: block;
}


/* 本文
---------------------------------------------------- */

/* 見出し h1 */

h1 {
 position: relative;
 margin: 50px 0 0;
 padding: 0 0 7px 1.5em;
 font-weight: normal;
 font-size: 1.4em;
}

h1::before {
 position: absolute;
 top: .2em;
 left: .3em;
 z-index: 2;
 width: .6em;
 height: .6em;
 content: '';
 border-radius: 20%;
}

h1::after {
 position: absolute;
 top: .5em;
 left: .6em;
 width: .6em;
 height: .6em;
 content: '';
 border-radius: 20%;
}

h1.cyan::before {
 background: #9CC;
}

h1.cyan::after {
 background: #DCF0F0;
}

h1.green::before {
 background: #9C9;
}

h1.green::after {
 background: #DCF0DC;
}

h1.yellow::before {
 background: #CC9;
}

h1.yellow::after {
 background: #F0F0DC;
}

p {
 padding: 1em 2.3em;
}


/* スマホ以外では改行を非表示 */
@media screen and ( min-width: 499px ){
 .pc-none {
  display: none;
 }
}


/* いいねボタン、リクエストフォーム関連
---------------------------------------------------- */

.form-area {
 margin: 0 2.3em 1em;
 padding: 0;
}

.form-area fieldset {
 border: none;
}

.form-area p {
 padding: 1em;
}

.form-area .req-form {
 font-size: 1.4rem;
 line-height: 1.6em;
 text-align: right;
}

.tab-cr-text {
 margin: 1em 0 0;
 padding: .2em 0;
 position: relative;
 display: block;
 cursor: pointer;
}

.cr-mes {
 text-align: left;
 border-top: 1px #A9A9A9 dashed;
 display: none;
 width: 100%;
}

input[name="tab-cr"] {
 display: none;
}

.tab-cr-text:after {
 margin: 0 0 0 .3em;
 content: '（フォームを開く）▽';
}

input:checked + .tab-cr-text:after {
 margin: 0 0 0 .3em;
 content: '（フォームを閉じる）△';
}

input:checked + .tab-cr-text + .cr-mes {
 display: block;
}

.wpcf7-list-item label span {
 margin: .8em 0 0;
 padding: .2em .5em .3em;
 border: 1px #CCC solid;
 background-color: #FFF;
 display: block;
 cursor: pointer;
}

.form-area textarea {
 padding: .3em .5em;
 width: 90%;
 font-family: none;
 font-size: 1em;
 font-weight: normal;
 color: #666;
 background-color: #FFF;
 background-clip: padding-box;
 border: 1px solid #CCC;
 border-radius: .25rem;
 height: 7.5em;
 display: block;
}

.form-area input,
.form-area textarea {
 margin: .5em .5em .5em 0;
}

/* 定型文の表示調整 */
input[name="checkbox-clap[]"] {
 display: none;
}

input:checked + .wpcf7-list-item-label {
 background-color: #DCDCDC;
 border: 1px #999 solid;
 color: #333;
}

.wpcf7-submit {
 margin: 0;
 padding: .5em 1em;
 letter-spacing: 2px;
 background-color: #F0F0F0;
 border: none;
 cursor: pointer;
 @media screen and ( max-width: 600px ){
  font-size: .9em;
  line-height: 1.5em;
 }
}

