@charset "utf-8";
/* CSS Document */

@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;500;600;700;800&display=swap');

body {
	background: #363835;
    font-family: "Shippori Mincho", serif;
    font-weight: 400;
    font-style: normal;
	padding-top: 4.91rem;
}
h1,h2,h3,h4,small {
	color: #fff;
}
hr {
	border-bottom: 1px solid #999
}
a {
    color: #5dc88b;
    text-decoration: none;
}
a:hover {
    opacity: 0.7;
}
a:hover img {
	opacity: 0.6;
	filter: alpha(opacity=80);
	-moz-opacity: 0.8;
	-webkit-transition: 0.3s ease-in-out;
	-moz-transition: 0.3s ease-in-out;
	-o-transition: 0.3s ease-in-out;
	transition: 0.3s ease-in-out;
}
.main-content {
	min-height: 620px;
    padding-top: 5rem;
    padding-bottom: 5rem;
}
@media (max-width: 575.98px) {
    body {
    	padding-top: 3.91rem;
    }
    .main-content {
        padding-top: 2rem;
    }
}
.bg-dark {
	background: #000 !important;
}
.valing_m {
	vertical-align: middle !important;
}
.nav-link {
	display:inline-block;
	font-size: 17px;
	color:#efefef !important;
	font-weight:400;
	padding:5px 14px;
	margin:6px 0.45rem;
}
.nav-link:hover {
	display: inline-block;
	border-radius: 5px;
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	background:#52a875;
	padding:5px 14px;
	text-decoration:none;
}
.nav-link.active {
	display:inline-block;
	border-radius: 5px;
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	background:#52a875;
	text-decoration:none;
	padding:5px 14px;
	pointer-events:none;
}
.nav-link.sns {
	display:inline-block;
	text-decoration:none;
}
.nav-link.sns i {
    font-size: 32px;
}
@media (min-width: 1200px) and (max-width: 1399.98px) {
	.nav-link {
		font-size: 16px;
		margin:6px 0.15rem;
	}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
	.nav-link {
		font-size: 13px;
		margin:6px 0.05rem;
	}
}
.dl3,
.dl4,
.dl6,
.dl7,
.dl8 {
    color: #fff;
}
.dl3 dt {
    float: left;
    width: 3em;
    font-weight: normal;
}
.dl3 dd {
    margin-left: 3em;
}
.dl4 dt {
    float: left;
    width: 4em;
    font-weight: normal;
}
.dl4 dd {
    margin-left: 4em;
}
.dl6 dt {
    float: left;
    width: 6em;
    font-weight: normal;
}
.dl6 dd {
    margin-left: 6em;
}
.dl7 dt {
    float: left;
    width: 7em;
    font-weight: normal;
}
.dl7 dd {
    margin-left: 7em;
    text-indent: -1em;
    padding-left: 1em;
}
.dl8 dt {
    float: left;
    width: 8em;
    font-weight: normal;
}
.dl8 dd {
    margin-left: 8em;
}
.dl20 {
    width: 400px;
    margin: auto;
}

.p01 {
	color: #fff;
}
.p01 a,
.card-text a {
	color: #f00 !important;
}
.p01 a:hover,
.card-text a:hover {
	color: #900 !important;
}
.p02 {
	color: #000;
}
.h01 {
	font-size:32px;
	color: #52a875;
	text-align: center;
    margin-bottom: 3rem;
}
.h02 {
	color: #fff;
}
.h02 a {
	color: #fff;
}
.h02 a:hover {
	color: #f60;
	text-decoration: none;
}
.h03 {
	font-size:24px;
	text-align: center;
    margin-bottom: 1rem;
    color: #fff;
    line-height: 2;
}
.h03-exb {
    font-size: 30px;
    font-weight: 800;
    text-align: center;
    color: #fff;
    line-height: 2;
}
.h04 {
	font-size:28px;
	color: #52a875;
	text-align: center;
}
.br-md-none {
    display: block;
}
.br-sm,
.br-xs {
    display: none;
}
.br-xs-none {
    display: block;
}
@media (max-width: 991.98px) {
    .br-md-none {
        display: none;
    }
}
@media (max-width: 767.98px) {
    .br-sm {
        display: block;
    }
}
@media (max-width: 575.98px) {
    .h01 {
	    font-size:26px;
    }
    .h03 {
	    font-size:21px;
    }
    .h03-exb {
        font-size: 27px;
    }
    .br-xs {
        display: block;
    }
    .br-xs-none {
        display: none;
    }
}
.text-red,
.text-red a {
	color: #f00;
}
.text-yellow,
.text-yellow a {
	color: #ff0;
}
.text-green {
    color: #77E8A3 !important;
}
.btn-show {
    display: none;
}
.btn-kv {
    /*background: #52a875;*/
    padding: 0;
    margin-top: -0.5rem;
}
.btn-kv:hover {
    /*background: #52a875;*/
    opacity: 0.7;
}
.btn-kv.active {
    /*background: #666;*/
    border-color: transparent;
}
.btn-kv.active:hover {
    /*background: #666;*/
    opacity: 0.7;
}
.btn-kv::after {
    content: '⇔';
    font-size: 28px;
    color: #fff;
}
/*.btn-kv.active::after {
    content: '⇔';
    font-size: 42px;
    color: #fff;
}*/
@media (max-width: 991.98px) {
    header {
        position: relative;
    }
    .btn-show {
        display: block;
        position: absolute;
        top: -3.0rem;
        right: 1rem;
        z-index: 99999;
    }
    .navbar .btn-kv {
        display: none;
    }
}
h3.newsT {
	font-size:1.7rem;
	color: #fff;
}
.topNews {
	background:#fff;
	height:347px;
	overflow:auto;
	padding:20px;
}
@media (min-width: 768px) and (max-width: 1200px) {
	.topNews {
		height:300px;
		overflow:auto;
		padding:10px;
	}
}
@media (max-width: 767.98px) {
	.topNews {
		height:300px;
		padding:10px;
	}
}
.topNews dl {
}
.topNews dl dt {
	font-size:16px;
}
.topNews dl dd {
	font-size:16px;
    border-bottom:1px dotted #aaa;
    margin-bottom:10px;
	padding-bottom:5px;
}
.topNews dl dd a {
	font-size:16px;
	color: #000;
}
.topInsta {
	height:347px;
	overflow:auto;
}
@media (min-width: 768px) and (max-width: 991px) {
	.topInsta {
		height:380px;
		overflow: scroll
	}
}
@media (max-width: 767px) {
	.topInsta {
		height:380px;
		overflow: auto !important;
		width: 100% !important;
		-webkit-overflow-scrolling:touch !important;
	}
}
.topMission {
	background:#fff;
	padding:20px 50px;
}
.topMission p {
	font-size:16px;
}
/* イントロダクション */
.intro_t {
	color: #fff;
	font-size: 18px;
	line-height: 2;
	margin-bottom: 2rem;
}
.btn-green {
    background: #52a875;
    color: #fff;
}
.btn-green.btn-sm {
    font-size: 11px;
}
.btn-green:hover {
    background: #52a875;
    color: #fff;
    opacity: 0.7;
}
.bg-green {
    border: 3px solid #52a875;
    background: transparent;
}
.bg-green h5 {
    background: #52a875;
    padding: 0.5rem;
    color: #fff;
    border-radius: 0.2rem;
}
.bg-green p {
    color: #fff;
    text-align: center;
    font-size: 15px;
    line-height: 2;
}
.btn-intro {
    min-width: 390px;
}
.btn-intro span {
    color: #bf171d;
}
@media (max-width: 575.98px) {
    .intro_t {
    	font-size: 14px;
    }
    .bg-green p {
        font-size: 13px;
    }
    .btn-intro {
        min-width: 320px;
    }
}
/* キャスト */
.blockcast {
    margin-bottom: 6rem;
}
.hr-green {
    border: none;
    border-top: 1px solid #52a875;
    width: 50%;
    margin: 3rem auto;
}
.cast_list p {
	font-size: 18px;
	color: #fff;
	text-align: center;
	line-height: 1.8;
}
.cast_list p a {
	font-size: 18px;
	color: #fff;
}
.cast_list p small {
	font-size: 10px;
}
.cast_list p a:hover {
	color: #8b2532;
}
.cast_list p.ensemble {
	font-size: 14px;
}
.cast_block {
	border-top-left-radius: 20px; 
	-webkit-border-top-left-radius: 20px;
	-moz-border-radius-topleft: 20px;
	border-bottom-right-radius: 20px; 
	-webkit-border-bottom-right-radius: 20px; 
	-moz-border-radius-bottomright: 20px;
	background: #666;
	padding: 20px;
}
.cast_block p {
}
.castJ {
	font-size: 28px;
}
.castJ small {
	font-size: 20px;
}
.castE {
	font-size: 24px;
    margin-bottom: 2rem;
}
.m-1em {
    margin: 0 0.5em;
}
@media (min-width: 768px) and (max-width: 991.98px) {
    .cast_list p {
    	font-size: 13px;
    }
}
@media (max-width: 575.98px) {
	.castJ {
		font-size: 20px;
	}
    .castJ small {
		font-size: 12px;
	}
	.castE {
		font-size: 16px;
	}
    .blockcast .col-md-3 img {
        max-height: 300px;
    }
    .m-1em {
        margin: 0;
        display: block;
    }
}
dl.cast_pro {
	margin-bottom: 5px;
    color: #fff;
}
dl.cast_pro dt {
    font-size: 110%;
	font-weight: normal;
    color: #52a875;
}
dl.cast_pro dd ul {
    list-style: none;
    padding-left: 0;
}
dl.cast_pro dd ul li {
    margin-bottom: 0.6rem;
}
dl.cast_pro dt.j_middle {
	float: left;
	width: 10em;
	vertical-align: top;
}
dl.cast_pro dd.j_middle {
	margin-left: 10em;
}
dl.cast_pro dt.j_long {
	float: left;
	width: 11em;
	vertical-align: top;
}
dl.cast_pro dd.j_long {
	margin-left: 11em;
}
.boxguest {
    max-width: 420px;
    margin: auto;
}
.boxguest p {
    text-align: left;
}
@media (max-width: 767.98px) {
	dl.cast_pro dt {
		float: none;
		width: 100%;
	}
	dl.cast_pro dd {
		margin-left: 0;
	}
	dl.cast_pro dt.j_middle {
		float: none;
		width: 100%;
	}
	dl.cast_pro dd.j_middle {
		margin-left: 0;
	}
	dl.cast_pro dt.j_long {
		float: none;
		width: 100%;
	}
	dl.cast_pro dd.j_long {
		margin-left: 0;
	}
}
@media (max-width: 419.98px) {
    .boxguest {
        max-width: 100%;
    }
    .boxguest p {
        font-size: 17px;
    }
}
dl.staff {
	text-align: left;
	margin: auto;
	width: 400px;
	color: #fff;
	font-size: 18px;
}
dl.staff dt {
	text-align: right;
	float: left;
	width: 11em;
	font-weight: normal;
}
dl.staff dd {
	margin-left: 12em;
}
@media (max-width: 575.98px) {
	dl.staff {
		text-align: center;
		width: 100%;
	}
	dl.staff dt {
		text-align: center;
		float: none;
		width: 100%;
	}
	dl.staff dd {
		margin-left: 0;
	}
}
/* schedule */
.boxschedule {
    max-width: 337px;
    margin: auto;
}
.boxschedule p img {
    max-height: 30px;
    margin-left: 0.5rem;
}
@media (max-width: 337.98px) {
    .boxschedule {
        max-width: 100%;
    }
}
.img-schedule,
.img-schedule-s {
    margin: 0 auto 3rem;
    text-align: center;
}
.img-schedule {
    max-width: 850px;
}
.img-schedule-s {
    display: none;
}
.btn-schedule {
    background: #52a875;
}
.btn-schedule:hover {
    background: #52a875;
    opacity: 0.7;
}
.btn-schedule.active {
    background: #666;
}
.btn-schedule.active:hover {
    background: #666;
    opacity: 0.7;
}
.btn-schedule::after {
    content: '回替わりゲスト出演日程';
    color: #fff;
}
.btn-schedule.active::after {
    content: '公演スケジュール';
    color: #fff;
}
.sche_acc dt {
    padding: 2rem;
    color: #fff;
    cursor: pointer;
}
.sche_acc dt::after {
    font-family: "Font Awesome 6 Free";
	font-weight: 900;
	content: "\f0ab";
    display: inline-block;
    margin-left: 1rem;
}
.sche_acc dt.active::after {
    content: '\f0aa';
}
.sche_acc dd {
    display: none;
}
@media (max-width: 575.98px) {
    .img-schedule {
        display: none;
    }
    .img-schedule-s {
        display: block;
        max-width: 320px;
    }
}
/* ticket */
.blockticket h4 {
    background: #52a875;
    padding: 0.5rem 1rem;
    color: #fff;
    font-size: 21px;
    font-weight: 800;
    margin-bottom: 1rem;
}
.blockticket h5,
.blockticket p,
.blockticket li {
    color: #fff;
}
.blockticket h5 {
    font-weight: 800;
    line-height: 1.8;
    margin-bottom: 0.1rem;
}
.list-indent,
.list-indent-s {
    list-style: none;
    padding-left: 0;
}
.list-indent li {
    text-indent: -1em;
    padding-left: 1em;
}
.list-indent-s li {
    font-size: 85%;
    text-indent: -0.85em;
    padding-left: 0.85em;
}
.hr {
    border-bottom: 1px solid #52a875;
    margin: 2rem auto;
}
.hr-dot {
    border-bottom: 1px dashed rgba(255,255,255,0.3);
    margin: 1.5rem auto;
}
.acc_ticket {
    margin-bottom: 1rem;
}
.acc_ticket h3 {
    display: inline-block;
    padding: 0.6rem 2rem 0.6rem 1rem;
    background: #52a875;
    border-color: #52a875;
    color: #fff;
    font-size: 16px;
    border-radius: 0.3rem;
    position: relative;
    cursor: pointer;
}
.acc_ticket h3::after {
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    content: '\f13a';
    position: absolute;
    top: 50%;
    right: 0.6rem;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
}
/* streaming */
.blockstreaming h3 {
    background: #52a875;
    padding: 0.5rem 1rem;
    color: #fff;
    font-size: 21px;
    font-weight: 800;
    margin-bottom: 1rem;
}
.blockstreaming h3,
.blockstreaming h5,
.blockstreaming p,
.blockstreaming li {
    color: #fff;
}
.blockstreaming p {
    margin-bottom: 2rem;
}
.blockstreaming h4 {
    display: table;
    background: #52a875;
    padding: 0.5rem 1rem;
    color: #fff;
    font-size: 21px;
    font-weight: 800;
}
.blockstreaming h5 {
    font-weight: 800;
    line-height: 1.8;
    margin-bottom: 0.1rem;
}
.dl-streaming {
    border-bottom: 1px solid #52a875;
    padding-bottom: 1rem;
    margin-bottom: 2rem;
}
.dl-streaming dt {
    font-size: 21px;
    font-weight: 500;
    color: #fff;
}
.dl-streaming dd {
    color: #fff;
}
.list-streaming {
    list-style: none;
    padding-left: 0;
    max-width: 920px;
    margin: 2rem auto;
}
.list-streaming li {
    margin-bottom: 0.5rem;
    text-align: center;
}
.list-streaming li a {
    display: block;
    background: #52a875;
    padding: 0.5rem 1.5rem;
    color: #fff;
    border-radius: 0.2rem;
}
/* Q&A */
.panel-title a {
	line-height: 1.6;
	color: #fff;
}
.panel-collapse {
	line-height: 1.6;
	margin-top: -10px;
	color: #fff;
}
.table_qa {
	color: #000;
	background: #fff;
	font-size: 12px;
	margin-bottom: 0;
	width: 60%;
}
.table_qa th {
	width: 40%;
}
@media (min-width: 992px) and (max-width: 1199px) {
	.table_qa {
		width: 80%;
	}
}
@media (max-width: 767px) {
	.table_qa {
		width: 100%;
	}
	.table_qa th {
		width: 50%;
	}
}
/* dvd */
dl.j_dvd {
	color: #fff;
}
dl.j_dvd dt {
	text-align: right;
	float: left;
	width: 4em;
	font-weight: normal;
}
dl.j_dvd dd {
	margin-left: 4em;
}
@media (max-width: 575.98px) {
	dl.j_dvd dt {
		text-align: center;
		float: none;
		width: 100%;
	}
	dl.j_dvd dd {
		margin-left: 0;
	}
}
.faq_acc {
    margin-bottom: 2rem;
}
.faq_acc > dt {
	/*border-bottom: solid 10px #333;*/
	background: #52a875;
	color: #fff;
	cursor: pointer;
	padding: 0.5rem 1rem 1rem;
	font-weight: 900;
	font-size: 16px;
	letter-spacing: 3px;
	position: relative;
}
.faq_acc > dt::after {
	content: url(images/faq_icon.png);
	position: absolute;
	right: 2rem;
	bottom: -0.8rem;
}
.faq_acc > dt strong {
	font-size: 30px;
}
.faq_acc > dd {
	background: #333;
	margin: 0px;
	padding: 1rem;
}
.faq_acc > dd strong {
	color: #fff;
	font-size: 30px;
}
.faq_acc > dd {
	color: #fff;
	font-size: 13px;
}
.faq_acc > dd ul {
    list-style: none;
    padding-left: 0;
}
.faq_acc > dd ul li {
	text-indent:-1em;
	padding-left:1em;
}
.brnone {
	display: block;
}
@media (max-width: 575.98px) {
	.faq_acc > dt {
		padding: 0.5rem 1rem 1.5rem;
	}
}
.grayRadius {
	border-radius: 5px;
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	background:#eee;
	color:#000;
	font-size:32px;
	line-height:1.5;
	text-align:center;
	width:870px;
	padding:10px 20px;
	margin-bottom:10px;
	border:2px solid #aaa;
	margin:0 auto;
}

.orangeRadius {
    background: none repeat scroll 0 0 #f60;
    border-radius: 5px;
    font-size: 32px;
    line-height: 1.5;
    margin-bottom: 10px;
    padding: 10px 20px;
    text-align: center;
    color: #fff;
    width: 960px;
}

.pinkRadius {
    background: none repeat scroll 0 0 #fff9fc;
    border-radius: 5px;
    margin: 20px 0;
    padding: 0;
    color: #000;
}
/* goods */
.blockgoods h3 {
    background: #52a875;
    padding: 0.5rem 1rem;
    color: #fff;
    font-size: 21px;
    font-weight: 800;
    margin-bottom: 1rem;
}
.blockgoods h3,
.blockgoods h4,
.blockgoods h5,
.blockgoods p,
.blockgoods li {
    color: #fff;
}
.blockgoods small {
    font-size: 85%;
}
.nav-goods .nav {
    display: block;
    text-align: center;
    margin: 0 auto 2rem !important;
}
.nav-goods .nav-item {
    display: inline-block;
    margin: 0.2rem;
    vertical-align: middle;
}
.nav-pills .nav-link {
    border-radius: 0.25rem;
    color: #000;
    background-color: #52a875;
    border: 1px solid #52a875;
    font-size: 18px;
    width: 200px;
}
.nav-pills .nav-link.btn-small {
    font-size: 0.75em;
    line-height: 1;
    
}
.nav-pills .nav-link.active {
    background-color: #999;
    border: #999;
    color: #000;
}
/*.nav-pills .nav-link:hover {
    opacity: 0.7;
    color: #000;
}*/
.boxgoods {
    background: #666;
    padding: 1.5rem;
    margin: 2rem auto 2rem;
}
.boxgoods h4 {
    background: #52a875;
    padding: 0.5rem 1rem;
    color: #fff;
    font-size: 18px;
    font-weight: 800;
    margin-bottom: 1rem;
}
.boxgoods h6 {
    background: #fff;
    padding: 0.5rem 1rem;
    color: #000;
    font-size: 18px;
    font-weight: 800;
    margin-bottom: 1rem;
}
.boxgoods p {
    margin-bottom: 2rem;
}
.boxgoods p:last-child {
    margin-bottom: 0;
}
.boxgoods p small {
    font-size: 0.95em;
}
.boxgoods img,
.img-goods {
    max-height: 600px;
}
.btn-red {
    background: #b90f10;
    color: #fff;
    width: 360px;
}
.btn-red:hover {
    background: #b90f10;
    color: #fff;
    opacity: 0.7;
}
@media (min-width: 576px) and (max-width: 767.98px) {
	.nav-goods .nav-item {
        margin: 0rem;
    }
    .nav-pills .nav-link {
        margin: 0 0rem;
        font-size: 15px;
        padding: 0.45rem 0.5rem;
        width: auto;
    }
    .nav-pills .nav-link.btn-small {
        padding:  0.3rem 0.5rem;
    }
}
@media (max-width: 575.98px) {
    .nav-goods .nav-item {
        margin: 0rem;
    }
    .nav-pills .nav-link {
        margin: 0 0rem;
        font-size: 12px;
        padding: 0.4rem 0.3rem;
        width: auto;
    }
    .nav-pills .nav-link.btn-small {
        padding:  0.25rem 0.3rem;
        font-size: 10px;
    }
    .boxgoods ul li,
    .boxgoods p small {
        font-size: 14px;
    }
    .btn-red {
        width: 320px;
    }
}
.table-goods {
    width: 100%;
    margin-bottom: 10px;
}
.table-goods tr:first-child {
    background: #404040 !important;
    font-size: 14px;
}
.table-goods tr:first-child th,
.bg-gold th {
    border: 1px solid #ddd; 
}
.bg-gold {
    background: #404040 !important;
    font-size: 14px;
}
.table-goods th {
    vertical-align: middle;
    font-weight: normal;
    background: #404040;
    border: 1px solid rgba(255,255,255,0.5) !important;
    text-align: center;
    color: #fff;
    font-size: 13px;
    padding: 0.5rem;
}
.table-goods td {
    vertical-align: middle;
    font-weight: normal;
    background: #fff;
    border: 1px solid rgba(0,0,0,0.5) !important;
    text-align: center;
    font-size: 13px;
    padding: 0.5rem;
}
.table-goods .bg-primary {
    background: #3b618e !important;
}
.table-goods .bg-danger {
    background: #903c3a !important;
}
.bg-ng /*使用なし*/ {
    background-image: linear-gradient(to right bottom, transparent calc(50% - 0.5px), #999 50%, #999 calc(50% + 0.5px), transparent calc(50% + 1px));
}
.table-goods td hr {
    margin: 0 auto;
    color: #000 !important;
    opacity: 1;
    width: 20%;
}
@media (max-width: 575.98px) {
    .table-goods th,
    .table-goods td {
        font-size: 10px;
    }
}
.list-cast {
    list-style: none;
    padding-left: 0;
    width: 400px;
    margin: 0 auto 2rem;
}
.list-cast li {
    background: url("images/line.png") repeat-x left center;
}
.list-cast li::after {
    display: block;
    clear: both;
    height: 0;
    line-height: 0;
    visibility: hidden;
    content: '.';
    font-size: 0.1em;
}
.list-cast li strong {
    float: left;
    padding: 0 1rem 0 0;
    font-weight: normal;
    background: #363835;
}
.list-cast li span {
    float: right;
    padding: 0 0 0 1rem;
    background: #363835;
}

@media (max-width: 575.98px) {
    .list-cast {
        width: 320px;
    }
    .list-cast li {
        font-size: 80%;
    }
}
footer {
	padding:20px;
	margin:50px auto 0;
	border-top: 1px solid #aaa;
	color: #fff;
}
@media (max-width: 575.98px) {
    .text-copy {
        font-size: 70%;
    }
}
/* トップへ戻るボタン */
#page-top {
	font-size: 0;
	position: fixed;
	bottom: 16px;
	right: 16px;
	opacity: 0;
}
#page-top.fade-in {
	color: #52a875;
	font-size: 30px;
	opacity: 0.6;
	transition: opacity 1s;
    cursor: pointer;
}
#page-top.fade-in:hover {
    color: #fff;
}
dt.mfp {
	color: #fff;
}
dd.mfp {
	color: #fff;
}
dd.mfp input {
	color: #000;
}
ruby {
	display: inline-table;
	border-collapse: collapse;
    /*height: 2em;*/
    margin: 0;
    padding: 0;
    border: none;
    white-space: nowrap;
    text-indent: 0;
    vertical-align: 0.9em;
    text-decoration: inherit;
    text-align: center;
    line-height: 1em;
}
/* 上ルビ */
ruby>rtc {
    display: table-header-group;
    height: 25%;
    margin: 0;
    padding: 0;
    border: none;
    font: inherit;
    font-size: 50%;
    line-height: 1em;
}
/* 下ルビ(括弧類がある場合とない場合でセレクタが異なる) */
ruby>rtc+rtc,
ruby>rtc+rp+rtc {
    display: table-footer-group;
    height: 25%;
    margin: 0;
    padding: 0;
    border: none;
    font: inherit;
    font-size: 50%;
    text-decoration: none;
    line-height: 1em;
}
/* 各文字に対応するルビ */
ruby>rtc>rt {
    display: table-cell;
    margin: 0;
    padding: 0 0.125em;
    border: none;
    font-size: 100%;
    text-align: center;
    line-height: 1em;
}
/* ルビ対象テキスト */
ruby>rb {
    display: table-cell;
    max-height: 75%;
    margin: 0;
    padding: 0 0.125em;
    border: none;
    font: inherit;
    text-decoration: none;
    text-align: center;
    line-height: 1em;
    vertical-align: top;
}
/* 非対応環境向け括弧類 */
ruby>rp {
    display: none;
}
/* 単純な<ruby>要素での<rt>要素 */
ruby>rt {
    display: table-header-group;
    height: 25%;
    margin: 0 auto;
    padding: 0 0.125em;
    border: none;
    font: inherit;
    font-size: 50%;
    line-height: 1em;
    text-align: center;
}
/* <ruby>要素入れ子の場合 */
ruby>ruby {
    vertical-align: 0em;
}
/* <ruby>要素が入れ子でない場合のルビテキストと、*/
/* <ruby>要素が入れ子の場合の上位<ruby>要素のルビテキスト、*/
ruby>ruby+rt,
ruby>ruby+rp+rt {
    display: table-footer-group;
}
/* <ruby>要素直下に<rt>要素が二つある場合 */
ruby>rt+rt {
    display: table-footer-group;
}