/**
 * DESIGN-R Widgets — Styles
 * v2.0.0
 */

/* ==============================
   CTA Widget
   ============================== */

.designr-cta {
	padding: 40px 48px;
	color: #fff;
	font-family: 'Poppins', 'Lato', -apple-system, BlinkMacSystemFont, sans-serif;
}

.designr-cta--horizontal {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
}

.designr-cta--centered {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
}

.designr-cta-bg--navy    { background-color: #0D1835; }
.designr-cta-bg--gradient { background: linear-gradient(173deg, #0D18358F 0%, #000000E3 88%); }
.designr-cta-bg--teal    { background-color: #51A8C5; }

.designr-cta__content { flex: 1; }

.designr-cta__heading {
	font-size: 24px;
	font-weight: 700;
	margin: 0 0 8px 0;
	color: #fff;
	line-height: 1.3;
}

.designr-cta__subtitle {
	font-size: 16px;
	font-weight: 400;
	margin: 0;
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.5;
}

.designr-cta__actions {
	display: flex;
	gap: 12px;
	flex-shrink: 0;
}

.designr-cta__button {
	display: inline-block;
	padding: 14px 32px;
	font-family: 'Poppins', sans-serif;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none !important;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	transition: all 0.2s ease;
	white-space: nowrap;
}

.designr-cta__button--primary {
	background-color: #51A8C5;
	color: #fff !important;
	border: 2px solid #51A8C5;
}

.designr-cta__button--primary:hover {
	background-color: #3d8fa8;
	border-color: #3d8fa8;
	color: #fff !important;
}

.designr-cta__button--secondary {
	background-color: transparent;
	color: #fff !important;
	border: 2px solid rgba(255, 255, 255, 0.6);
}

.designr-cta__button--secondary:hover {
	border-color: #fff;
	color: #fff !important;
}

/* Elementor specificity overrides — CTA */
.elementor-widget-designr-cta .designr-cta__button,
.elementor-widget-designr-cta .designr-cta__button:link,
.elementor-widget-designr-cta .designr-cta__button:visited,
.elementor-widget-designr-cta a.designr-cta__button,
.elementor-widget-designr-cta a.designr-cta__button:link,
.elementor-widget-designr-cta a.designr-cta__button:visited {
	font-family: 'Poppins', sans-serif !important;
	font-weight: 700 !important;
	text-decoration: none !important;
}

.elementor-widget-designr-cta .designr-cta__button--primary,
.elementor-widget-designr-cta .designr-cta__button--primary:link,
.elementor-widget-designr-cta .designr-cta__button--primary:visited,
.elementor-widget-designr-cta a.designr-cta__button--primary,
.elementor-widget-designr-cta a.designr-cta__button--primary:link,
.elementor-widget-designr-cta a.designr-cta__button--primary:visited {
	color: #fff !important;
	background-color: #51A8C5 !important;
}

.elementor-widget-designr-cta .designr-cta__button--primary:hover,
.elementor-widget-designr-cta a.designr-cta__button--primary:hover {
	color: #fff !important;
	background-color: #3d8fa8 !important;
}

.elementor-widget-designr-cta .designr-cta__button--secondary,
.elementor-widget-designr-cta .designr-cta__button--secondary:link,
.elementor-widget-designr-cta .designr-cta__button--secondary:visited,
.elementor-widget-designr-cta a.designr-cta__button--secondary,
.elementor-widget-designr-cta a.designr-cta__button--secondary:link,
.elementor-widget-designr-cta a.designr-cta__button--secondary:visited {
	color: #fff !important;
}

/* ==============================
   Media + Text Widget
   ============================== */

.designr-mt {
	display: flex;
	gap: 48px;
	padding: 60px 48px;
	font-family: 'Poppins', 'Lato', -apple-system, BlinkMacSystemFont, sans-serif;
}

.designr-mt--image-right {
	flex-direction: row-reverse;
}

/* Backgrounds */
.designr-mt-bg--white { background-color: #ffffff; }
.designr-mt-bg--light { background-color: #F5F7FA; }
.designr-mt-bg--navy  { background-color: #0D1835; }
.designr-mt-bg--teal  { background-color: #51A8C5; }

/* Text colors */
.designr-mt--dark  { color: #0D1835; }
.designr-mt--light { color: #ffffff; }

/* Media */
.designr-mt__media {
	flex-shrink: 0;
	overflow: hidden;
}

.designr-mt__image {
	width: 100%;
	height: auto;
	display: block;
}

.designr-mt__image--square {
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.designr-mt__image--wide {
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.designr-mt__image--tall {
	aspect-ratio: 3 / 4;
	object-fit: cover;
}

/* Content */
.designr-mt__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.designr-mt__subheading {
	display: block;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	margin-bottom: 12px;
	opacity: 0.7;
}

.designr-mt__heading {
	font-size: 28px;
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 16px 0;
}

.designr-mt--dark .designr-mt__heading  { color: #0D1835; }
.designr-mt--light .designr-mt__heading { color: #ffffff; }

.designr-mt__body {
	font-size: 16px;
	line-height: 1.7;
	margin-bottom: 20px;
}

.designr-mt__body p {
	margin: 0 0 12px 0;
}

.designr-mt__body p:last-child {
	margin-bottom: 0;
}

/* Feature list */
.designr-mt__features {
	list-style: none;
	padding: 0;
	margin: 0 0 24px 0;
}

.designr-mt__feature {
	position: relative;
	padding-left: 24px;
	margin-bottom: 8px;
	font-size: 15px;
	line-height: 1.5;
}

.designr-mt__feature::before {
	content: '';
	position: absolute;
	left: 0;
	top: 7px;
	width: 8px;
	height: 8px;
	background-color: #51A8C5;
	border-radius: 50%;
}

.designr-mt--light .designr-mt__feature::before {
	background-color: #51A8C5;
}

/* Button */
.designr-mt__button {
	display: inline-block;
	padding: 14px 32px;
	font-family: 'Poppins', sans-serif;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none !important;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	transition: all 0.2s ease;
	white-space: nowrap;
	align-self: flex-start;
	background-color: #51A8C5;
	color: #fff !important;
	border: 2px solid #51A8C5;
	border-radius: 0px;
}

.designr-mt__button:hover {
	background-color: #3d8fa8;
	border-color: #3d8fa8;
	color: #fff !important;
}

/* Dark background button variant */
.designr-mt--light .designr-mt__button {
	background-color: #51A8C5;
	color: #fff !important;
}

/* Elementor specificity overrides — Media+Text */
.elementor-widget-designr-media-text .designr-mt__button,
.elementor-widget-designr-media-text .designr-mt__button:link,
.elementor-widget-designr-media-text .designr-mt__button:visited,
.elementor-widget-designr-media-text a.designr-mt__button,
.elementor-widget-designr-media-text a.designr-mt__button:link,
.elementor-widget-designr-media-text a.designr-mt__button:visited {
	font-family: 'Poppins', sans-serif !important;
	font-weight: 700 !important;
	text-decoration: none !important;
	color: #fff !important;
	background-color: #51A8C5 !important;
}

.elementor-widget-designr-media-text .designr-mt__button:hover,
.elementor-widget-designr-media-text a.designr-mt__button:hover {
	color: #fff !important;
	background-color: #3d8fa8 !important;
}

/* ==============================
   Image Grid Widget
   ============================== */

.designr-ig__tile {
	display: flex;
	align-items: flex-end;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	overflow: hidden;
	position: relative;
	text-decoration: none !important;
	transition: transform 0.3s ease;
}

.designr-ig__tile:hover {
	transform: scale(1.02);
}

/* Overlay styles */
.designr-ig__overlay--gradient::before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 60%;
	background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, transparent 100%);
	pointer-events: none;
}

.designr-ig__overlay--full::before {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(13, 24, 53, 0.4);
	pointer-events: none;
	transition: background 0.3s ease;
}

.designr-ig__overlay--full:hover::before {
	background: rgba(13, 24, 53, 0.25);
}

/* Label */
.designr-ig__label {
	position: relative;
	z-index: 1;
	padding: 16px 20px;
	width: 100%;
}

.designr-ig__sublabel {
	display: block;
	font-family: 'Poppins', sans-serif;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: rgba(255, 255, 255, 0.75);
	margin-bottom: 4px;
}

.designr-ig__title {
	display: block;
	font-family: 'Poppins', sans-serif;
	font-size: 18px;
	font-weight: 700;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* ==============================
   Hero Banner Widget
   ============================== */

.designr-hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	overflow: hidden;
}

.designr-hero__overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	pointer-events: none;
}

.designr-hero__content {
	position: relative;
	z-index: 2;
	width: 100%;
	padding: 60px 30px;
	box-sizing: border-box;
}

.designr-hero__heading {
	font-family: 'Poppins', sans-serif;
	font-weight: 700;
	font-size: 48px;
	line-height: 1.15;
	margin: 0 0 16px;
}

.designr-hero__subheading {
	font-family: 'Poppins', sans-serif;
	font-weight: 400;
	font-size: 22px;
	line-height: 1.4;
	margin: 0 0 16px;
	opacity: 0.9;
}

.designr-hero__body {
	font-size: 17px;
	line-height: 1.6;
	margin: 0 0 28px;
	opacity: 0.85;
}

.designr-hero__button {
	margin-top: 8px;
}

.designr-hero__button:hover {
	opacity: 0.88;
	transform: translateY(-1px);
}

/* ==============================
   Feature Section Widget
   ============================== */

.designr-feat {
	padding: 60px 30px;
	box-sizing: border-box;
}

.designr-feat-bg--white  { background-color: #ffffff; }
.designr-feat-bg--light  { background-color: #F5F5F5; }
.designr-feat-bg--navy   { background-color: #0D1835; }
.designr-feat-bg--teal   { background-color: #51A8C5; }

.designr-feat--dark  { color: #0D1835; }
.designr-feat--light { color: #ffffff; }

.designr-feat__heading {
	font-family: 'Poppins', sans-serif;
	font-weight: 700;
	font-size: 32px;
	line-height: 1.2;
	margin: 0 0 16px;
}

.designr-feat__desc {
	font-size: 17px;
	line-height: 1.6;
	margin: 0 0 32px;
	max-width: 800px;
}

.designr-feat__desc p:last-child {
	margin-bottom: 0;
}

.designr-feat__list {
	display: flex;
	flex-direction: column;
	gap: 24px;
	margin: 0 0 32px;
}

.designr-feat--grid .designr-feat__list {
	flex-direction: row;
	flex-wrap: wrap;
}

.designr-feat--grid .designr-feat__list--cols-2 .designr-feat__item {
	flex: 0 0 calc(50% - 12px);
	max-width: calc(50% - 12px);
}

.designr-feat--grid .designr-feat__list--cols-3 .designr-feat__item {
	flex: 0 0 calc(33.333% - 16px);
	max-width: calc(33.333% - 16px);
}

.designr-feat__item {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.designr-feat__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	font-size: 22px;
	color: #51A8C5;
	background-color: rgba(81, 168, 197, 0.1);
	border-radius: 0px;
	margin-bottom: 4px;
	flex-shrink: 0;
}

.designr-feat--light .designr-feat__icon {
	color: #ffffff;
	background-color: rgba(255, 255, 255, 0.15);
}

.designr-feat__title {
	font-family: 'Poppins', sans-serif;
	font-weight: 700;
	font-size: 18px;
	line-height: 1.3;
	margin: 0;
}

.designr-feat__item-desc {
	font-size: 15px;
	line-height: 1.5;
	margin: 0;
	opacity: 0.85;
}

.designr-feat__button {
	margin-top: 8px;
}

.designr-feat__button:hover {
	opacity: 0.88;
	transform: translateY(-1px);
}

/* ==============================
   Content Block Widget
   ============================== */

.designr-content {
	box-sizing: border-box;
}

.designr-content--pad-small  { padding: 30px; }
.designr-content--pad-medium { padding: 60px 30px; }
.designr-content--pad-large  { padding: 90px 30px; }

.designr-content-bg--white  { background-color: #ffffff; }
.designr-content-bg--light  { background-color: #F5F5F5; }
.designr-content-bg--navy   { background-color: #0D1835; }
.designr-content-bg--teal   { background-color: #51A8C5; }

.designr-content--dark  { color: #0D1835; }
.designr-content--light { color: #ffffff; }

.designr-content__inner {
	box-sizing: border-box;
}

.designr-content__heading {
	font-family: 'Poppins', sans-serif;
	font-weight: 700;
	font-size: 32px;
	line-height: 1.2;
	margin: 0 0 20px;
}

.designr-content__body {
	font-size: 17px;
	line-height: 1.7;
}

.designr-content__body p:last-child {
	margin-bottom: 0;
}

.designr-content__body h3,
.designr-content__body h4 {
	font-family: 'Poppins', sans-serif;
	font-weight: 700;
}

.designr-content__body ul,
.designr-content__body ol {
	padding-left: 24px;
}

.designr-content__body a {
	color: #51A8C5;
	text-decoration: underline;
}

.designr-content--light .designr-content__body a {
	color: #ffffff;
	text-decoration: underline;
}

/* ==============================
   Responsive
   ============================== */

@media (max-width: 768px) {
	/* CTA */
	.designr-cta {
		padding: 32px 24px;
	}

	.designr-cta--horizontal {
		flex-direction: column;
		text-align: center;
	}

	.designr-cta__actions {
		flex-direction: column;
		width: 100%;
	}

	.designr-cta__button {
		text-align: center;
		width: 100%;
	}

	.designr-cta__heading {
		font-size: 20px;
	}

	/* Media + Text */
	.designr-mt {
		flex-direction: column !important;
		padding: 40px 24px;
		gap: 24px;
	}

	.designr-mt__media {
		flex-basis: 100% !important;
		max-width: 100% !important;
	}

	.designr-mt__content {
		flex-basis: 100% !important;
		max-width: 100% !important;
	}

	.designr-mt__heading {
		font-size: 22px;
	}

	.designr-mt__button {
		align-self: stretch;
		text-align: center;
	}

	/* Image Grid */
	.designr-ig {
		grid-template-columns: repeat(2, 1fr) !important;
	}

	.designr-ig__tile {
		grid-column: span 1 !important;
	}

	.designr-ig__title {
		font-size: 14px;
	}

	/* Hero */
	.designr-hero__content {
		padding: 40px 20px;
	}

	.designr-hero__heading {
		font-size: 32px;
	}

	.designr-hero__subheading {
		font-size: 18px;
	}

	.designr-hero__body {
		font-size: 15px;
	}

	/* Feature */
	.designr-feat {
		padding: 40px 20px;
	}

	.designr-feat__heading {
		font-size: 26px;
	}

	.designr-feat--grid .designr-feat__list {
		flex-direction: column;
	}

	.designr-feat--grid .designr-feat__list--cols-2 .designr-feat__item,
	.designr-feat--grid .designr-feat__list--cols-3 .designr-feat__item {
		flex: 0 0 100%;
		max-width: 100%;
	}

	/* Content */
	.designr-content--pad-small  { padding: 20px; }
	.designr-content--pad-medium { padding: 40px 20px; }
	.designr-content--pad-large  { padding: 60px 20px; }

	.designr-content__heading {
		font-size: 26px;
	}

	.designr-content__body {
		font-size: 16px;
	}
}

@media (max-width: 480px) {
	.designr-ig {
		grid-template-columns: 1fr !important;
	}
}
