/* Deals page (page-deals.php / page-ofertas.php). Loaded conditionally. */

.sss-deals-hero {
	scroll-margin-top: 60px;
	background: var(--sss-cloud);
	border-bottom: var(--sss-border-width) solid var(--sss-line);
}

.sss-deals-hero__inner {
	max-width: var(--sss-content-max);
	margin-inline: auto;
	text-align: center;
	padding-block: 88px 80px;
}

.sss-deals-hero__inner .sss-lede {
	margin-inline: auto;
	font-size: 1.1875rem;
	line-height: 1.6;
}

/* Packages — the same three configurations shown on the Services page
   (Secure / Smart / Complete), reused here as $content['services_page']
   so the two pages can't drift out of sync. Tinted so the page doesn't
   open with two white sections back to back (hero, then this). */
.sss-deals-packages {
	padding-block: var(--sss-section-standard);
	background: var(--sss-cloud);
}

.sss-deals-packages__intro {
	max-width: 640px;
	margin-bottom: var(--sss-space-6);
}

.sss-deals-packages__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--sss-space-5);
	list-style: none;
	margin: 0;
	padding: 0;
}

.sss-deals-packages__card {
	display: flex;
	flex-direction: column;
	background: var(--sss-white);
	border: 1px solid var(--sss-line);
	border-radius: var(--sss-radius-md);
	overflow: hidden;
	transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.sss-deals-packages__card:hover {
	border-color: var(--sss-blue);
	box-shadow: var(--sss-shadow-md);
	transform: translateY(-3px);
}

.sss-deals-packages__media {
	background: var(--sss-cloud);
	border-bottom: 1px solid var(--sss-line);
}

.sss-deals-packages__media img {
	width: 100%;
	aspect-ratio: 2 / 1;
	object-fit: contain;
	display: block;
}

.sss-deals-packages__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: var(--sss-space-4) var(--sss-space-4) var(--sss-space-5);
}

.sss-deals-packages__line {
	color: var(--sss-slate);
	font-size: 0.9375rem;
	line-height: 1.5;
}

.sss-deals-packages__body .sss-config__features {
	margin-top: var(--sss-space-3);
}

.sss-deals-packages__body .sss-config__features li {
	font-size: 0.9375rem;
}

.sss-deals-packages__link {
	margin-top: auto;
	padding-top: var(--sss-space-3);
	font-size: 0.9375rem;
}

/* "More ways to save" intro — no companion promo card (removed per client
   direction), so this reads the same as .sss-deals-packages__intro above:
   a left-aligned block capped at a reading-friendly width rather than
   stretched across the full section. */
.sss-deals-more__intro {
	max-width: 640px;
	margin-bottom: var(--sss-space-6);
}

/* More ways to save — 3 additional offer categories, each with its own
   real product/category photo, short original description and a text
   link (not a phone-number button) since these point to different next
   steps (call, or the Business Security page). Dark section (same navy
   used by the homepage's .sss-solutions) per client direction — the white
   item cards read as elevated surfaces against it. */
.sss-deals-more {
	padding-block: var(--sss-section-standard);
	background: var(--sss-navy);
}

.sss-deals-more h2 {
	color: var(--sss-white);
}

.sss-deals-more__intro .sss-lede {
	color: var(--sss-cloud);
}

.sss-deals-more__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--sss-space-5);
	list-style: none;
	margin: 0;
	padding: 0;
}

.sss-deals-more__card {
	display: flex;
	flex-direction: column;
	background: var(--sss-white);
	border: 1px solid var(--sss-line);
	border-radius: var(--sss-radius-md);
	overflow: hidden;
	transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.sss-deals-more__card:hover {
	border-color: var(--sss-blue);
	box-shadow: var(--sss-shadow-md);
	transform: translateY(-3px);
}

.sss-deals-more__media {
	background: var(--sss-cloud);
	padding: var(--sss-space-4);
}

.sss-deals-more__media img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	display: block;
}

.sss-deals-more__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: var(--sss-space-4) var(--sss-space-4) var(--sss-space-5);
	border-top: 1px solid var(--sss-line);
}

.sss-deals-more__title {
	font-size: 1.1875rem;
	margin: var(--sss-space-2) 0 var(--sss-space-2);
}

.sss-deals-more__desc {
	color: var(--sss-slate);
	font-size: 0.9375rem;
	line-height: 1.5;
}

.sss-deals-more__link {
	margin-top: auto;
	padding-top: var(--sss-space-3);
	font-size: 0.9375rem;
}

.sss-deals-steps {
	padding-block: var(--sss-section-standard);
	text-align: center;
}

.sss-deals-steps h2 {
	max-width: 32ch;
	margin-inline: auto;
}

/* Side by side (client direction) — three columns instead of the previous
   vertically-stacked, divider-separated list. */
.sss-deals-steps__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--sss-space-6);
	margin: var(--sss-space-5) auto 0;
	padding: 0;
	list-style: none;
	max-width: var(--sss-content-max);
}

/* Divider as a centered pseudo-element rather than a border-left on the
   item: a border-left sits flush against the item's own edge, so the full
   column gap ends up as empty space on ONE side of the line only — the
   line then reads as off-center, hugging column 2/3's text instead of
   sitting evenly between columns. Centering it in the gap with a negative
   offset (half the gap) fixes that regardless of the item's own padding. */
.sss-deals-steps__item {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--sss-space-3);
	padding-block: var(--sss-space-3);
}

.sss-deals-steps__item:not(:first-child)::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: calc(var(--sss-space-6) / -2);
	width: 1px;
	background: var(--sss-line);
}

.sss-deals-steps__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(23, 107, 255, 0.08);
	color: var(--sss-blue);
}

.sss-deals-steps__body {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
}

/* min-height reserves space for two lines regardless of whether a given
   step's title actually wraps — otherwise "Confirm eligibility" (one line)
   sits higher than "Call a local specialist" (two lines) and the
   description text below starts at a different height in each column,
   reading as misaligned. */
.sss-deals-steps__title {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 2.6em;
	font-family: var(--sss-font-heading);
	font-weight: 600;
	font-size: 1.0625rem;
	line-height: 1.3;
	color: var(--sss-ink);
}

.sss-deals-steps__text {
	color: var(--sss-slate);
	font-size: 0.9375rem;
	line-height: 1.5;
}

.sss-deals-cta {
	padding-block: 96px 88px;
}

/* .sss-final-cta (home.css) already supplies the photo background, dark
   overlay, white h2 and cloud-colored p — this restyles the disclaimer for
   legibility on the dark photo. Widened per client direction (was 640px,
   then 880px — still read as compressed against the full-width dark band
   behind it, so this also loosens the inherited 60ch cap on the body
   paragraph and the disclaimer below). */
.sss-deals-cta__inner {
	max-width: 1100px;
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.sss-deals-cta__inner p {
	max-width: 80ch;
}

.sss-deals-cta .sss-btn {
	margin-top: var(--sss-space-2);
}

.sss-deals-disclaimer {
	max-width: 80ch;
	margin-top: var(--sss-space-5);
	font-size: 0.8125rem;
	color: var(--sss-cloud);
	opacity: 0.75;
	line-height: 1.5;
}

@media (max-width: 1023px) {
	.sss-deals-packages__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sss-deals-more__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.sss-deals-hero__inner {
		padding-block: 56px 56px;
	}

	.sss-deals-cta {
		padding-block: 64px 56px;
	}

	.sss-deals-packages__grid {
		grid-template-columns: 1fr;
	}

	.sss-deals-more__grid {
		grid-template-columns: 1fr;
	}

	/* Drop the representative category photo on these cards on mobile —
	   title + description carries the card fine without it, and it kept
	   three cards' worth of images stacked full-width, adding real scroll
	   length for a photo that's illustrative, not a specific product. */
	.sss-deals-more__media {
		display: none;
	}

	.sss-deals-more__body {
		border-top: none;
		align-items: center;
		text-align: center;
	}

	.sss-deals-steps__list {
		grid-template-columns: 1fr;
		gap: 0;
		max-width: 480px;
	}

	.sss-deals-steps__item {
		border-top: 1px solid var(--sss-line);
		padding-block: var(--sss-space-5);
	}

	.sss-deals-steps__item:first-child {
		border-top: none;
	}

	.sss-deals-steps__item::before {
		display: none;
	}
}
