/* ====================================================================
   STRENGTH App — landing page
   Scroll-driven product layout, restyled to the REPPED brand
   (dark, teal accent, Funnel Display). Tokens from style.css :root.
   ==================================================================== */

.sa {
	/* Page-scoped palette: monochrome canvas, brand highlight on the accents.
	   Uses the same REPPED highlight as the main root files (style.css :root
	   --primary teal) so the app page matches the rest of the site. */
	--primary: #4cb2ba;
	--primary-rgb: 76, 178, 186;
	--primary-light: #72c4cb;
	--primary-hover: #3f9aa1;

	--sa-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--sa-max: 1200px;
	background: var(--bg-primary);
	color: var(--text-primary);
}
.sa * { box-sizing: border-box; }

/* The global stylesheet sets `body { overflow-x: hidden }`, which forces
   `overflow-y` to compute to `auto` and turns <body> into a scroll container.
   That re-parents `position: sticky` to <body> and breaks the pinned phone.
   This sheet only loads on this page, so scope a clip-based override here:
   `clip` clips horizontal overflow WITHOUT creating a scroll container, and
   `visible` keeps vertical scrolling on the viewport — so sticky works again. */
body { overflow-x: clip; overflow-y: visible; }

.sa-wrap { max-width: var(--sa-max); margin: 0 auto; padding: 0 1.5rem; }

.sa-eyebrow {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	color: var(--primary);
	margin-bottom: 1.4rem;
}

/* CTA */
.sa-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	background: #efefef;
	color: #0d0d0d;
	font-weight: 700;
	font-size: 0.95rem;
	padding: 1.05rem 1.9rem;
	border: none;
	border-radius: 999px;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.25s var(--sa-ease), transform 0.25s var(--sa-ease), box-shadow 0.25s var(--sa-ease);
}
.sa-btn:hover { background: #fff; transform: translateY(-2px); box-shadow: 0 14px 34px -10px rgba(var(--primary-rgb), 0.6); }
.sa-btn svg { width: 17px; height: 17px; }
.sa-btn--ghost {
	background: transparent;
	color: var(--text-primary);
	border: 1px solid var(--border-light);
}
.sa-btn--ghost:hover { background: rgba(212,212,212,0.05); }

/* Inline email capture — glassmorphic pill with arrow submit */
.sa-subscribe { width: 100%; max-width: 440px; margin: 0 auto; }
.sa-subscribe__field {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	padding: 0.45rem 0.45rem 0.45rem 1.05rem;
	background: rgba(255,255,255,0.06);
	border: 1px solid rgba(255,255,255,0.14);
	border-radius: 999px;
	-webkit-backdrop-filter: blur(16px) saturate(140%);
	backdrop-filter: blur(16px) saturate(140%);
	box-shadow: 0 14px 44px -18px rgba(0,0,0,0.65), inset 0 1px 0 rgba(255,255,255,0.08);
	transition: border-color 0.25s var(--sa-ease), box-shadow 0.25s var(--sa-ease);
}
.sa-subscribe__field:focus-within {
	border-color: rgba(var(--primary-rgb), 0.65);
	box-shadow: 0 14px 44px -18px rgba(0,0,0,0.65), 0 0 0 3px rgba(var(--primary-rgb), 0.18), inset 0 1px 0 rgba(255,255,255,0.08);
}
.sa-subscribe__mail { width: 19px; height: 19px; flex: 0 0 auto; color: rgba(255,255,255,0.45); }
.sa-subscribe__input {
	flex: 1 1 auto;
	min-width: 0;
	background: transparent;
	border: none;
	outline: none;
	color: #fff;
	font-family: inherit;
	font-size: 1rem;
	padding: 0.6rem 0.1rem;
}
.sa-subscribe__input::placeholder { color: rgba(255,255,255,0.45); }
.sa-subscribe__btn {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border: none;
	border-radius: 50%;
	cursor: pointer;
	color: #fff;
	background: var(--primary);
	transition: background 0.25s var(--sa-ease), transform 0.25s var(--sa-ease), box-shadow 0.25s var(--sa-ease);
}
.sa-subscribe__btn:hover { background: var(--primary-hover); transform: translateY(-1px); box-shadow: 0 10px 26px -8px rgba(var(--primary-rgb), 0.7); }
.sa-subscribe__btn:disabled { opacity: 0.65; cursor: default; transform: none; box-shadow: none; }
.sa-subscribe__btn svg { width: 18px; height: 18px; }
.sa-subscribe__spinner {
	width: 18px; height: 18px;
	border: 2px solid rgba(255,255,255,0.4);
	border-top-color: #fff;
	border-radius: 50%;
	animation: sa-spin 0.7s linear infinite;
}
@keyframes sa-spin { to { transform: rotate(360deg); } }
.sa-subscribe__msg {
	min-height: 1.1em;
	margin: 0.75rem 0.4rem 0;
	font-size: 0.85rem;
	line-height: 1.45;
	color: rgba(255,255,255,0.62);
}
.sa-subscribe__msg.is-error { color: #ff8a73; }
.sa-subscribe__msg.is-success { color: var(--primary-light); }

/* Reveal on scroll */
.sa-reveal { opacity: 0; transform: translateY(30px); transition: opacity 0.9s var(--sa-ease), transform 0.09s var(--sa-ease); }
.sa-reveal.is-in { opacity: 1; transform: none; }
.sa-reveal[data-d="1"] { transition-delay: 0.09s; }
.sa-reveal[data-d="2"] { transition-delay: 0.18s; }
.sa-reveal[data-d="3"] { transition-delay: 0.27s; }

@media (prefers-reduced-motion: reduce) {
	.sa-reveal { opacity: 1; transform: none; transition: none; }
}

/* ============================================================
   1. HERO — full-bleed image, headline anchored low
   ============================================================ */
.sa-hero {
	position: relative;
	min-height: 100vh;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	text-align: center;
	padding: 7rem 1.5rem 5.5rem;
	overflow: hidden;
}
.sa-hero__bg {
	position: absolute;
	top: -5%; bottom: -5%; left: 0; right: 0;
	/* swap this image freely */
	background: url('../images/hero-bg-1.jpg');
	background-repeat: no-repeat;  /* Prevents the image from repeating */
	background-position: center;   /* Centers the image within the container */
	background-size: cover;  
	filter: grayscale(100%) contrast(1.03) brightness(0.95);
	will-change: transform;
	z-index: 0;
}
.sa-hero__bg::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15,15,15,0.55) 0%, rgba(15,15,15,0.12) 35%, rgba(15,15,15,0.78) 78%, rgba(15,15,15,0.98) 100%);
}
.sa-hero__inner { 
	position: relative; 
	z-index: 1; 
	max-width: 920px; 
	bottom: 2rem;
}
.sa-hero h1 {
	font-size: clamp(2.8rem, 8.5vw, 6.6rem);
	font-weight: 600;
	line-height: 0.96;
	letter-spacing: -0.03em;
	margin-bottom: 1.6rem;
	color: #fff;
}
.sa-hero h1 .sa-line { display: block; overflow: hidden; }
.sa-hero h1 .sa-line > span {
	display: block;
	transform: translateY(110%);
	animation: saRise 1s var(--sa-ease) forwards;
}
.sa-hero h1 .sa-line:nth-child(2) > span { animation-delay: 0.12s; }
.sa-hero h1 em { font-style: normal; color: var(--primary); }
@keyframes saRise { to { transform: translateY(0); } }

.sa-hero__sub {
	font-size: clamp(1.05rem, 2vw, 1.3rem);
	line-height: 1.6;
	color: rgba(255,255,255,0.82);
	max-width: 600px;
	margin: 0 auto 2.2rem;
	opacity: 0;
	animation: saFade 0.9s var(--sa-ease) 0.4s forwards;
}
.sa-hero__actions {
	display: flex; flex-direction: column; gap: 1.1rem; align-items: center; justify-content: center;
	opacity: 0;
	animation: saFade 0.9s var(--sa-ease) 0.55s forwards;
}

.sa-hero__note {
	margin-top: 0rem;
	font-size: 0.82rem;
	letter-spacing: 0.03em;
	color: rgba(255,255,255,0.6);
	opacity: 0;
	animation: saFade 0.9s var(--sa-ease) 0.7s forwards;
}
@keyframes saFade { to { opacity: 1; } }

.sa-hero__scroll {
	position: absolute;
	bottom: 1.6rem; left: 50%;
	transform: translateX(-50%);
	z-index: 1;
	color: rgba(255,255,255,0.5);
	animation: saBob 2s ease-in-out infinite;
}
@keyframes saBob { 0%,100% { transform: translate(-50%, 0); } 50% { transform: translate(-50%, 8px); } }

@media (prefers-reduced-motion: reduce) {
	.sa-hero h1 .sa-line > span,
	.sa-hero__sub, .sa-hero__actions, .sa-hero__note { animation: none; transform: none; opacity: 1; }
	.sa-hero__scroll { animation: none; }
}

/* ============================================================
   2. PINNED PHONE STORY — sticky device, side text swaps screen
   ============================================================ */
.sa-story { position: relative; background: var(--bg-primary); }
.sa-story__inner { position: relative; max-width: var(--sa-max); margin: 0 auto; padding: 5rem 0; }

.sa-story__stage {
	position: sticky;
	top: 0;
	height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	z-index: 1;
}
.sa-story__stage::before {
	content: '';
	position: absolute;
	width: 60vh; height: 60vh;
	border-radius: 50%;
	/* background: radial-gradient(circle, rgba(var(--primary-rgb),0.18) 0%, rgba(var(--primary-rgb),0) 65%); */
	filter: blur(10px);
}
.sa-phone {
	position: relative;
	height: min(78vh, 660px);
	aspect-ratio: 1840 / 3600;
	/* filter: drop-shadow(0 30px 60px rgba(0,0,0,0.6)); */
}
.sa-phone__screen {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: contain;
	opacity: 0;
	transform: scale(1.0);
	transition: opacity 0.7s var(--sa-ease), transform 0.9s var(--sa-ease);
}
.sa-phone__screen.is-active { opacity: 1; transform: scale(1); }

.sa-story__panels { position: relative; margin-top: -100vh; z-index: 2; pointer-events: none; }
.sa-panel { min-height: 100vh; display: flex; align-items: center; padding: 0 2rem; }
.sa-panel--left { justify-content: flex-start; }
.sa-panel--right { justify-content: flex-end; }
.sa-panel__inner {
	pointer-events: auto;
	width: min(420px, 40vw);
	opacity: 0.25;
	transform: translateY(16px);
	transition: opacity 0.5s var(--sa-ease), transform 0.5s var(--sa-ease);
	padding: 5rem 0;
}
.sa-panel.is-active .sa-panel__inner { opacity: 1; transform: none; }
.sa-panel__step {
	font-size: 0.78rem; font-weight: 700; letter-spacing: 0.2em;
	color: var(--primary); margin-bottom: 1rem;
}
.sa-panel h2 {
	font-size: clamp(2rem, 3.6vw, 3.1rem);
	font-weight: 600; line-height: 1.04; letter-spacing: -0.025em;
	margin-bottom: 1.0rem;
}
.sa-panel h2 em { font-style: normal; color: var(--primary); }
.sa-panel p { font-size: 1.08rem; line-height: 1.65; color: var(--text-secondary); }

/* ============================================================
   3. HORIZONTAL FEATURE CAROUSEL  (#features)
   ============================================================ */
.sa-features { padding: 6rem 0 7rem; background: var(--bg-secondary); overflow-x: clip; }
.sa-features__head {
	display: flex; align-items: flex-end; justify-content: space-between;
	gap: 2rem; margin-bottom: 2.6rem;
}
.sa-features__head h2 {
	font-size: clamp(2rem, 4.4vw, 3.2rem);
	font-weight: 600; line-height: 1.05; letter-spacing: -0.025em; max-width: 560px;
}
.sa-features__head h2 em { font-style: normal; color: var(--primary); }

.sa-car__nav { display: flex; gap: 0.6rem; flex: 0 0 auto; }
.sa-car__btn {
	width: 52px; height: 52px; border-radius: 50%;
	border: 1px solid var(--border-light); background: var(--bg-tile);
	color: var(--text-primary); display: flex; align-items: center; justify-content: center;
	cursor: pointer; transition: background 0.25s var(--sa-ease), border-color 0.25s, opacity 0.25s;
}
.sa-car__btn:hover { background: var(--primary); color: #06181a; border-color: var(--primary); }
.sa-car__btn svg { width: 20px; height: 20px; }
.sa-car__btn:disabled,
.sa-car__btn.swiper-button-disabled { opacity: 0.35; cursor: default; pointer-events: none; }
.sa-car__btn:disabled:hover,
.sa-car__btn.swiper-button-disabled:hover { background: var(--bg-tile); color: var(--text-primary); border-color: var(--border-light); }

/* Swiper-powered carousel — full-bleed; slide offsets handled in JS */
.sa-car { width: 100%; padding-bottom: 0.5rem; }
.sa-car .swiper-slide { flex: 0 0 auto; width: min(384px, 82vw); height: auto; }

.sa-card {
	position: relative;
	flex: 0 0 min(560px, 84vw);
	scroll-snap-align: start;
	aspect-ratio: 5 / 6; max-height: 620px;
	border-radius: 26px; overflow: hidden;
	background: var(--bg-tile); border: 1px solid var(--border-color);
	display: flex; flex-direction: column;
}
.sa-card__body { position: relative; z-index: 2; padding: 2.4rem 2.2rem; }
.sa-card__body h3 {
	font-size: 1.7rem; font-weight: 600; letter-spacing: -0.02em;
	line-height: 1.1; margin-bottom: 0.7rem;
}
.sa-card__body h3 em { font-style: normal; color: var(--primary); }
.sa-card__body p { font-size: 1rem; line-height: 1.6; color: var(--text-secondary); max-width: 360px; }

.sa-card--image { justify-content: flex-end; }
.sa-card--image .sa-card__bg { position: absolute; inset: 0; z-index: 0; background-size: cover; background-position: center; }
.sa-card--image .sa-card__bg::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(10,10,10,0.1) 0%, rgba(10,10,10,0.55) 55%, rgba(10,10,10,0.92) 100%);
}
.sa-card--image .sa-card__body h3 { color: #fff; }
.sa-card--image .sa-card__body p { color: rgba(255,255,255,0.85); }

.sa-card--screen { justify-content: flex-start; }
.sa-card__screen {
	position: absolute; left: 50%; bottom: -6%;
	transform: translateX(-50%); height: 66%;
	object-fit: contain; z-index: 1;
	filter: drop-shadow(0 18px 36px rgba(0,0,0,0.55));
}

.sa-card--list { justify-content: space-between; }
.sa-card__list { list-style: none; padding: 0 2.2rem 2.2rem; margin: 0; display: grid; gap: 0.7rem; z-index: 2; }
.sa-card__list li {
	display: flex; align-items: center; gap: 0.9rem;
	background: var(--bg-surface); border: 1px solid var(--border-color);
	border-radius: 14px; padding: 0.9rem 1.1rem;
}
.sa-card__list .sa-dot {
	width: 34px; height: 34px; flex: 0 0 34px; border-radius: 9px;
	display: flex; align-items: center; justify-content: center;
	background: rgba(var(--primary-rgb),0.14); color: var(--primary);
}
.sa-card__list .sa-dot svg { width: 18px; height: 18px; }
.sa-card__list strong { font-weight: 600; font-size: 0.98rem; display: block; }
.sa-card__list span { font-size: 0.8rem; color: var(--text-muted); }

/* feature cards — portrait app mockups floating over a soft blue halo */
.sa-card--feature {
	flex: 0 0 min(384px, 82vw);
	aspect-ratio: 384 / 620;
	max-height: 640px;
	flex-direction: column;
	background: var(--bg-tile);
}
.sa-card--feature .sa-card__media {
	position: relative;
	flex: 1 1 auto;
	min-height: 0;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding-top: 1.6rem;
}
.sa-card--feature .sa-card__media::before {
	content: '';
	position: absolute;
	top: 12%; left: 50%;
	width: 78%; aspect-ratio: 1 / 1;
	transform: translateX(-50%);
	background: radial-gradient(circle, rgba(var(--primary-rgb), 0.22) 0%, rgba(var(--primary-rgb), 0) 64%);
	z-index: 0;
}
.sa-card--feature .sa-card__media img {
	position: relative;
	z-index: 1;
	height: 100%;
	width: auto;
	max-width: 90%;
	object-fit: contain;
	object-position: center bottom;
	filter: drop-shadow(0 24px 46px rgba(0,0,0,0.6));
}
.sa-card--feature .sa-card__body {
	position: relative;
	z-index: 2;
	flex: 0 0 auto;
	margin-top: -1.4rem;
	padding: 1.2rem 1.6rem 1.7rem;
	background: linear-gradient(180deg, rgba(26,26,26,0) 0%, var(--bg-tile) 28%);
}
.sa-card--feature .sa-card__body h3 { font-size: 1.34rem; margin-bottom: 0.45rem; }
.sa-card--feature .sa-card__body p { font-size: 0.95rem; max-width: none; }

/* ============================================================
   4. FULL-BLEED BANNER
   ============================================================ */
.sa-banner { position: relative; padding: 9rem 1.5rem; text-align: center; overflow: hidden; }
.sa-banner__bg {
	position: absolute; inset: 0; z-index: 0;
	/* swap this image freely */
	background: url('../images/app/featured-graphic-rows.png') center / cover no-repeat;
	filter: grayscale(100%);
}
.sa-banner__bg::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(15,15,15,0.86) 0%, rgba(15,15,15,0.9) 100%);
}
.sa-banner__inner { position: relative; z-index: 1; max-width: 760px; margin: 0 auto; }
.sa-banner h2 {
	font-size: clamp(2.2rem, 5.5vw, 4rem);
	font-weight: 600; line-height: 1.02; letter-spacing: -0.03em;
	margin-bottom: 1.3rem; color: #fff;
}
.sa-banner h2 em { font-style: normal; color: var(--primary); }
.sa-banner p { font-size: 1.12rem; line-height: 1.7; color: rgba(255,255,255,0.82); max-width: 600px; margin: 0 auto; }

/* ============================================================
   5. TESTIMONIAL MARQUEE
   ============================================================ */
.sa-quotes { padding: 7rem 0; overflow: hidden; }
.sa-quotes__head { text-align: center; max-width: 680px; margin: 0 auto 3.2rem; }
.sa-quotes__head h2 {
	font-size: clamp(2rem, 4.4vw, 3.2rem);
	font-weight: 600; line-height: 1.05; letter-spacing: -0.025em; margin-bottom: 0.9rem;
}
.sa-quotes__head h2 em { font-style: normal; color: var(--primary); }
.sa-quotes__head p { color: var(--text-secondary); line-height: 1.6; }

.sa-marquee-mask {
	position: relative;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
/* Swiper-powered marquee — linear, continuous autoplay */
.sa-marquee .swiper-wrapper { transition-timing-function: linear; }
.sa-marquee .swiper-slide { flex: 0 0 auto; width: 360px; height: auto; }

.sa-quote {
	display: flex; flex-direction: column;
	background: var(--bg-tile); border: 1px solid var(--border-color);
	border-radius: 18px; padding: 1.7rem 1.6rem;
}
.sa-quote__stars { display: flex; gap: 3px; margin-bottom: 0.9rem; color: var(--primary); }
.sa-quote__stars svg { width: 16px; height: 16px; }
.sa-quote p { font-size: 1rem; line-height: 1.6; color: var(--text-primary); margin-bottom: 1.1rem; }
.sa-quote__by { margin-top: auto; font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); }

@media (prefers-reduced-motion: reduce) {
	.sa-marquee .swiper-wrapper { transition-duration: 0ms !important; }
}

/* ============================================================
   6. FAQ
   ============================================================ */
.sa-faq { padding: 6rem 0 7rem; background: var(--bg-secondary); }
.sa-faq__head { text-align: center; margin-bottom: 3rem; }
.sa-faq__head h2 {
	font-size: clamp(2rem, 4.4vw, 3.2rem);
	font-weight: 600; line-height: 1.05; letter-spacing: -0.025em;
}
.sa-faq__list { max-width: 760px; margin: 0 auto; }
.sa-faq__item { border-bottom: 1px solid var(--border-light); }
.sa-faq__q {
	width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1.2rem;
	background: none; border: none; color: var(--text-primary);
	font-size: 1.12rem; font-weight: 600; text-align: left; padding: 1.5rem 0; cursor: pointer;
}
.sa-faq__icon { position: relative; flex: 0 0 18px; width: 18px; height: 18px; }
.sa-faq__icon::before, .sa-faq__icon::after {
	content: ''; position: absolute; top: 50%; left: 50%;
	width: 14px; height: 2px; background: var(--primary);
	transform: translate(-50%,-50%); transition: transform 0.3s var(--sa-ease);
}
.sa-faq__icon::after { transform: translate(-50%,-50%) rotate(90deg); }
.sa-faq__item.is-open .sa-faq__icon::after { transform: translate(-50%,-50%) rotate(0); }
.sa-faq__a { max-height: 0; overflow: hidden; transition: max-height 0.4s var(--sa-ease); }
.sa-faq__a p { padding: 0 0 1.5rem; color: var(--text-secondary); line-height: 1.7; max-width: 640px; }
.sa-faq__a a { color: var(--primary); }

/* ============================================================
   7. FINAL CTA
   ============================================================ */
.sa-final { position: relative; padding: 9rem 1.5rem; text-align: center; overflow: hidden; }
.sa-final__bg {
	position: absolute; inset: 0; z-index: 0;
	/* swap this image freely */
	background: url('../images/barbell-clean.jpg') center / cover no-repeat;
	filter: grayscale(100%);
}
.sa-final__bg::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(15,15,15,0.8) 0%, rgba(15,15,15,0.92) 100%);
}
.sa-final__inner { position: relative; z-index: 1; max-width: 760px; margin: 0 auto; }
.sa-final h2 {
	font-size: clamp(2.6rem, 6.5vw, 5rem);
	font-weight: 600; line-height: 1.0; letter-spacing: -0.03em; margin-bottom: 1.3rem; color: #fff;
}
.sa-final h2 em { font-style: normal; color: var(--primary); }
.sa-final p { font-size: 1.15rem; color: rgba(255,255,255,0.82); margin-bottom: 2.2rem; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1000px) {
	.sa-panel__inner { width: min(380px, 44vw); }
}
@media (max-width: 820px) {
	.sa-story__inner { display: block; }
	.sa-story__stage {
		top: 60px; height: 58vh;
		background: linear-gradient(180deg, var(--bg-primary) 72%, rgba(20,20,20,0) 100%);
		z-index: 5;
	}
	.sa-story__stage::before { width: 50vh; height: 50vh; }
	.sa-phone { height: 52vh; }
	.sa-story__panels { margin-top: 0; }
	.sa-panel { min-height: auto; padding: 2.4rem 1.5rem; justify-content: center !important; }
	.sa-panel:last-child { padding-bottom: 5rem; }
	.sa-panel__inner { width: 100%; max-width: 520px; text-align: center; opacity: 1; transform: none; }

	.sa-features__head { flex-direction: column; align-items: flex-start; }
	.sa-card { flex-basis: min(440px, 86vw); }
	.sa-quote { flex-basis: 300px; }
}
@media (max-width: 520px) {
	.sa-hero { padding-bottom: 4rem; }
	.sa-card { flex-basis: 86vw; }
}
