body
{
	background-color: #000000;
    font-family: Helvetica, sans-serif;
	font-size: 12px;
	line-height: 16px;
    text-decoration: none;
	color: #FFF;
	position: unset !important;
    min-height: unset !important;
}

header, nav, main, footer
{
	max-width: 980px;
	margin: 0 auto;
}

main
{
    min-height: 300px;
	background-image: url('/static/local/images/content-bg.jpg');
	background-position: bottom;
    background-repeat: no-repeat;
	background-size: 100%;
	padding: 10px 10px 20px 10px;
	box-sizing: border-box;
}

footer
{
	line-height: 24px;
	text-align: center;
}

footer small { font-size: smaller; color: grey !important; }
footer small a:link, footer small a:visited, footer small a:hover { color: grey; }

.mobile-only { display: none; }

img.hero
{
	border-radius: 0.5em;
	border: 5px solid #333;
	box-sizing: border-box;
}

.content
{
	background-color: #CCC;
	padding: 15px;
    max-height: 100%;
    height: 100%;
    box-sizing: border-box;
	overflow: auto;
    color: #000;
	font-size: 15px;
	line-height: 1.2em;
}

.content ul
{
	list-style-position: outside;
    padding-inline-start: 1.5em;
}

.content ul ul
{
	padding-inline-start: 0.75em;
}

.caption
{
    color: #cb181e;
    /* text-shadow: 0 0 2px #FFF, 0 0 2px #FFF; */
    text-transform: uppercase;
    font-weight: bold;
	margin: 0;
	text-shadow:
		-1px -1px 1px #FFF,  
		1px -1px 1px #FFF,
		-1px 1px 1px #FFF,
		1px 1px 1px #FFF;
}

header .title
{
	text-align: center;
	font-family: Papyrus;
}

header .title a
{
	text-decoration: none;
	color: cornflowerblue;
	font-size: 4.5em;
	line-height: 1em;
	margin-top: 0.25em;
	display: block;
	text-shadow: -1px -1px 1px rgba(255,255,255,0.65);
}

header .title p
{
	font-size: 2em;
	margin-top: 0.25em;
	color: #DDD;
}

h1
{
	font-family: 'Papyrus';
	display: block;
	height: 50px;
	text-align: center;
	padding: 0;
	margin: 0;
	background-color: #000;
	/* color: #CB181E; */
	font-size: 38px;
	line-height: 72px;
	font-weight: normal;
	color: #1E3C67;
	text-shadow: 1px 1px 1px cornflowerblue;
}

h1.vertical
{
	writing-mode: vertical-rl;
	transform: rotate(-180deg);
	font-size: 4em;
	line-height: 0.5em;
	font-weight: normal;
	padding-right: 0.6em;
	background: none;
	height: auto;
	font-weight: bold;
	display: block;
	/* color: #000; */
	/* text-shadow: 1px 1px 1px rgba(255,255,255,0.5); */
}

h2
{
	/* color: #cb181e; */
	color: #3E5CA7;
    font-weight: bold;
	font-size: 1.2em;
}

h3 { color: #1E3C67; }

h1, h2, h3 { margin-block-start: 0; }
p { margin-block-end: 0; }

a { color: #CC0000; text-decoration: none; }
a:link { color: #CC0000; }
a:hover { color: #FF0000; text-decoration: underline; /*0060a4*/ }
a:active { color: #000000; }

ul.relaxed > li,
ol.relaxed > li
{
	margin-bottom: 0.75em;
}

blockquote
{
	color: #444;
	font-size: smaller;
	font-style: oblique;
	text-align: justify;
	padding: 0.5em 1em;
	background-color: rgba(0,0,0,0.1);
	margin-inline-start: 1.5em;
	margin-inline-end: 1.5em;
}
blockquote::before { content: '“'; }
blockquote::after { content: '”'; }

.framed
{
	width: 100%;
	box-sizing: border-box;
	border: 0.5em solid #1E3C67; /* #552211 */
	box-shadow: 0 5px 5px rgba(0,0,0,0.5);
}

.bevel
{
    display: inline-block;
	padding: 6px 5px 7px 7px;
	box-sizing: border-box;
	background-color: white;
	box-shadow:
		inset -0.2em 0.2em 0.2em 0 rgba(255,255,255,0.5),
		inset 0.2em -0.2em 0.2em 0 rgba(0,0,0,0.75);
}

form.bevel { padding: 1.5em; }
form .field { margin-bottom: 0.5em; }
form .field input,
form .field select,
form .field textarea
{
	border: 1px solid gray;
	box-shadow: inset 2px 2px 2px silver;
}
input, button, select, textarea, .button
{
	font-size: 1em;
	border-radius: 0.5em;
	padding: 0.25em 0.5em;
	box-sizing: border-box;
}

button, .button, .button:hover
{
	cursor: pointer;
	padding: 0.5em 0.75em;
	background-color: #3E5CA7;
	border: 0;
	color: white;
	text-decoration: none;
	box-shadow:
		inset 2px 2px 2px rgba(255,255,255,0.5),
		inset -2px -2px 2px rgba(0,0,0,0.5);
}

button[type="submit"]
{
	font-weight: bold;
}

.centered { text-align: center; margin: 0 auto; }
.full-width { width: 100% !important; }
.full-height { height: 100% !important; }

.grid { display: flex; }

.two-column .column
{
	width: auto;
}

.frame
{
	box-sizing: border-box;
	background:
		url('/static/local/images/frame-tl.png') top left/8px 8px no-repeat,
		url('/static/local/images/frame-tr.png') top right/8px 8px no-repeat,
		url('/static/local/images/frame-tc.png') top center/8px 8px repeat-x,
		url('/static/local/images/frame-bl.png') bottom left/8px 8px no-repeat,
		url('/static/local/images/frame-br.png') bottom right/8px 8px no-repeat,
		url('/static/local/images/frame-bc.png') bottom center/8px 8px repeat-x,
		url('/static/local/images/frame-rc.png') right center/8px 8px repeat-y,
		url('/static/local/images/frame-lc.png') left center/8px 8px repeat-y;
	background-color: #666;
	padding: 12px;
}

.frame.left
{
	background:
		url('/static/local/images/frame-tl.png') top left/8px 8px no-repeat,
		url('/static/local/images/frame-tc.png') top center/8px 8px repeat-x,
		url('/static/local/images/frame-bl.png') bottom left/8px 8px no-repeat,
		url('/static/local/images/frame-mbl.png') bottom right/8px 8px no-repeat,
		url('/static/local/images/frame-bc.png') bottom center/8px 8px repeat-x,
		url('/static/local/images/frame-lc.png') left center/8px 8px repeat-y;
	background-color: #666;
	padding-right: 4px;
}

.frame.right
{
	background:
		url('/static/local/images/frame-tr.png') top right/8px 8px no-repeat,
		url('/static/local/images/frame-tc.png') top center/8px 8px repeat-x,
		url('/static/local/images/frame-br.png') bottom right/8px 8px no-repeat,
		url('/static/local/images/frame-bc.png') bottom center/8px 8px repeat-x,
		url('/static/local/images/frame-rc.png') right center/8px 8px repeat-y;
	background-color: #666;
}

.frame.right-middle
{
	background:
		url('/static/local/images/frame-bl.png') bottom right/8px 8px no-repeat,
		url('/static/local/images/frame-lc.png') right center/8px 8px repeat-y;
}

table.image-list { margin: 0.25em 0; }
table.image-list th { width: 50px; padding: 0.25em 0.5em 0.25em 0; }
table.image-list td { font-size: 1em; }
table.image-list img { width: 50px; box-shadow: 1px 1px 3px rgba(0,0,0,0.75); }

.card,
.card img,
.card p
{
	display: block;
	text-align: center;
}

.card
{
	display: inline-block;
	margin-top: 0.5em;
	margin-left: 0.125em;
	margin-right: 0.125em;
}

.card img,
.card p
{
	margin: 0;
	padding: 0;
}

/* #region FONTS */

@font-face
{
	font-family: 'Papyrus';
	src: url('/static/local/font/papyrus/papyrus.eot'); /* IE9*/
	src: url('/static/local/font/papyrus/papyrus.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
	url('/static/local/font/papyrus/papyrus.woff2') format('woff2'), /* chrome, firefox */
	url('/static/local/font/papyrus/papyrus.woff') format('woff'), /* chrome, firefox */
	url('/static/local/font/papyrus/papyrus.ttf') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
	url('/static/local/font/papyrus/papyrus.svg#Papyrus W01') format('svg'); /* iOS 4.1- */
}

/* #endregion FONTS */

/* #region NAVBAR */

nav
{
	border-radius: 0.25em;
	margin-top: 10px;
	background-color: #414141;
}

nav > ul
{
	display: flex;
	/* position: relative; */
}

nav > ul > li:last-child
{
	border-right: none;
}

nav ul
{
	list-style-type: none;
	margin: 0;
	padding: 0;
}

nav > ul > li
{
	flex: 1;
	text-align: center;
	border-right: 1px solid #778;
	font-weight: bold;
}

nav ul li a:link,
nav ul li a:visited
{
	line-height: 2em;
	white-space: nowrap;
	padding: 0 1em;
	display: block;
	line-height: 2em;
	text-decoration: none;
	color: white;
}

nav ul li a:hover
{
	color: #FF0000;
}

nav ul li a:hover,
nav ul li:hover > a
{
	background-color: #222 !important;
}

nav ul li.parent > a
{
	padding-right: 1.5em;
	background: url('/static/local/images/menu-down.gif') right 5px center no-repeat;
}

nav ul ul
{
	visibility: hidden;
	opacity: 0;
	transition: visibility 0s, opacity 0.2s linear;
	position: absolute;
	background-color: #414141;
	box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5);
	min-width: 11.25em;
}

nav ul > li:hover ul
{
	visibility: visible;
	opacity: 1;
}

nav ul ul li
{
	text-align: left;
	font-weight: normal;
	border-bottom: 1px solid #778;
}

nav ul ul li:last-child
{
	border-bottom: none;
}

/* #endregion NAVBAR */

.gallery img
{
	width: 24%;
	display: inline-block;
	margin: .35%;
	box-shadow: 0 0 5px rgba(0, 0, 0, .75);
}

/* #region ROUTE-SPECIFIC */

#shihankai
{
	text-align: center;
}

#soke,
#shihankai .card
{
	box-sizing: border-box;
	background-color: #222;
	padding: 4px;
	border-radius: 0.5em;
	color: #FFF;
}
#shihankai .card
{
	width: 20%;
	max-width: 114px;
}

#soke:hover, #shihankai .card:hover { color: #FF0000; }

#shihankai .card img
{
	width: 100%;
	margin: 0 auto;
}

#shihankai .card p
{
	padding: 0.25em;
	padding-bottom: 0;
}

body main > .two-column .column:first-child img
{
	height: 100%;
	margin-left: 0.5em;
	display: block;
}

body[data-view="dojo/index"] main > .two-column .column:nth-child(2)
{
	height: 350px;
	margin-left: 1.5em;
}

body[data-view="members/video"] main > .two-column .column:nth-child(2)
{
	height: 410px;
	margin-left: 1.5em;
}

/* Saito-ha */
body[data-view="saitoha/index"] main > .two-column .frame.left h1.vertical
{
	font-size: 3em;
	margin-left: 10px;
}

body[data-view="saitoha/shihankai"] main > .two-column .frame.left h1.vertical
{
	font-size: 2.25em;
	margin-left: 0.75em;
}

body[data-view="saitoha/shihankai"] main h1
{
	color: #7DB8F9;
	font-size: 5em;
	height: auto;
	background-color: transparent;
}

body[data-view="members/store"] main tbody img { width: 100px; }
body[data-view="members/store"] main label,
body[data-view="members/store"] main input[type="image"] { display: block; margin: 0 auto; }
body[data-view="members/store"] main thead tr { background-color: white; }
body[data-view="members/store"] main tbody tr:nth-child(odd) { background-color: #DDD; }
body[data-view="members/store"] main tbody tr:nth-child(even) { background-color: #EEE; }
body[data-view="members/store"] main tbody tr td:first-child { width: 100px; }
body[data-view="members/store"] main tbody tr td:last-child,
body[data-view="members/store"] main form { text-align: center; }
body[data-view="members/store"] main .price { font-weight: bold; }
body[data-view="members/store"] main tbody p { margin: 0; }

#sidebar-menu
{
	width: 300px;
	white-space: nowrap;
	padding-bottom: 1.5em;
}

/* #endregion ROUTE-SPECIFIC */

/* #region RESPONSIVE */
@media screen and (max-width: 860px)
{
	html { height: auto !important; }

	.mobile-only { display: unset; }

	header, nav, main, footer
	{
		width: auto;
	}

	header table { display: none; }

	header .title a
	{
		font-size: 2.25em;
		text-shadow: none;
	}

	header .title p
	{
		font-size: 1.5em;
	}

	/* NAV */
	nav a.mobile-only.menu-trigger
	{
		float: right;
		color: #FF0000;
	}

	nav a.mobile-only
	{
		color: #FFF;
		cursor: pointer;
		display: inline-block;
		line-height: 2em;
	}

	nav a.mobile-only img
	{
		height: 2em;
		float: left;
		margin-right: 0.5em;
	}

	nav .pancake
	{
		float: left;
		display: block;
		width: 1em;
		margin-right: 0.5em;
		height: 1em;
		margin-top: 0.5em;
	}

	nav .pancake .line
	{
		display: block;
		width: 1em;
		height: 0;
		border-top: 3px solid #FF0000;
	}

	nav .pancake .line:nth-child(2)
	{
		margin-top: 4px;
		margin-bottom: 4px;
	}

	nav { padding: 0.5em 0.75em; font-size: 1.5em; line-height: 1em; background-color: #333; }
	nav > ul
	{
		border: 1px solid #222;
		border-radius: 0.25em;
		display: none;
		width: 16em !important;
		line-height: 1.75em;
		box-shadow: 0 0 5px rgba(0, 0, 0, .75);
		position: absolute;
		background-color: #414141;
		right: 1em;
		padding-bottom: 1em;
	}
	nav > ul > li
	{
		text-align: left;
		border-bottom: 1px solid #778 !important;
		border-right: none;
	}
	nav > ul li li
	{
		text-align: left !important;
		border: none;
		list-style-type: disc;
	}
	nav > ul li li a { padding-left: 0 !important; }
	nav > ul li li a:hover { background: none !important; }
	nav ul ul
	{
		position: unset;
		visibility: visible;
		opacity: unset;
		box-shadow: none;
		margin-left: 2.5em;
	}
	nav ul li.parent a { background: none; }
	/* /NAV */

	.frame, .frame.left, .frame.right, .frame.right-middle,
	main > .grid.two-column .column
	{
		padding: 0;
		background: none;
		height: auto !important;
	}

	body main > .grid.two-column
	{
		display: block;
	}

	body main > .grid.two-column .column
	{
		display: block;
		width: 100%;
	}

	footer span { display: inline-block; }

	#widget { display: none; }
	#widget-mobile { display: block !important; margin-top: 1em; }

	main > .grid.two-column > .column:first-child
	{
		display: none;
	}

	main .content img.hero
	{
		width: 300px;
		max-width: 35vw;
		height: auto;
		display: inline;
		float: right;
		margin-left: 1em;
		margin-bottom: 1em;
	}

	body[data-layout="video-library"] main > .grid.two-column > .column:first-child
	{
		display: block;
		margin-bottom: 1em;
	}

	#sidebar-menu { width: auto; padding-bottom: 1em; }
	#sidebar-menu ul { width: 100%; padding-inline-start: 0; list-style-type: disc; list-style-position: inside; display: block; overflow: hidden; clear: both; }
	#sidebar-menu li { float: left; padding-left: 1em; }
	#sidebar-menu br { display: none; }
	#sidebar-menu a.button { display: inline-block; clear: both; }

	body[data-view="saitoha/shihankai"] main table h1 { font-size: 2em; line-height: 1.25em; }
	body[data-view="matc/index"] main .content img.hero { display: none !important; }
	body[data-view="contact"] main .content img.hero { display: none !important; }

	body[data-view="dojo/index"] main > .two-column .column:nth-child(2),
	body[data-view="members/video"] main > .two-column .column:nth-child(2)
	{
		height: unset;
		margin-left: unset;
	}
	body[data-view="saitoha/shihankai"] #shihankai .card
	{
		margin-left: 0.5em;
		margin-right: 0.5em;
		width: 33%;
	}
	/* body[data-view="saitoha/shihankai"] #shihankai .card img
	{
		height: 100px;
	}
	body[data-view="saitoha/shihankai"] #shihankai .card p
	{
		padding: 0 2px;
	} */
}
/* #endregion RESPONSIVE */
