/* ============================================================
   SOLEY CHIROPRACTIC — Front Page Styles
   Design inspired by modern chiropractic site aesthetics
   ============================================================ */

/* ---- Hero ---------------------------------------------------- */
.hero-section {
	background: linear-gradient(135deg, var(--soley-navy) 0%, var(--soley-navy-light) 60%, #2d5a8e 100%);
	padding: 100px 0 0;
	position: relative;
	overflow: hidden;
}

/* Subtle background pattern */
.hero-section::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: radial-gradient(circle at 80% 20%, rgba(255,255,255,.05) 0%, transparent 60%),
	                  radial-gradient(circle at 10% 80%, rgba(232,103,58,.1) 0%, transparent 50%);
	pointer-events: none;
}

.hero-content { position: relative; z-index: 1; padding-bottom: 80px; }

.hero-badge {
	display: inline-flex;
	align-items: center;
	background: rgba(255,255,255,.12);
	border: 1px solid rgba(255,255,255,.2);
	color: rgba(255,255,255,.95);
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: 6px 14px;
	border-radius: 50px;
	backdrop-filter: blur(8px);
}

.hero-headline {
	font-size: clamp(2rem, 4.5vw, 3.25rem);
	font-weight: 800;
	color: #fff;
	line-height: 1.2;
	margin-bottom: 1.25rem;
}
.hero-headline em {
	font-style: normal;
	color: var(--soley-accent);
}

.hero-subtext {
	font-size: 1.1rem;
	color: rgba(255,255,255,.8);
	max-width: 500px;
	line-height: 1.7;
}

.hero-stats { border-top: 1px solid rgba(255,255,255,.15); padding-top: 1.5rem; }
.hero-stat { color: rgba(255,255,255,.9); }
.hero-stat strong { display: block; font-size: 1.75rem; font-weight: 800; color: var(--soley-accent); line-height: 1; }
.hero-stat span { font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; opacity: .75; }
.hero-stat-divider { width: 1px; background: rgba(255,255,255,.2); }

.hero-image-col { padding-bottom: 0; position: relative; z-index: 1; align-items: flex-end; }
.hero-img {
	border-radius: var(--soley-radius) var(--soley-radius) 0 0;
	max-height: 520px;
	object-fit: cover;
	object-position: top;
	box-shadow: var(--soley-shadow-lg);
}

.hero-img-placeholder {
	width: 100%;
	max-width: 420px;
	aspect-ratio: 3/4;
	background: rgba(255,255,255,.08);
	border: 2px dashed rgba(255,255,255,.2);
	border-radius: var(--soley-radius) var(--soley-radius) 0 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	color: rgba(255,255,255,.5);
	font-size: .9rem;
	text-align: center;
	gap: .75rem;
}
.hero-img-placeholder .bi { font-size: 4rem; }

.hero-wave {
	position: relative;
	height: 80px;
	margin-top: -1px;
}
.hero-wave svg { display: block; width: 100%; height: 100%; }

/* ---- Services ------------------------------------------------ */
.services-section { padding-top: 80px; }

.service-card {
	background: var(--soley-white);
	border: 1px solid var(--soley-border);
	border-radius: var(--soley-radius);
	padding: 36px 28px;
	text-align: center;
	transition: var(--transition);
	box-shadow: var(--soley-shadow);
}
.service-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--soley-shadow-lg);
	border-color: var(--soley-accent);
}

.service-icon {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--soley-accent) 0%, #f0844f 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 1.25rem;
}
.service-icon .bi {
	font-size: 1.6rem;
	color: #fff;
}

.service-title {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--soley-navy);
	margin-bottom: .75rem;
}

.service-desc {
	font-size: .92rem;
	color: var(--soley-muted);
	line-height: 1.65;
	margin-bottom: 1rem;
}

.service-link {
	font-size: .88rem;
	font-weight: 600;
	color: var(--soley-accent);
	text-decoration: none;
	transition: var(--transition);
}
.service-link:hover { color: var(--soley-accent-dark); gap: 6px; }
.service-link .bi { transition: var(--transition); }
.service-link:hover .bi { transform: translateX(3px); }

/* ---- About --------------------------------------------------- */
.about-photo {
	width: 100%;
	border-radius: var(--soley-radius);
	box-shadow: var(--soley-shadow-lg);
	object-fit: cover;
	object-position: top;
	max-height: 540px;
}

.about-photo-placeholder {
	width: 100%;
	aspect-ratio: 3/4;
	background: var(--soley-light);
	border-radius: var(--soley-radius);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--soley-muted);
}
.about-photo-placeholder .bi { font-size: 6rem; }

.about-body p { color: var(--soley-muted); line-height: 1.75; }

.credential-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.credential-list li {
	display: flex;
	align-items: center;
	font-size: .95rem;
	font-weight: 500;
	color: var(--soley-navy);
	padding: 8px 0;
	border-bottom: 1px solid var(--soley-border);
}
.credential-list li:last-child { border-bottom: none; }
.credential-list .bi { color: var(--soley-accent); flex-shrink: 0; }

/* ---- Testimonials -------------------------------------------- */
.testimonials-section {
	background: linear-gradient(135deg, var(--soley-navy-dark) 0%, var(--soley-navy) 100%);
	padding: 80px 0;
}
.testimonials-section h2 { color: #fff; }

.testimonial-card {
	background: rgba(255,255,255,.07);
	border: 1px solid rgba(255,255,255,.12);
	border-radius: var(--soley-radius);
	padding: 36px 28px;
	backdrop-filter: blur(8px);
	transition: var(--transition);
}
.testimonial-card:hover {
	background: rgba(255,255,255,.11);
	transform: translateY(-4px);
}

.testimonial-stars .bi { color: #fbbf24; font-size: 1rem; }

.testimonial-quote {
	font-size: 1rem;
	color: rgba(255,255,255,.88);
	line-height: 1.75;
	font-style: italic;
	margin-bottom: 1.25rem;
	border: none;
	padding: 0;
}

.testimonial-cite {
	display: flex;
	flex-direction: column;
	font-style: normal;
}
.testimonial-cite strong { color: #fff; font-size: .95rem; }
.testimonial-cite span { color: var(--soley-accent); font-size: .82rem; margin-top: 2px; }

/* ---- CTA Band ------------------------------------------------ */
.cta-section { padding: 60px 0; }

/* ---- Responsive ---------------------------------------------- */
@media (max-width: 991.98px) {
	.hero-section { padding: 70px 0 0; }
	.hero-content { padding-bottom: 60px; }
	section { padding: 60px 0; }
}

@media (max-width: 767.98px) {
	.hero-headline { font-size: 2rem; }
	.cta-band { padding: 32px 24px; }
	.hero-stats { gap: 1.5rem; }
}
