/* SOS Posts Carousel */
.sosc {
	--sosc-pv: var(--sosc-pv-m, 1);
	position: relative;
	box-sizing: border-box;
}
.sosc *,
.sosc *::before,
.sosc *::after { box-sizing: border-box; }

@media (min-width: 768px)  { .sosc { --sosc-pv: var(--sosc-pv-t, 2); } }
@media (min-width: 1025px) { .sosc { --sosc-pv: var(--sosc-pv-d, 4); } }

.sosc--arrows { padding: 0 44px; }
@media (max-width: 767px) { .sosc--arrows { padding: 0 34px; } }

/* Padding keeps card shadows inside the clipped area */
.sosc .sosc__swiper { padding: 10px 8px 26px; }

/* Layout before Swiper initialises, so there is no stacked flash */
.sosc__swiper:not(.swiper-initialized) .swiper-wrapper { display: flex; overflow: hidden; }
.sosc__swiper:not(.swiper-initialized) .swiper-slide {
	flex: 0 0 auto;
	width: calc((100% - (var(--sosc-pv) - 1) * var(--sosc-gap)) / var(--sosc-pv));
	margin-right: var(--sosc-gap);
}

.sosc--equal .swiper-wrapper { align-items: stretch; }
.sosc--equal .swiper-slide { height: auto; display: flex; }
.sosc--equal .sosc-card { flex: 1 1 auto; }

/* Card */
.sosc-card {
	display: flex;
	flex-direction: column;
	width: 100%;
	background: var(--sosc-card-bg, #fff);
	padding: var(--sosc-pad) var(--sosc-pad) 0;
	text-align: center;
	color: var(--sosc-text, #333);
	font-family: var(--sosc-font, inherit);
	font-size: 15px;
	line-height: 1.5;
}
.sosc--shadow .sosc-card { box-shadow: 0 2px 16px rgba(0, 0, 0, .07); }

.sosc-card__media {
	display: block;
	aspect-ratio: var(--sosc-ratio, 16 / 9);
	overflow: hidden;
}
.sosc-card__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sosc-card__body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	padding: 20px 4px 24px;
}

/* Reset theme (Divi) heading and paragraph spacing */
.sosc .sosc-card p,
.sosc .sosc-card .sosc-card__title { padding: 0; }

.sosc .sosc-card .sosc-card__title {
	margin: 0 0 12px;
	font-family: inherit;
	font-size: var(--sosc-title-size-m, 26px) !important;
	font-weight: var(--sosc-title-weight, 400) !important;
	line-height: var(--sosc-title-lh, 1.25) !important;
	letter-spacing: normal;
	text-transform: none;
	color: var(--sosc-title, #222);
}
@media (min-width: 768px)  { .sosc .sosc-card .sosc-card__title { font-size: var(--sosc-title-size-t, 26px) !important; } }
@media (min-width: 1025px) { .sosc .sosc-card .sosc-card__title { font-size: var(--sosc-title-size, 26px) !important; } }
.sosc .sosc-card .sosc-card__title a { color: var(--sosc-title, #222) !important; font: inherit; text-decoration: none; }
.sosc .sosc-card .sosc-card__title a:hover { opacity: .8; }

.sosc .sosc-card .sosc-card__location {
	margin: 0 0 16px;
	font-size: 1.15em;
	color: var(--sosc-title, #222);
}

.sosc-card__divider {
	width: 100%;
	height: 1px;
	margin: 0 0 16px;
	border: 0;
	background: linear-gradient(90deg, transparent, rgba(0, 0, 0, .14) 20%, rgba(0, 0, 0, .14) 80%, transparent);
}

.sosc .sosc-card .sosc-card__tagline { margin: 0 0 2px; }
.sosc .sosc-card .sosc-card__price { margin: 0; }
.sosc-card__price-label { display: block; }
.sosc-card__price-value { font-weight: 700; color: var(--sosc-title, #222); }

.sosc .sosc-card a.sosc-card__button {
	display: block;
	margin: 0 0 var(--sosc-pad);
	padding: 14px 16px;
	background: var(--sosc-btn-bg, #217b8f);
	color: var(--sosc-btn, #fff) !important;
	font-weight: 600;
	letter-spacing: .02em;
	text-decoration: none;
	transition: filter .2s ease;
}
.sosc .sosc-card a.sosc-card__button:hover,
.sosc .sosc-card a.sosc-card__button:focus { color: var(--sosc-btn, #fff) !important; filter: brightness(.92); }

.sosc-sr {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Arrows */
.sosc__nav {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	margin-top: -26px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--sosc-btn-bg, #217b8f);
	color: var(--sosc-btn, #fff);
	cursor: pointer;
	transition: opacity .2s ease;
}
.sosc__nav--prev { left: 0; }
.sosc__nav--next { right: 0; }
.sosc__nav svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.sosc__nav.swiper-button-disabled { opacity: .35; cursor: default; }
.sosc__nav.swiper-button-lock { display: none; }

/* Dots */
.sosc__dots { display: flex; justify-content: center; gap: 8px; }
.sosc__dots.swiper-pagination-lock { display: none; }
.sosc__dots .swiper-pagination-bullet {
	width: 9px; height: 9px;
	margin: 0 !important;
	background: var(--sosc-btn-bg, #217b8f);
	opacity: .35;
}
.sosc__dots .swiper-pagination-bullet-active { opacity: 1; }

.sosc a:focus-visible,
.sosc button:focus-visible,
.sosc__dots .swiper-pagination-bullet:focus-visible {
	outline: 2px solid var(--sosc-btn-bg, #217b8f);
	outline-offset: 2px;
}
