@import (less) './themes/fonts/5e legacy/fonts.less';
@import (less) './themes/assets/assets.less';
@import (less) './themes/phb.depricated.less';
//Colors
@background            : #EEE5CE; // Light parchment
@noteGreen             : #e0e5c1; // Pastel green
@headerUnderline       : #c9ad6a; // Gold
@horizontalRule        : #9c2b1b; // Maroon
@headerText            : #58180D; // Dark maroon
@monsterStatBackground : #FDF1DC; // Lighter parchment
@captionText           : #766649; // Brown
@page { margin : 0; }
body { counter-reset : phb-page-numbers; }
* { -webkit-print-color-adjust : exact; }
.useSansSerif() {
	font-family : 'ScalySans';
	em {
		font-family : 'ScalySans';
		font-style  : italic;
	}
	strong {
		font-family    : 'ScalySans';
		font-weight    : 800;
		letter-spacing : -0.02em;
	}
}
.useColumns(@multiplier : 1) {
	column-count         : 2;
	column-fill          : auto;
	column-gap           : 1cm;
	column-width         : 8cm * @multiplier;
	-webkit-column-count : 2;
	-moz-column-count    : 2;
	-webkit-column-width : 8cm * @multiplier;
	-moz-column-width    : 8cm * @multiplier;
	-webkit-column-gap   : 1cm;
	-moz-column-gap      : 1cm;
}
.phb, .page {
	.useColumns();
	position               : relative;
	z-index                : 15;
	box-sizing             : border-box;
	width                  : 215.9mm;
	height                 : 279.4mm;
	padding                : 1.0cm 1.7cm;
	padding-bottom         : 1.5cm;
	overflow               : hidden;
	font-family            : 'BookSanity';
	font-size              : 0.317cm;
	counter-increment      : phb-page-numbers;
	background-color       : @background;
	background-image       : @backgroundImage;
	text-rendering         : optimizeLegibility;
	page-break-before      : always;
	page-break-after       : always;
	contain                : strict;
	content-visibility     : auto;
	contain-intrinsic-size : auto none;
}

.phb {
	//*****************************
	// *            BASE
	// *****************************/
	p {
		padding-bottom : 0.8em;
		line-height    : 1.269em;
		& + p { margin-top : -0.8em; }
	}
	ul {
		padding-left        : 1.4em;
		margin-bottom       : 0.8em;
		line-height         : 1.269em;
		list-style-position : outside;
		list-style-type     : disc;
	}
	ol {
		padding-left        : 1.4em;
		margin-bottom       : 0.8em;
		line-height         : 1.269em;
		list-style-position : outside;
		list-style-type     : decimal;
	}
	//Indents after p or lists
	p + p, ul + p, ol + p { text-indent : 1em; }
	img { z-index : -1; }
	strong {
		font-weight    : bold;
		letter-spacing : 0.03em;
	}
	em { font-style : italic; }
	sup {
		font-size      : smaller;
		line-height    : 0;
		vertical-align : super;
	}
	sub {
		font-size      : smaller;
		line-height    : 0;
		vertical-align : sub;
	}
	//*****************************
	// *           HEADERS
	// *****************************/
	h1,h2,h3,h4 {
		margin-top    : 0.2em;
		margin-bottom : 0.2em;
		font-family   : 'MrJeeves';
		font-weight   : 800;
		color         : @headerText;
	}
	h1 {
		column-span         : all;
		font-size           : 0.987cm;
		-webkit-column-span : all;
		-moz-column-span    : all;
		& + p::first-letter {
			float       : left;
			font-family : 'Solberry';
			font-size   : 10em;
			line-height : 0.795em;
			color       : #222222;
		}
	}
	h2 { font-size : 0.705cm; }
	h3 {
		font-size     : 0.529cm;
		border-bottom : 2px solid @headerUnderline;
	}
	h4 {
		margin-bottom : 0.00em;
		font-size     : 0.458cm;
	}
	h5 {
		margin-bottom : 0.2em;
		font-family   : 'ScalySansSmallCaps';
		font-size     : 0.423cm;
		font-weight   : 900;
	}
	//*****************************
	// *          TABLE
	// *****************************/
	table {
		.useSansSerif();
		width         : 100%;
		margin-bottom : 1em;
		font-size     : 10pt;
		thead {
			display     : table-row-group;
			font-weight : 800;
			th {
				padding-right  : 0.1em;
				padding-bottom : 0.3em;
				padding-left   : 0.1em;
				vertical-align : bottom;
			}
		}
		tbody {
			tr {
				td { padding : 0.3em 0.1em; }
				&:nth-child(odd) { background-color : @noteGreen; }
			}
		}
	}
	//*****************************
	// *            NOTE
	// *****************************/
	blockquote {
		.useSansSerif();
		box-sizing          : border-box;
		padding             : 5px 10px;
		margin-bottom       : 1em;
		background-color    : @noteGreen;
		border-style        : solid;
		border-width        : 11px;
		border-image        : @noteBorderImage 11;
		border-image-outset : 9px 0px;
		box-shadow          : 1px 4px 14px #888888;
		p, ul {
			font-size   : 0.352cm;
			line-height : 1.083em;
		}
	}
	//If a note starts a column, give it space at the top to render border
	pre + blockquote, h2 + blockquote, h3 + blockquote, h4 + blockquote, h5 + blockquote { margin-top : 13px; }
	//*****************************
	// *    MONSTER STAT BLOCK
	// *****************************/
	hr+blockquote {
		position         : relative;
		padding-top      : 15px;
		background-color : @monsterStatBackground;
		border-style     : solid;
		border-width     : 10px;
		border-image     : @monsterBorderImageLegacy 10;
		h2 {
			margin-top    : -8px;
			margin-bottom : 0px;
			& + p { padding-bottom : 0px; }
		}
		h3 {
			font-family   : 'ScalySans';
			font-weight   : normal;
			border-bottom : 1px solid @headerText;
		}
		hr + ul { color : @headerText; }
		ul {
			.useSansSerif();
			padding-left : 1em;
			font-size    : 0.352cm;
		}
		// Monster Ability table
		hr + table {
			margin              : 0;
			background-color    : transparent;
			border-style        : none;
			border-image        : none;
			tbody {
				tr:nth-child(odd), tr:nth-child(even) { background-color : transparent; }
			}
		}
		table { color : @headerText; }
		p + p {
			padding-bottom : 0.5em;
			margin-top     : 0em;
			text-indent    : 0em;
		}
		//Triangle dividers
		hr {
			visibility       : visible;
			height           : 6px;
			margin           : 4px 0px;
			background-image : @redTriangleImage;
			background-size  : 100% 100%;
			border           : none;
		}
	}
	//Full Width
	hr + hr + blockquote {
		.useColumns(0.96);
		column-fill : balance;
	}
	//*****************************
	// *           FOOTER
	// *****************************/
	&:after {
		position         : absolute;
		bottom           : 0px;
		left             : 0px;
		z-index          : 100;
		width            : 100%;
		height           : 50px;
		content          : '';
		background-image : @footerAccentImage;
		background-size  : cover;
	}
	&:nth-child(even) {
		&::after { transform : scaleX(-1); }
		.pageNumber { left : 2px; }
		.footnote {
			left       : 80px;
			text-align : left;
		}
	}
	.pageNumber {
		position   : absolute;
		right      : 2px;
		bottom     : 22px;
		width      : 50px;
		font-size  : 0.9em;
		color      : #C9AD6A;
		text-align : center;
		&.auto::after { content : counter(phb-page-numbers); }
	}
	.footnote {
		position   : absolute;
		right      : 80px;
		bottom     : 32px;
		z-index    : 150;
		width      : 200px;
		font-size  : 0.8em;
		color      : #C9AD6A;
		text-align : right;
	}
	//*****************************
	// *          EXTRAS
	// *****************************/
	hr {
		visibility : hidden;
		margin     : 0px;
	}
	//Modified unorder list, used in spells
	hr + ul {
		padding-left    : 1em;
		margin-bottom   : 0.5em;
		text-indent     : -1em;
		list-style-type : none;
	}
	//Column Break
	pre, code {
		visibility                 : hidden;
		-webkit-column-break-after : always;
		break-after                : always;
		-moz-column-break-after    : always;
	}
	//Avoid breaking up
	p,blockquote,table {
		z-index                     : 15;
		-webkit-column-break-inside : avoid;
		page-break-inside           : avoid;
		break-inside                : avoid;
	}
	//Better spacing for spell blocks
	h4 + p + hr + ul { margin-top : -0.5em; }
	//Text indent right after table
	table + p { text-indent : 1em; }
	// Nested lists
	ul ul,ol ol,ul ol,ol ul {
		margin-bottom : 0px;
		margin-left   : 1.5em;
	}
	li {
		-webkit-column-break-inside : avoid;
		page-break-inside           : avoid;
		break-inside                : avoid;
	}
}
//*****************************
// *         SPELL LIST
// *****************************/
.phb .spellList {
	.useSansSerif();
	column-count        : 4;
	-webkit-column-span : all;
	-moz-column-span    : all;
	column-span         : all;
	ul + h5 { margin-top : 15px; }
	p, ul {
		font-size   : 0.352cm;
		line-height : 1.263em;
	}
	ul {
		padding-left                : 1em;
		margin-bottom               : 0.5em;
		text-indent                 : -1em;
		list-style-type             : none;
		break-inside                : auto;
		-webkit-column-break-inside : auto;
		page-break-inside           : auto;
	}
}
//*****************************
// *         WIDE
// *****************************/
.phb .wide {
	-webkit-column-span : all;
	-moz-column-span    : all;
	column-span         : all;
}
//*****************************
// *       CLASS TABLE
// *****************************/
.phb .classTable {
	margin-top          : 25px;
	margin-bottom       : 40px;
	border-collapse     : separate;
	background-color    : white;
	border              : initial;
	border-style        : solid;
	border-image-source : @frameBorderImage;
	border-image-slice  : 150 200 150 200;
	border-image-width  : 47px;
	border-image-outset : 25px 17px;
	border-image-repeat : stretch;
	h5 { margin-bottom : 10px; }
}
//************************************
// *       DESCRIPTIVE TEXT BOX
// ************************************/
.phb .descriptive {
	margin-bottom       : 1em;
	font-family         : 'ScalySans';
	background-color    : #FAF7EA;
	border-style        : solid;
	border-width        : 7px;
	border-image        : @descriptiveBoxImage 12 stretch;
	border-image-outset : 4px;
	box-shadow          : 0px 0px 6px #FAF7EA;
	p {
		display        : block;
		padding-bottom : 0px;
		line-height    : 1.47em;
	}
	p + p { padding-top : 0.8em; }
	em {
		font-family : 'ScalySans';
		font-style  : italic;
	}
	strong {
		font-family    : 'ScalySans';
		font-weight    : 800;
		letter-spacing : -0.02em;
	}
}
.phb pre + .descriptive { margin-top : 8px; }

//*****************************
// *    ARTIST CREDIT BLOCK
// *****************************/
.phb {
	.artist {
		position    : absolute;
		font-family : 'WalterTurncoat';
		font-size   : 0.27cm;
		color       : @captionText;
		text-align  : center;
		p, p + p {
			margin      : unset;
			line-height : 0.941em;
			text-indent : unset;
		}
		h5 {
			font-family : 'WalterTurncoat';
			font-size   : 1.3em;
		}
		a {
			color           : inherit;
			text-decoration : unset;
			&:hover { text-decoration : underline; }
		}
	}
}
//*****************************
// *      TABLE OF CONTENTS
// *****************************/
.phb .toc {
	-webkit-column-break-inside : avoid;
	page-break-inside           : avoid;
	break-inside                : avoid;
	a {
		color           : black;
		text-decoration : none;
		&:hover { text-decoration : underline; }
	}
	ul {
		padding-left    : 0;
		list-style-type : none;
	}
	& > ul > li { margin-bottom : 10px; }
}
