/**
 * Libarts Programs
 *
 * 1.0 Repeatable Patterns
 * 2.0 Libarts Programs
 * 		2.1 Views
 *		2.2 Controls
 *      2.3 Key
 * 		2.4 Content
 * 3.0 Modal
 * 4.0 Media Queries
 */

/**
 * 1.0 Repeatable Patterns
 * ----------------------------------------------------------------------------
 */
.libarts-programs-text-small {
    font-family:'Proxima Nova';
    font-size:1.1rem;
}
.libarts-program-callout {
    padding:1.5rem;
    background-color:#efeff4;
}
.libarts-program-callout > :first-child {
    margin-top:0;
}
.libarts-program-callout > :last-child {
    margin-bottom:0;
}



.libarts-programs-container {
    margin-bottom:3rem;
}




/**
 * 2.2 Controls
 * ----------------------------------------------------------------------------
 */
.libarts-programs-controls {
	position:relative;
	z-index:1;
}
.libarts-programs-controls.contain-fixed {
	position:fixed;
	margin:auto;
	width:calc(100% - 3rem);
	max-width:1170px;
	background-color:#fff;
}
.libarts-programs-controls.contain-fixed > * {
	width:100%;
}
.libarts-programs-control {
	position:relative;
}
.libarts-programs-control[aria-hidden="true"] {
    display:none;
}
.libarts-programs-control-title {
	position:relative;
	margin-bottom:0;
	border:2px solid #efeff4;
    padding:1.5rem;
    display:block;
    width:100%;
	font-size:14px;
	font-weight:600;
}
.libarts-programs-control-has-content > .libarts-programs-control-title:after {
	content:"";
	position:absolute;
	top:50%;
	right:1.5rem;
	display:block;
	width:0;
	height:0;
	border-style:solid;
	border-width:6px 6px 0 6px;
	border-color:#efeff4 transparent transparent transparent;
}
.libarts-programs-control:hover .libarts-programs-control-title,
.libarts-programs-control.active .libarts-programs-control-title {
	border:2px solid #efeff4;
    color:#1E4D2B;
    background-color:#efeff4;
}
.libarts-programs-control-content {
	position:absolute;
	top:100%;
	right:0;
	left:0;
	border:2px solid #efeff4;
	border-top:none;
	padding:1.5rem;
	display:none;
	max-height:20rem;
	overflow-y:auto;
	background-color:#fff;
}
.libarts-programs-control.active .libarts-programs-control-content,
.libarts-programs-control .libarts-programs-control-title[aria-expanded="true"] ~ .libarts-programs-control-content {
    z-index:1;
	display:block;
}
.libarts-programs-control label {
	display:block;
	font-size:14px;
	font-weight:normal;
}
.libarts-programs-control input[type="text"] {
	width:100%;
}



/**
 * 2.3 Key
 * ----------------------------------------------------------------------------
 */
.libarts-programs-keys {
    margin:1.5rem 0;
    border-bottom:2px solid #efeff4;
    padding:0 0 3rem 0;
    list-style:none;
}
.libarts-programs-key {
    margin-right:1.5rem;
    display:inline-block;
}
.libarts-programs-key p {
    margin:0;
}
.libarts-programs-key dfn {
    font-style:normal;
}


    
.libarts-programs-table {
    width:100%;
}
.libarts-programs-table-row {
    border-bottom:none;
    transition:border-bottom 300ms;
}
.libarts-programs-table-row:last-of-type {
    border-bottom:none;
}
.libarts-programs-table-row.active {
	border-bottom:1px solid #eee;
}
.libarts-programs-table-data {
    width:50px;
}
.libarts-programs-table-data-content {
	height:auto;
	max-height:0;
	opacity:0;
	overflow:hidden;
	transition:max-height 300ms;
}
.libarts-programs-table-row.active .libarts-programs-table-data-content {
	max-height:150px;
	opacity:1;
	overflow:visible;
}
.libarts-programs-table-data-title {
    padding:0.5rem;
}
.libarts-programs-table-row-child .libarts-programs-table-data-title {
    padding-left:3rem;
}
.libarts-program-link {
    margin-right:0.5rem;
    display:inline-block;
}
.libarts-program-disclaimer-container {
    position:relative;
    margin:0 0.5rem 0.5rem 0;
}
.libarts-program-disclaimer-icon {
    height:1.8rem;
}
.libarts-program-disclaimer {
    
}
.libarts-program-degree {
    vertical-align:middle;
    margin:0.5rem;
    border:2px solid rgba(0, 0, 0, 0.1);
    padding:0.25rem 0.5rem;
    display:inline-block;
    line-height:1;
    font-family:'Proxima Nova';
    font-size:1.1rem;
    background-color:rgba(200, 195, 114, 0.25);
}
h2 .libarts-program-degree {
    padding:0.5rem;
}
.libarts-program-badges {
    margin:1.5rem 0;   
}
.libarts-program-badge {
    margin:0;
    border-radius:6rem;
    border-width:2px;
    border-style:solid;
    padding:0.25rem 0.5rem;
    display:inline-block;
    line-height:1;
    text-align:center;
    font-family:'Proxima Nova';
    font-size:1.1rem;
    font-weight:bold;
}

.libarts-program-tooltip-container {
    position:relative;
}
.libarts-program-tooltip-container:hover,
.libarts-program-tooltip-container:focus {
    cursor:help;
}
.libarts-program-tooltip {
    position:absolute;
    z-index: 1;
    left:-9999px;
    bottom:100%;
    bottom:calc(100% + 0.6rem);
    border-width:2px;
    border-style:solid;
    padding:1rem 0.5rem 1rem 1rem;
    display:block;
    min-width:15rem;
    max-width:32rem;
    line-height:1.2;
    font-size:1.4rem;
    white-space:normal;
    background-color:#fff;
    opacity:0;
    transition:opacity 300ms;
}
.libarts-program-tooltip-container:hover .libarts-program-tooltip,
.libarts-program-tooltip-container:focus .libarts-program-tooltip {
    left:-1.4rem;
    opacity:1;
}
.libarts-program-tooltip::before,
.libarts-program-tooltip::after {
    content:"";
    position:absolute;
    top:100%;
    left:1rem;
    width:0;
    height:0;
    border-style:solid;
    border-width:10px 10px 0 10px;
    border-right-color:transparent;
    border-bottom-color:transparent;
    border-left-color:transparent;
}
.libarts-program-tooltip::after {
    left:1.2rem;
    border-width:8px 8px 0 8px;
    border-top-color:#fff;
}

.libarts-program-major {
    border-color:#00A7BA;
    background-color:rgba(0, 167, 186, 0.1);
}
.libarts-program-minor {
    border-color:#002432;
    background-color:rgba(0, 36, 50, 0.1);
}
.libarts-program-major-concentration {
    border-color:#C4D92E;
    background-color:rgba(196, 217, 46, 0.1);
}
.libarts-program-teacher-licensure {
    border-color:#1E4D2B;
    background-color:rgba(30, 77, 43, 0.1);
}
.libarts-program-graduate-program {
    border-color:#FBA919;
    background-color:rgba(251, 169, 25, 0.1);
}
.libarts-program-specialization {
    border-color:#D9782D;
    background-color:rgba(237, 105, 35, 0.1);
}


.libarts-programs-single-container > :first-child {
    margin-top:0;
}
.libarts-program-featured-image-container {
    margin:0 0 1.5rem 0;
    height:250px;
    background-position:center;
    background-size:cover;
}
.libarts-program-website-link-container {
    margin:1.5rem 0;
    display:flex;
    flex-direction:row;
    flex-wrap:wrap;
}
.libarts-program-website-link-container .button {
    flex-grow:1;
    flex-basis:0;
    margin:0 0.75rem 1.5rem 0.75rem;
    min-width:calc(50% - 1.5rem);
    text-align:center;
}
@media (max-width:767px) {
    .libarts-program-website-link-container .button:first-of-type,
    .libarts-program-website-link-container .button:nth-of-type(2n + 1) {
        margin-left:0;
    }
    .libarts-program-website-link-container .button:nth-of-type(2n),
    .libarts-program-website-link-container .button:last-of-type {
        margin-right:0;
    }
}



/**
 * 3.0 Modal
 * ----------------------------------------------------------------------------
 */
.modal-active {
    overflow:hidden;
}
.libarts-programs-modal-container {
    position:fixed;
    z-index:1000;
    top:0;
    right:0;
    bottom:0;
    left:0;
    display:block;
    overflow:hidden;
    background-color:rgba(0, 0, 0, 0.75);
    opacity:0;
    pointer-events:none;
    transition:opacity 300ms, visibility 300ms;
}

.libarts-programs-modal-container.active {
    opacity:1;
    visibility:visible;
    pointer-events:all;
}
.libarts-programs-modal {
    position:absolute;
    top:50%;
    left:50%;
    min-width:100vw;
    max-width:768px;
    max-height:100vh;
    background-color:#fff;
    overflow-y:auto;
    box-shadow:0 0 0 2px rgba(239, 239, 244, 1);
    transform:translateX(-50%) translateY(-50%);
}
.logged-in .libarts-programs-modal {
    max-height:100vh;   
}
.libarts-programs-modal-close {
    position:absolute;
    top:1.5rem;
    right:1.5rem;
}
.libarts-programs-modal .libarts-programs-single-container {
    display:none;
}
.libarts-programs-modal .libarts-programs-single-container.active {
    display:block;
}
.libarts-programs-modal .libarts-programs-single-content {
    padding:0 1.5rem;
}



/**
 * 4.0 Media Queries
 * ----------------------------------------------------------------------------
 */
@media (min-width:768px) {
    /**
    * 2.2 Controls
    * ----------------------------------------------------------------------------
    */
    .libarts-programs-controls {
        margin-bottom:1.5rem;
    }
    .libarts-programs-controls-form {
        display:-webkit-box;
        display:-moz-box;
        display:-ms-flexbox;
        display:-webkit-flex;
        display:flex;
        flex-direction:row;
        flex-flow:row nowrap;
        flex-wrap:nowrap;
        align-items:flex-start;
        justify-content:flex-start;
    }
    .libarts-programs-control {
        padding:1.5rem 1.5rem 0 1.5rem;
        flex-basis:1;
        flex-grow:1;
        flex-shrink:1;
    }
    .libarts-programs-control-search {
    	width:25%;
    }
    .libarts-programs-control-type {
    	width:20%;
    }
    .libarts-programs-control-content {
        left:1.5rem;
        right:1.5rem;
    }
    .libarts-programs-control:first-of-type {padding-left:0;}
    .libarts-programs-control:first-of-type .libarts-programs-control-content {left:0;}
    .libarts-programs-control:last-of-type {padding-right:0;}
    .libarts-programs-control:last-of-type .libarts-programs-control-content {right:0;}
    
    
    /**
     * 3.0 Modal
     * ----------------------------------------------------------------------------
     */
    .logged-in .libarts-programs-modal-container {
        top:46px;
    }
    .libarts-programs-modal {
        min-width:0;
    }
    .logged-in .libarts-programs-modal {
        max-height:calc(100vh - 46px);   
    }
}



@media (min-width:960px) {
	/**
     * 2.2 Controls
     * ----------------------------------------------------------------------------
     */
	.libarts-program-website-link-container .button {
        margin:1.5rem;
        min-width:calc(20% - 3rem);
        flex-basis:1;
    }
    .libarts-program-website-link-container .button:first-of-type {
		margin-left:0;
    }
    .libarts-program-website-link-container .button:last-of-type {
		margin-right:0;
    }



    .libarts-program-featured-image-container {
    	height:400px;
    }
}



@media (min-width:1025px) {
	/**
     * 2.2 Controls
     * ----------------------------------------------------------------------------
     */
	.libarts-programs-control:hover .libarts-programs-control-content {
		z-index:1;
		display:block;
	}
}



@media (min-width:1170px) {
	.libarts-programs-table-data-title {
		padding:0;
		line-height:4rem;
		white-space:nowrap;
	}




    /**
     * 3.0 Modal
     * ----------------------------------------------------------------------------
     */
    .logged-in .libarts-programs-modal-container {
        top:32px;
    }
    .logged-in .libarts-programs-modal {
        max-height:calc(100vh - 32px);   
    }
}
