/* Miscellanious styles */
{{$breakpoints = array('' => '', '979px' => 'md\:', '767px' => 'sm\:' );}}

/* ======================================================== */
/* BOX STYLES */
.ipsBox,
#ipsLayout_mainArea > .ipsForm[action$='do=edit'] > .ipsForm {
	box-shadow: var(--box--boxShadow);
	border-radius: var(--box--radius);
	background-color: var(--box--backgroundColor);
}

.ipsBox_alt {
	/* Not used on the default theme, but available for themers to emulate ipsBox all over the place */
}

.ipsBox--child{
	box-shadow: 0px 0px 0px 1px rgba( var(--theme-text_light), 0.2 ), var(--box--boxShadow);
}

.ipsRadius{ border-radius: var(--box--radius); }
.ipsRadius\:tl{	border-top-left-radius: var(--box--radius); }
.ipsRadius\:tr{ border-top-right-radius: var(--box--radius); }
.ipsRadius\:br{ border-bottom-right-radius: var(--box--radius); }
.ipsRadius\:bl{ border-bottom-left-radius: var(--box--radius); }
.ipsRadius\:full { border-radius: 9000px; }

/* ======================================================== */
/* DIMENSIONS */
{{foreach $breakpoints as $mq => $prefix}}
	{{if !empty($mq)}}
	@media (max-width: {$mq}) {
	{{endif}}
	{{foreach range(1, 8) as $size}}
		.{$prefix}ipsDimension\:{$size} { width: var(--size-{$size}); height: var(--size-{$size}); }
		.{$prefix}ipsDimension_width\:{$size} { width: var(--size-{$size}); }
		.{$prefix}ipsDimension_height\:{$size} { height: var(--size-{$size}); }
		.{$prefix}ipsDimension_minWidth\:{$size} { min-width: var(--size-{$size}); }
		.{$prefix}ipsDimension_minHeight\:{$size} { min-height: var(--size-{$size}); }
	{{endforeach}}
	{{if !empty($mq)}}
	}
	{{endif}}
{{endforeach}}

/* ======================================================== */
/* PAGE HEADER AREA*/
.ipsPageHeader {
	position: relative;
	margin-bottom: 10px;
}
	
	.ipsPageHeader h1 {
		display: inline-block;
	}

		.ipsType_pageTitle + .ipsType_richText{
			margin-top: .5em;
		}

	.ipsPageHeader .ipsPageHeader_info, .ipsPageHeader_info p:first-child {
		margin: 5px 0;
	}

	.ipsPageHeader .ipsFollow {
		margin-top: 0;
	}

	html[dir="ltr"] .ipsPageHeader--hasFeatureColor {
		border-width: 0;
		border-left-style: solid;
		border-left-width: 6px;
	}
	html[dir="rtl"] .ipsPageHeader--hasFeatureColor {
		border-width: 0;
		border-right-style: solid;
		border-right-width: 6px;
	}

/* ======================================================== */
/* JS STUFF */
/* Used when JS is disabled and element set to show when JS enabled */
.ipsJS_none .ipsJS_show {
	display: none;
}

.ipsJS_has .ipsJS_hide {
	display: none;
}

/* ======================================================== */
/* MISC COLORS */
.ipsAreaBackground {
	background: rgb( var(--theme-area_background) );
}

.ipsAreaBackground_light {
	background: rgb( var(--theme-area_background_light) );
}

.ipsAreaBackground_reset {
	background: rgb( var(--theme-area_background_reset) );
}

.ipsAreaBackground_dark {
	background: rgb( var(--theme-area_background_dark) );
	color: #fff;
}

	.ipsAreaBackground_dark a {
		color: inherit;
	}

.ipsAreaBackground_positive {
	background: var(--positive-dark);
	color: var(--positive-light);
}

.ipsAreaBackground_negative {
	background: var(--negative-dark);
	color: var(--negative-light);
}
	
	.ipsAreaBackground_positive .ipsType_sectionHead,
	.ipsAreaBackground_positive .ipsType_sectionTitle,
	.ipsAreaBackground_negative .ipsType_sectionHead,
	.ipsAreaBackground_negative .ipsType_sectionTitle {
		color: inherit;
	}

/* ======================================================== */
/* USER PHOTOS */
.ipsUserPhoto {
	background: rgb( var(--theme-area_background_reset) );
	vertical-align: middle;
	display: inline-block;
	line-height: 1px;
	position: relative;
	margin: 2px;
	{{if theme.rounded_photos}}
		border-radius: 500px;
	{{else}}
		border-radius: 2px;
	{{endif}}
}

	.ipsUserPhoto img{
		border-radius: inherit;
		width: 100%;
		height: 100%;
		vertical-align: top;
		object-fit: cover;
	}

	.ipsUserPhoto::after {
		content: '';
		display: none;
		position: absolute;
	}

	.ipsUserPhoto_tinier {
		width: 24px;
		height: 24px;
	}

	.ipsUserPhoto_tiny {
		width: 34px;
		height: 34px;
	}

	.ipsUserPhoto_mini {
		width: 44px;
		height: 44px;
	}

	.ipsUserPhoto_small {
		width: 54px;
		height: 54px;
	}

	.ipsUserPhoto_medium {
		width: 75px;
		height: 75px;
	}

	.ipsUserPhoto_large {
		width: 90px;
		height: 90px;
	}
	
	.ipsUserPhoto_xlarge {
		width: 120px;
		height: 120px;
	}

	.ipsUserPhoto_outlined {
		border: var(--photo-outline-width) solid rgb(var(--theme-area_background_reset));
	}

		.ipsUserPhoto_outlined\:thin { --photo-outline-width: 1px; }
		.ipsUserPhoto_outlined\:medium { --photo-outline-width: 3px; }
		.ipsUserPhoto_outlined\:thick { --photo-outline-width: 5px; }

/* ======================================================== */
/* PHOTO PANELS */
/* Photo panels are used to show a user photo on the left, with content aligned next to it */
.ipsPhotoPanel > .ipsUserPhoto {
	float: left;
	margin: 0;
	line-height: 0;
}
html[dir="rtl"] .ipsPhotoPanel > .ipsUserPhoto {
	float: right;
}

	html[dir="ltr"] .ipsPhotoPanel.ipsPhotoPanel_tiny > div {
		margin-left: 45px;
	}
	html[dir="rtl"] .ipsPhotoPanel.ipsPhotoPanel_tiny > div {
		margin-right: 45px;
	}

	html[dir="ltr"] .ipsPhotoPanel.ipsPhotoPanel_mini > div {
		margin-left: 55px;
	}
	html[dir="rtl"] .ipsPhotoPanel.ipsPhotoPanel_mini > div {
		margin-right: 55px;
	}

	html[dir="ltr"] .ipsPhotoPanel.ipsPhotoPanel_small > div {
		margin-left: 70px;
	}
	html[dir="rtl"] .ipsPhotoPanel.ipsPhotoPanel_small > div {
		margin-right: 70px;
	}

	html[dir="ltr"] .ipsPhotoPanel.ipsPhotoPanel_medium > div {
		margin-left: 90px;
	}
	html[dir="rtl"] .ipsPhotoPanel.ipsPhotoPanel_medium > div {
		margin-right: 90px;
	}

	html[dir="ltr"] .ipsPhotoPanel.ipsPhotoPanel_large > div {
		margin-left: 105px;
	}
	html[dir="rtl"] .ipsPhotoPanel.ipsPhotoPanel_large > div {
		margin-right: 105px;
	}

	.ipsPhotoPanel .ipsType_sectionHead {
		line-height: 1.3;
	}

/* ======================================================== */
/* IMAGES & THUMBNAILS */
.ipsImage {
	max-width: 100%; /* makes them responsive */
	height: auto;
}

.ipsImage[data-src]:not([data-loaded]) {
	background: rgb( var(--theme-area_background_light) );
	min-width: 50px; /* requires a minimum size for intersectionobserver to see it */
	height: 1px;
}

.ipsImage[data-src][data-loading] {
	animation: dummy_anim 1s infinite;
}

.ipsEmoji[data-src][data-loading] {
	animation: dummy_anim 1s infinite;
	border-radius: 4px;
}

/* A resized image */
.ipsThumb {
	border: 1px solid rgb( var(--theme-area_background) );
}

.ipsThumb_embed {
	margin: 5px auto;
}
	
	span.ipsThumb, a.ipsThumb {
		display: block;
	}

	.ipsThumb_bg {
		background-size: cover;
		background-repeat: no-repeat;
		background-position: 50% 50%;
		background-color: rgb( var(--theme-area_background) );
	}

		.ipsThumb_bg img {
			display: none;
		}

			/* Awkward solution, but this allows lazy loading to work with ipsThumb_bg sized elements (.ipsThumb_bg.ipsThumb_large, etc) if no background-image is assigned */
			.ipsThumb_bg:not([style*='background']) img{
				display: block;
				width: 100%;
				height: 100%;
				object-fit: cover;
			}

		.ipsThumb_bg.ipsThumb_embed {
			width: 400px;
			height: 400px;
		}
		
			.ipsThumb_bg.ipsThumb_embed.ipsThumb_embed_fullWidth {
				width: 98%;
				height: 400px;
			}

	.ipsThumb_large {
		max-width: 175px;
		max-height: 175px;
	}

		.ipsThumb_bg.ipsThumb_large {
			width: 175px;
			height: 175px;
		}

	.ipsThumb_medium {
		max-width: 125px;
		max-height: 125px;
	}

		.ipsThumb_bg.ipsThumb_medium {
			width: 125px;
			height: 125px;
		}

	.ipsThumb_small {
		max-width: 75px;
		max-height: 75px;
	}

		.ipsThumb_bg.ipsThumb_small {
			width: 75px;
			height: 75px;
		}

	.ipsThumb_tiny {
		max-width: 40px;
		max-height: 40px;
	}

		.ipsThumb_bg.ipsThumb_tiny {
			width: 40px;
			height: 40px;
		}

/* A 'missing thumb' element, used where a preview isn't available */
.ipsNoThumb {
	background: rgb( var(--theme-area_background) );
	color: rgb( var(--theme-text_color) );
	text-align: center;
	position: relative;
	width: 200px;
	height: 200px;
}
	.ipsNoThumb.ipsThumb_embed {
		width: 400px;
		height: 400px;
	}

	.ipsNoThumb:after {
		content: '\f030';
		font-family: 'FontAwesome';
		font-size: 30px;
		opacity: .1;
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		left: 0;
		right: 0;
		text-align: center;
	}

	.ipsNoThumb_video:after {
		content: '\f008';
	}

	.ipsNoThumb_product:after {
		content: '\f1b2';
	}

	.ipsNoThumb_gift:after {
		content: '\f06b';
	}


/*
	----------------
	- Image Block
	----------------
*/
.ipsImageBlock{
	color: #fff;
	display: grid;
	border-radius: var(--box--radius);
	background: hsl(0,0%,8%) linear-gradient(rgb(var(--theme-area_background_dark), .3) 0% 100%);
}

	.ipsImageBlock a{
		color: inherit;
	}

	.ipsImageBlock:has(:focus-visible){
		outline: 2px solid rgb(var(--theme-text_color));
		outline-offset: 2px;
	}

	.ipsImageBlock > *{
		grid-area: 1/-1;
		border-radius: inherit;
		position: relative;
	}

	.ipsImageBlock a,
	.ipsImageBlock button,
	.ipsImageBlock input,
	.ipsImageBlock img,
	.ipsImageBlock video{
		pointer-events: auto;
	}

	.ipsImageBlock__main{
		display: grid;
		overflow: hidden;
		isolation: isolate; /* Safari video border-radius bug */
	}

		.ipsImageBlock__main:not(:has(*))::before{
			content: '';
			grid-area: 1/-1;
			background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 512 512'%3E%3Cpath d='M152 120c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.5-48-48-48zm295.1-88h-384C28.65 32-.01 60.65-.01 96v320c0 35.35 28.65 64 63.1 64h384c35.35 0 64-28.65 64-64V96c.01-35.35-27.79-64-63.99-64zm16 377.3L326.3 223.4c-2.5-4.6-8.2-7.4-14.3-7.4-6.113 0-11.82 2.768-15.21 7.379l-106.6 144.1-37.09-46.1c-3.441-4.279-8.934-6.809-14.77-6.809-5.842 0-11.33 2.529-14.78 6.809l-75.52 93.81c0-.03 0 .03 0 0L47.99 96c0-8.822 7.178-16 16-16h384c8.822 0 16 7.178 16 16v313.3z'/%3E%3C/svg%3E");
			background-size: 20% auto;
			background-repeat: no-repeat;
			background-position: 50%;
			opacity: .3;
			place-self: stretch;
		}

		.ipsImageBlock__main > *{
			grid-area: 1/-1;
			max-width: 100%;
			max-height: 100%;
			min-height: 0;
			min-width: 0;
			position: relative;
			object-fit: cover;
			place-self: stretch;
		}

		.ipsImageBlock__main > span{
			display: grid;
			place-items: center;
		}

	.ipsImageBlock__header{
		align-self: start;
		pointer-events: none;
		padding: 1em;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: flex-end;
		gap: .3em 1em;
	}

	.ipsImageBlock__footer{
		position: relative;
		text-shadow: hsl(0,0%,0%,.1) 1px 1px 2px;
		align-self: end;
		pointer-events: none;
		padding: 1em;
		z-index: 0;
	}

		.ipsImageBlock__footer a{
			color: inherit;
		}

		.ipsImageBlock__footer a:hover{
			text-decoration: underline;
		}

		.ipsImageBlock__footer .ipsItemStatus:not( .ipsItemStatus_large ){
			color: inherit;
			margin-inline-end: .4em;
		}

		:where(.ipsImageBlock__footer > :first-child:not(:only-child)){
			font-weight: 600;
		}

		:where(.ipsImageBlock__footer > :last-child:not(:only-child)){
			opacity: .8;
			margin-top: .3em;
		}

		.ipsImageBlock__footer::before{
			content: '';
			position: absolute;
			left: 0;
			right: 0;
			bottom: 0;
			top: -60px;
			z-index: -1;
			border-bottom-left-radius: inherit;
			border-bottom-right-radius: inherit;
			background-image: linear-gradient(to bottom, hsl(0,0%,0%,0) 0%, hsl(0,0%,0%,0.01) 8%, hsl(0,0%,0%,0.04) 15%, hsl(0,0%,0%,0.1) 22%, hsl(0,0%,0%,0.17) 29%, hsl(0,0%,0%,0.26) 35%, hsl(0,0%,0%,0.35) 41%, hsl(0,0%,0%,0.45) 47%, hsl(0,0%,0%,0.55) 53%, hsl(0,0%,0%,0.65) 59%, hsl(0,0%,0%,0.74) 65%, hsl(0,0%,0%,0.82) 71%, hsl(0,0%,0%,0.9) 77%, hsl(0,0%,0%,0.95) 84%, hsl(0,0%,0%,0.98) 92%, hsl(0,0%,0%,1) 100%);
			opacity: .6;
		}

.ipsImageBlock__title{
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Ratio */
.ipsImageBlock--ratio{
	--_ratio: 1;
}

	.ipsImageBlock--ratio .ipsImageBlock__main{
		aspect-ratio: var(--_ratio);
	}


/* Contain */
.ipsImageBlock--contain .ipsImageBlock__main > *{
	object-fit: scale-down;
}

/* Hover effect */
@media (hover: hover){
	.ipsImageBlock--hover .ipsImageBlock__footer{
		transition: opacity .15s linear;
		opacity: 0;
	}
		.ipsImageBlock--hover:hover .ipsImageBlock__footer,
		.ipsImageBlock--hover .ipsImageBlock__footer:focus-within{
			opacity: 1;
		}
}

.ipsImageBlock__nsfw{
	background-color: rgb(var(--theme-area_background_dark));
	display: grid;
	place-content: center;
	font-weight: 600;
	padding: .5em;
	text-align: center;
}

	/* Prevent right click > view image on NSFW thumbnails */
	.ipsImageBlock:has(.ipsImageBlock__nsfw) .ipsImageBlock__main{
		pointer-events: none;
	}

	.ipsImageBlock__nsfw--no-content{
		pointer-events: none;
		place-content: normal;
	}

		.ipsImageBlock__nsfw--no-content::before{
			content: '';
			grid-area: 1/-1;
			background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath fill='%23fff' d='M150.7 92.77C195 58.27 251.8 32 320 32c80.8 0 145.5 36.84 192.6 80.6 46.8 43.4 78.1 94.5 92.9 131.1 3.3 7.9 3.3 16.7 0 24.6-13.4 32.3-40.3 77.8-79.9 118.4l105.2 82.4c10.4 8.2 12.3 23.3 4.1 33.7-8.2 10.4-23.3 12.3-33.7 4.1L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196 13.29-1.236 28.37-3.065 38.81 5.112L150.7 92.77zm39.1 30.73 46 36c22.5-19.6 52-31.5 84.2-31.5 70.7 0 128 57.3 128 128 0 21.2-5.1 41.1-14.2 58.7l53.8 42.2c33.5-34.1 58.3-73.8 71-100.9-14.5-30.9-40.2-72.5-78.7-108.3-41.1-38.1-94.7-68.6-159.9-68.6-50.5 0-94.9 18.63-130.2 44.4zm205.1 160.7c3.3-8.8 5.1-18.3 5.1-29.1 0-43.3-35.8-80-80-80-.7 0-1.3.9-2.9.9 2.2 5.1 2.9 10.5 2.9 15.1 0 11.1-2.4 20.7-6.6 29.2l81.5 63.9zm9.4 130.3 41.9 33C409.9 467.1 367.8 480 320 480c-80.8 0-145.5-36.8-192.6-80.6-46.78-44.3-78.06-95.4-92.94-131.1a31.98 31.98 0 0 1 0-24.6c9.54-22.9 25.83-52.5 48.63-82.2l37.71 29.7c-18.7 23.3-31.04 46.4-39.35 63.9 13.57 30.9 40.15 73.4 78.65 109.2C201.2 402.4 254.8 432 320 432c30.7 0 58.8-6.6 84.3-17.5zM192 255.1c0-2 .1-4.8.3-7.6l56.1 44.2c10.5 21.1 30.1 36.9 53.6 41.4l56.2 45.1c-12.1 2.9-24.9 5.8-39.1 5.8-69.8 0-128-57.3-128-128.9h.9z'/%3E%3C/svg%3E");
			background-size: 40% auto;
			background-repeat: no-repeat;
			background-position: 50%;
			opacity: .6;
		}

	@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))){
		.ipsImageBlock__nsfw{
			background-color: rgba(var(--theme-area_background_dark), .85);
			-webkit-backdrop-filter: blur(20px);
			backdrop-filter: blur(20px);
		}
	}

	.ipsImageBlock__nsfw button{
		-webkit-appearance: none;
		appearance: none;
		border-width: 0;
		background: rgb(255,255,255,.1);
		color: inherit;
		font: inherit;
		cursor: pointer;
		border-radius: 5px;
		padding: .5em 1.2em;
		margin-top: 1em;
	}

		.ipsImageBlock__nsfw button:hover{
			background: rgb(255,255,255,.15);
		}

.ipsImageBlock:has(.ipsImageBlock__nsfw) .ipsImageBlock__header,
.ipsImageBlock:has(.ipsImageBlock__nsfw) .ipsImageBlock__footer{
	display: none;
}

/* Simplify the NSFW overlay on small screens when used in the masonry layout */
@media (max-width: 767px){
	.iGalleryMasonry .ipsImageBlock__nsfw{
		pointer-events: none;
		align-content: normal;
		justify-content: normal;
	}
	.iGalleryMasonry .ipsImageBlock__nsfw *{
		display: none;
	}
	.iGalleryMasonry .ipsImageBlock__nsfw::before{
		content: '';
		grid-area: 1/-1;
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath fill='%23fff' d='M150.7 92.77C195 58.27 251.8 32 320 32c80.8 0 145.5 36.84 192.6 80.6 46.8 43.4 78.1 94.5 92.9 131.1 3.3 7.9 3.3 16.7 0 24.6-13.4 32.3-40.3 77.8-79.9 118.4l105.2 82.4c10.4 8.2 12.3 23.3 4.1 33.7-8.2 10.4-23.3 12.3-33.7 4.1L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196 13.29-1.236 28.37-3.065 38.81 5.112L150.7 92.77zm39.1 30.73 46 36c22.5-19.6 52-31.5 84.2-31.5 70.7 0 128 57.3 128 128 0 21.2-5.1 41.1-14.2 58.7l53.8 42.2c33.5-34.1 58.3-73.8 71-100.9-14.5-30.9-40.2-72.5-78.7-108.3-41.1-38.1-94.7-68.6-159.9-68.6-50.5 0-94.9 18.63-130.2 44.4zm205.1 160.7c3.3-8.8 5.1-18.3 5.1-29.1 0-43.3-35.8-80-80-80-.7 0-1.3.9-2.9.9 2.2 5.1 2.9 10.5 2.9 15.1 0 11.1-2.4 20.7-6.6 29.2l81.5 63.9zm9.4 130.3 41.9 33C409.9 467.1 367.8 480 320 480c-80.8 0-145.5-36.8-192.6-80.6-46.78-44.3-78.06-95.4-92.94-131.1a31.98 31.98 0 0 1 0-24.6c9.54-22.9 25.83-52.5 48.63-82.2l37.71 29.7c-18.7 23.3-31.04 46.4-39.35 63.9 13.57 30.9 40.15 73.4 78.65 109.2C201.2 402.4 254.8 432 320 432c30.7 0 58.8-6.6 84.3-17.5zM192 255.1c0-2 .1-4.8.3-7.6l56.1 44.2c10.5 21.1 30.1 36.9 53.6 41.4l56.2 45.1c-12.1 2.9-24.9 5.8-39.1 5.8-69.8 0-128-57.3-128-128.9h.9z'/%3E%3C/svg%3E");
		background-size: 40% auto;
		background-repeat: no-repeat;
		background-position: 50%;
		opacity: .6;
	}
}

.ipsImageBlock__video-icon{
	display: flex;
	justify-content: center;
	align-items: center;
	pointer-events: none;
	filter: drop-shadow(rgba(0,0,0,.2) 0px 1px 2px);
	opacity: .8;
}

	.ipsImageBlock__video-icon::before{
		content: '';
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M188.3 147.1c7.5-4.3 16.8-5 24.2.4l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.2.4-7.6-4.2-12.3-12.2-12.3-20.9V167.1c0-7.8 4.7-15.8 12.3-20zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256 114.6 0 256 0s256 114.6 256 256zM256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z' fill='%23fff'/%3E%3C/svg%3E");
		background-size: contain;
		background-repeat: no-repeat;
		background-position: 50%;
		width: clamp(20px, 40%, 50px);
		height: 100%;
	}


/* ======================================================== */
/* HORIZONTAL RULE */
hr.ipsHr {
	margin: 15px 0;
	height: 0;
	padding: 0;
	border: 1px solid rgba( var(--theme-text_color), 0.08 );
	border-width: 1px 0 0 0;
}
	
	.ipsAreaBackground_dark hr.ipsHr {
		border-color: rgba(255,255,255,0.1);
	}

	hr.ipsHr.ipsHr_thick {
		border-width: 10px 0 0 0;
		border-color: rgb( var(--theme-area_background_dark) );
	}

	hr.ipsHr.ipsHr_small {
		margin: 7px 0;
	}

/* ====================================================================== */
/* BORDERS - with !important since these should be treated as 'constants' */
.ipsBorder\:none { border: 0 !important; }
.ipsBorder { border: var(--border-1px) !important; }
.ipsBorder_top, .ipsBorder_vertical { border-top: var(--border-1px) !important; }
.ipsBorder_bottom, .ipsBorder_vertical { border-bottom: var(--border-1px) !important; }
.ipsBorder_left, .ipsBorder_horizontal { border-left: var(--border-1px) !important; }
.ipsBorder_right, .ipsBorder_horizontal { border-right: var(--border-1px) !important; }


{{if theme.responsive}}
@media (max-width: 979px){
	.md\:ipsBorder\:none { border: 0 !important; }
	.md\:ipsBorder { border: var(--border-1px) !important; }
	.md\:ipsBorder_top, .md\:ipsBorder_vertical { border-top: var(--border-1px) !important; }
	.md\:ipsBorder_bottom, .md\:ipsBorder_vertical { border-bottom: var(--border-1px) !important; }
	.md\:ipsBorder_left, .md\:ipsBorder_horizontal { border-left: var(--border-1px) !important; }
	.md\:ipsBorder_right, .md\:ipsBorder_horizontal { border-right: var(--border-1px) !important; }
}
@media (max-width: 767px){
	.sm\:ipsBorder\:none { border: 0 !important; }
	.sm\:ipsBorder { border: var(--border-1px) !important; }
	.sm\:ipsBorder_top, .sm\:ipsBorder_vertical { border-top: var(--border-1px) !important; }
	.sm\:ipsBorder_bottom, .sm\:ipsBorder_vertical { border-bottom: var(--border-1px) !important; }
	.sm\:ipsBorder_left, .sm\:ipsBorder_horizontal { border-left: var(--border-1px) !important; }
	.sm\:ipsBorder_right, .sm\:ipsBorder_horizontal { border-right: var(--border-1px) !important; }
}
{{endif}}

/* ======================================================== */
/* OUTLINES */
/* Outline applies what looks like a border but is actually a dropshadow, and importantly - honors image transparency */
.ipsOutline {
	--outline-border-width: 1px;
	--outline-border-color: rgb( var(--theme-area_background_reset ) );
}

.ipsOutline\:1px { --outline-border-width: 1px; }
.ipsOutline\:2px { --outline-border-width: 2px; }

.ipsOutline {
	filter:	drop-shadow( var(--outline-border-width) 0 0 var(--outline-border-color ) )
			drop-shadow( 0 var(--outline-border-width) 0 var(--outline-border-color ) )
			drop-shadow( calc( var(--outline-border-width) * -1 ) 0 0 var(--outline-border-color ) )
			drop-shadow( 0 calc( var(--outline-border-width) * -1 ) 0 var(--outline-border-color ) );
}

/* ======================================================== */
/* LOADING THROBBERS */
@keyframes spinner {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(359deg); }
}

.ipsLoading {
	position: relative;
}

.icon-spinner2:before,
.ipsLoading:before {
	content: '';
	border-radius: 50%;
	width: 1em;
	height: 1em;
	border: calc(2px + .03em) solid rgba( var(--theme-text_color), 0.1 );
	border-top-color: rgb( var(--theme-text_color) );
	box-sizing: border-box;
}

.icon-spinner2:before {
	display: inline-block;
}

.ipsLoading:before {
	position: absolute;
	top: 50%;
	left: 50%;
	margin-top: -.5em;
	margin-left: -.5em;
	font-size: 50px;
}

.ipsLoading_iconMessage {
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	margin-top: 35px;
}

/* If the progress spinner has a message, reposition the loading icon to allow space for the message */
.ipsLoading[data-loading-text]::before{
	top: calc(50% - 14px);
	transition: all 0.3s ease-in-out;
}

	/* Otherwise reset it to it's centered position */
	.ipsLoading[data-loading-text=""]::before{
		top: 50%;
	}

	/* Display the spinner loading text as a pseudo element */
	.ipsLoading[data-loading-text]::after{
		content: attr(data-loading-text);
		position: absolute;
		top: calc(50% + 23px);
		left: 0; width: 100%;
		opacity: 1;
		transform: translateY(0);
		transition: all 0.3s ease-in-out;
	}

		/* Hide the text if no message is needed */
		.ipsLoading[data-loading-text=""]::after{
			opacity: 0;
			transform: translateY(9px);
		}

.ipsLoading:not( .ipsLoading_noAnim ):before,
.icon-spinner2:before {
	animation: spinner 0.65s infinite linear;
}

.ipsLoading.ipsLoading_small:before {
	font-size: 24px;
}

.ipsLoading.ipsLoading_tiny:before {
	font-size: 16px;
}

.ipsLoading.ipsLoading_dark:before {
	border-color: rgba(255,255,255,0.1);
	border-top-color: #fff;
}

/* Tiny spinner used in an <i> tag */
.ipsLoading_tinyIcon {
	width: 1em;
	height: 1em;
	font-size: 16px;
	display: inline-block;
}

/* ======================================================== */
/* POSITIONING, CLEARING, HIDING */
.ipsPad, .ipsApp ul.ipsPad, .ipsApp ol.ipsPad { padding: var(--sp-5); }
.ipsPad_double, .ipsApp ul.ipsPad_double, .ipsApp ol.ipsPad_double { padding: var(--sp-8); }
.ipsPad_half, .ipsApp ul.ipsPad_half, .ipsApp ol.ipsPad_half { padding: var(--sp-3); }

/* Generate normal/double/half padding for each side */
/* !important is used on these styles since they are constants and should never be overridden with specificity */
{{$paddingSizes = array('\:none' => '0', '' => 'var(--sp-5)', '\:half' => 'var(--sp-3)', '\:double' => 'var(--sp-8)' );}}

{{foreach $breakpoints as $mq => $prefix}}
{{if !empty($mq)}}
@media (max-width: {$mq}) {
{{endif}}
{{foreach $paddingSizes as $modifier => $size}}
	.{$prefix}ipsPadding{$modifier} { padding: {$size} !important; }
	.{$prefix}ipsPadding_vertical{$modifier}, .{$prefix}ipsPadding_top{$modifier} { padding-top: {$size} !important; }
	.{$prefix}ipsPadding_vertical{$modifier}, .{$prefix}ipsPadding_bottom{$modifier} { padding-bottom: {$size} !important; }
	.{$prefix}ipsPadding_horizontal{$modifier}, html[dir="ltr"] .{$prefix}ipsPadding_left{$modifier}, html[dir="rtl"] .{$prefix}ipsPadding_right{$modifier} { padding-left: {$size} !important; }
	.{$prefix}ipsPadding_horizontal{$modifier}, html[dir="ltr"] .{$prefix}ipsPadding_right{$modifier}, html[dir="rtl"] .{$prefix}ipsPadding_left{$modifier} { padding-right: {$size} !important; }
{{endforeach}}
{{if !empty($mq)}}
}
{{endif}}
{{endforeach}}

.ipsPos_left, html[dir="rtl"] .ipsPos_right { float: left; }
.ipsPos_right, html[dir="rtl"] .ipsPos_left { float: right; }
.ipsPos_none { float: none; }
.ipsPos_center { margin: 0 auto; }
.ipsPos_middle { vertical-align: middle; }
.ipsPos_top { vertical-align: top; }
.ipsPos_sticky, .lg\:ipsPos_sticky { position: sticky !important; top: 0; z-index: 1; }
.ipsPos_relative { position: relative; }

{{if theme.responsive}}
	@media (max-width: 979px){
		.md\:ipsPos_left, html[dir="rtl"] .md\:ipsPos_right { float: left; }
		.md\:ipsPos_right, html[dir="rtl"] .md\:ipsPos_left { float: right; }
		html[dir] .md\:ipsPos_none { float: none; }
		.md\:ipsPos_center { margin: 0 auto; }
		.md\:ipsPos_middle { vertical-align: middle; }
		.md\:ipsPos_top { vertical-align: top; }
		.md\:ipsPos_sticky { position: sticky !important; top: 0; z-index: 1; }
		.md\:ipsPos_relative { position: relative; }
	}

	@media (max-width: 767px){
		.sm\:ipsPos_left, html[dir="rtl"] .sm\:ipsPos_right { float: left; }
		.sm\:ipsPos_right, html[dir="rtl"] .sm\:ipsPos_left { float: right; }
		html[dir] .sm\:ipsPos_none { float: none; }
		.sm\:ipsPos_center { margin: 0 auto; }
		.sm\:ipsPos_middle { vertical-align: middle; }
		.sm\:ipsPos_top { vertical-align: top; }
		.sm\:ipsPos_sticky { position: sticky !important; top: 0; z-index: 1; }
		.sm\:ipsPos_relative { position: relative; }
	}
{{endif}}

/* Add padding to edit forms */
#ipsLayout_mainArea > .ipsForm[action$='do=edit'] > .ipsForm{
	padding: var(--sp-6);
}

.ipsClear {	clear: both; }

{{if theme.responsive}}
	@media (max-width: 979px){
		.md\:ipsClear {
			clear: both;
		}
	}
	@media (max-width: 767px){
		.sm\:ipsClear {
			clear: both;
		}
	}
{{endif}}

.ipsClearfix:after {
	visibility: hidden;
	display: block;
	font-size: 0;
	content: " ";
	clear: both;
	height: 0;
}

.ipsOverflow {
	width: 100%;
	overflow: auto;
}

.ipsApp .ipsHide { 
	display: none;
}

.ipsApp .ipsBlock {
	display: block;
}

.ipsFaded {
	opacity: 0.4;
}
	
	.ipsFaded_unavailable {
		pointer-events: none;
	}
	
	.ipsFaded.ipsFaded_more {
		opacity: 0.25;
	}

	.ipsFaded_withHover {
		transition: 0.2s all linear;
	}

	.ipsFaded_withHover:hover, .ipsFaded_withHover:hover .ipsFaded, .ipsFaded.ipsFaded_cancel {
		opacity: 1;
	}

/* ======================================================== */
/* LISTS */
.ipsList_inline,
.ipsList_reset,
.ipsList_icons {
	margin: 0;
	padding: 0;
	list-style: none;
}

html[dir="ltr"] .ipsList_leftAlign {
	padding-left: 20px;
}
html[dir="rtl"] .ipsList_leftAlign {
	padding-right: 20px;
}

.ipsList_inline > li {
	display: inline-block;
	vertical-align: middle;
}
html[dir="ltr"] .ipsList_inline > li {
	margin-right: 15px;
}
html[dir="rtl"] .ipsList_inline > li {
	margin-left: 15px;
}

	html[dir="ltr"] .ipsList_inline > li:last-child,
	html[dir="ltr"] .ipsList_inline.ipsList_noSpacing > li {
		margin-right: 0;
	}
	html[dir="rtl"] .ipsList_inline > li:last-child,
	html[dir="rtl"] .ipsList_inline.ipsList_noSpacing > li {
		margin-left: 0;
	}

	html[dir="ltr"] .ipsList_inline.ipsList_noSpacing_left > li {
		margin-left: 0;
	}
	html[dir="rtl"] .ipsList_inline.ipsList_noSpacing_left > li {
		margin-right: 0;
	}
	
	html[dir="ltr"] .ipsList_inline > li.ipsPos_right:not( .ipsResponsive_noFloat ) {
		margin-right: 0;
		margin-left: 15px;
	}
	html[dir="rtl"] .ipsList_inline > li.ipsPos_right:not( .ipsResponsive_noFloat ) {
		margin-left: 0;
		margin-right: 15px;
	}

.ipsList_inline.ipsList_csv li:after {
	content: ',';
}

.ipsList_inline.ipsList_csv li:last-child:after {
	content: '';
}

.ipsList_bullets {
	list-style-type: disc;
	margin: 0 0 0 26px;
	padding: 0;
}
html[dir="rtl"] .ipsList_bullets {
	margin: 0 26px 0 0;
}
.ipsList_bullets.ipsList_numbers {
	list-style-type: decimal;
}

.ipsList_icons li{
	margin-bottom: .3em;
}

.ipsList_icons .fa{
	color: rgb(var(--theme-text_light));
	min-width: 1.4em;
}

/* ======================================================== */
/* ONLINE/OFFLINE */
.ipsOnlineStatus, .ipsOnlineStatus_online {
	color: #249168;
}

.ipsOnlineStatus_anonymous {
	color: #616161;
}

.ipsOnlineStatus_offline {
	color: #c7c7c7;
}

.ipsOnlineStatus_away {
	color: #bd9e22;
}

.ipsOnlineStatus_busy {
	color: #a03223;
}

/* ======================================================== */
/* CURSORS */
.ipsCursor_locked {
	cursor: not-allowed !important;
}

.ipsCursor_drag {
	cursor: move !important;
}

.ipsCursor_default {
	cursor: default;
}

.ipsCursor_pointer {
	cursor: pointer !important;
}

.ipsCursor_help {
	cursor: help !important;
}

/* ======================================================== */
/* CONTEXTUAL TOOLS */
.ipsToolList {
	padding: 0;
	list-style: none;
	margin: 0;
}

.ipsToolList_horizontal > *{
	max-width: 100%;
}

	@media (min-width: 768px){
		[dir='ltr'] .ipsToolList_horizontal > *,
		[dir='rtl'] .ipsToolList_horizontal > .ipsPos_left{
			float: right !important;
			margin-left: var(--sp-3);
			margin-right: 0;
		}
		[dir='rtl'] .ipsToolList_horizontal > *,
		[dir='ltr'] .ipsToolList_horizontal > *.ipsPos_left{
			float: left !important;
			margin-right: var(--sp-3);
			margin-left: 0;
		}
		.ipsToolList_horizontal::after{
			content: '';
			display: block;
			clear: both;
		}
	}

	.ipsToolList_horizontal > .ipsToolList_primaryAction .ipsButton:not( .ipsButton_link ) {
		padding: 0 40px;
	}

	.ipsToolList.ipsToolList_horizontal > li.ipsPos_right {
		min-width: 150px;
	}

	.ipsToolList.ipsToolList_vertical > li:not(:last-child) {
		margin-bottom: 15px;
	}

	.ipsToolList.ipsToolList_horizontal.ipsPos_center > li {
		float: none !important;
		display: inline-block;
	}

/* ======================================================== */
/* MODERATION STYLES */
.ipsApp .ipsModerated:not(.ipsComment_selected):not(.ipsDataItem_selected) {
	background: rgb( var(--theme-moderated_light) );
	color: rgb( var(--theme-moderated_text) );
}

	.ipsApp .ipsModerated:not(.ipsComment_selected):not(.ipsDataItem_selected).ipsModerated_alternate {
		background: rgb( var(--theme-post_highlight) );
	}

	.ipsApp .ipsBox.ipsModerated {
		box-shadow: 0px 0px 0px 1px rgba( var(--theme-moderated_text), 0.8 ), 0px 0px 0px 5px rgba( var(--theme-moderated_text), 0.2 );
	}

	.ipsApp .ipsModerated:not(.ipsComment_selected):not(.ipsDataItem_selected) a:not(.ipsButton) {
		color: inherit;
	}

	.ipsApp .ipsModerated:not(.ipsComment_selected):not(.ipsDataItem_selected) .ipsType_light {
		color: rgb( var(--theme-moderated_text_light) );
	}

	/* In some situations the moderation bg is applied to a child of the box, so make sure that inherit the box radius */
	.ipsBox > .ipsModerated {
		border-radius: inherit;
	}

/* ======================================================== */
/* STEP BAR */
.ipsStepBar {
	background: rgb( var(--theme-area_background_light) );
	display: flex;
	flex-wrap: wrap;
	overflow: hidden;
	margin: 0;
	padding: 0;
	list-style: none;
}

	.ipsStepBar:first-child{
		border-top-left-radius: inherit;
		border-top-right-radius: inherit;
	}

	.ipsStepBar > li {
		flex: 0 0 auto;
		position: relative;
		line-height: 1.3;
	}

		html[dir='ltr'] .ipsStepBar > li{
			margin-right: -1px;
		}

		html[dir='rtl'] .ipsStepBar > li{
			margin-left: -1px;
		}

	.ipsStepBar > .ipsStep > a,
	.ipsStepBar > .ipsStep > span {
		padding: 0 1.8em;
		height: 56px;
		display: flex;
		flex-direction: column;
		justify-content: center;
		position: relative;
		color: rgb( var(--theme-text_color) );
		z-index: 1;
	}

	/* css Steps */
	.ipsStepBar > .ipsStep:before,
	.ipsStepBar > .ipsStep:after,
	.ipsStepBar > .ipsStep + .ipsStep.ipsStep_active::after{
		content: '';
		display: block;
		height: 50%;
		width: auto;
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		border: 1px solid rgba( var(--theme-text_color), 0.1 );
		border-width: 0 1px 0 1px;
		transform-origin: 0% 50%;
		transform: skewX(30deg);
		pointer-events: none;
	}
		
		/* Bottom half */
		.ipsStepBar > .ipsStep:after,
		.ipsStepBar > .ipsStep + .ipsStep.ipsStep_active::after{
			transform: skewX(-30deg);
			top: auto;
			bottom: 0;
		}
		
		/* If first item is active, extend its width */
		.ipsStepBar > .ipsStep:first-child:before,
		.ipsStepBar > .ipsStep:first-child:after{
			width: calc(100% + 40px);
		}
		
			html[dir='ltr'] .ipsStepBar > .ipsStep:first-child:before,
			html[dir='ltr'] .ipsStepBar > .ipsStep:first-child:after{
				left: auto;
			}
			
			html[dir='rtl'] .ipsStepBar > .ipsStep:first-child:before,
			html[dir='rtl'] .ipsStepBar > .ipsStep:first-child:after{
				right: auto;
			}

		/* RTL */
		html[dir='rtl'] .ipsStepBar > .ipsStep:before,
		html[dir='rtl'] .ipsStepBar > .ipsStep:after,
		html[dir='rtl'] .ipsStepBar > .ipsStep + .ipsStep.ipsStep_active::after{
			transform: skewX(-30deg);
		}
		
			html[dir='rtl'] .ipsStepBar > .ipsStep:after,
			html[dir='rtl'] .ipsStepBar > .ipsStep + .ipsStep.ipsStep_active::after{
				transform: skewX(30deg);
			}

			/* Active step */
			.ipsStepBar > .ipsStep.ipsStep_active::before,
			.ipsStepBar > .ipsStep.ipsStep_active::after{
				background: rgb( var(--theme-area_background_dark) );
			}

			/* Active */
			.ipsStepBar > .ipsStep.ipsStep_active > a,
			.ipsStepBar > .ipsStep.ipsStep_active > span {
				color: #fff;
			}

.ipsStep_desc {
	font-size: {fontsize="x_small"};
	margin-top: .2em;
	opacity: .7;
}

.ipsPageHead_special {
	border-radius: var(--radius-1) var(--radius-1) 0px 0px;
	padding: 15px;
	color: #fff;
	position: relative;
	background-color: rgb( var(--theme-profile_header) );
}

	
	.ipsPageHead_barText,
	.ipsPageHead_barText_small {
		display: inline-block;
		background: rgba(0,0,0,0.6);
		line-height: 1;
		padding: 7px 10px;
		font-weight: 300;
	}
		.ipsPageHead_barText_small a{
			color: #fff !important;
		}

		.ipsPageHead_barText_small {
			padding: 3px 10px;
		}

	.ipsPageHead_special .ipsType_pageTitle {
		color: inherit;
	}

		.ipsPageHead_special .ipsType_pageTitle a{
			color: inherit !important;
		}

	.ipsPageHead_special .ipsType_pageTitle input {
		color: #000;
	}
	
/* ======================================================== */
/* COMMENT & NOTIFICATION INDICATORS */
.ipsCommentCount {
	padding: 0 var(--sp-2);
	border-radius: 50px;
	min-width: var(--sp-7);
	line-height: var(--sp-7);
	display: inline-block;
	background: rgb( var(--theme-comment_count) );
	border-color: rgb( var(--theme-comment_count) );
	display: inline-block;
	font-size: {fontsize="x_small"};
	text-transform: uppercase;
	position: relative;
	text-align: center;
	color: rgb( var(--theme-comment_count_font) );
	margin-bottom: 3px;
}
html[dir="ltr"] .ipsCommentCount {
	margin-left: 10px;
}
html[dir="rtl"] .ipsCommentCount {
	margin-right: 10px;
}

	.ipsCommentCount strong {
		font-size: {fontsize="medium"};
		display: block;
		font-weight: normal;
	}

	.ipsCommentCount_hot {
		background: rgb( var(--theme-featured) );
		border-color: rgb( var(--theme-featured) );
		color: #fff;
	}

	.ipsSideMenu_item a .ipsCommentCount {
		margin-top: -4px;
	}

	.ipsDataItem_selected .ipsCommentCount {
		background: rgb( var(--theme-area_background_reset) );
	}

.ipsApp .ipsNotificationCount {
	position: absolute;
	top: -10px;
	font-size: 11px;
	color: #fff;
	display: inline-block;
	text-indent: 0%;
	line-height: 18px;
	padding: 0 6px;
	border-radius: 8px;
	z-index: 2;
	background: rgb( var(--theme-notification_bubble) );
}
html[dir="ltr"] .ipsApp .ipsNotificationCount {
	right: -10px;
}
html[dir="rtl"] .ipsApp .ipsNotificationCount {
	left: -10px;
}

	.ipsJS_has .ipsNotificationCount[data-role="autoCheckCount"] {
		display: none;
	}
	
	.ipsApp .ipsNotificationCount.ipsHide {
		display: none;
	}

/* ======================================================== */
/* CHARTS */
.ipsChart {
	border-width: 0 4px 4px 4px;
	border-style: solid;
	border-color: #ebebeb;
}

	.ipsChart .ipsChart_chart {
		overflow: hidden;
	}

	.ipsChart .ipsButtonRow li > a:not( .ipsButtonRow_active ) {
		background: #fff;
		color: #6f6f6f;
	}

	.ipsChart .ipsType_sectionHead:not( .ipsChart_withDescription ) {
		margin-bottom: 15px;
	}

/* ======================================================== */
/* ACCESSIBILITY STUFF */
#ipsAccessibility_border {
	width: 0;
	height: 300px;
}
html[dir="ltr"] #ipsAccessibility_border {
	border-left: 3px solid #d91f4b;
}
html[dir="rtl"] #ipsAccessibility_border {
	border-right: 3px solid #d91f4b;
}

#ipsAccessibility_arrow {
	width: 0;
	height: 0;
	border-width: 10px;
	border-style: solid;
	border-color: transparent transparent transparent red;
}

/* ======================================================== */
/* STICKY ELEMENTS */
/* Used in conjunction with the sticky widget to make elements stay on screen */
.ipsSticky {
	background: rgb( var(--theme-area_background_light) );
}

	.ipsSticky.ipsSticky_bottom:before,
	.ipsSticky.ipsSticky_top:before {
		content: '';
		display: block;
		position: absolute;
		height: 6px;
		left: 0;
		right: 0;
		pointer-events: none;
	}

	.ipsSticky.ipsSticky_top {
		border-bottom: 1px solid rgba( var(--theme-text_color), 0.1 );
	}
	.ipsSticky.ipsSticky_top:before {
		top: 100%;
		background: linear-gradient(to bottom, rgba(0,0,0,0.075) 0%,rgba(0,0,0,0) 100%);
	}

	.ipsSticky.ipsSticky_bottom:before {
		bottom: 100%;
	}

	.ipsSticky.ipsSticky_noFade:before {
		display: none;
	}

/* ======================================================== */
/* CUSTOM SCROLLBARS (webkit only for now) */
.ipsScrollbar::-webkit-scrollbar { 
	width: 8px;
	height: 8px;
}

.ipsScrollbar::-webkit-scrollbar-thumb { 
	background-color: rgba(0,0,0,0.4);
	border-radius: 3px;
}
	.ipsScrollbar.ipsScrollbar_light::-webkit-scrollbar-thumb { 
		background-color: rgba(255,255,255,0.4);
		border-radius: 3px;
	}

.ipsScrollbar::-webkit-scrollbar-track-piece { 
	background-color: rgba(0,0,0,0.05);
}

	.ipsScrollbar.ipsScrollbar_light::-webkit-scrollbar-track-piece { 
		background-color: rgba(255,255,255,0.05);
	}

/* ======================================================== */
/* MULTIQUOTE ELEMENT */
#ipsMultiQuoter {
	position: fixed;
	bottom: 20px;
	background: rgb( var(--theme-area_background_dark) );
	color: #fff;
	padding: 15px;
	border-radius: var(--radius-2);
	z-index: 6000;
	box-shadow: var(--dialog--boxShadow);
}
html[dir="ltr"] #ipsMultiQuoter {
	right: 20px;
}
html[dir="rtl"] #ipsMultiQuoter {
	left: 20px;
}

	#ipsMultiQuoter a {
		color: inherit;
	}

/* ======================================================== */
/* EMPTINESS */
.ipsEmpty {
	padding: 30px 0 0;
	font-size: {fontsize="x_large"};
	color: rgb( var(--theme-text_light) );
}

.ipsEmpty i {
	font-size: 120px;
	margin-bottom: 15px;
}

/* ======================================================== */
/* CALENDAR DATES */
.ipsCalendarDate {
	width: 40px;
	display: block;
	border: 1px solid rgba( var(--theme-text_color), 0.2 );
	background: rgb( var(--theme-area_background_light) );
	padding: 4px 0;
	border-radius: 3px;
	overflow: hidden;
}
	
	.ipsWidget .ipsCalendarDate {
		background: rgb( var(--theme-area_background_reset) );
	}
	
	.ipsCalendarDate > span {
		display: block;
		text-align: center;
	}

	.ipsCalendarDate_month {
		color: #a93848;
		text-transform: uppercase;
		font-size: {fontsize="10"};
		line-height: 1;
		font-weight: bold;
	}

	.ipsCalendarDate_date {
		font-size: {fontsize="x_large"};
		line-height: 1;
	}

	.ipsCalendarDate.ipsCalendarDate_large {
		width: 80px;
	}

	.ipsCalendarDate.ipsCalendarDate_large .ipsCalendarDate_month {
		font-size: {fontsize="x_large"};
		font-weight: 500;
	}

	.ipsCalendarDate.ipsCalendarDate_large .ipsCalendarDate_date {
		font-size: {fontsize="40"};
		line-height: 1.05;
		font-weight: 300;
	}

	.ipsWidget_vertical .ipsColumn--ipsCalendarDate{
		width: 70px;
	}

		.ipsWidget_vertical .ipsColumn--ipsCalendarDate .ipsCalendarDate{
			width: 50px;
		}

		.ipsWidget_vertical .ipsColumn--ipsCalendarDate .ipsCalendarDate_month{
			font-size: 13px;
		}

		.ipsWidget_vertical .ipsColumn--ipsCalendarDate .ipsCalendarDate_date{
			font-size: 20px;
		}

/* ======================================================== */
/* CAROUSELS */
.ipsCarousel {
	position: relative;
}
	.ipsCarousel .ipsCarousel_inner {
		overflow: hidden;
		position: relative;
	}
		.ipsCarousel .ipsCarousel_inner::-webkit-scrollbar {
			display: none;
		}

	html[dir="ltr"] .ipsCarousel:not( [data-ipsCarousel-fullSizeItems] ) .ipsCarousel_item {
		margin-right: 15px;
	}
	html[dir="rtl"] .ipsCarousel:not( [data-ipsCarousel-fullSizeItems] ) .ipsCarousel_item {
		margin-left: 15px;
	}

		html[dir="ltr"] .ipsCarousel .ipsCarousel_item:last-child {
			margin-right: 0;
		}
		html[dir="rtl"] .ipsCarousel .ipsCarousel_item:last-child {
			margin-left: 0;
		}

	.ipsCarousel .ipsCarousel_nav {
		position: absolute;
		top: 50%;
		margin-top: -20px;
		background: rgb( var(--theme-area_background_reset) );
		color: rgb( var(--theme-text_dark) );
		width: 30px;
		height: 50px;
		text-align: center;
		line-height: 50px;
		font-size: 18px;
		box-shadow: 0px 2px 1px rgba(0,0,0,0.1);
		opacity: 0.4;
		z-index: 10;
	}

		html[dir="ltr"] .ipsCarousel .ipsCarousel_nav[data-action='prev'] {
			left: 0;
		}
		html[dir="ltr"] .ipsCarousel .ipsCarousel_nav[data-action='next'] {
			right: 0;
		}
		html[dir="rtl"] .ipsCarousel .ipsCarousel_nav[data-action='prev'] {
			right: 0;
		}
		html[dir="rtl"] .ipsCarousel .ipsCarousel_nav[data-action='next'] {
			left: 0;
		}

		.ipsCarousel:hover .ipsCarousel_nav {
			opacity: 1;
		}

	.ipsCarousel .ipsCarousel_inner > [data-role="carouselItems"] {
		padding: 0;
		margin: 0;
		list-style: none;
		white-space: nowrap;
		position: absolute;
		transition: transform .2s ease-in-out;
		display: flex;
	}

	.ipsCarousel_item {
		flex-shrink: 0;
		max-width: var(--carousel-maxWidth, 100%);
	}

		.ipsCarousel_item img {
			max-width: 100%;
		}

	.ipsCarousel_shadow {
		position: absolute;
		top: 0;
		bottom: 0;
		width: 20px;
		display: block;
		pointer-events: none;
	}

		html[dir="ltr"] .ipsCarousel_shadowLeft,
		html[dir="rtl"] .ipsCarousel_shadowRight {
			left: 0;
			background: linear-gradient(to right, rgba(0,0,0,0.25) 0%,rgba(0,0,0,0.04) 76%,rgba(0,0,0,0) 100%);
		}
		html[dir="ltr"] .ipsCarousel_shadowRight,
		html[dir="rtl"] .ipsCarousel_shadowLeft {
			right: 0;
			background: linear-gradient(to right, rgba(0,0,0,0) 0%,rgba(0,0,0,0.04) 24%,rgba(0,0,0,0.25) 100%);
		}

	.ipsJS_none .ipsCarousel {
		min-height: 200px;
	}

	.ipsJS_none .ipsCarousel .ipsCarousel_nav,
	.ipsJS_none .ipsCarousel_shadow {
		display: none;
	}

/* ======================================================== */
/* PROGRESS BAR */
@keyframes progress-bar-stripes {
	from { background-position: 40px 0; }
	to { background-position: 0 0; }
}

.ipsProgressBar {
	width: 50%;
	margin: auto;
	height: 26px;
	overflow: hidden;
	background: rgb( var(--theme-area_background) );
	background-image: linear-gradient(to bottom, rgba( var(--theme-brand_primary), 0.1 ), rgba( var(--theme-brand_primary), 0.1 ));
	border-radius: 4px;
}
	
	.ipsProgressBar.ipsProgressBar_small {
		height: 18px;
	}

		.ipsProgressBar.ipsProgressBar_small .ipsProgressBar_progress {
			line-height: 18px;
			font-size: 10px;
		}

	.ipsProgressBar.ipsProgressBar_fullWidth {
		width: 100%;
	}

	.ipsProgressBar.ipsProgressBar_animated .ipsProgressBar_progress {
		background-color: rgb( var(--theme-brand_primary) );
		background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
		background-size: 40px 40px;
		animation: progress-bar-stripes 2s linear infinite;
	}

.ipsProgressBar_progress {
	display: flex;
	align-items: center;
	width: 0;
	height: 100%;
	font-size: 12px;
	color: #ffffff;
	text-align: right;
	background: rgb( var(--theme-brand_primary) );
	position: relative;
	white-space: nowrap;
	line-height: 26px;
	text-indent: 6px;
    padding-right: 2px;
}

html[dir="rtl"] .ipsProgressBar_progress {
	float: right;
}
	
	.ipsProgressBar_warning .ipsProgressBar_progress {
		background: #c05454;
	}

	html[dir="ltr"] .ipsProgressBar > span:first-child {
		padding-left: 7px;
	}
	html[dir="rtl"] .ipsProgressBar > span:first-child {
		padding-right: 7px;
	}

	.ipsProgressBar_progress[data-progress]:after {
		top: 0;
		color: #fff;
		content: attr(data-progress);
		display: block;
	}
	html[dir="ltr"] .ipsProgressBar_progress[data-progress]:after {
		right: 5px;
	}
	html[dir="rtl"] .ipsProgressBar_progress[data-progress]:after {
		left: 5px;
	}

	.ipsProgressBar_progress.ipsProgressBar_indeterminate {
		width: 100%;
		text-align: center;
	}
/* ======================================================== */
/* COVER PHOTOS */
.ipsCoverPhoto,
.ipsCoverPhoto .ipsFlex {
	position: relative;
}
	
	.ipsCoverPhoto .ipsType_pageTitle {
		font-weight: 300;
	}

	.ipsCoverPhoto_container {
		position: absolute;
		top: 0;
		bottom: 0;
		left: 0;
		right: 0;
		overflow: hidden;
		text-align: left;
		border-radius: inherit;
	}

		.ipsCoverPhoto_container:after {
			position: absolute;
			height: 50%;
			left: 0;
			bottom: 0;
			right: 0;
			display: block;
			content: '';
			pointer-events: none;
		}

	.ipsCoverPhoto_photo {
		width: 100%;
		opacity: 0.0001;
	}

	.ipsCoverPhoto_container [data-role="coverPhotoControls"] {
		position: absolute;
		top: 10px;
	}
	html[dir="ltr"] .ipsCoverPhoto_container [data-role="coverPhotoControls"] {
		right: 10px;
	}
	html[dir="rtl"] .ipsCoverPhoto_container [data-role="coverPhotoControls"] {
		left: 10px;
	}

	.ipsCoverPhoto_button {
		position: absolute;
		top: 10px;
	}
	html[dir="ltr"] .ipsCoverPhoto_button {
		right: 10px;
	}
	html[dir="rtl"] .ipsCoverPhoto_button {
		left: 10px;
	}
	
/* ======================================================== */
/* PRINTING */

.ipsPrint {
	margin-left: 50px;
	margin-right: 50px;
	-webkit-print-color-adjust: exact;
}

.ipsPrint table {
	width: 100%;
	padding: 5px;
}

.ipsPrint th {
	background: #000;
	color: #FFF;
	padding: 5px;
	text-align: left;
	border: 2px solid #000;
}

.ipsPrint tbody td {
	padding: 5px;
	border: 2px solid #000;
}

.ipsPrint tfoot td {
	padding: 5px;
	text-align: right;
}

.ipsPrint tfoot td:last-child {
	padding: 5px;
	text-align: left;
}

.ipsPrint_doubleHeight {
	height: 50px;
}

.ipsPrint_tripleHeight {
	height: 75px;
}

/* ======================================================== */
/* MAPS */

.ipsMap {
	width: 100%;
	height: 500px;
	background: rgb( var(--theme-area_background_light) );
}

.ipsMap_small {
	height: 200px;
}

/* ======================================================== */
/* Profile Progress bar */

.ipsProgressBar_close {
	position: absolute;
	top: 0;
	display: block;
	color: #000;
	width: 44px;
	height: 44px;
	line-height: 48px;
	font-size: 34px;
	font-weight: 300;
	text-align: center;
	z-index: 1000;
	transition: 0.2s all linear;
}
	html[dir="ltr"] .ipsProgressBar_close {
		right: 0;
	}
	html[dir="rtl"] .ipsProgressBar_close {
		left: 0;
	}
	
/* ======================================================== */
/* Widgets */

.cActiveUserEditor {
	font-style: italic;
}

.cInviteButton {
	padding-left: 6px !important;
	padding-right: 6px !important;
}


/* ======================================================== */
/* Pixabay */

.ipsPixabayImage{
	width: 100%;
	height: auto;
	cursor: pointer;
}

.ipsPixabay_content {
	max-width: 100%;
	height: 600px;
	max-height: calc(100vh - 260px);
	overflow: auto;
	padding: 10px;
}

.ipsPixabay_content .ipsLoading{
	margin-top: 150px;
}

.ipsPixabay_row {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.ipsPixabay_thumb {
	min-width: 0;
	flex: 1 1 26%;
	background: rgb( var(--theme-area_background) );
	margin: 4px;
	position: relative;
}

	.ipsPixabay_thumb:hover img{
		opacity: .9;
	}

/* Establish ratio */
@supports (object-fit: contain){
	.ipsPixabay_thumb::before{
		content: '';
		display: block;
		padding-bottom: 66.66%;
	}

	.ipsPixabayImage{
		position: absolute;
		top: 0; left: 0;
		height: 100%;
		object-fit: contain;
		object-position: 50% 50%;
	}
}

a.ipsPixabay_attribution {
	color: rgba(255,255,255,0.8);
	position: absolute;
	left: 50%;
	bottom: -50px;
	transform: translateX(-50%);
}
	.ipsPixabay_attribution svg{
		width: 110px;
		height: 30px;
		fill: currentColor;
		display: block;
	}
	
.ipsPixabay_moar {
	margin: 10px auto 6px auto;
	text-align: center;
}


/* ======================================================== */
/* Caterpillar lists */

.ipsCaterpillar{
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	align-items: center;
}

	.ipsCaterpillar__item {
		flex: 0 0 auto;
		display: flex;
	}

		.ipsCaterpillar__item > *{
			flex: 0 0 auto;
		}

	[dir="ltr"] .ipsCaterpillar > .ipsCaterpillar__item + .ipsCaterpillar__item {
		margin-left: -6px;
	}
	[dir="rtl"] .ipsCaterpillar > .ipsCaterpillar__item + .ipsCaterpillar__item {
		margin-right: -6px;
	}
	

/* ======================================================== */
/* Censor Block */

div[data-role="editorCensorBlockMessage"] {
	max-height: 300px;
	overflow-y: auto;
}