/* styles for reusable content blocks */

/* form elements */
.structured-content-form-control {
	color: var(--color-very-dark-gray);
	font-family: var(--font-sans-serif);
	font-size: 1rem;
	position: relative;
}

.structured-content-form-control input, 
.structured-content-form-control button {
	font-family: inherit;
	font-size: inherit;
}

.structured-content-form-control .structured-content-form-selector {
	align-items: stretch;
	justify-content: center;
}

.structured-content-form-control .structured-content-form-selector input, 
.structured-content-form-control .structured-content-form-selector button {
	border-color: var(--color-medium-blue);
	border-style: solid;
	border-radius: 0;
	border-width: 1px;
	display: block;
	height: 2.5rem;
}

.structured-content-form-control .structured-content-form-selector input {
	background-color: transparent;
	border-bottom-left-radius: 5px;
	border-top-left-radius: 5px;
	padding: 0 1rem;
	width: calc(100% - 2.8125rem);
}

.structured-content-form-control .structured-content-form-selector input.list-open {
	border-bottom-left-radius: 0;
}

.structured-content-form-control .structured-content-form-selector input::-webkit-input-placeholder {
	color: var(--color-medium-dark-gray);
}

.structured-content-form-control .structured-content-form-selector input::-ms-input-placeholder {
	color: var(--color-medium-dark-gray);
}

.structured-content-form-control .structured-content-form-selector input::placeholder {
	color: var(--color-medium-dark-gray);
}

.structured-content-form-control .structured-content-form-selector input:focus {
	border-color: var(--color-dark-blue);
}

.structured-content-form-control .structured-content-form-selector button {
	background-color: var(--color-medium-blue);
	border-left-width: 0;
	border-bottom-right-radius: 5px;
	border-top-right-radius: 5px;
	margin: 0;
	padding: 0.125rem 1rem 0 0.8rem;
	width: 2.75rem;
}

.structured-content-form-control .structured-content-form-selector button.list-open {
	border-bottom-right-radius: 0;
}


.structured-content-form-control .structured-content-form-selector input:focus + button, 
.structured-content-form-control .structured-content-form-selector button:active,
.structured-content-form-control .structured-content-form-selector button:focus,
.structured-content-form-control .structured-content-form-selector button:hover {
	background-color: var(--color-dark-blue);
	border-color: var(--color-dark-blue);
}

.structured-content-form-control .structured-content-form-selector button svg {
	display: block;
	fill: #fff;
	height: 1rem;
	margin: 0 auto;
	width: 1rem;
}

.structured-content-form-control .inline {
	display: inline-block;
	margin: 0 0.5rem;
}

/* fieldsets and legends */
fieldset.reusable {
	margin-bottom: 0.5rem;
}

fieldset.reusable legend {
	color: var(--color-very-dark-gray);
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.1rem;
	margin-bottom: 0.25rem;
	text-transform: uppercase;
}

/* radio buttons */
.structured-content-form-control.radio {
	line-height: 1.5;
	position: relative;
}

.structured-content-form-control.radio input {
	height: 1rem;
	position: absolute;
	left: 0;
	opacity: 0;
	top: 0;
	width: 1rem;
	z-index: 10;
}

.structured-content-form-control.radio svg {
	height: 1rem;
	position: absolute;
	left: 0;
	top: 0;
	width: 1rem;
	z-index: 5;
}

.structured-content-form-control.radio label {
	display: inline-block;
	font-size: 0.9rem;
	line-height: 1;
	margin-top: -0.5rem;
	padding-left: 1.25rem;
	vertical-align: middle;
}

.structured-content-form-control.radio input:checked + svg + label {
	color: var(--color-medium-blue);
}

.structured-content-form-control.radio input + svg circle:first-of-type {
	fill: #fff;
	stroke: var(--color-dark-gray);
	stroke-width: 2;
}

.structured-content-form-control.radio input + svg circle:last-of-type {
	fill: #fff;
	stroke-width: 0;
}

.structured-content-form-control.radio input:checked + svg circle:first-of-type {
	stroke: var(--color-medium-blue);
}

.structured-content-form-control.radio input:checked + svg circle:last-of-type {
	fill: var(--color-medium-blue);
}

/* toggle switches */
.structured-content-form-control .toggle {
	width: auto;
}

.structured-content-form-control.inline {
	margin: 0 0.75rem;
}

.structured-content-form-control.inline label {
	color: var(--color-dark-gray);
	font-family: var(--font-sans-serif);
	font-size: 0.9rem;
	font-weight: 600;
	text-align: center;
	text-transform: uppercase;
}

.structured-content-form-control .toggle .toggle-control {
	background-color: #fff;
	border-color: var(--color-alternate-gray-2);
	border-style: solid;
	border-width: 1px;
	border-radius: 1rem;
	cursor: pointer;
	height: 2rem;
	margin-top: -0.125rem;
	position: relative;
	width: auto;
}

.section-standard .structured-content-form-control .toggle .toggle-control {
	align-items: center;
	background-color: var(--color-light-gray);
	justify-content: center;
	margin-top: 0.05rem;
}

.structured-content-form-control .toggle .toggle-control span {
	display: block;
	margin: 0 0.167rem;
	padding-top: 0.6rem;
	transition: 0.75s;
}

.structured-content-form-control .toggle .toggle-control span:first-of-type {
	border-radius: 50%;
	height: 1rem;
	top: 0.45rem;
	width: 1rem;
}

.structured-content-form-control .toggle .toggle-control span:last-of-type {
	font-family: var(--font-sans-serif);
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1;
	text-align: center;
	text-transform: uppercase;
}

.structured-content-form-control .toggle .toggle-control[data-toggle-state="on"] span:first-of-type {
	background-color: var(--color-medium-blue);
}

.structured-content-form-control .toggle .toggle-control[data-toggle-state="on"] span:last-of-type {
	color: var(--color-very-dark-gray);
	text-align: right;
}

.structured-content-form-control .toggle .toggle-control[data-toggle-state="off"] {
	flex-direction: row-reverse;
}

.structured-content-form-control .toggle .toggle-control[data-toggle-state="off"] span:first-of-type {
	background-color: var(--color-medium-dark-gray);
}

.structured-content-form-control .toggle .toggle-control[data-toggle-state="off"] span:last-of-type {
	color: #aaaaad;
	color: var(--color-medium-dark-gray);
}

/* button groups */
.structured-content-form-control .button-group button {
	display: inline-block;
	height: 2rem;
	margin: 0 0.25rem;
	padding: 0;
	width: 2rem;
}

.structured-content-form-control .button-group button svg {
	display: block;
	height: 1.2rem;
	margin: 0 auto;
	width: 1.2rem;
}

.structured-content-form-control .button-group .active {
	background-color: var(--color-medium-blue);
}

.structured-content-form-control .button-group .active:hover {
	background-color: var(--color-dark-blue);
}

.structured-content-form-control .button-group .inactive {
	background-color: var(--color-medium-dark-gray);
}

.structured-content-form-control .button-group .inactive svg {
	fill: #fff;
}

.structured-content-form-control .button-group .inactive:hover {
	background-color: var(--color-dark-gray);
}

/* map elements */
.structured-content-form-control .structured-content-form-selector .map-item-list {
	background-color: #146eb3;
	background-color: var(--color-medium-blue);
	max-height: 10rem;
	top: 2.5rem;
	display: none;
	overflow-y: scroll;
	position: absolute;
	left: 0;
	width: 100%;
	z-index: 10;
}

.structured-content-form-control .structured-content-form-selector .map-item-list li {
	align-items: stretch;
	border-top: 1px solid rgba(255,255,255,0.25);
	cursor: pointer;
	display: none;
	height: 2.5rem;
	line-height: 1;
	padding: 0.625rem 0.5rem;
	transition: 0.75s background-color;
}

.structured-content-form-control .structured-content-form-selector .map-item-list li.item-visible {
	display: flex;
}

.structured-content-form-control .structured-content-form-selector .map-item-list li:hover {
	background-color: #005793;
	background-color: var(--color-dark-blue);
}

.structured-content-form-control .structured-content-form-selector .map-item-list li:first-child {
	border-top-width: 0;
}

.structured-content-form-control .structured-content-form-selector .map-item-list li > div {
	color: #fff;
	height: 2.5rem;
}

.structured-content-form-control .structured-content-form-selector .map-item-list li > div:first-child {
	widows: 1.25rem;
}

.structured-content-form-control .structured-content-form-selector .map-item-list li > div svg {
	display: block;
	fill: #fff;
	height: 1.25rem;
	width: 1.25rem;
}

.structured-content-form-control .structured-content-form-selector .map-item-list li > div:nth-child(2) {
	flex: 1;
	font-size: 0.9rem;
	padding-left: 0.5rem;
	padding-top: 0.2rem;
	text-align: left;
}

.structured-content-form-control .structured-content-form-selector .map-item-list li > div:last-child {
	text-align: right;
	width: 3rem;
}

.structured-content-form-control .map-item-list .map-item-hover {
	background-color: #005793;
	background-color: var(--color-dark-blue);
}

/* reusable selector controls */
.structured-content .fancy-selector-controls {
	align-items: stretch;
    justify-content: center;
    margin: 1.5rem 0;
}

.structured-content .fancy-selector-controls > div {
    border-color: rgba(255,255,255,0.1);
    border-radius: 0.5rem;
    box-shadow: 2px 2px 2px rgb(0 0 0 / 15%), -2px -2px 2px rgb(255 255 255 / 1%);
    fill: #54546c;
    margin: 0 2%;
    padding: 1rem;
}

.fancy-selector-control-wrapper {
	border-color: var(--color-medium-blue);
    border-radius: 1.25rem;
    border-style: solid;
    border-width: 2px;
    cursor: pointer;
    height: 2.5rem;
    margin: 0 auto;
    position: relative;
}

.fancy-selector-control {
	position: relative;
}

.fancy-selector-control > div:first-child {
	width: 3rem;
}

.fancy-selector-control > div:first-child > svg {
	display: block;
	fill: var(--color-medium-blue);
	margin: 0.333rem auto 0 auto;
}

.fancy-selector-control input {
	background-color: transparent;
	border: 0;
	color: var(--color-medium-blue);
	flex: 1;
	font-family: var(--font-sans-serif);
	font-size: 1rem;
	font-weight: 500;
}

.fancy-selector-control button {
	background-color: transparent;
	border-width: 0;
	display: block;
	height: 2.5rem;
	margin: 0;
	width: 3rem;
}

.fancy-selector-control button svg {
	fill: var(--color-medium-blue);
	height: 1rem;
    width: 1rem;
}

.fancy-selector-control + ul {
    background-color: var(--color-medium-blue);
    border-bottom-left-radius: 0.5rem;
    border-bottom-right-radius: 0.5rem;
    color: #fff;
    display: none;
    left: -2px;
    max-height: 10rem;
    overflow-y: scroll;
    position: absolute;
    top: 2.25rem;
    width: 100%;
    width: calc(100% + 4px);
    z-index: 20;
}

.fancy-selector-control + ul li {
	align-items: stretch;
	border-top: 1px solid rgba(255,255,255,0.25);
	cursor: pointer;
	height: 2.5rem;
	line-height: 1;
	padding: 0.625rem 0.5rem;
	transition: 0.75s;
}

.fancy-selector-control + ul li.item-active {
	background-color: var(--color-dark-blue);
}

.fancy-selector-control + ul li:hover {
	background-color: var(--color-dark-blue);
}

.fancy-selector-control + ul li:first-child {
    border-top-width: 0;
}

.fancy-selector-control + ul li > div:first-child {
    height: 2.5rem;
}

.fancy-selector-control + ul li > div:first-child svg {
	fill: #fff;
}

.fancy-selector-control + ul li > div:nth-child(2) {
    flex: 1;
    padding-left: 0.5rem;
    text-align: left;
}

.fancy-selector-control + ul li > div:last-child {
	text-align: right;
	width: 3rem;
}

/* state cycler control */
.state-cycle-control {
	margin-top: 0.25rem;
}
.state-cycle-control label {
	-moz-user-select: none;
	-ms-user-select: none;
	-webkit-user-select: none;
	color: var(--color-alternate-gray-2);
	cursor: pointer;
	display: block;
	font-size: 1rem;
	position: relative;
	padding: 0.2rem 0 0 1.75rem;
	margin-bottom: 0.75rem;
	user-select: none;
}

.state-cycle-control input {
	cursor: pointer;
	height: 0;
	opacity: 0;
	position: absolute;
	width: 0;
}

.state-cycle-control span {
	background-color: var(--color-alternate-gray-2);
	border-radius: 0.25rem;
	height: 1.25rem;
	left: 0;
	position: absolute;
	top: 0.167rem;
	transition: 0.75s;
	width: 1.25rem;
}

.state-cycle-control:hover input ~ span {
	background-color: var(--color-material-dark-blue-light);
}

.state-cycle-control input:checked ~ span {
	background-color: var(--color-material-dark-blue-normal);
}

.state-cycle-control span:after {
	content: "";
	display: none;
	position: absolute;
}

.state-cycle-control input:checked ~ span:after {
	display: block;
}

.state-cycle-control span:after {
	border: solid var(--color-very-dark-gray);
	border-width: 0 2px 2px 0;
	height: 0.75rem;
	left: 7px;
	top: 1px;
	transform: rotate(40deg);
	width: 0.375rem;
}

.selector-controls .selector-control-button-control {
	background-color: var(--color-medium-blue);
	border-radius: 1.25rem;
	border-width: 0;
	display: block;
	font-size: 1rem;
	font-weight: 500;
	height: 2.5rem;
	padding: 0;
}

.selector-controls .selector-control-button-control span {
	border-right: 1px solid rgba(255,255,255,0.25);
	display: inline-block;
	height: 2.5rem;
	padding: 0.667rem 0.75rem 0 0.75rem;
	vertical-align: middle;
}

.selector-controls .selector-control-button-control svg {
	display: inline-block;
	margin: 0 1rem 0 0.75rem;
	vertical-align: middle;
}

.fancy-selector-controls .fancy-selector-grade {
	width: 16rem;
}

.fancy-selector-controls .fancy-selector-grade + p {
	color: var(--color-alternate-gray-2);
	line-height: 1;
	margin: 0.5rem 0 0 0;
	text-align: center;
}


.fancy-selector-controls input[type="range"] {
	-webkit-appearance: none;
	display: block;
	margin: 0.375rem auto 0 auto;
	outline: 0;
	width: 14rem;
}

.fancy-selector-controls input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	background-color: var(--color-medium-blue);
	border: 2px solid #fff;
	border-radius: 50%;
	box-shadow: 0 0 1rem rgba(255,255,255,0.5); 
	box-sizing: border-box;
	cursor: pointer;
	height: 1.5rem;
	opacity: 0.5;
	transition: 0.75s;
	width: 1.5rem;
}

.fancy-selector-controls input[type="range"]::-moz-range-thumb {
	background-color: var(--color-medium-blue);
	border: 2px solid #fff;
	border-radius: 50%;
	box-sizing: border-box; 
	cursor: pointer;
	height: 1.5rem;
	opacity: 0.5;
	transition: 0.75s;
	width: 1.5rem;
}

.fancy-selector-controls input[type="range"]:focus::-webkit-slider-thumb {
	opacity: 1;
}

.fancy-selector-controls input[type="range"]:focus::-moz-slider-thumb {
	opacity: 1;
}

.fancy-selector-controls input[type="range"] + datalist {
	border-radius: 0.25rem;
    display: flex;
    height: 0.333rem;
    justify-content: space-between;
    margin: -0.9rem auto 0 auto;
    background-color: #545464;
    width: 12.7rem;
}

.fancy-selector-controls input[type="range"] + datalist option {

	height: 2px;
	width: 2px;
	border-radius: 32px;
	background-color: var(--color-material-dark-blue-light);
	display: block;
	min-height: 0.5rem;
	opacity: 0.667;
	padding: 0;
	transform: scale(2.667,0.667);
	transform-origin: center top;
}

.selector-controls-dark .fancy-selector-control-wrapper {
	border-color: var(--color-material-dark-blue-normal);
	cursor: pointer;
}

.selector-controls-dark .fancy-selector-control > div:first-child > svg, 
.selector-controls-dark .fancy-selector-control button svg {
	fill: var(--color-material-dark-blue-normal);
}

.selector-controls-dark .fancy-selector-control input {
	box-sizing: border-box;
	color: var(--color-material-dark-blue-normal);
	cursor: pointer;
}

.selector-controls-dark .fancy-selector-control + ul {
    background-color: var(--color-material-dark-blue-normal);
    box-sizing: border-box;
}

.selector-controls-dark .fancy-selector-control + ul::-webkit-scrollbar {
	width: 0;
}

.selector-controls-dark .fancy-selector-control + ul li > div:first-child svg {
	fill: var(--color-very-dark-gray);
}

.selector-controls-dark .fancy-selector-control + ul li > div:nth-child(2), 
.selector-controls-dark .fancy-selector-control + ul li > div:last-child {
    color: var(--color-very-dark-gray);
}

.selector-controls-dark .fancy-selector-control + ul li.item-active {
	background-color: var(--color-material-dark-blue-light);
}

.selector-controls-dark .fancy-selector-control + ul li:hover {
	background-color: var(--color-material-dark-blue-light);
}

.selector-controls-dark .selector-control-button-control {
	background-color: var(--color-material-dark-blue-normal);
}

.selector-controls-dark .selector-control-button-control:hover {
	background-color: var(--color-material-dark-blue-light);
}

.selector-controls-dark .selector-control-button-control span {
	color: var(--color-very-dark-gray);
}

.selector-controls-dark .selector-control-button-control svg {
	fill: var(--color-very-dark-gray);
}

.selector-controls-dark input[type="range"]::-webkit-slider-thumb {
	background-color: var(--color-material-dark-blue-normal);
}




/* dark mode */
@media (prefers-color-scheme: dark) {
	.structured-content-form-control .structured-content-form-selector input, 
	.structured-content-form-control .structured-content-form-selector button {
		border-color: var(--color-orange);
		color: #fff;
	}

	.structured-content-form-control .structured-content-form-selector button {
		background-color: var(--color-orange);
	}

	.structured-content-form-control .structured-content-form-selector input:focus {
		border-color: var(--color-dark-orange);
	}

	.structured-content-form-control .structured-content-form-selector input:focus + button, 
	.structured-content-form-control .structured-content-form-selector button:active,
	.structured-content-form-control .structured-content-form-selector button:focus,
	.structured-content-form-control .structured-content-form-selector button:hover {
		background-color: var(--color-dark-orange);
	}

	.structured-content-form-control .structured-content-form-selector .map-item-list {
		background-color: var(--color-orange);
	}

	.structured-content-form-control .structured-content-form-selector .map-item-list li:hover {
		background-color: var(--color-dark-orange);
	}

	.fancy-dropdown-list input {
		background-color: var(--color-very-dark-gray);
		border-color: var(--color-dark-gray);
		color: var(--color-light-gray);
	}

	.fancy-dropdown-list input::placeholder {
		color: var(--color-light-gray);
	}

	.fancy-dropdown-list button {
		background-color: var(--color-light-blue);
	}

	.fancy-dropdown-list button svg {
		fill: var(--color-very-dark-gray);
	}

	.fancy-dropdown-items {
		background-color: var(--color-alternate-dark-gray-2);
	}

	.fancy-dropdown-items li {
		border-bottom: 1px solid var(--color-dark-gray);
	}

	.fancy-dropdown-items li:hover {
		background-color: var(--color-alternate-dark-gray);
	}

	.structured-content .fancy-state-selector {
		border-color: var(--color-dark-gray);
	}

	.structured-content .fancy-state-selector > div:first-child > svg {
		fill: var(--color-material-dark-blue-normal);
	}

	.structured-content .fancy-state-selector > input {
		color: var(--color-alternate-gray-2);
	}

	.structured-content .fancy-state-selector > input:focus + button {
		background-color: transparent !important;
	}

	.structured-content .fancy-state-selector > button {
		background-color: transparent !important;
	}

	.structured-content .fancy-state-selector > button > svg {
		fill: var(--color-material-dark-blue-normal);
	}	

	.structured-content .fancy-state-selector + .state-selector-list {
		background-color: var(--color-material-dark-blue-normal);
		border-color: var(--color-material-dark-blue-normal);
	}

	.structured-content .fancy-state-selector + .state-selector-list li {
		color: var(--color-very-dark-gray);
	}

	.structured-content .fancy-state-selector + .state-selector-list li:hover {
		background-color: var(--color-material-dark-blue-light);
	}

	.structured-content .fancy-state-selector + .state-selector-list li > div:first-child {
		color: #fff;
	}

	.structured-content .fancy-state-selector + .state-selector-list li > div:first-child svg {
		fill: var(--color-very-dark-gray);
	}
}








