/* Rakuten Styling Foundation: Basement CSS Framework
   ──────────────────────────────────────────────────────────────────────
   Author: Chris Gkilitsas | CWD Strategy Section | Rakuten Inc.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */


/* Sectioning
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

main,
article,
section,
aside,
header,
footer,
nav,
menu,
details,
summary			{ display: block; }

address			{ font-style: normal; }

audio,
canvas,
progress,
video			{ display: inline-block; vertical-align: baseline; }

[hidden],
template		{ display: none; }


/* Clearfix
───────────────────────────────────────────────────────────────────────── */

.rf-cfix:after	{ content: ''; clear: both; display: block; height: 0; font-size: 0; visibility: hidden; }
*+html .rf-cfix	{ zoom: 1; }


/* Typography
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* Default (paragraph‐level) font size & Mobile devices text‐inflating 
───────────────────────────────────────────────────────────────────────── */
html					{ font-size: 100%;
							-webkit-text-size-adjust: 100%;
							   -moz-text-size-adjust: 100%;
							    -ms-text-size-adjust: 100%;
							        text-size-adjust: 100%; }


/* Outline color & selected text color
───────────────────────────────────────────────────────────────────────── */

:focus					{ outline-color: #bf0000; }
::-moz-selection		{ color: #000; text-shadow: none; background-color: #caebff; background-color: rgba(45, 174, 255, .25); }
::selection 			{ color: #000; text-shadow: none; background-color: #caebff; background-color: rgba(45, 174, 255, .25); }
mark::-moz-selection	{ color: #fff; background-color: #600; }
mark::selection			{ color: #fff; background-color: #600; }


/* Font families
───────────────────────────────────────────────────────────────────────── */

/* International — Alphabetic scripts */
html,
.rf-font-roman			{ font-family: 'Helvetica Neue', HelveticaNeue, Helvetica, Arial, 'Arial Unicode MS', sans-serif; }
*+html textarea			{ font-family: 'Helvetica Neue', HelveticaNeue, Helvetica, Arial, 'Arial Unicode MS', sans-serif; }

/* Japanese / 日本語 */
[lang^='ja'],
.rf-font-japanese		{ font-family: 'Hiragino Sans', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', Osaka, Meiryo, 'メイリオ', 'MS PGothic', 'MS Pゴシック', 'Hiragino Sans GB', 'Helvetica Neue', HelveticaNeue, Helvetica, Arial, 'Arial Unicode MS', sans-serif; }
*+html[lang^='ja'] *,
*+html[lang^='ja'] textarea,
*+html [lang^='ja'] *,
*+html [lang^='ja'] textarea
						{ font-family: 'Hiragino Sans', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', Osaka, Meiryo, 'メイリオ', 'MS PGothic', 'MS Pゴシック', 'Hiragino Sans GB', 'Helvetica Neue', HelveticaNeue, Helvetica, Arial, 'Arial Unicode MS', sans-serif; }

/* Standard Chinese (Mandarin) / 國語 */
[lang^='zh'],
.rf-font-chinese		{ font-family: 'PingFang SC', 'Heiti TC', STHeiti, STHeiti, '华文细黑', STXihei, 'Microsoft YaHei New', 'Microsoft Yahei', '微软雅黑', 'Lantinghei SC', Lantinghei, 'Helvetica Neue', HelveticaNeue, Helvetica, Arial, 'Arial Unicode MS', sans-serif; }
*+html[lang^='zh'] *,
*+html[lang^='zh'] textarea,
*+html [lang^='zh'] *,
*+html [lang^='zh'] textarea
						{ font-family: 'PingFang SC', 'Heiti TC', STHeiti, STHeiti, '华文细黑', STXihei, 'Microsoft YaHei New', 'Microsoft Yahei', '微软雅黑', 'Lantinghei SC', Lantinghei, 'Helvetica Neue', HelveticaNeue, Helvetica, Arial, 'Arial Unicode MS', sans-serif; }

/* Thai / ภาษาไทย */
[lang^='th'],
.rf-font-thai			{ font-family: 'Sukhumvit Set', Thonburi, DokChampa, 'Helvetica Neue', HelveticaNeue, Helvetica, Arial, 'Arial Unicode MS', sans-serif; }
*+html[lang^='th'] *,
*+html[lang^='th'] textarea,
*+html [lang^='th'] *,
*+html [lang^='th'] textarea
						{ font-family: 'Sukhumvit Set', Thonburi, DokChampa, 'Helvetica Neue', HelveticaNeue, Helvetica, Arial, 'Arial Unicode MS', sans-serif; }


/* Arabic / العَرَبِيةُ‎‎ */
[lang^='ar'],
.rf-font-arabic			{ font-family: Damascus, 'Geeza Pro', GeezaPro, 'Microsoft Sans Serif', MicrosoftSansSerif, 'Helvetica Neue', HelveticaNeue, Helvetica, Arial, 'Arial Unicode MS', sans-serif; }
*+html[lang^='ar'] *,
*+html[lang^='ar'] textarea,
*+html [lang^='ar'] *,
*+html [lang^='ar'] textarea
						{ font-family: Damascus, 'Geeza Pro', GeezaPro, 'Microsoft Sans Serif', MicrosoftSansSerif, 'Helvetica Neue', HelveticaNeue, Helvetica, Arial, 'Arial Unicode MS', sans-serif; }


/* Baselines
───────────────────────────────────────────────────────────────────────── */

html					{ line-height: 1.618; }
[lang^='ja'],
[lang^='zh'],
.rf-font-japanese,
.rf-font-chinese		{ line-height: 1.5625; }


/* Headers
───────────────────────────────────────────────────────────────────────── */

h1,
h2,
h3,
h4,
h5,
h6						{ line-height: 1.414; }
h1,
h2,
h3,
h4						{ margin-top: 1em; margin-bottom: .75em; }
h5,
h6						{ margin-top: 1.5em; margin-bottom: 1.25em; }
h1 + h2					{ margin-top: -.5em; }
h1,
h2						{ font-weight: 400; }
h3,
h4						{ font-weight: 600; }
h5,
h6						{ font-weight: 900; }
h1 small,
h2 small				{ font-size: .6em; }
h3 small,
h4 small				{ font-size: .7em; }
h5 small,
h6 small				{ font-size: .8em; letter-spacing: .02em; }


/* Headers sizes
───────────────────────────────────────────────────────────────────────── */

h6						{ font-size: .813em; }
h5						{ font-size: .875em; }
p,
h4						{ font-size: 1em; }
h3						{ font-size: 1.25em; }
h2						{ font-size: 1.5em; }
h1						{ font-size: 2em; }

/* Text styling
───────────────────────────────────────────────────────────────────────── */

b						{ font-weight: normal; }
i						{ font-style: normal; }
strong					{ font-weight: bold; }
[lang^='ja'] em,
[lang^='zh'] em			{ font-style: normal; }

.rf-font-thin			{ font-weight: 100; }
.rf-font-light			{ font-weight: 200; }
.rf-font-normal			{ font-weight: 400; }
.rf-font-medium			{ font-weight: 500; }
.rf-font-bold			{ font-weight: 700; }
.rf-font-heavy			{ font-weight: 900; }
.rf-caps				{ text-transform: uppercase; letter-spacing: .01em; }
.rf-small-caps			{ font-variant: small-caps; letter-spacing: .015em; }


/* Ruby
───────────────────────────────────────────────────────────────────────── */

rp,
rt						{ font-size: 50%; }
rp						{ color: #ccc; }
rt						{ color: #666; }


/* Text alignment
───────────────────────────────────────────────────────────────────────── */

.rf-align-left,
.rf-align-start			{ text-align: left; }
.rf-align-right,
.rf-align-end			{ text-align: right; }
.rf-align-center		{ text-align: center; }
.rf-align-just			{ text-align: justify; }
[dir='rtl'].rf-align-left,
[dir='rtl'] .rf-align-left,
[dir='rtl'].rf-align-start,
[dir='rtl'] .rf-align-start
						{ text-align: right; }
[dir='rtl'].rf-align-right,
[dir='rtl'] .rf-align-right,
[dir='rtl'].rf-align-end,
[dir='rtl'] .rf-align-end
						{ text-align: left; }


/* Text direction
───────────────────────────────────────────────────────────────────────── */

.rf-text-vertical-ltr {
						-webkit-writing-mode: vertical-rl;
						    -ms-writing-mode: vertical-rl;
						        writing-mode: vertical-rl; }
.rf-text-vertical-rtl {
						-webkit-writing-mode: vertical-lr;
						    -ms-writing-mode: vertical-lr;
						        writing-mode: vertical-lr; }


/* Links
───────────────────────────────────────────────────────────────────────── */

a						{ text-decoration: underline; color: #1d54a7; background-color: transparent;
							-webkit-tap-highlight-color: rgba(29, 84, 167, .1); }
a:hover,
a:focus					{ text-decoration: none; color: #bf0000; }
a:active				{ color: #777; }
a:focus					{ outline-color: #ffbdbd; }
a:focus:active,
a:focus:hover			{ outline-color: #eecdcd; }
h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {						-webkit-text-decoration-color: #bcc5d2;
							   -moz-text-decoration-color: #bcc5d2;
							        text-decoration-color: #bcc5d2; }


/* Text‐level semantics
───────────────────────────────────────────────────────────────────────── */

dfn						{ font-style: normal; color: #bf0000; }
abbr[title]				{ text-decoration: none; border-bottom: 1px dotted #ccc; }
mark					{ color: #fff; background: #bf0000; }
small					{ font-size: 80%; }
sub,
sup						{ position: relative; font-size: 75%; line-height: 0; vertical-align: baseline; }
sup						{ top: -.5em; }
sub						{ bottom: -.25em; }


/* Technical text elements
───────────────────────────────────────────────────────────────────────── */

pre						{ overflow: auto; }
code,
kbd,
pre,
samp					{ font-family: Menlo, Monaco, 'Andale Mono', Consolas, 'Lucida Console', 'Courier New', Courier, monospace, monospace;
							font-size: .938em; line-height: 1.414; }
kbd						{ display: inline-block; padding: 0 .25em; }


/* Thematic break
───────────────────────────────────────────────────────────────────────── */

hr						{ clear: both; margin: 1.6em 0 1.5em; height: 0;
							border: none; border-bottom: .063em solid #cacaca;
							-webkit-box-sizing: content-box;
							        box-sizing: content-box; }


/* Colors
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* Text colors
───────────────────────────────────────────────────────────────────────── */

html,
.rf-color-txt,
.rf-black				{ color: #333; }
.rf-red					{ color: #bf0000; }
.rf-blue				{ color: #1d54a7; }
.rf-dimgray				{ color: #404040; }
.rf-gray				{ color: #666; }
.rf-silver				{ color: #999; }
.rf-gainsboro			{ color: #f5f5f5; }
.rf-white				{ color: #fff; }


/* Background colors
───────────────────────────────────────────────────────────────────────── */

html,
.rf-bg-white			{ background-color: #fff; }
.rf-bg-black			{ background-color: #333; }
.rf-bg-red				{ background-color: #bf0000; }
.rf-bg-dimgray			{ background-color: #404040; }
.rf-bg-gray				{ background-color: #666; }
.rf-bg-silver			{ background-color: #999; }
.rf-bg-gainsboro		{ background-color: #f5f5f5; }


/* Lists
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* Ordered/Unordered lists
─────────────────────────────────────────────────────────────────────────────────── */

ul,
ol									{ margin-left: 1em; padding-left: .8em; }
ul ul,
ul ol,
ol ol,
ol ul								{ padding-left: 1em; }


/* Description lists
─────────────────────────────────────────────────────────────────────────────────── */

dt									{ margin-top: .25em; font-weight: 600; color: #1a1a1a; }
dd									{ margin-left: 0; }


/* Custom unordered lists’ symbols
─────────────────────────────────────────────────────────────────────────────────── */

.rf-list-circle,
.rf-list-bullet,
.rf-list-diamond,
.rf-list-middle-dot,
.rf-list-square,
.rf-list-triangle,
.rf-list-triangle-down				{ list-style-type: none; }
.rf-list-circle li,
.rf-list-bullet li,
.rf-list-middle-dot li,
.rf-list-diamond li,
.rf-list-square li,
.rf-list-triangle li,
.rf-list-triangle-down li			{ position: relative; }
.rf-list-circle li:before,
.rf-list-bullet li:before,
.rf-list-middle-dot li:before,
.rf-list-diamond li:before,
.rf-list-square li:before,
.rf-list-triangle li:before,
.rf-list-triangle-down li:before	{ position: absolute; top: 0; left: -1.4em; }
.rf-list-circle li:before,
.rf-list-triangle li:before,
.rf-list-triangle-down li:before	{ font-family: 'Helvetica Neue', HelveticaNeue, Helvetica, Arial, 'Arial Unicode MS', sans-serif; }
.rf-list-bullet li:before,
.rf-list-middle-dot li:before,
.rf-list-diamond li:before,
.rf-list-square li:before			{ font-family: 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', Osaka, Meiryo, 'メイリオ', 'MS PGothic', 'MS Pゴシック', 'Hiragino Sans GB', 'Heiti TC', STHeiti, STHeiti, '华文细黑', STXihei, 'Helvetica Neue', 'Microsoft YaHei New', 'Microsoft Yahei', '微软雅黑', 'Lantinghei SC', Lantinghei, 'Arial Unicode MS', sans-serif; }
.rf-list-circle li:before			{ content: '\3007'; }
.rf-list-bullet li:before			{ content: '\25cf'; }
.rf-list-middle-dot li:before		{ content: '\30fb'; }
.rf-list-diamond li:before			{ content: '\25c7'; }
.rf-list-square li:before			{ content: '\25a0'; }
.rf-list-triangle li:before			{ content: '\25ba'; }
.rf-list-triangle-down li:before	{ content: '\25bc'; }

.no-generatedcontent .rf-list-circle,
.no-generatedcontent .rf-list-bullet,
.no-generatedcontent .rf-list-middle-dot
									{ list-style-type: circle; }
.no-generatedcontent .rf-list-diamond,
.no-generatedcontent .rf-list-square,
.no-generatedcontent .rf-list-triangle,
.no-generatedcontent .rf-list-triangle-down
									{ list-style-type: square; }


/* Alphabet ordered lists
─────────────────────────────────────────────────────────────────────────────────── */

.rf-list-alphabet					{ list-style-type: lower-alpha; }


/* Custom ordered lists’ numbering
─────────────────────────────────────────────────────────────────────────────────── */

.rf-list-num-parenthesis			{ list-style-type: none; counter-reset: section; }
.rf-list-num-parenthesis li			{ position: relative; }
.rf-list-num-parenthesis li:before	{ content: '(' counter(section) ')\00a0'; counter-increment: section;
										position: absolute; top: 0; left: -1.8em; }
.no-generatedcontent .rf-list-num-parenthesis
									{ list-style-type: decimal; }


/* Plain lists (without marks)
─────────────────────────────────────────────────────────────────────────────────── */

.rf-list-plain,
.rf-list-plain li					{ list-style-type: none; }
.rf-list-plain						{ margin: 0; padding-left: 0; }
.rf-list-plain li					{ margin-bottom: .35em; }


/* Inline lists
─────────────────────────────────────────────────────────────────────────────────── */

.rf-list-inline						{ margin-left: 0; padding-left: 0; }
dl.rf-list-inline,
.rf-list-inline dl					{ display: block; margin: .25em 0; }
.rf-list-inline li,
.rf-list-inline dd					{ padding: 0 1em; }
.rf-list-inline li					{ display: inline-block; }
.rf-list-inline dd					{ display: inline-block; }
.rf-list-inline dd a				{ white-space: nowrap; }


/* Navigation lists (inline)
─────────────────────────────────────────────────────────────────────────────────── */

nav ul,
nav ol,
nav li								{ list-style-type: none; }
nav ul,
nav ol								{ margin: 0; padding-left: 0; text-align: center; }
nav li								{ display: inline; margin-right: -.333em; margin-bottom: .25em; border-right: 1px solid #dbdbdb; }
nav li:last-child					{ border-right: none; }
.no-lastchild nav li:first-child
									{ border-left: 1px solid #dbdbdb; }
nav a								{ display: inline-block; padding: 0 1em; text-decoration: none; white-space: nowrap;
										border-bottom: 1px solid #fff;
										border-bottom: 1px solid transparent;
										-webkit-transition: color .25s, border-color .35s;
										        transition: color .25s, border-color .35s; }
nav a:hover,
nav a:focus							{ text-decoration: none; color: #bf0000; border-bottom-color: #bf0000; }
nav a:active						{ color: #aaa; background-color: transparent; }

*+html nav li						{ margin-right: 0; }
*+html nav a						{ margin-right: -.333em; }

/* PCs & tablets — Normal viewport: 769+ pixels */
@media screen and (min-width: 48.063em) {
	nav ul,
	nav ol							{ text-align: left; }
	nav li:first-child				{ border-left: none; }
}


/* Vertical navigation lists
─────────────────────────────────────────────────────────────────────────────────── */

.rf-nav-list ul,
.rf-nav-list ol						{ text-align: left; }
.rf-nav-list ul ul,
.rf-nav-list ul ol,
.rf-nav-list ol ul,
.rf-nav-list ol ol					{ margin-left: .667em; }
.rf-nav-list li						{ display: block; margin-right: 0; border-right: none; }
.no-lastchild .rf-nav-list li:first-child
									{ border-left: none; }
.rf-nav-list a						{ padding: 0; white-space: normal; }

*+html .rf-nav-list a				{ margin-right: 0; }


/* Forms
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* Optimizations
───────────────────────────────────────────────────────────────────────── */

legend,
label,
button,
input,
optgroup,
select,
textarea								{ margin: 0; font: inherit; line-height: inherit; color: inherit; }
button									{ overflow: visible; }
button,
select									{ text-transform: none; }
input									{ line-height: normal; }
button,
html input[type='button'],
input[type='reset'],
input[type='submit']					{ cursor: pointer; -webkit-appearance: button; }
button[disabled],
html input[disabled]					{ cursor: default; }
legend,
button::-moz-focus-inner,
input::-moz-focus-inner,
input[type='file'] > input[type='button']::-moz-focus-inner
										{ padding: 0; border: none; }
input[type='checkbox'],
input[type='radio']						{ padding: 0;
											-webkit-box-sizing: border-box;
											        box-sizing: border-box; }
input[type='number']::-webkit-inner-spin-button,
input[type='number']::-webkit-outer-spin-button
										{ height: auto; }
input[type='search']					{ -webkit-appearance: textfield;
											-webkit-box-sizing: content-box;
											        box-sizing: content-box; }
input[type='search']::-webkit-search-cancel-button,
input[type='search']::-webkit-search-decoration
										{ -webkit-appearance: none; }
textarea								{ overflow: auto; }
optgroup								{ font-weight: bold; }


/* Fieldsets & Legends
───────────────────────────────────────────────────────────────────────── */

fieldset								{ margin: .5em 0 1em; padding: 1.5em 0 .75em; border: none;
											-webkit-box-sizing: border-box;
											        box-sizing: border-box; }
legend									{ display: block; width: 100%; }
*+html legend							{ margin-left: -.35em; }


/* Select menus
───────────────────────────────────────────────────────────────────────── */

select									{ max-width: 100%; vertical-align: middle; }
select[multiple],
select[size]							{ height: auto; }


/* Media
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* Optimizations
───────────────────────────────────────────────────────────────────────── */

figure,
figcaption				{ display: block; }
figure					{ margin: 1em 0; }
figcaption				{ margin-top: .25em; }
img						{ border: none; }
svg:not(:root)			{ overflow: hidden; }
audio:not([controls])	{ display: none; height: 0; }


/* Selected text color
───────────────────────────────────────────────────────────────────────── */

img::-moz-selection		{ background-color: #f5f5f5; }
img::selection			{ background-color: #f5f5f5; }
svg::-moz-selection		{ background-color: #f5f5f5; }
svg::selection			{ background-color: #f5f5f5; }


/* Responsive images
───────────────────────────────────────────────────────────────────────── */

img						{ display: block; max-width: 100%; }


/* Images’ shapes
───────────────────────────────────────────────────────────────────────── */

.rf-rounded				{ border-radius: .5em; }
.rf-circle				{ border-radius: 50%; }


/* Tabular data
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* Optimizations
───────────────────────────────────────────────────────────────────────── */

table					{ margin-bottom: 1em; max-width: 100%; border-collapse: collapse; border-spacing: 0; }
td,
th						{ padding: .063em; }
table > thead > tr > th	{ vertical-align: bottom; }
