@charset "UTF-8";

/* basic settings */
html, body, h1, h2, h3, h4, h5, h6,
a, p, span, em, small, strong, sub, sup,
mark, del, ins, strike, abbr, dfn,
blockquote, q, cite, code, pre,
ol, ul, li, dl, dt, dd,
div, section, article,
header, main, aside, nav, footer,
img, figure, figcaption,
address, time,
audio, video,
canvas, iframe,
details, summary,
fieldset, form, label, legend,
table, caption,tbody, tfoot, thead,tr, th, td { margin: 0; padding: 0; border: 0; }

html { font-size: 62.5%; font-size: 16px; width: 100%; min-width: 320px; height:100%; -webkit-text-size-adjust:100%; }
body { font-size: 16px; line-height: 1.5; width: 100%; height:100%; min-width: 320px; overflow-x: hidden; color:#000; background:#EEE; font-family:'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'メイリオ', Meiryo, sans-serif;}
* { box-sizing: border-box; font-family: inherit; font-size: inherit; line-height: inherit; }
*:before, *:after { box-sizing: inherit; }
article, aside, footer, header, nav, section, main { display: block;}
a, a:visited, a img { color: inherit; }
table { border-collapse: collapse; border-spacing: 0; }
ol, ul { list-style: none; }
img, video { max-width: 100%; }
img { border-style: none; vertical-align: middle;}
blockquote, q { quotes: none; }
	blockquote:after, blockquote:before, q:after, q:before { content: ""; content: none; }
[hidden] { display: none !important; }
[disabled] { cursor: not-allowed; }
:focus { outline: none;}
:focus:not(:focus-visible) { outline: none; }

/* local class */
.red { color: #F00;}
.blue { color: #165EA2;}
.green { color:#060;}
.tar { text-align:right;}
.tal { text-align:left;}
.tac { text-align:center;}
.f8 {font-size:8px;}
.f9 {font-size:9px;}
.f10 {font-size:1px;}
.f11 {font-size:11px;}
.f12 {font-size:12px;}
.f13 {font-size:13px;}
.f14 {font-size:14px;}
.f15 {font-size:15px;}
.f16 {font-size:16px;}
.f18 {font-size:18px;}
.f20 {font-size:20px;}
.f22 {font-size:22px;}
.f24 {font-size:24px;}
.f26 {font-size:26px;}
.f28 {font-size:28px;}
.f32 {font-size:32px;}
.f36 {font-size:36px;}
.f42 {font-size:42px;}
.fg {font-family: Arial, Helvetica, "sans-serif";}


/* layout settings */

main { width:100%; min-height:100%; padding:0 0 20px 0; box-sizing: border-box; background:#FFF; z-index:0; }

footer { display: block; width: 100%; text-align: center; padding:4px 0; margin: 0; background:#000; color:#FFF; position: fixed; bottom: 0; left: 0; z-index: 1;}
	footer p { display: block; padding:4px 0; margin: 0 auto; font-size: 11px; line-height: 16px;}
		footer p a { text-decoration: none; color: #FFF;background: linear-gradient(to right,#0277BD,#4FC3F7,#E1F5FE,#4FC3F7,#0277BD) 0% center / 200% auto; -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation: footercolor 3s linear infinite; }
			@keyframes footercolor { to { background-position-x: 200%; }}


.login { padding:20px 20px;}
	.login h1 { font-size: 16px; padding:16px 0;}
	.login p { font-size: 14px; padding: 10px 0;}
		.login p a { color:#666; text-decoration: none;}
		.login p a:hover { color:#000; text-decoration: underline;}
	.loginterms { width: 100%; height:160px; margin-top: 20px; margin-bottom: -10px; overflow-y: auto; -webkit-overflow-scrolling:touch; border: 1px solid #CCC;}
		.loginterms iframe { display: block; width: 100%; height:100%; }
	.loginname input { width: 100%; padding: 8px 8px; border: none; background:#EEE; font-size:16px;}
	.loginbtn { text-align: center;}
		.loginbtn input { padding: 8px 16px; margin: 0 auto; border-radius: 4px; border: 1px solid #CCC; cursor: pointer; background: linear-gradient(180deg, #FFF, #FFF, #DDD); transition: .3s; box-shadow: 0 0 0 0 rgba(0,0,0,0); color:#333;}
			.loginbtn input:hover { box-shadow: 0 2px 3px 0 rgba(0,0,0,.4); margin-top: -4px;}

.terms { padding:20px 20px;}
	.terms h1 { margin:0 0 8px 0; padding:0 0 0 0; font-size:14px; line-height:20px; border-bottom:3px double #777;}
	.terms h2 { margin:28px 0 8px 0; padding:4px 8px; font-size:13px; line-height:18px; background:#EEE; }
	.terms h3 { margin:0; padding:16px 8px 0 8px; font-size:13px; line-height:16px;}
	.terms p { margin:0; padding:8px; font-size:13px; line-height:16px;}
	.terms ul { padding:8px 8px 8px 1em; margin:0 0 0 1em; list-style: disc;}
	.terms ol { padding:8px 8px 8px 1em; margin:0 0 0 1em; list-style: decimal;}
	.terms li { margin:0; padding:4px 0 0 0; font-size:12px; line-height:16px;}

.card { width: 100%; max-width: 480px; height: 310px; padding: 5px 0; background:#BBB center / cover no-repeat; position: fixed; z-index:10;}
	.card::before { content:""; display: block; width: 100%; height: 100%; background: linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,0),rgba(255,255,255,.3)); position: absolute; top: 0; left: 0; z-index:1; }
	.card::after { content:""; display: block; width:36px; height:36px; overflow: hidden; background: url("iconrotate.png") center / contain;position: absolute; left: 10px; bottom: 10px; z-index:2; opacity: .5; }
	.cardflip { display: block; width: 100%; height: 300px; text-align: center; position: relative; z-index:3; perspective: 1000px; -webkit-perspective: 1000px;}
		input#cardflipcheck { display:none;}
		label#cardflipbtn { display: block; width: 100%; height: 300px; position: relative; z-index: 10; background: rgba(0,0,0,.0); cursor: pointer; -webkit-tap-highlight-color:rgba(0,0,0,0);}
		.cardflip p { display: block; width:300px; height: 300px; transform-style: preserve-3d; transition: all .5s ease-in-out; position: absolute; top: 0; left: calc(50% - 150px); backface-visibility: hidden; -webkit-backface-visibility: hidden;}
			.cardflip p img { width: auto; height: auto; max-width:300px; max-height: 300px; box-shadow: 0 0 4px 0 rgba(0,0,0,.3); margin: auto; position: absolute; top: 0; left: 0; right: 0; bottom:0;}
			.cardfront { z-index: 1; transform: rotateY(0deg);}
				input#cardflipcheck[type="checkbox"]:checked ~ .cardfront { z-index: 0; transform: rotateY(180deg);}
			.cardback { z-index: 0; transform: rotateY(-180deg);}
				input#cardflipcheck[type="checkbox"]:checked ~ .cardback { z-index: 1; transform: rotateY(0deg);}

.info { padding:320px 20px 20px 20px; position: relative; z-index:1;}
	.infotitle { display: flex; justify-content: space-between;}
		.infotitle h1 { padding: 20px 0; font-size: 22px; font-weight: normal;}
			.infotitle h1 ruby { padding-right:1em;}
			.infotitle h1 rt { font-size: .3em;}
			.infotitle h1 span { display:block; width: 100%; font-size: 10px;}
		.infotitle .photo { display: block; width:120px; height: 120px; border-radius: 120px; border: 3px solid #FFF; background-color:#FFF; background-repeat: no-repeat; background-size:cover; background-position: center; margin: -8px -20px -8px 0; box-shadow: 0 1px 3px 0 rgba(0,0,0,.4); }
	.infomessage { padding:12px; background:#EEE; margin:0; border-radius: 8px; margin-bottom: 16px; font-size: 14px;}
		.infomessage::before { content: ""; display: block; height: 0; width: 0; overflow: hidden; border-bottom: 12px solid #EEE; border-left: 12px solid transparent; margin-top: -24px; float: left;}
	.infodata { padding: 0 0;}
		.infodata table { width: 100%; border-collapse: collapse;}
			.infodata table tr:first-of-type th { border-top:none;}
			.infodata table tr:first-of-type td { border-top:none;}
		.infodata th { padding: 16px 0; text-align: left; font-size: 14px; border-top: 1px solid #ddd; vertical-align: top; width: 4em;}
		.infodata td { padding: 16px 0 16px 2em; font-size: 14px; border-top: 1px solid #ddd; vertical-align: top;}

.download { padding:20px 20px; background:#EEE;}
	.download h2 { text-align: center; font-size: 14px; padding: 10px 0;}
	.download p { font-size: 12px; padding:10px 0;}
		.download p img { padding: 5px;}
		.download p a { color:#666; text-decoration: none;}
		.download p a:hover { color:#000; text-decoration: underline;}
	.download ul { text-align: center; font-size: 14px; padding:0 0;}
	.download li { text-align: center; margin: 0 auto; padding:2px 0;}
		.download li a { display: block; width: 220px; padding: 6px 0; margin: 4px auto; text-align: center; border-radius: 4px; border: 1px solid #AAA; cursor: pointer; background: linear-gradient(180deg, #FFF, #FFF, #DDD); transition: .3s; box-download: 0 0 0 0 rgba(0,0,0,0); text-decoration: none; color: #333;}
			.download li a:hover { box-shadow: 0 2px 3px 0 rgba(0,0,0,.4); margin: 0 auto 8px auto;}

.expire { padding:20px 20px;}
	.expire h1 { font-size: 16px; padding:16px 0;}
	.expire p { font-size: 14px; padding: 10px 0;}
		.expire p a { color:#666; text-decoration: none;}
		.expire p a:hover { color:#000; text-decoration: underline;}

/* 320 + settings */
@media all and (min-width:320px){
}

/* 480 + settings */
@media all and (min-width:480px){
	.login, .terms, .download, .expire { padding:20px 40px 40px 40px;}
	.info { padding:320px 40px 40px 40px;}
	main {max-width: 480px; box-shadow: 0 0 4px 0 rgba(0,0,0,.3); margin: 0 auto; }
}

/* print only settings */
@media print{
	footer { position: relative;}
}

@media all and (-ms-high-contrast: none){
	footer p a { background: #000; color: #FFF;}
}