/*
Theme Name: Base
Author: KMSTUDIO
Version: 1.0
*/
@keyframes spin {
	from { transform: rotate(0deg); }
	to { transform: rotate(359deg); }
}

html { font-size: 20px; }
body {
	background-color: #fff;
	color: #000;
	font-family: "Roboto Slab", serif;
	font-weight: 400;
	padding: 0;
	margin: 0;
}

h1,h2,h3,h4,h5,h6 { line-height: 1.2; }
h2,h3,h4 { font-weight: 300; }
h1,h5,h6 { font-weight: 600; }
h5,h6 { text-transform: uppercase; }

h1 { font-size: 3.5rem; margin-bottom: 2rem; }
h2 { font-size: 2rem; margin-bottom: 2rem; }
h3 { font-size: 1.7rem; margin-bottom: 1rem; }
h4 { font-size: 1.4rem; }
h5 { font-size: 1.2rem; }
h6 { font-size: 1rem; }

a { color: #37668b; text-decoration: none !important; transition: color .25s; }
a:hover { color: #27567b; }

b,strong { font-weight: 600; }
p { margin: 0 0 1.5rem 0; line-height: 1.6; }
hr { border: 0; border-bottom: 1px solid #eee; margin: 3em 0; }

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

main { background: #f5f5f5; }

.text-center { text-align: center; }
.hidden { display: none; }

.button {
	display: inline-block;
	font-weight: 600;
	padding: .7rem 1.2rem;
	border: 2px solid #37668b;
	text-transform: uppercase;
	text-shadow: none;
	transition: color .25s, background .25s;
}
.button:not(.button-noborder) { font-size: .9rem; letter-spacing: .1rem; }
.button:hover:not(.button-noborder) { color: #fff; background: #37668b; }
.button-white { color: #fff; border-color: #fff; }
.button-white:hover:not(.button-noborder) { color: #000; background: #fff; }
.button-noborder { border: none; padding: 0 1rem 0 0; text-transform: none; position: relative; }
.button-noborder:after {
	content: '\e800';
	display: block;
	position: absolute;
	font-family: 'osm';
	font-size: 1.5rem;
	color: #37668b;
	top: 50%; right: 0;
	line-height: 1;
	transform: translateY(-50%);
	transition: right .25s;
}
.button-noborder:hover:after { right: -.25rem; }

.overlay-link {
	display: block;
	position: absolute;
	top: 0; right: 0; bottom: 0; left: 0;
}

/* <HAMBURGER> */
.hamburger-btn {
	position: absolute;
	top: 50%;
	right: 1rem;
	display: none;
	padding: 1rem;
	cursor: pointer;
	box-sizing: content-box;
	transform: translateY(-50%);
	z-index: 11;
}
.hamburger-bar {
	display: block;
	width: 2rem;
	height: 2px;
	background-color: #000;
	margin: 0 0 6px;
}
/* </HAMBURGER> */

.layout-row {  }
.layout-row > .wrapper { 
	width: 45rem;
	margin: 0 auto;
	padding: 3rem 0;
	position: relative;
}
.layout-row > .wrapper-wide { width: 60rem; }

.layout-row-white { background: #fff; }

aside.sidebar { border-left: 1px solid #ddd; }

.layout-row.site-sections-grid .row { padding: 2rem 0; }
.layout-row.site-sections-grid .row > [class*="col-"] { max-width: 50rem; }
.layout-row.site-sections-grid .row > [class*="col-"]:nth-child(odd) .section-item { padding-right: 2rem; }
.layout-row.site-sections-grid .row > [class*="col-"]:nth-child(even) .section-item { padding-left: 2rem; }
.layout-row.site-sections-grid .section-item { padding: 2rem 4rem; }
.layout-row.site-sections-grid .section-item figure { flex-basis: 17rem; flex-shrink: 0; margin: 0 3rem 0 0; }
.layout-row.site-sections-grid .section-item .text-content h2 { font-size: 2.5rem; font-weight: 600; line-height: 1.1; margin-bottom: 1rem; }
.layout-row.site-sections-grid .section-item .text-content h3 { font-size: 1.2rem; font-weight: 400; line-height: 1.3; margin-top: 0; }
.layout-row.site-sections-grid .section-item .text-content p.call-to-action { margin-bottom: 0; }

.layout-row.breadcrumbs { /*background: #eee;*/ }
.layout-row.breadcrumbs > .wrapper { padding-top: 1rem; padding-bottom: 1rem; overflow: auto; }
.layout-row.breadcrumbs ul { list-style-type: none; margin: 0; padding: 0; }
.layout-row.breadcrumbs ul a { position: relative; display: block; color: #555; padding-right: 2rem; white-space: nowrap; }
.layout-row.breadcrumbs ul a:after { content: '/'; position: absolute; right: .75rem; opacity: .5; }
.layout-row.breadcrumbs ul li:last-child a { font-weight: 600; }
.layout-row.breadcrumbs ul li:last-child a:after { content: none; }

.layout-row.page-header { background: #fff; }
.layout-row.page-header h1 { margin-bottom: 0; }
.layout-row.page-header .parent-page-title { text-transform: uppercase; letter-spacing: 1px; }

.layout-row.pre-footer { background: #111; color: #fff; }
.layout-row.pre-footer .container-fluid { padding: 3rem 4rem; }
.layout-row.pre-footer h3 { font-size: 1.3rem; font-weight: 400; line-height: 1.2; }
.layout-row.pre-footer nav ul { list-style-type: none; margin: 0; padding: 0; }
.layout-row.pre-footer nav ul a { color: #ccc; font-size: .9rem; font-weight: 300; }
.layout-row.pre-footer nav ul a:hover { color: #fff; }

header.layout-row {  }
header.layout-row > .wrapper { width: 100%; max-width: 1920px; padding: 1rem 3rem; }
header.layout-row h1 { display: none; }
header.layout-row figure { margin: 0; }
header.layout-row .logo { flex-basis: 17rem; }
header.layout-row nav { margin: .65rem 0 0; }
header.layout-row nav ul { list-style-type: none; margin: 0; padding: 0; }
header.layout-row nav ul li { padding-right: 1rem; }
header.layout-row nav ul li:last-child { padding-right: 0; }
header.layout-row nav ul li a { color: #000; text-decoration: none; }
header.layout-row nav ul li a:hover { color: #37668b; }

footer.layout-row {  }
footer.layout-row > .wrapper { width: 100%; max-width: 1920px; padding: 2rem 3rem; }
footer.layout-row ul { list-style-type: none; margin: 0; padding: 0; }
footer.layout-row ul li { padding-right: 1rem; }
footer.layout-row ul li:last-child { padding-right: 0; }
footer.layout-row ul li a { color: #000; text-decoration: none; }

.home-slider { height: 40rem; }
.home-slider .swiper-slide { position: relative; background-size: cover; background-position: center; }
.home-slider .swiper-slide:before { content: ''; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: rgba(0,0,0,.3); background: linear-gradient(90deg, rgba(0,0,0,.7) 0%, rgba(0,0,0,0) 100%); }
.home-slider .swiper-slide .meta { position: absolute; top: 50%; left: 50%; width: 100%; max-width: 1920px; color: #fff; margin: 0 12rem; transform: translate(-50%,-50%); cursor: default; }
.home-slider .swiper-slide .meta h2 { font-size: 4rem; margin-bottom: 1rem; font-weight: 600; line-height: 1.2; }
.home-slider .swiper-slide .meta p { font-size: 2rem; font-weight: 600; line-height: 1.3; margin-bottom: 0; max-width: 40rem; }
.home-slider .swiper-slide .meta p.call-to-action { font-size: 1.2rem; margin-top: 2rem; }
.home-slider .swiper-button-prev, .home-slider .swiper-container-rtl .swiper-button-next { color: #fff; left: 2rem; }
.home-slider .swiper-button-next, .home-slider .swiper-container-rtl .swiper-button-prev { color: #fff; right: 2rem; }
.home-slider .swiper-pagination-bullet,
.home-slider .swiper-pagination-bullet-active { background: #fff; }
.home-slider .swiper-pagination-bullet { width: .75rem; height: .75rem; }
.home-slider > .swiper-pagination-bullets,
.home-slider .swiper-pagination-custom,
.home-slider .swiper-pagination-fraction { bottom: 1rem !important; }

body.home section.layout-row h2.section-title { font-size: 2.5rem; font-weight: 400; text-align: center; }
body.home section.layout-row h3.section-subtitle { font-size: 1.5rem; font-weight: 400; text-align: center; margin-top: -1.5rem; margin-bottom: 2rem; }
body.home section.layout-row p.call-to-action { margin-top: 2rem; }

.cosmo-items { margin-top: 3rem; cursor: default; }
.cosmo-items i[class^="icon-"] { font-size: 4rem; }
.cosmo-items i[class^="icon-"]:before { margin: 0; }
.cosmo-items .cosmo-regular i[class^="icon-"],
.cosmo-items .cosmo-regular h2 { color: #37668b; }
.cosmo-items .cosmo-online i[class^="icon-"],
.cosmo-items .cosmo-online h2 { color: #933; }
.cosmo-items h2 { font-size: 2rem; font-weight: 600; line-height: 1; margin: 0 0 .25rem 0; }
.cosmo-items h3 { font-size: 1rem; font-weight: 300; margin: 0 0 1rem; }
.cosmo-items a,
.cosmo-items a:after { color: #000; }
.cosmo-items p { margin: 0; }
.cosmo-items .cosmo-goto-archive { text-align: center; }
.cosmo-items .cosmo-goto-archive a { left: 15px; right: 15px; border: 2px solid #eee; transition: border .25s; z-index: 1; }
.cosmo-items .cosmo-goto-archive a:hover { border-color: #000; }
.cosmo-items .cosmo-goto-archive i[class^="icon-"] { font-size: 2.5rem; display: block; margin-bottom: .5rem; }
.cosmo-items .cosmo-goto-archive h2 { font-size: 1.5rem; font-weight: 400; margin: 0; position: relative; }

.page-children-items { margin-top: 2rem; }
.page-children-items .page-children-item { display: block; padding: 2rem; border: 2px solid #ddd; background: #fff; min-height: 10rem; height: 100%; position: relative; transition: border .25s; }
.page-children-items .page-children-item:hover { border-color: #000; }
.page-children-items .page-children-item .page-children-title { position: absolute; top: 50%; left: 2rem; right: 2rem; font-size: 1.3rem; text-align: center; font-weight: 400; margin: 0; color: #000; transform: translateY(-50%); }
.page-children-items .page-children-item .page-children-title i { display: block; font-size: 2.5rem; margin-bottom: .5rem; }

.perpetual-calendar-container {  }
.perpetual-calendar-container .month-selected { position: relative; }
.perpetual-calendar-container .month-selected h4 {
	font-size: 1.7rem;
	text-align: center;
	text-transform: none;
	font-weight: 300;
	margin-bottom: 2rem;
	position: relative;
}
.perpetual-calendar-container .month-selected span {
	position: absolute;
	top: calc(50% - 1.5rem);
	font-size: 3rem;
	line-height: 1;
	cursor: pointer;
	transition: left .25s, right .25s;
	z-index: 1;
}
.perpetual-calendar-container .month-selected span:before { margin: 0; }
.perpetual-calendar-container .month-selected span.prev { left: 0; }
.perpetual-calendar-container .month-selected span.prev:hover { left: -.5rem; }
.perpetual-calendar-container .month-selected span.next { right: 0; }
.perpetual-calendar-container .month-selected span.next:hover { right: -.5rem; }
.perpetual-calendar-container .month-selected .spinner {
	position: absolute;
	top: calc(50% - .63rem);
	width: 1.5rem; height: 1.5rem;
	border-radius: 100%; border: 2px solid #000; border-top: 1px solid transparent;
	animation: spin linear .5s infinite;
	transition: opacity .15s;
	opacity: 0;
}
.perpetual-calendar-container .month-selected .spinner.show { opacity: 1; }
.perpetual-calendar-container .month-selected .spinner.show-next { right: 2.5rem; }
.perpetual-calendar-container .month-selected .spinner.show-prev { left: 2.5rem; }
.perpetual-calendar-container table.perpetual-calendar-current-month { width: 100%; text-align: center; }
.perpetual-calendar-container table.perpetual-calendar-current-month th { font-weight: 600; padding: .5rem; }
.perpetual-calendar-container table.perpetual-calendar-current-month td { font-size: 1.5rem; font-weight: 300; padding: .75rem .5rem; vertical-align: middle; border-top: 1px solid #ddd; }
.perpetual-calendar-container table.perpetual-calendar-current-month td div { display: inline-block; width: 2.5rem; height: 2.5rem; border: 1px solid transparent; border-radius: 2rem; }
.perpetual-calendar-container table.perpetual-calendar-current-month td.event div { border-color: #37668b; cursor: pointer; }
.perpetual-calendar-container table.perpetual-calendar-current-month tbody tr:first-child td { border-top: 2px solid #000; }
.perpetual-calendar-container table.perpetual-calendar-current-month .prev-month,
.perpetual-calendar-container table.perpetual-calendar-current-month .next-month { opacity: .25; }
.perpetual-calendar-container table.perpetual-calendar-current-month .current { font-weight: 600; }

.parent-page-nav h3 { font-size: .9rem; font-weight: 600; text-transform: uppercase; position: relative; }
.parent-page-nav h3:after { content: ''; display: block; position: absolute; left: 0; bottom: -8px; width: 3rem; height: 3px; background: #000; }
.parent-page-nav ul { list-style-type: none; margin: 0; padding: 0; }
.parent-page-nav ul a { color: #555; position: relative; }
.parent-page-nav ul a:before { content: '\e800'; font-family: 'osm'; font-size: 1.1rem; position: absolute; left: -1rem; opacity: 0; transition: opacity .25s; }
.parent-page-nav ul a:hover,
.parent-page-nav ul a:hover:before,
.parent-page-nav ul a.current,
.parent-page-nav ul a.current:before { color: #000; opacity: 1; }


article.hentry a[href$=".pdf"] { color: #933; border-bottom: 2px solid; }
article.hentry a[href$=".pdf"]:before { content: '\f1c1'; display: inline-block; font-family: 'osm'; color: #933; padding: 0 .25em 0 0; vertical-align: .1em; }

article.hentry h2 { font-weight: 400; }

article.hentry .wp-block-buttons .wp-block-button { margin-right: 1rem; margin-bottom: 0; }
article.hentry .wp-block-button__link {
	font-size: 1.2rem; font-weight: 600;
	color: #37668b !important;
	letter-spacing: .1rem;
	text-transform: uppercase;
	background: transparent;
	border: 2px solid #37668b;
	padding: .5rem 1.2rem;
	border-radius: 0;
	position: relative;
	transition: color .25s, background .25s;
}
article.hentry .wp-block-button__link:hover { color: #fff !important; background: #37668b; }
article.hentry .wp-block-button__link[href$=".pdf"] { color: #000 !important; font-weight: 400; background: transparent; border: none; padding-left: 2rem; text-transform: none; letter-spacing: 0; }
article.hentry .wp-block-button__link[href$=".pdf"]:hover { color: #933 !important; }
article.hentry .wp-block-button__link[href$=".pdf"]:before {
	content: '\f1c1';
	display: block;
	position: absolute;
	font-family: 'osm';
	font-size: 1.5rem;
	color: #933;
	top: 50%; left: 0;
	line-height: 1;
	transform: translateY(-50%);
}

article.hentry p ~ h3 { margin-top: 2rem; }

article.hentry p.has-medium-font-size { font-size: 1.3rem; line-height: 1.4; }
article.hentry p.has-large-font-size { font-size: 1.7rem; line-height: 1.4; }

article.hentry .wp-block-image { margin: 2rem 0; }
article.hentry .wp-block-image:first-child { margin-top: 0; }
article.hentry .wp-block-image:last-child { margin-bottom: 0; }
article.hentry .wp-block-image figcaption { font-size: .8rem; margin: 0; padding: 1rem; background: #eee; color: #333; }

article.hentry .wp-block-quote { color: #37668b; margin: 3rem 0; position: relative; padding-left: 3rem; }
article.hentry .wp-block-quote:first-child { margin-top: 0; }
article.hentry .wp-block-quote:last-child { margin-bottom: 0; }
article.hentry .wp-block-quote:before { content: '“'; position: absolute; left: 0; font-size: 5rem;	line-height: 4rem; }
article.hentry .wp-block-quote p { margin: 0; font-size: 1.5rem; line-height: 1.3; }

article.hentry .wp-block-separator { border-bottom: 5px solid #000; width: 5rem; }
