/*
Implementation Skeleton v3 - 12/6/18
Add styles to overwrite customer CSS and global oustyles CSS. USE WITH CAUTION.
*/
/* 2025-06-06 */

/* Remove Hero Chevron
–––––––––––––––––––––––––––––––––––––––––––––––––– */

.hero:after,.hero:before {
    -webkit-transform:none;
    -ms-transform: none;
    transform: none;
}

/* INSTAGRAM FEED COMPONENT ADJUSTMENTS
–––––––––––––––––––––––––––––––––––––––––––––––––– */

/* Remove background color from posts that gives a filtered effect to the photos */
.instagram__tile a:before {
	background-color: transparent;
	opacity: .3;
}
.instagram__tile:nth-child(2) a:before {
	background-color: transparent;
}
.instagram__tile:nth-child(3) a:before {
	background-color: transparent;
}


/* Zoom effect on hover, starts at left bottom to prevent icon misalignment on zoom */

/* [1] Transition property for smooth transformation of images */
.instagram__post-holder a {
	transition: transform .5s ease;
	transform-origin:left bottom;
}

/* [2] Transforming the image when container gets hovered */
.instagram__post-holder a:hover {
	transform: scale(1.06);
	transform-origin:left bottom;
}

/* [3] Instagram Feed: make icon container a bit transparent */
.instagram__post-holder:before {
	background-color: rgba(242, 242, 242, 0.8); 
}

/* Adjust height at smaller screen widths */

@media (max-width:699px) {
	.instagram__link {
		min-height: 500px;}
}

@media (max-width:440px) {
	.instagram__link {
		min-height: 280px;}
}


/* SOCIAL MEDIA COMPONENT STYLES
–––––––––––––––––––––––––––––––––––––––––––––––––– */

.socialMediaWrapper{
	display:flex;
	flex-wrap:wrap;
	margin-bottom: 40px;

}

.socialMediaWrapper .icon{
	color: #a6192e;
	margin: 0 20px 40px 20px;
	cursor:pointer;
	display:flex;
	align-items:center;
	justify-content:center;
	flex-direction:column;
	position: relative;
	z-index:2;
}

.socialMediaWrapper .icon span{
	position:relative;
	z-index:2;
	height: 60px;
	width: 60px;
	display:block;
	background: #fff;
	box-shadow: 0 10px 10px rgba(0,0,0,0.1);
	border-radius:50%;
	text-align:center;
	transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
	font-size:25px;
	line-height:60px;
}
.socialMediaWrapper .icon .tooltip{
	position:absolute;
	top:0px;
	background: #000;
	box-shadow: 0 10px 10px rgba(0,0,0,0.1);
	font-size: 20px;
	padding: 10px 18px;
	border-radius: 25px;
	color:white;
	opacity:0;
	pointer-events: none;
	transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

/* Tooltip styles to show above icons, original setup 
.socialMediaWrapper .icon:hover .tooltip{
opacity:1;
pointer-events: auto;
top:-70px;
}
.socialMediaWrapper .icon .tooltip:before{
position:absolute;
content:"";
height:15px;
width:15px;
bottom:-8px;
left:50%;
transform: translateX(-50%) rotate(45deg);
}
*/

/* Tooltip styles to show below icons */

.socialMediaWrapper .icon:hover .tooltip{
	opacity:1;
	pointer-events: auto;
	top:75px;
}
.socialMediaWrapper .icon .tooltip:before{
	position:absolute;
	content:"";
	height:15px;
	width:15px;
	bottom:42px;
	left:50%;
	transform: translateX(-50%) rotate(45deg);
}

.socialMediaWrapper .icon:hover span,
.socialMediaWrapper .icon:hover .tooltip{
	text-shadow: 0px -1px 0px rgba(0,0,0,0.4);
}
.socialMediaWrapper .icon:hover span{
	color: #fff;
}
.socialMediaWrapper .facebook:hover span,
.socialMediaWrapper .facebook:hover .tooltip,
.socialMediaWrapper .facebook:hover .tooltip:before{
	background:#3B5999;
}
.socialMediaWrapper .twitter:hover span,
.socialMediaWrapper .twitter:hover .tooltip,
.socialMediaWrapper .twitter:hover .tooltip:before{
	background:#46C1F6;
}
.socialMediaWrapper .github:hover span,
.socialMediaWrapper .github:hover .tooltip,
.socialMediaWrapper .github:hover .tooltip:before{
	background:#333;
}
.socialMediaWrapper .youtube:hover span,
.socialMediaWrapper .youtube:hover .tooltip,
.socialMediaWrapper .youtube:hover .tooltip:before{
	background:#de463b;
}

.socialMediaWrapper .linkedin:hover span,
.socialMediaWrapper .linkedin:hover .tooltip,
.socialMediaWrapper .linkedin:hover .tooltip:before{
	background:#0a66c2;
}

.socialMediaWrapper .instagram:hover span,
.socialMediaWrapper .instagram:hover .tooltip,
.socialMediaWrapper .instagram:hover .tooltip:before{
	background: #f09433; 
}

/* COE PROGRAMS LIST COMPONENT
–––––––––––––––––––––––––––––––––––––––––––––––––– */

.coe-programs {
	margin-bottom: 3rem;
}

/* LISTS */
.noListStyle{
	list-style: none;
}

.coe-programs ol {
	padding: 0;
}

.coe-programs ol>li:before {
	content: none;
}

.wysiwyg li.coe-programs-list-item {
	margin-bottom: 40px;
}

/* remove empty list item */
.coe-programs-categories li a:empty {
	display:none;
}


/* FORM */

.coe-programs input[type="radio"] {
	position: absolute;
	left: -9999px;
}

\

/* FILTERS */
.filters {
	margin-bottom: 2rem;
	font-size: 0.9rem;
}

.filters * {
	display: inline-block;
}


.filters label {
	padding: 0.5rem 1rem;
	min-width: 50px;
	line-height: normal;
	cursor: pointer;
	transition: all 0.1s;
}

.filters label:hover {
	background: #a6192e;
	color: #fff;
}
			


/* Snippet Overrides
–––––––––––––––––––––––––––––––––––––––––––––––––– */


/* Remove Uppercase Text Transformation */
.program-list__program {
	text-transform: none;
	letter-spacing: normal;
}

/* Remove extra margin from Program List */
.program-list h3, .program-list__program {margin:0;}

/* Allow H3 in accordion heading to look like an H3 */
.accordion__header h3 {
    margin: 0 0 23px;
    font-size: 33px;
    text-transform: none;
	font-weight: 600;
    line-height: 1.2;
}

/* Allow H4 in accordion heading to look like an H4 */
.accordion__header h4 {
    margin: 0 0 21px;
    font-size: 30px;
    text-transform: none;
	font-weight: 300;
    line-height: 1.2;
}

/* Allows an accordion item to look like an H4 */
/* example in course sequence: https://education.sdsu.edu/dle/academics/masters-program */
#accordionsSubheadingH4 {
	margin-top: 20px;
	border-bottom:none;
}

#accordionsSubheadingH4 .accordion__toggle {
	padding-left:0;
	pointer-events: none;
	font-size:30px;
	font-weight: normal;
	line-height:1.2;
}

#accordionsSubheadingH4 .accordion__icon, #accordionsSubheadingH4 .accordion__content, #accordionsSubheadingH4 .accordion__top {
	display:none;
}

/* Allows an accordion item to look like a P (paragraph) */
#accordionsParagraph {
	border-bottom:none;
}

#accordionsParagraph .accordion__toggle {
	padding-left:0;
	pointer-events: none;
	font-size:20px;
	font-weight: normal;
	line-height:1.53;
	font-family:proxima-nova,Arial,Helvetica,sans-serif;
}

#accordionsParagraph .accordion__icon, #accordionsParagraph .accordion__content, .accordion__top {
	display:none;
}

/* DIV wrapper that changes a carousel background to white */
.whiteBackground .carousel {background-color: #fff;}


/* Lightwidget styles 
–––––––––––––––––––––––––––––––––––––––––––––––––– */

.lightwidget-direct-feed {
	margin: 80px 40px;
}

  @media (max-width: 700px) {
	  .lightwidget-direct-feed {
	margin: 80px 20px;
}
  }

.lightwidget__lightbox-details .lightwidget__lightbox-caption, .lightwidget__lightbox-details .lightwidget__name {
	font-size: .9rem;
	padding: 5px;
}


a.lightwidget__username.lightwidget__header-link.lightwidget__name-item {
	font-size: 1.5rem;
	padding: 5px;
	color:#a6192e;
	text-decoration:none;
}

span.lightwidget__lightbox-btn-text {
	padding:10px 0;
}



/* Grid styles 
–––––––––––––––––––––––––––––––––––––––––––––––––– */

/* Allow for 2 and 3 column lists or other elements */

.wysiwyg .gridList {
	column-gap: min(20px);
	row-gap: min(20px);
	margin-bottom: min(25px);
}

.wysiwyg .gridList-col-2 {
	column-count:2;
}

.wysiwyg .gridList-col-3 {
	column-count:3;
}

.wysiwyg .gridList :is(li,div,span,p) {
	break-inside: avoid;
	margin-bottom: min(14px);
}







.faculty__email {
	word-wrap: break-word;
	word-break: break-word;
}

/* Q&A Component */

dl.qAndA dt {
	font-weight: 800;
	font-size: 24px;
	margin-bottom: 20px;
}

dl.qAndA  dd {
	margin-bottom: 40px;
	margin-left: 80px;
	z-index:0;
}

dl.qAndA  dd:before {
	content: "\e900";
    font-family: icomoon;
    font-size: 42px;
	position:absolute;
	margin: -10px -80px;
    color: rgb(212,23,54);
    font-weight: 400;
	z-index:-1;
}



/* Google Scholar list -- Faculty Publications */

.googleScholarList{padding: 40px;margin-bottom: 40px;}

.googleScholarList_row {
	display: grid; 
	grid-template-columns: 50px 1fr 50px; 
	column-gap: 2rem;
	margin: 15px 0 10px 0;
	border-bottom: 1px solid #ccc;
}

.googleScholarList_row h4 {font-weight:600;}

.googleScholarList_row div:nth-child(1){
	background-image:url('/directory/_images/coe-default-profile-solid.jpg');
	background-size:cover;
	background-repeat:   no-repeat;
	background-position: center center;
	width:50px;
	height:50px;
}


.googleScholarList_row div:nth-child(3){
	font-weight: 500;
	font-size: 1.1rem;
}


/* People Listing - College Directory */
	/* Remove 'San Diego' campus text from each profile */
p.campusLocation {
    display:none;
}

	/* Adjust column widths in desktop view to allow more room in left column */
@media (min-width: 1025px)
.faculty .container {
    max-width: 1000px;
    grid: auto-flow/2fr 4fr;
}


/* News Story slider padding override */

.carousel__college{padding:80px 0;}
@media (min-width:700px){.carousel__college{padding:80px 0;}}
@media (min-width:1025px){.carousel__college{padding: 80px 0;}}

/* NEWS BLOG STYLES
–––––––––––––––––––––––––––––––––––––––––––––––––– */

	/* News Blog post - adjusted top margin */

	.blog.blog--full {
		margin-top: 60px;
	}

	/* COE Connections Podcast Link Icons */

	a[href*="soundcloud.com/sdsucoe"]:before {
		content: "\f1be";
		font-family: "Font Awesome 5 Brands";
		display: inline-block;
		padding-right: 5px;
	}

	a[href*="podcasts.apple.com/us/podcast/"]:before {
		content: "\f2ce";
		font-family: "Font Awesome 5 Free";
		display: inline-block;
		padding-right: 5px;
	}

/* JDP Styles for Milestones Graphic and Accordion
–––––––––––––––––––––––––––––––––––––––––––––––––– */

.jdpMilestones .accordion {
    padding: 20px 20px 40px 20px
}

@media (min-width: 700px) {
    .jdpMilestones .accordion {
        padding:20px 0 60px 0
    }
}

@media (min-width: 1025px) {
    .jdpMilestones .accordion {
        padding:20px 0 60px 0
    }
}

.jdpMilestones .img-inline--full {
    margin: 0 20px;
}

@media (min-width: 700px) {
    .jdpMilestones .img-inline--full {
        margin:0 -20px
    }
}

@media (min-width: 1025px) {
    .jdpMilestones .img-inline--full {
        margin:0 -150px
    }
}

/* Subdirectories accordion dropdown menu */

.directoryDropdownMenuBox {
	width: 100%; padding: 20px 50px 0 50px;background-color:#a6192e;}
.directoryDropdownMenuBox section, .directoryDropdownMenuBox .accordion {padding:0;margin:0;}
.directoryDropdownMenuBox button, .directoryDropdownMenuBox .accordion__icon:after, .directoryDropdownMenuBox .accordion__icon:before {color: #fff;}
.directoryDropdownMenuBox .accordion__toggle.js-expanded .accordion__icon {
    background-color: #000;
    border-color: #000}
.directoryDropdownMenuBox .accordion__icon {border: 1px solid #fff;}
.directoryDropdownMenuBox .accordion__icon:after, .directoryDropdownMenuBox .accordion__icon:before {background-color: #fff;}
.directoryDropdownMenuBox .accordion__content a {color: #fff;font-weight:normal;}
.directoryDropdownMenuBox .accordion__content a:hover {text-decoration: underline;}
.directoryDropdownMenuBox ul>li:before {background-color:#fff;}
.directoryDropdownMenuBox li {line-height: 1.1;}


/* FontAwesome 3X Preview COMPONENT ADJUSTMENTS
–––––––––––––––––––––––––––––––––––––––––––––––––– */

/* Align center */

.fa3col {
	text-align: center;
}

/* Program Buttons Component
–––––––––––––––––––––––––––––––––––––––––––––––––– */

.programButtons {
	background-color: #f2f2f2; 
	margin: 0 0 50px 0; 
	padding: 10px;
}

.programButtons .wysiwyg { 
	margin: 0 auto; 
	display: grid; 
	grid-template-columns: repeat(auto-fit,minmax(120px, 1fr)); 
	grid-gap: 5px;
	max-width:1180px;
}

.programButtons .cta--button {
	margin: 0;
	padding: 10px 12px;
	font-size: 16px;
}

/* wrapper used to eliminate bottom margin on profile listing pages */
.programButtonsNoMargin .programButtons {
	margin: 0; 
}

/* Form adjustments
–––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Changes to allow checkboxes and radio buttons to wrap without taking up so much vertical space */

.main .form__checkbox, .main .form__radio {
    display: inline-block;
    margin: 5px;
}
.main .form__checkbox:last-child, .main .form__radio:last-child {
    margin: 5px;
}


/* CCCE Website
–––––––––––––––––––––––––––––––––––––––––––––––––– */

/* CCCE - Announcements asset styles */
.ccceAnnouncement {padding: 30px; margin: 0 0 40px 0; border: 1px solid #D41736; font-size: 110%;font-weight: 500;}

.ccceAnnouncement .fa-laptop {
    font-size: 3.4rem;
    float:left;
    margin-right: 1.2rem;
    margin-bottom: 1rem;
    color: #D41736;
}

/* Contact Box Component - Change Image */
.contact-section__cta-block:before {
    background-image: url(https://education.sdsu.edu/undergrad/_images/contact-box-750x750-v2.jpg);
}


/* 4 column FontAwesome asset */

 .fa4col {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 40px;
    margin: 80px;
  }

  .fa4col__item {
    background-color: rgb(242, 242, 242);
    padding: 15px;
    text-align: center;
  }

  .icon {
    font-size: 40px;
    margin: 20px auto;
  }

  /* Switch to 2 columns when screen width is 900px or smaller */
  @media (max-width: 900px) {
    .fa4col {
      grid-template-columns: repeat(2, 1fr);
		margin: 40px;
    }
  }

  /* Switch to 1 column for mobile devices */
  @media (max-width: 500px) {
    .fa4col {
      grid-template-columns: repeat(1, 1fr);
		margin: 20px;
		gap:20px;
    }
	  .fa4col__item {
    padding: 10px;
  }
  }

/* Tagline Styles */
.taglineTeal {font-size: 40px; font-weight: 500; margin: 0 0 10px; font-style: italic;color: #00a39d;}
.taglineTeal strong {color: #008080; font-weight: 900;}
.taglineRed {font-size: 40px; font-weight: 500; margin: 0 0 10px; font-style: italic;color: #d41736;}
.taglineRed strong {color: #a6192e; font-weight: 900;}


/* Custom Spotlight Panels */

.departmentSpotlight .optional-panel__bg-full:after, .departmentSpotlight .optional-panel__bg-full:before {
    display:none; /* Removes cheveron */
}

.departmentSpotlight .optional-panel__bg-full {
    background-position: top right; /* Adjusts background image alignment */
}




/* On This Page Navigation Component */
  
  .onPageNav {
    background-color: #f1f1f1;
    padding: 10px;
  }
  
  /* Main layout: title + buttons */
  .onPageNavContainer {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px;
    max-width: 1180px;
    margin: 0 auto;
  }
  
  /* Left column title */
  .onPageNavTitle {
    width: 150px;
    flex-shrink: 0;
  }
  
  .onPageNavTitle h2 {
      font-family: proxima-nova,Helvetica,Arial,sans-serif;
      font-size: 18px;
      font-weight: 800;
      color: #4D4D4D;
      padding-top: 5px;
      text-align:center;
  }
  
  /* Button container: wraps items beside title */
  .onPageNavButtons {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  }
  
  /* Buttons: equal width, wrap consistently */
  .onPageNavButtons .cta--button {
    display: block;
    text-align: center;
      font-size:16px;
      margin: 0;
      padding: 10px 12px;
	  align-content: center;
  }
  
  
  /* Medium Mobile: Stack title + buttons into 2 columns */
  @media (max-width: 700px) {
      .onPageNavContainer {
      grid-template-columns: 1fr;
    }
  
    .onPageNavTitle {
      width: 100%;
    }
  
      .onPageNavButtons {display:flex;
                  flex-wrap: wrap;}
    .onPageNavButtons .cta--button {
        flex: 0 0 calc((100% - 10px) / 2); /* 2 per row */
    }
  }
  
  /* Small Mobile: Stack title + buttons into 1 column */
  @media (max-width: 480px) {
  
    .onPageNavButtons .cta--button {
      flex: 0 0 100%; /* 1 per row on mobile */
    }
  }

/* News header width fix */
 .page-intro.minimal .container {
        max-width: 800px;
    }

 /* News Filter Spacing Adjustments */
.blog__categories__item,.blog__archive__item {
	line-height: 1;
	padding-bottom:10px;
}

 /* Education modal styles */
    .educationModal {
      display: none;
      position: fixed;
      z-index: 1000;
      left: 0; top: 0;
      width: 100%; height: 100%;
      background-color: rgba(0, 0, 0, 0.5);
    }

    .educationModal[aria-hidden="false"] {
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .educationModal-content {
      background-color: white;
      padding: 1.5rem;
      max-width: 600px;
      outline: none;
    }

   .educationModal-contentWide {
     background-color: white;
      padding: 1.5rem;
      outline: none;
	   padding: 2rem;
	   max-height: 80vh;        /* Limits modal height to 80% of viewport */
  overflow: auto;        /* Adds scroll when needed */
    }

    .educationClose-button {
      width: 42px;
    height: 42px;
    padding: 0;
		margin: 0 0 10px 10px;
    border: solid 2px rgba(255, 255, 255, .5);
    background: #a6192e;
    background-size: 32px 32px;
    background-position: 50% 50%;
    background-repeat: no-repeat;
    font-size: 0;
		background-image: url(https://ou-resources.sdsu.edu/crimson/assets/icons/close.svg);
   float:right;
	}



 /* Table Caption Style */
caption {
    text-align: left;
}