/* =====================================================
   SPD Glass Core — widget styles
   ===================================================== */

/* ---------- shared media effects ---------- */
.spd-slide-media,
.spd-service__media,
.spd-about-media {
	overflow: hidden;
}

.spd-slide-media img,
.spd-service__media img,
.spd-about-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s cubic-bezier(.22,.61,.36,1), filter .5s ease;
	will-change: transform;
}

.spd-media-zoom-in .spd-slide-inner:hover .spd-slide-media img,
.spd-media-zoom-in.spd-service:hover .spd-service__media img,
.spd-hover-zoom-in:hover .spd-about-media img {
	transform: scale(var(--spd-media-scale, 1.08));
}

.spd-media-zoom-out .spd-slide-media img,
.spd-media-zoom-out .spd-service__media img,
.spd-hover-zoom-out .spd-about-media img {
	transform: scale(var(--spd-media-scale, 1.08));
}

.spd-media-zoom-out .spd-slide-inner:hover .spd-slide-media img,
.spd-media-zoom-out.spd-service:hover .spd-service__media img,
.spd-hover-zoom-out:hover .spd-about-media img {
	transform: scale(1);
}

.spd-media-pan .spd-slide-inner:hover .spd-slide-media img,
.spd-media-pan.spd-service:hover .spd-service__media img {
	transform: scale(1.12) translateX(-3%);
}

.spd-media-tilt .spd-slide-inner:hover .spd-slide-media img {
	transform: scale(1.1) rotate(2deg);
}

.spd-media-grayscale .spd-slide-media img,
.spd-media-grayscale .spd-service__media img,
.spd-hover-grayscale .spd-about-media img {
	filter: grayscale(100%);
}

.spd-media-grayscale .spd-slide-inner:hover .spd-slide-media img,
.spd-media-grayscale.spd-service:hover .spd-service__media img,
.spd-hover-grayscale:hover .spd-about-media img {
	filter: grayscale(0);
}

/* shine sweep */
.spd-media-shine .spd-service__media:before,
.spd-hover-shine .spd-about-media:before {
	content: "";
	position: absolute;
	top: 0;
	left: -75%;
	z-index: 3;
	width: 50%;
	height: 100%;
	background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.35) 100%);
	transform: skewX(-25deg);
	pointer-events: none;
}

.spd-media-shine.spd-service:hover .spd-service__media:before,
.spd-hover-shine:hover .spd-about-media:before {
	animation: spdShine .95s ease;
}

@keyframes spdShine {
	100% { left: 125%; }
}

/* =====================================================
   1. THUMBNAIL SLIDER
   ===================================================== */
.spd-slider-wrap {
	position: relative;
	--spd-anim-duration: .8s;
	--spd-anim-delay: .15s;
}

.spd-slider-wrap .spd-main-slider {
	overflow: hidden;
}

.spd-slider-wrap .swiper-slide {
	height: auto;
}

.spd-slide-inner {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	height: 520px;
	overflow: hidden;
	border-radius: 20px;
	text-decoration: none;
	isolation: isolate;
}

.spd-slide-media {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.spd-slide-overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	transition: opacity .45s ease, background .45s ease, transform .45s ease;
}

.spd-slide-content {
	position: relative;
	z-index: 2;
	padding: 35px;
	color: #fff;
}

.spd-slide-title {
	margin: 0 0 12px;
	color: #fff;
}

.spd-slide-title a {
	color: inherit;
	text-decoration: none;
}

.spd-slide-desc {
	color: rgba(255,255,255,.85);
	line-height: 1.6;
}

.spd-slide-btn {
	position: absolute;
	right: 25px;
	bottom: 25px;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 62px;
	height: 62px;
	border-radius: 50%;
	background: #D6001C;
	color: #fff;
	font-size: 20px;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .35s ease, color .35s ease, transform .35s ease, box-shadow .35s ease;
}

.spd-slide-btn i,
.spd-slide-btn svg,
.spd-service__btn i,
.spd-service__btn svg {
	transition: transform .35s ease;
}

.spd-slide-btn svg,
.spd-service__btn svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

/* ---------- overlay styles (shared naming) ---------- */
.spd-overlay-solid .spd-slide-overlay,
.spd-overlay-solid .spd-service__overlay {
	background: rgba(0,0,0,.45);
}

.spd-overlay-gradient-bottom .spd-slide-overlay,
.spd-overlay-gradient-bottom .spd-service__overlay {
	background: linear-gradient(180deg, rgba(0,0,0,0) 32%, rgba(0,0,0,.55) 68%, rgba(0,0,0,.88) 100%);
}

.spd-overlay-gradient-full .spd-slide-overlay,
.spd-overlay-gradient-full .spd-service__overlay {
	background: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.8) 100%);
}

.spd-overlay-diagonal .spd-slide-overlay,
.spd-overlay-diagonal .spd-service__overlay {
	background: linear-gradient(135deg, rgba(214,0,28,.85) 0%, rgba(214,0,28,0) 65%);
	transform: translate(-25%, -25%);
	opacity: 0;
}

.spd-overlay-diagonal .spd-slide-inner:hover .spd-slide-overlay,
.spd-overlay-diagonal.spd-service:hover .spd-service__overlay {
	transform: translate(0, 0);
	opacity: 1;
}

.spd-overlay-frame .spd-slide-overlay:after,
.spd-overlay-frame .spd-service__overlay:after {
	content: "";
	position: absolute;
	inset: 18px;
	border: 1px solid #fff;
	opacity: 0;
	transform: scale(1.06);
	transition: opacity .4s ease, transform .4s ease;
}

.spd-overlay-frame .spd-slide-inner:hover .spd-slide-overlay:after,
.spd-overlay-frame.spd-service:hover .spd-service__overlay:after {
	opacity: 1;
	transform: scale(1);
}

/* ---------- description reveal (slider) ---------- */
.spd-reveal-hover .spd-slide-desc {
	opacity: 0;
	max-height: 0;
	overflow: hidden;
	transform: translateY(18px);
	transition: opacity .45s ease, transform .45s ease, max-height .45s ease;
}

.spd-reveal-hover .spd-slide-inner:hover .spd-slide-desc {
	opacity: 1;
	max-height: 320px;
	transform: none;
}

.spd-reveal-active .spd-slide-desc {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .5s ease, transform .5s ease;
}

.spd-reveal-active .swiper-slide-active .spd-slide-desc {
	opacity: 1;
	transform: none;
}

/* ---------- content entrance animation ---------- */
.spd-slider-wrap:not(.spd-anim-none) .swiper-slide-active .spd-slide-content > *,
.spd-slider-wrap:not(.spd-anim-none) .swiper-slide-active .spd-service__content > * {
	animation-duration: var(--spd-anim-duration, .8s);
	animation-fill-mode: both;
	animation-timing-function: cubic-bezier(.22,.61,.36,1);
}

.spd-slider-wrap:not(.spd-anim-none) .swiper-slide-active .spd-slide-content > *:nth-child(2),
.spd-slider-wrap:not(.spd-anim-none) .swiper-slide-active .spd-service__content > *:nth-child(2) {
	animation-delay: var(--spd-anim-delay, .15s);
}

.spd-slider-wrap:not(.spd-anim-none) .swiper-slide-active .spd-slide-content > *:nth-child(3),
.spd-slider-wrap:not(.spd-anim-none) .swiper-slide-active .spd-service__content > *:nth-child(3) {
	animation-delay: calc(var(--spd-anim-delay, .15s) * 2);
}

.spd-anim-fade-up .swiper-slide-active .spd-slide-content > *,
.spd-anim-fade-up .swiper-slide-active .spd-service__content > *   { animation-name: spdFadeUp; }
.spd-anim-fade-in .swiper-slide-active .spd-slide-content > *,
.spd-anim-fade-in .swiper-slide-active .spd-service__content > *   { animation-name: spdFadeIn; }
.spd-anim-slide-right .swiper-slide-active .spd-slide-content > *,
.spd-anim-slide-right .swiper-slide-active .spd-service__content > * { animation-name: spdSlideRight; }
.spd-anim-zoom-in .swiper-slide-active .spd-slide-content > *,
.spd-anim-zoom-in .swiper-slide-active .spd-service__content > *   { animation-name: spdZoomIn; }
.spd-anim-blur-in .swiper-slide-active .spd-slide-content > *,
.spd-anim-blur-in .swiper-slide-active .spd-service__content > *   { animation-name: spdBlurIn; }

@keyframes spdFadeUp     { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: none; } }
@keyframes spdFadeIn     { from { opacity: 0; } to { opacity: 1; } }
@keyframes spdSlideRight { from { opacity: 0; transform: translateX(-45px); } to { opacity: 1; transform: none; } }
@keyframes spdZoomIn     { from { opacity: 0; transform: scale(.88); } to { opacity: 1; transform: none; } }
@keyframes spdBlurIn     { from { opacity: 0; filter: blur(12px); } to { opacity: 1; filter: blur(0); } }

/* ---------- arrows ---------- */
.spd-arrows {
	display: flex;
	align-items: center;
	gap: 12px;
}

.spd-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255,255,255,.15);
	color: #fff;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	transition: background-color .3s ease, color .3s ease, border-color .3s ease, transform .3s ease;
}

.spd-arrow svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

.spd-arrow.swiper-button-disabled {
	opacity: .4;
	cursor: default;
}

.spd-arrows-top-right .spd-arrows {
	justify-content: flex-end;
	margin-bottom: 25px;
}

.spd-arrows-top-left .spd-arrows {
	justify-content: flex-start;
	margin-bottom: 25px;
}

.spd-arrows-bottom .spd-arrows {
	justify-content: center;
	margin-top: 30px;
}

.spd-arrows-middle .spd-arrows {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	z-index: 5;
	justify-content: space-between;
	transform: translateY(-50%);
	pointer-events: none;
}

.spd-arrows-middle .spd-arrow {
	pointer-events: auto;
}

/* ---------- pagination ---------- */
.spd-slider-dots {
	position: relative;
	margin-top: 25px;
	text-align: center;
}

.spd-slider-dots .swiper-pagination-bullet {
	width: 10px;
	height: 10px;
	margin: 0 6px;
	background: rgba(255,255,255,.4);
	opacity: 1;
	transition: background-color .3s ease, transform .3s ease;
}

.spd-slider-dots .swiper-pagination-bullet-active {
	background: #fff;
	transform: scale(1.25);
}

/* ---------- thumbnails ---------- */
.spd-slider-thumbs {
	margin-top: 20px;
	overflow: hidden;
}

.spd-slider-thumbs .swiper-slide {
	cursor: pointer;
}

.spd-thumb-item {
	position: relative;
	height: 90px;
	overflow: hidden;
	border: 2px solid transparent;
	border-radius: 10px;
	opacity: .5;
	transition: opacity .35s ease, border-color .35s ease, transform .35s ease;
}

.spd-thumb-item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.spd-slider-thumbs .swiper-slide-thumb-active .spd-thumb-item {
	opacity: 1;
	border-color: #D6001C;
}

/* =====================================================
   2. ABOUT IMAGE BLOCK
   ===================================================== */
.spd-about-image {
	position: relative;
	display: inline-block;
	width: 100%;
	--spd-badge-spin: 18s;
}

.spd-about-media {
	position: relative;
	display: block;
	width: 100%;
	height: 520px;
	overflow: hidden;
	text-decoration: none;
}

.spd-shape-curve-tr .spd-about-media { border-radius: 0 200px 0 0; }
.spd-shape-curve-tl .spd-about-media { border-radius: 200px 0 0 0; }
.spd-shape-curve-br .spd-about-media { border-radius: 0 0 200px 0; }
.spd-shape-blob .spd-about-media     { border-radius: 200px 30px 200px 30px; }

.spd-about-badge {
	position: absolute;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--spd-badge-size, 190px);
	height: var(--spd-badge-size, 190px);
	border-radius: 50%;
	background: #D6001C;
	text-align: center;
	--spd-badge-size: 190px;
	--spd-badge-x: -60px;
	--spd-badge-y: 60px;
}

.spd-badge-top-left     { }
.spd-badge-top-right    { }

.spd-badge-top-left .spd-about-badge,
.spd-badge-bottom-left .spd-about-badge,
.spd-badge-middle-left .spd-about-badge {
	left: 0;
	transform: translateX(var(--spd-badge-x));
}

.spd-badge-top-right .spd-about-badge,
.spd-badge-bottom-right .spd-about-badge,
.spd-badge-middle-right .spd-about-badge {
	right: 0;
	transform: translateX(calc(var(--spd-badge-x) * -1));
}

.spd-badge-top-left .spd-about-badge,
.spd-badge-top-right .spd-about-badge {
	top: var(--spd-badge-y);
}

.spd-badge-bottom-left .spd-about-badge,
.spd-badge-bottom-right .spd-about-badge {
	bottom: var(--spd-badge-y);
}

.spd-badge-middle-left .spd-about-badge,
.spd-badge-middle-right .spd-about-badge {
	top: 50%;
	margin-top: -85px;
}

.spd-badge-inner {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

/* gold disc behind the number */
.spd-badge-has-inner .spd-badge-inner {
	width: var(--spd-inner-size, 58%);
	height: var(--spd-inner-size, 58%);
	border-radius: 50%;
	background: linear-gradient(135deg, #F6C852 0%, #E7A31D 100%);
}

.spd-badge-number {
	display: inline-block;
	color: #fff;
	font-size: calc(var(--spd-badge-size, 190px) * .26);
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}

.spd-badge-suffix {
	font-size: .82em;
}

.spd-badge-label {
	display: block;
	margin-top: 6px;
	max-width: 110px;
	color: #fff;
	font-size: 12px;
	line-height: 1.35;
}

.spd-badge-curve {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
}

.spd-badge-curve text {
	fill: #fff;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: capitalize;
}

.spd-badge-spin .spd-badge-curve {
	animation: spdBadgeSpin var(--spd-badge-spin, 18s) linear infinite;
	transform-origin: 50% 50%;
}

@keyframes spdBadgeSpin {
	to { transform: rotate(360deg); }
}

/* =====================================================
   3. SINGLE SERVICE BLOCK
   ===================================================== */
.spd-service {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	height: 520px;
	overflow: hidden;
	border-radius: 20px;
	text-decoration: none;
	isolation: isolate;
	transition: transform .4s ease, box-shadow .4s ease, border-color .4s ease;
	--spd-reveal-speed: .45s;
	--spd-btn-x: 25px;
	--spd-btn-y: 25px;
}

.spd-service__media {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.spd-service__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	transition: opacity .45s ease, background .45s ease, transform .45s ease;
}

.spd-service__content {
	position: relative;
	z-index: 2;
	padding: 35px;
	color: #fff;
	transition: transform var(--spd-reveal-speed, .45s) cubic-bezier(.22,.61,.36,1), background var(--spd-reveal-speed, .45s) ease;
}

.spd-service__title {
	margin: 0 0 14px;
	color: #fff;
	font-size: 28px;
	font-weight: 700;
	line-height: 1.25;
}

.spd-service__title a {
	color: inherit;
	text-decoration: none;
}

.spd-service__desc {
	color: rgba(255,255,255,.88);
	font-size: 16px;
	line-height: 1.6;
}

.spd-service__desc-wrap {
	transition: max-height var(--spd-reveal-speed, .45s) cubic-bezier(.22,.61,.36,1),
		opacity var(--spd-reveal-speed, .45s) ease,
		transform var(--spd-reveal-speed, .45s) cubic-bezier(.22,.61,.36,1);
}

/* reveal — slide up */
.spd-reveal-slide-up .spd-service__desc-wrap {
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	transform: translateY(22px);
}

.spd-reveal-slide-up:hover .spd-service__desc-wrap {
	max-height: 340px;
	opacity: 1;
	transform: none;
}

/* reveal — fade */
.spd-reveal-fade .spd-service__desc-wrap {
	opacity: 0;
}

.spd-reveal-fade:hover .spd-service__desc-wrap {
	opacity: 1;
}

/* reveal — expand height only */
.spd-reveal-expand .spd-service__desc-wrap {
	max-height: 0;
	overflow: hidden;
}

.spd-reveal-expand:hover .spd-service__desc-wrap {
	max-height: 340px;
}

/* reveal — push: description sits below the fold and pushes up on hover */
.spd-reveal-push .spd-service__content {
	transform: translateY(calc(100% - var(--spd-push-visible, 90px)));
}

.spd-reveal-push:hover .spd-service__content {
	transform: translateY(0);
}

.spd-service__btn {
	position: absolute;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 62px;
	height: 62px;
	border-radius: 50%;
	background: #D6001C;
	color: #fff;
	font-size: 20px;
	text-decoration: none;
	transition: background-color .35s ease, color .35s ease, transform .35s ease, box-shadow .35s ease;
}

.spd-btn-bottom-right .spd-service__btn { right: var(--spd-btn-x, 25px); bottom: var(--spd-btn-y, 25px); }
.spd-btn-bottom-left  .spd-service__btn { left: var(--spd-btn-x, 25px);  bottom: var(--spd-btn-y, 25px); }
.spd-btn-top-right    .spd-service__btn { right: var(--spd-btn-x, 25px); top: var(--spd-btn-y, 25px); }
.spd-btn-top-left     .spd-service__btn { left: var(--spd-btn-x, 25px);  top: var(--spd-btn-y, 25px); }

.spd-btn-inline .spd-service__btn {
	position: relative;
	margin-top: 20px;
}

/* =====================================================
   Responsive
   ===================================================== */
@media (max-width: 1024px) {
	.spd-about-media { height: 420px; }
}

@media (max-width: 767px) {
	.spd-slide-inner,
	.spd-service { height: 420px; }
	.spd-slide-content,
	.spd-service__content { padding: 25px; }
	.spd-about-media { height: 340px; }
	.spd-arrow { width: 44px; height: 44px; font-size: 15px; }
}

/* =====================================================
   4. HERO THUMBNAIL SLIDER
   ===================================================== */
.spd-hero-slider {
	position: relative;
	--spd-media-duration: 10s;
	--spd-thumbs-gap: 14px;
	--spd-thumbs-x: 0px;
	--spd-thumbs-y: 60px;
}

.spd-hero-slider .spd-main-slider {
	overflow: hidden;
}

.spd-hero-slide {
	position: relative;
	display: flex;
	align-items: stretch;
	width: 100%;
	height: 780px;
	overflow: hidden;
}

.spd-hero-media {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
}

.spd-hero-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.spd-hero-overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
}

.spd-hero-overlay-wedge .spd-hero-overlay {
	background: rgba(0,0,0,.68);
	-webkit-clip-path: polygon(0 0, var(--spd-wedge-top, 76%) 0, var(--spd-wedge-bottom, 38%) 100%, 0 100%);
	clip-path: polygon(0 0, var(--spd-wedge-top, 76%) 0, var(--spd-wedge-bottom, 38%) 100%, 0 100%);
}

.spd-hero-overlay-solid .spd-hero-overlay {
	background: rgba(0,0,0,.4);
}

.spd-hero-overlay-gradient-left .spd-hero-overlay {
	background: linear-gradient(90deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.55) 40%, rgba(0,0,0,0) 78%);
}

.spd-hero-overlay-gradient-bottom .spd-hero-overlay {
	background: linear-gradient(0deg, rgba(0,0,0,.8) 0%, rgba(0,0,0,0) 70%);
}

.spd-hero-overlay-gradient-full .spd-hero-overlay {
	background: linear-gradient(120deg, rgba(0,0,0,.75) 0%, rgba(0,0,0,.35) 60%, rgba(0,0,0,.6) 100%);
}

.spd-hero-overlay-diagonal .spd-hero-overlay {
	background: linear-gradient(115deg, rgba(0,0,0,.85) 0%, rgba(0,0,0,.5) 45%, rgba(0,0,0,0) 72%);
}

/* background motion — runs on the active slide only */
.spd-hero-motion-kenburns .swiper-slide-active .spd-hero-media img {
	animation: spdKenBurns var(--spd-media-duration, 10s) ease-out forwards;
}

.spd-hero-motion-pan .swiper-slide-active .spd-hero-media img {
	animation: spdHeroPan var(--spd-media-duration, 10s) ease-out forwards;
}

.spd-hero-motion-zoom-out .swiper-slide-active .spd-hero-media img {
	animation: spdHeroZoomOut var(--spd-media-duration, 10s) ease-out forwards;
}

@keyframes spdKenBurns   { from { transform: scale(1); } to { transform: scale(1.14); } }
@keyframes spdHeroPan    { from { transform: scale(1.14) translateX(2%); } to { transform: scale(1.14) translateX(-2%); } }
@keyframes spdHeroZoomOut{ from { transform: scale(1.16); } to { transform: scale(1); } }

/* layout */
.spd-hero-inner {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

.spd-hero-content {
	max-width: 620px;
	color: #fff;
}

.spd-hero-subtitle {
	display: inline-block;
	margin-bottom: 18px;
	color: #F5B301;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.4;
}

.spd-hero-title {
	margin: 0 0 22px;
	color: #fff;
	font-size: 68px;
	font-weight: 800;
	line-height: 1.1;
}

.spd-hero-desc {
	max-width: 470px;
	margin-bottom: 35px;
	color: rgba(255,255,255,.9);
	font-size: 17px;
	line-height: 1.7;
}

.spd-hero-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 35px;
}

.spd-hero-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 16px 34px;
	border-radius: 50px;
	background: #D6001C;
	color: #fff;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	transition: background-color .3s ease, color .3s ease, border-color .3s ease, transform .3s ease, box-shadow .3s ease;
}

.spd-hero-btn:hover {
	transform: translateY(-2px);
}

.spd-hero-call {
	display: flex;
	align-items: center;
	gap: 14px;
}

.spd-hero-call-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 54px;
	height: 54px;
	border: 2px solid #F5B301;
	border-radius: 50%;
	background: rgba(255,255,255,.08);
	color: #F5B301;
	font-size: 18px;
	line-height: 1;
}

.spd-hero-call-icon svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

.spd-hero-call-text {
	display: flex;
	flex-direction: column;
	gap: 3px;
	line-height: 1.2;
}

.spd-hero-call-label {
	color: rgba(255,255,255,.75);
	font-size: 13px;
}

.spd-hero-call-number {
	color: #fff;
	font-size: 20px;
	font-weight: 700;
	text-decoration: none;
	transition: color .3s ease;
}

/* content animation on the active slide */
.spd-hero-slider:not(.spd-anim-none) .swiper-slide-active .spd-hero-content > * {
	animation-duration: var(--spd-anim-duration, .9s);
	animation-fill-mode: both;
	animation-timing-function: cubic-bezier(.22,.61,.36,1);
}

.spd-hero-slider:not(.spd-anim-none) .swiper-slide-active .spd-hero-content > *:nth-child(2) { animation-delay: var(--spd-anim-delay, .15s); }
.spd-hero-slider:not(.spd-anim-none) .swiper-slide-active .spd-hero-content > *:nth-child(3) { animation-delay: calc(var(--spd-anim-delay, .15s) * 2); }
.spd-hero-slider:not(.spd-anim-none) .swiper-slide-active .spd-hero-content > *:nth-child(4) { animation-delay: calc(var(--spd-anim-delay, .15s) * 3); }

.spd-hero-slider.spd-anim-fade-up .swiper-slide-active .spd-hero-content > *     { animation-name: spdFadeUp; }
.spd-hero-slider.spd-anim-fade-in .swiper-slide-active .spd-hero-content > *     { animation-name: spdFadeIn; }
.spd-hero-slider.spd-anim-slide-right .swiper-slide-active .spd-hero-content > * { animation-name: spdSlideRight; }
.spd-hero-slider.spd-anim-zoom-in .swiper-slide-active .spd-hero-content > *     { animation-name: spdZoomIn; }
.spd-hero-slider.spd-anim-blur-in .swiper-slide-active .spd-hero-content > *     { animation-name: spdBlurIn; }

/* thumbnail strip */
.spd-hero-thumbs {
	position: absolute;
	z-index: 6;
	width: 275px;
	max-width: calc(100% - 40px);
}

.spd-hero-thumbs .spd-slider-thumbs {
	margin: 0;
	overflow: hidden;
}

.spd-hero-thumbs .swiper-slide {
	width: calc(var(--spd-thumb-size, 74px) + var(--spd-thumbs-gap, 14px));
	display: flex;
	align-items: center;
	justify-content: flex-start;
}

.spd-hero-slider .spd-thumb-item {
	flex: 0 0 auto;
	width: var(--spd-thumb-size, 74px);
	height: var(--spd-thumb-size, 74px);
	overflow: hidden;
	border: 2px solid rgba(255,255,255,.6);
	border-radius: 50%;
	opacity: .75;
	transition: opacity .35s ease, border-color .35s ease, transform .35s ease;
}

.spd-thumbs-shape-rounded .spd-thumb-item { border-radius: 14px; }
.spd-thumbs-shape-square .spd-thumb-item  { border-radius: 0; }

.spd-hero-slider .swiper-slide-thumb-active .spd-thumb-item {
	opacity: 1;
	border-color: #F5B301;
	transform: scale(1.05);
}

/* thumbnail positions */
.spd-thumbs-bottom-left .spd-hero-thumbs {
	left: calc(50% - 600px + 20px + var(--spd-thumbs-x, 0px));
	bottom: var(--spd-thumbs-y, 60px);
}

.spd-thumbs-bottom-center .spd-hero-thumbs {
	left: 50%;
	bottom: var(--spd-thumbs-y, 60px);
	transform: translateX(calc(-50% + var(--spd-thumbs-x, 0px)));
}

.spd-thumbs-bottom-right .spd-hero-thumbs {
	right: calc(50% - 600px + 20px - var(--spd-thumbs-x, 0px));
	bottom: var(--spd-thumbs-y, 60px);
}

.spd-thumbs-middle-right .spd-hero-thumbs {
	right: 40px;
	top: 50%;
	transform: translate(var(--spd-thumbs-x, 0px), calc(-50% + var(--spd-thumbs-y, 0px)));
}

.spd-thumbs-below .spd-hero-thumbs {
	position: relative;
	left: auto;
	right: auto;
	bottom: auto;
	margin: 25px auto 0;
	transform: translateX(var(--spd-thumbs-x, 0px));
}

@media (max-width: 1240px) {
	.spd-thumbs-bottom-left .spd-hero-thumbs  { left: calc(20px + var(--spd-thumbs-x, 0px)); }
	.spd-thumbs-bottom-right .spd-hero-thumbs { right: calc(20px - var(--spd-thumbs-x, 0px)); }
}

/* arrows & dots inside the hero */
.spd-hero-slider.spd-arrows-middle .spd-arrows {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	z-index: 6;
	display: flex;
	justify-content: space-between;
	padding: 0 30px;
	transform: translateY(-50%);
	pointer-events: none;
}

.spd-hero-slider.spd-arrows-middle .spd-arrow {
	pointer-events: auto;
}

.spd-hero-slider.spd-arrows-bottom .spd-arrows {
	position: absolute;
	right: 40px;
	bottom: 60px;
	z-index: 6;
	justify-content: flex-end;
}

.spd-hero-slider .spd-slider-dots {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 30px;
	z-index: 6;
	margin: 0;
}

@media (max-width: 1024px) {
	.spd-hero-slide { height: 620px; }
}

@media (max-width: 767px) {
	.spd-hero-slide { height: 520px; }
	.spd-hero-desc  { margin-bottom: 25px; }
	.spd-hero-actions { gap: 20px; }
	.spd-hero-btn { padding: 13px 26px; }
	.spd-hero-call-icon { width: 44px; height: 44px; font-size: 15px; }
	.spd-hero-thumbs { --spd-thumb-size: 56px; }
	.spd-thumbs-bottom-left .spd-hero-thumbs,
	.spd-thumbs-bottom-right .spd-hero-thumbs { left: 20px; right: auto; }
}


/* service cards used as slides */
.spd-service-slider .swiper-slide {
	height: auto;
	display: flex;
}

.spd-service-slider .spd-service {
	width: 100%;
}

.spd-service-slider .spd-service,
.spd-service-slider .spd-service:hover {
	text-decoration: none;
}


/* edge bleed — slider runs wider than its container */
.spd-bleed-viewport .spd-main-slider {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: 0;
}

.spd-bleed-custom .spd-main-slider {
	max-width: none;
}

/* hover lift / grow on service cards, in the slider or standalone */
.spd-service {
	--spd-lift: 0px;
	--spd-grow: 0px;
}

.spd-service:hover {
	transform: translateY(var(--spd-lift, 0px));
}

.spd-service-slider .swiper-slide {
	align-items: flex-end;
}

.spd-service-slider .spd-service {
	transition: transform .4s ease, box-shadow .4s ease, border-color .4s ease, height .4s ease;
}

.spd-service-slider .spd-service:hover {
	height: calc(var(--spd-card-height, 620px) + var(--spd-grow, 0px));
}


/* pre-init fallback so the editor never shows one blown-up slide */
.spd-slider-wrap .spd-main-slider:not(.swiper-initialized):not(.swiper-container-initialized) {
	overflow: hidden;
}

.spd-slider-wrap .spd-main-slider:not(.swiper-initialized):not(.swiper-container-initialized) .swiper-wrapper {
	display: flex;
	gap: 20px;
}

.spd-image-slider .spd-main-slider:not(.swiper-initialized):not(.swiper-container-initialized) .swiper-slide {
	flex: 0 0 auto;
	width: calc(25% - 18px);
}

.spd-hero-slider .spd-main-slider:not(.swiper-initialized):not(.swiper-container-initialized) .swiper-slide {
	flex: 0 0 auto;
	width: 100%;
}

.spd-hero-slider .spd-main-slider:not(.swiper-initialized):not(.swiper-container-initialized) .swiper-slide + .swiper-slide {
	display: none;
}


/* =====================================================
   5. IMAGE SLIDER (portfolio / gallery)
   ===================================================== */
.spd-image-slider {
	position: relative;
	--spd-gal-speed: .4s;
}

.spd-image-slider .spd-main-slider {
	overflow: hidden;
	min-height: 40px;
}

.spd-image-slider .swiper-slide {
	height: auto;
}

.spd-gal-item {
	position: relative;
	display: block;
	width: 100%;
	height: 364px;
	overflow: hidden;
	text-decoration: none;
	cursor: pointer;
	transition: transform .4s ease, box-shadow .4s ease, border-color .4s ease;
}

.spd-gal-media {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.spd-gal-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s cubic-bezier(.22,.61,.36,1), filter .5s ease;
}

.spd-gal-overlay {
	position: absolute;
	inset: 0;
	z-index: 2;
	background: rgba(214,0,28,.72);
	opacity: 0;
	transition: opacity var(--spd-gal-speed, .4s) ease, background var(--spd-gal-speed, .4s) ease;
}

.spd-gal-icon {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: #fff;
	color: #D6001C;
	font-size: 20px;
	line-height: 1;
	opacity: 0;
	transition: opacity var(--spd-gal-speed, .4s) ease, transform var(--spd-gal-speed, .4s) cubic-bezier(.22,.61,.36,1), background-color .3s ease, color .3s ease;
}

.spd-gal-icon svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

/* icon entrance variants */
.spd-galicon-fade .spd-gal-icon   { transform: translate(-50%, -50%); }
.spd-galicon-zoom .spd-gal-icon   { transform: translate(-50%, -50%) scale(.5); }
.spd-galicon-up .spd-gal-icon     { transform: translate(-50%, -20%); }
.spd-galicon-down .spd-gal-icon   { transform: translate(-50%, -80%); }
.spd-galicon-rotate .spd-gal-icon { transform: translate(-50%, -50%) rotate(-120deg) scale(.6); }

.spd-gal-item:hover .spd-gal-icon {
	opacity: 1;
	transform: translate(-50%, -50%) scale(1) rotate(0deg);
}

.spd-gal-item:hover .spd-gal-overlay {
	opacity: 1;
}

/* image effects reuse the shared modifier classes */
.spd-media-zoom-in .spd-gal-item:hover .spd-gal-media img {
	transform: scale(var(--spd-media-scale, 1.1));
}

.spd-media-zoom-out .spd-gal-media img {
	transform: scale(var(--spd-media-scale, 1.1));
}

.spd-media-zoom-out .spd-gal-item:hover .spd-gal-media img {
	transform: scale(1);
}

.spd-media-pan .spd-gal-item:hover .spd-gal-media img {
	transform: scale(1.12) translateX(-3%);
}

.spd-media-grayscale .spd-gal-media img {
	filter: grayscale(100%);
}

.spd-media-grayscale .spd-gal-item:hover .spd-gal-media img {
	filter: grayscale(0);
}

.spd-media-shine .spd-gal-media:before {
	content: "";
	position: absolute;
	top: 0;
	left: -75%;
	z-index: 3;
	width: 50%;
	height: 100%;
	background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.35) 100%);
	transform: skewX(-25deg);
	pointer-events: none;
}

.spd-media-shine .spd-gal-item:hover .spd-gal-media:before {
	animation: spdShine .95s ease;
}

/* caption */
.spd-gal-caption {
	position: absolute;
	z-index: 3;
	left: 0;
	right: 0;
	display: block;
	color: #fff;
	padding: 16px 18px;
	opacity: 0;
	transition: opacity var(--spd-gal-speed, .4s) ease, transform var(--spd-gal-speed, .4s) ease;
}

.spd-caption-overlay-bottom .spd-gal-caption {
	bottom: 0;
	transform: translateY(12px);
}

.spd-caption-overlay-center .spd-gal-caption {
	top: 50%;
	transform: translateY(calc(-50% + 42px));
	text-align: center;
}

.spd-gal-item:hover .spd-gal-caption {
	opacity: 1;
}

.spd-caption-overlay-bottom .spd-gal-item:hover .spd-gal-caption {
	transform: none;
}

.spd-caption-overlay-center .spd-gal-item:hover .spd-gal-caption {
	transform: translateY(calc(-50% + 42px));
}

.spd-caption-below .spd-gal-caption {
	position: static;
	opacity: 1;
	transform: none;
	color: inherit;
}

.spd-caption-below .spd-gal-item {
	height: auto;
}

.spd-caption-below .spd-gal-media {
	position: relative;
	height: var(--spd-gal-height, 364px);
}

/* arrows sitting over the images */
.spd-image-slider.spd-arrows-middle .spd-arrows {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	z-index: 5;
	display: flex;
	justify-content: space-between;
	padding: 0 10px;
	transform: translateY(-50%);
	pointer-events: none;
}

.spd-image-slider.spd-arrows-middle .spd-arrow {
	pointer-events: auto;
}

.spd-image-slider .spd-slider-dots {
	position: relative;
	margin-top: 25px;
	text-align: center;
}

@media (max-width: 767px) {
	.spd-gal-icon { width: 46px; height: 46px; }
}


/* container essentials, independent of which Swiper CSS is loaded */
.spd-slider-wrap .spd-main-slider,
.spd-slider-wrap .spd-slider-thumbs {
	position: relative;
	z-index: 1;
	display: block;
	overflow: hidden;
	list-style: none;
	padding: 0;
	margin-left: auto;
	margin-right: auto;
}

.spd-slider-wrap .swiper-wrapper {
	position: relative;
	z-index: 1;
	display: flex;
	width: 100%;
	height: 100%;
	box-sizing: content-box;
	transition-property: transform;
}

.spd-slider-wrap .swiper-slide {
	position: relative;
	flex-shrink: 0;
	transition-property: transform;
}

.spd-image-slider .spd-gal-item img {
	min-height: 1px;
}
