<!doctype html>
<html lang="en">
<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="Barakel is a year-round, Christ-centered camp in northeast Michigan that hosts nearly 10,000 guests each year.">
    <meta name="author" content="">
    <link rel="icon" href="https://www.lvalive.com/cf/19/images/favicon.png">
    <title>Camp Barakel | A Year-round Christian Camp in Northeast Michigan</title>

    <!-- OG code for social media cards -->
    <meta property="og:title" content="Camp Barakel" />
    <meta property="og:description" content="Barakel is a year-round, Christ-centered camp in northeast Michigan that hosts nearly 10,000 guests each year." />
    <meta property="og:type" content="website" />
    <meta property="og:image" content="https://www.campbarakel.org/19/images/img_about_blockhouse.jpg" />
	<meta name="twitter:creator" content="@CampBarakel" />
<style type='text/css'>/*!
 * Bootstrap v4.1.1 (https://getbootstrap.com/)
 * Copyright 2011-2018 The Bootstrap Authors
 * Copyright 2011-2018 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014 \00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;max-width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:not([size]):not([multiple]){height:calc(2.25rem + 2px)}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm,.input-group-lg>.form-control-plaintext.form-control,.input-group-lg>.input-group-append>.form-control-plaintext.btn,.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-sm>.form-control-plaintext.form-control,.input-group-sm>.input-group-append>.form-control-plaintext.btn,.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),select.form-control-sm:not([size]):not([multiple]){height:calc(1.8125rem + 2px)}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),select.form-control-lg:not([size]):not([multiple]){height:calc(2.875rem + 2px)}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(40,167,69,.8);border-radius:.2rem}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{background-color:#71dd8a}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label::before,.was-validated .custom-file-input:valid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(220,53,69,.8);border-radius:.2rem}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{background-color:#efa2a9}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label::before,.was-validated .custom-file-input:invalid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{background-image:none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;background-color:transparent;background-image:none;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;background-image:none;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;background-image:none;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;background-image:none;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;background-color:transparent}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:underline;border-color:transparent;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media screen and (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media screen and (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-right{right:0;left:auto}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:0 1 auto;flex:0 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file:focus,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 5px rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:focus~.custom-file-label::after{border-color:#80bdff}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:2.25rem;padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;padding-left:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-appearance:none;appearance:none}.custom-range::-webkit-slider-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-appearance:none;appearance:none}.custom-range::-moz-range-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;appearance:none}.custom-range::-ms-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion .card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media screen and (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:focus,.close:hover{color:#000;text-decoration:none;opacity:.75}.close:not(:disabled):not(.disabled){cursor:pointer}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;-ms-flex-align:center;align-items:center;width:100%;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}@media screen and (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:rgba(255,255,255,.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}
/*# sourceMappingURL=/19/dist/css/bootstrap.min.css.map */
@charset "utf-8";
/* --------- UPDATE INFO --------------------------------
	
Created on: June 6, 2018 (D-Day)
Cretaed by: Peter Gurry, www.gurrydesign.com

--------- CONTENTS --------------------------------------

	============================
	=1: Basic Styles & Structure
	============================
	=2: Header
	----------------------------
		=2a: Navigation
		=2b: Carousel & banners
	============================
	=3: Content
	----------------------------
		=3a: Typography
		=3b: Lists
		=3c: Images
		=3d: Links & Buttons
		=3e: Forms
		=3f: Tables
	============================
	=4: Footers
	============================
	=5: Size-specific Styles
	============================
	=6: Misc
	============================
		
--------------------------------------------------------- */

/* @import url("https://use.typekit.net/nez3jru.css"); */

body {
    font-family: "proxima-nova-condensed", "arial narrow", sans-serif;
    padding-top: 0;
    padding-bottom: 0;
    color: #58544f;
    position: relative;
    background: url(https://www.lvalive.com/cf/19/images/bg_main.jpg) repeat;
    background-size: 475px 475px;
    font-variant-numeric: oldstyle-nums;
    -moz-font-feature-settings: "onum";
    -webkit-font-feature-settings: "onum";
    font-feature-settings: "onum";
}

@media (max-width: 768px) {
body {
    background: url(https://www.lvalive.com/cf/19/images/bg_main-450.jpg) repeat;
}
}


/*	=1: Basic Styles & Structure
=============================================== */

div.contact .body-content,
div.directions .body-content,
.navbar-brand,
.reg-table h3,
footer,
.pagination,
h3.icon,
.metadata,
.filters,
form,
.reg-progress-bar {
    /* proportional lining numerals */
    font-variant-numeric: proportional-nums;
    -moz-font-feature-settings: "pnum";
    -webkit-font-feature-settings: "pnum";
    font-feature-settings: "pnum";
}
ol {
    /* tabular lining numerals */
    font-variant-numeric: tabular-nums;
    -moz-font-feature-settings: "tnum";
    -webkit-font-feature-settings: "tnum";
    font-feature-settings: "tnum";
}

/*	=2: Header
=============================================== */

a.navbar-brand img#logo-blockhouse {
    display: none;
}

a.navbar-brand {
    font: 30px/38px Gin, impact;
    text-align: center;
    color: #fff;
    background-size: 100% auto;
    padding: 2px 25px 13px;
    margin: 0 0 -10px -5px;
    /* -8px makes up for the margin in the .png background image */
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.7);
}
body.webp a.navbar-brand {
    background: url(https://www.lvalive.com/cf/19/images/bg_main_logo.webp) no-repeat bottom center;   
}
body.no-webp a.navbar-brand {
    background: url(https://www.lvalive.com/cf/19/images/bg_main_logo.png) no-repeat bottom center;   
}

a.navbar-brand:hover {
    color: #7d8560 !important;
}

.navbar-brand .logo-camp {
    display: none;
}

.navbar-brand .tagline {
    font: 9px/12px termina, sans-serif;
    color: #7d8560;
    text-transform: uppercase;
    letter-spacing: .1em;
    display: none;
    text-shadow: none;
}

.navbar-brand .est-date {
    display: none;
}


/*	=2a: Navigation
----------------------------------------------- */

.navbar {
    background: linear-gradient(#2a2a2a, #1a1a1a);
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
    box-shadow: 0 2px 3px rgba(0, 0, 0, 0.4);
    padding-top: 0;
    padding-bottom: 0;
}

.navbar-dark .navbar-nav .nav-link {
    color: #fff;
    font-size: 18px;
    padding-left: .7rem;
    padding-right: .7rem;
    transition: 0s;
    /* set as 0 because dropdowns appear with no transition currently */
    font-family: "proxima-nova", sans-serif;
}

.navbar-dark .navbar-nav .nav-link:hover {
    transition: 0s;
    /* set as 0 because dropdowns appear with no transition currently */
}

.navbar-dark .navbar-nav .nav-item:last-child .nav-link,
.navbar-nav.social-links .nav-link {
    background: none;
}

.navbar-dark .navbar-nav .active > .nav-link,
.navbar-dark .navbar-nav .nav-link.active {
    color: #ff931e;
    font-weight: bold;
}

.navbar-dark .navbar-nav .nav-link:focus,
.navbar-dark .navbar-nav .nav-link:hover {
    color: #ff931e;
}

.dropdown-toggle::after {
    opacity: 0.4;
    vertical-align: .1em;
    border-top: .3em solid;
    border-right: .2em solid transparent;
    border-bottom: 0;
    border-left: .2em solid transparent;
}

/* search box styles */

.nav-link i.fa-search {
    /* search icon size */
    font-size: 75%;
}

.dropdown-menu.search-dropdown {
    padding: 15px;
}

.search-dropdown .form-control {
    border-color: #222;
    border-right: none;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    width: 70%;
}

.search-dropdown .form-control:active,
.search-dropdown .form-control:focus {
    width: auto;
    border-color: #2e3429;
}

.search-dropdown button {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    width: 30%;
}

.dropdown-menu {
    background: linear-gradient(#333, #353535);
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.15), 0 0 0px 1px rgba(0, 0, 0, 0.2);
    border-top: 1px solid #313131;
    border-bottom: 1px solid #3a3a3a;
}


a.dropdown-item,
a:visited.dropdown-item {
    color: #eee;
    -webkit-transition: all .3s;
    transition: all .3s;
    transition-timing-function: ease;
    font-family: "proxima-nova";
}

.dropdown-item:focus,
.dropdown-item:hover {
    background-color: #b5baa1;
    color: #2e3429;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 -1px 0 #a5aa91, 0 1px 0 #a5aa91;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3);
    -webkit-transition: all .3s;
    transition: all .3s;
    transition-timing-function: ease;
}

.dropdown-item.active,
.dropdown-item:active {
    background: #000;
    cursor: default;
}

.dropdown-header {
    font-family: marydale, sans-serif;
    color: #ff931e;
    font-size: 18px;
}

.dropdown-divider {
    border-top: 1px solid #272727;
    box-shadow: 0 1px 0 rgba(255, 255, 255, .05);
}

/* social media links */

.navbar-nav.social-links {
    display: none;
    /* hides social links on dropdown nav menu on smaller screens */
}

.navbar .navbar-nav.social-links .nav-link {
    font-size: 16px;
    padding-left: .3rem;
    padding-right: .3rem;
    color: #b5baa3;
    background: none !important;
    transition: .3s;
    /* to offset the 0 set above */
}

.navbar .social-links a:hover i.fa-facebook {
    color: #1877f2;
}

.navbar .social-links a:hover i.fa-twitter {
    color: #1da1f2;
}

.navbar .social-links a:hover i.fa-vimeo-v {
    color: #1ab7ea;
}

.navbar .social-links a:hover i.fa-instagram {
    color: #c32aa3;
}

.navbar .social-links a:hover i.fa-pinterest {
    color: #bd081c;
}

.navbar-collapse .navbar-nav {
    padding: 10px 0;
}

/* breadcrumbs */

.breadcrumb-nav {
    padding: 5px 0;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.2), 0 1px 2px rgba(0, 0, 0, 0.15), 0 -1px 2px rgba(0, 0, 0, 0.2);
    background: url(https://www.lvalive.com/cf/19/images/bg_light_green-q90.webp) repeat;
    background-size: 130px 130px;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3);
    position: relative;
    z-index: 2;
}


.breadcrumb {
    margin-bottom: 0;
    background: none;
    padding: 4px 0 2px;
    margin-left: 15px;
    font-size: 14px;
}

.breadcrumb-item a,
.breadcrumb-item a:visited {
    color: #2e3429;
    text-decoration: underline;
}

.breadcrumb-item a:hover {
    color: #1b1e19;
    text-decoration: none;
}

.breadcrumb-item.active {
    color: #2e3429;
}

.breadcrumb-item + .breadcrumb-item::before {
    content: " › ";
    color: #556249;
}

.breadcrumb-nav p.share-links {
    padding: 10px 0 6px;
    margin-bottom: 0;
    color: #2e3429;
    margin-right: 15px;
}

.breadcrumb-nav p.share-links a,
.breadcrumb-nav p.share-links a:visited {
    border: 1px solid #2e3429;
    border-radius: 15px;
    height: 24px;
    width: 24px;
    margin-left: 3px;
    display: inline-block;
    text-align: center;
    color: #2e3429;
}

.breadcrumb-nav p.share-links a:hover {
    color: #fff;
    background: #2e3429;
}

.breadcrumb-nav p.share-links a:hover i {
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3);
}

.breadcrumb-nav p.share-links a.fb:hover {
    border-color: #3b5998;
    background: #3b5998;
}

.breadcrumb-nav p.share-links a.tw:hover {
    border-color: #1da1f2;
    background: #1da1f2;
}

.breadcrumb-nav p.share-links a.pt:hover {
    border-color: #bd081c;
    background: #bd081c;
}
.serve .nav-tabs {
	border-bottom: none;
	margin:30px 0 -39px;
}
.nav-tabs .nav-link {
	border-color: #c2b8b5;
	font-weight: bold;
}
.nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover {
	background: linear-gradient(#ffffff, #e8e3dc);
    border-color: #c2b8b5 #c2b8b5 #c2b8b5;
    box-shadow: 0 1px 0 #fff;
}
.nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link.active {
	background: #e8e3dc;
    border-color: #c2b8b5 #c2b8b5 #e8e3dc;
    box-shadow: 0 1px 0 #e8e3dc, inset 0 1px 1px #fff;
    text-shadow: 0 1px 0 #fff;
}
.nav-tabs .nav-link i {
	margin-right: 5px;
	opacity: 0.6;
}
.nav-tabs .nav-link.active i {
	opacity: 1;
}
.serve.adult .nav-tabs .nav-link {
	padding: 0.3rem 0.5rem .2rem;
	font-weight: normal;
}
.serve.adult .nav-tabs .nav-link i {
	display: none;
}

/*	=2b: Carousel & banners
----------------------------------------------- */

/* Carousel base class */

.carousel {
    margin-bottom: 0;
}

/* Since positioning the image, we need to help out the caption */

.carousel-caption {
    bottom: 0rem;
    z-index: 10;
    left: 0;
    right: 0;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.6));
    box-shadow: inset 0 -4px 1px rgba(0, 0, 0, 0.1);
}
.light-bg .carousel-caption {
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.1));
    box-shadow: inset 0 -1px 1px rgba(0, 0, 0, 0.25);
}

.carousel-caption2 {
    z-index: 10;
    top: 80px;
    position: relative;
    display: block;
}
.carousel-caption2 h3 {
    font-size: 100%;
}
@media (max-width: 768px) {
.carousel-caption2 h3 {
    font-size: 12px;
}
}


#home .carousel-caption p {
    margin-bottom: 30px;
}

.body-content .carousel-caption p {
    padding: 15px 35px 5px;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
    line-height: 1.2em;
}

div.history .carousel-indicators {
    margin-bottom: 12px;
}

div.history .carousel-caption {
    padding: 30px 0 12px;
    line-height: 1em;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.75));
}

div.history .carousel-caption p {
    opacity: 1;
    letter-spacing: 0.03em;
    padding: 0 15px 0;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
}

.carousel-control-next,
.carousel-control-prev,
.carousel-control-next:focus,
.carousel-control-prev:focus {
    background: linear-gradient(transparent 60%, rgba(0, 0, 0, 1));
    opacity: 0.5;
}

.carousel-control-next:hover,
.carousel-control-prev:hover {
    background: rgba(0, 0, 0, 1);
    opacity: 0.5;
}

/* Declare heights because of positioning of img element */

#home .carousel-item {
    height: 20rem;
    background-color: #777;
}

#home .carousel-item img {
    position: absolute;
    top: 0;
    left: 0;
    min-height: 100%;
    height: 20rem;
}

/* Center align the text within the three columns below the carousel */

.marketing .col-lg-4 {
    margin-bottom: 1.5rem;
    text-align: center;
}

.marketing h2 {
    font-weight: 400;
}

.marketing .col-lg-4 p {
    margin-right: .75rem;
    margin-left: .75rem;
}

.featurette-divider {
    margin: 5rem 0;
    /* Space out the Bootstrap <hr> more */
}

/* Thin out the marketing headings */

.featurette-heading {
    font-weight: 300;
    line-height: 1;
    letter-spacing: -.05rem;
}

.carousel-indicators {
    bottom: 0;
}

.carousel-indicators li {
    height: 4px;
    -webkit-transition: all .3s;
    transition: all .3s;
    transition-timing-function: ease;
}

.carousel-indicators li:hover {
    -webkit-transition: all .3s;
    transition: all .3s;
    transition-timing-function: ease;
}

#home .carousel-indicators li {
    width: 14px;
    height: 14px;
    border-radius: 15px;
    border: 2px solid rgba(255, 255, 255, 0.6);
    background: none;
}

#home .carousel-indicators .active {
    background: #fff;
}

#home .carousel-indicators li:hover {
    border: 7px solid rgba(255, 255, 255, .6);
}

/* banner */

#banner {
    height: min(48vw, max(525px, 50vh));
    margin-top: 50px;
    width: auto;
    overflow: hidden;
    position: relative;
}

#banner img {
    width: max(650px, 100%);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.about #banner {
    margin: 50px 0 0;
    padding: 100px 0 10px;
    height: auto;
    background-size: contain;
    overflow: visible; /* for the uncle johnnie photo */
}

#cb-about.about.summer #banner {
    background: #091004 url(https://www.lvalive.com/cf/19/images/bg_about_summer-800-c70.jpg) no-repeat;
}
@media (min-width: 600px) {
#cb-about.about.summer #banner {
    background: #091004 url(https://www.lvalive.com/cf/19/images/bg_about_summer-c70.jpg) no-repeat;
    background-size: cover;
}
}


#cb-about.about.fall #banner {
    background: #0a0b00 url(https://www.lvalive.com/cf/19/images/bg_about_fall-800-q60.webp) no-repeat;
}
@media (min-width: 500px) {
#cb-about.about.fall #banner {
    background: #0a0b00 url(https://www.lvalive.com/cf/19/images/bg_about_fall-q55.webp) no-repeat;
    background-size: cover;
}
}


#cb-about.about.winter #banner {
    background: #dcd5dd url(https://www.lvalive.com/cf/19/images/bg_about_winterc-40.jpg) no-repeat;
    background-size: cover;
}

.about.activities-facilities:not(.winter):not(.fall) #banner {
    background: #091004 url("https://www.lvalive.com/cf/19/images/bg_about_summer_esballfield-c70.jpg") no-repeat;
    background-size: cover;
}
.about.activities-facilities.fall #banner {
    background: #ffffff url("https://www.lvalive.com/cf/19/images/bg_about_fall_aerial-1000-q75.webp") no-repeat;
    background-size: cover;
}
@media (min-width: 600px) {
.about.activities-facilities.fall #banner {
    background: #ffffff url("https://www.lvalive.com/cf/19/images/bg_about_fall_aerial.jpg") no-repeat;
    background-size: cover;
}
}
.about.activities-facilities.winter #banner {
    background: #d1d5e1 no-repeat;
    background-size: cover;
    background-position: center;
}

.about.activities-facilities.winter #banner {
    background-image: url("https://www.lvalive.com/cf/19/images/bg_activities_winter1111-c50.jpg");
}

body.webp div.history #banner {
    padding-top: 40%;
    background: #091004 url(https://www.lvalive.com/cf/19/images/bg_history_lake.webp) no-repeat;
    background-position: top center;
}
body.no-webp div.history #banner {
    padding-top: 40%;
    background: #091004 url(https://www.lvalive.com/cf/19/images/bg_history_lake.jpg) no-repeat;
    background-position: top center;
}

/*	=3: Content
=============================================== */

/* general styles */

.top-border-fade {
    padding: 40px 15px 0;
    background: linear-gradient(#e8e3dc, #ffffff);
    border-top: 1px solid #fff;
    box-shadow: 0 -1px 0 #c2b8b5;
    margin: 40px -15px 0;
}

.row.top-border-fade {
    padding-left: 0;
    padding-right: 0;
}

/* homepage */

.home-about {
    padding: 20px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.7);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.2);
    background: url(https://www.lvalive.com/cf/19/images/bg_light_green-q90.webp) repeat;
    background-size: 130px 130px;
}
.winter .home-about {
	background-image: url(https://www.lvalive.com/cf/19/images/bg_blue.jpg);
}

#home .registration {
    padding: 40px 0 0;
}

.reg-table {
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    border: 1px solid #c2b8b5;
    padding: 10px;
    margin-bottom: 30px;
}
@media (min-width: 576px) {
.reg-table {
    padding: 20px;
}
}

.card .reg-table {
    /* for the reg tables on the account pages */
    box-shadow: none;
    border: none;
}

.schedule .reg-table {
    border: 1px solid #c2b8b5;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

#home .reg-table {
    background: linear-gradient(#e8e3dc, #ffffff);
}

.reg-table .info {
    background: #ece7e0;
    border: 1px solid #fff;
    border-top-color: #c2b8b5;
    box-shadow: inset 0 1px 0 #fff;
    margin: 20px -20px -20px;
    padding: 15px 20px;
}

.reg-open-message {
    font-size: calc(0.9vw * var(--sv));
}

#home .reg-table .info {
    padding: 15px 0;
}

#twitter-widget-0 {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    border: 1px solid #c2b8b5;
    border-radius: 5px;
}

.activities {
    background: url(https://www.lvalive.com/cf/19/images/bg_activities_water.jpg) no-repeat center center;
    background-size: cover;
    margin: 50px -15px;
}

.activities.spring {
    background: url(https://www.lvalive.com/cf/19/images/bg_activities_ferns.jpg) no-repeat;
    background-size: cover;
}

.activities.fall {
    background: url(https://www.lvalive.com/cf/19/images/bg_activities_leaves-q55.webp) no-repeat;
    background-size: cover;
}
@media (max-width: 900px) {
.activities.fall {
    background: url(https://www.lvalive.com/cf/19/images/bg_activities_leaves-900-q60.webp) no-repeat;
    background-size: cover;
}
}

.activities.winter {
    background: url(https://www.lvalive.com/cf/19/images/bg_activities_snow.jpg) no-repeat;
    background-size: cover;
}

#home .activities {
    margin: 50px 0;
}

#home .current-info img.pic-of-the-day {
    border: 5px solid #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    margin-bottom: 25px;
}

.video-frame div {
    /* selects only the iframe with a vimeo src */
    border: 5px solid #fff;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

#home .video > div div {
    /* padding for the <div> around the homepage video */
    margin-bottom: 25px;
}

.home-news {
    margin-bottom: 25px;
}

.home-news img {
    max-width: 100%;
}

#weatherWidget {
    font-family: "proxima-nova-condensed" !important;
}

/* about page */
#cb-about.about .history {
    background: #000;
}

#cb-about.about .story {
    margin-bottom: 25px;
}
.about.activities-facilities .story {
    margin-bottom: 0;
}

.about .activity-info, 
.activities-facilities .activities-facilities-info {
    background: #111 url(https://www.lvalive.com/cf/19/images/bg_about_activities-800-c80.jpg) no-repeat center top;
    background-size: cover;
    padding: 20px 0;
    box-shadow: inset 0 -1px 3px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.15);
}
@media (min-width: 740px) {
.about .activity-info, 
.activities-facilities .activities-facilities-info {
    background: #111 url(https://www.lvalive.com/cf/19/images/bg_about_activities-c60.jpg) no-repeat center top;
    background-size: cover;
    padding: 20px 0;
    box-shadow: inset 0 -1px 3px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.15);
}
}


.about.fall .activity-info {
    background: url(https://www.lvalive.com/cf/19/images/bg_about_activities_fall-900-q60.webp) no-repeat center top;
    background-size: cover;
    box-shadow: inset 0 -1px 3px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 -1px 3px rgba(0, 0, 0, 0.05);
}
@media (min-width: 600px) {
.about.fall .activity-info {
    background: url(https://www.lvalive.com/cf/19/images/bg_about_activities_fall.jpg) no-repeat center top;
    background-size: cover;
}
}
.about.winter .activity-info {
    background:  #E9E7EA no-repeat center top;
    background-size: cover;
    box-shadow: inset 0 -1px 3px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 -1px 3px rgba(0, 0, 0, 0.05);
}

body.no-webp .about.winter .activity-info {
    background-image: url(https://www.lvalive.com/cf/19/images/bg_about_activities_winter.jpg);
}
body.webp .about.winter .activity-info {
    background-image: url(https://www.lvalive.com/cf/19/images/bg_about_activities_winter.webp);
}

.about .more-about-info {
    background: #f1e8d6;
    padding: 20px 0;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3);
}
.about.winter .more-about-info {
    background: #cececf;
}
.activities-facilities .activities-facilities-info {
    background: #111;
}

/* history page */
body.no-webp div.history .founder-info {
    background-image: url(https://www.lvalive.com/cf/19/images/bg_history_johnnie.jpg), url(https://www.lvalive.com/cf/19/images/bg_history.jpg);
    background-repeat: no-repeat, repeat;
    background-size: 100%, auto;
    padding: 20px 0;
    box-shadow: inset 0 -1px 3px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.15);
}

body.webp div.history .founder-info {
    background-image: url(https://www.lvalive.com/cf/19/images/bg_history_johnnie.webp), url(https://www.lvalive.com/cf/19/images/bg_history.jpg);
    background-repeat: no-repeat, repeat;
    background-size: 100%, auto;
    padding: 20px 0;
    box-shadow: inset 0 -1px 3px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.15);
}

div.history .book-info {
    background: url(https://www.lvalive.com/cf/19/images/bg_light_green.jpg) repeat center top;
    background-size: 130px;
    padding: 20px 0;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15);
}

/* modal styles */

.modal-content {
    border-radius: .4rem;
    box-shadow: 0 5px 35px rgba(0, 0, 0, 0.4);
}

.modal-header {
    box-shadow: inset 0 -1px 1px rgba(0, 0, 0, 0.3), 0 1px 0 rgba(255, 255, 255, 0.1);
    background: url(https://www.lvalive.com/cf/19/images/bg_green_texture.jpg) repeat;
    background-size: 320px auto;
    border-bottom: none;
    z-index: 2;
    /* puts header above image for the 1px white shadow */
}

.modal-body {
    box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.2);
    font-family: "proxima-nova", sans-serif;
}

.modal-footer {
    padding: 0.5rem 1rem;
    background: #ece7e0;
    border-top: 1px solid #c2b8b5;
    box-shadow: inset 0 1px 0 #fff;
    border-radius: 0 0 .4rem .4rem;
    justify-content: flex-start;
    /* left-aligns the content */
}

.close {
    color: #b1b89d;
    text-shadow: 0 1px 0 #000;
    opacity: 1;
}

.close:focus,
.close:hover {
    color: #fff;
    opacity: 1;
}

/* secondary pages */

.camp .activities,
.retreat .activities {
    margin-top: 15px;
}

.retreat .activities.fall {
    margin-top: 25px;
}

.account main {
    margin-top: 40px;
}

main > .container {
    /* makes secondary page content go edge-to-edge */
    padding-left: 0;
    padding-right: 0;
}

#home main > .container {
    /* keeps home page content from going edge-to-edge */
    padding-left: 15px;
    padding-right: 15px;
}

.body-content {
    background: #fff;
    padding: 15px 15px 0;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    margin-bottom: 0;
}

.account .body-content {
    padding-top: 50px;
}

.reg-table .boy,
.reg-table .girl {
    color: #333;
    font-weight: bold;
    white-space: nowrap;
    /* keeps the icons and numbers on the same line when the tables get small */
}

.reg-table .boy i {
    color: #006e99;
}

.reg-table .girl i {
    color: #cd1f8e;
}

/* completed-event means the event has already finished */
.reg-table tr.completed-event {
    text-decoration: line-through;
}

/* closed means no more space left in the event */
.reg-table tr.completed-event,
.reg-table .closed,
.reg-table .closed {
    color: #3e3a35;
    font-weight: normal;
    opacity: .5;
}

.reg-table .waitlist,
.reg-table:not(.reg-open) .only-when-reg-open,
.reg-table .speaker.event-speaker-no-type,
.reg-table .event-type-column,
.chapel-messages .bible-text,
table .hide,
.bus-schedule .directions {
    /* hide these for small screens */
    display: none;
}

.bus-schedule .bus-schedule-address {
    font-size: 0.6rem;
}

.adult-volunteers .work-group-row.completed-or-cancelled {
    text-decoration: line-through;
    color: #3e3a35;
    font-weight: normal;
    opacity: .5;
}

/* slight workaround so that retreat pages can contain larger bodies
 * for phones in landscape orientation. Make the container larger than
 * default and show the speaker column.
 */
@media (min-width: 576px) and (max-width: 768px) {
.retreat .container {
    max-width: 720px;
}
.retreat .speaker.event-speaker-no-type {
    display: table-cell;
}
}

.chapel-messages .chapel-msg-date-range {
    display: inline-block;
}

.camp .reg-table th,
.camp .reg-table td,
.retreat .reg-table th,
.retreat .reg-table td,
.schedule .reg-table th,
.schedule .reg-table td,
.bus-schedule .bus-schedule-table th,
.bus-schedule .bus-schedule-table td,
.account.events-list .reg-table th,
.account.events-list .reg-table td,
.account .add-table th,
.account .add-table td {
    padding: 4px;
    font-size: 14px;
}
.reg-table .btn-sm {
    font-size: 13px;
    padding: 2px 8px;
}

.camp .reg-table th,
.retreat reg-table th,
.schedule .reg-table th,
.account.events-list .reg-table th,
.bus-schedule .bus-schedule-table th {
    font-weight: normal;
}

.camp .reg-table .btn i,
.retreat .reg-table .btn i,
.schedule .reg-table .btn i,
.account.events-list .reg-table .btn i {
    display: none;
}

.sidebar > div {
    margin-bottom: 35px;
}

.photos-videos .row.recent-photos a {
    display: block;
    padding-bottom: 1px;
}

.photos-videos .row.recent-photos a img {
    opacity: 1;
    -webkit-transition: all .3s;
    transition: all .3s;
}

.photos-videos .row.recent-photos a:hover {
    text-decoration: none;
    color: #2e3429;
    background: rgba(125, 133, 96, .2);
}

.photos-videos .row.recent-photos a:hover img {
    opacity: 0.9;
    -webkit-transition: all .3s;
    transition: all .3s;
}

.resident-staff.one-family #s1-current-letter .card-body img {
    max-width: 100%;
}

.media .filters > div,
.media .results > div,
.media.chapel-songs .filters > div:last-child,
.resident-staff .staff-bios .col {
    margin-bottom: 25px;
}

.media .filters > div:last-child,
.media .results > div:last-child {
    margin-bottom: 0;
}

.results {
    margin-top: 15px;
}

.card {
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
}


.chapel-songs .filters .card,
.resident-staff .staff-bios .card {
    height: 100%;
    /* keeps the song and staff cards neat and tidy */
}

/* year header (except the first one)
 * in multi-year presentation gets extra space
 * to separate it from the previous year's songs.
 */
.chapel-songs .one-song + .year-header {
    margin-top: 3rem;
}


/* account pages */

.account .reg-progress-bar {
    font-family: termina;
    font-size: 14px;
    border-radius: 6px;
    margin: 0 0 40px;
    padding: 5px 20px;
}

.account ul.reg-progress-bar li {
    margin: 10px 0;
    float: left !important;
    list-style-type: none;
    font-size: 14px;
    text-transform: uppercase;
}

.account .reg-progress-bar li:after {
    content: "•";
    padding: 0 10px;
    color: #505948;
    text-shadow: 0 -1px 0 #000;
}

.account .reg-progress-bar li:last-child:after {
    content: "";
    padding: 0;
}

.account .reg-progress-bar .step-num {
    color: #a4ac90;
    border: 1px solid #a4ac90;
    display: inline-block;
    height: 24px;
    width: 24px;
    border-radius: 30px;
    margin-right: 5px;
    text-align: center;
    padding: 2px;
    /* needed to offset the reduced text of icons in <a> tags */
    -webkit-transition: all .3s;
    transition: all .3s;
}

.account .reg-progress-bar a {
    color: #a4ac90;
    letter-spacing: 0.1em;
    text-shadow: 0 -1px 0 #000;
    padding: 10px 5px;
}

.account .reg-progress-bar a:hover,
.account .reg-progress-bar a:hover .step-num {
    color: #fff;
    text-decoration: none;
    /* needed to offset the reduced text of icons in <a> tags */
    -webkit-transition: all .3s;
    transition: all .3s;
}

.account .reg-progress-bar a:hover .step-num {
    border-color: #fff;
    /* needed to offset the reduced text of icons in <a> tags */
    -webkit-transition: all .3s;
    transition: all .3s;
}

.account .reg-progress-bar li.active a:hover {
    cursor: default;
}

.account .reg-progress-bar li.active .step-num {
    color: #2e3429;
    background: #fff;
    border-color: #fff;
    box-shadow: 0 -1px 0 #000;
}

.account .reg-progress-bar li.active a {
    color: #fff;
}

.account .user-links {
    margin-bottom: 0;
}

/*	=3a: Typography
----------------------------------------------- */

h1 {
    color: #2e3429;
    font-family: termina, sans-serif;
}

h1.display-4 {
    font-size: 30px;
}

#home h1 {
    color: #fff;
}

#home .home-about h1 {
    color: #2e3429;
    text-shadow: 0 1px 0 rgba(255, 255, 255, .4);
    font: 24px/30px "proxima-nova", sans-serif;
    font-weight: normal;
    margin-bottom: 0;
}
#home.winter .home-about h1 {
	color: #343a40;
}

.about #banner h1 {
    font-size: 32px;
}
#cb-about.about.summer #banner h1, #cb-about.about.fall #banner h1,
.activities-facilities #banner h1, div.history #banner h1 {
    color: #fff;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.8);
}
#cb-about.about.winter #banner h1 {
	text-shadow: 0 0 8px rgba(255,255,255, 0.5);
}
.about.activities-facilities.winter #banner h1 {
	text-shadow: 0 0 8px rgba(0,0,0, 0.8);
}

#home .carousel-caption h1 {
    font: 32px/32px termina, sans-serif;
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.6), 0 0 100px rgba(0, 0, 0, 0.9);
    margin: 0;
}
#home .carousel-caption h1 span.predication {
    font: 48px/48px marydale, Gabriola, "Segoe Script";
    color: #ff931e;
    text-shadow: 0 0 20px rgba(0, 0, 0, 0.2), 0 0 100px rgba(0, 0, 0, 0.9);
    margin-bottom: 7px;
    display: block;
	font-feature-settings: "salt"; /*stylistic alternatives for letters like a, y, g, etc. */
}
#home .light-bg .carousel-caption h1 {
	text-shadow: none;
	color: #283228;
}
#home .carousel-caption h1 span.predication {
	text-shadow: none;
}

/* colors for specific carousel text and button icons */

#home .grass-green .carousel-caption h1 span.predication,
#home .grass-green .carousel-caption .btn-primary i {
    color: #9bdc20;
}

#home .paddle-blue .carousel-caption h1 span.predication,
#home .paddle-blue .carousel-caption .btn-primary i {
    color: #00bfe7;
}
#home .blue .carousel-caption h1 span.predication,
#home .blue .carousel-caption .btn-primary i {
    color: #648cd2;
}
#home .light-green .carousel-caption h1 span.predication,
#home .light-green .carousel-caption .btn-primary i {
    color: #7d875a;
}

#home .semi-blue .carousel-caption h1 span.predication,
#home .semi-blue .carousel-caption .btn-primary i {
    color: #add7c3;
}

h2 i {
    font-size: 85%;
    opacity: 0.6;
}

.news h2, div.resident-staff .body-content .card h2 {
    font-family: termina;
    font-size: 26px;
}

.schedule h2 {
    font-family: termina;
    text-transform: lowercase;
    letter-spacing: .02em;
    font-variant: small-caps;
    font-size: 18px;
}

h3.script {
    font-family: marydale;
    color: #ff931e;
}

.about .activity-info .script {
    color: #fff;
}
.about.winter .activity-info .script {
    color: #648cd2;
}
.about.winter .more-about-info .script {
    color: #503728;
}

h3.icon {
    font: 13px/18px termina;
    color: #2e3429;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    border-top: 2px solid #7d8560;
    padding: 10px 0;
    margin-bottom: 0; /* not needed because of the padding */
}

h3.icon.link {
    padding: 0; /* because the padding is added to the <a> tag instead */
}
div.album .album-photos h3.icon {
	margin-top: 2px;
    padding-bottom: 6px;
}

.about #banner h3.icon {
    border-top-width: 1px;
    padding-top: 20px;
    color: #FF9322;
    border-top-color: rgba(255, 255, 255, 0.25);
}
#cb-about.about.winter #banner h3.icon {
	color: #503728;
    border-top-color: rgba(0, 0, 0, 0.15);
}
.about.activities-facilities.winter #banner h3.icon {
	color: #503728;
    border-top-color: rgba(255,255,255, 0.5);
}

.about .activity-info h3.termina,
div.history .founder-info h3.termina, 
.activities-facilities .activities-facilities-info h3.termina {
    color: #fff;
    font-size: 18px;
    border-top: none;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 10px 0;
    margin-bottom: 0;
}
.activities-facilities .activities-facilities-info h3.termina {
    border-bottom: 1px solid rgba(255,255,255,0.3);
    margin-bottom: 10px !important;
}
.about.winter .activity-info h3.termina {
	color: #283228;
}

div.history .founder-info h3.icon {
    color: #fff;
    border-top-color: #ff931e;
}

div.history .founder-info h3.icon.border-bottom {
    border-bottom-color: rgba(255, 255, 255, 0.4) !important;
}

div.history .founder-info h3.icon i {
    color: #ff931e;
}

.media .results h3.icon {
    font-size: 14px;
}

.media .results h3.icon {
    font-weight: bold;
}
.chapel-messages .results a i {
    padding-right: 2px;
}

h3.icon span.metadata {
    font-family: "proxima-nova-condensed";
    font-weight: normal;
}

h3.icon.border-bottom {
    border-bottom: 1px dotted #7d8560 !important;
    margin-bottom: 15px;
}

h3.icon i {
    color: #7d8560;
    opacity: 1;
    font-size: 100%;
    margin-right: 1px;
    /* needed to offset the reduced text of icons in <a> tags */
    -webkit-transition: all .3s;
    transition: all .3s;
}

h2 i,
h3 i,
h4 i,
h5 i,
h6 i {
    font-size: 75%;
    opacity: .6;
    margin-right: 5px;
}

h2.termina,
h3.termina,
h4.termina,
h5.termina,
h6.termina {
    font-family: termina;
}

.reg-table h3.icon,
.reg-progress-bar {
    font-size: 14px;
    margin: -21px -11px 20px;

    padding: 20px;
    color: #fff;
    border-top: none;
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.3), 0 1px 0 rgba(255, 255, 255, 0.8);
    background: #2e3429 url(https://www.lvalive.com/cf/19/images/bg_green_texture.jpg) repeat;
    background-size: 320px auto;
}

#home .reg-table h3.icon {
    padding: 20px;
}

#home .reg-table h4 {
    font-size: 20px;
    font-weight: bold;
    color: #252525;
}

#home .reg-table h4 span.open,
.reg-table h3 span.open {
    font-size: 16px;
    font-weight: normal;
    color: #7d8560;
}

.reg-table h3 span.open {
    font-size: 16px;
    font-weight: normal;
    text-transform: capitalize;
    letter-spacing: 0;
    font-family: "proxima-nova-condensed";
    color: #7d8560;
}

h5 {
    font-weight: bold;
}

.home-about h5 {
    font-family: termina;
    font-size: .9rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #55604c;
    font-weight: normal;
}
.winter .home-about h5 {
	color: #495057;
}

.activities h5 {
    font: 18px/24px termina;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-top: 40px;
}

.activities h5 {
    color: rgba(255, 255, 255, 0.5)
}

.activities.fall h5 {
    color: rgba(0, 0, 0, 0.8);
}

.activities.spring h5 {
    color: rgba(255, 255, 255, 0.7)
}

.activities.winter h5 {
    color: rgba(255, 255, 255, 0.7)
}

.modal h5, .activities .modal h5 {
    font: 16px/24px termina;
    text-align: left;
    color: #fff;
    margin: 0;
	text-transform: uppercase;
    letter-spacing: 0.1em;
}

.card-title {
    font-weight: bold;
}

.reg-table .info p {
    margin: 0;
}

#home .reg-table .info p {
    margin: 0 0 10px;
    /* to help with spacing */
    line-height: 1.3em;
}

#cb-about.about.summer #banner p, #cb-about.about.fall #banner p, .activities-facilities #banner p {
    color: #fff;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.8);
    opacity: .8;
}
.activities-facilities #banner h3 {
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.8);
    line-height: 1.4em;
}
.activities-facilities #banner p.lead {
    opacity: 1;
    text-shadow: 0 0 20px rgba(0, 0, 0, 1), 0 1px 4px rgba(0, 0, 0, 0.5);
}

div.history #banner p,
div.history .founder-info p {
    color: #fff;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
    opacity: 0.9;
}

div.history .book-info p {
    color: #283228;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
}

#cb-about.about .about-summary p {
    opacity: .95;
}
#cb-about.about.summer .about-summary p, #cb-about.about.fall .about-summary p {
    color: #fff;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.8);
}
#cb-about.about.winter .about-summary,
#cb-about.about.winter .story {
    /* partially transparent color adding lightness so text can be seen.
       This is set to transparent below for larger-width screens.
     */
    background-color: #e6e7eaab;
}
#cb-about.about.winter .about-summary {
    padding-top: 7px;
}
#cb-about.about.winter .story {
    padding-bottom: 7px;
}
#cb-about.about.winter .about-summary p {
	color: #2e3429;
	opacity: 0.9;
    text-shadow: 0 0 8px rgba(255,255,255, 0.4);
}

.about.summer .activity-info p, 
.about.fall .activity-info p,
.activities-facilities .activities-facilities-info p {
    color: #fff;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
    opacity: .85;
}

p.metadata {
    color: #58544f;
}

.media img + p.metadata {
    margin: -7px 0 0;
    padding: 0 7px 5px;
}

p.metadata i {
    color: #7d8560;
    margin-right: 4px;
    font-size: 90%;
}

.sep {
    padding: 0 6px;
    color: #7d8560;
}

.sep.dot {
    padding: 0 1px;
    color: #7d8560;
}

.small-caps {
    text-transform: lowercase;
    font-variant: small-caps;
    letter-spacing: .06em;
    font-variant-numeric: oldstyle-nums;
    -moz-font-feature-settings: "onum";
    -webkit-font-feature-settings: "onum";
    font-feature-settings: "onum";
}

.script {
    font-family: marydale;
}
.alt {    
	font-feature-settings: "salt"; /*stylistic alternatives for letters like a, y, g, etc. */
}

.termina {
    font-family: termina;
}

.small-caps i {
    font-size: 75%;
    /* shrinks icons in small-caps text */
}

.text-uppercase {
    letter-spacing: 0.1em;
}

.capitalize {
    text-transform: capitalize;
}

.blue {
    color: #638cd4 !important;
}

.light-green {
    color: #7d8560 !important;
}

.dark-green {
    color: #283228 !important;
}

.orange {
    color: #ff931e !important;
}

blockquote {
    padding-left: 15px;
    border-left: 3px solid #a4ac90;
}

blockquote.no-line {
    padding-left: 0;
    border-left: 0;
}

strong {
    color: #333;
    font-weight: bold;
}

/*	=3b: Lists
----------------------------------------------- */
.activities ul {
    text-align: center;
    margin-bottom: 40px;
    padding-left: 0;
}

.activities ul li {
    display: inline;
    line-height: 1.6em;
    margin-left: 0;
    padding-left: 0;
    font-family: marydale;
    font-size: 20px;
    list-style-type: none;
}

.activities ul li:after {
    content: "•";
    opacity: 0.5;
    padding: 0 10px;
}

.activities ul li:last-child:after,
.activities ul li.d-none:after {
    content: "";
    padding: 0;
}

.activities.summer ul li,
.activities.winter ul li,
.activities.spring ul li {
    color: #fff;
}

.activities.fall ul li {
    color: #000;
}

div.contact #camper-mail ul {
    padding-left: 1.2em;
}
.serve .top-border-fade ol, .serve .top-border-fade ul, .donate .modal ol {
	padding-left: 18px;
}
.serve .top-border-fade ol li, .donate .modal ol li {
	padding-left: 5px;
}
ul.two-col, ol.two-col {
	column-count: 2;
	column-gap: 40px;
}
ul.three-col, ol.three-col {
	column-count: 3;
	column-gap: 40px;
}
ul.four-col, ol.four-col {
	column-count: 2;
	column-gap: 40px;
}
.activities-facilities-info ul.two-col, .activities-facilities-info ul.four-col {
    column-gap: 25px;
    list-style-type: square;
    padding-left: 20px;
    color: rgba(255,255,255,0.5);
}
.activities-facilities-info ul.two-col li, .activities-facilities-info ul.four-col li {
    line-height: 1.3em;
}

.beliefs .social .fab, .news .social .fab,
.sitemap .social .fab {
    position: relative;
    bottom: 6px;
}

.sidebar .social li {
    margin-right: 12px;
    float: left;
}

.sidebar .social li:last-child {
    margin-right: 0;
}

.sidebar .social li a {
    display: inline-block;
    border: 1px solid #ced4da;
    border-radius: 3px;
    height: 32px;
    width: 32px;
    text-align: center;
    font-size: 22px;
	padding: 7px 7px 6px;
}

.sidebar .social li a.fb {
    color: #0082b5;
}

.sidebar .social li a.tw {
    color: #1da1f2;
}

.sidebar .social li a.vm {
    color: #1ab7ea;
}

.sidebar .social li a.ig {
    color: #c32aa3;
}

.sidebar .social li a.pt {
    color: #bd081c;
}

.sidebar .social li a:hover {
    background: #ced4da;
    color: #fff;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

.sidebar .social li a.fb:hover {
    background-color: #0082b5;
    border-color: #0082b5;
}

.sidebar .social li a.tw:hover {
    background-color: #1da1f2;
    border-color: #1da1f2;
}

.sidebar .social li a.vm:hover {
    background-color: #1ab7ea;
    border-color: #1ab7ea;
}

.sidebar .social li a.ig:hover {
    background-color: #c32aa3;
    border-color: #c32aa3;
}

.sidebar .social li a.pt:hover {
    background-color: #bd081c;
    border-color: #bd081c;
}

.list-group-item.active {
    background-color: #7d8560;
    border-color: #7d8560;
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
div.resident-staff .list-group .list-group-item i {
    color: #000;
    opacity: .6;
    margin-right: 5px;
}
.pagination a,
.pagination a:visited {
    color: #006e99;
}

.page-item.active .page-link {
    background-color: #7d8560;
    border-color: #7d8560;
}

footer ul li.text-muted {
    color: #666 !important;
}

footer ul li.text-muted span {
    color: #ccc;
}

/*	=3c: Images
----------------------------------------------- */

.home-about img {
    margin: 15px auto -45px;
    display: block;
    /* centers the image for smaller screens */
    width: 100%;
}

.home-news img {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    margin-bottom: 15px;
}
.body-content .page-info img {
	margin-bottom: 0; /* for small screen sizes */
}

.activities .row img {
    margin: -15px 0 -9px;
}

.activities .row img.winter-girl {
    margin: -23px 0 -1px;
}

.activities .row img.zipline-dad {
    margin: -36px 0 0;
}
#home .activities .row img.zipline-dad {
    margin: -34px 0 0;
}
#home .activities .row img.zipline-mom {
    margin: -16px 0 0px;
}

.activities .row img.father-daughter {
    margin: -21px 0 -15px;
}

.body-content img {
    margin-bottom: 15px;
}

.body-content .card img {
    margin-bottom: 5px;
}

.body-content .carousel img {
    margin-bottom: 0;
}

.album .body-content img, .album .body-content .album-photos iframe {
    margin: 0;
    border: 2px solid transparent;
}

.modal img {
    width: 100%;
    height: auto;
    margin: 0;
}

img.shadow, .carousel-inner.shadow {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2) !important;
}

img.border, .carousel-inner.border {
    border: 5px solid #fff !important;
}

.history img.barakel-book {
    margin: 0 0 -26px;
}

/*	=3d: Links & Buttons
----------------------------------------------- */

a,
a.list-group-item-action {
    color: #006e99;
    transition: 0.3s;
    text-decoration: underline;
}

a:is(.btn, .navbar-brand, .nav-link, .dropdown-item),
:is(.activities, .reg-table, .act-list, #facilities,
 .event-message-list, footer) a {
    text-decoration: none;
}

a:visited,
a.list-group-item-action:visited {
    color: #006e99;
}

a:hover,
a.list-group-item-action:hover {
    color: #10b1f1;
}

.list-group-item-action:focus, .list-group-item-action:hover {
    background-color: #eaeef3;
}

.btn {
    font-family: "proxima-nova", sans-serif;
}

.btn-primary,
a.btn-primary {
    background: linear-gradient(#454e3d, #2f3529);
    color: #fff;
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.4);
    border: 1px solid #2e3429;
    box-shadow: 0 2px 3px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.btn-primary:hover {
    color: #fff;
    background: linear-gradient(#546149, #2f3529);
    border: 1px solid #2e3429;
}

.btn-primary.focus,
.btn-primary:focus,
.btn-primary:not(:disabled):not(.disabled).active,
.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled):active:focus {
    background: linear-gradient(#2f3529, #546149);
    border: 1px solid #2e3429;
    color: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

a i {
    font-size: 80%;
}

.btn i {
    padding-left: 4px;
    color: #7d8560;
}
.btn.icon-left i {
    padding-left: 0;
    padding-right: 4px;
}

.btn:hover i {
    color: #fff;
}

#home .carousel-caption .btn-primary,
#home .carousel-caption a.btn-primary {
    font-size: 16px;
    color: rgba(255, 255, 255, 0.7);
    background: linear-gradient(#2a2a2a, #171717);
    border: 1px solid #000;
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.15), 0 2px 3px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

#home .carousel-caption .btn-primary:hover {
    color: #fff;
    background: linear-gradient(#2a2a2a, #1c1c1c);
    border: 1px solid #111;
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.4), 0 2px 3px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

#home .carousel-caption .btn-primary.focus,
#home .carousel-caption .btn-primary:focus,
#home .carousel-caption .btn-primary:not(:disabled):not(.disabled).active,
#home .carousel-caption .btn-primary:not(:disabled):not(.disabled):active,
#home .carousel-caption .btn-primary:not(:disabled):not(.disabled):active:focus {
    background: linear-gradient(#1c1c1c, #2a2a2a);
    border: 1px solid #111;
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.4), 0 2px 3px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

#home .carousel-caption .btn-primary i {
    color: #ff931e;
}

#home .carousel-caption .btn-primary:hover i {
    color: #fff;
}

.btn.btn-outline-secondary {
    color: #2e3429;
    border: 1px solid rgba(46, 52, 41, 0.7);
    text-shadow: 0 1px 0 rgba(255, 255, 255, .4);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4);
    background: linear-gradient(rgba(185, 195, 165, 0.1), rgba(185, 195, 165, 0.4));
}

.btn.btn-outline-secondary:hover {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3);
    text-shadow: 0 1px 0 rgba(255, 255, 255, .5);
    background: linear-gradient(rgba(185, 195, 165, 0.6), rgba(185, 195, 165, 1));
}

.btn.btn-outline-secondary.focus,
.btn.btn-outline-secondary:focus,
.btn.btn-outline-secondary:active,
.btn.btn-outline-secondary:not(:disabled):not(.disabled):active,
.btn.btn-outline-secondary:not(:disabled):not(.disabled):active:focus {
    color: #2e3429;
    text-shadow: 0 1px 0 rgba(255, 255, 255, .4);
    border-color: rgba(46, 52, 41, 0.7);
    box-shadow: none;
    background: linear-gradient(rgba(185, 195, 165, 1), rgba(185, 195, 165, 0.6));
}

.btn-outline-secondary.disabled,
.btn-outline-secondary:disabled {
    color: #6c757d !important;
    background: transparent !important;
}

.btn-outline-secondary.disabled:hover i,
.btn-outline-secondary:hover:disabled i {
    color: #6c757d !important;
}

.home-about .btn.btn-outline-secondary {
    border-width: 2px;
    font-weight: bold;
    text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
    background: linear-gradient(rgba(40, 50, 40, 0.1), rgba(40, 50, 40, 0.2));
}

.home-about .btn.btn-outline-secondary:hover {
    background: linear-gradient(rgba(40, 50, 40, 0.2), rgba(40, 50, 40, 0.4));
}

.home-about .btn.btn-outline-secondary.focus,
.home-about .btn.btn-outline-secondary:focus,
.home-about .btn.btn-outline-secondary:active,
.home-about .btn.btn-outline-secondary:not(:disabled):not(.disabled):active,
.home-about .btn.btn-outline-secondary:not(:disabled):not(.disabled):active:focus {
    background: linear-gradient(rgba(40, 50, 40, 0.4), rgba(40, 50, 40, 0.2));
}

.btn-outline-secondary i {
    color: rgba(46, 52, 41, 0.7);
    opacity: 1;
}

.btn-outline-secondary:hover i {
    color: #2e3429;
}

.btn-outline-light {
    color: #7d8560;
    border-color: #7d8560;
}

.btn-outline-light.white {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.8);
}

.btn-outline-light.white i {
    color: rgba(255, 255, 255, 0.6);
}

a.btn-outline-light.white:hover,
a.btn-outline-light.white:hover i {
    color: #2e3429;
}

h3.icon a.btn-outline-light {
    color: #7d8560;
    padding: 5px 10px;
    text-transform: capitalize;
    letter-spacing: 0;
    margin-top: -6px;
}

h3.icon a.btn-outline-light:hover {
    color: #fff;
}

.activities.summer ul li a,
.activities.winter ul li a,
.activities.spring ul li a {
    color: #fff;
}

.activities.summer ul li a:hover,
.activities.winter ul li a:hover,
.activities.spring ul li a:hover {
    color: #fff;
    opacity: .8;
}

.activities.fall ul li a {
    color: #000;
    opacity: .8;
}

.activities.fall ul li a:hover {
    color: #000;
    opacity: 1;
}

h3.icon a {
    color: #2e3429;
    display: block;
    padding: 10px 0;
}

h3.icon a:hover {
    text-decoration: none;
    color: #2e3429;
    background: rgba(125, 133, 96, .2);
}

h3.icon a:hover i {
    color: #2e3429;
    -webkit-transition: all .3s;
    transition: all .3s;
}
.activities-facilities-info ul.two-col li a, .activities-facilities-info ul.four-col li a {
    color: #fff;
    padding: 5px 0;
    display: block;
    text-shadow: 0 1px 0 rgba(0,0,0,0.6), 0 0 15px rgba(0,0,0,0.3);
}
.activities-facilities-info ul.two-col li a:hover, .activities-facilities-info ul.four-col li a:hover {
    color: #ff931e;
}
.schedule .reg-table .btn,
.account.events-list .reg-table .btn {
    /* shrink buttons on the schedule and events list pages */
    font-size: 13px;
    padding: 2px 8px;
}

a.sort,
a:visited.sort {
    color: #3e3a35;
    opacity: .5;
}

a:hover.sort {
    opacity: 1;
}

.media a.album-cover {
    display: block;
}

.media a:hover.album-cover {
    text-decoration: none;
    color: #2e3429;
    background: rgba(125, 133, 96, .2);
    border-radius: 0 0 3px 3px;
}

.media a.album-cover h3 i,
.media a.album-cover p.metadata,
.media a.album-cover p.metadata i {
    -webkit-transition: all .3s;
    transition: all .3s;
    transition-timing-function: ease;
}

.media a:hover.album-cover h3 i,
.media a:hover.album-cover p.metadata,
.media a:hover.album-cover p.metadata i {
    color: #2e3429;
    -webkit-transition: all .3s;
    transition: all .3s;
    transition-timing-function: ease;
}

.media a.album-cover img {
    opacity: 1;
    -webkit-transition: all .3s;
    transition: all .3s;
    transition-timing-function: ease;
}

.media a:hover.album-cover img, .media.album .album-photos a:hover img {
    opacity: .85;
    -webkit-transition: all .3s;
    transition: all .3s;
    transition-timing-function: ease;
}

.sidebar form button, .news .card form button {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.account .add-btn {
    margin-bottom: 25px;
}

.account .user-name {
    font-weight: bold;
}

footer h5,
footer h5 a,
footer h5 a:visited {
    color: #ccc;
}

footer h5 a:hover {
    color: #ff931e;
    text-decoration: none;
}

footer h5 a i {
    color: #ff931e;
}

footer li a.text-muted,
footer li a.text-muted:visited {
    color: #666 !important;
}

footer li a.text-muted:hover,
footer li a.text-muted.email:hover {
    color: #ff931e !important;
    text-decoration: none;
}

footer li a.text-muted.email {
    color: #ccc !important;
}

#copyright a,
#copyright a:visited {
    color: #666;
}

#copyright a:hover {
    color: #ccc;
}

/*	=3e: Forms
----------------------------------------------- */

.sidebar .form-inline .form-control, .news .card .form-inline .form-control {
    width: auto;
}

.sidebar .form-inline .form-control, .news .card .form-inline .form-control {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.alert-primary hr,
.alert-primary input {
    border-color: #cec6c4;
}

.alert-secondary hr,
.alert-secondary input {
    border-color: #c2b8b5;
}

.alert-success hr,
.alert-success input {
    border-color: #b0b79c;
}

.form-check-input:disabled ~ .form-check-label {
    color: #b7b2aa;
}

#showInputAddress {
    padding: 20px;
    color: #2e3429;
    background-color: #d9dec9;
    border: 1px solid #b0b79c;
    box-shadow: inset 0 0 0 1px #fff;
    border-radius: 3px;
    margin-bottom: 25px;
}

#showInputAddress input {
    border-color: #b0b79c;
}

.account .add-table .form-check-inline {
    margin: 0;
}

/*	=3f: Tables
----------------------------------------------- */

table {
    width: 100%;
    margin: 15px 0;
    font-variant-numeric: tabular-nums;
    -moz-font-feature-settings: "tnum";
    -webkit-font-feature-settings: "tnum";
    font-feature-settings: "tnum";
}

#home .registration table {
    width: 100%;
    margin: 1px 0 20px;
}

th,
td {
    padding: 8px 10px 6px;
    line-height: 1.3em;
}

th {
    padding: 9px 10px 7px;
    background: #d9dcd0;
    border-bottom: 1px solid #b9bfa8;
    color: #2e3429;
}

td {
    border-bottom: 1px solid #c2b8b5;
}

tr.audio-playing td {
    border-bottom: none;
    color: #111;
    font-weight: bold;
}

.reg-table tr td:first-child,
.schedule .reg-table tr td:nth-child(2n),
#home .reg-table tr td:nth-child(2n) {
    /* sets the number style for the date column of registration tables */
    font-variant-numeric: lining-nums;
    -moz-font-feature-settings: "lnum";
    -webkit-font-feature-settings: "lnum";
    font-feature-settings: "lnum";
}

.bus-schedule-table tr {
    vertical-align: top;
}

.bus-schedule-table tr th {
    vertical-align: bottom;
}

.bus-schedule-table td {
    padding-top: 14px;
    padding-bottom: 12px;
}

.contact-info td {
    vertical-align: top;
}

.contact-info td:first-child {
    font-weight: bold;
}

.account tr td.add {
    width: 15px;
}

.account .add-table tr.selected td {
    background: #eee;
    font-weight: bold;
    color: #333;
}


.account .add-table input {
    margin: 4px;
}

.account .add-table label {
    display: block;
}

.account table tr.total td {
    padding: 10px;
    font-weight: bold;
    border-bottom: none;
    border-top: 2px solid #999;
    text-transform: uppercase;
}
.serve.adult table .dates {
	min-width: 90px;
}

/*	=4: Footers
=============================================== */

footer {
    border-top: 4px solid #ff931e;
    font-size: 14px;
    margin: 30px 0 0;
    padding: 25px 15px 0;
    background: linear-gradient(rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.8));
    box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.85), inset 0 2px 0 rgba(255, 255, 255, .1);
}

#home footer,
#cb-about.about footer {
    padding: 25px 0 0;
    margin: 30px 0 0;
}

#cb-about.about footer {
    margin: 0;
}

#copyright {
    background: rgba(0, 0, 0, 0.83);
    border-top: 1px solid rgba(0, 0, 0, 0.2);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
    padding: 7px 0;
    margin: 0;
    line-height: 1.3em;
}

#home #copyright,
#cb-about.about #copyright {
    padding: 7px 0;
    margin: 0;
}

#copyright .text-muted {
    color: #555 !important;
}

/* study serve page */
.study-serve {
    font-size: 13pt;
}
.study-serve h2 {
    font-size: 35pt;
}
.ss-bg-cover {
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    min-height: 28rem;
    display:flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    line-height: 1;
    margin-bottom: 20px;
}
.col-12.ss-bg-cover {
    margin-top: 50px;
}

.ss-bg-cover {
    font-size: 25pt;
}
.ss-bg-cover > div {
    max-width: 97%;
}
.ss-subpoint {
    display: flex;
    align-items: flex-start;
    justify-content: space-around;
    flex-wrap: wrap;
}
.ss-subpoint > .ss-bg-cover {
    font-size: 35pt;
    padding: 1rem;
    line-height: 1.2;
    min-height: 27rem;
    justify-content: flex-start;
    align-items: flex-start;
}
.ss-subpoint > div,
.overview-subpoint {
    width: 95%;
}
.ss-subpoint :is(.ss-bg-cover, .ss-subpoint-text) {
    width: 45%;
}
.ss-subpoint-text {
    align-self: center;
}
.ss-wte-text {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    width: 100%;
}
.ss-subpoint .ss-bg-cover+div {
    line-height: 1.3;
}
.ss-subpoint .ss-header {
    font-size: 35%;
}
.ss-subpoint:not(:first-child) {
    border-top: 1px solid #c9c9c9;
    padding-top: 2rem;
    margin-top: 5rem;
}
.ss-header {
    font-family: "Georgia",serif;
    font-size: 77pt;
}

div:not(.ss-subpoint) > .ss-bg-cover:not(.no-top-border) {
    border-top: 25px solid #e1dcdc;
}

.ss-scroll-contents {
    display: flex;
    flex-wrap: nowrap;
    overflow-x:auto;
    scroll-snap-type: x mandatory;
}

.ss-scroll-contents > div {
    width: 84%;
    flex-shrink: 0;
    position:relative;
    margin-right: 4vw;
    scroll-snap-align:start;
}
.ss-scroll-contents img {
    width: 98%;
    margin-top: 5px;
    margin-bottom:20px;
}
.ss-scroll-contents div div p:first-child {
    margin-bottom: 0.2rem;
    font-weight:bold;
    font-size: 120%;
}
.study-serve a + .collapse {
    margin-left: 2rem;
}
.ss-scroll-contents bl,
.ss-wte-text bl {
    list-style-position: inside;
}
.ss-scroll-contents bl li,
.ss-wte-text bl li {
    margin-left: 2rem;
    text-indent: -1.5rem;
}
.study-serve .strong-bigger strong {
    font-size: 22pt;
}

.study-serve .modal {
    --inv-color: #b88d45;
    font-size: max(1vw, 13pt);
}
.study-serve .modal :is(input, select) {
    width: 80%;
    border: none;
    border-bottom: 1px solid #ddd;
    margin-top: 20px;
    outline: 0;
}
.study-serve .modal input[type="radio"] {
    width: auto;
}
.study-serve .modal input[name="interest"] {
    margin-top: 0;
}
.study-serve .modal input {
    transition: all 0.1s ease-in-out;
}
.study-serve .modal :is(input:focus, select:focus) {
    border: none;
    border-bottom: 1px solid #ddd;    
}
.study-serve .modal input:invalid {
    border-bottom: 1px solid var(--inv-color);
}
.study-serve .modal input:invalid,
.study-serve .modal input:invalid::placeholder,
.study-serve .modal input[type="radio"]:invalid + label {
    color: var(--inv-color);
}
.study-serve .modal input.flash:invalid,
.study-serve .modal input[type="radio"].flash:invalid + label {
    opacity: 0.4;
}
.study-serve .modal h4 {
    font-weight:bold;
}

.ss-vertical-spacer {
    width:100%;
    margin-top:5rem;
}

@media (max-width: 768px) {
.ss-bg-cover {
    margin-top: 5vh;
    margin-bottom: 5px;
}
.ss-subpoint:not(:first-child) {
    padding-top: 0;
    margin-top: 2rem;
}


.ss-subpoint .ss-bg-cover+div {
    font-size: 13pt;
}
.ss-header {
    font-size: 38pt;
}
.study-serve h2 {
    font-size: 25pt;
}
.ss-subpoint > .ss-bg-cover {
    font-size: 25pt;
    min-height: 16rem;
}
.ss-subpoint {
    width: 100%;
}
.ss-subpoint :is(.ss-bg-cover, .ss-subpoint-text) {
    width: 95%;
}
.ss-subpoint-text {
    align-self: auto;
}
.ss-cqa {
    padding-left: 2.5rem;
}

.ss-vertical-spacer {
    margin-top:3rem;
}

}

/*	=5: Size-specific Styles
=============================================== */

/* breaks occur at 576px (phones), 768px (tablets), 992px (laptops), and 1200px (desktops) */

@media (min-width: 320px) {
    a.navbar-brand {
        margin-bottom: -15px;
        padding: 1px 25px 17px;
    }

    .navbar-brand .logo-camp {
        display: inline;
    }

    .navbar-brand .tagline {
        display: block;
    }
}

@media (min-width: 576px) {
    .body-content {
        margin-bottom: 50px;
    }

    .account .body-content {
        padding-top: 80px;
    }

    a.navbar-brand {
        font: 44px/46px Gin, impact;
        margin-bottom: -22px;
        padding: 0 45px 22px;
    }

    .navbar-brand .tagline {
        font-size: 9px;
        line-height: 16px;
        margin-top: 1px;
    }

    .navbar-brand .est-date {
        display: inline;
    }

    .navbar-collapse .navbar-nav {
        padding: 25px 0 20px 15px;
    }

    #home .carousel-item img {
        height: auto;
    }

    #home .carousel-item {
        height: 18rem;
    }

    .home-about {
        padding: 40px 0;
    }

    .about #banner {
        padding: 220px 0 40px;
    }
	div.media.album #banner img {
		margin-top: -100px; /*since we're using a normal size image we need to center it */
	}

    .breadcrumb {
        padding: 10px 0 6px;
        font-size: 16px;
    }

    main > .container {
        padding-left: 15px;
        padding-right: 15px;
    }

    .body-content {
        border: 1px solid #a8a39c;
        border-top: none;
        border-bottom: none;
    }

    .news h2, div.resident-staff .body-content .card h2 {
        font-size: 32px;
    }

    .news #news-article-list img {
        max-width: 99%;
    }

    .activities h5 {
        font: 22px/28px termina;
    }

    .activities ul li {
        font-size: 22px;
    }

    #home .reg-table {
        padding: 40px;
    }

    .reg-table h3.icon {
        font-size: 16px;
        padding: 20px;
        margin: -21px -21px 20px;
        /* the 21 covers the 1px from the border */
    }

    #home .reg-table h3.icon {
        font-size: 18px;
        padding: 20px 40px;
        margin: -41px -41px 30px;
    }

    #home .reg-table .info {
        margin: 0 -40px -40px;
    }

    #home .reg-table .info p {
        margin: 0;
    }

    div.history #banner {
        padding: 180px 0 10px;
        background-size: contain;
    }

    .history img.barakel-book {
        margin-bottom: -31px;
    }

    .reg-table .waitlist,
    .chapel-messages .bible-text,
    table .hide,
    .bus-schedule .directions {
        display: table-cell;
    }

    .camp .reg-table table,
    .retreat .reg-table table,
    .schedule .reg-table table {
        margin-left: 0;
        margin-right: 0;
        width: 100%;
    }

    .camp .reg-table th,
    .camp .reg-table td,
    .retreat .reg-table th,
    .retreat .reg-table td,
    .schedule .reg-table th,
    .schedule .reg-table td,
    .bus-schedule .bus-schedule-table th,
    .bus-schedule .bus-schedule-table td,
    .account.events-list .reg-table th,
    .account.events-list .reg-table td,
	.account .add-table th,
	.account .add-table td {
        padding: 8px 10px 7px;
        font-size: 16px;
    }
    .reg-table .btn-sm {
        font-size: 16px;
        padding: 0.25rem 0.5rem;
    }

    .account.events-list .reg-table .btn {
        padding: 4px 8px;
        font-size: 14px;
    }

    .camp .reg-table th,
    .retreat .reg-table th,
    .schedule .reg-table th,
    .account.events-list .reg-table th,
    .bus-schedule .bus-schedule-table th {
        font-weight: bold;
    }

    .camp .reg-table .btn i,
    .retreat .reg-table .btn i,
    .schedule .reg-table .btn i,
    .account.events-list .reg-table .btn i {
        display: inline;
    }
	.serve.adult .nav-tabs .nav-link {
		padding: .5rem 1rem;
		font-weight: bold;
	}
	.serve.adult .nav-tabs .nav-link i {
		display: inline-block;
	}
    ul.four-col, ol.four-col {
        column-count: 4;
    }
    .account .add-btn {
        margin-top: 35px;
        margin-bottom: 0;
        width: 100%;
    }
	.account .add-table input {
		margin: 10px 10px 10px 15px;
	}
    footer {
        font-size: 16px;
    }
}

@media (min-width: 768px) {
    .body-content {
        padding: 40px 40px 0;
    }

    .breadcrumb {
        margin-left: 40px;
    }

    .breadcrumb-nav p.share-links {
        margin-right: 40px;
    }

    /* Bump up size of carousel content */
    #home .carousel-item {
        height: 24rem;
    }

    #home .carousel-caption h1 {
        font-size: 48px;
        line-height: 48px;
        margin: 0;
    }

    #home .carousel-caption h1 span.predication {
        font-size: 80px;
        line-height: 80px;
        margin-bottom: 10px;
    }

    #home .carousel-caption p {
        font-size: 1.25rem;
        line-height: 1.4;
    }

    #home .carousel-caption .btn-primary,
    #home .carousel-caption a.btn-primary {
        font-size: 20px;
    }

    .featurette-heading {
        font-size: 50px;
    }

    h1.display-4 {
        font-size: 40px;
    }

    h3.script {
        font-size: 27px;
        margin-bottom: 15px;
    }

    .home-about img {
        margin: -40px 0;
    }

    .top-border-fade {
        margin-right: -40px;
        margin-left: -40px;
        padding-left: 40px;
        padding-right: 40px;
    }

    .row.top-border-fade {
        margin-right: -40px;
        margin-left: -40px;
        padding-left: 25px;
        padding-right: 25px;
    }

    #home .reg-table h3.icon {
        font-size: 20px;
    }

    .reg-table .speaker.event-speaker-no-type,
    .reg-table .event-type-column {
        display: table-cell;
    }

    .activities {
        margin-left: -40px;
        margin-right: -40px;
    }

    #home .activities {
        margin: 30px 0 50px;
    }

    .about #banner {
        padding: 260px 0 40px;
    }

    #cb-about.about.winter .about-summary,
    #cb-about.about.winter .story {
        background-color: transparent;
    }
    #cb-about.about .about-summary {
        margin-bottom: 20px;
    }
    #cb-about.about .story {
        margin-bottom: 0;
    }
    div.history .about-summary {
        margin-bottom: 0;
    }
    .about .activity-info,
    .about .more-about-info,
    div.history .founder-info,
    div.history .book-info {
        padding: 40px 0;
    }
	.activities-facilities .activities-facilities-info {
        padding: 50px 0;
    }
    .about .more-about-info {
        background: #f1e8d6;
        background-repeat: no-repeat;
        background-size: cover;
        background-position: 150px center;
    }
    .about.summer .more-about-info {
        background-image: url(https://www.lvalive.com/cf/19/images/bg_buses-c50.jpg);
    }
    .about.fall .more-about-info {
        background-image: url(https://www.lvalive.com/cf/19/images/bg_fall_lakeside.jpg);
        background-size: cover;
    }
    .about.winter .more-about-info {
        background-image: url(https://www.lvalive.com/cf/19/images/bg_winter_tree-c50.jpg);
        background-size: cover;
    }

    .about .activity-info .script,
    .about .more-about-info .script, 
	.activities-facilities .activities-facilities-info .script {
        font-size: 45px;
    }

    .about .activity-info {
        background-position: -460px top;
    }

    div.history .founder-info {
        background-size: 100%, auto;
    }

    div.history .founder-info h3 + p {
        font-size: 20px;
    }

    .history img.barakel-book {
        margin: -30px 0 -55px;
    }
    .activities-facilities .activities-facilities-info {
        background: #111 url(https://www.lvalive.com/cf/19/images/bg_activities-c60.jpg) no-repeat center top;
        background-size: cover;
    }
    .activities-facilities.fall .activities-facilities-info {
        background: #111 url(https://www.lvalive.com/cf/19/images/bg_activities_fall.jpg) no-repeat center top;
        background-size: cover;
    }
    body.no-webp .activities-facilities.winter .activities-facilities-info {
        background: #111 url(https://www.lvalive.com/cf/19/images/bg_activities_winter.jpg) no-repeat center top;
        background-size: cover;
    }
    body.webp .activities-facilities.winter .activities-facilities-info {
        background: #111 url(https://www.lvalive.com/cf/19/images/bg_activities_winter.webp) no-repeat center top;
        background-size: cover;
    }
    .schedule h2 {
        font-size: 22px;
    }

    .bus-schedule-table th.bus-tues,
    .bus-schedule-table th.bus-mon {
        min-width: 85px;
    }

    img.rotate-right {
        transform: rotate(4deg);
    }

    img.rotate-left {
        transform: rotate(-4deg);
    }
    .account .available-events h3.card-title {
        margin-bottom: 0;
    }

    .account .show-waitlist {
        float: right;
        margin-top: 5px;
    }

    .account .reg-progress-bar {
        font-size: 18px;
        border-radius: 50px;
    }

    footer {
        margin: 50px 0 0;
        padding: 25px 40px 10px;
    }

    #copyright {
        margin: 0;
        padding: 8px 40px;
        border-bottom: 1px solid #111;
    }
}


@media (min-width: 992px) {
    .navbar {
        height: 63px;
    }

    .navbar-collapse .navbar-nav {
        padding: 0;
    }

    a.navbar-brand img#logo-blockhouse {
        display: block;
        margin: 0 auto -4px;
        width: 77px;
        padding-left: 9px;
    }

    #home a.navbar-brand img#logo-blockhouse {
        margin-bottom: 10px;
    }

    a.navbar-brand {
        font: 50px/60px Gin, impact;
        letter-spacing: -0.015em;
        margin-bottom: -90px;
        margin-left: -12px;
        padding: 15px 45px 30px;
        width: 368px;
    }

    #home a.navbar-brand {
        font: 83px/90px Gin, impact;
        margin-bottom: -155px;
        padding-bottom: 35px;
    }

    #home a.navbar-brand .logo-camp {
        font: 36px/32px termina;
        display: block;
        text-align: center;
        letter-spacing: 0.02em;
        text-transform: uppercase;
        font-weight: bold;
        margin-bottom: -15px;
    }

    .navbar-brand .tagline {
        font-size: 10px;
    }

    /* The following transitions shrink and expand the logo on scroll */
    .navbar.scrolled a.navbar-brand,
    #home .navbar.scrolled a.navbar-brand .logo-camp,
    .navbar.scrolled a.navbar-brand .tagline,
    .navbar.scrolled a.navbar-brand img#logo-blockhouse {
        -webkit-transition: all .4s;
        transition: all .4s;
        transition-timing-function: ease;
    }

    .navbar a.navbar-brand,
    .navbar a.navbar-brand .tagline,
    .navbar a.navbar-brand img#logo-blockhouse {
        -webkit-transition: all .4s;
        transition: all .4s;
        transition-timing-function: ease;
    }

    .navbar.scrolled a.navbar-brand {
        margin-bottom: -7px;
        margin-top: -4px;
        line-height: 70px;
    }

    #home .navbar.scrolled a.navbar-brand {
        margin-bottom: -50px;
        margin-top: -84px;
        font-size: 60px;
        line-height: 60px;
    }

    .navbar.scrolled a.navbar-brand img#logo-blockhouse {
        width: 50px;
        margin-top: -20px;
        opacity: 0;
    }

    #home .navbar.scrolled a.navbar-brand .logo-camp {
        font-size: 25px;
        padding-bottom: 10px;
        opacity: 0;
    }

    .navbar.scrolled a.navbar-brand .tagline {
        margin-top: -20px;
        font-size: 6px;
        opacity: 0;
        line-height: 10px;
    }

    .dropdown-menu {
        background: #fff;
        border: 1px solid #d0cdc7;
        box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
        margin: 0;
    }

    .dropdown:hover .dropdown-menu {
        display: block;
        /* makes dropdowns appear on hover */
    }

    .dropdown-item.active,
    .dropdown-item:active {
        background: #d7dacc;
        cursor: default;
        color: #2e3429;
        text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3);
        box-shadow: none;
    }

    .navbar-dark .navbar-nav .nav-link {
        background: url(https://www.lvalive.com/cf/19/images/bg_nav_sep.png) no-repeat center right;
        background-size: 2px 48px;
        padding-left: 0.6rem;
        padding-right: 0.6rem;
        font-size: 17px;
        font-family: "proxima-nova-condensed", sans-serif;
    }

    .dropdown-menu.search-dropdown {
        width: 270px;
    }

    .search-dropdown .form-control {
        border-color: #7d8560;
    }

    a.dropdown-item,
    a:visited.dropdown-item {
        color: #2e3429;
        font-family: "proxima-nova-condensed";
    }

    .dropdown-divider {
        border-top: 1px solid #e9ecef;
        box-shadow: none;
    }

    .navbar-nav.social-links {
        display: flex;
    }

    .navbar-nav.social-links .nav-link {
        padding-left: 0.25rem;
        padding-right: 0.25rem;
        font-size: 14px;
    }

    #home .carousel-indicators {
        bottom: 10px;
    }

    #home .carousel-item {
        height: 30rem;
    }

    .about #banner {
        padding: 200px 0 40px;
    }
	div.media.album #banner img {
		margin-top: -175px; /*since we're using a normal size image we need to center it */
	}

    .about #banner h1 {
        font-size: 38px;
    }

    .about #banner h3.icon {
        padding-top: 40px;
    }

    .about .activity-info {
        background-position: center top;
    }

    .about .more-about-info {
        background-position: 200px center;
    }

    div.history #banner {
        padding: 290px 0 40px;
    }

    div.history .founder-info h3.script {
        font-size: 36px;
    }

    div.history .book-info {
        padding: 25px 0;
    }

    div.history .book-info h2 {
        font-size: 29px;
    }

    .history img.barakel-book {
        margin: -82px 0 -38px;
    }

    h1.display-4 {
        font-size: 60px;
    }

    #home .home-about h1 {
        font-size: 34px;
        line-height: 48px;
    }

    .news h2, div.resident-staff .body-content .card h2 {
        font-size: 44px;
    }

    .row .top-border-fade {
        margin-right: -15px;
        /* to account for the .sidebar div to the right */
        border-right: 1px solid #fff;
    }

    .sidebar {
        margin-top: 40px;
        padding-left: 40px;
        border-left: 1px solid #c2b8b5;
    }

    .top-border-fade .sidebar {
        margin-top: 0;
        padding-left: 15px;
        border-left: 0;
    }

    .home-about img {
        margin: -60px 0;
    }

    #home .registration table {
        margin-bottom: 40px;
    }

    .activities h5 {
        font: 22px/28px termina;
        margin-top: 35px;
    }

    .activities ul {
        margin-bottom: 15px;
        padding: 0 35px 0 0;
    }

    #home .activities ul {
        padding: 0 35px;
    }

    .activities ul li {
        font-size: 22px;
    }

    #home .reg-table .info p {
        margin-top: 9px;
    }

    .account .account-links p {
        margin-bottom: 0;
    }

    .account .user-links {
        float: right;
    }

    #copyright {
        text-align: right;
    }
}

@media (min-width: 1200px) {
    :root {
        --sv: 0.75;
    }

    /* above 1200px */
    .h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
        margin-bottom: calc(0.667vw * var(--sv));
    }
    table {
        margin: calc(1.25vw * var(--sv)) 0;
    }
    hr {
        margin-top: 1vw;
        margin-bottom: 1vw;
        border-top: 0.1vw solid rgba(0,0,0,.1);
    }
    .mb-3, .my-3 {
        margin-bottom: calc(1.33vw * var(--sv))!important;
    }
    .mt-3, .my-3 {
        margin-top: calc(1.33vw * var(--sv))!important;
    }
    .mb-4, .my-4 {
        margin-bottom: calc(3vw * var(--sv))!important;
    }
    .p-1 {
        padding: .3vw !important;
    }
    .p-2 {
        padding: .5vw!important;
    }
    .ml-2, .mx-2 {
        margin-left: .5vw!important;
    }
    .mr-2, .mx-2 {
        margin-right: .5vw!important;
    }

    .row.top-border-fade {
        padding: calc(3.33vw*var(--sv)) calc(1.25vw*var(--sv)) 0;
        margin-right: -2vw; /* this matches .body-content padding */
        margin-left: -2vw;
    }
    .navbar-dark .navbar-nav .nav-link {
        padding-left: calc(1.13vw*var(--sv));
        padding-right: calc(1.13vw*var(--sv));
    }
    img.shadow, .carousel-inner.shadow {
        box-shadow: 0 0.08vw 0.2vw rgba(0, 0, 0, 0.2) !important;
    }
    img.border, .carousel-inner.border {
        border: 0.26vw solid #fff !important;
    }

    .navbar-dark .navbar-nav .nav-link,
    .blockquote {
        font-size: calc(1.667vw * var(--sv));
    }

    .navbar .navbar-nav.social-links .nav-link {
        padding-left: calc(0.53vw * var(--sv));
        padding-right: calc(0.53vw * var(--sv));
        font-size: calc(1.83vw * var(--sv));
    }
    .navbar {
        height: calc(5.25vw * var(--sv));
    }
    a.navbar-brand img#logo-blockhouse {
        width: calc(4.28vw*var(--sv));
    }
    .navbar.scrolled a.navbar-brand img#logo-blockhouse {
        margin-top: 0;
    }
    a.navbar-brand, body.webp a.navbar-brand {
        font: calc(4.167vw*var(--sv))/calc(5vw*var(--sv)) Gin, impact;
        padding: calc(6vw*var(--sv)) 2.5vw 1.67vw;
        width: calc(30.6vw * var(--sv));
        background-size: cover;
        margin-bottom: 0;
    }
    .navbar-brand .tagline {
        font-size: calc(0.833vw*var(--sv));
        line-height: calc(1.33vw*var(--sv));
    }
    .navbar.scrolled a.navbar-brand {
        margin-bottom: 0;
        margin-top: 0;
        padding-top: calc(2vw*var(--sv));;
        padding-bottom: calc(3vw*var(--sv));
        line-height: calc(4vw*var(--sv));
    }

    .container {
        max-width: calc(95vw * var(--sv));
    }

    #home .carousel-item, #banner
    {
        height: calc(50vw * var(--sv));
    }
    #banner {
        margin-top: calc(5.25vw * var(--sv));
    }

    .about #banner {
        background-size: cover;
        height: auto;
        padding: calc(25vw * var(--sv)) 0 calc(5.3vw * var(--sv));
    }

    div.history #banner {
        background-size: cover;
    }

    #home .home-about h1 {
        font-size: calc(3.33vw*var(--sv));
        line-height: calc(3.8vw*var(--sv));
    }
    
    h1.display-4
    {
        font-size: calc(4.5vw*var(--sv));
    }

    #home .carousel-caption h1
    {
        font-size: calc(4.2vw*var(--sv));
        line-height: calc(5vw*var(--sv));
        margin-bottom: 1vw;
    }

    #home .carousel-caption h1 span.predication {
        font-size: calc(7vw*var(--sv));
        line-height: calc(7.7vw*var(--sv));
		letter-spacing: -0.01em;
    }

    #home .carousel-indicators li {
        width: 0.8vw;
        height: 0.8vw;
        border-radius: 0.8vw;
    }

    body,
    .btn,
    #home .reg-table h4 span.open,
    footer,
    .dropdown-menu,
    .breadcrumb,
    .reg-table h3 span.open,
    .camp .reg-table th, .camp .reg-table td, .retreat .reg-table th, 
    .retreat .reg-table td, .schedule .reg-table th,
    .schedule .reg-table td, .bus-schedule .bus-schedule-table th, 
    .bus-schedule .bus-schedule-table td, .account.events-list .reg-table th,
    .account.events-list .reg-table td, .account .add-table th,
    .account .add-table td,
    .reg-table .btn-sm,
    .h4, h4
    {
        font-size: calc(1.333vw*var(--sv));
    }
    footer {
        margin: calc(3.3vw*var(--sv)) 0 0;
        padding: calc(1.5vw*var(--sv)) calc(3.5vw*var(--sv)) calc(0.5vw*var(--sv));
    }
    p {
        margin-bottom: calc(1.33vw*var(--sv));
    }

    th, td {
        padding: calc(0.667vw*var(--sv)) calc(0.8333vw*var(--sv)) calc(0.5vw*var(--sv));
        line-height: calc(1.733vw*var(--sv));
    }
    #home .reg-table .info p {
        margin-top: calc(0.75vw*var(--sv));
    }
    .reg-table {
        padding: calc(1.67vw*var(--sv));
    }

    .camp .reg-table th, .camp .reg-table td, .retreat .reg-table th, .retreat .reg-table td, .schedule .reg-table th, .schedule .reg-table td, .bus-schedule .bus-schedule-table th, .bus-schedule .bus-schedule-table td, .account.events-list .reg-table th, .account.events-list .reg-table td, .account .add-table th, .account .add-table td {
        padding: calc(0.5vw*var(--sv)) calc(0.8333vw*var(--sv)) calc(0.5833vw*var(--sv));
    }

    .schedule .reg-table .btn, .account.events-list .reg-table .btn {
        font-size: calc(1.08vw*var(--sv));
        padding: calc(0.167vw*var(--sv)) calc(0.667vw*var(--sv));
    }

    .col, .col-1, .col-10, .col-11, .col-12, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-auto, .col-lg, .col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-auto, .col-md, .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-auto, .col-sm, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-auto, .col-xl, .col-xl-1, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-auto {
        padding-right: calc(1.25vw*var(--sv));
        padding-left: calc(1.25vw*var(--sv));
    }

    .bus-schedule .bus-schedule-address {
        font-size: calc(0.9vw*var(--sv));
    }

    .body-content {
        padding: 2vw 2vw 0;
    }

    #home .carousel-caption p {
        margin-bottom: 2.5rem;
    }

    .breadcrumb {
        padding: calc(0.8333vw*var(--sv)) 0 calc(0.5vw*var(--sv));
        margin-left: calc(3.33vw*var(--sv));
    }
    .breadcrumb-item+.breadcrumb-item {
        padding-left: .5vw;
    }

    .schedule h2,
    #home .carousel-caption .btn-primary,
    #home .carousel-caption a.btn-primary {
        font-size: calc(1.833vw*var(--sv));
    }

    .reg-table .btn-sm,
    .btn, .btn-group-sm>.btn, .btn-sm {
        padding: 0.25vw 0.5vw;
        border-radius: 0.4vw;
    }

    .home-about img {
        margin: -80px 0;
    }

    #home .registration {
        padding: calc(4vw*var(--sv)) 0;
    }
    #home .registration table {
        margin-bottom: calc(3.33vw*var(--sv));
    }
    #home .activities {
        margin: calc(2.5vw*var(--sv)) 0 calc(4vw*var(--sv));
    }

    div.history #banner {
        padding-top: 340px;
    }

    #home .reg-table h3.icon,
    .about #banner .story h3.icon,
    .lead,
    .h5, h5,
    #home .reg-table h4,
    .about #banner .story h3.icon {
        font-size: calc(1.667vw*var(--sv));
    }

    h3.icon a {
        padding: calc(.833vw*var(--sv)) 0;
        border-top: calc(.1vw*var(--sv)) solid #7d8560
    }

    .media .results h3.icon {
        font-size: calc(1.1667vw*var(--sv));
    }

    #home .reg-table h3.icon {
        padding: 1.33vw 2.33vw;
    }

    h3.icon + img,
    .page-info img,
    #home .reg-table img {
        width: 100%;
    }

    .about #banner h1 {
        font-size: calc(3.83vw*var(--sv));
    }

    .about .activity-info h3.termina,
    .dropdown-header,
    div.history .founder-info h3.termina, 
    .activities-facilities .activities-facilities-info h3.termina,
    #cb-about.about .story p {
        font-size: calc(1.5vw*var(--sv));
    }

    .dropdown-item, .dropdown-header {
        padding: calc(0.3vw*var(--sv)) calc(1.6vw*var(--sv));
    }

    #cb-about.about img.uncle-johnnie {
        margin: -10px 0 -50px;
    }
    .activities-facilities img.lake {
        margin: -10px 0 -70px;
    }
    .about .more-about-info {
        background-position: right center;
        background-size: contain
    }
    .about .more-about-info img {
        width: 100%;
    }

    #cb-about.about .about-summary p {
        font-size: calc(1.833vw*var(--sv));
    }

    div.history .founder-info h3.script {
        font-size: calc(3.5vw*var(--sv));
    }

    div.history .book-info {
        padding: 40px 0;
    }

    div.history .book-info h2 {
        font-size: 34px;
    }

    div.history .book-info h2 + p {
        font-size: calc(2.833vw*var(--sv));
    }

    div.history img.barakel-book {
        margin: -109px 0 -55px;
    }

    .bus-schedule-table th.bus-tues {
        min-width: 85px;
    }

    .bus-schedule-table th.bus-mon {
        min-width: 102px;
    }

    .activities {
        /* this negative margin undoes the padding of .body-content */
        margin-left: -2vw;
        margin-right: -2vw;
    }

    .activities h5 {
        font: calc(1.833vw*var(--sv))/ calc(2.333vw*var(--sv)) termina;
        margin-top: 40px;
    }

    .activities ul li {
        font-size: calc(2.16667vw*var(--sv));
    }

    .h2, h2 {
        font-size: calc(2.667vw*var(--sv));
    }

    .h3, h3 {
        font-size: calc(2.333vw*var(--sv));
    }
    .home-about h5 {
        font-size: calc(0.8vw*var(--sv));
    }

    .activities .row img {
        width: 22.5vw;
    }

    .reg-table h3.icon {
        font: calc(1.333vw*var(--sv)) termina;
        padding: calc(1.6667vw * var(--sv));
        margin: calc(-1.67vw*var(--sv)) calc(-1.67vw*var(--sv)) 1.3vw;
    }
    h3.icon {
        font: calc(1.0833vw*var(--sv))/calc(1.5vw*var(--sv)) termina;
        padding: calc(0.833vw * var(--sv)) 0;
    }
    h3.icon a.btn-outline-light {
        padding: calc(.417vw*var(--sv)) calc(.833vw*var(--sv));
        margin-top: calc(-.5vw*var(--sv));
    }
    h3.script {
        font-size: calc(2.2vw*var(--sv));
        margin-bottom: 0.8333vw;
    }
    .about .activity-info .script,
    .about .more-about-info .script, 
	.activities-facilities .activities-facilities-info .script {
        font-size: calc(3.75vw*var(--sv));
    }
    .about .activity-info,
    .about .more-about-info,
    div.history .founder-info,
    div.history .book-info {
        padding: 3.3vw 0;
    }
    p {
        margin-bottom: 1.3vw;
    }
    .directions iframe {
        height: 30vw;
    }
    .custom-select {
        height: calc(2.5vw * var(--sv));
    }
    .card-body {
        padding: calc(1vw*var(--sv));
    }
    .card {
        box-shadow: 0 0.2vw 0.2vw rgba(0, 0, 0, 0.2);
        border: 0.1vw solid rgba(0,0,0,.125);
        border-radius: 0.2vw;
    }
    .serve .top-border-fade ol, .serve .top-border-fade ul, .donate .modal ol {
        padding-left: calc(1.5vw*var(--sv));
    }
    .serve .top-border-fade ol li, .donate .modal ol li {
        padding-left: calc(.5vw*var(--sv));
    }
    .serve.adult .nav-tabs .nav-link {
        padding: calc(.5vw*var(--sv)) calc(1vw*var(--sv));
    }

    /* study serve page */
    .study-serve {
        font-size: calc(1.44vw*var(--sv));
    }
    .study-serve h2,
    .ss-subpoint > .ss-bg-cover {
        font-size: calc(3.889vw*var(--sv));
    }
    .ss-subpoint > .ss-bg-cover {
        padding: calc(1.3vw*var(--sv));
        min-height: calc(36vw*var(--sv));
    }
    .ss-header {
        font-size: calc(8.556vw*var(--sv));
    }
    .study-serve .strong-bigger strong {
        font-size: calc(2.44vw*var(--sv));
    }
}


/*	=6: Misc
=============================================== */

hr.green {
    border-top: 2px solid #7d8560;
}
hr.orange {
    border-top: 1px solid #ff931e;
}

acronym {
    font-size: 80%;
    text-transform: uppercase;
    letter-spacing: .045em;
    text-decoration: none;
}

/* Add pointer on hover */
.pointer:hover { cursor: pointer; }

audio {
    width: 100%;
    margin: 0 0 5px;
}
.kern-tight {
	letter-spacing: -0.15em;
}
.jumbotron {
    padding: 2rem;
}
.alert {
    padding: 25px;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.5);
    border-radius: 3px;
}

.alert *:last-child {
    margin-bottom: 0;
}

.alert-primary {
    color: #11688b;
    background-color: #d5e1ef;
    border-color: #b8c7da;
}

.alert-secondary {
    background: #ece7e0;
    border-color: #c2b8b5;
}

.alert-success {
    color: #2e3429;
    background-color: #d9dcd0;
    border-color: #b0b79c;
}

.alert h5 i {
    font-size: 85%;
    opacity: .7;
}

.alert hr {
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
}

.alert .text-muted {
    color: inherit !important;
    opacity: 0.6;
}

.account strong i {
    color: #333;
}

.cb-video-container {
	position: relative;
	padding-bottom: 56.25%;
	padding-top: 30px;
	height: 0;
	overflow: hidden;
}

.cb-video-container iframe, .cb-video-container object, .cb-video-container embed {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/* show content depending on whether collapse state
 * is collapsed or not for bootstrap's collapse button/a
 * elements.
 */
.show-collapsed, .show-not-collapsed {
    display: none;
}
[aria-expanded="true"] .show-not-collapsed,
[aria-expanded="false"] .show-collapsed {
    display: inline-block;
}

body.compensate-for-scrollbar{overflow:hidden}.fancybox-active{height:auto}.fancybox-is-hidden{left:-9999px;margin:0;position:absolute!important;top:-9999px;visibility:hidden}.fancybox-container{-webkit-backface-visibility:hidden;height:100%;left:0;outline:none;position:fixed;-webkit-tap-highlight-color:transparent;top:0;-ms-touch-action:manipulation;touch-action:manipulation;transform:translateZ(0);width:100%;z-index:99992}.fancybox-container *{box-sizing:border-box}.fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-stage{bottom:0;left:0;position:absolute;right:0;top:0}.fancybox-outer{-webkit-overflow-scrolling:touch;overflow-y:auto}.fancybox-bg{background:#111;opacity:0;transition-duration:inherit;transition-property:opacity;transition-timing-function:cubic-bezier(.47,0,.74,.71)}.fancybox-is-open .fancybox-bg{opacity:.9;transition-timing-function:cubic-bezier(.22,.61,.36,1)}.fancybox-caption,.fancybox-infobar,.fancybox-navigation .fancybox-button,.fancybox-toolbar{direction:ltr;opacity:0;position:absolute;transition:opacity .25s ease,visibility 0s ease .25s;visibility:hidden;z-index:99997}.fancybox-show-caption .fancybox-caption,.fancybox-show-infobar .fancybox-infobar,.fancybox-show-nav .fancybox-navigation .fancybox-button,.fancybox-show-toolbar .fancybox-toolbar{opacity:1;transition:opacity .25s ease 0s,visibility 0s ease 0s;visibility:visible}.fancybox-infobar{color:#ccc;font-size:13px;-webkit-font-smoothing:subpixel-antialiased;height:44px;left:0;line-height:44px;min-width:44px;mix-blend-mode:difference;padding:0 10px;pointer-events:none;top:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fancybox-toolbar{right:0;top:0}.fancybox-stage{direction:ltr;overflow:visible;transform:translateZ(0);z-index:99994}.fancybox-is-open .fancybox-stage{overflow:hidden}.fancybox-slide{-webkit-backface-visibility:hidden;display:none;height:100%;left:0;outline:none;overflow:auto;-webkit-overflow-scrolling:touch;padding:44px;position:absolute;text-align:center;top:0;transition-property:transform,opacity;white-space:normal;width:100%;z-index:99994}.fancybox-slide:before{content:"";display:inline-block;font-size:0;height:100%;vertical-align:middle;width:0}.fancybox-is-sliding .fancybox-slide,.fancybox-slide--current,.fancybox-slide--next,.fancybox-slide--previous{display:block}.fancybox-slide--image{overflow:hidden;padding:44px 0}.fancybox-slide--image:before{display:none}.fancybox-slide--html{padding:6px}.fancybox-content{background:#fff;display:inline-block;margin:0;max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch;padding:44px;position:relative;text-align:left;vertical-align:middle}.fancybox-slide--image .fancybox-content{animation-timing-function:cubic-bezier(.5,0,.14,1);-webkit-backface-visibility:hidden;background:transparent;box-shadow:0 0 30px rgba(0,0,0,0.7);background-repeat:no-repeat;background-size:100% 100%;left:0;max-width:none;overflow:visible;padding:0;position:absolute;top:0;transform-origin:top left;transition-property:transform,opacity;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:99995}.fancybox-can-zoomOut .fancybox-content{cursor:zoom-out}.fancybox-can-zoomIn .fancybox-content{cursor:zoom-in}.fancybox-can-pan .fancybox-content,.fancybox-can-swipe .fancybox-content{cursor:grab}.fancybox-is-grabbing .fancybox-content{cursor:grabbing}.fancybox-container [data-selectable=true]{cursor:text}.fancybox-image,.fancybox-spaceball{background:transparent;border:0;height:100%;left:0;margin:0;max-height:none;max-width:none;padding:0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.fancybox-spaceball{z-index:1}.fancybox-slide--iframe .fancybox-content,.fancybox-slide--map .fancybox-content,.fancybox-slide--pdf .fancybox-content,.fancybox-slide--video .fancybox-content{height:100%;overflow:visible;padding:0;width:100%}.fancybox-slide--video .fancybox-content{background:#000}.fancybox-slide--map .fancybox-content{background:#e5e3df}.fancybox-slide--iframe .fancybox-content{background:#fff}.fancybox-iframe,.fancybox-video{background:transparent;border:0;display:block;height:100%;margin:0;overflow:hidden;padding:0;width:100%}.fancybox-iframe{left:0;position:absolute;top:0}.fancybox-error{background:#fff;cursor:default;max-width:400px;padding:40px;width:100%}.fancybox-error p{color:#444;font-size:16px;line-height:20px;margin:0;padding:0}.fancybox-button{background:rgba(30,30,30,.6);border:0;border-radius:0;box-shadow:none;cursor:pointer;display:inline-block;height:44px;margin:0;padding:10px;position:relative;transition:color .2s;vertical-align:top;visibility:inherit;width:44px}.fancybox-button,.fancybox-button:link,.fancybox-button:visited{color:#ccc}.fancybox-button:hover{color:#ff961e}.fancybox-button:focus{outline:none}.fancybox-button.fancybox-focus{outline:1px dotted}.fancybox-button[disabled],.fancybox-button[disabled]:hover{color:#888;cursor:default;outline:none}.fancybox-button div{height:100%}.fancybox-button svg{display:block;height:100%;overflow:visible;position:relative;width:100%}.fancybox-button svg path{fill:currentColor;stroke-width:0}.fancybox-button--fsenter svg:nth-child(2),.fancybox-button--fsexit svg:first-child,.fancybox-button--pause svg:first-child,.fancybox-button--play svg:nth-child(2){display:none}.fancybox-progress{background:#ff961e;height:2px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transform-origin:0;transition-property:transform;transition-timing-function:linear;z-index:99998}.fancybox-close-small{background:transparent;border:0;border-radius:0;color:#ccc;cursor:pointer;opacity:.8;padding:8px;position:absolute;right:-12px;top:-44px;z-index:401}.fancybox-close-small:hover{color:#fff;opacity:1}.fancybox-slide--html .fancybox-close-small{color:currentColor;padding:10px;right:0;top:0}.fancybox-slide--image.fancybox-is-scaling .fancybox-content{overflow:hidden}.fancybox-is-scaling .fancybox-close-small,.fancybox-is-zoomable.fancybox-can-pan .fancybox-close-small{display:none}.fancybox-navigation .fancybox-button{background-clip:content-box;height:100px;opacity:0;position:absolute;top:calc(50% - 50px);width:80px}.fancybox-navigation .fancybox-button div{padding:7px}.fancybox-navigation .fancybox-button--arrow_left{left:0;left:env(safe-area-inset-left);padding:20px 26px 20px 0}.fancybox-navigation .fancybox-button--arrow_right{padding:20px 0 20px 26px;right:0;right:env(safe-area-inset-right)}.fancybox-caption{background:linear-gradient(0deg,rgba(0,0,0,.85) 0,rgba(0,0,0,.3) 50%,rgba(0,0,0,.15) 65%,rgba(0,0,0,.075) 75.5%,rgba(0,0,0,.037) 82.85%,rgba(0,0,0,.019) 88%,transparent);bottom:0;color:#eee;font-size:14px;font-weight:400;left:0;line-height:1.5;padding:75px 44px 25px;pointer-events:none;right:0;text-align:center;z-index:99996}@supports (padding:max(0px)){.fancybox-caption{padding:75px max(44px,env(safe-area-inset-right)) max(25px,env(safe-area-inset-bottom)) max(44px,env(safe-area-inset-left))}}.fancybox-caption--separate{margin-top:-50px}.fancybox-caption__body{max-height:50vh;overflow:auto;pointer-events:all}.fancybox-caption a,.fancybox-caption a:link,.fancybox-caption a:visited{color:#ccc;text-decoration:none}.fancybox-caption a:hover{color:#fff;text-decoration:underline}.fancybox-loading{animation:a 1s linear infinite;background:transparent;border:4px solid #888;border-bottom-color:#fff;border-radius:50%;height:50px;left:50%;margin:-25px 0 0 -25px;opacity:.7;padding:0;position:absolute;top:50%;width:50px;z-index:99999}@keyframes a{to{transform:rotate(1turn)}}.fancybox-animated{transition-timing-function:cubic-bezier(0,0,.25,1)}.fancybox-fx-slide.fancybox-slide--previous{opacity:0;transform:translate3d(-100%,0,0)}.fancybox-fx-slide.fancybox-slide--next{opacity:0;transform:translate3d(100%,0,0)}.fancybox-fx-slide.fancybox-slide--current{opacity:1;transform:translateZ(0)}.fancybox-fx-fade.fancybox-slide--next,.fancybox-fx-fade.fancybox-slide--previous{opacity:0;transition-timing-function:cubic-bezier(.19,1,.22,1)}.fancybox-fx-fade.fancybox-slide--current{opacity:1}.fancybox-fx-zoom-in-out.fancybox-slide--previous{opacity:0;transform:scale3d(1.5,1.5,1.5)}.fancybox-fx-zoom-in-out.fancybox-slide--next{opacity:0;transform:scale3d(.5,.5,.5)}.fancybox-fx-zoom-in-out.fancybox-slide--current{opacity:1;transform:scaleX(1)}.fancybox-fx-rotate.fancybox-slide--previous{opacity:0;transform:rotate(-1turn)}.fancybox-fx-rotate.fancybox-slide--next{opacity:0;transform:rotate(1turn)}.fancybox-fx-rotate.fancybox-slide--current{opacity:1;transform:rotate(0deg)}.fancybox-fx-circular.fancybox-slide--previous{opacity:0;transform:scale3d(0,0,0) translate3d(-100%,0,0)}.fancybox-fx-circular.fancybox-slide--next{opacity:0;transform:scale3d(0,0,0) translate3d(100%,0,0)}.fancybox-fx-circular.fancybox-slide--current{opacity:1;transform:scaleX(1) translateZ(0)}.fancybox-fx-tube.fancybox-slide--previous{transform:translate3d(-100%,0,0) scale(.1) skew(-10deg)}.fancybox-fx-tube.fancybox-slide--next{transform:translate3d(100%,0,0) scale(.1) skew(10deg)}.fancybox-fx-tube.fancybox-slide--current{transform:translateZ(0) scale(1)}@media (max-height:576px){.fancybox-slide{padding-left:6px;padding-right:6px}.fancybox-slide--image{padding:6px 0}.fancybox-close-small{right:-6px}.fancybox-slide--image .fancybox-close-small{background:#4e4e4e;color:#f2f4f6;height:36px;opacity:1;padding:6px;right:0;top:0;width:36px}.fancybox-caption{padding-left:12px;padding-right:12px}@supports (padding:max(0px)){.fancybox-caption{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}}.fancybox-share{background:#f4f4f4;border-radius:3px;max-width:90%;padding:30px;text-align:center}.fancybox-share h1{color:#222;font-size:35px;font-weight:700;margin:0 0 20px}.fancybox-share p{margin:0;padding:0}.fancybox-share__button{border:0;border-radius:3px;display:inline-block;font-size:14px;font-weight:700;line-height:40px;margin:0 5px 10px;min-width:130px;padding:0 15px;text-decoration:none;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.fancybox-share__button:link,.fancybox-share__button:visited{color:#fff}.fancybox-share__button:hover{text-decoration:none}.fancybox-share__button--fb{background:#3b5998}.fancybox-share__button--fb:hover{background:#344e86}.fancybox-share__button--pt{background:#bd081d}.fancybox-share__button--pt:hover{background:#aa0719}.fancybox-share__button--tw{background:#1da1f2}.fancybox-share__button--tw:hover{background:#0d95e8}.fancybox-share__button svg{height:25px;margin-right:7px;position:relative;top:-1px;vertical-align:middle;width:25px}.fancybox-share__button svg path{fill:#fff}.fancybox-share__input{background:transparent;border:0;border-bottom:1px solid #d7d7d7;border-radius:0;color:#5d5b5b;font-size:14px;margin:10px 0 0;outline:none;padding:10px 15px;width:100%}.fancybox-thumbs{background:rgba(255,255,255,0.1);bottom:0;border-left:1px solid #444;display:none;margin:0;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;padding:2px 2px 4px;position:absolute;right:0;-webkit-tap-highlight-color:rgba(0,0,0,0);top:0;width:212px;z-index:99995}.fancybox-thumbs-x{overflow-x:auto;overflow-y:hidden}.fancybox-show-thumbs .fancybox-thumbs{display:block}.fancybox-show-thumbs .fancybox-inner{right:212px}.fancybox-thumbs__list{font-size:0;height:100%;list-style:none;margin:0;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;position:relative;white-space:nowrap;width:100%}.fancybox-thumbs-x .fancybox-thumbs__list{overflow:hidden}.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar{width:7px}.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-track{background:#fff;border-radius:10px;box-shadow:inset 0 0 6px rgba(0,0,0,.3)}.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-thumb{background:#2a2a2a;border-radius:10px}.fancybox-thumbs__list a{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:rgba(0,0,0,.1);background-position:50%;background-repeat:no-repeat;background-size:cover;cursor:pointer;float:left;height:75px;margin:2px;max-height:calc(100% - 8px);max-width:calc(50% - 4px);outline:none;overflow:hidden;padding:0;position:relative;-webkit-tap-highlight-color:transparent;width:100px}.fancybox-thumbs__list a:before{border:3px solid #ff961e;bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:all .2s cubic-bezier(.25,.46,.45,.94);z-index:99991}.fancybox-thumbs__list a:focus:before{opacity:.5}.fancybox-thumbs__list a.fancybox-thumbs-active:before{opacity:1}@media (max-width:576px){.fancybox-thumbs{width:110px}.fancybox-show-thumbs .fancybox-inner{right:110px}.fancybox-thumbs__list a{max-width:calc(100% - 10px)}}</style></head><body>
    <header>
        <nav class="navbar navbar-expand-lg navbar-dark fixed-top bg-dark">
            <div class="container"> <a class="navbar-brand" href="/home"><img id="logo-blockhouse" src="https://www.lvalive.com/cf/19/images/img_blockhouse_logo_green.png" alt="Camp Barakel Blockhouse"><span class="logo-camp">Camp</span> Barakel <span class="tagline">Where God Has Blessed<span class="est-date"> • Est. 1942</span></span></a>
                <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button>
                <div class="collapse navbar-collapse" id="navbarCollapse">
                    <ul class="navbar-nav mr-auto">
                        <li class="nav-item dropdown"><a class="nav-link dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href="#">About</a>
                            <ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
                                <li><a class="dropdown-item" href="/about-barakel">About Barakel</a></li>
                                <li><a class="dropdown-item" href="/about-our-staff">About our Staff</a></li>
                                <li><a class="dropdown-item" href="/activities-facilities">Activities &amp; Facilities</a></li>
                                <li><a class="dropdown-item" href="/events">Schedule of Events</a></li>
                                <li><a class="dropdown-item" href="/directions">Directions</a></li>
                                <li><a class="dropdown-item" href="/events/summer-bus-schedule">Summer Bus Schedule</a></li>
                            </ul>
                        </li>
                        <li class="nav-item dropdown"><a class="nav-link dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href="#">Camps</a>
                            <ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
                                <h6 class="dropdown-header">Summer</h6>
                                <li><a class="dropdown-item d-none" href="/events/summer-explorer">Explorer</a> </li>
                                <li><a class="dropdown-item" href="/events/summer-junior">Junior</a> </li>
                                <li><a class="dropdown-item" href="/events/summer-ms">Middle School</a> </li>
                                <li><a class="dropdown-item" href="/events/summer-jr-high">Jr. High</a> </li>
                                <li><a class="dropdown-item" href="/events/summer-high-school">Sr. High</a> </li>
                                <li class="d-none"><a class="dropdown-item" href="/events/summer-his-ability">HIS-ability</a> </li>
                                <div class="dropdown-divider"></div>
                                <li><a class="dropdown-item" href="/events/family-camps">Family Camp</a></li>
                                <div class="dropdown-divider d-none"></div>
                                <li><a class="dropdown-item d-none" href="/events/bible-immersion">Bible Immersion Week</a></li>
                            </ul>
                        </li>
                        <li class="nav-item dropdown"><a class="nav-link dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href="#">Retreats</a>
                            <ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
  								<h6 class="dropdown-header">Fall, Winter, &amp; Spring</h6>
                                <li><a class="dropdown-item" href="/events/winter-teen">Teen</a></li>
                                <li><a class="dropdown-item" href="/events/retreat-adult">Adult</a></li>
                                <li><a class="dropdown-item" href="/events/retreat-parent-child">Parent &amp; Child</a></li>
                            </ul>
                        </li>
                        <li class="nav-item dropdown"><a class="nav-link dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href="#">Serve</a>
                            <ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
                                <li><a class="dropdown-item" href="/staff/high-school-staff">High School Volunteers</a></li>
                                <li><a class="dropdown-item" href="/staff/adult-volunteers">Adult Volunteers</a></li>
                                <li><a class="dropdown-item" href="/resident-missionary-staff">Resident Missionary Staff</a></li>
                                <li><a class="dropdown-item" href="/prayer">Pray for Us</a></li>
                                <li><a class="dropdown-item" href="/donate">Donate</a></li>
                                <div class="dropdown-divider d-none"></div>
                                <li><a class="dropdown-item d-none" href="/staff/study-serve">Study and Serve</a></li>
                                <li><a class="dropdown-item d-none" href="/events/bible-immersion">Bible Immersion Week</a></li>
                            </ul>
                        </li>
                        <li class="nav-item dropdown"><a class="nav-link dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href="#">Media</a>
                            <ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
                                <li><a class="dropdown-item" href="/photos-videos">Photos &amp; Videos</a></li>
                                <li><a class="dropdown-item" href="/chapel-messages">Chapel Messages</a></li>
                                <li><a class="dropdown-item" href="/song-list">Chapel Songs</a></li>
                            </ul>
                        </li>
                        <li class="nav-item"> <a class="nav-link" href="/contact">Contact</a> </li>
                        <li class="nav-item"> <a class="nav-link" 
                            href="/register" id="login-nav-link"
                            title="Register for Camp Barakel events">Log In</a>
                        </li>
                    </ul>
                    <div class="navbar-nav ml-auto social-links">
                        <a class="nav-link" href="https://www.facebook.com/CampBarakel" target="_blank" title="Visit our Facebook page"><i class="fab fa-facebook"></i></a> 
                        <a class="nav-link" href="https://www.instagram.com/campbarakel" target="_blank" title="Visit us on Instagram"><i class="fab fa-instagram"></i></a> 
                    </div>
                </div>
            </div>
        </nav>
    </header>
    <main role="main">
        <div id="cb-page-content-container">
<div id="home">
<div id="myCarousel" class="carousel slide carousel-fade" data-ride="carousel">
    <ol class="carousel-indicators">
        <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
        <li data-target="#myCarousel" data-slide-to="1"></li>
        <li data-target="#myCarousel" data-slide-to="2"></li>
        <li data-target="#myCarousel" data-slide-to="3"></li>
    </ol>
    <div class="carousel-inner">
        <div class="carousel-item active" style="background-color: #648B9E"> 
            <img 
                src="https://www.lvalive.com/cf/19/images/img_banner_summercamp_2020_notext-50.jpg"
                srcset="https://www.lvalive.com/cf/19/images/img_banner_summercamp_2020_notext-50.jpg 1800w,
                https://www.lvalive.com/cf/19/images/img_banner_summercamp_2020_notext-1200-60.jpg 1200w,
                https://www.lvalive.com/cf/19/images/img_banner_summercamp_2020_notext-900-60.jpg 900w"
                alt="Summer Camp at Camp Barakel">
            <div class="container">
                <div class="carousel-caption text-left">
                    <div class="container">
                        <h1>Camp Barakel<BR>
                             <span class="predication">Summer Camp</span></h1>
                             <p class="d-none d-md-block">
                                <a class="btn btn-lg btn-primary" href="/events"
                                    role="button">Full Schedule
                                <i class="fas fa-chevron-circle-right"></i></a></p>
                    </div>
                </div>
            </div>
        </div>
        <div class="carousel-item grass-green"> 
            <picture>
                <source class="bph-img" srcset="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=">
                <img class="second-slide"
                    src="/19/images/img_banner_summer_fun-c30.jpg"
                    srcset="/19/images/img_banner_summer_fun-c30.jpg 1800w,
                        /19/images/img_banner_summer_fun-900-c45.jpg 900w"
                    alt="Swimmers at Shear Lake, Camp Barakel">
            </picture>

            <div class="container">
                <div class="carousel-caption text-right">
                    <div class="container">
                        <h1>Barakel is <span class="predication">Summer Fun!</span></h1>
                        <p><a class="btn btn-lg btn-primary" href="/photos-videos" role="button">View Camp Photos <i class="fas fa-chevron-circle-right"></i></a></p>
                    </div>
                </div>
            </div>
        </div>
        <div class="carousel-item">
            <picture>
                <img 
                    src="https://www.lvalive.com/cf/19/images/img_banner_staff_ambush-c40.jpg"
                    srcset="https://www.lvalive.com/cf/19/images/img_banner_staff_ambush-c40.jpg 1800w,
                        https://www.lvalive.com/cf/19/images/img_banner_staff_ambush-900-c60.jpg 900w"
                    alt="Ambush">
            </picture>
            <div class="container">
                <div class="carousel-caption text-right">
                    <div class="container">
                        <h1>Barakel is <span class="predication">Serving God</span></h1>
                        <p><a class="btn btn-lg btn-primary" href="/staff/adult-volunteers" role="button">Serve at Camp <i class="fas fa-chevron-circle-right"></i></a></p>
                    </div>
                </div>
            </div>
        </div>
        <div class="carousel-item">
            <picture>
                <source class="bph-img" srcset="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=">
                <source type="image/avif" srcset="/19/images/img_banner_bible-20-45.avif 1752w">
                <img class="align-middle" 
                    src="/19/images/img_banner_bible-cjpeg80.jpg"
                    srcset="/19/images/img_banner_bible-cjpeg80.jpg 1752w,
                    /19/images/img_banner_bible-800.jpg 800w"
                    alt="An open Bible in the Chapel at Camp Barakel">
            </picture>
            <div class="container">
                <div class="carousel-caption text-left">
                    <div class="container">
                        <h1>Barakel is <span class="predication">Where Truth Abounds</span></h1>
                        <p><a class="btn btn-lg btn-primary" href="/chapel-messages" role="button">Listen to Chapel Messages <i class="fas fa-chevron-circle-right"></i></a></p>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- About section -->
<div class="home-about">
    <div class="container">
        <div class="row">
            <div class="col-md-8">
                <h5>About Us</h5>
                <h1>Barakel is a year-round, Christ-centered camp in northeast Michigan. 
                    <a class="btn btn-outline-secondary" href="/about-barakel" role="button" title="Learn more about what makes Barakel unique">About Barakel <i class="fas fa-angle-right"></i></a></h1>
            </div>
            <div class="col-md-4"> 
                <picture>
                    <source srcset="https://www.lvalive.com/cf/19/images/img_blockhouse_summer.webp" type="image/webp">
                    <img src="https://www.lvalive.com/cf/19/images/img_blockhouse_summer.png"
                        class="img-fluid" alt="The Barakel blockhouse">
                </picture>
            </div>
        </div>
    </div>
</div>


<!-- start registration etc. -->
<div class="container">
    <div class="row registration">
        <div class="col-lg-9">
            <div class="reg-table">
                <h3 class="icon"><i class="fas fa-calendar-alt"></i> Scheduled Events</h3>
                <div class="row">

                    <div class="col-lg-6">
                        <h4>Spring Retreats <span class="open" data-season="spring">
                            <!-- • 
                            <span class="op-count">0</span> Openings</span> -->
                        </h4>
                        <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="
                            data-src="/19/images/img_spring_small-cjpeg.jpg" 
                            class="io-lazy img-fluid" alt="Spring at Camp Barakel">
                        <table class="registration-table spring">
                            <tr>
                                <th>Retreat</th>
                                <th>Weekend</th>
                                <th class="d-none">Open<span class="d-none d-sm-inline">ings</span></th>
                            </tr>
                        </table>
                    </div>
                    <div class="col-lg-6">
                        <h4>Summer Camps <span class="open" data-season="summer">
                            <!-- •
                            <span class="op-count">0</span> Openings</span> -->
                        </h4>
                        <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="
                            data-src="/19/images/img_summer_small.jpg" class="io-lazy img-fluid"
                            alt="Summer camp photo from Barakel">
                        <table class="registration-table summer">
                            <tr>
                                <th>Camp</th>
                                <th>Week</th>
                                <th class="d-none">Open<span class="d-none d-sm-inline">ings</span></th>
                            </tr>
                        </table>
                    </div>

                    <div class="col-lg-6 d-none">
                        <h4>Fall Retreats <span class="open" data-season="fall">•
                            <span class="op-count">0</span> Openings</span></h4>
                        <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="
                            data-src="/19/images/img_fall_small.jpg" class="io-lazy img-fluid" 
                            alt="Boats by Shear Lake in the fall at Camp Barakel">
                        <table class="registration-table fall">
                            <tr>
                                <th>Retreat</th>
                                <th>Weekend</th>
                                <th>Open<span class="d-none d-sm-inline">ings</span></th>
                            </tr>
                        </table>
                    </div>

                    <div class="col-lg-6 d-none">
                        <h4>Winter Retreats <span class="open" data-season="winter">
                            <!-- • 
                            <span class="op-count">0</span> Openings</span> -->
                        </h4>
                        <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="
                            data-src="/19/images/img_winter_small_alt.jpg"
                            class="io-lazy img-fluid" alt="Winter at Camp Barakel">
                        <table class="registration-table winter">
                            <tr>
                                <th>Retreat</th>
                                <th>Weekend</th>
                                <th>Open<span class="d-none d-sm-inline">ings</span></th>
                            </tr>
                        </table>
                    </div>

                </div>
                <div class="row info">
                    <div class="col-sm-6 col-lg-8">
                        <p>You can register online for all events except Family Camp. </p>
                    </div>
                    <div class="col-sm-6 col-lg-4"><a href="/events" class="btn btn-primary btn-block" title="View our full schedule">View Full Schedule <i class="fas fa-angle-right"></i></a></div>
                </div>
            </div>
        </div>
        <div class="col-lg-3 current-info">
            <!-- Camper Mail; SUMMER ONLY -->
            <div class="alert alert-success mb-4 d-none home-camper-mail" role="alert">
                <h5><i class="fas fa-paper-plane"></i> Camper Mail</h5>
                <hr>
                <p>Send a note to your camper!</p>
                <a class="btn btn-primary btn-sm" href="/camper-mail" role="button" 
                    title="Send your camper mail at Barakel!">Send Message
                    <i class="fas fa-angle-right"></i></a>
            </div>

            <div style="margin-bottom:8px">
            <a href="/photos-videos#/2025-Summer/">
                <div class="p-3" style="background-color: #f8f8f8">
                <h3><i class="fas fa-camera"></i> Campshots</h3>
                <p style="margin-bottom:0">Photos from Summer Camp 2025.</p>
                </div>
            </a>
            </div>
            <div class="home-current-info-common d-none"></div>
        </div>
    </div>
</div>


<!-- actitivies section -->
<div class="activities summer"
    data-include="actKayaking actZipline actHandcrafts actAmbush
    actBlob actFishing actBiking actRiflery actThunderExpress
    actCanoeing actCampout actArchery actSwimming">
    <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="
        data-src="/19/images/img_activities_summer_home_.png">
</div>

<!-- start video etc section -->
<div class="container">
    <div class="row video">
        <div class="col-md-8">
            <h3 class="icon link"><a href="https://vimeo.com/campbarakel" target="_blank" 
                title="View more videos"><i class="fas fa-video"></i> Recent Video</a></h3>
            <div class="d-none" data-comment="old summer camp announcement" data-vnum="419680178"></div>
            <div class="video-frame vimeo-lazy" data-vnum="1095289315"></div>

        </div>
        <div class="col-md-4">
            <div class="home-news">
                <h3 class="icon link"><a href="/news" title="Read more news about Camp Barakel"><i class="far fa-newspaper"></i> News</a></h3>
                <div></div>
            </div>
            <div class="home-weather">
                <h3 class="icon link"><a href="#" title="View full forecast" target="_blank"><i class="fas fa-sun"></i> Current Weather</a></h3>
                <!-- WeatherWidget.io code -->
                <a class="weatherwidget-io" href="https://forecast7.com/en/44d73n84d05/fairview/?unit=us" data-label_1="Fairview, MI" data-label_2="Current Conditions" data-font="Roboto" data-icons="Climacons Animated" data-mode="Current" data-days="3" data-theme="pure" data-basecolor="" data-highcolor="#990000" data-lowcolor="#006e99" data-suncolor="#ff931e" data-raincolor="#006e99">Fairview, MI Current Conditions</a>
            </div>
        </div>
    </div>
</div>
</div>
        </div>

        <!-- FOOTER -->
        <footer>
            <div class="container">
                <div class="row">
                    <div class="col-lg-2 col-md-4 col-6">
                        <h5>About</h5>
                        <ul class="list-unstyled text-small">
                            <li><a class="text-muted" href="/about-barakel">About Barakel</a></li>
                            <li><a class="text-muted" href="/about-our-staff">About our Staff</a></li>
                            <li><a class="text-muted" href="/activities-facilities">Activities &amp; Facilities</a></li>
                            <li><a class="text-muted" href="/directions">Directions</a></li>
                            <li><a class="text-muted" href="/2020-maintenance-shop-fire">2020 Fire</a></li>
                        </ul>
                    </div>
                    <div class="col-lg-2 col-md-4 col-6">
                        <h5>Camps</h5>
                        <ul class="list-unstyled text-small">
                            <li><a class="text-muted d-none" href="/events/summer-explorer">Explorer</a></li>
                            <li><a class="text-muted" href="/events/summer-junior">Junior</a> • <a class="text-muted" href="/events/summer-ms">Middle School</a></li>
                            <li><a class="text-muted" href="/events/summer-jr-high">Jr.&nbsp;High</a> • <a class="text-muted" href="/events/summer-high-school">Sr.&nbsp;High</a></li>
                            <li class="d-none"><a class="text-muted" href="/events/summer-his-ability">HIS-ability</a></li>
                            <li><a class="text-muted" href="/events/family-camps">Family Camp</a></li>
                        </ul>
                    </div>
                    <div class="col-lg-2 col-md-4 col-6">
                        <h5>Retreats</h5>
                        <ul class="list-unstyled text-small">
                            <li><a class="text-muted" href="/events/winter-teen">Teen</a></li>
                            <li><a class="text-muted" href="/events/retreat-adult">Adult</a></li>
                            <li><a class="text-muted" href="/events/retreat-parent-child">Parent &amp; Child</a></li>
                        </ul>
                    </div>
                    <div class="col-lg-2 col-md-4 col-6">
                        <h5>Serve</h5>
                        <ul class="list-unstyled text-small">
                            <li><a class="text-muted" href="/staff/high-school-staff">High School <span class="d-none d-sm-inline">Volunteers</span></a></li>
                            <li><a class="text-muted" href="/staff/adult-volunteers">Adult <span class="d-none d-sm-inline">Volunteers</span></a></li>
                            <li><a class="text-muted" href="/resident-missionary-staff">Resident <span class="d-none d-sm-inline">Missionary Staff</span></a></li>
                            <li><a class="text-muted d-none" href="/staff/study-serve">Study and Serve</a></li>
                            <li><a class="text-muted" href="/prayer">Pray for Us</a></li>
                            <li><a class="text-muted" href="/donate">Donate</a></li>
                        </ul>
                    </div>
                    <div class="col-lg-2 col-md-4 col-6">
                        <h5>Media</h5>
                        <ul class="list-unstyled text-small">
                            <li><a class="text-muted" href="/photos-videos">Photos &amp; Videos</a></li>
                            <li><a class="text-muted" href="/chapel-messages">Chapel Messages</a></li>
                            <li><a class="text-muted" href="/song-list">Chapel Songs</a></li>
                            <li><a class="text-muted" href="/2020-review">2020 Review</a></li>
                        </ul>
                    </div>
                    <div class="col-lg-2 col-md-4 col-6">
                        <h5><a href="/contact" title="Contact Camp Barakel">Contact Us</a></h5>
                        <ul class="list-unstyled text-small">
                            <li><a class="text-muted" href="/camper-mail">Camper Mail</a></li>
                            <li class="text-muted phone">Phone: <span>989-848-2279</span></li>
                            <li class="text-muted">Fax: <span>989-848-2280</span></li>
                            <li><a class="text-muted email" href="mailto:info@campbarakel.org">info@campbarakel.org</a></li>
                        </ul>
                    </div>
                </div>

            </div>
        </footer>
        <div id="copyright">
            <div class="container">
                <small class="text-muted">© <span id="copyright-year">20xx</span> Camp Barakel  &nbsp;|&nbsp; <a href="/sitemap"
                    title="View our sitemap">Sitemap</a></small>
            </div>
        </div>
    </main>
</body>
<script src='https://www.lvalive.com/cf/19/dist/js/bjs.js'></script><script>// return col (collection, like NodeList) as an Array.
function nar(col) { return Array.from(col); };
function ge(id) { return document.getElementById(id); };
function qsaa(q) { return nar(document.querySelectorAll(q)); };
function qs(q) { return document.querySelector(q); };


function dbGET(url, cb) {
    fetch(url,
        { method: 'get'})
    .then(r => r.text())
    .then(function(d) {
        if (cb) {
            cb(d);
        }
    })
}

function dbGETJSON(url, cb) {
    dbGET(url, function(d) {
        let j;
        try {
            j = JSON.parse(d);
        } catch(e) {
            console.log('dbGETJSON JSON.parse failure: ' + e.message +
                    '\n' + d);
            return; // no callback
        }
        if (cb) {
            cb(j);
        }
    })
}

// return true iff this camp event is already over.
function eventIsCompleted(e) {
    return dateDiffDays(cb_spa.currentDate, e.end_date) < 1;
}

// shortened name for displaying Camp Event names.
function shortenedName(e) {
    let name = e.name.replace(/(Spring|Fall|Winter) /, '');
    name = name.replace(/ #\d/, '');
    return name.replace(/ *Retreat/, '');
}
const MonthList = [ 'Jan', 'Feb', 'Mar',
                    'Apr', 'May', 'Jun',
                    'Jul', 'Aug', 'Sep',
                    'Oct', 'Nov', 'Dec'
                ];
function evDateRange(ds, de, bIncludeYear)
{
    // we use the .getUTCxxx functions here because the javascript date
    // objects are parsed in UTC timezone (by default).  it makes it
    // easier to just work with everything in UTC.
    let strBegin = MonthList[ds.getUTCMonth()] + "&nbsp;" + ds.getUTCDate();
    let strEnd = '-' + de.getUTCDate();
    if (ds.getUTCMonth() != de.getUTCMonth()){
        strEnd = " - " + MonthList[de.getUTCMonth()] + "&nbsp;" + de.getUTCDate();
    }
    let rv = strBegin;
    if (ds.getUTCDate() != de.getUTCDate())
    {
        rv += strEnd;
    }
    if (bIncludeYear)
    {
        rv += ", " + de.getUTCFullYear();
    }
    return rv;
}
// create javascript Date object
// from JSON date string.
function zdt(d) {
    return new Date(d + 'Z');
}
// return string for event date. e is event Object.
function eventDate(e, bIncludeYear) {
    return evDateRange(
        zdt(e.start_date),
        zdt(e.end_date), bIncludeYear);
}

function dateDiffMinutes(d1, d2) {
    function decode(d) {
        if (d instanceof Date) {
            return d.getTime();
        }
        if (typeof d == "string") {
            return zdt(d);
        }
        return d;
    }
    return Math.round((decode(d2) - decode(d1))/60000);
}

function updateLoginLink() {
    function getCookieValue(a) {
	    let b = document.cookie.match('(^|;)\\s*' + a + '\\s*=\\s*([^;]+)');
	    return b ? b.pop() : '';
	}
    let ll = ge('login-nav-link');
    if (ll) {
        ll.innerHTML = getCookieValue('EMAIL') ? 'Register' : 'Log In';
    }
}
    
function dateDiffDays(d1, d2) {
    return dateDiffMinutes(d1, d2) / 1440;
}

// save one value to the server
// v1[0] - table name.
// v1[1] - field name
// v1[2] - "s" - string, "n" - number.
// v1[3] - new value.
// v1[4] - where clause
function saveOneVal(v1, cb) {
    updateDB( {
        cmd: 'set',
        d: JSON.stringify(v1)
    }, function(d) {
        if ('OK' != d) {
            console.log('Error:<BR> ' + d);
            return;
        }
        if (cb) {
            cb();
        }
    })
}

function htmlEscape(str) {
    return str
	    .replace(/&/g, '&amp;')
        .replace(/</g, '&lt;');
}

// send data 'd' to server and call callback with results.
function updateDB(d, cb, ecb) {
    let xhr = new XMLHttpRequest();
    xhr.open('POST', '/ne/nejson.aspx', true);
    xhr.onreadystatechange = function () {
        //ready?
        if (xhr.readyState != 4)
            return false;

        //maybe not successful?
        if (xhr.status != 200) {
            if (ecb) { ecb(xhr); }
            return false;
        }

        //Got result. All is well.
        if (cb) { cb(xhr.responseText); }
        return true;
    }
    let fd = new FormData();
    for (let i in d) {
		// escape the values to get rid of '<'
		// characters which the server doesn't like.
        fd.append(i, htmlEscape(d[i]));
    }
    xhr.send(fd);
}

// scroll element e into view
// (if supported by browser)
function siv(e, bl) {
    bl = bl || 'center';
    if (e && e.scrollIntoView) {
        e.scrollIntoView({behavior: 'smooth', block: bl, inline: 'center'});
    }
}/*global FB:true, twttr:true, nar:true, ge:true,
 qsaa:true, dbGETJSON:true, dbGET:true,
 eventDate:true, shortenedName:true,
 eventIsCompleted:true, dateDiffDays:true,
 updateLoginLink:true,
 qs:true,zdt:true, evDateRange:true, ga:true, siv:true,
 htmlEscape:true
*/

var cb_spa = {
    currentPage: '',
    gaPage: false,
    schedUpdate: false,
    schedUpdateQueue: [],
    currentDate: new Date(),
    act_io: false,      // activities images intersection observer
    lazy_img_io: false, // generic IntersectionObserver - .lazy-img
    lazy_vimeo_io: false, // vimeo lazy load
}

// Opening dates for registrations
const seasonOpenDates = {
    summer: 'February 7 @ 8am',
    //hisability: 'December 7',
    fall : 'July 15 @ 8am',
    //winterTeen: 'September 17',
    //winterTeen: 'We are not hosting Winter Retreats in 2026.<BR>For more information please contact our Registrar at <a href="mailto:registrar@campbarakel.org">registrar@campbarakel.org</a>',
    //winter: 'We are not hosting Winter Retreats in 2026.<BR>For more information please contact our Registrar at <a href="mailto:registrar@campbarakel.org">registrar@campbarakel.org</a>',
    spring: 'December 5 @ 8:00am',
    family: 'December 5 @ 8:00am'
}

// main function for SPA.
function cb_spa_main() {
    const staffSummaryURL = addCBabsoluteurl('/cr/sched_update.aspx?dt=staff');
    const blankImage = "data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=";
    const CamperMailDisabled = Date.now() < (new Date(2026,4,14)).getTime() ||
                                Date.now() > (new Date(2026,7,15)).getTime();
    let pages = {
        'hometst': {
            f: function () {
                pages.home.f();

                let ha = qs('div.home-about');
                if (ha) {
                    ha.insertAdjacentHTML('afterbegin',
                        `<div class="container">
                        <div class="row">
                        <div class="col">
                        <div class="d-inline-block p-3"
                            style="border: 2px solid #ff931e;margin-bottom:30px;
                                background-color: #fff">
                        <h2><i class="fas fa-newspaper"></i> NEWS FLASH HEADLINE</h2>
                        <p class="lead">Important news brief here with link
                            to <a href="/news">news</a> page </p>
                        </div>
                        </div>
                        </div>
                        </div>`
                    );
                }
            },
            p: 'home-winter'
        },
        'home': {
            f: function home_fn() {

                // if campermail is not disabled then show
                // the campermail section.
                if (!CamperMailDisabled) {
                    let cmdiv = qs('.home-camper-mail');
                    if (cmdiv) {
                        cmdiv.classList.remove('d-none');
                    }
                }

                // render home page news on home page.
                // just one article.
                // we'll also take care of the special announcement blurb
                // if there is one.
                function renderNews(j) {
                    let n = j.find(n => n.showHome && n.ATYPE == 1);
                    let d = qs('.home-news > div');
                    if (d && n && n.brief) {
                        d.innerHTML = n.brief;
                    }

                    // now look for special announcement blurb
                    let ha = qs('div.home-about');
                    n = j.find(n => n.showHome && n.ATYPE == 4);
                    if (ha && n && n.brief) {
                        // there is a special announcement so render it.
                        let saheader = n.title ? n.title : 'Announcement';
                        ha.insertAdjacentHTML('afterbegin',
                            `<div class="container">
                            <div class="row">
                            <div class="col-md-9">
                            <div class="d-inline-block p-3"
                                style="border: 2px solid #ff931e;margin-bottom:30px;
                                    background-color: #fff;z-index:1;position:relative;
                                    overflow-wrap:anywhere;">
                            <h2><i class="fas fa-newspaper"></i> <!-- Registrations -->${saheader}</h2>
                            <p class="lead" style="line-height:1.2">
                            ${n.brief}
                            <!-- Registration for our 2026 Spring Retreats and Family Camp are now open! -->
                            </p>

                            </div>
                            </div>
                            </div>
                            </div>`)
                    }

                    updateLinks();
                }

                // render open registrations section.
                function renderOR(j) {
                    // for each season, fill in open
                    // registration info.
                    qsaa('.registration span[class="open"][data-season]').forEach(
                        function(e) {
                            let season = e.getAttribute('data-season');

                            let seasonOpenEvents = j.sdt
                            .filter(o => adjustedAvailableSpace(o) > 0 && season == o.season
                                && !o.isCanc
                                && !eventIsCompleted(o));
                            // fill in total number of openings if there is
                            // a place for this for this season.
                            let opspan = e.querySelector('span.op-count');
                            if (opspan) {
                                let totalOpenings = 0;
                                seasonOpenEvents
                                .filter(o => o.online_OK)
                                .forEach(function(o) {
                                    totalOpenings += o.available_space;
                                });
                                opspan.innerHTML = totalOpenings;
                            }

                            // next fill in the open registrations table
                            // for this season.
                            let regtbl = qs(`.registration table.registration-table.${season}`);
                            if (!regtbl) {
                                console.log(`error: no registration table for ${season}`);
                                return;
                            }

                            // first remove all rows in the table
                            // except the header row.
                            removeAllRowsButFirst(regtbl);

                            let previousEventDate = false;
                            // Add a row onto the table for each the open event.
                            seasonOpenEvents
                            .forEach(function(e, i) {
                                if (i > 14 && e.start_date != previousEventDate) {
                                    return; // max 6 rows (or matching date)
                                }
                                let aspc = adjustedAvailableSpace(e);
                                if (/family/i.test(e.name)) {
                                    aspc = '&ndash;';
                                }

                                regtbl.insertAdjacentHTML('beforeend',
                                `<tr><td><a href="${e.web_page}"
                                    title ="Learn more about this event">${shortenedName(e)}</a></td>
                                <td>${eventDate(e)}</td>
                                <td class="d-none">${aspc}</td></tr>`
                                );
                                previousEventDate = e.start_date;
                            })

                        }
                    );
                    updateLinks();
                }
                if (qs('.current-info .twitter-timeline')) {
                    loadScript("https://platform.twitter.com/widgets.js",
                    'twitter-widgets',
                    function() {
                        // initialize twitter widgets.
                        // https://developer.twitter.com/en/docs/twitter-for-websites/javascript-api/guides/scripting-loading-and-initialization.html
                        twttr.widgets.load();
                    }, 'twio', qs('.current-info .twitter-timeline'));
                }

                loadScript('https://weatherwidget.io/js/widget.min.js',
                    'weatherwidget-io-js', false,
                    'wwio', qs('.home-weather .weatherwidget-io'));

                // this can wait a bit to make sure everything
                // else is loaded with more priority
                window.setTimeout(function() {
                    if ('home' == cb_spa.currentPage) {
                        getSchedUpdate(renderOR);
                        getNews(renderNews);
                        removeBlankPlaceholders();
                    }
                }, 200);
            },
            //p: 'home-fall'
            //p: 'home-winter'
            p: 'home-summer'
        },
        'about-us' : { p: 'about',
            f: function() {
                loadPage('about-barakel');
            }
        },
        'about-barakel' : {
            p: 'about'
            //p: 'about-fall'
            //p: 'about-winter'
         },
        '2020-maintenance-shop-fire' : { p: 'ms-fire'},
        'heritage' : { p: 'history' },
        'beliefs' : { p: 'beliefs' },
        'prayer' : { p: 'pray' },
        'donate' : { p: 'donate'},
        'sitemap' : { p: 'sitemap',
            f: function sitemapfn() {
                let ulel = qs('.res-miss-staff-template-list');
                if (!ulel) {
                    return;
                }
                dbGETJSON(staffSummaryURL,
                    function (sSum) {
                        // render staff families onto their place.
                        ulel.innerHTML = sSum.map(s =>
                            `<li><a href="${s.WEBPAGE}"
                                title="Visit this staff's page">${s.FAMILYNAME}</a></li>`
                        )
                        .join('');
                        updateLinks();
                    }
                )
            }
        },
        'media-library' : { r: '/cs' },
        'apply' : { r: 'https://campbarakel.campintouch.com/ui/forms/application/staff/App' },
        'apply-old' : { r: '/xxAdmin/ctemp.aspx?p=/ststaff/apps/17/sa17.htm' },
        'avsopenings' : { p: 'avsopenings',
            f: function() {
                getAVSOpenings(function(avsart) {
                    let d = ge('AVSOpenings-article');
                    if (d && Array.isArray(avsart) && avsart.length) {
                        d.innerHTML = avsart[0].brief;
                    }
                })
            }
         },
        'newseason' : { r: '/xxAdmin/ctemp.aspx?p=/cr/newseason.htm' },
        'manage-articles' : { r: '/xxAdmin/ctemp.aspx?p=/ne/manage.htm' },
        'manage-audio' : { r: '/xxAdmin/ctemp.aspx?p=/audio/manage-audio-messages.htm' },
        'manage-campshots' : { r: '/xxAdmin/ctemp.aspx?p=/campshots/manage-campshots.htm' },
        'tribes' : { r: '/xxAdmin/ctemp.aspx?p=/cr/register/tribes.htm' },
        'old-reg' : { r: function() {
            let h = location.hash.length > 0 ? location.hash.substring(1) : '';

            return `/xxAdmin/ctemp.aspx?p=/19/reg19/oldreg.htm&r=${h}`;
        }},
        'health-screener' : { r: '/xxAdmin/ctemp.aspx?p=/19/reg19/sqflup.htm' },
        'special-needs' : { r: '/xxAdmin/ctemp.aspx?p=/about/specialneeds.htm' },
        'ne/editne' : { r: function() {
            return `/xxAdmin/ctemp.aspx?p=/ne/editne.htm&h=${location.hash}`
        } },
        'smore/pictures' : { r: '/cs' },
        'photos-videos' : { r:  function(hash) {
            return `/cs${hash}` }
        },
        'news' : { p: 'news',
            f: function newsPg() {
                let nal = ge('news-article-list');
                function renderNews(newsArts) {
                    nal.innerHTML = newsArts.filter(n => n.showNE)
                    .map(function nm(a) {
                        let d = zdt(a.ndate);
                        return `<div class="top-border-fade" id="newsid${a.newsid}">
                        <h2>${a.title}</h2>
                        <p class="metadata"><i class="far fa-calendar-alt"></i>
                            <strong>Posted:</strong> ${evDateRange(d, d, true)} </p>
                        <hr>
                        ${a.brief}
                    </div>`
                    })
                    .join('');
                    return;
                }
                // remove all template articles
                nar(nal.childNodes).forEach(function(c) {
                    c.remove();
                });

                // get the news from the server, then render
                // it onto the page.
                getNews(renderNews);
            }
        },
        'song-list' : { p: 'songs',
            f: function songList() {

                let yearFilter = ge('sortYear');

                function renderSL() {
                    let yearFilterVal = yearFilter.value;

                    // remove all songs from the list
                    qsaa('.filters .one-song')
                    .forEach(os => os.remove());

                    let multiYear = /select/i.test(yearFilterVal); // show all years
                    let ycssFilter = multiYear ? '' : `="${yearFilterVal}"`;
                    // collect all the songs from the
                    // allChorus div
                    let ccliRE = new RegExp('(ccli\\s*(song\\s*)?#?\\s*(\\d+))(\\s*<br>)*', 'i');
                    let copyRE = new RegExp('.*\\s(\\d{4} (.+))');
                    let copy2RE = new RegExp('\xa9(.*)', 'i'); // &copy; character
                    let pdRE = new RegExp('(public domain(<br>)*)', 'i');
                    qs('.body-content .filters')
                    .insertAdjacentHTML('beforeend',
                        qsaa(`.allChorus .song[data-year${ycssFilter}] p`)
                        .map(function(p) {
                            let yearHTML = '';
                            if (multiYear) {
                                // new year
                                let y = p.parentNode.getAttribute('data-year');
                                if (y != multiYear) {
                                    yearHTML = `<div class="col-12 one-song year-header mb-0"><h2>${y}</h2></div>`;
                                    multiYear = y;
                                }
                            }
                            let tel = p.querySelector('strong');
                            if (!tel) {
                                tel = p.querySelector('b');
                            }
                            let songTitle = tel ? tel.innerHTML : 'unknown';
                            let ee = ''; // everything else.
                            let m = p.innerHTML.match(/<br>([\s\S]+)/i);
                            let ccli = '';
                            let copy = '';
                            if (m) {
                                ee = m[1];
                                m = ee.match(ccliRE);
                                if (m) {
                                    ccli = m[3];
                                    ee = ee.replace(ccliRE, '');
                                }
                                m = ee.match(copyRE);
                                if (m) {
                                    copy = m[1];
                                    ee = ee.replace(copyRE, '');
                                } else {
                                    m = ee.match(copy2RE);
                                    if (m) {
                                        copy = m[1];
                                        ee = ee.replace(copy2RE, '');
                                    }
                                    if (!copy) {
                                        // no copyright, maybe public domain?
                                        m = ee.match(pdRE);
                                        if (m) {
                                            copy = m[1];
                                            ee = ee.replace(pdRE, '');
                                        }
                                    }
                                }
                            }
                            if (copy) {
                                if (!/public domain/i.test(copy)) {
                                    copy = '&copy; ' + copy;
                                }
                                copy = (ccli ? '<BR>' : '') + copy;
                            }
                            return `${yearHTML}<div class="col-lg-3 col-sm-6 one-song">
                            <div class="card">
                                <div class="card-body">
                                    <h5 class="card-title">${songTitle}</h5>
                                    <hr>
                                    <p class="card-text metadata">
                                    <i class="fas fa-user-circle"></i> ${ee}
                                    </p>
                                    <a href="https://songselect.ccli.com/Songs/${ccli}"
                                        title="View on CCLI Song Search"
                                        target="_blank"
                                        class="btn btn-outline-secondary btn-sm ${ccli ? '' : 'd-none'}"
                                        >Lyrics and Music
                                        <i class="fas fa-external-link-square-alt"></i>
                                    </a>
                                </div>
                                <div class="card-footer ${ccli||copy ? '' : 'd-none'}">
                                    <p class="card-text small text-muted">
                                    <span class="${ccli ? '' : 'd-none'}">
                                    <acronym title="Christian Copyright Licensing International">
                                    CCLI</acronym> Song #${ccli}</span>
                                    ${copy}
                                    </p>
                                </div>
                            </div>
                        </div>
                            `
                        })
                        .join('')
                    );
                };

                // set up year filter for all years that we have songs for.
                qsaa('.allChorus div.song[data-year]')
                .forEach(function(d) {
                    addOpt(yearFilter, d.getAttribute('data-year'));
                });
                if (yearFilter.length > 2) {
                    yearFilter.selectedIndex = 2;
                }
                yearFilter.onchange = renderSL;
                renderSL();
            }
        },
        'chapel-messages' : { p : 'chapel-messages',
            f: function chapelMessages() {
                let cm = pages['chapel-messages'];
                // Azure blob storage.
                const msgURL = 'https://campwebsitestorage.z14.web.core.windows.net/audio/';
                // get Chapel messages info from the server then render.
                dbGETJSON("/cr/sched_update.aspx?dt=chapel-messages",
                    function storeCM(j) {
                        cm.cm = j;
                        setupFilters();
                        renderCM();
                    }
                );

                let sortYear = ge('sortYear');
                let sortSpeaker = ge('sortSpeaker');
                let sortEvent = ge('sortEvent');
                let yearFilterVal, speakerFilterVal, eventFilterVal;

                function filterFn(msg) {
                    // filtering by year?
                    if (!/select/i.test(yearFilterVal) &&
                        msg.date.substring(0, 4) != yearFilterVal) {
                        return false;
                    }

                    if (!/select/i.test(speakerFilterVal) &&
                        msg.speaker != speakerFilterVal) {
                        return false;
                    }

                    if (!/select/i.test(eventFilterVal) &&
                        msg.event != eventFilterVal) {
                        return false;
                    }
                    return true;
                }

                // populate the SELECT filter elements properly.
                function setupFilters() {
                    yearFilterVal = sortYear.value;
                    speakerFilterVal = sortSpeaker.value;
                    eventFilterVal = sortEvent.value;

                    sortYear.onchange = renderCM;
                    sortSpeaker.onchange = renderCM;
                    sortEvent.onchange = renderCM;
                    // set up year filter with all years that we have messages for.
                    let sortYearList = [];
                    let sortSpeakerList = [];
                    let sortEventList = [];
                    cm.cm.forEach(function(msg) {
                        if (msg.date) {
                            let y = msg.date.substring(0, 4);
                            if (-1 == sortYearList.indexOf(y)) {
                                sortYearList.push(y);
                            }
                        }
                        if (msg.speaker) {
                            if (-1 == sortSpeakerList.indexOf(msg.speaker)) {
                                sortSpeakerList.push(msg.speaker);
                            }
                        }
                        if (msg.event) {
                            if (-1 == sortEventList.indexOf(msg.event)) {
                                sortEventList.push(msg.event);
                            }
                        }
                    });

                    // add the years to the sortYear
                    sortYearList.forEach(function(y) {
                        addOpt(sortYear, y)
                    });
                    sortYear.selectedIndex = 2; // start displaying current year's messages

                    // add speakers to the sortSpeaker
                    sortSpeakerList.sort();
                    sortSpeakerList.forEach(function(s) {
                        addOpt(sortSpeaker, s);
                    });

                    // add events to sortEvent
                    sortEventList.sort();
                    sortEventList.forEach(function(e) {
                        addOpt(sortEvent, e);
                    })
                }

                // render chapel messages.
                function renderCM() {
                    yearFilterVal = sortYear.value;
                    speakerFilterVal = sortSpeaker.value;
                    eventFilterVal = sortEvent.value;


                    let ev1 = {}, ev2 = {};
                    let resEl = qs('.body-content .results');
                    if (!resEl) {
                        console.log('no .results');
                        return;
                    }

                    // remove all event message list items for new render.
                    qsaa('.results .event-message-list')
                    .forEach(function(eml) {
                        eml.parentNode.removeChild(eml);
                    });

                    function msgMap(m) {
                        return `<TR data-file="${m.f}">
                        <TD>${m.t}</TD>
                        <TD class="bible-text">${m.s}</TD>
                        <td><a class="play" href="#" title="Listen to this message"><i class="fas fa-play-circle"></i>Play</a></td>
                        <td><a class="download" href="${msgURL}${m.f}" title="Download this message"><i class="fas fa-arrow-alt-circle-down"></i>Download</a></td>
                        </TR>`
                    }
                    // add single event to HTML
                    function add1Event(e) {
                        if (e && e.event) {
                            resEl.insertAdjacentHTML('beforeend',
                            `<div class="col-lg-6 event-message-list">
                            <h3 class="icon border-bottom"><i class="fas fa-headphones"></i>
                                ${e.event} <span class="sep dot">•</span>
                                <span class="metadata">${e.speaker.join('; ')} <span class="sep">|</span>
                                <span class="chapel-msg-date-range">
                                ${evDateRange(zdt(e.date), zdt(e.msgList[e.msgList.length-1].d), true)}
                                </span></span>
                            </h3>
                            <table>
                            <tr>
                                <th>Title</th>
                                <th class="bible-text">Text</th>
                                <th>Listen</th>
                                <th>Save</th>
                            </tr>
                            ${e.msgList.map(msgMap).join('')}
                            </table>
                            </div>
                            `);
                        }
                    }
                    // add ev1/ev2 to results HTML.
                    function addToResults() {
                        add1Event(ev1);
                        add1Event(ev2);
                        ev1 = {};
                        ev2 = {};
                    }

                    // add single message to ev1 or ev2.
                    function add1Msg(msg) {

                        // add one message to event e.
                        function add2Event(msg, e) {
                            e.event = msg.event;
                            e.date = msg.date;
                            if (!e.speaker) {
                                e.speaker = [];
                            }
                            if (-1 == e.speaker.indexOf(msg.speaker)) {
                                e.speaker.push(msg.speaker);
                            }
                            if (!e.msgList) {
                                e.msgList = [];
                            }
                            e.msgList.unshift( {
                                t: msg.title,
                                s: msg.scripture,
                                f: msg.file,
                                d: msg.date,
                                sp: msg.speaker
                            })
                        }
                        // if new message is too far in the past
                        // from ev1/ev2 then we need to start
                        // new lists first.
                        if (ev1.event &&
                            dateDiffDays(msg.date, ev1.date) > 3) {
                            addToResults();
                        }
                        if (!ev1.event || ev1.event == msg.event) {
                            // add to ev1
                            add2Event(msg, ev1);
                        } else {
                            // add to ev2
                            add2Event(msg, ev2);
                        }
                    }
                    // group the messages by event.
                    // render the messages for the selected events.
                    cm.cm.filter(filterFn).forEach(add1Msg);
                    addToResults(); // add remaining messages to results.

                    function stopAllPlaying() {
                        qsaa('.results tr.audio-playing').forEach(tr => {
                            tr.classList.remove('audio-playing');
                            tr.parentNode.removeChild(tr.nextSibling);
                        })
                    }

                    // handle clicks.
                    qsaa('.results a.play')
                    .forEach(function(a) {
                        a.onclick = function(ev) {
                            ev.preventDefault();
                            // set up audio element just below this TR
                            let tr = ev.target.closest('tr');
                            // if already playing then we remove the AUDIO element and
                            // we are done.
                            let justStop = tr.classList.contains('audio-playing');
                            stopAllPlaying();
                            if (justStop) {
                                return;
                            }

                            tr.insertAdjacentHTML('afterend',
                            `<TR><TD colspan="4">
                            <audio controls autoplay="autoplay"><source src="${msgURL}${tr.getAttribute("data-file")}" type="audio/mpeg"></audio>
                            </TD></TR>`);
                            tr.classList.add('audio-playing');
                        }
                    })
                }
            }
        },
        '2020-review' : {
            p: '2020-review'
        },
        'activities-facilities' : {
                p: 'activities-facilities',
                //p: 'activities-facilities-fall',
                //p: 'activities-facilities-winter',
                f: function afFn() {
                    // fill in the activities and create modals.
                    qsaa('ul.act-list[data-acts]')
                    .forEach(function(ul) {
                        // get the list of activities from data-acts.
                        let alist = ul.dataset.acts.split(/\s+/)
                        .filter(a => alkfa(a));
                        // fill this UL in with names and links to the modals.
                        ul.innerHTML = alist
                        .map(function(act) {
                            let ak = alkfa(act);
                            let actI = actList[ak];
                            return `<li><a href="#" data-toggle="modal"
                                data-target="#${ak}">${'*' == act[0] ? '* ' : ''}${actI[0]}</a></li>`
                        }).join('');

                        // add a new modal for each activity.
                        ul.insertAdjacentHTML('afterend',
                        alist.map(
                        function(act, i) {
                            let ak = alkfa(act);
                            let actI = actList[ak];
                            let im = actI[2][0];
                            let nextButton = '';
                            if (i < alist.length-1) {
                                // this is not the last activity on the list.
                                // create the next button link to the next activity.
                                nextButton = `<a href="#" class="mr-auto" data-toggle="modal" data-dismiss="modal"
                                data-target="#${alkfa(alist[i+1])}" title="View next">Show Next Activity
                                <i class="fas fa-angle-right"></i></a>`;
                            }
                            return `<div class="modal fade" id="${ak}" tabindex="-1" role="dialog"
                                        aria-labelledby="${ak}" aria-hidden="true">
                                <div class="modal-dialog modal-dialog-centered" role="document">
                                    <div class="modal-content">
                                        <div class="modal-header">
                                            <h5 class="modal-title">${actI[0]}</h5>
                                            <button type="button" class="close" data-dismiss="modal"
                                                aria-label="Close"><span aria-hidden="true">&times;</span></button>
                                        </div>
                                        <img class="io-lazy" src="/pics/spacer.gif" data-src="${im[0]}" alt="${im[1]}">
                                        <div class="modal-body">
                                            ${actI[1]}
                                        </div>
                                        <div class="modal-footer">
                                            ${nextButton}
                                            <button type="button" class="btn btn-outline-secondary float-right btn-sm" data-dismiss="modal">Close</button>
                                        </div>
                                    </div>
                                </div>
                            </div>`})
                        .join('')
                        )

                    })
                }
        },
        'staff/high-school-staff' : { p: 'volunteer-high-school'},
        'staff/college-age-staff' : {  r: '/staff/summer-staff' }, // this is no longer supported, redirect to summer-staff
        'serve' : { // redirect
            r: 'https://campbarakel.campintouch.com/ui/forms/application/staff/App'
        },
        'staff/adult-volunteers' : { p: 'adult-volunteers', // this is new feb 2025
            f: function adultVolunteer() {
                // fill in dates for the adult work groups.
                getSchedUpdate(function(j) {
                    qsaa('.work-group-row[data-cid]')
                    .forEach(function(r) {
                        // for each row that has a data-cid, use the
                        // schedule info from the server to fill in the
                        // dates of the event.
                        let evregexp = new RegExp(r.dataset.cid, 'i');
                        let ev = j.sdt.find(e => evregexp.test(e.campevent_id));
                        if (ev) {
                            // get the TD that holds the Date.
                            let td = r.querySelector('td:nth-child(2)');
                            if (td) {
                                td.innerHTML = eventDate(ev, true);
                            }

                            // if the event is cancelled or completed
                            // then note that for styling purposes.
                            if (ev.isCanc || eventIsCompleted(ev)) {
                                r.classList.add('completed-or-cancelled');
                            }
                        }
                    });
                });
            }
        },
        'staff/summer-staff' : { p: 'summer-staff' },
        'staff/study-serve' : { r: '/' },
        'staff/study-serve-x33423' : { p: 'volunteer-study-serve',
            f: function studyServe() {
                // send mail on button click for either modal form.
                qsaa('.study-serve .modal').forEach(function(m) {
                    let mid = m.id;
                    // submit buttons send mail.
                    let sb = qs(`#${mid} button.submit-button`);
                    let mb = qs(`#${mid} .modal-body`);
                    sb.onclick = function() {
                        // submit button clicked, send mail if valid.
                        let invalidFields = qsaa(`#${mid} input:invalid`);
                        let ssc = qs(`#${mid}`);
                        if (invalidFields.length) {
                            let oldVal = ssc.style.getPropertyValue('--inv-color');
                            ssc.style.setProperty('--inv-color', 'red');
                            invalidFields.forEach(el => el.classList.add('flash'));
                            window.setTimeout(function() {
                                ssc.style.setProperty('--inv-color', oldVal);
                                invalidFields.forEach(el => el.classList.remove('flash'));
                            }, 300);
                            new Audio('/xxAdmin/beepsound.mp3').play();
                            return;
                        }
                        let body = qsaa(`#${mid} :is(input, select, textarea)`)
                            .filter(el => 'radio' != el.type || el.checked)
                            .map(function(el) {
                                return `${el.name}: ${el.value}`;
                            })
                            .join('&lt;BR&gt;');
                        let whichForm = /info/i.test(mid) ? 'Requestion Information' : 'Apply Now';
                        body += `&lt;BR&gt; FORM: ${whichForm}`;
                        let fd = new FormData();
                        fd.append('cmd', 'sa-mail');
                        fd.append('toAdr',
                            /localhost/i.test(location.href) ?
                            'mark@lvalive.com' :
                            'JoshuaC@campbarakel.org');
                        fd.append('subject', 'Study Serve Response - ' + whichForm);
                        fd.append('body', body);
                        mb.innerHTML = '<p>Please wait.</p>';
                        fetch('/cr/register/regjson.aspx',
                        { method: 'post',
                            body: fd
                        }
                        )
                        .then(r => r.text())
                        .then(function(d) {
                            if ('OK' != d) {
                                mb.innerHTML = 'Problem:<BR>' + d;
                                return;
                            }
                            mb.innerHTML = `<p>We’re excited you’re interested in
                            Barakel’s Study and Serve program.
                            We look forward to connecting in the next few days!</p>`;
                        })
                    }
                })

            }
        },
        'staff/work-groups' : { p: 'adult-volunteers',
            f: function wg() {
                pages['staff/adult-volunteers'].f();
                return { adjustedPage: `staff/adult-volunteers` };
            }
        },
        'lifeguard' : { p: 'lifeguard' },
        'staff1' : { p: 'staff1',
            f: function singleStaffFamily() {

                let familyname = pages.staff1.origPage;

                // show a single staff letter in its place
                function showLetter(newsid) {
                    let letter = pages.staff1.famData.letters.find(n => n.newsid == newsid);
                    if (!letter) {
                        console.log('letter not found');
                        return;
                    }
                    qs('#s1-current-letter .card-body').innerHTML = letter.brief;
                    let d = zdt(letter.ndate);
                    qs('#s1-current-letter .letter-date').innerHTML = evDateRange(d, d, true);

                    // indicate the current letter is active and all others are not.
                    qsaa('.one-family .previous-update-list .list-group-item')
                    .forEach(el => el.classList.remove('active'));

                    qs(`.one-family .previous-update-list [data-letter="${newsid}"]`)
                    .classList.add('active');

                    observeLazyLoadImages();
                    updateLinks();
                }

                dbGETJSON(addCBabsoluteurl(`/cr/sched_update.aspx?dt=staff-${familyname}`),
                    function(f1) {
                        if (!f1.summary.length) {
                            console.log('no staff family ' + familyname);
                            loadPage('/staff');
                            return;
                        }
                        let s = f1.summary[0];
                        pages.staff1.famData = f1;

                        // fill in summary stuff.
                        qs('.breadcrumb-nav .breadcrumb-item.active').innerHTML = s.FAMILYNAME;
                        ge('s1-family-name').innerHTML = s.LONGNAME.replace(/<br>/i, ' ');
                        ge('s1-minibio').innerHTML = s.MINIBIO;
                        ge('s1-family-pic').src = s.BIGPHOTO;

                        // fill in list of letters "Previous Updates"
                        let puel = qs('.one-family .previous-update-list');
                        puel.innerHTML =
                            f1.letters.map(function(letr) {
                                let d = zdt(letr.ndate);
                                return `<div class="list-group-item pointer"
                                    data-letter="${letr.newsid}">${evDateRange(d, d, true)}</div>`
                            })
                            .join('');

                        // setup for clicks on the Previous Updates so the
                        // clicked update is displayed.
                        puel.onclick = function letClick(e) {
                            let l = e.target.dataset.letter;

                            if (l) {
                                showLetter(l);
                            }
                        }

                        if (f1.letters.length) {
                            showLetter(f1.letters[0].newsid);
                        } else {
                            // no updates.
                            qs('#s1-current-letter .card-body').innerHTML = `<p>No updates.</p>`;
                            qs('.one-family .previous-update-section').classList.add('d-none');
                            qs('#s1-current-letter h3.icon .sep').classList.add('d-none');
                        }
                    }
                );
                return { adjustedPage: `staff/${familyname}` };
            }
        },
        'resident-missionary-staff' : { p: 'resident-missionary-staff' },
        'staff' : { p: 'resident-staff',
            // this is the old RMS page - this is no longer supported
            f: function staffPages() {
                // need to get server data and then render.
                // staff summary.
                dbGETJSON(staffSummaryURL,
                    function (sSum) {
                        // render staff summary.

                        // remove template staff bios.
                        qsaa('.staff-bios > div:not(.col-md-12)')
                        .forEach(function(el) {
                            el.parentNode.removeChild(el);
                        });

                        qs('.staff-bios')
                        .insertAdjacentHTML('beforeend',
                        sSum.map(s => {
                            let mb =  s.MINIBIO;
                            if (mb.length > 200) {
                                // Shorten the minibio if it is too long.
                                mb = mb.substring(0, 190);
                                // make sure it ends in period;
                                let m = mb.match(/([\s\S]*)\./m);
                                if (m) {
                                    mb = m[1];
                                }
                                mb += `. &hellip;<a href="${s.WEBPAGE}">more</a>`;
                            }
                            return `<div class="col col-xl-3 col-lg-4 col-md-6">
                                <div class="card"> <a href="${s.WEBPAGE}"> <img
                                    src="${blankImage}"
                                    data-src="https://www.campbarakel.org${s.BIGPHOTO}"
                                    class="io-lazy card-img-top" alt="${s.FAMILYNAME}"> </a>
                                    <div class="card-body">
                                        <h5 class="card-title">${s.LONGNAME.replace(/ and /, ' &amp; ')}</h5>
                                        <p class="card-text">${mb}</p>
                                    </div>
                                    <div class="card-footer">
                                        <a href="${s.WEBPAGE}" class="btn btn-primary btn-sm mt-1 mb-1">Latest Updates <i class="fas fa-angle-right"></i></a>
                                    </div>
                                </div>
                            </div>
                        `})
                        .join(''));

                        observeLazyLoadImages();
                        updateLinks();

                        let opb = qs('button#op-button');
                        if (opb) {
                            opb.onclick = function() {
                                siv(qs('div.open-positions h2'));
                            }
                        }
                })
            }
        },
        'about-our-staff' : { p: 'about-our-staff',
            f: function staffPages() {
                // need to get server data and then render.
                // staff summary.
                dbGETJSON(staffSummaryURL,
                    function (sSum) {
                        // render staff summary.

                        // remove template staff bios.
                        qsaa('.staff-bios > div:not(.col-md-12)')
                        .forEach(function(el) {
                            el.parentNode.removeChild(el);
                        });

                        qs('.staff-bios')
                        .insertAdjacentHTML('beforeend',
                        sSum.map(s => {
                            let mb =  s.MINIBIO;
                            if (mb.length > 200) {
                                // Shorten the minibio if it is too long.
                                mb = mb.substring(0, 190);
                                // make sure it ends in period;
                                let m = mb.match(/([\s\S]*)\./m);
                                if (m) {
                                    mb = m[1];
                                }
                                mb += `. &hellip;<a href="${s.WEBPAGE}">more</a>`;
                            }
                            return `<div class="col-xl-3 col-lg-4 col-md-6 mb-4">
                                <div class="card"> <a href="${s.WEBPAGE}"> <img
                                    src="${blankImage}"
                                    data-src="https://www.campbarakel.org${s.BIGPHOTO}"
                                    class="io-lazy card-img-top" alt="${s.FAMILYNAME}"> </a>
                                    <div class="card-body">
                                        <h5 class="card-title">${s.LONGNAME.replace(/ and /, ' &amp; ')}</h5>
                                        <p class="card-text">${mb}</p>
                                    </div>
                                    <div class="card-footer">
                                        <a href="${s.WEBPAGE}" class="btn btn-primary btn-sm mt-1 mb-1">Latest Updates <i class="fas fa-angle-right"></i></a>
                                    </div>
                                </div>
                            </div>
                        `})
                        .join(''));

                        observeLazyLoadImages();
                        updateLinks();
                })
        }},
        'directions' : { p: 'directions' },
        'contact': { p: 'contact'},
        'camper-mail' : { p: 'contact',
        f: function() {

            // pop up an alert message for the user
            function popAlert(str, strtitle, cb)
            {
                // add alert modal into the DOM if it isn't already there.
                let amd = ge('amodal');
                if (!amd) {
                    ge('camper-mail').insertAdjacentHTML('beforebegin',
                    `<div class="modal fade" tabindex="-1"
                        id="amodal"
                        role="dialog" aria-hidden="true">
                    <div class="modal-dialog modal-dialog-centered modal-sm">
                        <div class="modal-content">
                        <div class="modal-header d-none">
                            <h5 class="modal-title">Modal title</h5>
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                            <span aria-hidden="true">&times;</span>
                            </button>
                        </div>
                        <div class="modal-body"></div>
                        <div class="modal-footer justify-content-end">
                            <button type="button" class="btn btn-secondary" data-dismiss="modal">OK</button>
                        </div>
                        </div>
                    </div>
                    </div>
                    `);
                    amd = ge('amodal');
                }

                let mh = amd.querySelector('.modal-header');
                amd.querySelector('.modal-content .modal-body').innerHTML = str;
                if (strtitle) {
                    mh.classList.remove('d-none');
                    mh.querySelector('.modal-title').innerHTML = strtitle;
                } else {
                    mh.classList.add('d-none');
                }

                // set up call back for dismissal of the alert.
                qsaa('#amodal button[data-dismiss]')
                .forEach(function(b) {
                    if (cb) {
                        b.onclick = cb;
                    } else {
                        b.onclick = false;
                    }
                });

                $('#amodal').modal();
            }


            let cmel = qs('#camper-mail');
            cmel.classList.remove('d-none');
            siv(cmel, 'start');

            if (CamperMailDisabled) {
                cmel.innerHTML = '<p>No more camper mail until summer camp starts again.</p>';
                return;
            }
            qs('#camper-mail button').onclick = function() {
                // Send Message button clicked.
                // valid?
                if (qs('#camper-mail :invalid')) {
                    popAlert('Not all fields are valid.', 'Invalid');
                    return;
                }

                // message too long?
                let msg = ge('inputMessage');
                if (msg.value.split('\n').length > 23) {
                    popAlert('Message is too long (maximum 23 lines).',
                        'Message Too Long');
                    return;
                }

                // send mail.
                // create the data to be consumed by sa-mail.
                let f = qs('#camper-mail form');
                let theDate = new Date();
                theDate = theDate.toLocaleDateString() + ' - ' + theDate.toLocaleTimeString();

                let toP = f.CAMPERNAME.value;
                // we want to order lastname, firstname
                if (! /,/.test(toP)) { // if already a comma we don't change anything
                    if (toP.match(/^\s*(\S+\s*\S*)\s+(\S+)\s*/)) {
                        toP = RegExp.$2 + ', ' + RegExp.$1;
                    }
                }
                let d = {
                    cmd: 'sa-mail',
                    toAdr: /localhost/i.test(location.hostname) ?
                        'mark@lvalive.com' : 'campermail@campbarakel.org',
                    subject: `CamperMail (${f.CAMPER_AGE.value} ${f.GENDER.value}) To: ${toP} From: "${f.FROMNAME.value}"`,
                    body: '<p style="margin: 5px 5px 20px 20px">' +
                    `<b>Camp Barakel CamperMail<BR>To:</b> "${toP}"` +
                    ` (${f.CAMPER_AGE.value} ${f.GENDER.value})` +
                    '<BR><B>From:</B> "' + f.FROMNAME.value + '"' +
                    '<BR>' + theDate +
                    '</p>' +
                    '<div style="margin-left:10px">' +
                    f.TEXTMESSAGE.value +
                    '</div>'
                };
                let fd = new FormData();
                for (let i in d) {
                    fd.append(i, htmlEscape(d[i]));
                }

                function lp() {
                    loadPage(); // no parameter to loadPage.
                }
                cmel.innerHTML = '<DIV class="my-4">Please Wait...</div>';
                popAlert('Please Wait...', 'Wait', lp);
                fetch('/cr/register/regjson.aspx',
                    { method: 'post',
                      body: fd
                    })
                .then(r => r.text())
                .then(function(d) {
                    if ('OK' == d) {
                        popAlert('OK', 'Success', lp);
                        return;
                    }
                    popAlert(d, 'Error', lp);
                    return;
                })
            }
        }
        },
        'events/summer-junior' : { p: 'summer-junior' },
        //'events/summer-explorer' : { p: 'summer-explorer' },
        'events/summer-ms' : { p: 'summer-ms' },
        'events/summer-jr-high' : { p: 'summer-jrhigh' },
        'events/summer-high-school' : { p: 'summer-high-school' },
        'yccr' : { p: 'yccr-2020',
            f: function() {
                function countdownTimeStart() {

                    let countDownDate = new Date("Jul 13, 2020 12:00:00").getTime();

                    let d = qs('#yccr-countdown');
                    if (!d) {
                        console.log('no #yccr-countdown element');
                        return;
                    }
                    // Update the count down every 1 second
                    let x = setInterval(function() {

                        // Get todays date and time
                        let now = new Date().getTime();

                        // Find the distance between now and the count down date
                        let distance = countDownDate - now;

                        // Time calculations for days, hours, minutes and seconds
                        let hours = Math.floor(distance  / (1000 * 60 * 60));
                        let minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
                        let seconds = Math.floor((distance % (1000 * 60)) / 1000);

                        // leading zero if less than 10.
                        function lz(s) {
                            return s.toString().length < 2 ?
                                '0' + s :
                                s;
                        }

                        // Output the result
                        d.innerHTML = hours +
                            ":" + lz(minutes) + ":" + lz(seconds);

                        // If the count down is over, clear
                        if (distance < 0) {
                            clearInterval(x);
                            d.parentNode.innerHTML = "";
                        }
                    }, 1000);
                }
                countdownTimeStart();
            } },
        'events/summer-his-ability' : { p: 'summer-his-ability' },
        'events/summer-bus-schedule' : { p: 'bus-schedule' },
        'events/hisability-bus-schedule' : { p: 'his-bus-schedule' },
        //'events/explorer-bus-schedule' : { p: 'explorer-bus-schedule' },
        //'summerexplorerfaq' : { p: 'explorerfaq',
        //    f: function() {
        //        pages.summerfaq.f();
        //    }
        //},
        'registration-tips': {p: 'registration-tips'},
        'summerfaq' : { p: 'summerfaq',
            f: function() {
                // set up all the collapse elements
                qsaa('.faqA')
                .forEach(function(el, i) {

                    let q = el.previousSibling;
                    while (! /^p$/i.test(q.nodeName)) {
                        q = q.previousSibling;
                    }
                    q.innerHTML = `<a href="#faq${i}" data-toggle="collapse"
                        aria-expanded="false"
                        role="button">${q.innerHTML}</a>`;
                    el.classList.add('collapse');
                    el.id = `faq${i}`;
                })
            }
        },
        //'events/bible-immersion': { p: 'retreat-bible-immersion' },
        'events/bible-immersion': { r: '/' },
        'events/family-camps' : { p: 'family-camps' },
        'events/winter-teen' : { p: 'retreat-teen' },
        'events/winter-college-career' : { p: 'retreat-college-career'},
        'events/spring-college-career' : { p: 'retreat-college-career-spring'},
        'events/retreat-adult' : { p: 'retreat-adult' },
        'events/adults' : { p: 'retreat-adult',
            f: function() {
                // events/adults is obsolete
                return { adjustedPage: `events/retreat-adult` };
            }
        },
        'events/teens' : { p: 'schedule',
            f: function() {
                loadPage('events');
            }
        },
        'events/kids' : { p: 'schedule',
            f: function() {
                loadPage('events');
            }
        },
        'events/fall-married-couples' : { p: 'retreat-couples' },
        'events/fall-ladies' : { p: 'retreat-ladies'},
        'events/fall-mens' : { p: 'retreat-mens-fall'},
        'events/spring-mens' : { p: 'retreat-mens-spring'},
        'events/retreat-parent-child' : { p: 'retreat-parent-child' },
        'events/fall-father-daughter' : { p: 'retreat-father-daughter-fall' },
        'events/winter-father-daughter' : { p: 'retreat-father-daughter-winter' },
        'events/winter-father-son' : { p: 'retreat-father-son-winter' },
        'events/fall-father-son' : { p: 'retreat-father-son-fall' },
        'events/spring-mother-daughter' : { p: 'retreat-mother-daughter' },
        'events' : { p: 'schedule',
            f: function eventsStart() {
                // dynamic loading for events page.
                function renderEvents(j) {
                    // render the events.
                    qsaa('.schedule table.reg-table.full-schedule[data-season]').forEach(
                        function renderFullSeason(tel) {
                            let season = tel.dataset.season;
                            let rowsArray = [];
                            let thisYear = tel.dataset.year || 0;
                            let jsonLD = [];
                            let seasonEvents = j.sdt.filter(o => season == o.season);
                            let bRegOpen = seasonEvents.some(e => e.online_OK);
                            let familyOpenMessage = '';
                            let fcEvent = seasonEvents.find(e => /family/i.test(e.name));
                            if (fcEvent) {
                                if ('' == familyCampFullnessInfo(fcEvent)) {
                                    // registrations not open for family camp
                                    if (seasonOpenDates.family) {
                                        familyOpenMessage = `&nbsp; Registrations (by mail) open ${seasonOpenDates.family} for ${fcEvent.name}.<BR>`;
                                    }
                                } else {
                                    // family camp registrations are open.
                                    familyOpenMessage = `&nbsp; Registrations are open for ${fcEvent.name}.<BR>`;
                                }
                            }
                            if ('summer' == season) {
                                // his-ability camp.
                                if (!seasonOpenDates.hisability) {
                                    //familyOpenMessage = `&nbsp; Registrations are open for HIS-ability Camp.<BR>`;
                                } else {
                                    familyOpenMessage = `&nbsp; Registrations open ${seasonOpenDates.hisability} for HIS-ability Camp.<BR>`;
                                }
                            }
                            if ('winter' == season) {
                                // winter teen is special case.
                                if (bRegOpen) {
                                    familyOpenMessage = `&nbsp; Registrations are open for Winter Teen Retreats.<BR>`;
                                    // check reg open for other events besides winter teen.
                                    bRegOpen = seasonEvents.some(e => e.online_OK && !/teen/i.test(e.name));
                                } else {
                                    if (seasonOpenDates.winterTeen && (! /not hosting/i.test(seasonOpenDates.winterTeen)
                                            || ! /not hosting/i.test(seasonOpenDates.winter))) {
                                        // put the info about teen retreats here unless it is a duplicate 'not hosting' message
                                        familyOpenMessage = `&nbsp; Registrations open ${seasonOpenDates.winterTeen} for Winter Teen Retreats.<BR>`;
                                    }
                                }
                            }
                            if (bRegOpen) {
                                tel.classList.add('reg-open')
                            }
                            if (!bRegOpen || familyOpenMessage) {
                                // show date when registrations open, if
                                // we have one.
                                let e = qs(`.season-year.${season}`);
                                if (e) {
                                    let seasonMsg = '';
                                    if (!bRegOpen && seasonOpenDates[season]) {
                                        let sup = season[0].toUpperCase() + season.substring(1);
                                        let sodm = seasonOpenDates[season];
                                        if ('' != familyOpenMessage) {
                                            seasonMsg = `&nbsp; Other ${sup} registrations open ${sodm}.`
                                        } else {
                                            seasonMsg = `&nbsp; ${sup} registrations open ${sodm}.`
                                        }
                                        if (/not hosting/.test(sodm)) {
                                            seasonMsg = `<div style="margin-left:1em">${sodm}</div>`;
                                        }
                                    }
                                    if (bRegOpen && /are open/i.test(familyOpenMessage)) {
                                        // everything open, don't need to say that.
                                        familyOpenMessage = '';
                                    }
                                    e = e.parentElement.parentElement.querySelector('p.reg-open-message');
                                    if (e) {
                                        e.innerHTML = `${familyOpenMessage}${seasonMsg}`;
                                    }
                                }
                            }

                            function setHeaderYear() {
                                // set year in the HTML
                                let sp = qs(`h2 > span.season-year.${season}`);
                                if (sp) {
                                    sp.innerHTML = thisYear;
                                }
                            }

                            thisYear = Number(thisYear);
                            if (0 != thisYear) {
                                setHeaderYear();
                            }

                            // get all events for this season.
                            seasonEvents
                            .forEach(
                            function renderEvent(e, i) {
                                let sd = zdt(e.start_date);
                                let year = sd.getUTCFullYear();
                                let completed = eventIsCompleted(e);
                                if (thisYear && thisYear != year) {
                                    return; // skip events from other years
                                } else {
                                    if (0 == thisYear) {
                                        thisYear = year;
                                        setHeaderYear();
                                    }
                                }

                                let available_space = adjustedAvailableSpace(e);
                                let wait_list = e.wait_list;
                                let closedCompleted = [
                                    // cancelled or completed events get strike-through.
                                    e.isCanc || completed ? 'completed-event' : '',
                                    available_space > 0 || e.awl ? '' : 'closed',
                                ]
                                if (completed) {
                                    available_space = '&ndash;'
                                } else {
                                    // if the event is not completed, we make a
                                    // JSON-LD entry for it.
                                    jsonLD.push(`<script type="application/ld+json">
                                    {
                                        "@context": "https://schema.org/",
                                        "@type": "Event",
                                        "location": {
                                            "@type": "Place",
                                            "name": "Camp Barakel",
                                            "address": {
                                                "@type": "PostalAddress",
                                                "addressCountry": "USA",
                                                "addressLocality": "Fairview",
                                                "addressRegion": "MI",
                                                "postalCode": "48621",
                                                "streetAddress": "1798 Shear Lake Road",
                                                "postOfficeBoxNumber": "159"
                                            },
                                            "url":"https://www.campbarakel.org"
                                        },
                                        "name": "Camp Barakel ${e.name}",
                                        "image": "https://www.campbarakel.org/19/images/img_about_blockhouse.jpg",
                                        "startDate": "${e.start_date.substring(0,10)}",
                                        "endDate": "${e.end_date.substring(0,10)}",
                                        "url":"https://www.campbarakel.org${e.web_page}"
                                    } </` + "script>");
                                }
                                if (completed || wait_list < 0 || e.online_OK==0) {
                                    wait_list = '&ndash;'
                                }
                                let fcExtra = '';
                                if (/family/i.test(e.name)) {
                                    available_space = '&ndash;'
                                    // if family camp registrations are being accepted,
                                    // let people know about RV and cabins/lodges.
                                    if (e.total_space & 1) {
                                        fcExtra = familyCampFullnessInfo(e);
                                        closedCompleted.push('align-top')
                                    }
                                }
                                if (/ability/i.test(e.name)) {
                                    available_space = '&ndash;';
                                }
                                if (available_space === null || e.total_space <= 0) {
                                    available_space = '&ndash;';
                                }
                                let r = [
                                    `<tr>`,
                                    `<td>${eventDate(e)}</td>`,
                                    `<td><a href="${e.web_page}">${shortenedName(e)}</a>${fcExtra}</td>`,
                                    `<td class="only-when-reg-open">${available_space}</td>`,
                                    `<td class="only-when-reg-open waitlist">${wait_list}</td>`,
                                    `<td class="only-when-reg-open">${regButton(e)}</td>`,
                                    `</tr>`
                                ];

                                if ('summer' == season && !/ability|family|plant/i.test(e.name)) {
                                    // for summer non-HISability we combine
                                    // boys and girls events onto the same row.
                                    // Girls comes first, then skip the boys row.
                                    if (/boys/i.test(e.name)) {
                                        return;
                                    }

                                    let bevt = seasonEvents[i+1]; // matching boy event.
                                    let bas = bevt.wait_list ? 0 : bevt.available_space;
                                    if (bas < 0) {
                                        bas = 0; // boy event available space.
                                    }

                                    // updated closed to mean both genders are full.
                                    closedCompleted[1] = available_space <= 0 &&
                                        bas <= 0 ? 'closed' : '';

                                    // space available and wait list broken
                                    // down by boy girl.
                                    r[3] = bgTD(bas, available_space, 'only-when-reg-open');

                                    if (!completed && e.online_OK!=0) {
                                        r[4] = bgTD(bevt.wait_list, e.wait_list, 'waitlist only-when-reg-open');
                                    }

                                    // put the grades for this event in place
                                    r[2] = `<td><a href="${e.web_page}">${shortenedName(e).replace(/ girls/i, '')} (${e.age})</a></td>`

                                    // boy/girl specific waitlist or register button.
                                    r[5] = `<td class="only-when-reg-open">${regButton(bevt, e)}</td>`
                                }

                                r[0] = `<tr class="${closedCompleted.join(' ')}">`;
                                rowsArray.push(r.join(''));
                            }
                            );

                            tel.insertAdjacentHTML('beforeend', rowsArray.join(''));
                            tel.insertAdjacentHTML('afterend',
                                jsonLD.join('')); // Structured Data - JSON+LD

                            if (!rowsArray.length) {
                                tel.innerHTML = '';
                                tel.insertAdjacentHTML('afterend',
                                '<p class="text-center">Please check back later for these events.</p>')
                            }
                        }
                    );
                    updateLinks();
                }
                qsaa('.schedule table.reg-table.full-schedule[data-season]').forEach(
                    function(tel) {
                        // if the registration table doesn't have any rows,
                        // add in the default header row.
                        if (!tel.rows.length) {
                            tel.insertAdjacentHTML('beforeend',
                                `<TR>
                                <th>Date</th><th>Type</th>
                                <th class="only-when-reg-open">Open</th>
                                <th class="only-when-reg-open waitlist waitlist-header"></th>
                                <th class="only-when-reg-open">Register</th>
                                </TR>`
                            );
                        }

                        // add the H2 header.
                        let season = tel.dataset.season;
                        let sUpper = season.toUpperCase();
                        tel.insertAdjacentHTML('beforebegin',
                            `<h2 class="mb-0"><span class="season-year ${season}"></span>
                            <span class="sep dot">•</span> ${sUpper}</h2>
                            <p class="mb-0 reg-open-message"></p>`
                        );
                });

                getSchedUpdate(renderEvents);
            }
         },
    };

    // url - URL of the script to load
    // id - element ID of the script.
    // alreadyLoadedFn - call this if the script is already loaded.
    // iovar - intersectionobserver
    // el - element that we wait for with intersection observer
    function loadScript(url, id, alreadyLoadedFn, iovar, el) {

        // first, if there are iovar and el specified then
        // we wait to do this work until the element el
        // is observable on the page.
        if ('IntersectionObserver' in window && iovar && el) {
            if (this[iovar]) {
                this[iovar].disconnect();
            }
            this[iovar] = new IntersectionObserver(function(entries) {
                entries.forEach(function(entry) {
                    if (entry.isIntersecting) {
                        this[iovar].unobserve(entry.target);
                        loadScript(url, id, alreadyLoadedFn);
                    }
                })
            }, {rootMargin: '0px'});
            this[iovar].observe(el);
            return;
        }

        // Dynamically load a SCRIPT element.
        // If the script has already been loaded, then
        // call the alreadyLoadedFn function (if given).
        if (!ge(id)) {
            let js, fjs = document.getElementsByTagName('script')[0];
            js = document.createElement('script');
            js.id = id;
            js.src = url;
            fjs.parentNode.insertBefore(js, fjs);
        } else {
            if (alreadyLoadedFn) {
                alreadyLoadedFn();
            }
        }
    }

    // remove all rows except the first row of the table tel
    function removeAllRowsButFirst(tel) {
        nar(tel.querySelectorAll('tr:not(:first-child)'))
        .forEach(e => e.parentNode.removeChild(e));

    }

    function regButton(e1, e2) {
        function b(e) {
            let rwl = 'Register';
            if (0 == e.available_space || e.wait_list > 0) {
                rwl = 'Waitlist'
            }

            if (e1 && e2) {
                rwl += /boys/i.test(e.name) ? ' Boys' : ' Girls';
            }
            return `<a href="/register#event/${e.campevent_id}" title="" class="btn btn-primary btn-sm"
        >${rwl} <i class="fas fa-angle-right"></i></a>`;
        }

        if (e1.online_OK &&
            (e1.available_space > 0 || e1.awl) &&
            !e1.isCanc &&
            dateDiffMinutes(cb_spa.currentDate, e1.start_date) > 1) {

            if (e2) {
                return `${b(e1)} ${b(e2)}`;
            }
            return b(e1);
        }

        // for family camp note registration is by mail only.
        if (/family/i.test(e1.name) && e1.total_space & 1) {
            return '<span class="closed" title="Register by Mail">mail</span>'
        }

        // closed means no more space left.
        return '<span class="closed"></span>';
    }


    // load one of the pages of the SPA.
    function loadPage(p, hash) {

        let page = p || location.pathname;
        hash = p ? hash : location.hash;
        if (page.match(/^\/19\//)) {
            location.href = '/home';
            return;
        }

        if (page.match(/^\/(.*)/)) {
            page = RegExp.$1;
        }

        if ('/' == page || '' == page || '19.aspx' == page ||
            'abc' == page) {
            page = 'home';
        }
        page = page.toLowerCase();
        //console.log(`page is ${page}${hash}`);

        if (! (page in pages)) {
            // special case for staff family pages.
            let m = page.match(/staff\/(\w+)$/i);
            if (m) {
                pages.staff1.origPage = m[1];
                page = 'staff1';
            } else {
                console.log(`page ${page} not found in pages`);
                if (/^register/i.test(page)) {
                    location.href = '/register' + (hash ? hash : '');
                }
                if (/^apply/i.test(page)) {
                    location.href = '/apply';
                }
                return;
            }
        }
        cb_spa.currentPage = page;

        // this is after we retrieved the HTML
        // for this page from the server.
        function afterLoad(h) {

            if (!pages[cb_spa.currentPage].h) {
                // use CDN for images.
                h = rcdn(h);
                // save HTML for future to avoid reloads.
                pages[cb_spa.currentPage].h = h;
            }
            let pc = ge('cb-page-content-container');

            // find any spacer.gif references and replace them with blank inline image
            h = h.replace(/\ssrc="\/pics\/spacer.gif"/g, ` src="${blankImage}"`);
            pc.innerHTML = h; // put HTML in its place on the page.
            document.body.scrollTop = document.documentElement.scrollTop = 0;

            if (cb_spa.currentPage in pages &&
                pages[cb_spa.currentPage].f) {
                // execute page-specific initialization javascript.
                let sca = pages[cb_spa.currentPage].f();
                if (sca && sca.adjustedPage) {
                    // this lets the page-specific function
                    // adjust the URL.
                    page = sca.adjustedPage;
                }
            }
            // need to make sure staff family pages work
            window.history.pushState('', '', '/' + page + hash);
            if (hash) {
                let el = qs(`#cb-page-content-container a[href="${hash}"]`);
                if (el) {
                    if (el.scrollIntoView) {
                        el.scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});
                    }

                    // set up any bootstrap tab that is non-default
                    $(`a[data-toggle="tab"][role="tab"][href="${hash}"]`).tab('show');
                }
            }

            // update google analytics 4 for pageview if it's not
            // a duplicate.
            if (typeof gtag !== 'undefined' && page != cb_spa.gaPage) {
                gtag('event', 'page_view', {
                    page_location: `${location.origin}/${page}`});
                cb_spa.gaPage = page;
            }

            // expand macros
            expandMacros();

            // expand camp activities <div class="activities">
            expandActivities();

            // fill in schedule table on events pages.
            expandScheduleTable();

            // observe images for lazy load
            observeLazyLoadImages();

            // observe vimeo areas for lazy load
            observeLazyVimeo();

            // update links on the page so that they will
            // stay in the SPA.
            updateLinks();

            // start any carousels.
            if (qs('.carousel')) {
                $('.carousel').carousel();
            }

            // collapse menu if it's open (mobile)
            if (qs('.navbar-collapse.show')) {
                $('.navbar-collapse').collapse('hide');
            }

            updateLoginLink();
        }

        // if this is a redirect then take care of that.
        let prdir = pages[cb_spa.currentPage].r;
        if (prdir) {
            location.href = 'function' === typeof prdir ?
                prdir(hash) : prdir;
            return;
        }

        // special case for not reloading the home page
        // if it is already given to us by the server
        if ('home' == cb_spa.currentPage && !pages.home.h) {
            let pc = ge('cb-page-content-container');
            if (qs('#cb-page-content-container > #home')) {
                pages.home.h = pc.innerHTML;
            }
        }

        if (pages[cb_spa.currentPage].h) {
            // already have this page, don't need to reload.
            afterLoad(pages[cb_spa.currentPage].h);
            return;
        }
        // load HTML for the page and put it in its place.
        dbGET('/19/spa/' + pages[cb_spa.currentPage].p + '.htm',
                afterLoad);

    }

    // click events for A tags go here.
    function aClick(e) {
        e.preventDefault();

        let url = new URL(this.href);
        loadPage(url.pathname, url.hash);
        return false;
    }

    // get news & homepage announcements from the server and then call callback cb.
    function getNews(cb) {
        dbGETJSON('/cr/sched_update.aspx?dt=news',
            function(j) {
                if (cb) {
                    cb(j);
                }
            })
    }

    function getAVSOpenings(cb) {
        dbGETJSON('/cr/sched_update.aspx?dt=avsopenings',
            function(j) {
                if (cb) {
                    cb(j);
                }
            })
    }

    // observe video areas for lazy load
    // class="vimeo-lazy" data-vnum="number"
    function observeLazyVimeo() {
        let lazyVim = qsaa('#cb-page-content-container .vimeo-lazy[data-vnum]');
        if (!lazyVim) {
            return; // no videos to lazy load
        }

        // load the video.
        function loadLazyVimeo(el) {
            el.innerHTML = `<div style="padding:56.25% 0 0 0;position:relative;"><iframe
            src="https://player.vimeo.com/video/${el.dataset.vnum}?h=073920df76"
            style="position:absolute;top:0;left:0;width:100%;height:100%;"
            frameborder="0" allowfullscreen></iframe></div>`;
        }

        // set up lazy loading of vimeo videos
        // if IntersectionObserver is supported by browser.
        if ('IntersectionObserver' in window) {
            if (cb_spa.lazy_vimeo_io) {
                cb_spa.lazy_vimeo_io.disconnect();
            }
            cb_spa.lazy_vimeo_io = new IntersectionObserver(function(entries) {
                entries.forEach(function(entry) {
                    if (entry.isIntersecting) {
                        cb_spa.lazy_vimeo_io.unobserve(entry.target);
                        loadLazyVimeo(entry.target);
                    }
                })
            }, { rootMargin: '0px'});
            lazyVim.forEach(e => cb_spa.lazy_vimeo_io.observe(e));
        } else {
            lazyVim.forEach(loadLazyVimeo);
        }
    }

    // s is string.
    // replace to use CDN images for this string.
    const cdnPath = 'https://www.lvalive.com/cf/19/images/';
    function rcdn(s) {
        // find any /19/images references and point them to CDN.
        if (/^\/19\/images\//i.test(s)) {
            // special case for the image being at the
            // beginning of the string.
            s = s.replace(/^\/19\/images\//, cdnPath);
        }
        return s.replace(/([^f])\/19\/images\//g,
            function replacer(m, p1) {
                return p1 + cdnPath;
            }
        );
    }

    // observe images for lazy load.
    // Lazy load images should have src="/pics/spacer.gif" and
    // data-src="image URL".
    // This uses an intersection observer in cb_spa.lazy_img_io.
    // It is recreated on each page load for the images that
    // we watch on the new page.
    function observeLazyLoadImages() {
        let lli = qsaa('#cb-page-content-container img.io-lazy[data-src]');

        function loadLazyImage(i) {
            //console.log(`loadLazyImage ${i.dataset.src}`);
            // if we don't know whether we are webp
            // or not yet we need to wait if there
            // is srcsetwebp specified.
            if (i.dataset.srcsetwebp) {
                if (!document.body.classList.contains('webp') &&
                    !document.body.classList.contains('no-webp')) {
                   window.setTimeout(function() {
                       loadLazyImage(i);
                   }, 20);
                   return;
                }
            }
            if (document.body.classList.contains('webp') &&
                i.dataset.srcsetwebp) {
                // webp srcset if it was specified.
                i.srcset = rcdn(i.dataset.srcsetwebp);
            } else {
                if (i.dataset.srcset) {
                    // non-webp srcset if it was specified.
                    i.srcset = rcdn(i.dataset.srcset);
                }
            }
            // plain old data-src.
            i.src = rcdn(i.dataset.src);
            i.classList.remove('io-lazy');
        }
        if (!lli) {
            // no images to lazy load.
            return;
        }
        // set up lazy loading of images
        // if IntersectionObserver is supported by browser.
        if ('IntersectionObserver' in window) {
            if (cb_spa.lazy_img_io) {
                cb_spa.lazy_img_io.disconnect();
            }
            cb_spa.lazy_img_io = new IntersectionObserver(function(entries) {
                entries.forEach(function(entry) {
                    if (entry.isIntersecting) {
                        cb_spa.lazy_img_io.unobserve(entry.target);
                        loadLazyImage(entry.target);
                    }
                })
            }, { rootMargin: '0px'});
            lli.forEach(e => cb_spa.lazy_img_io.observe(e));
        } else {
            // if not supported, just load the images
            // right away.
            lli.forEach(a => loadLazyImage(a));
        }
    }

    // update links on the page that point to this server
    // so that they will stay in the SPA.
    function updateLinks() {
        let ogn = (new URL(location.href)).origin;
        qsaa('body a[href]:not(.link-updated):not([data-toggle]):not([data-fancybox])')
        .forEach(function(a) {
            a.classList.add('link-updated');
            let url = new URL(a.href);
            if (/\.(pdf|mp3|aspx)$/i.test(a.href)) {
                return;
            }
            if (ogn == url.origin) {
                a.onclick = aClick;
            }
        })
    }

    let actList = {
        // key - descriptor for the data-include list.
        // 0 - linked word/phrase in in page
        // 1 - description in modal.
        // 2 - array of images/alt
        actPicnicH: [ 'Picnic',
        `Capping off HIS-Ability week is the picnic on the ballfield!
        We’ll ride over to West Side and back on a tractor-pulled hayride with van-service for those who need it.
        After dinner we’ll enjoy fun and games on the ballfield before heading back.`,
        [["/19/images/img_activity_picnic_hisability.jpg", "Picnic at Camp Barakel"]]
        ],
        actPicnic: [ 'Picnic',
        `We love the outdoors and enjoy opportunities to eat meals outside on the soft green grass ballfields.
        Where there’s food and friends, there’s fun too, with games after the meal. `,
        [["/19/images/img_activity_picnic_hisability.jpg", "Picnic at Camp Barakel"]]
        ],
        actBoating: ['Boating',
        `Kayaks, rowboats, paddleboats, standup paddle boards, and canoes—we’ve got it all!`,
        [["/19/images/img_activity_boating_hisability.jpg","Boating on Shear Lake at Camp Barakel"]]],
        actKayaking:  [ 'Kayaking',
        `Get up close to the water. Our waterfronts are stocked with one- and two-person kayaks.`,
        [["/19/images/img_activity_kayaking_alt.jpg","Kayaking at Camp Barakel"],
        ["/19/images/img_activity_kayaking.jpg"]] ],
        actNineSquare:  [ 'Nine-Square',
        `Located on the West Side near the Dining Hall and on the
        East Side by the Basketball Court,
        Nine-Square pits you against eight
        other players in this vertical rendition of four square.`,
        [["/19/images/img_activity_ninesquare.jpg","Playing nine-square at Camp Barakel"]] ],
        actOctoball: [ 'Octoball',
        `It’s like dodgeball, but played on a sandy court and with all
        the action below the knees. There’s a court on the West Side
        near the dining hall and one on the East Side by the Soccer Field.`,
        [["/19/images/img_activity_octoball.jpg","Octoball at Camp Barakel"]] ],
        actPaddleboarding: [ 'Paddleboarding',
        `Get a new perspective on Shear Lake. Sitting or standing, our peaceful,
        private lake is perfect for beginners.`,
        [["/19/images/img_activity_paddleboarding.jpg","Paddleboarding at Camp Barakel"]]  ],
        actZipline:  [ 'Zipline',
        `Go flying through the air over beautiful Snow Valley on our 950-foot zipline. The zipline opened in 2009 and has folks from age 12 to 90 screaming through the valley. Five parallel lines mean you can take the leap right alongside your buddies. The first step is the hardest, but after that, enjoy the ride! For middle school and older. `,
        [["/19/images/img_activity_zipline.jpg","Ziplining at Camp Barakel"],
        ["/19/images/img_activity_zipline_dads.jpg"],
        ["/19/images/img_activity_zipline_girls.jpg"]] ],
        actHayride:  [ 'Hayride',
        `Pack your friends and family in among the hay bales as our tractor takes you to the north end of our property, past the ponds to some little-seen acres of woodlands.`,
        [["/19/images/img_activity_hayride.jpg","Hayride"]]],
        actHayrideHis: [ 'Hayride',
        `Pack your friends and counselor in among the hay bales as our tractor takes you from East Side to West Side and back again for our picnic on the ballfield!`,
        [["/19/images/img_activity_hayride_hisability.jpg","Hayride at Camp Barakel"]]],
        actSports:  [ 'Sports',
        `Our beautifully groomed ballfields, one on each side of the lake, have fields set up for baseball, softball, kickball, and soccer and can accommodate football and other field sports. We also have sand volleyball and basketball courts.`,
        [["/19/images/img_activity_sports_baseball.jpg","Sports at Camp Barakel"],
        ["/19/images/img_activity_sports_football.jpg"],
        ["/19/images/img_activity_sports_hisability_basketball.jpg"],
        ["/19/images/img_activity_sports_soccer.jpg"],
        ["/19/images/img_activity_sports_kickball.jpg"]] ],
        actHandcrafts:  [ 'Handcrafts',
        `Let your creativity flow! There are all different kinds of projects to choose from.`,
        [["/19/images/img_activity_handcrafts.jpg","Handcrafts at Camp Barakel"]] ],
        actSurprise:  [ 'Surprise Hour',
        `Ambush is our all-camp game held every evening. What are we playing tonight? It’s always a surprise!`,
        [["/19/images/img_activity_ambush_hisability.jpg","Playing ambush at Camp Barakel"]] ],
        actAmbush:  [ 'Ambush',
        `Ambush is our all-camp game held every evening in the summer. What are we playing tonight? It’s always a surprise!`,
        [["/19/images/img_activity_ambush.jpg","Playing ambush at Camp Barakel"],
        ["/19/images/img_activity_ambush_alt.jpg"]] ],
        actHiking:  [ 'Hiking',
        `Walk around our spring-fed lake or venture further into the forest near Black Bear Creek. With 350 acres of Michigan woodland, whichever trail you choose promises beautiful views in a tranquil setting.`,
        [["/19/images/img_activity_lake_fall.jpg","Shear Lake in the Fall"],
        ["/19/images/img_activity_hiking_fall.jpg","Hiking at Camp Barakel. Photo (cc) by Curt Mill"],
        ["/19/images/img_activity_hiking_spring.jpg","Path around Shear Lake at Camp Barakel"]] ],
        actBiking:  [ 'Biking',
        `The Bike Shop is stocked with late-model Specialized Mountain Bikes.
        Summer campers in middle school and older are offered a bike tour of Camp Barakel’s miles and miles of mountain bike trails.
        Retreaters have the opportunity to check out a bike and explore Barakel on two wheels.`,
        [["/19/images/img_activity_biking.jpg","Biking at Camp Barakel"],
        ["/19/images/img_activity_biking_alt.jpg"]] ],
        actBoulderingWall:  [ 'Bouldering&nbsp;Wall',
        `The Bouldering Wall is a horizontal climbing wall for all ages. With a graded difficulty, it gets harder as you move along! Challenge yourself to see how far through the alphabet you can make it without touching the ground or the top of the wall.`,
        [["/19/images/img_activity_boulderingwall_alt.jpg","The bouldering wall at Camp Barakel"],
        ["/19/images/img_activity_boulderingwall.jpg"]] ],
        actFishing:  [ 'Fishing',
        `In a boat or from the dock, the fishing is great in Shear Lake.
        We’ll provide the equipment—catching the fish is up to you!
        No license required on our private lake.`,
        [["/19/images/img_activity_fishing_alt.jpg","Fishing at Camp Barakel"],
        ["/19/images/img_activity_fishing_dad.jpg"],
        ["/19/images/img_activity_fishing_hisability.jpg"],
        ["/19/images/img_activity_fishing.jpg"]] ],
        actFrisbeeGolf : [ 'Frisbee&nbsp;Golf',
        `Put a spin on golf! Our course begins near the ballfield Volleyball court on the West Side.`,
        [['/19/images/img_activity_frisbeegolf.jpg', 'Frisbee Golf at Camp Barakel']]

        ],
        actRiflery:  [ 'Riflery',
        `Air rifles are available for young campers and .22 rifles for older campers.
        Our instructors emphasize safety and precision as summer campers advance through a
        series of graduated lessons with awards for marksmanship.
        Retreaters can enjoy a friendly competition to see who has the best shot.`,
        [["/19/images/img_activity_riflery_alt.jpg","Riflery at Camp Barakel"],
        ["/19/images/img_activity_riflery.jpg"]] ],
        actThunderExpress:  [ 'Thunder&nbsp;Express',
        `Get ready for speed! Thunder Express is a giant, 160-foot-long tube slide that
        takes you underground aboard a plastic sled. The louder you scream, the faster
        you go!`,
        [["/19/images/img_activity_thunderexpress_boys.jpg","Thunder Express slide at Camp Barakel"],
        ["/19/images/img_activity_thunderexpress_outside.jpg"],
        ["/19/images/img_activity_thunderexpress.jpg"]] ],
        actBlob:  [ 'The Blob',
        `If you’re on the East Side try the Blob!
        You will be catapulted in the air from this giant pillow.
        Or you could opt to just watch—blobbing is a great spectator sport!
        We also have a mini version on the West Side.`,
        [["/19/images/img_activity_blobbing.jpg","The Blob!"]] ],
        actBoxHockey: [
        'Box&nbsp;Hockey',
        `Simple equipment, loads of fun. It’s a classic Barakel game.
        Challenge your friends to a friendly contest.
        Boxes located throughout camp on the West and East Side.`,
        [["/19/images/img_activity_boxhockey.jpg", "Box Hockey"]] ],
        actCanoeing:  [ 'Canoeing',
        `Campers have been enjoying the beauty of Shear Lake in canoes since the 1950s.
        It’s still a favorite way to find turtles, fish, or
        just enjoy our serene, private lake.`,
        [["/19/images/img_activity_canoeing.jpg","Canoeing on Shear Lake at Camp Barakel"],
        ["/19/images/img_activity_canoeing_alt2.jpg"],
        ["/19/images/img_activity_canoeing_alt3.jpg"]] ],
        actTeams:  [ 'Teams',
        `Unique to High School week, we combine cabins to form three co-ed teams that compete all week for the top prize. Each team has its own team leader, name, flag, and cheers. Teams pool their points through ambushes, archery and riflery, and a host of other crazy games and competitions. Get ready for an experience bursting with intense but fun competition!`,
        [["/19/images/img_activity_teams.jpg","Stinky Pete's Bearded Elite at Camp Barakel"]] ],
        actBanquet:  [ 'Banquet',
        `Capping off our High School week is the all-camp banquet, a special, themed meal with games, costumes, and more. It’s a time to meet new friends and spend time with old friends.`,
        [["/19/images/img_activity_banquet_alt.jpg","The Sr. High banquet at Camp Barakel"]] ],
        actCampout:  [ 'Campout',
        `Junior High and Senior High campers extend their cookout into an overnight experience, sleeping under the stars and cooking their breakfast over the campfire.`,
        [["/19/images/img_activity_campout.jpg","Making S'mores"]] ],
        actCookout:  [ 'Cookout',
        `Cook your own dinner over a campfire, and play games with your tribe in the woods! Weather permitting, junior and middle school campers spend every Thursday evening in the forest. `,
        [["/19/images/img_activity_campout.jpg","Making S'mores"]] ],
        actCookoutCampout: [ 'Cookout / Campout',
        `Cook your own dinner over a campfire, and play games with your tribe in the woods!
        Weather permitting, junior and middle school campers spend every Thursday evening
        in the forest. Junior High and Senior High campers extend their cookout into an
        overnight experience, sleeping under the stars and cooking their breakfast over
        the campfire.`,
        [["/19/images/img_activity_campout.jpg","Making S'mores"]] ],
        actArchery:  [ 'Archery',
        `Traditional recurve and compound bows are available at our two archery ranges, or bring your own (we’ll store campers’ equipment at the range for safety).
        Summer campers advance through a skills-building program and can earn awards for shooting skills.
        Retreaters compete in a friendly competition or just shoot for fun!`,
        [["/19/images/img_activity_archery.jpg","A camper shooting archery at Camp Barakel"],
        ["/19/images/img_activity_archery_couple.jpg","Archery at Camp Barakel"],
        ["/19/images/img_activity_archery_alt.jpg"],
        ["/19/images/img_activity_archery_hisability.jpg"],
        ["/19/images/img_activity_archery_women.jpg"],
        ["/19/images/img_activity_archery_sign.jpg"]] ],
        actGameRoom:  [ 'Gameroom',
        `Our two gamerooms, one in the lower level of each Chapel, feature classics like foosball, ping-pong, and air hockey alongside new favorites (Dutch Shuffleboard, anyone?).`,
        [["/19/images/img_activity_gameroom.jpg","The Gameroom at Camp Barakel"],
        ["/19/images/img_activity_gameroom_hisability.jpg"],
        ["/19/images/img_activity_gameroom_hockey.jpg"]] ],
        actHammockVillage : [
        'Hammock Village',
        `The best place at camp to just hang out.
        Bring your own or use one of ours.
        Now on both East Side and West Side!`,
        [["/19/images/img_activity_hammocks_counselor.jpg","Hammock Village at Camp Barakel"]]
        ],
        actSwimming:  [ 'Swimming',
        `Certified lifeguards and crystal-clear water—swimming Shear Lake is summer camp at its best. The docks and diving rafts are a wonderful way to jump in and cool off. If you’re on the East Side try the Blob! You will be catapulted high in the air off of this giant pillow. Or just sit and watch—blobbing is a great spectator sport.`,
        [["/19/images/img_activity_swimming_alt.jpg","Swimming at Camp Barakel"],
        ["/19/images/img_activity_swimming.jpg"],
        ["/19/images/img_activity_swimming_hisability.jpg"]] ],
        actTetherball : [ 'Tetherball',
        `An old-school camp favorite.
        The goal is to wrap the ball around the pole before your opponent does.`,
        [["/19/images/img_activity_tetherball.jpg","Tetherball at Camp Barakel"]]
        ],
        actWeCanDoIts: ['WeCanDoIt Challenges',
        `WeCanDoIt Challenges are Barakel’s creative
        team-building activities for tribes to complete together.`,
        [["/19/images/img_activity_wecandoits.jpg","WeCanDoIts at Camp Barakel"]]],
        actTubing:  [ 'Tubing',
        `Snow Valley is the site of our twin tubing runs.
        Fly down these massive hills by yourself or link up in a train of friends.
        Then relax as our cable tow system takes you back to the top of the hill for another wild round.`,
        [["/19/images/img_activity_tubing.jpg","Tubing at Camp Barakel"]] ],
        actIceSkating:  [ 'Ice Skating',
        `Nestled into a wooded hillside, our skating rinks are perfect for
        this Pure Michigan winter activity.
        Check out skates from us at our Skate Hut or bring your own.`,
        [["/19/images/img_activity_iceskating.jpg","Ice skating at Camp Barakel"]] ],
        actCrossCountrySkiing:  [ 'Cross-country Skiing',
        `With miles and miles of beautiful trails, cross-country skiing is a great way to enjoy
        the winter wonder of our snow-covered forest. Our trails are groomed
        regularly by our staff so they’re always ready for skiers.`,
        [["/19/images/img_activity_skiing_girls.jpg","Cross-country skiing at Camp Barakel"],
        ["/19/images/img_activity_skiing_alt.jpg"]
        ] ],
        actBroomBall:  [ 'Broomball',
        `Pick up a broom and test your skills in this classic twist on hockey.`,
        [["/19/images/img_activity_broomball_alt2.jpg","Broomball at Camp Barakel"]] ],
        actHockey:  [ 'Hockey',
        `Grab your stick, put on a helmet, and take to the ice in our very own Barakel Hockey Rink.
        Bring your own gear or borrow sticks and pucks from us. The hockey rink requires a helmet.
        We’ll have plenty, but you can bring your own.`,
        [["/19/images/img_activity_hockey.jpg","Hockey at Camp Barakel"]] ],
        actIceFishing:  [ 'Ice&nbsp;Fishing',
        `When the water on Shear Lake freezes, it’s time for some great ice fishing.
        Bring your own gear or use ours and enjoy the bounty of our private, spring-fed lake.`,
        [["/19/images/img_activity_icefishing_alt.jpg","Ice fishing at Camp Barakel"],
        ["/19/images/img_activity_icefishing.jpg" ]] ],
        actSnowFootball:  [ 'Flag Football',
        `Grab a ball and head to the ballfield with your friends and family for a game of flag football.
        We’ll provide the supplies, you bring the competition.`,
        [["/19/images/img_activity_snowfootball.jpg","Snow Football at Camp Barakel"]] ],
        actScavHunt:  [ 'Scavenger&nbsp;Hunt',
        `Set a course to several new and known locations around Barakel&rsquo;s beautiful property completing as many challenges as you can before time runs out. `,
        [["/19/images/25/img-activity-scav-q65","Scavenger Hunt at Camp Barakel"]] ],
        actSnowShoeing:  [ 'Snowshoeing',
        `Snowshoes can be rented from our Ski Hut in Snow Valley. With miles of trails, snowshoeing takes you back to the way the first pioneers settled the Northern Michigan winters.`,
        [["/19/images/img_activity_snowshoeing.jpg","Snow shoes photo by Aaron Huber on Unsplash"]] ],
        actIceBowling:  [ 'Human&nbsp;Ice&nbsp;Bowling',
        `Don a life jacket and helmet and then hold on tight as your sled goes sliding across the ice into our life-size bowling pins.`,
        [["/19/images/img_activity_snowbowling.jpg","Human Ice Bowling at Camp Barakel"]] ],
        actHumanIceBowling:  [ 'Human Ice Bowling',
        `Don a life jacket and helmet and then hold on tight as your sled goes sliding across the ice into our life-size bowling pins.`,
        [["/19/images/img_activity_snowbowling.jpg","Human Ice Bowling at Camp Barakel"]] ],
        actCampMuseum:  [ 'Camp&nbsp;Museum',
        `In the balcony of the West Side Chapel there is a museum housing artifacts from around the world. While some of these items come from the pages of Barakel history, others have been donated by friends of camp.`,
        [["/19/images/img_activity_museum.jpg","The museum at Camp Barakel"]] ],
        actEscapeRoom:  [ 'Escape&nbsp;Room',
        `Riddles, clues, speed, and observation are in full force as your group works to escape the room faster than the competing teams!`,
        [["/19/images/25/img-activity-escape-room-q80.webp","Escape Room"]] ],
        actPickleball:  [ 'Pickleball',
        `Located on the East Side, we are happy to offer the use of 3 pickleball courts. Feel free to bring your paddle from home, or use one provided by Camp! Whether you’re a seasoned pro or a beginner, just give it a shot.`,
        [["/19/images/25/pickle800a.jpg","Pickleball"]] ],

    }

    function alkfa(a) {
        // return activity key in actList.
        let m = a.match(/(\w+)(-\d)?/);
        a = m[1];
        if (!(a in actList)) {
            console.log(`no activity ${a}`);
            return '';
        }
        return a;
    }

    function familyCampFullnessInfo(e) {
        let fcExtra = '';
        // if family camp registrations are being accepted,
        // let people know about RV and cabins/lodges.
        if (e.total_space & 1) {
            fcExtra = `<div class="ml-2 small">
                RV Park: ${e.total_space & 4 ? 'Full' : 'Space Available'}<BR>
                Cabins/Lodges:  ${e.total_space & 2 ? 'Full' : 'Space Available'}
                </div>`;
        }
        return fcExtra;
    }

    // expand camp activities <div class="activities">
    function expandActivities() {

        let act = qs('div.activities:not(.filled-activities-list)[data-include]');
        if (!act) {
            // No non-filled activities list on this page.
            return;
        }

        let alist = act.getAttribute('data-include');

        // activity names have only non-whitespace...
        alist = alist.split(' ').filter(e => /\w/.test(e))
        .map(s => { let m = s.match(/\w+(-\d)?/); return m[0] });
        if (alist.length < 1) {
            console.log(`no valid activities in data-include ${act.getAttribute('data-include')}`);
            return;
        }

        // if there is a special image for this list, get it from the
        // contents of the .activities DIV.
        let spImage = act.innerHTML;
        if (!/\w/.test(spImage)) {
            spImage = `<img src="${blankImage}" data-src="/19/images/img_activities_summer_blob.png" alt="Blobbing at Camp Barakel">`;
        }


        // create the list of descriptors, then the list of modals, then
        // add them all to the HTML.
        act.innerHTML = [
            `<div class="row no-gutters">
            <div class="d-none d-lg-block col-lg-5 col-xl-4 activities-head-img-c">${spImage}</div>
            <div class="col-12 col-lg-7 col-xl-8">
                <h5>What can I do at Camp?</h5>
                <ul>`,
                alist.map(function(a) {
                    let alk = alkfa(a);
                    if (!alk) {
                        return '';
                    }
                    return `<li><a href="#" data-toggle="modal" data-target="#${alk}">${actList[alk][0]}</a></li>`
                }).join(' '),
                `<li><a href="/activities-facilities" title="View all camp activities">&amp; more!</a></li>
                </ul>
            </div>
            </div>`,
            // next one activity modal per alist entry.
            alist.map(function(a, i) {
                let alk = alkfa(a);
                if (!alk) {
                    return '';
                }
                let imageIndex = 0;
                let m = a.match(/-(\d)$/);
                if (m) {
                    imageIndex = +m[1];
                }
                let alki = actList[alk][2][imageIndex]; // image info
                let altTag = actList[alk][2][0][1]; // default alt tag is from first image.
                if (alki.length > 1) {
                    altTag = alki[1]; // alt tag for the image
                }
                return `
<div class="modal fade" id="${alk}" tabindex="-1" role="dialog" aria-labelledby="Modal${i}" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="Modal${i}">${actList[alk][0]}</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <img src="${blankImage}" class="io-lazy" data-src="${alki[0]}" alt="${altTag}">
            <div class="modal-body">
                ${actList[alk][1]}
            </div>
            <div class="modal-footer"><a href="/activities-facilities" data-dismiss="modal"
                class="mr-auto" title="View all Activities">View All Activities <i class="fas fa-angle-right"></i></a>
                <button type="button" class="btn btn-outline-secondary float-right btn-sm" data-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
</div>`
            }).join(' ')
        ].join('');
        updateLinks();

        function handleLoading() {
            // load header image.
            let himg = qs('.activities-head-img-c img[data-src]');
            if (himg) {
                let s = himg.getAttribute('data-src');
                himg.src = s;
            }

        }

        // set up lazy loading of activities images
        // if IntersectionObserver is supported by browser.
        if ('IntersectionObserver' in window) {
            // see when the image comes into view then load it.
            if (cb_spa.act_io) {
                cb_spa.act_io.disconnect();
            }
            cb_spa.act_io = new IntersectionObserver(function(entries) {
                entries.forEach(function(entry) {
                    if (entry.isIntersecting) {
                        // the activities element is on the screen.
                        // load up the images.
                        cb_spa.act_io.unobserve(entry.target);
                        handleLoading();
                    }
                })

            }, { rootMargin: '0px' });
            cb_spa.act_io.observe(act);

        } else {
            // don't bother with lazy loading
            // without IntersectionObserver.
            // just load the images right away.
            handleLoading();
        }

        act.classList.add('filled-activities-list');
    }

    // common text
    function expandMacros() {
        // summer registration info further expands with
        // some of the other macros below.
        let txt = qs('.registration-info.summer')
        if (txt) {
            txt.innerHTML = `
            <h3 class="icon border-bottom"><i class="fas fa-check-circle"></i> Registration Info</h3>
            <p class="summer-fees" data-fee-total="150"></p>
            <p class="scholarship-text"></p>
            <p class="refunds-msg"></p>`
        }
        // scholarships
        txt = qs('.scholarship-text');
        if (txt) {
            txt.innerHTML = `<strong class="small-caps">Scholarships</strong>
            <span class="sep dot">•</span>
            The true full cost for a full week of camp is more than $600,
            but about half of that cost is a gift to your family from people
            who donate time or resources.
            We do not offer additional scholarships or sibling discounts.`;
        }

        txt = qs('.summer-fees');
        if (txt) {
            let explorerCamp = qs('table[data-events="sumex"]');
            let weekEvent = explorerCamp ? 'event' : 'week';
            txt.innerHTML = `<strong class="small-caps">Fees</strong> <span class="sep dot">•</span>
            Your cost for the ${weekEvent} is $<span class="camp-fee-lookup fee-0"></span>.
            A $<span class="camp-fee-lookup fee-2">50</span> deposit is due with registration.
            The balance is due one week prior to arrival.

            The balance may be paid by logging into your Camp Barakel account
            and clicking on the “Pay More” button
            on your <a href="/register">registration</a>.`;
            txt.classList.add('lead');
        }

        txt = qs('.summer-to-from-camp-busses-text');
        if (txt) {
            txt.innerHTML = `
            <h3 class="icon"><i class="fas fa-bus"></i> To &amp; from Camp</h3><img
            src="/pics/spacer.gif" data-src="/19/images/img_buses_arrive.jpg"
            class="io-lazy img-fluid" alt="The Barakel buses arrive on East Side">
            <p><span class="s1-var">Our big green buses make three conveniently located stops;
            pickup is on Monday and
            drop-off is on Saturday</span>. This service is provided at no additional charge.
            Each bus is Department of Transportation inspected and driven by a
            licensed commercial driver and accompanied by adult attendants to assist
            campers.</p>
            <p>You will have the opportunity to choose your camper’s
                travel plans when you fill out their CampDoc profile.
            </p>
            <p><a id="bus-sched-link" href="/events/summer-bus-schedule"
            title="View our summer bus schedule"
            class="btn btn-outline-secondary btn-sm">View Bus Schedule
            <i class="fas fa-angle-right"></i></a></p>
            <p class="summer-dlbusschedule"></p>`;

            // for hisability the first sentence is a little different.
            if (qs('.reg-table table[data-events="sumhisa"]')) {
                qs('.summer-to-from-camp-busses-text .s1-var').innerHTML = `
                Our big green buses make three conveniently located stops;
                pickup is on Monday and drop-off is on Friday`;
                let bsa = qs('#bus-sched-link');
                bsa.href = '/events/hisability-bus-schedule';
                bsa.title = 'View the HIS-ability bus schedule';
            }
        }

        txt = qs('.summer-dlbusschedule');
        if (txt) {
            // button to download bus schedule.
            // is this a hisability link?
            // this is not currently supported (Jan 2024)
            if (false && (txt.classList.contains('his-ability') ||
            qs('.reg-table table[data-events="sumhisa"]'))
                ) {
                    txt.innerHTML = `<a class="btn btn-outline-secondary btn-sm"
                    href="/bn_brochure/2022/HIS-ability-bus-schedule-2022.pdf"
                    title="Download 2022 HIS-ability Bus Schedule">
                    Download Schedule
                    <i class="fas fa-angle-right"></i></a>
                    </a>`;
            }
        }

        // more summer camp
        txt = qs('.summer-what-to-pack-text');
        if (txt) {
            let fn = qs('table[data-events="sumex"]') ?
                'Important Details Explorer.pdf' :
                '2026-Camp-Barakel-Important-Details.pdf';
            if (qs('table[data-events="sumhisa"]')) {
                fn = 'Important Details HIS-ability.pdf'
            }
            txt.innerHTML = `
            <h3 class="icon"><i class="fas fa-suitcase"></i> What to Pack</h3><img
                    src="/pics/spacer.gif" data-src="/19/images/img_luggage.jpg"
                    class="io-lazy img-fluid" alt="Luggage at Camp Barakel">
            <p>
                As your camp week gets closer, you’ll want to read the
                last-minute details document closely. This is where you find out what to pack,
                what to leave home and what needs to be done before your camper arrives at Barakel.
                <BR><BR>
                <a target="_blank" class="btn btn-outline-secondary btn-sm"
                    title="View Important Details"
                    href="/bn_brochure/2026/${fn}">Important Details
                    <i class="fas fa-angle-right"></i></a>
            </p>`
        }
        txt = qs('.summer-how-camp-works-younger-text');
        if (txt) {
            txt.innerHTML = `
            <h3 class="icon"><i class="fas fa-clipboard-check"></i>
            How Camp Works</h3><img
                 src="/pics/spacer.gif"
                 data-src="${txt.dataset.img || '/19/images/img_friends.jpg'}"
                 class="io-lazy img-fluid" alt="Counselors at Barakel">
            <p>
            Every camper will be a part of a cabin group (we call them tribes).
            If you come with one or two other campers
            that want to be with you in the same tribe,
            we will make sure that happens. One of our carefully selected
            and trained counseling staff will live, play, and worship with
            each tribe throughout the whole week. Each day includes times
            of worship, organized activities, free time options,
            eating and resting.
            We gather twice a day for Chapel where we sing together and
            learn from God’s word.
            </p>
            <div class="summer-faq-text"></div>`
        }
        txt = qs('.summer-faq-text');
        if (txt) {
            txt.innerHTML = `<p><a href="/summerfaq"
            title="View the Summer Frequently Asked Questions"
            class="btn btn-outline-secondary btn-sm">Summer
            <acronym title="Frequently Asked Questions">FAQ</acronym>
            <i class="fas fa-angle-right"></i></a></p>`;
        }
        txt = qs('.summer-housing-meals-text-1');
        if (txt) {
            // summer west side
            txt.innerHTML = `
            <h3 class="icon"><i class="fas fa-bed"></i>
            Housing &amp; Meals</h3>
            <img src="/pics/spacer.gif" data-src="/19/images/img_westside_dininghall.jpg" class="io-lazy img-fluid" alt="The Barakel Westside dining hall tables">
            <p>Our West Side camp features beautiful, modern lodges, tucked into the woods with easy walking access to activities.
            Each lodge has four sleeping units (each with their own bathroom) and a beautiful Great Room for fun and games.
            Meals will all be prepared in our Dining Hall.
            One supper will be cooked around a campfire and another enjoyed as a picnic.
            Please let us know of any medically-necessary dietary needs on the health form.</p>`
        }
        txt = qs('.summer-housing-meals-text-2');
        if (txt) {
            // summer east side
            txt.innerHTML = `
            <h3 class="icon"><i class="fas fa-bed"></i>
            Housing &amp; Meals</h3>
            <img src="/pics/spacer.gif" data-src="/19/images/img_eastside_cabin.jpg" class="io-lazy img-fluid" alt="The Barakel Westside dining hall tables">
            <p>Campers sleep in our clean, well-constructed cabins with newly renovated bathrooms.
            They are carefully nestled into our mature forest on a hill overlooking Shear Lake.
            Meals are enjoyed in our modern dining hall with each cabin group eating together
            around one table.
            One supper will be cooked around a campfire and another enjoyed as a picnic.
            Please let us know of any medically-necessary dietary needs on the health form.</p>`
        }
        txt = qs('.summer-reg-table-info');
        if (txt) {
            txt.innerHTML = `<p>*The grade your child will be entering this fall. <BR>
            <span class="d-none d-sm-inline waitlist-info"></span></p>`
        }
        txt = qs('.summer-camp-days');
        if (txt) {
            txt.innerHTML = `<span class="sep">|</span>
            <i class="far fa-calendar-alt"></i>&nbsp;
            <strong>Days:</strong>
            Mon<span class="d-none d-md-inline">day</span>–Sat<span class="d-none d-md-inline"
            >urday</span>`;
        }
        txt = qsaa('.waitlist-header'); // could be multiple headers on a page.
        if (txt) {
            txt.forEach(t => {t.innerHTML = `<a href="#"
            data-toggle="modal"
            data-target="#mdlWaitlistInstructions">Waitlist<sup>&Dagger;</sup></a>`
            })
        }
        txt = qs('.waitlist-info');
        if (txt) {
            txt.innerHTML = `<sup>&Dagger;</sup> <a href="#"
            data-toggle="modal" data-target="#mdlWaitlistInstructions">Waitlist Instructions.</a>
            <div class="modal fade" id="mdlWaitlistInstructions" tabindex="-1" role="dialog"
            aria-labelledby="mdlWaitlistInstructions" aria-hidden="true">
            <div class="modal-dialog modal-dialog-centered" role="document">
                <div class="modal-content">
                    <div class="modal-header">
                        <h5 class="modal-title">Waitlist Instructions</h5>
                        <button type="button" class="close" data-dismiss="modal"
                            aria-label="Close"><span aria-hidden="true">&times;</span></button>
                    </div>
                    <div class="modal-body">
                    <p>
                    For summer camp, you can add yourself to the waitlist online.
                    </p>
                        <p>
                        For other events,
                            you will either add yourself to the waitlist online, or it will be through the mail depending on the event.
                            If you do not see a waitlist button next to the event on the event page,
                            please contact the registrar at registrar@campbarakel.org to receive the waitlist form and further instructions.
                        </p>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-outline-secondary float-right btn-sm"
                            data-dismiss="modal">Close</button>
                    </div>
                </div>
            </div>
            </div>`;

            // for summer camp, different instructions as the waitlists are managed
            // by the registration system.
            let rt = qs('.reg-table table[data-events]');
            if (rt && /^sum/i.test(rt.dataset.events)) {
                txt.querySelector('.modal-body').innerHTML = `<p>
                You can join the waiting list for this event on line by
                clicking the 'Waitlist' button.
                </p>`
            }
        }

        let setxt = qs('.summer-common-end');
        if (setxt) {
            // retrieve common summer end text
            // and then add it to the page.
            //dbGET('/19/spa/summer21-covid.htm', function(t) {
            //    setxt.innerHTML = t;
            //})
        }

        // non summer
        txt = qs('.retreat-refunds-msg, .refunds-msg');
        if (txt) {
            txt.innerHTML = `<strong class="small-caps">Refunds</strong>
            <span class="sep dot">•</span> The deposit is refundable as
            long as we are notified at least two weeks prior to arrival. The remaining balance is always refundable if we are notified of a cancellation.`
        }
        txt = qs('.relational-waitlist-message');
        if (txt) {
            txt.innerHTML = `<strong class="small-caps">Waitlist</strong>
            <span class="sep dot">•</span> Please email registrar@campbarakel.org
            for information on how to get on the waitlist.`
        }
        txt = qs('.adult-1-fees');
        if (txt) {
            txt.innerHTML = `<strong class="small-caps">Fees</strong> <span class="sep dot">•</span>
            The fee is $<span class="camp-fee-lookup fee-0"></span> per person.
            The weekend is open to those who are high school seniors and older.
            A deposit of $<span class="camp-fee-lookup fee-2"></span> should be
            made with your registration
            (with the balance due one week prior to the event).`
        }
        txt = qs('.retreat-pc-fees[data-pc]');
        if (txt) {
            let pc = txt.dataset.pc.split(' ');
            if (pc.length != 2) {
                pc = ['parent', 'child']
            }
            txt.innerHTML = `<strong class="small-caps">Fees</strong>
            <span class="sep dot">•</span> The fee is
            $<span class="camp-fee-lookup fee-0"></span>
            for ${pc[0]} and one ${pc[1]},
            $<span class="camp-fee-lookup fee-1"></span>
            for each additional ${pc[1]}.
            Deposits cost
            $<span class="camp-fee-lookup fee-3"></span> per person
            (with the balance due one week prior to the event).`;
        }
        txt = qs('.rt-balance-due');
        if (txt) {
            txt.innerHTML = `<p><strong class="small-caps"><i class="far fa-credit-card"></i> Balance
            Due</strong> <span class="sep dot"> • </span>
            Any remaining balance is due one week prior to arrival.
            You may pay the balance online by logging into your
            Camp Barakel account and clicking on the “Pay More” button on your
            <a href="/register">registration</a>.</p>`;
        }

        txt = qs('.retreat-housing-meals');
        if (txt) {
            txt.innerHTML = `
            <h3 class="icon"><i class="fas fa-bed"></i> Housing &amp; Meals</h3>
            <img src="/pics/spacer.gif" data-src="/19/images/img_lodge_lobby.jpg"
                alt="The lobby of a Barakel lodge" class="io-lazy img-fluid">
            <p class="lead">Campers sleep on East Side in our cozy cabins or on West Side in our beautiful lodges.</p>
            <p>Tucked into the woods, these are all carpeted, heated,
            and furnished with twin-sized bunk beds.
            A bathroom (including showers) is connected to each sleeping unit.
            Access to some housing involves using stairs.
            Please let us know if you have mobility concerns.</p>
            <p>Off menu food preparation is not available this season.  Please email <a href="mailto:foodservice@campbarakel.org">FoodService@CampBarakel.org</a> to discuss meals for the retreat.</p>
            `;
        }

        txt = qs('.about-staff-section');
        if (txt) {
            txt.innerHTML =
            `<h3 class="icon"><i class="fas fa-user-friends"></i> Resident Staff</h3>
            <div class="staff-pic-view-larger"></div>
            <p>Camp Barakel is blessed with men and women who love God by serving as Resident Missionary Staff.</p>
            <p class="no-bg-color"><a href="/about-our-staff" class="btn btn-sm btn-primary"
              title="Learn more about our staff">Meet the Resident Staff <i class="fas fa-angle-right" aria-hidden="true"></i></a></p>`
        }
        txt = qs('.about-our-mission');
        if (txt) {
            txt.innerHTML =
            `<hr><h5>Our Mission</h5><p>
            Our mission is to give a thoroughly Biblical declaration of the
            glories of God among the entire Barakel community, with a view to
            gathering worshippers of Jesus Christ who magnify God through the
            gladness of radically obedient lives. All to the glory of God!
            <BR>
            <a href="/beliefs" title="Learn more about our staff">Read our essential beliefs
            <i class="fas fa-angle-right" aria-hidden="true"></i></a></p>`
        }

        txt = qs('.staff-pic-view-larger');
        if (txt) {
            txt.innerHTML = `<a href="/19/images/26/RMS2026-03-2000.jpg" data-fancybox="gallery"
            title="View larger photo"><img
            data-src="/19/images/26/RMS2026-03-800.jpg"
            class="io-lazy img-fluid mb-3 shadow"
            alt="The resident staff of Camp Barakel (March 2026)"></a>`;
        }

        if (qs('.camp-fee-lookup')) {
            // provide fee data with info from database.
            getEventCost(function(fees) {
                qsaa('.camp-fee-lookup').forEach(function(el) {
                    for (let i=0; i<4; i++) {
                        if (el.classList.contains(`fee-${i}`)) {
                            el.innerHTML = fees[i];
                        }
                    }
                    if (el.classList.contains('fee-college')) {
                        el.innerHTML = 75;
                    }
                });
            });
        }

        txt = qs('.home-current-info-common');
        if (txt) {
            txt.innerHTML = `<h3>Registration Links</h3>
            <p class="ml-3"><a href="/register">Pay my balance.</a><BR>
            <a href="/register">Register for an event at Camp Barakel.</a></p>`;
        }
    } // end expandMacros()

    // boy girl TD for wait list or
    // space available.
    function bgTD(b, g, cls, bShowNumbers) {
        if (b < 0) {
            b = 0;
        }
        if (g < 0) {
            g = 0;
        }
        if (!bShowNumbers) {
            b = b > 0 ? 'Yes' : 'No';
            g = g > 0 ? 'Yes' : 'No';
        }

        cls = cls ? `class="${cls}"` : '';
        return `<td ${cls}>
            <span class="boy"><i class="fas fa-male"></i> ${b}</span>
            <span class="sep dot">•</span>
            <span class="girl"><i class="fas fa-female"></i> ${g}</span>
            </td>`;
    }

    // get the event cost info and call cb
    // with the results.
    // if no event cost do nothing.
    function getEventCost(cb) {
        // if no schedule table then we are done.
        let rt = qs('.reg-table table[data-events]');
        if (!rt) {
            return;
        }

        let evregexpStr = rt.dataset.events;
        let evregexp = new RegExp(evregexpStr, 'i');
        getSchedUpdate(function(j) {
            let e = j.sdt
                .find(e => evregexp.test(e.campevent_id));
            if (e) {
                cb([
                    e.registrationamount,
                    e.registrationeachadditionalamount,
                    e.depositamount,
                    e.depositeachadditionalamount
                ])
            }
        })
    }

    // fill in schedule table on individual events pages.
    function expandScheduleTable() {
        // if no schedule table then we are done.
        let rt = qs('.reg-table table[data-events]');
        if (!rt) {
            return;
        }

        let evregexpStr = rt.dataset.events;
        let evregexp = new RegExp(evregexpStr, 'i');

        // get event info from the server and then populate
        // the schedule table with the data.
        getSchedUpdate(function(j) {
            let matchingEvents = j.sdt
            .filter(e => evregexp.test(e.campevent_id));
            let anyWaitList = 0;
            let eventOpeningsCount = 0;
            let bRegOpen = matchingEvents.some(e => e.online_OK);
            let me0 = matchingEvents.length && matchingEvents[0];

            // family camp reg open is different
            if (me0 && /family/i.test(me0.name))
            {
                bRegOpen = '' != familyCampFullnessInfo(me0);
            }
            if (me0 && /ability/i.test(me0.name)) {
                bRegOpen = !!seasonOpenDates.hisability
            }

            if (bRegOpen) {
                // add reg-open class to .reg-table.
                rt.parentElement.classList.add('reg-open');
            } else {
                // mark column headers involving openings and registrations
                // as .only-when-reg-open
                let thr = rt.querySelector('tr'); // header row
                if (thr) {
                    nar(thr.querySelectorAll('td,th'))
                    .filter(t => /wait|open|register/i.test(t.innerHTML))
                    .forEach(function(t) {
                        t.classList.add('only-when-reg-open');
                    })
                }

                // add a message if we know the date
                // when registrations open.
                if (me0)
                {
                    let sod = seasonOpenDates[me0.season];
                    if (/family/i.test(me0.name)) {
                        sod = seasonOpenDates.family;
                    }
                    if (/ability/i.test(me0.name)) {
                        sod = seasonOpenDates.hisability;
                    }
                    if (/teen/i.test(me0.name)) {
                        sod = seasonOpenDates.winterTeen;
                    }

                    // make sure there are non-cancelled events before showing a message
                    // about when you can register.  We don't want to show a message about
                    // when you can register if there are no events to register for.
                    let nonCancEvents = matchingEvents.some(e => !e.isCanc);

                    if (sod && nonCancEvents) {
                        let rbl = qs('.reg-table h3');
                        if (rbl) {
                            if (!/not hosting/.test(sod)) {
                                rbl.insertAdjacentHTML('beforeend',
                                    `<BR><BR><span style="text-transform: none;font-size:max(0.8vw, 0.6rem)">&nbsp;
                                    Registrations open ${sod}.</span>`);
                                if (/summer/i.test(me0.season)) {
                                    // summer camp registration instructions and FAQs
                                    let sumMsg = '<p>Please see these ' +
                                    '<a href="/bn_brochure/2026/Registration-Day-Details.pdf" target="_blank">registration instructions</a>' +
                                    ' and <a href="/bn_brochure/2026/Registration-Day-FAQs.pdf" target="_blank">FAQs</a>.</p>';
                                    rbl.insertAdjacentHTML('afterend', `${sumMsg}`);
                                }
                            } else {
                                rbl.insertAdjacentHTML('afterend', `<p>${sod}</p>`);
                            }
                        }
                    }
                }
            }

            function setEventsOpeningsHTML() {
                let eo = qs('.reg-table span.event-openings');
                if (eo) {
                    eo.innerHTML = eventOpeningsCount + '';

                    // at this point we don't show these event openings
                    // for the summer camp pages.
                    if (matchingEvents.length &&
                        /summer/i.test(matchingEvents[0].season)) {
                        eo.parentNode.classList.add('d-none')
                    }
                }
            }

            if (!matchingEvents.length) {
                console.log(`no matching events: ${evregexpStr}`);
                rt.insertAdjacentHTML('afterend', '<p>No matching events</p>');
                setEventsOpeningsHTML();
                return;
            }

            // fill in a link to the registration form in
            // Registration Info.
            let regInfo = qs('.registration-info');
            if (regInfo && matchingEvents[0].reg_form) {
                regInfo.insertAdjacentHTML('beforeend',
                `<p>
                <strong class="small-caps">Form</strong>
                <span class="sep dot">•</span>
                Download and mail in this <a
                 title="Registration Form"
                 href="${matchingEvents[0].reg_form}">Registration
                Form</a><span class="if-you-want">
                if you want to register by mail</span>.
                </p>`
                );

                // get rid of the 'if-you-want' phrase for family camps.
                if (/family/i.test(matchingEvents[0].name)) {
                    qs('.registration-info span.if-you-want').classList.add('d-none');
                }
            }

            // fill in the event year in the header.
            let eventYearSpan = qs('.reg-table span.event-year');
            if (eventYearSpan) {
                eventYearSpan.innerHTML = zdt(matchingEvents[0].start_date).getUTCFullYear() + '';
            }

            if (/sumhisa/i.test(evregexpStr)) {
                // for hisability just fill in the date.
                // and note completed/cancelled
                let e = matchingEvents[0];
                let dttd = qs('table[data-events] tr:nth-child(2) td:nth-child(1)');
                if (!dttd) {
                    console.log('hisability date cell not found');
                } else {
                    dttd.innerHTML = eventDate(e);
                }
                if (e.isCanc || eventIsCompleted(e)) {
                    // this his-ability event is cancelled or completed.
                    let tr = qs('table[data-events] tr:nth-child(2)');
                    if (tr) {
                        tr.classList.add('completed-event');
                    }
                }
                return;
            }

            // see if we should be putting Age into col 2.
            // and speaker into col 3.
            // col2 and col3 contain the text of the column headers.
            // most of the time col2='type'
            let col2 = 'name';
            let col3 = 'speaker';
            let etcol = false;
            let esnt = false;
            let hdrRow = qs('.reg-table table[data-events] tr:first-child');
            let tdh = false;
            if (hdrRow) {
                tdh = nar(hdrRow.querySelectorAll('th,td'));

                if (tdh.length > 1) {
                    col2 = tdh[1].innerHTML;
                    if (/type/i.test(col2)) {
                        tdh[1].classList.add('event-type-column');
                        etcol = true;
                    }
                }
                if (tdh.length > 2) {
                    col3 = tdh[2].innerHTML;
                    if (/speaker/i.test(col3) && !/type/i.test(col2)) {
                        tdh[2].classList.add('event-speaker-no-type');
                        esnt = true;
                    }
                }
            }

            // erase all rows except the first
            removeAllRowsButFirst(rt)

            matchingEvents
            .forEach(function(e, i) {
                let completed = eventIsCompleted(e);
                let available_space = adjustedAvailableSpace(e);

                let closedCompleted = [
                    e.isCanc || completed ? 'completed-event' : '',
                    available_space > 0 || e.awl ? '' : 'closed'
                ];
                if (!completed && e.wait_list) {
                    anyWaitList += e.wait_list;
                }
                if (!completed && available_space > 0) {
                    eventOpeningsCount += available_space;
                }

                let scclass = esnt ? 'event-speaker-no-type' : '';
                let col2class = etcol ? 'event-type-column' : '';
                let r = [
                    '', // fill this in below with TR
                    `<td>${eventDate(e)}</td>`,
                    `<td class="${col2class}">${shortenedName(e)}</td>`,
                    `<td class="speaker ${scclass}">${e.spkr || ''}</td>`,
                    `<td class="only-when-reg-open">${completed ? '' : available_space}</td>`,
                    `<td class="only-when-reg-open waitlist">${completed ? '' : e.wait_list}</td>`,
                    `<td class="only-when-reg-open">${regButton(e)}</td>`,
                    `</tr>`
                ];
                if (tdh && tdh.length < 5) {
                    r[5] = '';
                    r[6] = '';
                }

                if (/family/i.test(e.name)) {
                    // update openings column manually.
                    r[4] = `<td class="only-when-reg-open">${familyCampFullnessInfo(e)}</td>`;
                }
                if (/age/i.test(col2)) {
                    // Age instead of name in second column.
                    if ('winter' == e.season && /teen/i.test(e.name)) {
                        // winter teen 'Age' column.
                        let age = '6th-12th';
                        if (!/winteen/i.test(e.campevent_id)) {
                            age = /winsh/i.test(e.campevent_id) ?
                                '9th-12th' : '6th-9th';
                        }
                        r[2] = `<td>${age}</td>`;
                    }
                    if (/family/i.test(e.name)) {
                        r[2] = `<td>All</td>`;
                        let m = e.name.match(/(\w+) Day/i);
                        if (m) {
                            r[1] = `<td>${eventDate(e, true)} (${m[0]})</td>`;
                        }
                    }
                }
                if (/grades/i.test(col2) &&
                    /sum/i.test(e.campevent_id)) {
                    // summer camp, skip boys rows.
                    if (/boys/i.test(e.name)) {
                        return;
                    }
                    // summer camp, show grades.
                    r[2] = `<td>${e.age}</td>`;

                    let bevt = matchingEvents[i+1];// boys matching event
                    let bas = bevt.wait_list ? 0 : bevt.available_space;
                    if (bas < 0) {
                        bas = 0; // boy event available space.
                    }
                    r[4] = bgTD(bas, available_space, 'only-when-reg-open');
                    r[5] = bgTD(bevt.wait_list, e.wait_list, 'only-when-reg-open waitlist', true);

                    // updated closed to mean both genders are full.
                    closedCompleted[1] = available_space <= 0 &&
                            bas <= 0 ? 'closed' : '';

                    // present registration/waitlist buttons for both
                    // boys and girls
                    r[6] = `<td class="only-when-reg-open">${regButton(e, bevt)}</td>`;

                    // speaker column?
                    if (! /speaker/i.test(col3)) {
                        r.splice(3, 1); // no.  remove the speaker info column
                    }
                }

                r[0] = `<tr class="${closedCompleted.join(' ')}">`

                rt.insertAdjacentHTML('beforeend',
                    r.join(''));
            });
            if (!anyWaitList) {
                // get rid of the wait list message
                let wlm = qs('div.registration div.info');
                if (wlm) {
                    let wlsummer = wlm.querySelector('.waitlist-info');
                    if (wlsummer) {
                        wlm = wlsummer;
                    }
                    wlm.parentNode.removeChild(wlm);
                }
            }
            setEventsOpeningsHTML();
        })
    }

    // add campbarakel.org absolute pathname for localhost.
    function addCBabsoluteurl(s) {
        if (/localhost/i.test(location.hostname)) {
            // use campbarakel.org database for localhost.
            s = 'https://www.campbarakel.org' + s;
        }
        return s;
    }

    // get sched update from the server and then call callback cb.
    function getSchedUpdate(cb) {

        if (cb_spa.schedUpdate) {
            // already have saved data, don't need to
            // get the same data again. (assume it hasn't changed.)
            if (cb) {
                cb(cb_spa.schedUpdate);
            }
            return;
        }
        cb_spa.schedUpdateQueue.push(cb);

        if (cb_spa.schedUpdateQueue.length > 1) {
            // someone else is already calling sched_update
            // they will take care of the callbacks.
            return;
        }

        dbGETJSON('/cr/sched_update.aspx',
            function(j) {
                cb_spa.schedUpdate = j;
                while (cb_spa.schedUpdateQueue.length) {
                    let c = cb_spa.schedUpdateQueue.shift();
                    if (c) {
                        c(j);
                    }
                }
            })
    }

    // remove blank placeholder source elements.
    // These keep other PICTURE elements from loading.
    // For example, carousel images other than the first
    // one don't need to be loaded right away.
    function removeBlankPlaceholders() {
        qsaa('source.bph-img').forEach(
            function(el) {
                // first work on making the images point to CDN.
                // this only matters for the home page since for
                // other pages we have already taken care of all
                // the images in pageLoad().
                nar(el.parentNode.querySelectorAll('source, img'))
                .forEach(function(iEl) {
                    // srcset and src, redo path if needed.
                    let ss = iEl.srcset;
                    if (ss) {
                        iEl.srcset = rcdn(ss);
                    }
                    ss = iEl.getAttribute('src');
                    if (ss) {
                        iEl.src = rcdn(ss)
                    }
                });

                // remove the bph-img placeholder.
                el.remove()
            });
    }

    function addOpt(s, otext) {
        let o = document.createElement('option');
        o.text = otext;
        s.add(o);
    }

    function gtag() {
        window.dataLayer = window.dataLayer || [];
        window.dataLayer.push(arguments);
    }

    function adjustedAvailableSpace(e) {
        let a = e.available_space;
        if (e.wait_list) {
            a = 0;
        }
        if (a < 0) {
            a = 0;
        }

        return a;
    }

    // load google analytics.
	window.setTimeout(function() {
        let s = document.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'https://www.googletagmanager.com/gtag/js?id=G-7CC8D3MG4W';
        document.getElementsByTagName('head')[0].appendChild(s);

        gtag('js', new Date());
        gtag('config', 'G-7CC8D3MG4W');
        cb_spa.gaPage = location.pathname.toLowerCase();
        if (cb_spa.gaPage == '/') {
            cb_spa.gaPage = '/home';
        }
    }, 1);

    loadPage();

    // take care of back button on browser.
    window.onpopstate = function() {
        loadPage();
    }
}

cb_spa_main();
// 19startup.js 

// assume jQuery is loaded.  Everything necessary
// for startup with new theme.


(function() {

    function loadCSS(f, bReturnOnly) {
        let s1 = document.createElement("link");
        s1.rel = "stylesheet";
        s1.type = "text/css";
        s1.href = f;
        if (!bReturnOnly) {
            document.getElementsByTagName("head")[0].appendChild(s1);
        }
        return s1;
    }
    // load fonts
    loadCSS("https://use.typekit.net/nez3jru.css");
    let s1 = loadCSS('https://use.fontawesome.com/releases/v5.12.1/css/all.css', true);
    s1.setAttribute('integrity', 'sha384-v8BU367qNbs/aIZIxuivaU55N5GPF89WBerHoGA4QTcbUjYiLQtKdrfXnqAcXyTv');
    s1.setAttribute('crossorigin', 'anonymous');
    document.getElementsByTagName("head")[0].appendChild(s1);

    // resize the logo on scroll
    $(window).scroll(function() {
        let scroll = $(window).scrollTop();

        if (scroll >= 60) {
            $(".navbar").addClass("scrolled");
        } else {
            $(".navbar").removeClass("scrolled");
        }
    });

    // detect webp and set scrolling
    // does this browser support webp?
	let awp = false; // after webp detection.
	try {
		let iwp = new Image();
		iwp.onload = function() { afterWebp(iwp.height > 0) };
		iwp.onerror = function() { afterWebp(false) };
		iwp.src='data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA';
	} catch (e) {
		afterWebp(false);
    }
    function afterWebp(wp) {
		if (awp) {
			return;
		}
        awp = true;
        // we let everybody else know with this
        // class on body.  either 'webp' or 'no-webp'.
        document.body.classList.add(wp ? 'webp' : 'no-webp');
    }
    
    // set copyright year in footer.
    let cy = document.getElementById('copyright-year');
    if (cy) {
        cy.innerHTML = (new Date()).getUTCFullYear();
    }
})();



</script>
</html>
