/* BA components. Based on Bootstrap 5.3. Jan 2023. */
/*	
	3.	main search
	4.	modals
	5.	pagination
	6.	aside search
	8.	accordion
	9.	breadcrumbs
	10.	tables
	11.	aside nav
	12.	aside CTA banner
	14.	main navigation
	15. section header
	16. tags listing
	17. social-share

*/



/* ************************* */
/* 3. MAIN SEARCH			 */
/* ************************* */
#main-search{ width:7rem; height:3.05rem; border-radius:1.88rem; position:absolute; top:1.1rem; right:0; order:3; margin:0; float:none; padding:0; background-color:transparent; transition:width 0.2s ease, background-color 0.2s ease 0.2s; z-index: 3;}
#main-search button{color:var(--color-dark-grey); height:2.06rem; width:6rem; top:0.5rem; right:0.5rem; padding-left:0.5rem; padding-right:0.5rem; position:absolute; background:transparent; border:0; border-radius:1.25rem; transition:color 0.2s ease, background-color 0.2s ease;}
#main-search button:before{content: '\f002'; font:var(--font-icon); margin-right:0.5rem;}
#main-search button span:before{content: 'Search'; font-family: 'Base';}
#main-search.expanded button:before{content: '\f00d';}
#main-search.expanded button span:before{content: 'Close';}
#main-search button:hover, #main-search button:focus{color:#fff; background-color:var(--color-hover);}
#main-search input{ height:2.06rem; width:calc(100% - 9rem); margin-top:0.5rem; margin-left:1.5rem; margin-right:6rem; border:0; background-color:transparent; padding-left:0; padding-right:0; transition:width 0.7s ease;}
#main-search input:focus{outline:0; box-shadow:none;}
#main-search input::-ms-clear {display: none;}
#main-search.expanded{width:100%; background-color:var(--color-light-grey); transition:width 0.7s ease 0.2s, background-color 0.2s ease;}

.results-listing .item a{ display:inline-block; word-break:break-all;}

@media (max-width: 991.98px) {
	#main-search, #main-search.expanded{ position:relative; top:0; margin:1rem; width:auto; background-color:var(--color-light-grey)}
	#main-search button:before, #main-search.expanded button:before{content: '\f002';}
	#main-search button span:before, #main-search.expanded button span:before{content: 'Search';}
}


/* ************************* */
/* 4. MODALS	   			 */
/* ************************* */
.modal-content{padding:2rem; border-radius:var(--border-radius3); border:0; gap:var(--margin-normal); }
.modal-content > form{display: flex; width:100%; flex-direction: column; gap:var(--margin-normal);}
.modal-header{ border:0; padding:0; }
.modal .close{border:0; width:1.5rem; height:1.5rem; font-weight:300; color:#fff; font-size: 1rem; line-height: 0.5; right:-1.25rem; top:0rem; float:none; position:absolute; z-index:2; opacity:1; filter:alpha(opacity=100); text-shadow:none; transition:color 0.2s ease; background:transparent;}
.modal .close:hover, .modal .close:focus{color:var(--color-hover);}
.modal-body{padding:0;}
.modal-footer{border:0; padding:0.35rem 0; gap:2rem;}
.modal-footer .btn{margin:0;}

@media (max-width: 767.98px) {
	.modal-content{padding:2rem 1.5rem; border-top-right-radius: 1rem;}
	.modal-footer{gap:1.5rem;}
	.modal .close{color:inherit; right:0.25rem; top:0.25rem}
}
@media (max-width: 575.98px) {
	.modal-content{padding:1.5rem;}
	.modal-footer{flex-direction: column; gap:var(--margin-normal);}
	.modal-footer .btn:not(.btn-link){width:100%;}
}



/* ************************* */
/* 5. PAGINATION			 */
/* ************************* */
.pagination-wrap{ text-align:center; display:flex; justify-content:center;}
.pagination > li+li{margin-left:1px;}
.pagination > li > a, .pagination > li > span{color:var(--color-base); background-color:transparent; border:1px solid transparent; border-radius:var(--border-radius); width:3rem; height:3rem; padding:0.5rem; display:flex; align-items: center; justify-content: center; line-height: 1; text-decoration: none; transition:border 0.2s ease;}
.pagination > li > a:hover, .pagination > li > span:hover, .pagination > li > a:focus, .pagination > li > span:focus{background-color:transparent; color:var(--color-hover); border-color:var(--color-hover);}
.pagination > .active > a, .pagination > .active > span, .pagination > .active > a:hover, .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus{color:inherit; background-color:var(--color-light-grey); font-weight:bold; border:1px solid var(--color-light-grey);}
.pagination > .disabled > span, .pagination > .disabled > span:hover, .pagination > .disabled > span:focus, .pagination > .disabled > a, .pagination > .disabled > a:hover, .pagination > .disabled > a:focus{color:var(--color-disabled); background-color:transparent; border-color:transparent;}



/* ************************* */
/* 6. ASIDE SEARCH 			 */
/* ************************* */
.side-search-block .search-button { color:var(--color-base); height:calc(100% - 2px); width:3.31rem; position: absolute; right: 1px; top: 1px; outline: none; border:0; padding: 0; transition:color 0.2s ease; z-index: 4; background: none; }
.side-search-block .search-button:hover, .side-search-block .search-button:focus{color:var(--color-hover);}
.side-search-block .form-control{padding-right: 3rem;}
.side-search-block label{right:3rem;}
.side-search-block .form-control:focus{outline: 0; box-shadow:none;}




/* ************************* */
/* 8. ACCORDION	   			 */
/* ************************* */
.accordion .accordion-item + .accordion-item{margin-top:0.31rem;}
.accordion .accordion-item{border:0; background: transparent;}
.accordion .accordion-header {margin:0;}
.accordion .accordion-button{background: var(--color-light-grey); color:var(--color-base); font-size: inherit; font-weight: inherit; padding:1rem 1.5rem; border-radius:2.18rem!important; box-shadow:none;}
.accordion .accordion-button::after {content: '\f078'; font:var(--font-icon); font-size:0.81rem; background: none; color:inherit; width:auto; height:auto; transition-duration:0.4s;}
.accordion .accordion-button:hover, .accordion .accordion-button:focus{color:var(--color-hover); box-shadow: none;}
.accordion .accordion-body {padding:1.5rem 1rem; position:static;}



/* ************************* */
/* 9. BREABCRUMBS			 */
/* ************************* */
.breadcrumbs-section{padding:1rem 0; background: var(--color-light-grey);}
.breadcrumbs-section ol{padding:0; list-style-type: none; display: flex; align-items: center; flex-wrap:wrap;}
.breadcrumbs-section ol li+li:before{content: '\f054'; font:var(--font-icon); font-size: 0.62rem; margin:0 1rem; color:var(--color-base);}
.breadcrumbs-section ol li a:hover, .breadcrumbs-section ol li a:focus{color:var(--color-hover);}
.breadcrumbs-section .placeholder-item{cursor: default;}

@media (max-width: 991.98px) {/* md */
	.breadcrumbs-section{padding:0.5rem 0;}
	.breadcrumbs-section ol li+li:before{margin:0 0.5rem;}
}


/* ************************* */
/* 10. TABLES				 */
/* ************************* */
.textbox table{font-size: inherit; width: 100%; max-width:100%; margin-bottom:0; border-bottom:1px solid var(--color-grey);}
.textbox table td, .textbox table th{padding:1rem 1rem;}
.textbox table thead th{ vertical-align:bottom; background-color: var(--color-grey); }
.textbox table td{ vertical-align:top;}
.textbox table tr:nth-child(even){background-color:var(--color-light-grey);}
.textbox table tr{transition:background 0.2s ease;}
.textbox table tr:hover{background-color:rgba(19, 160, 219, 0.1);} 
.textbox table th{position: sticky; top:var(--header-height-sticky); z-index: 2;}
@media (max-width: 991.98px) {
	.textbox table th{position: sticky; top:0;}
}
@media (max-width: 767.98px) {
	.textbox table{border-top:1px solid var(--color-grey);}
	.textbox table, .textbox table tbody, .textbox table tfoot, .textbox table tr, .textbox table caption{ display: block;}
	.textbox table tr{ padding-top:0.5rem; padding-bottom:0.5rem;}
	.textbox table thead {display: none;}
	.textbox table td {display: flex; padding:0.5rem; text-align: left; border:0;}
	.textbox table td:before{ content: attr(data-th); display: block; font-weight: bold; padding-right:1rem; width:40%; flex:none;}
}



/* ************************* */
/* 11. ASIDE NAV   			 */
/* ************************* */
.side-nav-wrap{font-size: 0.87rem; font-weight: 700; line-height: 1.2; text-transform: uppercase;}
.side-nav-wrap .sublevel{padding-left:1.5rem;}
.side-nav-wrap a{display:block; padding:0.88rem 0; text-decoration: none; flex-grow:1;}
.side-nav-wrap .sublevel-toggle{margin-top:0.2rem; padding-left:0.5rem; padding-right:0.5rem; flex:none; }
.side-nav-wrap .sublevel-toggle:focus{outline: 0;}
.side-nav-wrap .sublevel-toggle:after{ content: '\f078'; display: block; font:var(--font-icon); font-size: 0.81rem; transition: transform 0.4s ease; }
.side-nav-wrap .sublevel-toggle[aria-expanded='true']:after{transform:rotate(180deg);}

.side-nav-wrap .item{display: flex; align-items: flex-start;}
.side-nav-wrap .item:before{content: ''; opacity:0; border-radius:1.4rem; background: var(--color-light-grey); position: absolute; top:0; right:-1rem; bottom:0; left:-1rem; transition:opacity 0.2s ease;}
.side-nav-wrap .item:hover:before, .side-nav-wrap .active:before{opacity:1;}
.side-nav-wrap a{color:inherit;}
.side-nav-wrap .active a{color:var(--color-blue);}
.side-nav-wrap a:hover, .side-nav-wrap a:focus{color:var(--color-hover);}
@media (max-width: 767.98px) {
	.side-nav-wrap .item:before{right:-0.75rem; left:-0.75rem;}	
}




/* ************************* */
/* 12. ASIDE CTA BANNER		 */
/* ************************* */
.cta-box{border-radius:3rem;}
.cta-box .doodle{ pointer-events: none; width:10.25rem; height:8.43rem; position: absolute; bottom:-3rem; left:-6rem; z-index: 2;}
.cta-box .doodle img{object-fit: contain; max-width: 100%; max-height: 100%;}
.cta-box .inner-wrap{overflow: hidden; padding:var(--padding-normal) 2rem; border-radius:3rem; transform: scaleZ(1);}
.cta-box .cta-link{ z-index:5;}
.cta-box .area-link{ z-index:3; border-radius:3rem;}
.cta-box .inner-wrap:before{content: ''; background: rgba(12, 34, 94, 0.4); position: absolute; top:0; right:0; bottom:0; left:0; transition:background 0.2s ease;}
.cta-box:hover .inner-wrap:before{background: rgba(12, 34, 94, 0.8);}
.cta-box .bg{background:#021B61; mix-blend-mode: color; position: absolute; top:0; right:0; bottom:0; left:0;}
@media (max-width: 991.98px) {
	.cta-box .doodle{width:7rem; height:6rem; bottom:-2rem; left:-3rem;}
}





/* ************************* */
/* 14. MAIN NAVIGATION		 */
/* ************************* */

/* navbar */
#header{height:var(--header-height);}

#header .navbar{ position: fixed; top:0px; left:0; width:100vw; padding:0; background:#fff; z-index: 1030; transition:box-shadow 0.8s ease, top 0.8s ease;}
.navbar-brand{display: block; width:25rem; padding:0; flex:none; margin:0.25rem 0; transition:margin-top 0.8s ease, width 0.8s ease;}
.navbar-brand:focus{outline:0;}
.navbar-brand img{width:100%;}

#header .navbar.affix{box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.2); top:calc(var(--header-height-sticky) - var(--header-height));}
.affix .navbar-brand{margin-top:4.5rem; width:15rem;}

/*navigation */
#navigation{justify-content: flex-end;}
#navigation > .inner-wrap{height:var(--header-height); top:0; flex:none; display: flex; flex-direction: column-reverse; align-items: flex-end; }

.navbar-nav .placeholder-item {cursor: default;}
.navbar-nav li{display: flex; align-items: center;}
.navbar-nav > li > a{line-height:1.2; display: block; text-decoration: none;}
.navbar-nav .dropdown-toggle{z-index: 2; text-align: right;}
.navbar-nav .dropdown-toggle:after{content: '\f078'; font: var(--font-icon); transition:transform 0.4s ease; border:0;}
.navbar-nav .dropdown-toggle.show:after{ transform:rotate(-180deg);}

.navbar-nav .dropdown-menu{top:100%; background: #fff; min-width:17rem; padding:0; margin:0; border:0; border-radius:0 0 var(--border-radius) var(--border-radius); box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.2);}
.navbar-nav .dropdown-menu > li > a{white-space: nowrap; line-height: 1.2; display: block; text-decoration: none; flex-grow:1;}
.navbar-nav .dropdown-menu.open-left {left:auto; right:-1px;}
.navbar-nav .dropdown-menu .dropdown-menu{left:100%;}
.navbar-nav .dropdown-menu .dropdown-menu.open-left{left:auto; right:100%;}
.navbar-nav .dropdown-menu .dropdown-toggle:after{transform:rotate(-90deg);}
.navbar-nav .dropdown-menu .dropdown-toggle.show:after{ transform:rotate(90deg);}

/* main-nav */
#main-nav{font-size: 1.2rem; gap:2.5rem; margin-top:1.7rem;}
#main-nav > li > a{padding:0 0 1.7rem 0; }
#main-nav > .dropdown > a:not(.dropdown-toggle){padding-right:0.25rem;}
#main-nav > .dropdown > .dropdown-toggle{padding-left:0.3rem;}
#main-nav > .dropdown > .dropdown-toggle:after{font-size: 0.56rem;}

#main-nav > li > a{color:var(--color-base);}
#main-nav > li > a:hover, #main-nav > li > a:focus, #main-nav > .active > a, #main-nav > .show > a{color:var(--color-hover);}

#main-nav > .dropdown > .dropdown-menu{max-height: calc(100vh - var(--header-height) - 1.5rem); overflow: auto;}

#main-nav .dropdown-menu{font-size:0.87rem; padding:0.5rem 0; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;}
#main-nav .dropdown-menu > li{flex-direction: column; align-items: stretch;}
#main-nav .dropdown-menu > li > a{padding:0.5rem 1.25rem;}
#main-nav .dropdown-menu > li:last-child{border-bottom-right-radius:var(--border-radius); border-bottom-left-radius:var(--border-radius);}
#main-nav .dropdown-menu > .dropdown > .dropdown-toggle{ display: none;} 
#main-nav .dropdown-menu .dropdown-menu{padding:0; background:transparent; box-shadow: none; display: block; min-width: inherit; margin-left:1.25rem; position: relative; left:0; top:0; border-top-right-radius:var(--border-radius);}
#main-nav .dropdown-menu .dropdown-menu > li > a{ text-transform: none;}

#main-nav .dropdown-menu > li > a{color:var(--color-base);}
#main-nav .dropdown-menu > .active > a{color:var(--color-base);}
#main-nav .dropdown-menu > li > a:hover, #main-nav .dropdown-menu > li > a:focus, #main-nav .dropdown-menu > .active > a{ color:var(--color-hover);}

/* top-nav */
#top-nav{gap:2rem; margin-right:8rem;}
#top-nav > li > a:not(.btn){padding:0; font-size: 1rem; font-weight: 400;}

#top-nav > li > a:not(.btn){color:var(--color-dark-grey);}
#top-nav > li > a:not(.btn):hover, #top-nav > li > a:not(.btn):focus, #top-nav > .active > a:not(.btn){color:var(--color-hover);}

@media (max-width: 1199.98px) {
	.navbar-brand{width:19rem;}	
	#main-nav{margin-top:1.3rem; gap:1.5rem;}
	#main-nav > li > a{padding-bottom:1.1rem;}
	.affix .navbar-brand{width:12rem;}
}

@media (max-width: 991.98px) {
	#header, #navigation > .inner-wrap{height:auto;}
	
	.navbar-toggler {padding:0.7rem 1rem; color:inherit; margin:0.25rem 0; height:3.5rem; width:3.5rem; line-height:1; border:0; border-radius:var(--border-radius); box-shadow:none!important; transition:color 0.2s ease, background-color 0.2s ease; }
	[aria-expanded='true'].navbar-toggler .fas:before{ content:'\f00d';}
	.navbar-toggler:hover, [aria-expanded='true'].navbar-toggler{ background-color:var(--color-hover); color:#fff;}
	.navbar-toggler:focus{ background-color:transparent; color:inherit;}
	[aria-expanded='true'].navbar-toggler:focus{ background-color:var(--color-hover); color:#fff;}

	#header .navbar{ position:relative; width:auto; padding:0;}
	#header .navbar > .container{display: flex; align-items: center; flex-wrap: nowrap; padding-left:calc(var(--bs-gutter-x)*0.5); padding-right:calc(var(--bs-gutter-x)*0.5);}
	
	#header .navbar.affix{transition: none; top:0; box-shadow:none;}
	.navbar-brand{transition:none; width:19rem;}
	.affix .navbar-brand{margin-top:0.25rem; width:19rem; transition: none;}
	

	#navigation{position:absolute; top:100%; width:100%; left:0; padding-left:0; padding-right:0; box-shadow:0 1rem 1rem rgba(0,0,0,0.3); background-color: #fff;}
	#navigation > .inner-wrap{display: block;}
	#navigation.has-search > .inner-wrap{padding-right:0;}
	.navbar-nav{margin:0;}
	.navbar-nav li{flex-wrap:wrap; align-items: stretch;}
	.navbar-nav .dropdown-toggle{margin-left:auto;}
	.navbar-nav .dropdown-menu{width:100%; max-width: none; position:relative; padding:0; float:none; box-shadow:none; min-width:auto; background-color:transparent; margin-top:1px;}
	.navbar-nav .dropdown-menu .dropdown-toggle:after{transform:rotate(0);}
	.navbar-nav .dropdown-menu .dropdown-toggle.show:after{ transform:rotate(180deg);}
	.navbar-nav .dropdown-menu .dropdown-menu{left:0;}
	.navbar-nav .dropdown-menu.open-left {left:0; right:0;}
	.navbar-nav .dropdown-menu .dropdown-menu.open-left{left:0; right:0;}

	/* main-nav */
	#main-nav{padding:0.75rem; gap:0;}
	#main-nav > li{align-items: center;}
	#main-nav > li > a{padding:1rem; font-size: 1.2rem; max-width: calc(100% - 3.5rem);}	
	#main-nav > .dropdown > a:not(.dropdown-toggle){padding-right:1rem;}
	#main-nav > .dropdown > .dropdown-toggle{ width:3.5rem; padding-left:1rem; text-align: center;}
	#main-nav > .dropdown > .dropdown-toggle::after{font-size: 1rem;}
	
	#main-nav .dropdown-menu{max-height: none; font-size: 1rem; background-color: transparent; padding:0 0 0 1rem;}
	#main-nav .dropdown-menu > li{flex-direction:row; align-items: center;}
	#main-nav .dropdown-menu > li > a{padding:1rem; flex:none; max-width: 100%; white-space: normal;}
	#main-nav .dropdown-menu > .dropdown > a{padding-right:1rem;}
	#main-nav .dropdown-menu > .dropdown > .dropdown-toggle{width:3.5rem; padding-left:1rem; padding-right:1rem; text-align: center;}
	#main-nav .dropdown-menu > .dropdown > .dropdown-toggle:after{font-size: 1rem;}
	#main-nav .dropdown-menu .dropdown-menu{top:0; margin-left: 1rem; padding:0.5rem 0 0.5rem 0.5rem;}
	
	#main-nav > li > a,
	#main-nav .dropdown-menu > li > a{color:var(--color-base);}
	
	#main-nav > .show > a, #main-nav .dropdown-menu > .show > a{color:var(--color-base);}

	#main-nav > li > a:hover, 
	#main-nav > li > a:focus,
	#main-nav > .active > a,
	#main-nav .dropdown-menu > li > a:focus,
	#main-nav .dropdown-menu > li > a:hover,
	#main-nav .dropdown-menu > .active > a{color:var(--color-hover);}

	/* top-nav */
	#top-nav{background-color: var(--color-light-grey); padding:0.75rem; gap:0; margin-right:0;}
	#top-nav > li > a:not(.btn){padding:1rem; font-size: 1rem; color:var(--color-black);}	
	#top-nav > li > .btn{margin:1rem;}

	#top-nav > li > a:not(.btn):hover, 
	#top-nav > li > a:not(.btn):focus,
	#top-nav > .active > a:not(.btn){color:var(--color-hover);}
	
	#main-search{margin:1.5rem;}
}





/* ************************* */
/* 15. SECTION HEADER 		 */
/* ************************* */
.section-header-wrap{display:flex; align-items: flex-end; justify-content: space-between;}
.section-header-wrap .title{margin-right:3rem;}
.section-header-wrap.slider-header{padding-right:7rem;}
@media (max-width: 991.98px) {
	.section-header-wrap.slider-header{padding-right:0;}
}
@media (max-width: 767.98px) {
	.section-header-wrap{flex-direction: column; gap:var(--margin-small); align-items: flex-start;}
	.section-header-wrap .title{margin-right:0;}
}




/* ************************* */
/* 16. TAGS LISTING  		 */
/* ************************* */
.tags-listing{display: flex; flex-wrap:wrap; gap:0.25rem 1rem;}
.tags-listing a{z-index: 5; text-decoration: none; color:var(--color-blue);}
.tags-listing a:hover, .tags-listing a:focus{color:var(--color-navy);}
.color-white .tags-listing a:not(.btn):hover, .color-white .tags-listing a:not(.btn):focus{color:#fff; text-decoration: underline;}



/* ************************* */
/* 17. SOCIAL SHARE  		 */
/* ************************* */
.social-share{display: flex; flex-wrap:wrap; gap:0.5rem;}
.social-share a{font-size: 1.25rem;  border:2px solid var(--color-grey); border-radius:50%; width:3rem; height:3rem; display: flex; align-items: center; justify-content: center;}
.social-share a:hover, .social-share a:focus{border-color:var(--color-hover); background: var(--color-hover); color:#fff!important;}


