@charset "UTF-8";

/*! Choate Rosemary Hall - Redesign 2021
	https://www.choate.edu/
	Developer: Todd Jaser 
	web@choate.edu 
*/

/* Stylesheet to amend/override Finalsite styles */

/* CSS Custom Properties (variables) */

:root {
	--primary-color: #002855;
	--secondary-color: #f1c400;
	--primary-accent: #005ec4;
	--secondary-accent: #ffea00;
	--gold-dark-color: #84754e;
	--black: #001226;
	--white: #f9fcff;
	--dark-gray: #59636f;
	--medium-gray: #6f8399;
	--light-gray: #edf0f3;
	--alert-color: #cc0000;
	--warning-color: #ff7800;
	--success-color: #1fc85e;
	--serif: Georgia;
	--sans: "din-2014";
	--spacing: 2rem;
	--letter-spacing: 1.8px;
}


/* COLORS */
/* Background colors */
.bg-primary {
	background-color: var(--primary-color);
}

.bg-primary-accent {
	background-color: var(--primary-accent);
}

.bg-secondary {
	background-color: var(--secondary-color);
}

.bg-secondary-accent {
	background-color: var(--secondary-accent);
}

.bg-success {
	background-color: var(--success-color);
}

.bg-warning {
	background-color: var(--warning-color);
}

.bg-alert,
.bg-danger {
	background-color: var(--alert-color);
}

.bg-info {
	background-color: var(--light-gray);
}

.bg-white {
	background-color: var(--white);
}

.bg-black {
	background-color: var(--black);
}

.bg-light-gray {
	background-color: var(--light-gray);
}

.bg-medium-gray {
	background-color: var(--medium-gray);
}

.bg-dark-gray {
	background-color: var(--dark-gray);
}

/* Text colors */
.color-primary,
.primary-color {
	color: var(--primary-color);
}

.primary-accent {
	color: var(--primary-accent);
}

.color-secondary,
.secondary-color {
	color: var(--secondary-color);
}

.text-black,
.black {
	color: var(--black);
}

.text-white,
.white {
	color: var(--white);
}

.text-success,
.text--success {
	color: var(--success-color);
}

.text-warning,
.text--warning {
	color: var(--warning-color);
}

.text-alert,
.text--alert {
	color: var(--alert-color);
}

/* Utility classes */
.clearfix::after,
.fs_style_125 {
	content: "";
	clear: both;
	display: block;
}

/* Spacing Utilities (margin & padding) */
.margin-0,
.m-0 {
	margin: 0 !important;
}

.padding-0,
.p-0 {
	padding: 0 !important;
}

.noBorder,
.no-border,
.border-none {
	border: 0 !important;
}

table.border-none td {
	border: 0 !important;
}

/* Display flex from both Foundation & Bootstrap */
.flex-container,
.d-flex {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}

.align-center {
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
}

.align-middle {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}

/* Preserve video ratio. Add the class below to the containing element (div). 
Source: https://css-tricks.com/fluid-width-video/ */
.flex-video {
	position: relative;
	padding-bottom: 56.25%;
	/* 16:9 */
	height: 0;
}

.flex-video iframe,
.flex-video embed,
.flex-video object {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

body.fsComposeMode .hide,
body.fsComposeMode .fsEmbed {
	position: relative;
	border: 3px dashed red !important;
}

body.fsComposeMode .hide::before,
body.fsComposeMode .fsEmbed::before {
	position: absolute;
	top: -21px;
	left: 0;
	font-size: 1rem;
	color: red;
}

.fsComposeMode .fsEmbed::before {
	content: "Element title hidden on front end";
}

.fsComposeMode .hide::before {
	content: "Hidden on front end";
}

/* Embed Element: Hide title from front-end to more clearly edit on backend. */
/* Reset box model */
.fsEmbed,
.fsEmbed>* {
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
}

/* Hide these only on the front end... */
body:not(.fsComposeMode) .hide,
body:not(.fsComposeMode) .fsEmbed .fsElementTitle {
	display: none;
}

/* body:not(.fsComposeMode) .hide,
body:not(.fsComposeMode) .fsEmbed {
	display: none;
} */
/* Print class to hide from screen */
/* .print-only, .hide-for-print {
	display: none;
} */
/* Add an obvious "Test Page" overlay */
.testPage {
	border: 10px solid red;
}

.testPage::before {
	z-index: 1000;
	opacity: 0.3;
	position: fixed;
	-webkit-transform: rotateZ(-90deg) translateX(-280px);
	-ms-transform: rotate(-90deg) translateX(-280px);
	transform: rotateZ(-90deg) translateX(-280px);
	-webkit-transform-origin: top left;
	-ms-transform-origin: top left;
	transform-origin: top left;
	content: "TEST PAGE";
	font-family: var(--sans);
	font-size: 2.5rem;
	font-weight: bold;
	line-height: 1;
	color: red;
}

/* Arrow pseudo-elements */
/* Down arrow */
.arrow-down {
	display: block;
	width: 0;
	height: 0;
	content: "";
	border: inset 0.7rem;
	border-bottom-width: 0;
	border-top-style: solid;
	border-color: #0a0a0a transparent transparent;
}

/* .responsiveTableWrapper {
	position: relative;
	overflow-x: auto;
	box-shadow: inset -10px 0 10px #fff;

	&::after {
		position: absolute;
		right: 0;
		width: 100%;
		height: 100%;
		background: linear-gradient(90deg, rgba(255, 255, 255, 0) 93%, rgb(255, 255, 255) 100%);
	}
} */
/* Effects classes */
.boxShadow,
.box-shadow {
	-webkit-box-shadow: 0 4px 8px rgba(180, 180, 180, 0.5);
	box-shadow: 0 4px 8px rgba(180, 180, 180, 0.5);
}

.textShadow,
.text-shadow {
	text-shadow: -1px 1px 1px rgba(0, 0, 0, 0.3);
}

.gradient-primary,
.gradient-blue,
.fs_style_122 {
	background: radial-gradient(circle at 20%, var(--primary-accent), var(--primary-color) 50%);
}

.gradient-primary :is(p,
	span,
	h2,
	h3,
	h4,
	h5,
	h6,
	li),
.gradient-blue :is(p,
	span,
	h2,
	h3,
	h4,
	h5,
	h6,
	li),
.fs_style_122 :is(p,
	span,
	h2,
	h3,
	h4,
	h5,
	h6,
	li) {
	color: var(--white);
}

.gradient-primary :is(a,
	li a),
.gradient-blue :is(a,
	li a),
.fs_style_122 :is(a,
	li a) {
	color: var(--secondary-color);
}

.gradient-secondary,
.gradient-gold,
.fs_style_123 {
	background: radial-gradient(circle at 20%, var(--secondary-accent), var(--secondary-color) 50%);
	/* :is(p,
  	span,
  	h2,
  	h3,
  	h4,
  	h5,
  	h6) {
  	color: var(--primary-color);
  } */
}

.text-gradient--gold,
.fs_style_121 {
	background: radial-gradient(circle at 20%, var(--secondary-accent), var(--secondary-color) 50%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.text-gradient--blue,
.fs_style_120 {
	background: radial-gradient(circle at 20%, var(--primary-accent), var(--primary-color) 50%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

/* TOOLTIPS START */
.tooltip {
	position: relative;
	/* making the .tooltip span a container for the tooltip text */
	border-bottom: 1px dashed var(--primary-accent);
	/* little indicater to indicate it's hoverable */
	/* Tooltip arrows */
}

.tooltip::before {
	content: attr(data-text);
	/* here's the magic */
	position: absolute;
	/* vertically center */
	top: 50%;
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	transform: translateY(-50%);
	/* move to right */
	left: 100%;
	margin-left: 15px;
	/* and add a small left margin */
	/* basic styles */
	width: 200px;
	padding: 10px;
	border-radius: 5px;
	background: var(--black);
	font-size: 90%;
	font-family: var(--sans);
	color: var(--white);
	text-align: center;
}

.tooltip::after {
	content: "";
	position: absolute;
	/* position tooltip correctly */
	left: 100%;
	margin-left: -5px;
	/* vertically center */
	top: 50%;
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	transform: translateY(-50%);
	/* the arrow */
	border: 10px solid var(--black);
	border-color: transparent var(--black) transparent transparent;
}

.tooltip::before,
.tooltip::after {
	/* animation */
	opacity: 0;
	-webkit-transition: 0.3s opacity;
	transition: 0.3s opacity;
}

.tooltip:hover:before,
.tooltip:hover:after {
	display: block;
	opacity: 1;
}

/* TOOLTIPS END */
/* Finalsite bug Aug '24: Hide duplicate resource title 
.fsTitle.fsResourceTitle+.fsTitle.fsResourceTitle {
	display: none;
} */
/* Things to hide. */
.juicer-feed .j-filters.filters,
#fsPoweredByFinalsite {
	display: none !important;
}

/* TYPOGRAPHY */
body {
	color: var(--black);
	-webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
	margin-top: 0;
}

h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
	margin-bottom: 1rem;
	font-family: var(--serif);
	line-height: 1.1;
	text-rendering: optimizeLegibility;
}

h1,
.h1 {
	font-size: 2.4rem;
}

h1.alt,
.h1.alt {
	font-family: var(--sans);
	font-weight: 600;
}

h2,
.h2 {
	font-size: 2rem;
}

h3,
.h3 {
	font-size: 1.7rem;
}

h4,
.h4 {
	font-size: 1.5rem;
}

h5,
.h5 {
	font-size: 1.25rem;
	line-height: 1.1;
	color: var(--black);
}

h6,
.h6 {
	font-size: 1.1rem;
	line-height: 1.1;
	color: var(--dark-gray);
}

figcaption {
	font-size: 0.875rem;
	color: var(--medium-gray);
	text-align: center;
}

/* Add a margin to any headings that are direct siblings. */
:is(h1, h2, h3, h4, h5, h6)+ :is(h1, h2, h3, h4, h5, h6) {
	margin-top: var(--spacing);
}

/* Add a margin to any list directly below a heading. */
:is(h1, h2, h3, h4, h5, h6)+ :is(ul, ol) {
	margin-top: calc(var(--spacing) * 0.75);
}

.font-alt,
.display-5,
.fs_style_118,
.display-4,
.fs_style_117,
.display-3,
.fs_style_116,
.display-2,
.fs_style_115,
.display-1,
.fs_style_114,
.subheader,
.fs_style_113,
.fs_style_112 {
	font-family: var(--sans);
	text-transform: uppercase;
	line-height: 1.025;
	letter-spacing: 0.1em;
}

.subheader,
.fs_style_113 {
	margin-top: 0.5rem;
	opacity: 0.4;
	font-weight: bold;
}

.lead-in,
.fs_style_95 {
	font-size: 125%;
	line-height: inherit;
}

/* Display headings */
.display-1,
.fs_style_114 {
	margin-bottom: 0.2em;
	font-weight: bold;
}

@media (max-width: 63.9375rem) {

	.display-1,
	.fs_style_114 {
		font-size: 14.1vmin;
	}
}

@media (min-width: 64rem) {

	.display-1,
	.fs_style_114 {
		font-size: 6.25rem;
	}
}

.display-2,
.fs_style_115 {
	margin-bottom: 0.2em;
	font-weight: bold;
}

@media (max-width: 63.9375rem) {

	.display-2,
	.fs_style_115 {
		font-size: 13.2vmin;
	}
}

@media (min-width: 64rem) {

	.display-2,
	.fs_style_115 {
		font-size: 5.5rem;
	}
}

.display-3,
.fs_style_116 {
	margin-bottom: 0.2em;
	font-weight: bold;
}

@media (max-width: 63.9375rem) {

	.display-3,
	.fs_style_116 {
		font-size: 12.3vmin;
	}
}

@media (min-width: 64rem) {

	.display-3,
	.fs_style_116 {
		font-size: 4.75rem;
	}
}

.display-4,
.fs_style_117 {
	margin-bottom: 0.2em;
	font-weight: bold;
}

@media (max-width: 63.9375rem) {

	.display-4,
	.fs_style_117 {
		font-size: 11.4vmin;
	}
}

@media (min-width: 64rem) {

	.display-4,
	.fs_style_117 {
		font-size: 4rem;
	}
}

.display-5,
.fs_style_118 {
	margin-bottom: 0.2em;
	font-weight: bold;
}

@media (max-width: 63.9375rem) {

	.display-5,
	.fs_style_118 {
		font-size: 10.5vmin;
	}
}

@media (min-width: 64rem) {

	.display-5,
	.fs_style_118 {
		font-size: 3.25rem;
	}
}

abbr[title] {
	cursor: help;
	text-decoration: none;
}

@media (hover: none) {
	abbr[title]::after {
		content: "(" attr(title) ")";
		padding-left: 0.4em;
		font-size: 80%;
		color: var(--medium-gray);
	}
}

/* Typography utility classes */
body:not(.fsComposeMode) .text-center,
body:not(.fsComposeMode) .text-center :is(td, th) {
	text-align: center !important;
}

body:not(.fsComposeMode) .text-left,
body:not(.fsComposeMode) .text-left :is(td, th) {
	text-align: left !important;
}

body:not(.fsComposeMode) .text-right,
body:not(.fsComposeMode) .text-right :is(td, th) {
	text-align: right !important;
}

body:not(.fsComposeMode) .text-justify,
body:not(.fsComposeMode) .text-justify :is(td, th) {
	text-align: justify !important;
}

.stat {
	font-size: 2.5rem;
	line-height: 1;
}

/* ANCHORS / LINKS */
a,
.fsPostElement :is(.fsContent, .fsSummary, .fsBody, .fsDescription) a:not(.fs_style_96) {
	color: var(--primary-accent);
}

/* Links inside main content areas that don't have Finalsite button styles.  */
.fsPageContent :is(.fsContent, .fsSummary, .fsBody, .fsDescription) a:not(.fs_style_96),
dialog a {
	text-decoration: underline;
	-webkit-transition: all 300ms;
	transition: all 300ms;
}

/* Hover/focus states for links inside main content areas */
.fsPageContent :is(.fsContent, .fsSummary, .fsBody, .fsDescription) a:not(.fs_style_96):hover,
.fsPageContent :is(.fsContent, .fsSummary, .fsBody, .fsDescription) a:not(.fs_style_96):focus,
dialog a:hover {
	color: var(--black);
}

/* Remove custom anchor styles from these ($ matches ending string) */
.bgReset,
.bgReset a,
a[class$=Icon],
.fsLiveMode .card.blue a:not(.fs_style_96),
.fsLiveMode .card.blue a:not(.fs_style_96):focus,
.fsLiveMode .card.blue a:not(.fs_style_96):hover {
	background-image: inherit;
	background-size: inherit;
	background-position: inherit;
}

/* Override Twitter/X logo */
.nav-social .fsNavLevel1 [href*=twitter]:before,
.nav-social .fsNavLevel1 [href*="x.com"]:before {
	content: "\e939";
	font-family: "fsIcomoon";
}

.fsPostElement .fsTitle a:hover {
	text-decoration: inherit;
}

a.disabled,
button.disabled,
a.disabled:hover,
button.disabled:hover {
	opacity: 0.5;
	cursor: not-allowed;
}

.fsPageTitle {
	font-family: var(--sans), sans-serif;
	line-height: 1.2;
	font-weight: 700;
	/* .hero-info & {
  	// Reset mobile colors (To do: Debug cross-device)
  	color: var(--white);
  	background: transparent;
  	-webkit-text-fill-color: initial;
  } */
}

@media (min-width: 641px) {
	.fsPageTitle {
		font-size: 4rem;
	}
}

@media (max-width: 640px) {
	.fsPageTitle {
		font-size: 2.5rem;
	}
}

/* @media (max-width: 960px) {
	.hero-info .fsPageTitle {
		display: block;
	}
} */
/* .fsPageTitle.mobile {
	display: none;
} */
/* Hero subtext */
.fsResourceElement.hero-slideshow .hero-info .fsElementHeaderContent {
	font-size: 1.25rem;
}

@media (min-width: 641px) {
	.fsResourceElement.hero-slideshow .hero-info .fsElementHeaderContent {
		font-size: 1.5rem;
	}
}

/* .has-hero .fsPageTitle {
	text-shadow: 0px 3px 3px rgb(0 0 0 / 44%);
} */
.card h2 {
	line-height: inherit;
}

p> :last-child {
	margin-bottom: 0;
}

.card cite {
	color: var(--black);
}

.card.blue cite,
.card.gradient-blue cite {
	color: var(--white);
}

.card:is(.gold, .gradient-gold) blockquote::before {
	color: var(--primary-accent);
}

/* Global notification bar */
.notification-bar a {
	color: var(--secondary-accent);
}

.notification-bar.gradient-gold a,
.notification-bar.gradient-gold footer button.close:before {
	color: var(--primary-color);
}

/* BUTTONS */
/* Override Finalsite styles */
/* Default, primary button */
.fs_style_96 {
	margin: 0 0 var(--spacing);
	padding: 1.1em 2em;
	letter-spacing: var(--letter-spacing);
}

/* Button with subtext */
.fs_style_96 .fs_style_111 {
	display: inline-block;
	margin-top: inherit;
	font-size: inherit;
	line-height: inherit;
}

/* Large button */
.fs_style_96.fs_style_100 {
	padding: 1.4em 3em;
}

/* Image Buttons (enhancement) */
.image-button-alt a {
	background-color: var(--secondary-accent);
	color: var(--primary-color);
}

.image-button-alt a::after {
	color: var(--primary-color);
}

.fsLiveMode .image-button-alt a:focus,
.fsLiveMode .image-button-alt a:hover {
	background-color: var(--secondary-color);
}

.fsStyleDefaultButton.fsLoadMoreButton:after {
	margin-left: 10px;
}

/* START HOMEPAGE */
/* Make bg transparent */
body.fsLiveMode.opportunities-active .fsTabs.our-opportunities .fsPanel>.fsElementContent {
	background: transparent;
}

/* Display-styled headings (strong tag) */
.section-intro .fsElementHeaderContent strong {
	line-height: 1;
}

/* Scrolling heading */
.moving-text header h2.fsElementTitle {
	margin-top: 0;
}

/* Testimonial videos/questions */
.videos-wrapper .pop-up-videos {
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
	max-width: 80vw;
}

.fsLiveMode .videos-wrapper .pop-up-videos article.playing {
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-box-align: end;
	-ms-flex-align: end;
	align-items: flex-end;
}

.fsAccountBarVisible .videos-wrapper .pop-up-videos article video {
	max-height: 85vh;
}

/* Our Stories - Card headings */
.fsLiveMode .our-stories>.fsElementContent:not(.pop-up-slider) .fsContent header h2.fsElementTitle {
	margin-bottom: inherit;
}

/* Prevent the news/events drawer from scrolling content below it. */
body:not(.fsComposeMode) .news-drawer>.fsElementContent .fsTabs {
	-ms-scroll-chaining: none;
	overscroll-behavior: contain;
}

.news-drawer>.fsElementContent .fsPanel .fsCalendar>.fsElementContent {
	margin-top: 0;
}

.news-drawer>.fsElementContent .fsPanel>.fsElementContent {
	margin-top: var(--spacing);
}

.news-drawer .fsLocation::before {
	content: normal;
}

/* Events nav arrows */
.news-drawer>.fsElementContent .fsPanel .slick-arrow {
	bottom: -95px;
}

.news-drawer>.fsElementContent .fsPanel .fsCalendar>.fsElementContent {
	margin-bottom: var(--spacing);
}

.news-drawer>.fsElementContent .fsPanel .fsCalendar .fsElementFooterContent a.fs_style_96.fs_style_104 {
	display: initial;
}

.news-drawer>.fsElementContent .fsPanel .fsCalendar .slide article:last-child {
	margin-bottom: var(--spacing);
}

.news-drawer>.fsElementContent .fsPanel>.fsElementContent,
.our-opportunities .fsPanel>.fsElementContent {
	background: initial;
}

/* Footer CTAs */
.fsLayout.image-buttons-container .fsElementHeaderContent strong {
	margin-top: 0;
	font-size: 3.8rem;
}

@media (min-width: 641px) {
	.news-drawer>.fsElementContent .fsPanel .fsCalendar article {
		min-height: inherit;
	}
}

@media (min-width: 961px) {
	.news-drawer>.fsElementContent .fsTabs {
		padding: 60px;
	}

	.news-drawer>.fsElementContent .fsTabs .fsElementHeaderContent {
		top: 50px;
	}

	.news-drawer>.fsElementContent .fsTabs>header h2.fsElementTitle {
		font-size: 5vmax;
	}

	.news-drawer>.fsElementContent .fsPostElement .fsThumbnail {
		height: 360px;
	}

	.news-drawer>.fsElementContent .fsPanel .fsCalendar .fsElementFooterContent {
		margin-top: 0;
	}

	.fsLiveMode .fsTabs.our-opportunities .fsPanel .fsContent.slick-current h2.fsElementTitle {
		font-size: 6.5rem;
	}
}

/* END HOMEPAGE */

/* Page Pops. Override default width. */
.fsPagePopDialog {
	width: 700px;
}

dialog[open] {
    display: flex;
    flex-direction: column;
}

/* Page Pop - Wrapping div for "Don't Show Again" button */
#fsPagePopControls {
	-webkit-box-ordinal-group: 0;
	-ms-flex-order: -1;
	order: -1;
	padding: 1rem 1rem 0 2rem;
	font-size: 0.9rem;
}

/* Page Pop - "Don't Show Again" button */
#fsPagePopHideButton {
	padding: 0.5em 0 0.8em 0;
	font-size: 90%;
	opacity: initial;
	color: var(--primary-accent);
	cursor: pointer;
}

/* Constituent names (h3) in Directory view (list/grid) */
[class^=fsConstituentColumnLayout_] .fsFullName {
	margin-bottom: 0.2rem;
	font-size: 1.3rem;
}

/* Constituent labels */
.fsConstituentItem>* strong {
	font-family: var(--sans);
}

/* The Degrees field in the Constituent Mgr is repurposed for the team coached. */
.fsDegrees strong {
	font-size: 0;
}

.fsDegrees strong::after {
	content: "Coaches:";
	/* color: red; */
	font-size: 1.125rem;
}

/* Metadata not in tables. */
:not(.fsAthleticsDate):not(.fsAthleticsTime):not(.fsAthleticsEvent):not(.fsResultCustom):not(.fsEventTable tr)> :is(.fsAuthor, .fsDateTime, .fsExpireDateTime, .fsTimeRange, .fsAllDay, .fsUpdatedDateTime, .fsLocation, .fsAthleticsAdvantage, .fsAthleticsLocations, .fsAthleticsEventType) {
	font-size: 1rem;
	line-height: 1.2;
	letter-spacing: 1px;
	color: var(--medium-gray);
	font-family: var(--sans), sans-serif;
	font-weight: 600;
}

.fsExpireDateTime::before {
	content: "Due:";
}

/* Login page elements */
.fsLoginForgotPasswordLink,
.fsLoginNewAccountLink,
.fsReadMoreLink {
	font-size: 85%;
}

.fsLoginForgotView h3 {
	font-size: 1.2rem;
}

/* LAYOUT AND COMPONENTS */
hr {
	clear: both;
	height: 0;
	max-width: 75rem;
	margin: calc(var(--spacing) * 1.5) auto;
	border-top: 0;
	border-right: 0;
	border-bottom: 1px solid #cacaca;
	border-left: 0;
}

ul :is(ul, ol),
ol :is(ul, ol) {
	margin-bottom: 0;
	list-style-type: disc;
}

address {
	font-style: normal;
	margin-bottom: var(--spacing);
}

.fsImage {
	margin-bottom: var(--spacing);
}

.fsElementHeaderContent .fsImage {
	margin-bottom: inherit;
}

.copyright {
	margin-right: auto;
}

/* Cell Borders */
table.fs_style_109 td {
	border: 1px solid #ddd;
}

/* Layout containers, e.g., half, thirds */
.fsElement.fsLayout {
	margin-bottom: var(--spacing);
}

/* Child div of layout container */
.fsLayout .fsDiv {
	margin-bottom: initial;
}

.fsStyleColumn>.fsElement {
	margin-bottom: var(--spacing);
}

/* Cards with titles. To do. */
/* .card>.fsElementContent,
.fsBanner .card .fsElementContent {} */
/* Column layouts with the .card class */
.fsLayout.card {
	padding: 2em 0;
}

/* Don't allow the background to scroll when the menu is expanded. No Safari support as of Aug '21. 
https://developer.mozilla.org/en-US/docs/Web/CSS/overscroll-behavior */
#fsMenu {
	-ms-scroll-chaining: none;
	overscroll-behavior: contain;
	max-height: 510px;
}

/* FLOATS */
/* .fsStateFloatRight,
.fsStateFloatLeft {
	@extend .clearfix;
} */
.fsStateFloatRight {
	margin-left: var(--spacing);
}

.fsStateFloatLeft {
	margin-right: var(--spacing);
}

/* COLUMNS */
/* ONE-THIRD AND TWO-THIRD COLUMNS */
@media (min-width: 641px) {

	/* Reset widths. (Not needed when specifying flex values.) */
	:is(.fsElephantRightLayout, .fsElephantLeftLayout, .fsTwoColumnWideLeftLayout, .fsTwoColumnWideRightLayout) {
		gap: 3rem;
	}

	/* One-thirds columns */
	:is(.fsElephantRightLayout, .fsElephantLeftLayout) .fsStyleOneThird,
	:is(.fsTwoColumnWideRightLayout, .fsTwoColumnWideLeftLayout) .fsStyleOneThird {
		-webkit-box-flex: 1;
		-ms-flex: 1 0 0%;
		flex: 1 0 0%;
	}

	/* Don't need padding if using flex gap. */
	:is(.fsElephantRightLayout, .fsTwoColumnWideLeftLayout) .fsStyleOneThird {
		padding: 0;
	}

	/* Don't need padding if using flex gap. */
	:is(.fsElephantLeftLayout, .fsTwoColumnWideRightLayout) .fsStyleOneThird {
		padding: 0;
	}

	/* Two-thirds columns */
	:is(.fsElephantRightLayout, .fsElephantLeftLayout) .fsStyleTwoThirds,
	:is(.fsTwoColumnWideRightLayout, .fsTwoColumnWideLeftLayout) .fsStyleTwoThirds {
		-webkit-box-flex: 2;
		-ms-flex: 2 0 0%;
		flex: 2 0 0%;
	}
}

/* STICKY ELEMENTS */
/* For the sticky sub-nav to work, the #fsPageWrapper must not have a hidden overflow. (Will this break anything? Breaks footer CTA overflow, but setting overflow: hidden on #fsFooter fixes it.) */
/* Only add styles when the sidebar displays... */
@media (min-width: 641px) {

	/* Only override overflow in the following cases... */
	html,
	body:not(.home),
	:is(.fsHasLeftBanner, .hasSticky) #fsPageWrapper {
		overflow: initial;
	}

	/* Note: The direct parent of the sticky element must have a height of 100 %/vh. Adjust the top positioning based on the size of any overlaid header/menu. */
	.fsBannerLeft .fsBanner,
	.hasSticky .sticky {
		position: sticky;
		top: 7rem;
	}

	/* This fixes overflow issues when using overlow on #fsPageWrapper to properly display .sticky navbars. */
	#fsFooter {
		overflow: hidden;
	}

	/* Hide this if using sticky navs, otherwise causes overflow-x issues. */
	.scroll-tooltip {
		display: none;
	}
}

@media (min-width: 1060px) {

	.fsAccountBarVisible .fsBannerLeft .fsBanner,
	.fsAccountBarVisible .hasSticky .sticky {
		top: 8rem;
	}

	.fsAccountBarVisible.scrolled .fsBannerLeft .fsBanner,
	.fsAccountBarVisible .hasSticky .sticky {
		top: 4rem;
		-webkit-transition: top 300ms;
		transition: top 300ms;
	}
}

/* Margin below List Element headings. (Too much on Search Results page.) */
/* :is(.fsList, .fsToolsElement)>header {
	@include bp-above(sm) {
		margin-bottom: var(--spacing);
	}
} */
.fsTabs {
	margin-bottom: var(--spacing);
}

/* DIALOG BOXES */
.fsDialog .fsBody {
	margin-bottom: var(--spacing);
}

/* RESOURCES */
/* Move resource pagination arrows toward the center */
.fsSlideshow .fsNextButton.fsRightArrow:before,
.fsSlideshow .fsPrevButton.fsRightArrow:before {
	right: 30%;
}

.fsSlideshow .fsNextButton.fsLeftArrow:before,
.fsSlideshow .fsPrevButton.fsLeftArrow:before {
	left: 30%;
}

/* POSTS */
/* Reset post titles */
.fsPostElement .fsTitle {
	font-size: inherit;
	line-height: 1.2;
}

.fsPostElement.fsDialog .fsTitle {
	font-size: 2rem;
}

.fsPostElement.fsList article:not(:last-child) {
	margin-bottom: 1rem;
	padding-bottom: inherit;
	border-bottom: 2px dotted var(--medium-gray);
}

.fsPostElement.fsList.card article:not(:last-child) {
	padding-bottom: 0;
}

.fsPost article>* {
	margin-bottom: 1rem;
	margin-left: inherit;
}

.fsListItems article>* {
	margin-bottom: 1rem;
}

.fsAthleticsEvent .fsListItems article>* {
	margin-bottom: initial;
}

/* Post categories AND tags */
.fsCategories .fsCategory,
.fsTags .fsTag {
	padding: 0.5em;
	font-size: 0.7rem;
	line-height: 1;
}

/* Post categories */
.fsCategories .fsCategory,
.fsTags .fsTag {
	color: var(--primary-color);
	background-color: var(--light-gray);
}

.card.light .fsCategories .fsCategory,
.fsPanel .fsCategories .fsCategory,
.card.light .fsTags .fsTag,
.fsPanel .fsTags .fsTag {
	background-color: var(--white);
}

/* Post tags */
.card.light .fsTags .fsTag {
	background-color: var(--white);
}

:is(.fsThumbnailLarge, .fsThumbnailXLarge) img {
	margin-bottom: var(--spacing);
}

/* Post Tools (filters) */
.fsStateSelected .fsStyleDefaultButton {
	background: var(--secondary-color);
}

/* Label for featured post titles w/the class "new" */
.fsFeaturedPost.new .fsTitle::after {
	content: "NEW";
	padding: 0.15em 0.7em;
	margin-left: 5px;
	border-radius: 2px;
	background: linear-gradient(336deg, var(--secondary-accent), var(--white));
	color: var(--black);
	vertical-align: middle;
	font-family: var(--sans);
	font-size: 0.75rem;
	font-weight: bold;
	letter-spacing: 1px;
}

/* Posts - Grid-card-shadow view */
/* Add this class to a wrapping container */
.grid--card-shadow {
	/* .fsElement.fsGrid>.fsElementContent article {
  	// box-shadow: 0px 2px 4px 0px #ddd;
  	// Alt shadow:
  	box-shadow: -2px 0 12px 0 rgba(0, 0, 0, 0.09);
  } */
}

.grid--card-shadow.fsPanelGroup .fsListItems>article {
	background-color: rgba(255, 255, 255, 0.7);
}

.grid--card-shadow .fsListItems {
	display: -ms-grid;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 2rem;
	margin: 0 0 var(--spacing);
}

.grid--card-shadow .fsListItems>article {
	width: auto;
	padding: 1em;
	margin: 0;
	-webkit-box-shadow: -2px 0 12px 0 rgba(0, 0, 0, 0.09);
	box-shadow: -2px 0 12px 0 rgba(0, 0, 0, 0.09);
}

/* List items that are resources */
.fsListNav .fsListLevel1>.fsResource {
	padding: 0;
	margin-bottom: 1rem;
	border-bottom: 0;
}

.fsAthleticsRosterList li,
.fsAthleticsRosterList li>* {
	margin: inherit;
	padding: inherit;
	margin-bottom: 1rem;
	padding-bottom: 1rem;
}

.fsStreamEventItem {
	margin-bottom: 0.5rem;
}

.fsStreamEventItem>* {
	display: block;
}

/* Add a colon after the word "Updated" */
.fsUpdatedDateTime> :first-child::before {
	content: ":";
	margin-left: -4px;
}

.fsAccordion .fsPanel>header h2,
.fsTabs .fsPanel>header h2,
.fsTabs .fsTabsNav li a,
.fsStyleDefaultButton.fsLoadMoreButton {
	letter-spacing: var(--letter-spacing);
}

/* Change Panel child element styles */
.fsAccordion .fsPanel>.fsElementContent,
.fsTabs .fsPanel>.fsElementContent {
	margin: inherit;
	padding: 2rem 1.5rem;
	/* background-color: var(--light-gray); */
	background: linear-gradient(180deg, rgba(255, 255, 255, 0), var(--light-gray) 30px);
}

/* Alternative panel headings. Add the class name to the Panel Element */
.fsAccordion.panelsLowercase .fsPanel>header .fsElementTitle,
.fsTabs.panelsLowercase .fsPanel>header .fsElementTitle,
.fsTabs.panelsLowercase .fsTabsNav li a {
	text-transform: none;
	letter-spacing: 0px;
	font-size: inherit;
}

/* Panel titles w/the lowercase class added */
.fsAccordion.panelsLowercase .fsPanel>header .fsElementTitle,
.fsTabs.panelsLowercase .fsPanel>header .fsElementTitle {
	padding: 0.6em 1em 0.6em 1.6em;
	font-weight: 600;
}

/* Toggle icon before panel titles w/the lowercase class added */
.fsAccordion.fsPanelIconBefore.panelsLowercase .fsPanel>header .fsElementTitle:before,
.fsTabs.fsPanelIconBefore.panelsLowercase .fsPanel>header .fsElementTitle:before {
	left: 0;
}

/* MAIN NAV */
.nav-main>.fsElementContent .fsNavLevel2 li a {
	letter-spacing: var(--letter-spacing);
}

/* Nav's callout section button  */
.nav-main>.fsElementContent .fsNavPageDescription a {
	color: var(--primary-color);
	background-color: var(--secondary-accent);
}

.nav-main>.fsElementContent .fsNavPageDescription a::after {
	color: var(--primary-color);
}

.nav-main>.fsElementContent .fsNavPageDescription a:hover {
	color: var(--white);
	background-color: var(--primary-accent);
}

.nav-main>.fsElementContent .fsNavPageDescription a:hover::after {
	color: var(--white);
}

/* MOBILE NAV */
.nav-main-mobile ul ul {
	margin-left: 15px;
}

.nav-main-mobile ul ul a {
	padding: 9px 20px;
}

/* Header Utility Nav */
.nav-utility-header .fsNavLevel1 {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}

.nav-utility-header .fsNavLevel1 .fsNavPageInfo {
	padding: 10px 0;
}

.nav-utility-header .fsNavLevel1 .fsNavPageInfo a {
	margin-bottom: 0;
	padding: 0.7em 2em;
	line-height: 1.5;
	letter-spacing: var(--letter-spacing);
	background-image: none;
}

/* Inspire the Next Campaign nav item */
#fsMenu .nav-utility-header .fsNavLevel1 {
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

#fsMenu .nav-utility-header .fsNavLevel1 li {
	-ms-flex-preferred-size: 30%;
	flex-basis: 30%;
}

li.inspire>a,
li.inspire>a:hover {
	content: "";
	text-indent: -9999em;
	margin: -10px 0 0 5px !important;
	background-image: url(../images/InspireTheNext_Horizontal-NoTag-2c-darkblue.png) !important;
	width: 160px;
	height: 22px;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center center;
	white-space: nowrap;
	overflow: hidden;
}

@media (max-width: 1059px) {
	li.inspire {
		padding-top: 0.6rem;
		border-top: 1px dashed var(--medium-gray);
	}

	li.inspire a {
		padding-bottom: 0;
	}

	li.inspire>a::before {
		width: 250px;
		height: 56px;
		background-image: url(../images/Inspire-The-Next_Horizontal-Tag-2c-darkblue.png);
		/* background-size: contain; */
	}
}

/* SUBNAV */
/* Mobile Subnav */
.nav-sub.mobile {
	--nav-color: var(--secondary-color);
	--nav-color-accent: var(--secondary-accent);
	background-color: var(--nav-color);
}

.nav-sub.mobile h2.fsElementTitle {
	color: var(--primary-color);
}

body:not(.fsAccountBarVisible).fix-nav-sub .nav-sub.mobile h2.fsElementTitle {
	border-bottom: none;
}

.nav-sub.mobile .nav-sub-toggle::before {
	font-size: 1rem;
	color: var(--primary-color);
}

.nav-sub.mobile .fsNavLevel1>li:not(:last-child) {
	border-color: var(--nav-color-accent);
}

.nav-sub.mobile ul li button:before {
	font-size: 2.7rem;
}

.nav-sub.mobile .fsNavLevel1>li>.fsNavPageInfo:after {
	background-color: var(--nav-color-accent);
	width: 6px;
}

.nav-sub.mobile .fsNavLevel1>li>a:hover {
	background-color: inherit;
}

.nav-sub.mobile .fsNavLevel2 {
	border-top-color: var(--nav-color-accent);
}

.nav-sub.mobile.active-nav h2.fsElementTitle {
	background-color: var(--nav-color);
}

.nav-sub.mobile.active-nav .nav-sub-toggle:before {
	font-size: 0.35rem;
}

.nav-sub.mobile .fsNavLevel1 {
	padding: 0 1em 1em;
}

.nav-sub .fsNavLevel1>li>a {
	letter-spacing: var(--letter-spacing);
}

@media (min-width: 961px) {
	.nav-sub ul li a {
		word-break: initial;
		overflow-wrap: initial;
		-webkit-hyphens: initial;
		-ms-hyphens: initial;
		hyphens: initial;
	}

	.nav-sub .fsNavLevel1>li>a:hover:after {
		background-color: transparent;
	}
}

/* Level 2 nav */
.nav-sub .fsNavLevel2>li a {
	padding-top: 0.3em;
	padding-bottom: 0.3em;
	line-height: 1.4;
	font-weight: normal;
}

.nav-sub .fsNavLevel2>li button {
	top: 3px;
}

/* Level 3 nav anchors */
.nav-sub .fsNavLevel3>li>a {
	padding-top: 0.5em;
	padding-bottom: 0.5em;
	padding-left: 3em;
}

/* Level 3 nav indicators/bullets */
.nav-sub .fsNavLevel3>li>a:before {
	opacity: 0.3;
	top: 16px;
}

/* Level 4 nav */
.nav-sub ul li .fsNavLevel4 a {
	padding: 7px 0 7px 65px;
	line-height: 1.5;
}

/* CALENDARS & EVENTS */
/* Add various punctuation to dates until Finalsite fixes */
.fsMonth::after {
	content: " ";
}

/* If the time follows a date, add the word "at" before it.  */
.fsDate+.fsTime::before {
	content: " at ";
}

.fsCalendar .fsTitle {
	font-size: inherit;
}

/* MONTH VIEW */
.fsCalendar.fsGrid .fsNotes {
	font-size: 85%;
}

/* Style the dialog Notes field */
.fsDialog .fsNotes {
	padding: 1em;
	font-size: 90%;
	background: var(--light-gray);
}

.fsDialog .fsNotes::before {
	content: "Notes:";
	display: block;
	margin-bottom: 1rem;
	font-style: italic;
}

/* Add a max-height & scrollbar to days with multiple events. */
.fsGrid .fsCalendarDaybox {
	/* .fsCalendarDate {
  	position: sticky;
  	top: 0;
  } */
}

.fsGrid .fsCalendarDaybox.fsStateHasEvents {
	max-height: 350px;
	overflow-y: auto;
}

/* Calendar grid cell w/today's date */
.fsCalendarEventGrid .fsCalendarRow .fsCalendarToday {
	background-color: rgba(255, 249, 191, 0.7215686275);
}

/* CONSTITUENTS */
.fsConstituent .fsConstituentItem {
	margin-bottom: calc(var(--spacing) * 1.5);
}

.fsConstituent .fsConstituentItem .fsPhones {
	font-size: 0;
}

.fsConstituent .fsConstituentItem .fsPhones a {
	font-size: 1.125rem;
}

/* START: Style the name & photo of a Constituent Element -> Profile */
.quotePhoto {
	/* The wrapper of the constituent data */
	/* Certain modern iOS webkit browsers don't support flex gap, so use a l/r margin on the children. */
	/* The image wrapper */
	/* The image (as a bg image) */
	/* Full name (ideally, add the class .subheader) */
	/* Add text before the name */
	/* Add text after the name */
	/* Extra constituent data */
}

.quotePhoto .fsConstituentProfile.fsHasPhoto {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: end;
	-ms-flex-pack: end;
	justify-content: flex-end;
	margin-left: 1em;
}

@media (max-width: 30rem) {
	.quotePhoto .fsConstituentProfile.fsHasPhoto {
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		-ms-flex-direction: column;
		flex-direction: column;
	}
}

.quotePhoto .fsProfileImage.fsThumbnail {
	max-width: 100px;
	margin-bottom: 0;
	margin-right: 1rem;
}

.quotePhoto .fsCroppedImage {
	border-radius: 50%;
}

.quotePhoto .fsFullName {
	font-size: 0.875rem;
}

.quotePhoto .fsFullName::before {
	content: "—";
}

.quotePhoto .fsFullName::after {
	content: ", Department Head";
	margin-left: -5px;
}

.quotePhoto .fsProfileSection {
	display: none;
}

/* END: Style the name & photo of a Constituent Element -> Profile */
/* ATHLETICS MANAGER */
/* Coaches */
.fsCoaches {
	/* .fsRosterTitle, [id^="fsEmail"] {
  	display: inline-block;
  } */
}

.fsCoaches .fsRosterName {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
}

.fsCoaches li>* {
	padding-bottom: 0;
}

.fsCoaches .fsCoachImage {
	max-width: 200px;
	display: inherit;
}

/* FINALSITE ELEMENT OVERRIDES */
dialog {
	max-height: 95vh;
	min-width: 325px;
}

/* A smaller max-height on dialogs/modals prevents them from clipping atop the viewport (see athletics events with recaps) */
@media (min-width: 640px) {
	dialog {
		max-height: 70vh;
	}
}

/* The inner, wrapping div of a dialog box (siblings w/the close button). Reset the application.css styles. Display flex to reorder the "Don't Display Again" button. */
.fsDialogContent {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-flow: column;
	flex-flow: column;
	max-height: inherit;
}

/* Add relative positioning for proper pseudo-element positioning. */
dialog article {
	position: relative;
}

/* Custom panels (full-width) */
.fsLiveMode .panel.right .fsElementContent {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-flow: column;
	flex-flow: column;
	-webkit-box-align: end;
	-ms-flex-align: end;
	align-items: flex-end;
	text-align: right;
}

.fsLiveMode .panel> :last-child {
	margin-bottom: 0;
}

#fsAccountBar {
	-webkit-box-shadow: 0 0px 5px rgba(0, 0, 0, 0.3);
	box-shadow: 0 0px 5px rgba(0, 0, 0, 0.3);
}

/* Display label as block */
.fsPasskey {
	display: block;
}

/* Search Button */
/* .fsElementToolsSearchButton {
	padding: 0 2em;
} */
/* Input bar - clear icon */
.fsElementToolsKeyword .fsButtonClear,
.fsSearchElementKeyword .fsButtonClear {
	line-height: 1;
	cursor: pointer;
}

/* Weglot - Language Translation Tool */
/* Hide Weglot on mobile devices until positioning is addressed */
/* @media (max-width: 1059px) {
	.wg-default, 
	.fsLiveMode .wg-default .country-selector {
		display: none;
	}
} */
/* Position Weglot position atop the bottom nav when scrolling */
@media (max-width: 1059px) {

	.fsLiveMode .wg-default,
	.fsLiveMode .wg-default .country-selector {
		-webkit-transition: all 300ms;
		transition: all 300ms;
		bottom: 79px;
	}

	.scrolled .wg-default,
	.scrolled .wg-default .country-selector {
		bottom: 0;
	}
}

/* STYLES FOR EVERY THEME */
/* Global Theme Overrides. Styles to apply to all Finalsite themes on Choate's website & portals. */
/* Add a comma after the day, except on slideshows. */
.fsCalendar:not(.fsSlideshow) .fsDayName::after {
	content: ", ";
}

/* Add a comma before years (after dates) that are spelled out that don't already have a comma (separator). */
:not(.fsSeparator)+.fsYear::before {
	content: ", ";
	margin-left: -5px;
}

/* Read More link (the underline on legacy portals looks odd. Removing until redesign.) */
/* .fsReadMoreLink {
	display: block;
} */
/* Featured posts in lists & grids. Looks odd in various, styled feeds. */
/* .fsList:not(.card) .fsFeaturedPost,
.fsGrid:not(.card) .fsFeaturedPost {
	border: 2px solid var(--secondary-color);
} */
/* Posts with the tag "Action Required" */
.fsTag-271 .fsCategory {
	background: var(--secondary-color);
	color: var(--black);
}

/* SEARCH */
.search-container {
	-ms-scroll-chaining: none;
	overscroll-behavior: contain;
}

/* Search input */
.fsSearchElement.site-search input {
	padding: 1.4em 1em;
	font-size: 1rem;
	color: var(--white);
}

.fsSearchElement.site-search .tt-hint {
	color: var(--medium-gray);
}

/* SEARCH RESULTS */
.fsSearchElement .fsSummary::before,
.fsSearchElement .fsSummary::after {
	content: '"';
}

/* Search Suggestions */
/* Use important to override script positioning. */
.tt-menu {
	padding: 0.5em;
}

@media (max-width: 1059px) {
	.tt-menu {
		top: -237px !important;
	}
}

.tt-dataset {
	font-style: normal;
	/* 	.fsSummary {
  	color: var(--medium-gray);
  } */
}

.tt-suggestion {
	padding: 0.5em;
	border-top: 1px solid var(--light-gray);
}

.tt-highlight,
.fsSearchElement .fsSearchResultMatch {
	background-color: #fff8ab;
	font-weight: normal;
}

.fsSearchSuggestionURL,
.tt-dataset .fsSummary {
	font-size: 1rem;
	font-family: var(--sans);
	font-weight: normal;
}

.fsSearchSuggestionURL {
	font-size: 0.85rem;
	font-style: italic;
	color: var(--medium-gray);
}

.fsSearchResultURL {
	font-size: 90%;
	font-family: var(--sans);
	color: var(--medium-gray);
}

/* COOKIE CONSENT STYLES: https://www.osano.com/cookieconsent/ */
.cc-window {
	opacity: 1;
	-webkit-transition: opacity 1s ease;
	transition: opacity 1s ease;
}

.cc-window.cc-invisible {
	opacity: 0;
}

.cc-animate.cc-revoke {
	-webkit-transition: transform 1s ease;
	-webkit-transition: -webkit-transform 1s ease;
	transition: -webkit-transform 1s ease;
	transition: transform 1s ease;
	transition: transform 1s ease, -webkit-transform 1s ease;
}

.cc-animate.cc-revoke.cc-top {
	-webkit-transform: translateY(-2em);
	-ms-transform: translateY(-2em);
	transform: translateY(-2em);
}

.cc-animate.cc-revoke.cc-bottom {
	-webkit-transform: translateY(2em);
	-ms-transform: translateY(2em);
	transform: translateY(2em);
}

.cc-animate.cc-revoke.cc-active.cc-top {
	-webkit-transform: translateY(0);
	-ms-transform: translateY(0);
	transform: translateY(0);
}

.cc-animate.cc-revoke.cc-active.cc-bottom {
	-webkit-transform: translateY(0);
	-ms-transform: translateY(0);
	transform: translateY(0);
}

.cc-revoke:hover {
	-webkit-transform: translateY(0);
	-ms-transform: translateY(0);
	transform: translateY(0);
}

.cc-grower {
	max-height: 0;
	overflow: hidden;
	-webkit-transition: max-height 1s;
	transition: max-height 1s;
}

.cc-revoke,
.cc-window {
	position: fixed;
	overflow: hidden;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	font-family: Helvetica, Calibri, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.5em;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: nowrap;
	flex-wrap: nowrap;
	z-index: 9999;
}

.cc-window.cc-static {
	position: static;
}

.cc-window.cc-floating {
	padding: 2em;
	max-width: 24em;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
}

.cc-window.cc-banner {
	padding: 1em 1.8em;
	width: 100%;
	-webkit-box-orient: horizontal;
	-webkit-box-direction: normal;
	-ms-flex-direction: row;
	flex-direction: row;
}

.cc-revoke {
	padding: 0.5em;
}

.cc-revoke:hover {
	text-decoration: underline;
}

.cc-header {
	font-size: 18px;
	font-weight: 700;
}

.cc-btn,
.cc-close,
.cc-link,
.cc-revoke {
	cursor: pointer;
}

.cc-link {
	opacity: 0.8;
	display: inline-block;
	padding: 0.2em;
	text-decoration: underline;
}

.cc-link:hover {
	opacity: 1;
}

.cc-link:active,
.cc-link:visited {
	color: initial;
}

.cc-btn {
	display: block;
	padding: 0.4em 0.8em;
	font-size: 0.9em;
	font-weight: 700;
	border-width: 2px;
	border-style: solid;
	text-align: center;
	white-space: nowrap;
}

.cc-highlight .cc-btn:first-child {
	background-color: transparent;
	border-color: transparent;
}

.cc-highlight .cc-btn:first-child:focus,
.cc-highlight .cc-btn:first-child:hover {
	background-color: transparent;
	text-decoration: underline;
}

.cc-close {
	display: block;
	position: absolute;
	top: 0.5em;
	right: 0.5em;
	font-size: 1.6em;
	opacity: 0.9;
	line-height: 0.75;
}

.cc-close:focus,
.cc-close:hover {
	opacity: 1;
}

.cc-revoke.cc-top {
	top: 0;
	left: 3em;
	border-bottom-left-radius: 0.5em;
	border-bottom-right-radius: 0.5em;
}

.cc-revoke.cc-bottom {
	bottom: 0;
	left: 3em;
	border-top-left-radius: 0.5em;
	border-top-right-radius: 0.5em;
}

.cc-revoke.cc-left {
	left: 3em;
	right: unset;
}

.cc-revoke.cc-right {
	right: 3em;
	left: unset;
}

.cc-top {
	top: 1em;
}

.cc-left {
	left: 1em;
}

.cc-right {
	right: 1em;
}

.cc-bottom {
	bottom: 1em;
}

.cc-floating>.cc-link {
	margin-bottom: 1em;
}

.cc-floating .cc-message {
	display: block;
	margin-bottom: 1em;
}

.cc-window.cc-floating .cc-compliance {
	-webkit-box-flex: 1;
	-ms-flex: 1 0 auto;
	flex: 1 0 auto;
}

.cc-window.cc-banner {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}

.cc-banner.cc-top {
	left: 0;
	right: 0;
	top: 0;
}

.cc-banner.cc-bottom {
	left: 0;
	right: 0;
	bottom: 0;
}

.cc-banner .cc-message {
	display: block;
	-webkit-box-flex: 1;
	-ms-flex: 1 1 auto;
	flex: 1 1 auto;
	max-width: 100%;
	margin-right: 1em;
}

.cc-compliance {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-ms-flex-line-pack: justify;
	align-content: space-between;
}

.cc-floating .cc-compliance>.cc-btn {
	-webkit-box-flex: 1;
	-ms-flex: 1;
	flex: 1;
}

.cc-btn+.cc-btn {
	margin-left: 0.5em;
}

@media print {

	.cc-revoke,
	.cc-window {
		display: none;
	}
}

@media screen and (max-width: 900px) {
	.cc-btn {
		white-space: normal;
	}
}

@media screen and (max-width: 414px) and (orientation: portrait),
screen and (max-width: 736px) and (orientation: landscape) {
	.cc-window.cc-top {
		top: 0;
	}

	.cc-window.cc-bottom {
		bottom: 0;
	}

	.cc-window.cc-banner,
	.cc-window.cc-floating,
	.cc-window.cc-left,
	.cc-window.cc-right {
		left: 0;
		right: 0;
	}

	.cc-window.cc-banner {
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		-ms-flex-direction: column;
		flex-direction: column;
	}

	.cc-window.cc-banner .cc-compliance {
		-webkit-box-flex: 1;
		-ms-flex: 1 1 auto;
		flex: 1 1 auto;
	}

	.cc-window.cc-floating {
		max-width: none;
	}

	.cc-window .cc-message {
		margin-bottom: 1em;
	}

	.cc-window.cc-banner {
		-webkit-box-align: unset;
		-ms-flex-align: unset;
		align-items: unset;
	}

	.cc-window.cc-banner .cc-message {
		margin-right: 0;
	}
}

.cc-floating.cc-theme-classic {
	padding: 1.2em;
	border-radius: 5px;
}

.cc-floating.cc-type-info.cc-theme-classic .cc-compliance {
	text-align: center;
	display: inline;
	-webkit-box-flex: 0;
	-ms-flex: none;
	flex: none;
}

.cc-theme-classic .cc-btn {
	border-radius: 5px;
}

.cc-theme-classic .cc-btn:last-child {
	min-width: 140px;
}

.cc-floating.cc-type-info.cc-theme-classic .cc-btn {
	display: inline-block;
}

.cc-theme-edgeless.cc-window {
	padding: 0;
}

.cc-floating.cc-theme-edgeless .cc-message {
	margin: 2em;
	margin-bottom: 1.5em;
}

.cc-banner.cc-theme-edgeless .cc-btn {
	margin: 0;
	padding: 0.8em 1.8em;
	height: 100%;
}

.cc-banner.cc-theme-edgeless .cc-message {
	margin-left: 1em;
}

.cc-floating.cc-theme-edgeless .cc-btn+.cc-btn {
	margin-left: 0;
}

/* PORTAL ANNOUNCEMENTS USING POSTS (pre-redesign 21-22) */
/* These styles override the pre-redesign theme, and will have to be updated when switching to a theme for the portals redesign. */
/* Use this prefix selector as a body class on pages with older themes. */
.hasPosts .fsPostElement.fsList:not(.portal-news) article {
	border-top: 2px dotted var(--light-gray);
	margin: 0;
	padding: 0.75em 0;
}

.hasPosts .fsPostElement.fsList article:first-of-type {
	border-top: 0;
}

.hasPosts .fsPostElement.fsList article>*,
.hasPosts .fsNews.fsList article>* {
	margin-bottom: 0.5em;
	margin-left: inherit;
}

.hasPosts .fsPostElement .fsTitle {
	line-height: 1.2;
	font-weight: 600;
}

.hasPosts .portal-news.fsNews.fsList article .fsTitle {
	line-height: 1.2;
}

.hasPosts .portal-orange>header {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: horizontal;
	-webkit-box-direction: normal;
	-ms-flex-flow: row;
	flex-flow: row;
	width: 100%;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	border-bottom: 1px solid #f36f21;
}

.hasPosts .portal-orange>header .fsElementTitle {
	-webkit-box-flex: 1;
	-ms-flex: 1 1 auto;
	flex: 1 1 auto;
	-webkit-box-ordinal-group: 3;
	-ms-flex-order: 2;
	order: 2;
	margin: 0;
	padding: 0;
	font-size: 23px;
	line-height: 1.1;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	color: #f36f21;
}

.hasPosts .portal-orange>header .fsElementHeaderContent {
	-webkit-box-flex: 0;
	-ms-flex: 0 0 auto;
	flex: 0 0 auto;
	-webkit-box-ordinal-group: 2;
	-ms-flex-order: 1;
	order: 1;
	padding-right: 9px;
}

.hasPosts.portal .fsPostElement :is(.fsDateTime, .fsUpdatedDateTime) {
	color: var(--medium-gray);
	font-weight: 600;
}

.hasPosts .fsPostToolsElement .fsTag-161 {
	display: none;
}

.hasPosts .fsElementToolsSearch {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}

.hasPosts .fsStyleSearchField {
	height: 100%;
	padding: 12px;
	border: none;
	border-radius: 3px 0 0 3px;
	letter-spacing: 0.5px;
	background-color: #F4F4F5;
	color: #4c4c4c;
	text-align: left;
}

.hasPosts .fsElementToolsKeyword,
.hasPosts .fsElementToolsDateRange {
	-webkit-box-flex: 1;
	-ms-flex: 1 0 auto;
	flex: 1 0 auto;
}

.hasPosts .fsElementToolsSearchButton {
	margin-top: 0;
	border-radius: 0 3px 3px 0;
}

.hasPosts .grid--card-shadow .fsListItems>article {
	position: relative;
	padding: 2em 1em 1em;
}

.hasPosts .grid--card-shadow .fsCategories.fsStyleInlineList {
	position: absolute;
	margin: 0;
	top: -3px;
}

/*! Choate Rosemary Hall -  Web forms styles (overrides Composer and Finalsite styles)
	https://www.choate.edu/
	Developer: Todd Jaser 
	web@choate.edu 

	NOTE: The stylesheet titled formPlugin.css loads after this one, so use more strict selectors when overriding those. 
*/
/* Things to hide */
.labelXtra {
	display: none;
}

.fsComposerFormEmbed form .formPage {
	padding-left: 5px;
}

/* Horizontal rule */
.fsComposerFormEmbed form .elementContainer hr {
	margin: 2rem auto;
}

.fsFormsElement {
	font-family: var(--sans);
}

.fsFormsElement form {
	/* .textblock {
  	margin-top: 2rem;
  } */
}

.fsFormsElement form input,
.fsFormsElement form label,
.fsFormsElement form select,
.fsFormsElement form textarea {
	font-size: inherit;
	color: var(--black);
}

.fsFormsElement form .fsFormField {
	width: initial;
	-webkit-box-shadow: 0 0 0 1px rgba(0, 18, 38, 0.27);
	box-shadow: 0 0 0 1px rgba(0, 18, 38, 0.27);
}

.fsFormsElement form .descText {
	font-size: 90%;
	color: var(--medium-gray);
}

.fsFormsElement form .toolTip,
.fsFormsElement form .valFailMsg {
	margin: 0.25rem;
	font-size: 75%;
	letter-spacing: 0.1em;
	color: var(--medium-gray);
}

/* LEGACY FORM STYLES */
/* LEGACY FORM REGISTRATION STYLES */

span.attendeeInfo {
	display: flex;
	flex-direction: column;
	/* Stack items vertically */
	gap: 15px;
	/* Increase spacing between form groups */
	border-top: none !important;
}

span.attendeeInfo .lbl {
	margin-bottom: 5px;
	/* Space between label and input */
	display: block;
	/* Ensure it's on its own line */
}

span.attendeeInfo label {
	display: flex;
	/* Allow content inside labels to be flexed if needed */
	flex-direction: column;
	/* Label text above input */
	gap: 0px;
	/* Space between label text and the input */
}

span.attendeeInfo label input[type="text"],
span.attendeeInfo label input[type="email"],
span.attendeeInfo label input[type="number"],
span.attendeeInfo label select,
span.attendeeInfo label textarea {
	padding: 10px 12px;
	width: fit-content;
	/* Make inputs take full width */
	box-sizing: border-box;
	/* Include padding and border in element's total width and height */
}

/* Hide extra fields under Junior Guests */
.field_183334 label:nth-child(6), 
.field_183334 label:nth-child(7) {
	display: none;
}

/* Main label title */
.groupLabel label {
	font-weight: bold;
}

/* Cards */
.card {
	padding: 2rem;
}

/* Shrink border bottom of each field container */
/* .fsComposerFormEmbed form .elementContainer {
	margin-bottom: 10px;
} */
/* Make check- and radio boxes align to the text's baseline */
/* .fsFormFieldOption {
	align-items: baseline;
} */
/* REGISTRATION ELEMENTS */
/*span.attendeeInfo {
	display: flex;
	// flex-flow: column;
	flex-wrap: wrap;
}

.attendeeInfo .lbl {
	width: 100%;
}

.attendeeInfo label {
	display: flex;
	flex-flow: column;
} */
/*# sourceMappingURL=forms-override.css.map */