@charset "UTF-8";

/* ==========================================================================



RESET
========================================================================== */
html{color:#222;font-size:1em;line-height:1.4}::selection{background:#b3d4fc;text-shadow:none}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}.browserupgrade{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.hidden{display:none !important}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}@media print{*,*:before,*:after,*:first-letter ,*:first-line {background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}

/*! Flickity v2.2.1
https://flickity.metafizzy.co
---------------------------------------------- */
.flickity-enabled{position:relative}.flickity-enabled:focus{outline:0}.flickity-viewport{overflow:hidden;position:relative;height:100%}.flickity-slider{position:absolute;width:100%;height:100%}.flickity-enabled.is-draggable{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.flickity-enabled.is-draggable .flickity-viewport{cursor:move;cursor:-webkit-grab;cursor:grab}.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down{cursor:-webkit-grabbing;cursor:grabbing}.flickity-button{position:absolute;background:hsla(0,0%,100%,.75);border:none;color:#333}.flickity-button:hover{cursor:pointer}.flickity-button:focus{outline:0;box-shadow:0 0 0 5px #19f}.flickity-button:active{opacity:.6}.flickity-button:disabled{opacity:.3;cursor:auto;pointer-events:none}.flickity-button-icon{fill:currentColor}.flickity-prev-next-button{top:50%;width:44px;height:44px;border-radius:50%;transform:translateY(-50%)}.flickity-prev-next-button.previous{left:10px}.flickity-prev-next-button.next{right:10px}.flickity-rtl .flickity-prev-next-button.previous{left:auto;right:10px}.flickity-rtl .flickity-prev-next-button.next{right:auto;left:10px}.flickity-prev-next-button .flickity-button-icon{position:absolute;left:20%;top:20%;width:60%;height:60%}.flickity-page-dots{position:absolute;width:100%;bottom:-25px;padding:0;margin:0;list-style:none;text-align:center;line-height:1}.flickity-rtl .flickity-page-dots{direction:rtl}.flickity-page-dots .dot{display:inline-block;width:10px;height:10px;margin:0 8px;background:#333;border-radius:50%;opacity:.25;cursor:pointer}.flickity-page-dots .dot.is-selected{opacity:1}


/* ==========================================================================

font-family: 'Open Sans', sans-serif;
font-family: azo-sans-web, sans-serif;
font-family: ibm-plex-sans, sans-serif;
font-family: ibm-plex-serif, sans-serif;

CORE
========================================================================== */
html,
body {
	min-height: 100%;
	height: auto;
	position: relative;
}

*,
ul,
p,
dl,
dt,
dd,
blockquote {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	text-shadow: 1px 1px 1px rgba(0,0,0,0.004);
	text-rendering: optimizeLegibility !important;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

a,
button,
input,
select,
textarea,
.mask,
.loading,
#wrapper,
#menu,
#header {
	transition: background-color 0.3s ease-in-out, border-color 0.3s ease-in-out, color 0.3s ease-in-out;
}

label,
input[type=submit] {
	cursor: pointer;
}
fieldset {
	padding: 0;
	border: none;
}
button {
	background: none;
	border: none;
	cursor: pointer;
}

html {
	min-height: 100%;
	height: auto;
	font-size: 62.5%;
}
	@media all and (max-width: 1279px) {
/* 		html {
			font-size: 42%;
		} */
	}
body {
	overflow-x: hidden;
	background: url(../gfx/grey-pattern-x@3x.png) repeat 0 0;
	background-size: 10px 10px;
	color: #414854;
	font: 400 1.6rem/100% 'Open Sans', sans-serif;
}
/* 	@media all and (min-width: 768px) {
		body {
			background: url(../gfx/grey-pattern-x@3x.png) repeat 0 0;
			background-size: 10px 10px;
		}
	}
 */
h1, h2, h3, h4, h5, h6 {
	line-height: 1.37em;
	margin: 0;
}

p {
	margin: 0;
	line-height: 1.625em;
	letter-spacing: 0.24px;
}
p + p {
	margin-top: 1em;
}

a,
.txt-link {
	color: #547DE8;
	text-decoration: none;
	font-family: inherit;
	font-size: 1em;
}
a:hover,
a:focus,
.txt-link:hover,
.txt-link:focus {
	text-decoration: underline;
}

p a {
	text-decoration: underline;
}
p a:hover,
p a:focus {
	text-decoration: none;
}

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

nav li {
	margin: 0;
	list-style: none;
}





/* ==========================================================================



COMMON
========================================================================== */
main:focus,
div:focus,
form:focus,
nav:focus,
ul:focus,
ol:focus {
	outline: none;
}
.skip-btn {
	width: 100%;
	position: fixed;
	top: -250px;
	left: 0;
	z-index: 300;
	padding: 0 20px;
	display: block;
	background-color: #004764;
	color: #fff;
	font: 600 1.6rem/2.2rem 'azo-sans-web', sans-serif;
	text-transform: uppercase;
	text-align: center;
	transition: all 0.3s ease-in-out;
}
.skip-btn:focus {
	top: 0;
}

.backtotop {
	width: 44px;
	height: 0;
	padding-top: 44px;
	overflow: hidden;
	position: fixed;
	bottom: -60px;
	visibility: hidden;
	opacity: 0;
	right: 10px;
	z-index: 100;
	background: rgb(55 63 81 / 0.8) url(../gfx/sprite.svg) no-repeat -88px -32px;
	background-size: 240px auto;
	border-radius: 4px;
	transition: all 0.3s ease-in-out;
}
.scrolled .backtotop {
	bottom: 46px;
	visibility: visible;
	opacity: 1;
}
	@media all and (min-width: 768px) {
		.backtotop {
			width: 55px;
			padding-top: 55px;
			background-position: -110px -40px;
			background-size: 300px auto;
		}
		.scrolled .backtotop {
			bottom: 61px;
		}
	}
	@media all and (min-width: 1374px) {
		.backtotop {
			right: 50%;
			margin-right: -632px;
		}
	}
	@media all and (min-width: 1086px) {
		.library-single .backtotop {
			right: 50%;
			margin-right: -533px;
		}
	}


.erabi .btn {
	width: auto;
	position: relative;
	z-index: 10;
	margin: 0;
	padding: 1.6rem 2.1rem;
	display: inline-block;
	vertical-align: top;
	border: 1px solid #F15623;
	border-radius: 3px;
	background: #F15623;
	color: #fff;
	font: 700 1.5rem/1.2em 'azo-sans-web', sans-serif;
	letter-spacing: 0.23px;
	text-align: center;
	text-decoration: none;
	transition: border-color 0.3s ease-in-out, background-color 0.3s ease-in-out, color 0.3s ease-in-out;
	-webkit-appearance: none;
}
.erabi button.btn,
.erabi a.btn {
	cursor: pointer;
}
.erabi .btn:disabled {
	cursor: default !important;
/* 	border-color: #AAA !important;
	background-color: #F2F2F2 !important;
	color: #AAA !important; */
	opacity: 0.3;
}

.erabi .btn.alt1 {
	border-color: #4C74E2;
	background-color: #4C74E2;
}
.erabi .btn.alt2 {
	padding: 1.1rem 2.9rem 1rem;
	border-color: #00A79D;
	border-radius: 0;
	background-color: #fff;
	color: #000;
	font: 700 1.4rem/1.4em 'Open Sans', sans-serif;
	text-transform: uppercase;
	text-align: left;
}
.erabi .btn.alt2:hover,
.erabi .btn.alt2:focus {
	border-color: #4C74E2;
	background-color: #E9EDF3;
	color: #000;
}
.erabi .btn.alt2 i {
	width: 29px;
	height: 29px;
	margin-right: 10px;
	display: inline-block;
	vertical-align: middle;
	background: url(../gfx/sprite.svg) no-repeat 1000%;
	background-size: 300px auto;
}
.erabi .btn.cite i {
	background-position: -130px 0;
}
.erabi .btn.email i {
	background-position: -160px 0;
}
.erabi .btn.drive i {
	background-position: -100px 0;
}

.erabi .btn.alt3 {
	box-shadow: 0 0 4px 0 #373F51;
	border-color: #DBE3F9;
	background-color: #DBE3F9;
	color: #373F51;
}
.erabi .btn.alt4 {
	box-shadow: 0 0 4px 0 #373F51;
	border-radius: 0;
	border-color: #FFF;
	background-color: #FFF;
	color: #373F51;
}
.erabi .btn.alt5 {
	border-color: #00A79D;
	background-color: #00A79D;
}
.erabi a.btn.alt5:hover,
.erabi a.btn.alt5:focus,
.erabi button.btn.alt5:hover,
.erabi button.btn.alt5:focus {
	border-color: #F15623;
	background-color: #F15623;
	color: #fff;
}


.erabi a.btn:hover,
.erabi a.btn:focus,
.erabi button.btn:hover,
.erabi button.btn:focus {
	border-color: #00A79D;
	background-color: #00A79D;
	color: #fff;
}

.erabi .btn.raquo {
	padding-right: 4.3rem;
}
.erabi .btn.raquo::before,
.erabi .btn.raquo::after {
	content: '';
	width: 6px;
	height: 12px;
	position: absolute;
	top: 50%;
	right: 18px;
	margin-top: -6px;
	background: url(../gfx/sprite.svg) no-repeat 0 0;
	background-size: 300px auto;
	transition: opacity 0.3s ease-in-out;
}
.erabi .btn.raquo::after {
	opacity: 0;
	background-position: 0 -50px;
}
.erabi .btn.raquo:hover::after,
.erabi .btn.raquo:focus::after {
	opacity: 1;
}

.erabi .search-btn {
	width: 35px;
	min-width: 35px;
	height: 0;
	padding: 40px 0 0;
	margin: 0;
	display: block;
	overflow: hidden;
	border: none;
	background: transparent url(../gfx/sprite.svg) no-repeat -40px -40px;
	background-size: 300px auto;
}
.erabi button.search-btn:hover,
.erabi button.search-btn:focus {
	background-color: transparent;
}

.erabi .search-clear-btn {
	width: 23px;
	min-width: 23px;
	height: 0;
	padding: 23px 0 0;
	margin: 0;
	display: block;
	overflow: hidden;
	border: none;
	border-radius: 50%;
	background: #DBE3F9 url(../gfx/sprite.svg) no-repeat -80px -40px;
	background-size: 300px auto;
}
.erabi button.search-clear-btn:hover,
.erabi button.search-clear-btn:focus {
	background-color: transparent;
}

.pdf-dl {
	display: inline-block;
	vertical-align: top;
	text-decoration: underline;
	color: #1B3488;
	font: 400 1.3rem/1.4em 'Open Sans', sans-serif;
	letter-spacing: 0.2px;
}
.pdf-dl i {
	width: 19px;
	height: 20px;
	margin-right: 7px;
	display: inline-block;
	vertical-align: middle;
	background: url(../gfx/sprite.svg) no-repeat -70px 0;
	background-size: 300px auto;
}
	@media all and (min-width: 768px) {
		.pdf-dl {
			font-size: 1.6rem;
			letter-spacing: 0.27px;
		}
	}

.mask {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: rgba(0, 0, 0, 0.6);
	visibility: hidden;
	/* z-index: -1; */
	opacity: 0;
}


.erabi .erabi-logo {
	width: 280px;
	height: 0;
	padding: 52px 0 0;
	display: block;
	overflow: hidden;
	background: url(../gfx/erabi-logo-gfx@3x.png) no-repeat 0 0;
	background-size: contain;
	line-height: 1.2em;
}

.hd1 {
	margin: 0 0 2.3rem;
	display: block;
	color: #373F51;
	font: 700 3.2rem/1.08em azo-sans-web, sans-serif;
	letter-spacing: 0.76px;
}
.hd2 {
	margin: 0 0 2.3rem;
	color: #373F51;
	font: 700 1.9rem/1.37em azo-sans-web, sans-serif;
}
.hd2 p {
	line-height: 1.37em;
}
.hd3 {
	margin: 0 0 2.3rem;
	color: #373F51;
	font: 700 2rem/1.08em azo-sans-web, sans-serif;
	letter-spacing: 0.3px;
}
.hd4 {
	margin: 0 0 2.3rem;
	display: block;
	color: #373F51;
	font: 700 1.4rem/1.37em 'Open Sans', sans-serif;
	letter-spacing: 1.26px;
	text-transform: uppercase;
}
.hd5 {
	margin: 0 0 1.5rem;
	display: block;
	color: #373F51;
	font: 400 2.4rem/1.37em 'Open Sans', sans-serif;
	letter-spacing: 0.36px;
}
.hd6 {
	margin: 0 0 0.6rem;
	display: block;
	color: #373F51;
	font: 400 1.8rem/1.33em 'Open Sans', sans-serif;
	letter-spacing: 0.27px;
}
	@media all and (min-width: 1024px) {
		.hd1 {
			margin-bottom: 2.9rem;
			font-size: 4.8rem;
		}
		.hd2 {
			font-size: 3.6rem;
		}
		.hd5 {
			font-size: 3.4rem;
			letter-spacing: 0.51px;
		}
	}

.wrap > .hd1,
.wrap > .hd2,
.wrap > .hd3,
.wrap > .hd4,
.wrap > .hd5,
.wrap > .hd6 {
	margin-right: 1.1rem;
	margin-left: 1.1rem;
}

.wrap {
	max-width: 1066px; /* (65 * 12) + (13 * 22) */
	margin: 0 auto;
	padding: 0 1.1rem;
	position: relative;
}
.col {
	padding: 0 1.1rem;
	position: relative;
	list-style: none;
}
.col .col {
	/* margin-right: -2.2rem; */
	/* margin-left: -2.2rem; */
	margin-right: 0;
	margin-left: 0;
}
	@media all and (max-width: 767px) {
		.col .col {
			padding-right: 0;
			padding-left: 0;
		}
	}
	@media all and (min-width: 768px) {
		.col.c-1,
		.col.c-2,
		.col.c-3,
		.col.c-4,
		.col.c-5,
		.col.c-6,
		.col.c-7,
		.col.c-8,
		.col.c-9,
		.col.c-10,
		.col.c-11,
		.col.c-12 {
			display: inline-block;
			vertical-align: top;
		}
		.col.c-1 {
			width: 8.33%;
			width: calc(100% * 1/12);
		}
		.col.c-2 {
			width: 16.67%;
			width: calc(100% * 2/12);
		}
		.col.c-3 {
			width: 25%;
		}
		.col.c-4 {
			width: 33.33%;
			width: calc(100% * 4/12);
		}
		.col.c-5 {
			width: 41.67%;
			width: calc(100% * 5/12);
		}
		.col.c-6 {
			width: 50%;
		}
		.col.c-7 {
			width: 58.33%;
			width: calc(100% * 7/12);
		}
		.col.c-8 {
			width: 66.67%;
			width: calc(100% * 8/12);
		}
		.col.c-9 {
			width: 75%;
		}
		.col.c-10 {
			width: 83.33%;
			width: calc(100% * 10/12);
		}
		.col.c-11 {
			width: 91.67%;
			width: calc(100% * 11/12);
		}
		.col.c-12 {
			width: 100%;
		}

		.col-inner-wrap {
			margin-right: -1.1rem;
			margin-left: -1.1rem;
		}

/* 		.col .c-4:nth-of-type(3n + 1) {
			padding-left: 0;
		}
		.col .c-4:nth-of-type(3n + 3) {
			padding-right: 0;
		}

		.col .c-6:nth-of-type(2n + 1) {
			padding-left: 0;
		}
		.col .c-6:nth-of-type(2n + 2) {
			padding-right: 0;
		}

		.col .c-12 {
			padding-left: 0;
			padding-right: 0;
		} */

	}



/* ==========================================================================



FORMS
========================================================================== */

input[type=text],
input[type=number],
input[type=date],
input[type=email],
input[type=url],
input[type=password],
textarea,
select {
	min-width: auto;
	width: 100%;
	/* height: 47px; */
	height: 5.2rem;
	margin: 0;
	padding: 0 17px;
	display: block;
	border: 1px solid #1B3488;
	border-radius: 3px;
	background: #FFFFFF;
	color: #414854;
	font: 400 1.4rem/1.38em 'Open Sans', sans-serif;
	-webkit-appearance: none;
	letter-spacing: 0.27px;
	text-align: left;
}
input[type=text],
input[type=number],
input[type=date],
input[type=email],
input[type=url],
textarea {
	-webkit-appearance: none;
}
textarea {
	height: 169px;
	padding-top: 10px;
	padding-bottom: 10px;
	line-height: 1.4em;
}

.erabi input:-webkit-autofill::-webkit-input-placeholder,
.erabi textarea:-webkit-autofill::-webkit-input-placeholder,
.erabi select:-webkit-autofill::-webkit-input-placeholder,
.erabi input:-webkit-autofill,
.erabi textarea:-webkit-autofill,
.erabi select:-webkit-autofill {
	color: #878C97;
	font-style: italic;
}

input[type=text]:hover,
input[type=date]:hover,
input[type=number]:hover,
input[type=email]:hover,
input[type=url]:hover,
textarea:hover,
select:hover {
	border-color: #999999;
}
input[type=text]:focus,
input[type=date]:focus,
input[type=number]:focus,
input[type=email]:focus,
input[type=url]:focus,
textarea:focus,
select:focus {
	border: 2px solid #4C74E2;
	outline: none;
}

input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
	color: #878C97;
	font-style: italic;
	font-weight: 400;
	transition: color 0.3s ease-in-out;
}
input:-moz-placeholder,
textarea:-moz-placeholder {
	color: #878C97;
	font-style: italic;
	font-weight: 400;
	transition: color 0.3s ease-in-out;
}
input::-moz-placeholder,
textarea::-moz-placeholder {
	color: #878C97;
	font-style: italic;
	font-weight: 400;
	transition: color 0.3s ease-in-out;
}
input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
	color: #878C97;
	font-style: italic;
	font-weight: 400;
	transition: color 0.3s ease-in-out;
}


select {
	-moz-appearance: none;
	text-indent: 0.01px;
	text-overflow: '';
	padding: 0 30px 0 10px;
	display: inline-block;
	line-height: 1.5em;
	background-image:
		linear-gradient(45deg, transparent 50%, #1B3488 50%),
		linear-gradient(135deg, #1B3488 50%, transparent 50%);
	background-position:
		calc(100% - 20px) 50%,
		calc(100% - 15px) 50%;
	background-size:
		5px 5px,
		5px 5px;
	background-repeat: no-repeat;
	background-color: #fff;
	transition: none;
	transition: border 0.3s ease-in-out;
}
select::-ms-expand {
	display: none;
}
/* select:focus {
	background-image:
		linear-gradient(45deg, #504F53 50%, transparent 50%),
		linear-gradient(135deg, transparent 50%, #504F53 50%);
	background-position:
		calc(100% - 15px) 50%,
		calc(100% - 20px) 50%;
	background-size:
			5px 5px,
			5px 5px;
	background-repeat: no-repeat;
} */
select:-moz-focusring {
	color: transparent;
	text-shadow: 0 0 0 #1a1a1a;
}

.cb-ico {
	width: 30px;
	height: 30px;
	display: inline-block;
	vertical-align: top;
	border: 1px solid #9B9B9B;
}
input[type=checkbox]:checked + .cb-ico {
	background: url(../gfx/sprite.svg) no-repeat -205px -1px;
	background-size: 600px auto;
}
.cb-ico + .txt {
	width: calc(100% - 30px);
	padding: 0.8rem 0 0 2rem;
	display: inline-block;
	vertical-align: top;
	font-size: 2.1rem;
	line-height: 1.2em;
}
.cb-ico ~ .form-errors {
	margin-top: 2rem;
}
	@media all and (min-width: 1280px) {
		.cb-ico + .txt {
			padding-top: 0.2rem;
		}
	}


.searchform {
	/* margin: 0; */
	position: relative;
}
label.search {
	margin: 0;
	position: relative;
	display: block;
}
label.search input {
	height: 4rem;
	padding-right: 67px;
	padding-left: 1.1rem;
	border-color: #DBE3F9;
}
.searchform .search-btn,
.searchform .search-clear-btn {
	margin: 0;
	position: absolute;
	top: 0;
	right: 0;
}
.searchform .search-clear-btn {
	top: 50%;
	margin-top: -12px;
	right: 38px;
	display: none;
}
.searchform.has-val .search-clear-btn {
	display: block;
}
.erabi .gn-search .searchform {
	width: 160px;
	margin: 2.6rem 2.2rem 0 0;
}

.searchform label.search input:focus {
	border-color: #4CBDE2;
}

label {
	margin: 1.6rem 0;
	display: block;
}
.lbl {
	margin-bottom: 0.5rem;
	display: block;
	font-size: 1.4rem;
}


/* ==========================================================================



HEADER
========================================================================== */

#header {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 600;
	background-color: #E9EDF3;
	box-shadow: 0 2px 4px 0 rgba(0,0,0,0.50);
}


#header .erabi-logo {
	width: 89px;
	padding-top: 23px;
	position: fixed;
	top: 15px;
	left: 14px;
	margin: 0;
	z-index: 220;
}

.menu-btn {
	width: 60px;
	height: 54px;
	overflow: hidden;
	position: fixed;
	top: 0;
	right: 0;
	z-index: 520;
	/* background-color: #E9EDF3; */
}
.menu-btn span {
	border: 0;
	clip: rect(0 0 0 0);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
}
.menu-btn i,
.menu-btn i::before,
.menu-btn i::after {
	width: 23px;
	height: 3px;
	position: absolute;
	border-radius: 3px;
	background-color: #1B3488;
}
.menu-btn i {
	top: 50%;
	left: 50%;
	margin: -2px 0 0 -12px;
}
.menu-btn i::before,
.menu-btn i::after {
	content: '';
	top: -8px;
	left: 0;
}
.menu-btn i::after {
	top: 8px;
}

.menu li {
	position: relative;
}
.menu a {
	padding: 3px 5px;
	position: relative;
	display: block;
	color: #1B3488;
	font: 700 2.4rem/1.5em 'azo-sans-web', sans-serif;
	text-decoration: none;
}
.menu .active a {
	font-weight: 900;
}
.menu-on .menu-btn i {
	background-color: transparent;
}
.menu-on .menu-btn i::before {
	content: '';
	top: 0;
	-webkit-transform: translateZ(0) scale(1.0, 1.0);
	-webkit-transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	transform: rotate(45deg);
}
.menu-on .menu-btn i::after {
	content: '';
	top: 0;
	-webkit-transform: translateZ(0) scale(1.0, 1.0);
	-webkit-transform: rotate(-45deg);
	-ms-transform: rotate(-45deg);
	transform: rotate(-45deg);
}


	@media all and (max-width: 767px) {
		#wrapper {
			padding-top: 54px;
		}
		#header {
			height: 54px;
		}
		#menu {
			width: 100%;
			width: calc(100% - 42px);
			position: fixed;
			top: 0;
			left: 100%;
			bottom: 0;
			z-index: 500;
			overflow: visible;
			border-bottom: 1px solid #94ACEE;
			border-left: 1px solid #94ACEE;
			background: rgba(255, 255, 255, 1);
			color: #fff;
			transition: all 0.3s ease-in-out;
			visibility: hidden;
		}
		.menuscroller {
			width: 100%;
			height: 100%;
			max-height: 100%;
			position: absolute;
			top: 0;
			left: 0;
			z-index: 5;
			overflow-y: scroll; /* has to be scroll, not auto */
			-webkit-overflow-scrolling: touch;
		}
		.menubox {
			width: 100%;
			height: 100%;
			display: table;
			overflow: auto;
		}

		#menu .menu {
			/* padding-top: 10px; */
			overflow: auto;
			vertical-align: middle;
		}
		#menu .menu-1 {
			padding-top: 1rem;
			background: url(../gfx/grey-pattern-x@3x.png) repeat 0 0;
			background-size: 10px 10px;
		}

		#menu + .mask {
			opacity: 0.77;
			background: rgba(55,63,81,0.80);
			transition: opacity 0.3s ease-in-out;
		}

		.menu .active a {
			font-weight: 700;
			text-decoration: underline;
		}

		/* MENU OPEN STATE */
		.menu-on #menu {
			left: 42px;
			visibility: visible;
		}
		.menu-on #menu + .mask {
			z-index: 250;
			opacity: 1;
			visibility: visible;
		}

		.menu li {
			margin-right: 1.8rem;
			padding: 1rem;
			border-bottom: 1px solid #979797;
		}

		.gn-search {
			display: none;
		}

	}
	@media all and (min-width: 768px) {
		#wrapper {
			padding-top: 87px;
		}
		#header {
			height: 87px;
		}
		#header .erabi-logo {
			width: 140px;
			padding-top: 36px;
			top: 25px;
			left: 22px;
		}
		.menu-btn,
		.menu .gn-2 {
			display: none;
		}
		.menu a {
			line-height: 87px;
			padding: 0 1.6rem;
			position: relative;
			font-size: 1.4rem;
			letter-spacing: 1.26px;
			text-transform: uppercase;
		}
		.menu a::before {
			content: '';
			height: 0;
			position: absolute;
			right: 1.9rem;
			bottom: 0;
			left: 1.9rem;
			background-color: transparent;
			transition: height 0.3s ease-in-out, background-color 0.3s ease-in-out;
		}
		.menu .active a::before,
		.menu a:hover::before,
		.menu a:focus::before {
			height: 6px;
			background-color: #1B3488;
		}
		.menu {
			text-align: right;
		}
		.menu ul,
		.menu li {
			display: inline-block;
			vertical-align: top;
		}
		.menu li:nth-last-of-type(2) a {
			padding-right: 1.1rem;
		}
		.menu li:nth-last-of-type(2) a::before {
			right: 1.1rem;
		}
		.erabi .gn-search {
			float: left;
		}
		.erabi .gn-search .searchform {
			width: 220px;
		}
	}
	@media all and (min-width: 900px) {
		.menu a {
			padding: 0 2rem;
		}
		.erabi .gn-search .searchform {
			width: 300px;
		}
	}
	@media all and (min-width: 1024px) {
		#header .erabi-logo {
			width: 239px;
			padding-top: 36px;
			top: 25px;
			left: 22px;
			background-image: url(../gfx/erabi-logo-tag@2x.png);
		}
		.menu a {
			padding: 0 3rem;
		}
		.menu li:nth-last-of-type(2) a::before {
			right: 0.1rem;
		}
	}
	@media all and (min-width: 1066px) {
		#header .erabi-logo {
			left: 50%;
			margin-left: -511px;
		}
		.erabi .gn-search .searchform {
			width: 366px;
		}
	}


/* ==========================================================================



FOOTER
========================================================================== */

#footer {
	padding: 1.3rem 0;
	background-color: #fff;
	text-align: center;
}
#footer p {
	font: 1.3rem/1.4em azo-sans-web, sans-serif;
	letter-spacing: 0.2px;
}

.gfooter .c-4 {
	display: none;
	text-align: right;
}
.gfooter a {
	text-decoration: underline;
}
.gfooter a:hover {
	text-decoration: none;
}
	@media all and (min-width: 768px) {
		#footer {
			padding-top: 1.6rem;
			padding-bottom: 1.6rem;
			border-top: 1px solid #DBE3F9;
			text-align: left;
		}
		.gfooter .c-4 {
			display: inline-block;
		}
	}


/* ==========================================================================



TOP BANNER
========================================================================== */

.top-banner {
	padding: 10.4rem 0.9rem 0;
	position: relative;
}
.top-banner .hd1 + .hd2 {
	margin-top: -1.4rem;
}
.top-banner .img {
	height: 127px;
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	z-index: 1;
	background-repeat: no-repeat;
	background-position: 50% 50%;
	background-size: cover;
}
.top-banner .box {
	position: relative;
}
.top-banner .box::before {
	content: '';
	position: absolute;
	top: -2.7rem;
	right: 0;
	bottom: 0;
	left: -2rem;
	z-index: 3;
	background-color: #66CAC4;
	mix-blend-mode: multiply;
}
.top-banner .con {
	padding: 2.3rem 2.7rem;
	position: relative;
	z-index: 5;
	display: inline-block;
	vertical-align: top;
	background-color: #fff;
	text-align: left;
}
.top-banner .body {
	display: none;
}
	@media all and (min-width: 768px) {
		.top-banner {
			padding: 11.5rem 0 5.7rem;
			text-align: right;
		}
		.top-banner .img {
			height: auto;
			bottom: 0;
		}
		.top-banner .box {
			width: 58.33%;
			width: calc((100% * 7/12) + 1.1rem);
			margin: 0 1.1rem;
			display: inline-block;
		}
		.top-banner .box::before {
			top: -6.6rem;
			left: -8.9rem;
		}
		.top-banner .body {
			display: block;
		}
		.top-banner .btn {
			margin-top: 1.8rem;
		}
	}
	@media all and (min-width: 768px) {
		.top-banner .hd1 + .hd2 {
			margin-top: 0;
		}
		.top-banner .con {
			padding: 3.6rem 2.7rem 3.6rem 6.3rem;
		}
		.top-banner .btn {
			margin-top: 4rem;
		}
	}



/* ==========================================================================



MODULES
========================================================================== */

.mod {
	padding-top: 3rem;
	padding-bottom: 4rem;
	background-repeat: no-repeat;
	background-position: 50% 50%;
	background-size: cover;
}
.mod .btn {
	margin-top: 2rem;
	min-width: 20.5rem;
}
	@media all and (min-width: 1024px) {
		.mod {
			padding-top: 6rem;
			padding-bottom: 6rem;
		}
		.mod .btn {
			margin-top: 4rem;
		}
	}

.mod.alt1 p em {
	color: #4C74E2;
}
.mod.alt1 .hor-img {
	width: calc(100% + 4.4rem);
	margin: 3.2rem -2.2rem 0;
	overflow-x: auto;
}
.mod.alt1 .hor-img img {
	width: auto;
	max-width: none;
	height: 310px;
	margin: 0 2.2rem;
}
	@media all and (min-width: 768px) {
		.mod.alt1 .col {
			vertical-align: middle;
		}
		.mod.alt1 .hor-img {
			width: 100%;
			margin: 0;
		}
		.mod.alt1 .hor-img img {
			max-width: 100%;
			height: auto;
			margin: 0;
		}
	}

mod.alt2 {
	text-align: center;
}
.mod.alt2 .hd1 {
	text-align: left;
}
.mod.alt2 .body {
	display: none;
}
.mod.alt2 .col:first-of-type {
	display: none;
}
	@media all and (min-width: 768px) {
		.mod.alt2 .col {
			vertical-align: middle;
			text-align: left;
		}
		.mod.alt2 .col:first-of-type {
			display: inline-block;
		}
		.mod.alt2 .col:first-of-type .hor-img {
			padding-right: 12.45%;
		}
		.mod.alt2 .hd1 ~ .img {
			display: none;
		}
		.mod.alt2 .body {
			display: block;
		}
	}


.mod.alt3 {
	padding: 3rem 0 13rem;
	background-position: 100% 0;
	color: #fff;
}
.mod.alt3 .col {
	margin-right: -1.1rem;
	margin-left: -1.1rem;
}
.mod.alt3 .col::before {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 1;
	background-color: #66CAC4;
	mix-blend-mode: multiply;
}
.mod.alt3 .con {
	max-width: 57.4rem;
	padding: 2.3rem 1.9rem;
	position: relative;
	z-index: 5;
}
.mod.alt3 .hd2 {
	margin-bottom: 1.6rem;
	color: #fff;
	line-height: 1.47em;
	font-weight: 500;
}

.mod.alt3.var1 .col::before {
	background-color: #F79A7B;
}
.mod.alt3.var1 .btn {
	border-color: #608ED3;
	background-color: #608ED3;
	text-align: left;
}
.mod.alt3.var1 .btn.raquo::before {
	background-position: 0 -34px;
}
.mod.alt3.var1 .btn:hover,
.mod.alt3.var1 .btn:focus {
	border-color: #00A79D;
	background-color: #00A79D;
	color: #fff;
}


	@media all and (min-width: 768px) {
		.mod.alt3 {
			padding-top: 5.4rem;
			padding-bottom: 5.4rem;
		}
		.mod.alt3 .col.c-8 {
			width: calc((100% * 8/12) + 7.8rem);
			padding-left: 8.1rem;
		}
	}
	@media all and (min-width: 1024px) {
		.mod.alt3 .con {
			padding-top: 6.9rem;
			padding-bottom: 4.8rem;
		}
		.mod.alt3 .hd2 {
			font-size: 2.6rem;
		}
	}
	@media all and (min-width: 1280px) {
		.mod.alt3 .col.c-8 {
			width: calc((100% * 8/12) + 10rem);
			margin-left: -8.9rem;
		}
	}

/* ==========================================================================



HOME
========================================================================== */

.best-practices {
}

.about-lib {
	background: #DCE3EC;
}

.highlighter-wrap .high-grp .high:first-of-type {
	padding-left: 4px;
}
.highlighter-wrap .high-grp .high:last-of-type {
	padding-right: 4px;
}
.highlighter-wrap .high {
	padding-right: 3px;
	padding-left: 3px;
	position: relative;
	display: inline-block;
	vertical-align: top;
}
.highlighter-wrap .high::before {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	bottom: 9px;
	left: 0;
	z-index: 5;
	background-color: #F4D4CA;
}
.highlighter-wrap .high-word {
	position: relative;
	z-index: 10;
}
.highlighter-wrap.alt1 .high::before {
	background-color: #C8E9E8;
}
.highlighter-wrap.alt2 .high::before {
	background-color: #B7C5E5;
}
	@media all and (min-width: 1024px) {
		.highlighter-wrap .high::before {
			top: 3px;
			bottom: 16px;
		}
		.highlighter-wrap .high-grp .high:first-of-type {
			padding-left: 10px;
		}
		.highlighter-wrap .high-grp .high:last-of-type {
			padding-right: 10px;
		}
		.highlighter-wrap .high {
			padding-left: 6px;
			padding-right: 6px;
		}

		.best-practices .high-grp .high:first-of-type,
		.best-practices .high-grp .high:last-of-type {
			margin-left: -22px;
			padding-left: 22px;
		}
		.about-lib .high-grp .high:first-of-type {
			margin-left: -22px;
			padding-left: 22px;
		}
	}


#content,
#content .article-mod {
	min-height: 100vh;
	min-height: calc(100vh - 54px - 44px);
}
	@media all and (min-width: 768px) {
		#content,
		#content .article-mod {
			min-height: 100vh;
			min-height: calc(100vh - 87px - 51px);
		}
	}




.ui-autocomplete {
	padding: 1.3rem 3.2rem 2.4rem;
	overflow-x: hidden;
	background-color: #F4F4F4;
}
.ui-autocomplete li {
	margin: 0;
	padding-left: 1rem;
	list-style: none;
	font-size: 1.5rem;
	line-height: 1.4em;
	color: #1B3488;
	letter-spacing: 0.23px;
	line-height: 26px;
	cursor: pointer;
}
/* .ui-autocomplete li:not(.ui-autocomplete-category):hover, */
.ui-autocomplete .ui-state-active,
.ui-autocomplete .ui-state-active * {
	text-decoration: underline;
}
.ui-autocomplete li + li {
	margin-top: 1.7rem;
}
li.ui-autocomplete-category {
	padding-top: 1.8rem;
	padding-left: 0;
	color: #878C97;
	font-size: 1.3rem;
	font-weight: 700;
	letter-spacing: 1.17px;
	text-transform: uppercase;
	border-top: 1px solid #878C97;
}
li.ui-autocomplete-category:first-child {
	padding-top: 0;
	border-top: none;
}
li.ui-autocomplete-category + li {
	margin-top: 0.7rem;
}
	@media all and (max-width: 767px) {
		.ui-autocomplete {
			left: 0 !important;
		}
	}
	@media all and (min-width: 768px) {
		.ui-autocomplete {
			padding: 1rem 1rem 1.8rem;
			background-color: #fff;
			/* box-shadow: 0 0 7px 0 rgba(0,0,0,0.50); */
			border: 1px solid #DBE3F9;
			border-top: none;
			border-radius: 0 0 3px 3px;

			/* widget overrides */
			position: fixed !important;
			top: 66px !important;
			width: 200px; /* just setting it very small it will resize to the input field */
			overflow-y: auto;
			overflow-x: hidden;
			z-index: 1000;

		}
		li.ui-autocomplete-category {
			padding-top: 1.4rem;
		}
	}