@charset "UTF-8";

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}

* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -o-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
}

body {
    line-height: 1;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
    display: block;
}

nav ul {
    list-style: none;
}

blockquote, q {
    quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}

a {
    margin: 0;
    padding: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}

/* change colours to suit your needs */
ins {
    background-color: #ff9;
    color: #000;
    text-decoration: none;
}

/* change colours to suit your needs */
mark {
    background-color: #ff9;
    color: #000;
    font-style: italic;
    font-weight: bold;
}

del {
    text-decoration: line-through;
}

abbr[title], dfn[title] {
    border-bottom: 1px dotted;
    cursor: help;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* change border colour to suit your needs */
hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #cccccc;
    margin: 1em 0;
    padding: 0;
}

input, select {
    vertical-align: middle;
}

.clearfix:after {
    content: ""; /* 新しい要素を作る */
    display: block; /* ブロックレベル要素に */
    clear: both;
    height: 0;
    visibility: hidden;
}

/*************   共通設定   *************/
img, video {
    border: none;
    vertical-align: bottom;
}

.clear {
    clear: both;
    display: block;
}

.right {
    float: right;
}

.right_img {
    float: right;
    margin: 0 0 0 15px;
}

.right_sp {
    float: right;
}

.right_img_sp {
    float: right;
    margin: 0 0 0 15px;
}

.left {
    float: left;
}

.left_img {
    float: left;
    margin: 0 15px 0 0;
}

.left_sp {
    float: left;
}

.left_img_sp {
    float: left;
    margin: 0 15px 0 0;
}

.center {
    text-align: center;
}

.normal {
    font-weight: normal;
}

.bold {
    font-weight: bold;
}

.mb5 {
    margin-bottom: 5px;
}

.mb10 {
    margin-bottom: 10px;
}

.mb15 {
    margin-bottom: 15px;
}

.mb20 {
    margin-bottom: 20px;
}

.mb25 {
    margin-bottom: 25px;
}

.mb30 {
    margin-bottom: 30px;
}

.mb35 {
    margin-bottom: 35px;
}

.mb40 {
    margin-bottom: 40px;
}

.mb45 {
    margin-bottom: 45px;
}

.mb50 {
    margin-bottom: 50px;
}

.mt5 {
    margin-top: 5px;
}

.mt10 {
    margin-top: 10px;
}

.mt15 {
    margin-top: 15px;
}

.mt20 {
    margin-top: 20px;
}

.mt25 {
    margin-top: 25px;
}

.mt30 {
    margin-top: 30px;
}

.mt35 {
    margin-top: 35px;
}

.mt40 {
    margin-top: 40px;
}

.mt45 {
    margin-top: 45px;
}

.mt50 {
    margin-top: 50px;
}

.ml5 {
    margin-left: 5px;
}

.ml10 {
    margin-left: 10px;
}

.ml15 {
    margin-left: 15px;
}

.ml20 {
    margin-left: 20px;
}

.ml25 {
    margin-left: 25px;
}

.ml30 {
    margin-left: 30px;
}

.ml35 {
    margin-left: 35px;
}

.ml40 {
    margin-left: 40px;
}

.ml45 {
    margin-left: 45px;
}

.ml50 {
    margin-left: 50px;
}

.mr5 {
    margin-right: 5px;
}

.mr10 {
    margin-right: 10px;
}

.mr15 {
    margin-right: 15px;
}

.mr20 {
    margin-right: 20px;
}

.mr25 {
    margin-right: 25px;
}

.mr30 {
    margin-right: 30px;
}

.mr35 {
    margin-right: 35px;
}

.mr40 {
    margin-right: 40px;
}

.mr45 {
    margin-right: 45px;
}

.mr50 {
    margin-right: 50px;
}

.font8 {
    font-size: 8px;
}

.font10 {
    font-size: 10px;
}

.font12 {
    font-size: 12px;
}

.font14 {
    font-size: 14px;
}

.font16 {
    font-size: 16px;
}

.font18 {
    font-size: 18px;
}

.font20 {
    font-size: 20px;
}

.font22 {
    font-size: 22px;
}

.font24 {
    font-size: 24px;
}

.font26 {
    font-size: 26px;
}

.font28 {
    font-size: 28px;
}

.font30 {
    font-size: 30px;
}

.font40 {
    font-size: 40px;
}

.font50 {
    font-size: 50px;
}

.caution {
    color: #F00;
}

.black01 {
    color: #000;
}

.orange01 {
    color: #F90;
}

.orange02 {
    color: #F60;
}

.gray01 {
    color: #CCC;
}

.gray02 {
    color: #999;
}

.gray03 {
    color: #666;
}

.gray04 {
    color: #333;
}

.red01 {
    color: #FF0004;
}

.mainvisual img.pic01 {
    width: 100%;
}

.mincho {
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

.marugo {
    font-family: "ヒラギノ丸ゴ Pro W4", "ヒラギノ丸ゴ Pro", "Hiragino Maru Gothic Pro", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "HG丸ｺﾞｼｯｸM-PRO", "HGMaruGothicMPRO";
}

/*************   リンク設定   *************/
a:link, a:visited {
    color: #000;
    text-decoration: none;
}

a:hover, a:active {
    color: #000;
    text-decoration: none;
}

a.style01:link, a.style01:visited {
    color: #000;
    text-decoration: underline;
}

a.style01:hover, a.style01:active {
    color: #000;
    text-decoration: none;
}

a.style02 {
    color: #000;
    text-decoration: none;
}

a.style02:hover {
    color: #000;
    text-decoration: underline;
}

a.hover:hover img {
    filter: alpha(opacity=80);
    -moz-opacity: 0.80;
    opacity: 0.80;
    transition: all 0.4s;
}

.show_sp {
    display: none !important;
}

.show_sp02 {
    display: none !important;
}


/****************************段落設定****************************/
h1 {
    margin: 0;
    padding: 0;
}

h2 {
    margin: 0;
    padding: 0;
}

h3 {
    margin: 0;
    padding: 0;
}

/**************************** body ****************************/
body {
    font-size: 1.0em;
    line-height: 1.5;
    color: #333;
    font-family: 'Yu Gothic', '游ゴシック', YuGothic, 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
    min-width: 100%;
}

/**************************** container ****************************/
.container {
    margin: 0;
    padding: 0;
}

.container_low01 {
    padding: 0 0;
}

.container_low02 {
    padding: 81px 0 60px;
}

.container_low03 {
    padding: 104px 0 60px;
}

.container_low04 {
    padding: 50px 0 60px;
}

.container_low05 {
    padding: 0 0 60px;
}

.contbox {
    padding: 0 10px;
}


/**************************** header ****************************/
header {
    margin: 0;
    padding: 0;
}

#headerbox {
    margin: 0 auto;
    padding: 0;
    position: fixed;
    top: 0;
    width: 100%;
    max-width: 769px;
    background-color: #FFF;
    height: 81px;
    z-index: 100;
}

#headerbox .searchbox {
    padding: 4px 15px 0;
    height: 35px;
    overflow: hidden;
}

#headerbox .searchbox .search {
    float: left;
    width: 90%;
    background-color: #EEE;
    border-radius: 2px;
    padding: 1px 10px;
    line-height: 1.0;
}

#headerbox .searchbox .search i {
    color: #666;
    vertical-align: middle;
    margin: 0 5px 0 0;
}

#headerbox .searchbox .search span.new {
    display: inline-block;
    background-color: #0F33D2;
    color: #FFF;
    padding: 4px 5px;
    font-size: 10px;
    font-weight: bold;
    margin: 0 5px;
}

#headerbox .searchbox .search input[type="search"].search_input {
    border: none;
    background-color: #EEE;
    width: 85%;
}

#headerbox .searchbox .qr {
    float: right;
    width: 10%;
    text-align: center;
    font-size: 20px;
    line-height: 1.0;
    padding: 4px 0 0 0;
}

#headerbox02 {
    margin: 0 auto;
    padding: 0;
    position: fixed;
    top: 0;
    width: 100%;
    max-width: 769px;
    background-color: #FFF;
    height: 104px;
    z-index: 100;
}

#headerbox02 .midashi {
    text-align: center;
    font-size: 15px;
    padding: 5px 0 5px;
    height: 35px;
}

#headerbox02 .select {
    width: 70%;
    margin: 0 auto 5px;
    border: 1px solid #333;
    border-radius: 4px;
    font-size: 0;
    height: 25px;
}

#headerbox02 .select a {
    display: inline-block;
    width: 50%;
    font-size: 12px;
    text-align: center;
    padding: 2px 0;
    height: 100%;
}

#headerbox02 .select a.active {
    background-color: #333;
    color: #FFF;
}

#headerbox02 .select a:nth-of-type(1) {
    border-right: 1px solid #333;
}

#headerbox02 .searchbox {
    padding: 4px 15px 0;
    height: 39px;
    overflow: hidden;
    border-top: 1px solid #CCC;
    border-bottom: 3px solid #EEE;
}

#headerbox02 .searchbox .search {
    width: 100%;
    background-color: #EEE;
    border-radius: 2px;
    padding: 5px 10px;
    line-height: 1.0;
}

#headerbox02 .searchbox .search i {
    color: #666;
    vertical-align: middle;
    margin: 0 5px 0 0;
}

#headerbox02 .searchbox .search input[type="search"].search_input {
    border: none;
    background-color: #EEE;
    width: 85%;
}

#headerbox03 {
    margin: 0 auto;
    padding: 0;
    position: fixed;
    top: 0;
    width: 100%;
    max-width: 769px;
    background-color: #FFF;
    height: 50px;
    z-index: 100;
    border-bottom: 1px solid #EEE;
}

#headerbox03 .back {
    float: left;
    width: 10%;
    text-align: center;
    padding: 5px 0 0 0;
}

#headerbox03 .back a {
    display: inline-block;
    padding: 8px 10px 5px 15px;
    position: relative;
}

#headerbox03 .back a .number {
    position: absolute;
    right: 0;
    top: 0;
    font-size: 11px;
    color: #FFF;
    width: 18px;
    height: 18px;
    border-radius: 12px;
    background-color: #FF5505;
    text-align: center;
    line-height: 1.0;
    padding: 3px 0 0 0;
}

#headerbox03 .next {
    position: absolute;
    right: 15px;
    top: 12px;
}

#headerbox03 .next02 {
    position: absolute;
    right: 45px;
    top: 12px;
}

#headerbox03 .next03 {
    position: absolute;
    right: 15px;
    top: 16px;
    font-size: 14px;
}

#headerbox03 .back a {
    display: inline-block;
    padding: 8px 10px 5px 15px;
}

#headerbox03 .imgbox {
    float: left;
    width: 20%;
    padding: 5px 0 0 0;
    text-align: center;
}

#headerbox03 .imgbox span {
    display: inline-block;
    width: 40px;
    height: 40px;
    overflow: hidden;
    border-radius: 20px;
}

#headerbox03 .name {
    float: left;
    width: 70%;
    padding: 15px 0 0 0;
    font-size: 15px;
}

#headerbox03 .name.name_title {
    width: 90%;
    padding: 15px 10% 0 0;
    text-align: center;
}

/**************************** footer ****************************/
footer {
    margin: 0;
    padding: 0;
}

#footerbox {
    margin: 0;
    padding: 20px 0 0 0;
    height: 180px;
    background: url(../img/bg_footer.png) 0 0 repeat-x;
}

#footerbox_in {
    margin: 0 auto;
    padding: 0;
}

#pagetop {
    margin: 0;
    padding: 0;
    position: fixed;
    bottom: 50px;
    right: 20px;
    display: none;
}

/**************************** section ****************************/
section {
    margin: 0;
    padding: 0;
}

article {
    margin: 0;
    padding: 0;
}

/**************************** nav ****************************/
nav {
    margin: 0;
    padding: 0;
}

#gnav {
    margin: 0;
    /*padding: 0 10%;*/
    width: 100%;
    border-bottom: 1px solid #EEE;
}

#gnav ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

#gnav ul li {
    margin: 0;
    padding: 0;
    width: 20%;
    float: left;
}

#gnav ul a {
    margin: 0;
    padding: 0;
    display: block;
    padding: 13px 0 0;
    text-align: center;
    font-size: 12px;
    font-weight: bold;
    color: #CCC;
    height: 46px;
    overflow: hidden;
}

#gnav ul a.active {
    color: #666;
    border-bottom: 2px solid #666;
}

#gnav-cast {
    margin: 0;
    padding: 0 10%;
    width: 100%;
    border-bottom: 1px solid #EEE;
}

#gnav-cast ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

#gnav-cast ul li {
    margin: 0;
    padding: 0;
    width: 25%;
    float: left;
}

#gnav-cast ul a {
    margin: 0;
    display: block;
    padding: 13px 0 0;
    text-align: center;
    font-size: 12px;
    font-weight: bold;
    color: #CCC;
    height: 46px;
    overflow: hidden;
}

#gnav-cast ul a.active {
    color: #666;
    border-bottom: 2px solid #666;
}

/****************************ul li設定****************************/

ul.list_style01 {
    margin: 0 0 0 0;
    padding: 0;
    list-style: none;
}

ul.list_style01 li {
    margin: 0 0 10px 0;
    padding: 0;
    list-style: none;
}

/****************************table設定****************************/
table.table_style01 {
    margin: 0;
    padding: 0;
    width: 100%;
    border-collapse: collapse;
}

table.table_style01 th {
    margin: 0;
    padding: 20px;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px dotted #CCCCCC;
}

table.table_style01 td {
    margin: 0;
    padding: 20px;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px dotted #CCCCCC;
}

table.table_inquiry {
    margin: 0;
    padding: 0;
    width: 100%;
    border-collapse: collapse;
}

table.table_inquiry th {
    margin: 0;
    padding: 20px;
    text-align: left;
    vertical-align: top;
    border: 1px dotted #CCCCCC;
}

table.table_inquiry td {
    margin: 0;
    padding: 20px;
    text-align: left;
    vertical-align: top;
    border: 1px dotted #CCCCCC;
}

table.table_inquiry td.btn {
    margin: 0;
    padding: 20px;
    text-align: center;
    vertical-align: top;
    border: none;
}

/**************************** form設定 IE_CSS3 ****************************/
input[type="submit"] {
    -webkit-appearance: none;
    border-radius: 0;
}

input[type="text"], input[type="email"], textarea {
    padding: 3px;
    font-size: 16px;
    border: 1px solid #CCC;
    border-radius: 3px;
}

textarea {
    width: 100%;
}

.w100 {
    width: 100%;
}

/*input[type="submit"]{
	border: none;
	background-color: #0055A7;
	width: 250px;
	padding: 15px 0;
	text-align: center;
	cursor: pointer;
	color: #FFF;
	font-weight: bold;
	font-size: 18px;
	margin: 0 10px 10px;
}
input[type="submit"].back{
	background-color: #666;
}
input[type="submit"]:hover{
	opacity: 0.8;
}*/

input::placeholder {
    color: #999;
}

.outer_low {
    max-width: 769px;
    margin: 0 auto;
}

.floiw_info_sp {
    position: fixed;
    bottom: 0;
    width: 100%;
    z-index: 999;
    max-width: 769px;
    margin: 0 auto;
    line-height: 1.0;
    background-color: #FFF;
}

.floiw_info_sp a {
    width: 20%;
    float: left;
    color: #CCC;
    text-align: center;
    padding: 8px 0 2px;
    display: block;
    height: 100%;
    position: relative;
    border-top: 1px solid #EEE;
}

.floiw_info_sp.member_footer a {
    width: 16.6667%;
    float: left;
    color: #CCC;
    text-align: center;
    padding: 8px 0 2px;
    display: block;
    height: 100%;
    position: relative;
    border-top: 1px solid #EEE;
}

.floiw_info_sp a.active {
    color: #666;
    border-top: 2px solid #666;
}

.floiw_info_sp a i {
    margin: 0 0 3px 0;
    font-size: 20px;
}

.floiw_info_sp a span.text {
    display: block;
    font-size: 10px;
}

.floiw_info_sp a span.number {
    position: absolute;
    top: 5px;
    right: 16%;
    display: block;
    height: 20px;
    width: 20px;
    border-radius: 20px;
    background-color: #0F33D2;
    color: #FFF;
    text-align: center;
    padding: 5px 0 0 0;
    font-size: 10px;
    line-height: 1.0;
    font-weight: bold;
}

.smsbox h1 {
    border-bottom: 1px solid #EEE;
    padding: 20px 0 15px;
    margin: 0 0 30px;
    color: #333;
    font-weight: normal;
    font-size: 20px;
    text-align: center;
}

.smsbox .text01 {
    text-align: center;
    margin: 0 0 15px;
}

.smsbox .textbox01 {
    text-align: center;
    margin: 0 0 20px;
}

.smsbox .textbox01 .tel01 {
    width: 20%;
}

.smsbox .textbox01 .tel02 {
    width: 60%;
}

.smsbox .text02 {
    font-size: 15px;
    margin: 0 0 15px;
}

.smsbox .btnbox {
    margin: 0 0 20px;
}

.smsbox .btnbox .btn {
    border: none;
    background-color: #0F33D2;
    width: 250px;
    padding: 10px 0;
    text-align: center;
    cursor: pointer;
    color: #FFF;
    font-weight: bold;
    font-size: 18px;
    margin: 0 auto;
    display: block;
    border-radius: 4px;
}

.smsbox .text03 {
    text-align: center;
    font-size: 15px;
    margin: 0 0 15px;
}

.smsbox .text03 a {
    text-decoration: underline;
}

.smsbox .text04 {
    text-align: center;
}

.footprintbox {
    background-color: #FFF7E4;
}

.footprintbox01 {
    border-bottom: 1px solid #EEE;
    padding: 15px 15px;
}

.footprintbox01 .imgbox {
    float: left;
    width: 25%;
    padding: 0 0;
    text-align: center;
}

.footprintbox01 .imgbox span {
    display: inline-block;
    border-radius: 60px;
    overflow: hidden;
    height: 60px;
    width: 60px;
}

.footprintbox01 .imgbox span img {
    max-width: 100%;
}

.footprintbox01 .textbox {
    float: left;
    width: 75%;
}

.footprintbox01 .textbox .text01 {
    font-size: 12px;
    color: #999;
    margin: 0 0 5px;
}

.footprintbox01 .textbox .text02 {
    font-weight: bold;
    margin: 0 0 5px;
    color: #555;
}

.footprintbox01 .textbox .text02 span {
    font-weight: normal;
    color: #666;
    font-size: 14px;
    display: inline-block;
    margin: 0 0 0 5px;
}

.footprintbox01 .textbox .text03 {
    font-size: 14px;
    margin: 0 0 5px;
}

.footprintbox01 .message-btn a {
    background-color: #0F33D2;
    width: 100%;
    padding: 5px 0;
    text-align: center;
    color: #FFF;
    font-size: 14px;
    margin: 0;
    display: block;
    border-radius: 4px;
}

.footprintbox01 .btn a i {
    margin: 0 5px 0 0;
    font-size: 16px;
}

.rankingbox01 {
    padding: 20px 15px;
}

.rankingbox01 .select01 {
    margin: 0 0 15px;
}

.rankingbox01 .select01 a {
    display: inline-block;
    margin: 0 5px;
    padding: 5px 15px;
    color: #999;
    background-color: #CCC;
    border-radius: 4px;
}

.rankingbox01 .select01 a.active {
    color: #FFF;
    background-color: #333;
}

.rankingbox01 .select02 a {
    display: inline-block;
    margin: 0 5px;
    padding: 3px 15px;
    color: #999;
    background-color: #FFF;
    border-radius: 4px;
    border: 1px solid #CCC;
    font-size: 14px;
}

.rankingbox01 .select02 a.active {
    color: #FFF;
    background-color: #333;
    border: 1px solid #333;
}

.rankingbox02 {
    padding: 20px 0 0 0;
}

.rankingbox02_01 {
    text-align: center;
    margin: 0 0 60px;
}

.rankingbox02_01 .imgbox {
    position: relative;
    width: 203px;
    height: 203px;
    margin: 0 auto;
}

.rankingbox02_01 .imgbox .img {
    text-align: center;
    position: relative;
    width: 200px;
    height: 200px;
    border-radius: 100px;
    margin: 0 auto 0;
    overflow: hidden;
    border: 3px solid #FFCD2A;
}

.rankingbox02_01.no2 .imgbox .img {
    border: 3px solid #999;
}

.rankingbox02_01.no3 .imgbox .img {
    border: 3px solid #A66300;
}

.rankingbox02_01 .imgbox img {
    vertical-align: top;
}

.rankingbox02_01 .imgbox .rank {
    position: absolute;
    left: 10px;
    top: 0;
    display: inline-block;
    background-color: #FFCD2A;
    color: #FFF;
    width: 50px;
    height: 50px;
    border-radius: 25px;
    z-index: 10;
    text-align: center;
    line-height: 1.0;
    font-size: 14px;
    padding: 10px 0 0 0;
}

.rankingbox02_01.no2 .imgbox .rank {
    background-color: #999;
}

.rankingbox02_01.no3 .imgbox .rank {
    background-color: #A66300;
}

.rankingbox02_01 .imgbox .rank span {
    display: block;
    font-size: 20px;
}

.rankingbox02_01 .imgbox .up {
    position: absolute;
    bottom: 20px;
    right: 10px;
    width: 30px;
    height: 30px;
    border-radius: 15px;
    z-index: 10;
    background-color: #FF5505;
    color: #FFF;
}

.rankingbox02_01 .imgbox .up i {
    vertical-align: middle;
}

.rankingbox02_01 .imgbox .down {
    position: absolute;
    bottom: 20px;
    right: 10px;
    width: 30px;
    height: 30px;
    border-radius: 15px;
    z-index: 10;
    background-color: #78BD0D;
    color: #FFF;
}

.rankingbox02_01 .imgbox .down i {
    vertical-align: middle;
}

.rankingbox02_01 .textbox {
    padding: 10px 0 15px 0;
    font-size: 18px;
}

.rankingbox02_01 .textbox span {
    font-size: 14px;
}

.rankingbox02_01 .iconbox span {
    display: block;
    margin: 0 auto 5px;
    width: 150px;
    background-color: #EEE;
    color: #666;
    border-radius: 4px;
    font-size: 14px;
    padding: 5px 0;
}

.rankingbox02_01 .iconbox span i {
    color: #FFCD2A;
}

.messagebox_01 {
    padding: 10px 0 7px;
    border-bottom: 1px solid #EEE;
    position: relative;
    display: block;
}

.messagebox_01 .imgbox {
    width: 30%;
    float: left;
    text-align: center;
}

.messagebox_01 .imgbox span {
    display: inline-block;
    width: 60px;
    height: 60px;
    border-radius: 30px;
    overflow: hidden;
}

.messagebox_01 .imgbox span img {
    max-width: 100%;
}

.messagebox_01 .textbox {
    width: 70%;
    float: left;
    padding: 5px 0 0 0;
}

.messagebox_01 .textbox .name {
    font-size: 15px;
    font-weight: bold;
}

.messagebox_01 .textbox .name span {
    font-size: 14px;
    font-weight: normal;
}

.messagebox_01 .textbox .text {
    font-size: 14px;
    color: #999;
}

.messagebox_01 .date {
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 11px;
    color: #999;
}

.messagebox_01 .number {
    position: absolute;
    bottom: 10px;
    right: 10px;
    font-size: 16px;
    color: #FFF;
    width: 24px;
    height: 24px;
    border-radius: 12px;
    background-color: #FF5505;
    text-align: center;
    line-height: 1.0;
    padding: 3px 0 0 0;
}

.message_detailbox {
    padding: 20px 10px 0 0;
}

.message_detailbox .ms_date {
    text-align: center;
    margin: 0 0 10px;
    font-size: 12px;
}

.message_detailbox .user01 {
    margin: 0 0 15px;
}

.message_detailbox .user01 .imgbox {
    float: left;
    width: 20%;
    text-align: center;
}

.message_detailbox .user01.user01_right .imgbox {
    float: right;
}

.message_detailbox .user01 .imgbox span {
    display: inline-block;
    width: 40px;
    height: 40px;
    border-radius: 20px;
    overflow: hidden;
}

.message_detailbox .user01 .imgbox span img {
    max-width: 100%;
}

.message_detailbox .user01 .text {
    float: left;
    width: 68%;
    border: 1px solid #DDD;
    border-radius: 8px;
    padding: 10px 15px;
    position: relative;
    font-size: 15px;
}

.message_detailbox .user01 .text .time {
    position: absolute;
    bottom: 0px;
    right: -38px;
    font-size: 12px;
}

.message_detailbox .user01.user01_right .text {
    float: right;
}

.message_detailbox .user01.user01_right .text .time {
    right: inherit;
    left: -38px;
}

.message_detailbox .user01 .date p {
    vertical-align: bottom;
    display: inline-block;
}

.castbox {
    padding: 20px 0 0;
}

.castbox .midashi01 {
    font-size: 24px;
    font-weight: bold;
    margin: 0 0 15px;
    padding: 0 15px;
}

.castbox01 {
    border-bottom: 3px solid #DDD;
    padding: 0 15px;
}

.castbox01 .text01 {
    font-size: 12px;
    margin: 0 0 10px;
}

.castbox01 .btnbox01 {
    font-size: 0;
}

.castbox01 .btnbox01 a {
    background-color: #EEE;
    display: inline-block;
    font-size: 11px;
    color: #999;
    border-radius: 4px;
    padding: 7px 0 7px 45px;
    width: 49%;
    margin: 0 0.5% 5px;
    vertical-align: top;
    position: relative;
}

.castbox01 .btnbox01 a span {
    color: #333;
    font-weight: bold;
    font-size: 13px;
    display: block;
}

.castbox01 .btnbox01 a.btn01:before {
    content: "\f017";
    font-weight: 400;
    font-family: "Font Awesome 5 Free";
    font-size: 20px;
    position: absolute;
    left: 4%;
    top: 20%;
}

.castbox01 .btnbox01 a.btn02:before {
    content: "\f007";
    font-weight: 400;
    font-family: "Font Awesome 5 Free";
    font-size: 20px;
    position: absolute;
    left: 4%;
    top: 20%;
}

.castbox01 .btnbox01 a.btn03:before {
    content: "\f0f3";
    font-weight: 400;
    font-family: "Font Awesome 5 Free";
    font-size: 20px;
    position: absolute;
    left: 4%;
    top: 20%;
}

.castbox01 .btnbox01 a.btn04:before {
    content: "\f005";
    font-weight: 400;
    font-family: "Font Awesome 5 Free";
    font-size: 20px;
    position: absolute;
    left: 4%;
    top: 20%;
}

.castbox01 .btnbox01 a.btn05:before {
    content: "\f279";
    font-weight: 400;
    font-family: "Font Awesome 5 Free";
    font-size: 20px;
    position: absolute;
    left: 4%;
    top: 20%;
}

.castbox01 .btnbox02 {
    padding: 5px 0 15px;
}

.castbox01 .btnbox02 a {
    width: 99%;
    margin: 0 auto;
    display: block;
    background-color: #0F33D2;
    color: #FFF;
    border-radius: 4px;
    padding: 10px 0;
    text-align: center;
    position: relative;
    font-weight: bold;
}

.castbox01 .btnbox02 a:before {
    content: "\f30b";
    font-weight: bold;
    font-family: "Font Awesome 5 Free";
    color: #FFF;
    font-size: 16px;
    position: absolute;
    right: 3%;
    top: 20%;
}

.castbox01 .input-box-wrapper .state-row{
    display:flex;
    align-items:center;
    gap:12px;
}
.castbox01 .input-box-wrapper .state-label{
    flex:0 0 100px;
    white-space:nowrap;
}
.castbox01 .input-box-wrapper .cell{
    flex:1 1 0;
    min-width:0;
}

.castbox01 .input-box-wrapper .input-shell{
    border:1px solid #bbb;
    background:#fff;
    padding:6px 10px;
    margin-left: 10px;
}

.castbox01 .input-box-wrapper .status-input{
    display:block;
    width:100%;
    border:0;
    outline:0;
    background:transparent;
    line-height:1.4;
    font:inherit;
}

.castbox01 .input-box-wrapper ion-item{
    overflow:visible;
}
.castbox02 .back{
    margin-bottom: 15px;
}
.castbox02 {
    padding: 20px 15px 0;
}

.castbox02.castbox02_mb0 {
    padding: 0 15px 0;
}

.castbox02 .midashi {
    margin: 0 0 15px;
}

.castbox02 .midashi p {
    float: left;
    font-weight: bold;
}

.castbox02 .midashi a {
    float: right;
    color: #0F33D2;
    font-weight: bold;
    font-size: 14px;
}

.castbox02_01 ul {
    list-style: none;
    font-size: 0;
}

.castbox02_01 ul li {
    display: inline-block;
    width: 46%;
    margin: 0 2% 20px;
    background-color: #FFF;
    box-shadow: 0 0 7px #DDD;
    border-radius: 6px;
    vertical-align: top;
}

.castbox02_01 ul li .imgbox {
    height: 180px;
    overflow: hidden;
    border-radius: 6px 6px 0 0;
    position: relative;
}

.castbox02_01 ul li .imgbox .star {
    position: absolute;
    right: 5px;
    top: 5px;
    font-size: 20px;
    color: #999;
}

.castbox02_01 ul li .imgbox .star.active {
    position: absolute;
    right: 5px;
    top: 5px;
    font-size: 20px;
    color: #FFCC2D;
}

.castbox02_01 ul li .imgbox .cast_calss {
    position: absolute;
    left: 0;
    bottom: 0;
    font-size: 12px;
    color: #FFF;
    background-color: #0F33D2;
    display: inline-block;
    padding: 2px 10px;
}

.castbox02_01 ul li .imgbox img {
    width: 100%;
}

.castbox02_01 ul li .textbox {
    padding: 5px 10px;
}

.castbox02_01 ul li .textbox .name {
    font-weight: bold;
    font-size: 15px;
    margin: 0 0 5px;
}

.castbox02_01 ul li .textbox .name span {
    font-weight: normal;
    font-size: 14px;
}

.castbox02_01 ul li .textbox .text {
    font-size: 13px;
    margin: 0 0 5px;
}

.castbox02_01 ul li .textbox .fee,
.castbox02_01 ul li .textbox .status_1,
.castbox02_01 ul li .textbox .status_2{
    font-size: 13px;
    font-weight: bold;
}

.castbox02_01 ul li .textbox .btn {
    font-size: 13px;
    font-weight: bold;
    width: 99%;
}

.castbox02_01 ul li .textbox .btn a {
    width: 99%;
    margin: 0 auto;
    display: block;
    background-color: #FFFFFF;
    color: #0F33D2;
    border: 1px solid #0F33D2;
    border-radius: 4px;
    padding: 10px 0;
    text-align: center;
    position: relative;
}

.castbox02_01 ul li .textbox .btn a.active {
    background-color: #0F33D2;
    color: #FFFFFF;
    border: 1px solid #0F33D2;
}

.castbox03 {
    padding: 0 15px 0;
}

.castbox03 .text01 {
    font-size: 20px;
    font-weight: bold;
    margin: 0 0 10px;
}

.castbox03 .text02 {
    font-size: 15px;
    margin: 0 0 15px;
}

.castbox03_01 {
    padding: 0 0 15px;
}

.castbox03_01 .text03 {
    font-size: 16px;
    font-weight: bold;
    margin: 0 0 10px;
}

.castbox03_01 ul {
    list-style: none;
    font-size: 0;
}

.castbox03_01 ul li {
    display: inline-block;
    padding: 0 2.5px 5px;
}

.castbox03_01 ul li a {
    display: inline-block;
    padding: 5px 10px;
    border: 1px solid #DDD;
    color: #999;
    border-radius: 4px;
    font-size: 14px;
}

.castbox03_01 ul li a.active {
    background-color: #333;
    border: 1px solid #333;
    color: #FFF;
}

.castbox03_02 {
    position: fixed;
    background-color: #FFF;
    bottom: 0;
    left: 0;
    padding: 15px 15px;
    width: 100%;
}

.castbox03_02 button {
    width: 100%;
    background-color: #0F33D2;
    color: #FFF;
    text-align: center;
    display: block;
    padding: 8px 0;
    border-radius: 4px;
    font-size: 14px;
}

.castbox03_03 {
    margin: 0 0 15px;
}

.castbox03_03 .text04 {
    font-weight: bold;
    font-size: 15px;
    margin: 0 0 5px;
}

.castbox03_03 .text05 {
    font-size: 14px;
}

.castbox03_04 {
    border-bottom: 2px solid #DDD;
    padding: 0 10px 5px;
    margin: 0 0 15px;
}

.castbox03_04 ul {
    list-style: none;
}

.castbox03_04 ul li {
    margin: 0 0 10px;
    font-size: 14px;
}

.castbox03_04 ul li span {
    font-weight: bold;
}

.castbox03_04 ul li i {
    margin: 0 10px 0 0;
}

.castbox03_05 {
    border-bottom: 2px solid #DDD;
    padding: 0 10px 15px;
    margin: 0 0 20px;
}

.castbox03_05 .text06 {
    font-size: 15px;
    font-weight: bold;
    margin: 0 0 5px;
}

.castbox03_05 .text06 {
    font-size: 15px;
    font-weight: bold;
    margin: 0 0 5px;
}

.castbox03_05 ul {
    list-style: none;
    font-size: 0;
}

.castbox03_05 ul li {
    display: inline-block;
    padding: 0 2.5px 5px;
}

.castbox03_05 ul li span {
    display: inline-block;
    padding: 5px 10px;
    border: 1px solid #DDD;
    color: #999;
    border-radius: 4px;
    font-size: 14px;
}

.castbox03_06 .text07 {
    float: left;
    width: 20%;
    font-size: 14px;
}

.castbox03_06 .text08 {
    float: right;
    width: 80%;
    text-align: right;
    font-size: 14px;
}

.cast_detail_box00 {
    margin: 0 0 20px;
}

.cast_detail_box00 .imgbox {
    position: relative;
    height: 300px;
    overflow: hidden;
}

.cast_detail_box00 .imgbox img {
    width: 100%;
}

.cast_detail_box00 .imgbox .back{
    position: absolute;
    left: 10px;
    top: 10px;
    font-size: 30px;
    opacity: 0.6;
    z-index: 10;
}

.cast_detail_box00 .imgbox .infobox {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    padding: 30px 10px 10px 10px;
    font-size: 14px;
    color: #FFF;
    background: -moz-linear-gradient(top, transparent, rgba(0, 0, 0, 0.7));
    background: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.7));
    background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.7));
    z-index: 10;
}

.cast_detail_box00 .imgbox02 {
    padding: 15px 10px;
    border-bottom: 2px solid #EEE;
}

.cast_detail_box00 .imgbox02 span {
    display: inline-block;
    width: 60px;
    height: 60px;
    border-radius: 30px;
    overflow: hidden;
    margin: 0 2px;
    cursor: pointer;
}

.cast_detail_box00 .imgbox02 span img {
    width: 100%;
}

.cast_detail_box00 .imgbox02 span.active {
    border: 2px solid #0F33D2;
}

.cast_detail_box .cast_detail_box01{
    display: flex;
}
.cast_detail_leftBox01{
    width: 50%;
}
.cast_detail_rightBox01{
    width: 50%;
}

.cast_detail_box01 {
    padding: 0 15px;
    margin: 0 0 20px;
}

.cast_detail_box01 .text01 {
    font-size: 15px;
    font-weight: bold;
    color: #0F33D2;
    margin: 0 0 5px;
}

.cast_detail_box01 .textbox {
    font-size: 14px;
}

.cast_detail_box02 {
    padding: 0 15px;
    margin: 0 0 20px;
}

.cast_detail_box02 .text01 {
    font-size: 15px;
    font-weight: bold;
    color: #0F33D2;
    margin: 0 0 10px;
}

.cast_detail_box02 table {
    border-top: 1px solid #DDD;
    font-size: 13px;
    width: 100%;
}

.cast_detail_box02 table tr {
    border-bottom: 1px solid #DDD;
}

.cast_detail_box02 table th {
    padding: 10px 10px;
    vertical-align: top;
    text-align: left;
    font-weight: normal;
}

.cast_detail_box02 table td {
    padding: 10px 10px;
    vertical-align: top;
    text-align: right;
    font-weight: normal;
}
.cast_detail_box03 {
    padding: 0 15px;
    margin: 0 0 20px;
}
.cast_detail_box03 .text01 {
    font-size: 15px;
    font-weight: bold;
    color: #0F33D2;
    margin: 0 0 10px;
}

.cast_detail_box03 table {
    width: 100%;
    text-align: center;
    border-collapse: collapse;
    table-layout: fixed;
}

.cast_detail_box03 table th,
.cast_detail_box03 table td {
    border: 1px solid #DDD;
    padding: 10px;
}

.schedulebox table {
    font-size: 13px;
    width: 100%;
    text-align: center;
}

.schedulebox table th,
.schedulebox table td {
    border: 1px solid #DDD;
    padding: 10px 10px;
    vertical-align: top;
    font-weight: normal;
}

.schedule .castbox02_01 ul li{
    display: flex;
    width: 100%;
}
.schedule .imgbox{
    aspect-ratio: 3 / 4;
    overflow: hidden;
    position: relative;
}
.schedule .castbox02_01 ul li .imgbox {
    width: 37%;
    height: 200px;
    border-radius: 6px 0 0 6px;
}
.schedule .castbox02_01 ul li .imgbox img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 23%;
    display: block;
}
.schedule .textbox{
    width: 63%;
}
.schedulebox .text{
    font-weight: bold;
    font-size: 15px !important;
}
.review_date{
    text-align: right;
}
.review_detail_box{
    display: flex;
    justify-content: space-between;
}
.review_score{
    color: #8a6d3b;
}
.tweetbox {
    padding: 0 0 0 0;
}
.tweet_button_box01{
    padding: 20px 10px;
    position: relative;;
}
.tweetbox01 {
    border-bottom: 2px solid #DDD;
    padding: 20px 10px;
    position: relative;
}

.tweetbox01 .favorite {
    position: absolute;
    right: 10px;
    top: 20px;
    font-size: 14px;
    color: #999;
}

.tweetbox01 .favorite.active i {
    color: #FFCC2D;
}

.tweetbox01 .imgbox {
    width: 30%;
    float: left;
    text-align: center;
}

.tweetbox01 .imgbox span {
    display: inline-block;
    width: 60px;
    height: 60px;
    border-radius: 30px;
    overflow: hidden;
}

.tweetbox01 .imgbox span img {
    max-width: 100%;
}

.tweetbox01 .textbox {
    width: 70%;
    float: left;
    padding: 5px 0 0 0;
}

.tweetbox01 .textbox .name {
    font-size: 14px;
    font-weight: bold;
    margin: 0 0 0;
}

.tweetbox01 .textbox .name span {
    font-weight: normal;
}

.tweetbox01 .textbox .date {
    font-size: 12px;
    font-weight: bold;
    margin: 0 0 10px;
    color: #999;
}

.tweetbox01 .textbox .text {
    font-size: 14px;
}

.tweetbox01 .textbox .text img {
    max-width: 100%;
    margin: 10px 0;
    object-fit: cover;
    width: 640px;
    height: 340px;
}

.tweetbox01 .textbox .text video {
    max-width: 100%;
    margin: 10px 0;
}
.tweet_delete_btnBox{
    text-align: right;
}
.tweet_delete_btnBox{
    text-align: right;
}
.tweet_delete_btn{
    color: red;
 }
.tweet_delete_btn:hover{
    color: red;
}
.tweet_edit_btnBox{
    text-align: right;
}
.tweet_edit_btn{
    color: #0c84ff !important;
}
.tweet_edit_btn:hover{
    color: #0c84ff;
}
.tweetbox01 #delete_media_section{
    margin-top: 1rem;
}
.mypagebox{
    position: relative;
}

.mypagebox03_01 .imgbox .back{
    position: absolute;
    left: 15px;
    top: 15px;
    font-size: 30px;
    opacity: 0.6;
    z-index: 999;
}
.mypagebox01 {
    text-align: center;
    background-color: #FFF7E4;
    padding: 20px 0;
}

.mypagebox01 a {
    display: block;
    margin: 0 auto 5px;
    width: 90px;
    height: 90px;
    border-radius: 45px;
    overflow: hidden;
    position: relative;
}

.mypagebox01 a span {
    font-size: 10px;
    position: absolute;
    bottom: 10px;
    right: 10px;
    color: #FFF;
    width: 20px;
    height: 20px;
    border-radius: 12px;
    background-color: #FF5505;
    text-align: center;
    line-height: 1.0;
    padding: 3px 0 0 0;
}

.mypagebox01 img {

    width: 100%;
}

.mypagebox01 p {
    font-size: 15px;
}

.mypagebox02 a {
    display: block;
    padding: 10px 15px 10px 20px;
    border-bottom: 1px solid #DDD;
    font-size: 15px;
    position: relative;
}

.mypagebox02 a:after {
    content: "\f105";
    font-weight: bold;
    font-family: "Font Awesome 5 Free";
    color: #313131;
    position: absolute;
    right: 10px;
    top: 30%;
    font-size: 12px;
}

.mypagebox02 a i {
    margin: 0 10px 0 0;
}

.mypagebox02 a.icon01 i {
    margin: 0 15px 0 0;
}

.mypagebox03 {
    text-align: center;
    background-color: #EEE;
    padding: 0 0 1px;
}

.mypagebox03_01 {
    padding: 20px 0;
}

.mypagebox03_01 .imgbox {
    margin: 0 0 10px;
}

.mypagebox03_01 .imgbox span {
    display: block;
    margin: 0 auto 0;
    width: 120px;
    height: 120px;
    border-radius: 60px;
    overflow: hidden;
    position: relative;
}

.mypagebox03_01 .imgbox span img {
    max-width: 100%;
}

.mypagebox03_01 .imgbox02 {
    text-align: left;
    padding: 0 15px;
}

.mypagebox03_01 .imgbox02 a {
    display: inline-block;
    margin: 0 5px;
    width: 70px;
    height: 70px;
    border-radius: 35px;
    overflow: hidden;
    position: relative;
}

.mypagebox03_01 .imgbox02 a img {
    max-width: 100%;
}

.mypagebox03_01 .imgbox02 a.link_add {
    background-color: #0F33D2;
    color: #FFF;
    font-size: 30px;
    font-weight: bold;
    text-align: center;
    padding: 17px 0 0 0;
}

.mypagebox03_02 ul {
    list-style: none;
}

.mypagebox03_02 ul li {
    background-color: #FFF;
    margin: 0 0 15px;
}

.mypagebox03_02 ul li a {
    display: block;
    text-align: left;
    padding: 10px 20px;
    font-size: 15px;
    position: relative;
}

.mypagebox03_02 ul li a:after {
    content: "\f105";
    font-weight: bold;
    font-family: "Font Awesome 5 Free";
    color: #313131;
    position: absolute;
    right: 10px;
    top: 30%;
    font-size: 12px;
}

.mypagebox04_01 {
    text-align: center;
    margin: 0 0 20px;
    padding: 20px 0 0 0;
}

.mypagebox04_01 .text01 {
    font-size: 14px;
    margin: 0 0 5px;
}

.mypagebox04_01 .text02 {
    font-size: 24px;
}

.mypagebox04_02 ul {
    margin: 0 0 0;
    border-top: 1px solid #DDD;
    list-style: none;
}

.mypagebox04_02 ul li {
    border-bottom: 1px solid #DDD;
}

.mypagebox04_02 ul li a {
    display: block;
    text-align: left;
    padding: 15px 20px;
    font-size: 15px;
    position: relative;
}

.mypagebox04_02 ul li a:after {
    content: "\f105";
    font-weight: bold;
    font-family: "Font Awesome 5 Free";
    color: #313131;
    position: absolute;
    right: 10px;
    top: 30%;
    font-size: 12px;
}

.mypagebox04_03 {
    padding: 20px 15px 20px;
    border-top: 1px solid #DDD;
    text-align: center;
}

.mypagebox04_03 .text01 {
    font-size: 15px;
    font-weight: bold;
}

.mypagebox04_03 .text02 {
    padding: 10px 0;
}

.mypagebox04_03 .text02 .text02_01 {
    width: 100%;
}

.mypagebox04_03 .text03 {
    font-size: 13px;
    color: #FF0004;
    margin: 0 0 10px;
}

.mypagebox04_03 .btn a {
    background-color: #0F33D2;
    color: #FFF;
    text-align: center;
    display: block;
    padding: 8px 0;
    border-radius: 4px;
    font-size: 14px;
}

.mypagebox05 {
    padding: 20px 0 0 0;
    background-color: #EEE;
}

.mypagebox05_01 {
    margin: 0 0 20px;
}

.mypagebox05_01 a {
    display: block;
    padding: 15px 15px;
    background-color: #FFF;
    font-size: 15px;
    margin: 0 0 10px;
    color: #0F33D2;
    font-weight: bold;
}

.mypagebox05_01 p {
    padding: 0 15px;
    font-size: 13px;
}

.mypagebox05_02 ul {
    margin: 0 0 0;
    border-top: 1px solid #DDD;
}

.mypagebox05_02 ul li {
    border-bottom: 1px solid #DDD;
    position: relative;
}

.mypagebox05_02 ul li a {
    display: block;
    text-align: left;
    padding: 10px 20px;
    font-size: 15px;
    position: relative;
    background-color: #FFF;
}

.mypagebox05_02 ul li a span {
    display: inline-block;
    float: left;
}

.mypagebox05_02 ul li a span img {
    width: 30px;
    margin: 0 10px 0 0;
}

.mypagebox05_02 ul li:after {
    content: "\f105";
    font-weight: bold;
    font-family: "Font Awesome 5 Free";
    color: #313131;
    position: absolute;
    right: 10px;
    top: 30%;
    font-size: 12px;
}


/*=========================
top_official
=========================*/
.top_official img {
    max-width: 100%;
}

.official_box01 {
    margin: 0 0 20px;
}

.official_box01 p {
    font-size: 13px;
    padding: 0.5em 0;
    text-align: center;
}

.emphasize {
    font-size: 1.5em!important;
    font-weight: bold;
    color: #F84B69;
    line-height: 94%;
}

.official_box02 {
}

.official_box02 h2 {
    margin: 0 0 15px;
    padding: 0 15px;
}

.official_box02_in {
    background: url("../img/official/cast_bg.jpg") 0 0 no-repeat;
    background-size: cover;
    padding: 10px 0 5px;
}

.official_box02_01 {
    padding: 0 5%;
}

.official_box02_01 img {
    border-radius: 8px;
    border: 1px solid #FF6B82;
    width: 100%;
}

.official_box03 {
    background-color: #FF6B82;
    padding: 40px 0 0;
    text-align: center;
    margin: 0 0 20px;
}

.official_box03 h2 {
    margin: 0 0 30px;
    padding: 0 15px;
}

.official_box03 .bannerbox {
    padding: 0 20px 20px;
}

.official_box03 .bannerbox img {
    padding: 0 0 10px;
}

.official_box04 {
    text-align: center;
    margin: 0 15px 30px;
}

.official_box04 p {
    font-size: 15px;
    font-weight: bold;
}

.official_box05 {
    margin: 0 0 10px;
    padding: 0 15px;
}

.official_box05 h2 {
    margin: 0 0 40px;
    padding: 0 10%;
}

.official_box05_01 {
    position: relative;
    margin: 0 0 40px;
}

.official_box05_01 h3 {
    margin: 0 0 5px;
    font-weight: bold;
    text-align: right;
    font-size: 15px;
}

.official_box05_01 .text {
    padding: 40px 15px 15px;
    background-color: #DDF9FF;
    font-size: 14px;
}

.official_box05_01 .pic01 {
    position: absolute;
    left: 1%;
    top: -30px;
    width: 85px;
}

.official_box06 {
    margin: 0 0 10px;
}

.official_box06 h2 {
    padding: 0 30%;
    margin: 0 0 10px;
}

.official_box07 {
    background-color: #FD4A67;
    padding: 15px;
    text-align: center;
    margin: 0 0 40px;
}

.official_box07_01 {
    position: relative;
    margin: 0 0 10px;
}

.official_box07_01 .bg {
    width: 100%;
}

.official_box07_01 .pic01 {
    width: 50%;
    position: absolute;
    left: 0;
    right: 0;
    margin: 0 auto;
    top: 32%;
}

.official_box07_01 .pic02 {
    width: 50%;
    position: absolute;
    left: 0;
    right: 0;
    margin: 0 auto;
    top: 25%;
}

.footerbox01 {
    text-align: center;
    padding: 30px 0 0 0;
}

.footerbox01 .footer_link {
    font-size: 11px;
    margin: 0 0 20px;
}

.footerbox01 .footer_link a {
    display: inline-block;
    margin: 0 5px;
}

.footerbox01 .copyright {
    font-size: 12px;
    padding: 0 0 10px;
}


/*=========================
top_recruit
=========================*/
.top_recruit img {
    max-width: 100%;
}

.recruit_box01 {
    margin: 0 0 20px;
}

.recruit_box01 p {
    padding: 0 15px;
    text-align: center;
    font-weight: bold;
    font-size: 15px;
}

.recruit_box02 {
    text-align: center;
}

.recruit_box03 {
    text-align: center;
    margin: 0 0 30px;
}

.recruit_box04 {
    margin: 0 0 0;
}

.recruit_box04 h2 {
    padding: 0 30%;
    margin: 0 0 10px;
}

.recruit_box05 {
    text-align: center;
}

.recruit_box06 {
    margin: 0 0 30px;
}

.recruit_box06_01 {
    background-color: #FFBAC8;
    padding: 20px 0 20px 0;
}

.recruit_box06_01 h2 {
    padding: 0 0;
    margin: 0 0 0;
}

.recruit_box06_01 .textbox {
    padding: 0 0;
    margin: 0 0 20px;
}

.recruit_box06_01 .textbox h3 {
    margin: 0 0 5px;
}

.recruit_box06_01 .textbox h4.icon01 {
    margin: 0 0 10px;
    padding: 0 20px;
}

.recruit_box06_01 .textbox h4.icon01 span {
    background-color: #749FFF;
    display: inline-block;
    color: #FFF;
    font-size: 14px;
    padding: 1px 0;
    width: 150px;
    text-align: center;
    border-radius: 20px;
}

.recruit_box06_01 .textbox .text {
    padding: 0 20px;
    font-size: 14px;
    margin: 0 0 10px;
}

.recruit_box06_01_01 {
    background-color: #FFF;
    padding: 20px 0 0 0;
}

.recruit_box06_01_01 .textbox02 {
    padding: 0 15px;
}

.recruit_box06_01_01 .textbox02 h3 {
    background-color: #FF6B82;
    color: #FFF;
    font-weight: bold;
    text-align: center;
    padding: 5px 0;
    margin: 0 0 10px;
    border-radius: 30px;
}

.recruit_box06_01_01 .textbox02 .text02 {
    font-size: 14px;
    margin: 0 0 20px;
    padding: 0 10px;
}

.recruit_box07 {
}

.recruit_box07_in {
    background-color: #FFE4E9;
    padding: 65px 0 30px;
}

.recruit_box07 h2 {
    margin: 0 0 -60px;
    /*transform: translateY( 40px);*/
}

.recruit_box07 .text01 {
    margin: 0 0 20px;
    font-size: 14px;
    padding: 0 25px;
}

.recruit_box07 .text01 .text-inner {
    display: inline-block;
    padding-bottom: 20px;
    width: 100%;
}

.front_btn_box{
    margin: 20px 0;
    text-align:center;
}
.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5rem;
    padding:.7rem 1.2rem;
    border-radius:9999px;
    border:1px solid transparent;
    font-weight:600;
    line-height:1;
    text-decoration:none;
    cursor:pointer;
    transition:transform .06s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
    user-select:none;
}

.btn-pink{
    background:#FF6B82;
    color:#fff !important;
}

/*=========================
top_tokushoho
=========================*/

.tokusho {
    --ts-font: system-ui, -apple-system, "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", sans-serif;
    --ts-fg: #1a1a1a;
    --ts-sub: #4a4a4a;
    --ts-bg: #fff;
    --ts-border: #e5e7eb;
    --ts-accent: #34a8c5;
    --ts-muted: #6b7280;
    --ts-radius: 12px;
    --ts-space: 1rem;
    --ts-max: 920px;
    font-family: var(--ts-font);
    color: var(--ts-fg);
    background: var(--ts-bg);
    margin-inline: auto;
    padding: calc(var(--ts-space) * 1.5) var(--ts-space);
    max-width: var(--ts-max);
}

.tokusho h1 {
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    line-height: 1.3;
    margin: 0 0 1rem;
    letter-spacing: .02em;
}

.tokusho h2 {
    font-size: clamp(1.125rem, 2vw, 1.25rem);
    margin: 2rem 0 .75rem;
    line-height: 1.4;
    position: relative;
    scroll-margin-top: 80px;
}
.tokusho h2::before {
    content: "";
    position: absolute;
    left: -0.75rem;
    top: .35em;
    width: 4px;
    height: 1em;
    background: var(--ts-accent);
    border-radius: 2px;
}

.tokusho p,
.tokusho li {
    line-height: 1.9;
    font-size: 0.95rem;
    color: var(--ts-sub);
}

.tokusho ul,
.tokusho ol {
    margin: .5rem 0 1rem 1.25rem;
}

.tokusho a {
    color: var(--ts-accent);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.tokusho .card {
    border: 1px solid var(--ts-border);
    border-radius: var(--ts-radius);
    background: #fff;
    padding: 1.25rem;
    box-shadow: 0 1px 0 rgba(0,0,0,.02);
}

.tokusho dl {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: .5rem 1rem;
    align-items: start;
    margin: .5rem 0 1.25rem;
}
.tokusho dt {
    font-weight: 600;
    color: #111827; /* gray-900 */
    padding-top: .25rem;
}
.tokusho dd {
    margin: 0;
    color: var(--ts-sub);
}

@media (max-width: 720px) {
    .tokusho dl {
        grid-template-columns: 1fr;
    }
    .tokusho dt {
        padding-top: 0;
    }
}

.tokusho hr {
    border: none;
    height: 1px;
    background: var(--ts-border);
    margin: 1.5rem 0;
}

/*=========================
top_terms
=========================*/
.policy{
    max-width: 820px;
    margin: 0 auto;
    padding: 24px 16px;
    color: #1f2937;
}

.policy h1{
    margin: 0 0 12px;
    font-size: clamp(20px, 2.2vw, 28px);
    line-height: 1.35;
    font-weight: 800;
}

.policy .meta{
    margin: 0 0 16px;
    font-size: 13px;
    color: #6b7280;
}

.policy .toc{
    margin: 8px 0 20px;
    padding: 12px 14px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}
.policy .toc ul{
    margin: 6px 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 4px 12px;
}
.policy .toc a{ color: inherit; text-decoration: none; }
.policy .toc a:hover{ text-decoration: underline; }

.policy h2{
    margin: 28px 0 8px;
    font-size: 18px;
    font-weight: 700;
    border-left: 4px solid #e5e7eb;
    padding-left: 10px;
}

.policy p,
.policy li{ line-height: 1.9; }

.policy ul{ margin: 6px 0 12px 1.2em; }
.policy li + li{ margin-top: 4px; }

.policy .muted{ color: #6b7280; font-size: 13px; }
.policy hr{ border: 0; border-top: 1px solid #e5e7eb; margin: 28px 0; }

.policy.p-card .paper{
    background:#fff;
    border:1px solid #e5e7eb;
    border-radius:14px;
    box-shadow:0 6px 18px rgba(17,24,39,.06);
    padding:24px 20px;
}
.policy.p-card .policy-raw{
    background:#f8fafc;
    border-left:4px solid #60a5fa;
    border-radius:10px;
    padding:16px;
}

.policy.p-underline .paper{
    background:transparent;
    border:0;
    box-shadow:none;
    padding:0;
}
.policy.p-underline h1{
    border-bottom:2px solid #e5e7eb;
    padding-bottom:8px;
    margin-bottom:14px;
}
.policy.p-underline .meta{ color:#6b7280; }
.policy.p-underline .policy-raw{
    background:#fff;
    border:1px solid #edf0f4;
    border-radius:8px;
    padding:14px;
}

.policy.p-rail .paper{
    background:#fcfcfd;
    border:0;
    box-shadow:none;
    padding:18px 14px;
}
.policy.p-rail .policy-raw{
    background:#fff;
    border-left:6px solid #94a3b8;
    padding:16px 16px;
    border-radius:8px;
}

.policy-raw{
    white-space: pre-line;
    line-height: 1.9;
    font-size: 16px;
    text-align: left;
    text-justify: auto;
}

@media (max-width: 480px){
    .policy{ padding: 20px 14px; }
    .policy .toc{ padding: 10px 12px; }
}

.login-form {
    padding: 7px 5px !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: #c0c0c0 1px solid !important;
    border-radius: 0 !important;
}

.btnbox02 button {
    width: 99%;
    margin: 0 auto;
    display: block;
    background-color: #0F33D2;
    color: #FFF;
    border: none;
    border-radius: 4px;
    padding: 10px 0;
    text-align: center;
    position: relative;
    font-weight: bold;
}

.btnbox02 button:before {
    content: "\f30b";
    font-weight: bold;
    font-family: "Font Awesome 5 Free";
    color: #FFF;
    font-size: 16px;
    position: absolute;
    right: 3%;
    top: 20%;
}

.modal-default {
    display: none;
}

.form-area {
    padding-top: 20%;
}

.form-area select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.form-area select {
    width: 100%;
    padding: 10px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: 1px solid #999;
    background: #fff;
    background-size: 20px, 100%;
}

.check_wrap {
    padding: 2px 0;
    display: inline-block;
    position: relative;
}

.check_wrap input {
    opacity: 0;
    position: absolute;
    left: 0;
}

.check_wrap label {
    padding: 5px 10px;
    border-radius: 4px;
    background: #eee;
    font-size: 14px;
    display: inline-block;
    cursor: pointer;
    transition: .5s;
}

.check_wrap label:hover,
.check_wrap input:checked + label {
    background: #333;
    color: #FFF;
}

.check_wrap input:focus + label {
    box-shadow: 0 0 4px #333;
}

/*金森追記*/
/*ページ下部のぺージャー*/
.pager {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: stretch;
    align-items: stretch;
    text-align: center;
}

.bg-pink {
    background-color: #FD4A67!important;
    color: #ffffff;
    padding: 4px 0 4px 4px;
}

.bg-green {
    color: #155724;
    background-color: #d4edda;
    padding: 4px 0 4px 4px;
}
.main-visual{
    position: relative;
}
.line-btn{
    position: absolute;
    margin-left: -88%;
    margin-top: 143%;
    width: 76%;
}

.button-box {
    max-width: 769px;
    margin: 0 auto;
    margin-bottom: 40px;
}
.button-box a {
    color: #FFFFFF;
    background-color: #0F33D2;
    display: inline-block;
    text-align: center;
    padding: 8px;
    width: 100%;
}

.recruit-form{
    width: 100%;
}

.recruit-form td{
    padding: 3px 20px;
}

.recruit-form td.form-title{
    width: 25%;
    vertical-align: top;
}

.recruit-form textarea {
    width: 98%;
}
.castbox03_05 ul li span.active{
    background-color: #333;
    border: 1px solid #333;
    color: #FFF;
}


.radiobutton {
    display: none;
}
.radiobutton-label {
    padding: 5px 10px;
    border: 1px solid #DDD;
    color: #999;
    border-radius: 4px;
    font-size: 14px;
}
.radiobutton:checked + .radiobutton-label {
    background-color: #333;
    border: 1px solid #333;
    color: #FFF;
}
.person-name {
    font-size: 6px;
    text-align: left;
    padding-left: 10%;
    width: 100%;
}
.user01.user01_right > .person-name {
    text-align: right!important;
    padding-left: 0;
    padding-right: 10%;
}

.modal-body {
    width: 80%!important;
}

.modal-body select, .modal-body input[type="text"], .modal-body textArea{
    width: 100%!important;
}

.diary-entry {
    position: relative;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    padding: 16px;
    margin-bottom: 24px;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    font-family: sans-serif;
}

.favorite {
    position: absolute;
    top: 16px;
    right: 16px;
    display: flex;
    align-items: center;
    gap: 6px;
    color: #e25555;
    font-size: 16px;
    background-color: #fff;
    padding: 4px 8px;
    border-radius: 20px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.1);
    cursor: default;
}
.favorite i {
    font-size: 16px;
}
.favorite-count {
    font-weight: bold;
    color: #333;
}

.favorite-edit {
    position: absolute;
    top: 16px;
    right: 16px;
    display: flex;
    align-items: center;
    gap: 6px;
    color: #e25555;
    font-size: 16px;
    background-color: #fff;
    padding: 8px 12px;
    border-radius: 20px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.1);
    cursor: pointer;
}

.diary-title {
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 6px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.diary-date {
    font-size: 14px;
    color: #888;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.diary-photo-wrapper {
    text-align: center;
    margin-bottom: 12px;
}

.diary-photo {
    width: 100%;
    max-width: 300px;
    height: auto;
    display: inline-block;
    border-radius: 8px;
    object-fit: cover;
}

.diary-body {
    font-size: 16px;
    line-height: 1.6;
    color: #333;
    display: flex;
    gap: 8px;
    align-items: flex-start;
}

.diary-body p {
    margin: 0;
}

textarea.form-control {
    border: 1px solid #ced4da !important;
    border-radius: 4px;
    background-color: #fff;
    resize: vertical;
}

.upload_img_box {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 6px;
    background-color: transparent;
    transition: background-color 0.2s ease;
    cursor: pointer;
}

.upload_img_box:hover {
    background-color: #f0f0f0;
}

.upload_img_box:active {
    background-color: #e0e0e0;
}

#diary_preview_container img,
#diary_preview_container video {
    max-width: 100%;
    border-radius: 8px;
    margin-bottom: 8px;
}

.badge-lg {
    font-size: 1rem;
    padding: 0.5em 0.75em;
    border-radius: 0.4rem;
}

.no-margin-bottom {
    margin-bottom: 0 !important;
}

.cast_detail_box03 .diary-entry {
    box-shadow: none !important;
}
#bottom-spacer{
    height: 80px;
}
.diary-page {
    padding-bottom: 80px;
}

.diary-page-top {
    padding-top: 60px;
}

#headerbox04 {
    margin: 0 auto;
    padding: 0;
    position: fixed;
    top: 0;
    width: 100%;
    max-width: 769px;
    background-color: #FFF;
    height: 50px;
    z-index: 100;
    border-bottom: 1px solid #EEE;
}

#headerbox04 .next {
    position: absolute;
    right: 15px;
    top: 12px;
}

#headerbox04 .name.name_title {
    float: none;
    width: 100%;
    padding: 15px 60px 0 60px; /* 左右にボタン分の余白を確保 */
    font-size: 15px;
    text-align: center;
}
.schedulebox01 .btnbox01{
    width: 100%;
}
.modal-errors .alert {
    padding: 8px 10px;
    border: 1px solid #f5c2c7;
    background: #f8d7da;
    color: #842029;
    border-radius: 6px;
}
.modal-errors .field-error {
    font-size: 12px;
    margin-top: 4px;
    display: block;
}
.is-invalid {
    border-color: #dc3545 !important;
}