/* =========================================================
   Local Case Study PRO — Frontend Styles
   ========================================================= */

/* ── CSS custom properties (set by Settings / per-post) ─── */
/* Fallbacks are the original hardcoded values.               */
.lcsp-single-case-study {
	--lcsp-color-h1:             inherit;
	--lcsp-color-h2:             inherit;
	--lcsp-color-body:           inherit;
	--lcsp-color-accent:         #2271b1;
	--lcsp-fontsize-h1:          clamp(1.75rem, 3vw, 2.5rem);
	--lcsp-fontsize-h2:          1.5rem;
	--lcsp-fontsize-body:        1rem;
	/* Key metrics */
	--lcsp-metric-bg:            #111111;
	--lcsp-metric-text:          #ffffff;
	--lcsp-metric-value-color:   #ffffff;
	--lcsp-metric-label-color:   rgba(255,255,255,.7);
	--lcsp-metric-value-size:    2rem;
	/* Buttons */
	--lcsp-btn-font-size:        0.9rem;
	--lcsp-btn-border-radius:    6px;
	--lcsp-btn-primary-bg:       #111111;
	--lcsp-btn-primary-text:     #ffffff;
	--lcsp-btn-primary-hover-bg: #333333;
	--lcsp-btn-secondary-bg:     #f0f0f0;
	--lcsp-btn-secondary-text:   #111111;
	--lcsp-btn-secondary-border: #dddddd;
	/* Sections */
	--lcsp-section-bg:           var(--lcsp-color-section-bg, transparent);
	--lcsp-section-heading-color:inherit;
	--lcsp-section-text-color:   inherit;
	/* Per-section overrides (set inline per post) */
	--lcsp-challenge-bg:         var(--lcsp-section-bg);
	--lcsp-challenge-heading:    var(--lcsp-section-heading-color);
	--lcsp-challenge-text:       var(--lcsp-section-text-color);
	--lcsp-solution-bg:          var(--lcsp-section-bg);
	--lcsp-solution-heading:     var(--lcsp-section-heading-color);
	--lcsp-solution-text:        var(--lcsp-section-text-color);
	--lcsp-results-bg:           var(--lcsp-section-bg);
	--lcsp-results-heading:      var(--lcsp-section-heading-color);
	--lcsp-results-text:         var(--lcsp-section-text-color);
	/* Images */
	--lcsp-img-radius:           0px;
	/* Testimonial */
	--lcsp-testimonial-bg:           #f5f5f7;
	--lcsp-testimonial-border-color: #f5a623;
	--lcsp-testimonial-quote-color:  #1d1d1f;
	--lcsp-testimonial-author-color: #555555;
	/* FAQs */
	--lcsp-faq-bg:             #f8f8fa;
	--lcsp-faq-question-color: #1d1d1f;
	--lcsp-faq-answer-color:   #555555;
	--lcsp-faq-border-color:   #e2e2e8;
}

/* Service area page custom properties */
.lcsp-service-area-page {
	--lcsp-sa-hero-bg:         #111111;
	--lcsp-sa-hero-bg-image:   none;
	--lcsp-sa-hero-text:       #ffffff;
	--lcsp-sa-hero-subtitle:   #ffffff;
	--lcsp-sa-title-fontsize:  clamp(2rem, 4vw, 3rem);
	--lcsp-sa-page-bg:         transparent;
	--lcsp-sa-heading-color:   inherit;
	--lcsp-sa-body-color:      inherit;
	--lcsp-sa-card-bg:         #ffffff;
	--lcsp-sa-card-border:     #e5e5e5;
	--lcsp-sa-link-color:      #2271b1;
	--lcsp-sa-about-bg:        #f5f5f7;
	--lcsp-sa-about-border:    #d2d2d7;
	--lcsp-sa-about-text:      #1d1d1f;
}


.lcsp-container { max-width: 1100px; margin: 0 auto; padding: 0 24px; }
*, .lcsp-container * { box-sizing: border-box; }

/* ── Hero ────────────────────────────────────────────────── */
.lcsp-hero {
	position: relative;
	display: flex; align-items: center;
	padding: 80px 24px;
	margin-bottom: 48px;
	overflow: hidden;
}
.lcsp-hero--fullwidth { margin-left: calc(-50vw + 50%); margin-right: calc(-50vw + 50%); }
.lcsp-hero--left   { justify-content: flex-start; }
.lcsp-hero--center { justify-content: center; text-align: center; }
.lcsp-hero--right  { justify-content: flex-end; text-align: right; }
.lcsp-hero--parallax { background-attachment: fixed; }

.lcsp-hero-overlay {
	position: absolute; inset: 0;
}
/* ── Standard hero ───────────────────────────────────────── */
.lcsp-hero--standard .lcsp-hero-content { position: relative; z-index: 1; max-width: 700px; }
.lcsp-hero-client {
	font-size: .85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .08em;
	opacity: .75;
	margin: 12px 0 0;
}

/* ── Editorial hero ──────────────────────────────────────── */
.lcsp-hero--editorial {
	position: relative;
	display: block;
}
.lcsp-hero--editorial .lcsp-hero-overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
}
.lcsp-hero-editorial-inner {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: inherit;
	width: 90%;
	margin: 0 auto;
	padding: 0;
}
/* Centre/right variants — align the inner content block itself */
.lcsp-hero--center .lcsp-hero-editorial-inner { align-items: center; }
.lcsp-hero--right  .lcsp-hero-editorial-inner { align-items: flex-end; }
.lcsp-hero-editorial-content {
	padding-bottom: 28px;
}
.lcsp-hero-eyebrow {
	font-size: .75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .12em;
	font-family: monospace, monospace;
	margin: 0 0 16px;
	opacity: .85;
	line-height: 1.4;
}
.lcsp-hero--editorial .lcsp-hero-title {
	font-size: clamp(2.2rem, 5vw, 4rem);
	font-weight: 800;
	line-height: 1.05;
	margin: 0 0 16px;
	max-width: 780px;
}
.lcsp-hero-description {
	font-size: 1rem;
	margin: 0;
	opacity: .85;
	max-width: 600px;
	line-height: 1.5;
}
.lcsp-hero-breadcrumb {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 0;
	border-top: 1px solid rgba(255,255,255,.2);
	font-size: .75rem;
	text-transform: uppercase;
	letter-spacing: .1em;
	font-weight: 600;
}
.lcsp-hero-breadcrumb a {
	text-decoration: none;
	opacity: .7;
	transition: opacity .15s;
}
.lcsp-hero-breadcrumb a:hover { opacity: 1; }
.lcsp-hero-breadcrumb-sep { opacity: .4; }

@media (max-width: 640px) {
	.lcsp-hero-editorial-inner { padding: 0 20px; }
	.lcsp-hero--editorial .lcsp-hero-title { font-size: 2rem; }
}



/* ── Front & Center hero ─────────────────────────────────── */
.lcsp-hero--fc {
	position: relative;
	display: block;
	overflow: visible;
	margin-bottom: 0;
}
.lcsp-hero--fc.lcsp-hero--fullwidth {
	margin-left: calc(-50vw + 50%);
	margin-right: calc(-50vw + 50%);
}
.lcsp-hero-fc-inner {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 72px 24px 0;
	width: 90%;
	margin: 0 auto;
}
.lcsp-hero-fc-text {
	max-width: 780px;
	width: 100%;
	margin-bottom: 40px;
}
.lcsp-hero--fc .lcsp-hero-title {
	font-size: clamp(1.8rem, 4vw, 3.2rem);
	font-weight: 800;
	line-height: 1.1;
	margin: 0 0 16px;
}
.lcsp-hero--fc .lcsp-hero-description {
	font-size: 1rem;
	opacity: .82;
	margin: 0;
	max-width: 560px;
}

/* Screenshot image container — padding-top set inline per post */
.lcsp-hero-fc-image-wrap {
	position: relative;
	width: 100%;
	max-width: 960px;
	overflow: hidden;
	border-radius: 10px 10px 0 0;
	box-shadow: 0 -4px 40px rgba(0,0,0,.4);
	flex-shrink: 0;
}
.lcsp-hero-fc-img {
	position: absolute;
	top: 0; left: 0;
	width: 100%;
	height: auto;
	display: block;
	border-radius: 10px 10px 0 0;
}
/* Soft fade at image bottom edge */
.lcsp-hero-fc-image-wrap::after {
	content: '';
	position: absolute;
	bottom: 0; left: 0; right: 0;
	height: 80px;
	background: linear-gradient(to top, var(--lcsp-fc-bg, #0d0d1a), transparent);
	pointer-events: none;
}

.lcsp-hero--fc + .lcsp-case-study-body { margin-top: 48px; }

@media (max-width: 640px) {
	.lcsp-hero-fc-inner { padding: 48px 16px 0; width: 95%; }
	.lcsp-hero-fc-text  { margin-bottom: 28px; }
	.lcsp-hero--fc .lcsp-hero-title { font-size: 1.75rem; }
}

/* ── Page header (no hero) ───────────────────────────────── */
.lcsp-page-header { padding: 48px 0 32px; }
.lcsp-case-study-title { font-size: var(--lcsp-fontsize-h1); font-weight: 700; margin: 0; color: var(--lcsp-color-h1); }

/* ── Client Card ─────────────────────────────────────────── */
.lcsp-client-card {
	background: var(--lcsp-color-card-bg, #f5f5f7);
	border-radius: 16px;
	padding: 24px 28px;
	margin-bottom: 48px;
}

.lcsp-client-card-main {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	flex-wrap: wrap;
}

/* Logo — larger */
.lcsp-client-logo-wrap {
	flex-shrink: 0;
	width: 160px;
	height: 160px;
	background: #fff;
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 14px;
	box-shadow: 0 1px 4px rgba(0,0,0,.08);
}
.lcsp-client-logo {
	width: 132px;
	height: 132px;
	max-width: 132px;
	max-height: 132px;
	object-fit: contain;
	display: block;
}

/* Client info block */
.lcsp-client-info {
	flex: 1;
	min-width: 160px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding-top: 2px;
}
.lcsp-client-name {
	font-size: 1.2rem;
	font-weight: 700;
	color: #1d1d1f;
	line-height: 1.2;
}

/* Single inline meta line */
.lcsp-meta-inline {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
}
.lcsp-meta-row-label {
	font-size: .65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .07em;
	color: var(--lcsp-color-meta-label, #6e6e73);
}
.lcsp-meta-row-value {
	font-size: .9rem;
	color: #1d1d1f;
	margin-left: 4px;
}
.lcsp-meta-sep {
	color: #c0c0c5;
	font-size: .8rem;
}

/* Services row — tighter top spacing */
.lcsp-client-services {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-top: 8px;
}
.lcsp-services-label {
	font-size: .65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .07em;
	color: #6e6e73;
	flex-shrink: 0;
}
.lcsp-service-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.lcsp-service-pill {
	display: inline-block;
	background: #fff;
	border: 1px solid #d2d2d7;
	border-radius: 20px;
	padding: 3px 12px;
	font-size: .8rem;
	font-weight: 500;
	color: #1d1d1f;
	white-space: nowrap;
}

@media (max-width: 600px) {
	.lcsp-client-card { padding: 18px; }
	.lcsp-client-logo-wrap { width: 90px; height: 90px; border-radius: 10px; padding: 10px; }
	.lcsp-client-logo { width: 70px; height: 70px; max-width: 70px; max-height: 70px; }
	.lcsp-meta-row-label { min-width: 60px; }
	.lcsp-services-label { min-width: 60px; }
}

/* ── Metrics grid ────────────────────────────────────────── */
.lcsp-metrics-grid {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 16px;
	margin-bottom: 48px;
}
.lcsp-metric-item,
.lcsp-metric-tile {
	background: var(--lcsp-metric-bg, #111);
	color: var(--lcsp-metric-text, #fff);
	border-radius: 10px; padding: 24px; text-align: center;
}
.lcsp-metric-tile .lcsp-metric-value,
.lcsp-metric-value {
	font-size: var(--lcsp-metric-value-size, 2rem);
	color: var(--lcsp-metric-value-color, #fff);
	font-weight: 700; line-height: 1; margin-bottom: 6px;
}
.lcsp-metric-tile .lcsp-metric-label,
.lcsp-metric-label {
	font-size: 13px;
	color: var(--lcsp-metric-label-color, rgba(255,255,255,.7));
}

/* ── Sections ────────────────────────────────────────────── */
.lcsp-section { margin-bottom: 32px; }
.lcsp-section h2 {
	font-size: var(--lcsp-fontsize-h2); font-weight: 700;
	color: var(--lcsp-color-h2);
	margin: 0 0 16px;
	padding-bottom: 12px;
	border-bottom: 2px solid currentColor;
}
.lcsp-section-content { font-size: var(--lcsp-fontsize-body); color: var(--lcsp-color-body); }
.lcsp-section-content p:last-child { margin-bottom: 0; }

/* Per-section background + color overrides */
.lcsp-challenge-section { background: var(--lcsp-challenge-bg); color: var(--lcsp-challenge-text); }
.lcsp-challenge-section h2 { color: var(--lcsp-challenge-heading); }
.lcsp-solution-section  { background: var(--lcsp-solution-bg);  color: var(--lcsp-solution-text); }
.lcsp-solution-section h2  { color: var(--lcsp-solution-heading); }
.lcsp-results-section   { background: var(--lcsp-results-bg);   color: var(--lcsp-results-text); }
.lcsp-results-section h2   { color: var(--lcsp-results-heading); }

/* Card style — applied via .lcsp-section--card modifier class */
.lcsp-section--card {
	background: #f8f8fa;
	border: 1px solid #e2e2e8;
	border-radius: 12px;
	padding: 28px 32px;
}
.lcsp-section--card h2 {
	border-bottom-color: rgba(0,0,0,.1);
}
@media (max-width:600px) {
	.lcsp-section--card { padding: 20px; }
}

/* ── Galleries ───────────────────────────────────────────── */
/* ── Image border radius ─────────────────────────────────── */
.lcsp-single-case-study img:not(.lcsp-client-logo):not(.lcsp-lightbox-img) {
	border-radius: var(--lcsp-img-radius, 0px);
}
.lcsp-gallery-grid .lcsp-gallery-item-wrap,
.lcsp-gallery-masonry .lcsp-gallery-item-wrap {
	border-radius: var(--lcsp-img-radius, 0px);
}

.lcsp-gallery { display: grid; gap: 8px; margin: 20px 0; }
.lcsp-gallery-grid    { grid-template-columns: repeat(3, 1fr); }
.lcsp-gallery-masonry { columns: 3 200px; gap: 8px; display: block; }
.lcsp-gallery-masonry .lcsp-gallery-item-wrap { break-inside: avoid; margin-bottom: 8px; }

.lcsp-gallery-title { font-size: 1rem; font-weight: 600; margin-bottom: 10px; color: #555; }

/* Equal-size grid cells */
.lcsp-gallery-grid .lcsp-gallery-item-wrap {
	overflow: hidden;
	border-radius: 6px;
	aspect-ratio: 4 / 3;
}
.lcsp-gallery-masonry .lcsp-gallery-item-wrap { overflow: hidden; border-radius: 6px; }

.lcsp-lightbox-link { display: block; line-height: 0; height: 100%; }
.lcsp-gallery-grid .lcsp-lightbox-link { height: 100%; }
.lcsp-lightbox-link img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
	transition: transform .3s ease;
}
.lcsp-gallery-masonry .lcsp-lightbox-link img { height: auto; }
.lcsp-lightbox-link:hover img { transform: scale(1.04); }
.lcsp-lightbox-link:focus { outline: 2px solid #005fcc; outline-offset: 2px; }

@media (max-width: 640px) {
	.lcsp-gallery-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ── Testimonial card stars ──────────────────────────────── */
.lcsp-testimonial-card-stars .lcsp-stars { font-size: 1rem; letter-spacing: .05em; }
.lcsp-testimonial-card-stars .lcsp-star-filled { color: #f5a623; }
.lcsp-testimonial-card-stars .lcsp-star-empty  { color: #ddd; }

/* ── Testimonial card — base (shared by all styles) ─────── */
.lcsp-testimonial-card {
	margin-bottom: 40px;
	position: relative;
}
.lcsp-testimonial-card-stars { margin-bottom: 10px; }
.lcsp-testimonial-card-quote {
	font-size: 1.1rem;
	font-style: italic;
	line-height: 1.65;
	margin: 0 0 14px;
	color: var(--lcsp-testimonial-quote-color, #1d1d1f);
}
.lcsp-testimonial-card-author {
	font-size: .9rem;
	color: var(--lcsp-testimonial-author-color, #555);
	font-style: normal;
}
.lcsp-testimonial-card-position { opacity: .75; }

/* ── Style 1: Bordered (default) ─────────────────────────── */
.lcsp-testimonial--bordered {
	background: var(--lcsp-testimonial-bg, #f5f5f7);
	border-radius: 12px;
	padding: 28px 32px;
	border-left: 4px solid var(--lcsp-testimonial-border-color, #f5a623);
}

/* ── Style 2: Quote Block ────────────────────────────────── */
.lcsp-testimonial--quote-block {
	background: var(--lcsp-testimonial-bg, #f9f9fb);
	border-radius: 12px;
	padding: 36px 36px 28px;
}
.lcsp-testimonial--quote-block::before {
	content: '\201C';
	display: block;
	font-size: 5rem;
	line-height: .6;
	color: var(--lcsp-testimonial-border-color, #f5a623);
	margin-bottom: 16px;
	font-family: Georgia, serif;
}
.lcsp-testimonial--quote-block .lcsp-testimonial-card-quote {
	font-size: 1.25rem;
}

/* ── Style 3: Bubble ─────────────────────────────────────── */
.lcsp-testimonial--bubble {
	background: var(--lcsp-testimonial-bg, #f5f5f7);
	border-radius: 16px;
	padding: 28px 32px;
	border: 1px solid var(--lcsp-testimonial-border-color, #e5e5e5);
	margin-bottom: 52px;
}
.lcsp-testimonial--bubble::after {
	content: '';
	position: absolute;
	bottom: -20px;
	left: 40px;
	border-width: 20px 16px 0;
	border-style: solid;
	border-color: var(--lcsp-testimonial-bg, #f5f5f7) transparent transparent;
}
.lcsp-testimonial--bubble .lcsp-testimonial-card-author {
	margin-top: 16px;
	display: flex;
	align-items: center;
	gap: 8px;
}

/* ── Style 4: Spotlight ──────────────────────────────────── */
.lcsp-testimonial--spotlight {
	background: var(--lcsp-testimonial-bg, #111111);
	border-radius: 12px;
	padding: 40px 44px;
	margin-left: calc(-50vw + 50%);
	margin-right: calc(-50vw + 50%);
	text-align: center;
}
.lcsp-testimonial--spotlight .lcsp-testimonial-card-quote {
	color: var(--lcsp-testimonial-quote-color, #ffffff);
	font-size: 1.3rem;
	max-width: 720px;
	margin: 0 auto 16px;
}
.lcsp-testimonial--spotlight .lcsp-testimonial-card-author {
	color: var(--lcsp-testimonial-author-color, rgba(255,255,255,.65));
	justify-content: center;
}
.lcsp-testimonial--spotlight .lcsp-testimonial-card-stars .lcsp-star-filled { color: #f5a623; }
.lcsp-testimonial--spotlight .lcsp-testimonial-card-stars .lcsp-star-empty  { color: rgba(255,255,255,.2); }
.lcsp-testimonial--spotlight .lcsp-testimonial-card-stars { margin-bottom: 16px; }
@media (max-width: 640px) {
	.lcsp-testimonial--spotlight { padding: 32px 24px; }
	.lcsp-testimonial--spotlight .lcsp-testimonial-card-quote { font-size: 1.1rem; }
}

/* ── Style 5: Minimal Line ───────────────────────────────── */
.lcsp-testimonial--minimal-line {
	padding: 24px 0;
	border-top: 2px solid var(--lcsp-testimonial-border-color, #f5a623);
}
.lcsp-testimonial--minimal-line .lcsp-testimonial-card-quote {
	font-size: 1.15rem;
	margin-bottom: 16px;
}
.lcsp-testimonial--minimal-line .lcsp-testimonial-card-stars { margin-bottom: 8px; }

/* ── Style 6: Card with avatar placeholder ───────────────── */
.lcsp-testimonial--card-avatar {
	background: var(--lcsp-testimonial-bg, #fff);
	border: 1px solid var(--lcsp-testimonial-border-color, #e5e5e5);
	border-radius: 16px;
	padding: 32px;
	box-shadow: 0 2px 16px rgba(0,0,0,.07);
}
.lcsp-testimonial--card-avatar .lcsp-testimonial-card-author {
	display: flex;
	align-items: center;
	gap: 12px;
	border-top: 1px solid rgba(0,0,0,.08);
	padding-top: 16px;
	margin-top: 16px;
}
.lcsp-testimonial--card-avatar .lcsp-testimonial-avatar {
	width: 42px; height: 42px;
	border-radius: 50%;
	background: var(--lcsp-testimonial-border-color, #f5a623);
	color: #fff;
	display: flex; align-items: center; justify-content: center;
	font-size: 1rem; font-weight: 700;
	flex-shrink: 0;
}

/* ── Style 7: Side-by-side (quote left, author right) ────── */
.lcsp-testimonial--split {
	background: var(--lcsp-testimonial-bg, #f5f5f7);
	border-radius: 12px;
	padding: 32px;
	display: flex;
	gap: 32px;
	align-items: flex-start;
}
.lcsp-testimonial--split .lcsp-testimonial-split-quote {
	flex: 1;
}
.lcsp-testimonial--split .lcsp-testimonial-split-author {
	flex-shrink: 0;
	width: 180px;
	text-align: center;
	border-left: 1px solid rgba(0,0,0,.1);
	padding-left: 28px;
}
.lcsp-testimonial--split .lcsp-testimonial-split-author .lcsp-testimonial-avatar {
	width: 54px; height: 54px;
	border-radius: 50%;
	background: var(--lcsp-testimonial-border-color, #f5a623);
	color: #fff;
	display: flex; align-items: center; justify-content: center;
	font-size: 1.25rem; font-weight: 700;
	margin: 0 auto 10px;
}
.lcsp-testimonial--split::before {
	content: '\201C';
	font-size: 4rem;
	line-height: 1;
	color: var(--lcsp-testimonial-border-color, #f5a623);
	font-family: Georgia, serif;
	float: left;
	margin: -8px 12px 0 0;
}
@media (max-width: 640px) {
	.lcsp-testimonial--split { flex-direction: column; gap: 16px; }
	.lcsp-testimonial--split .lcsp-testimonial-split-author { width: auto; border-left: none; border-top: 1px solid rgba(0,0,0,.1); padding: 16px 0 0; }
}

/* ── Style 8: Highlighted / Feature Box ─────────────────── */
.lcsp-testimonial--feature {
	border-radius: 16px;
	padding: 0;
	overflow: hidden;
	border: 1px solid var(--lcsp-testimonial-border-color, #f5a623);
}
.lcsp-testimonial--feature .lcsp-testimonial-feature-top {
	background: var(--lcsp-testimonial-border-color, #f5a623);
	padding: 16px 28px;
	display: flex;
	align-items: center;
	gap: 10px;
}
.lcsp-testimonial--feature .lcsp-testimonial-feature-top .lcsp-testimonial-card-stars { margin: 0; }
.lcsp-testimonial--feature .lcsp-testimonial-feature-top .lcsp-star-filled { color: #fff; }
.lcsp-testimonial--feature .lcsp-testimonial-feature-top .lcsp-star-empty  { color: rgba(255,255,255,.4); }
.lcsp-testimonial--feature .lcsp-testimonial-feature-body {
	background: var(--lcsp-testimonial-bg, #fff);
	padding: 28px 32px;
}
.lcsp-testimonial--feature .lcsp-testimonial-card-quote {
	color: var(--lcsp-testimonial-quote-color, #1d1d1f);
	font-size: 1.15rem;
}
.lcsp-testimonial--feature .lcsp-testimonial-card-author {
	padding-top: 14px;
	border-top: 1px solid rgba(0,0,0,.08);
	margin-top: 14px;
}


.lcsp-testimonial {
	background: #f7f8f9; border-left: 4px solid #111;
	border-radius: 0 10px 10px 0;
	padding: 32px 36px; margin: 0;
}
.lcsp-testimonial-rating { margin-bottom: 12px; }
.lcsp-testimonial-quote { font-size: 1.2rem; font-style: italic; margin: 0 0 16px; line-height: 1.6; }
.lcsp-testimonial-author { font-style: normal; color: #555; }

/* ── FAQs ────────────────────────────────────────────────── */
.lcsp-faqs-section { margin-bottom: 32px; }
.lcsp-faqs { display: flex; flex-direction: column; gap: 8px; }
.lcsp-faq-item { border: 1px solid var(--lcsp-faq-border-color, #e5e5e5); border-radius: 8px; overflow: hidden; background: var(--lcsp-faq-bg, #f8f8fa); }
.lcsp-faq-question {
	display: flex; justify-content: space-between; align-items: center;
	padding: 16px 20px; cursor: pointer;
	font-weight: 600; font-size: 1rem; list-style: none;
	color: var(--lcsp-faq-question-color, #1d1d1f);
	background: var(--lcsp-faq-bg, #fff); transition: background .2s;
}
.lcsp-faq-question:hover { filter: brightness(.97); }
.lcsp-faq-question::after { content: '+'; font-size: 1.25rem; font-weight: 300; color: #888; flex-shrink: 0; margin-left: 16px; }
.lcsp-faq-item[open] .lcsp-faq-question::after { content: '−'; }
.lcsp-faq-answer { padding: 0 20px 16px; color: var(--lcsp-faq-answer-color, #444); line-height: 1.6; }

/* ── FAQ Style: Boxed (default) ──────────────────────────── */
/* Uses base rules above — .lcsp-faqs--boxed is default, no extra CSS needed */

/* ── FAQ Style: Flush — full-width divider lines, no box ─── */
.lcsp-faqs--flush .lcsp-faq-item {
	border: none;
	border-radius: 0;
	border-bottom: 1px solid var(--lcsp-faq-border-color, #e5e5e5);
	background: transparent;
}
.lcsp-faqs--flush .lcsp-faq-item:first-child { border-top: 1px solid var(--lcsp-faq-border-color, #e5e5e5); }
.lcsp-faqs--flush .lcsp-faq-question { background: transparent; padding: 16px 4px; }
.lcsp-faqs--flush .lcsp-faq-answer { padding: 0 4px 16px; }

/* ── FAQ Style: Accent left border ───────────────────────── */
.lcsp-faqs--accent .lcsp-faq-item {
	border: none;
	border-left: 3px solid var(--lcsp-faq-border-color, #f5a623);
	border-radius: 0 8px 8px 0;
	background: var(--lcsp-faq-bg, #f8f8fa);
	margin-bottom: 8px;
}
.lcsp-faqs--accent .lcsp-faq-question { background: transparent; }
.lcsp-faqs--accent .lcsp-faq-item[open] {
	background: var(--lcsp-testimonial-bg, #fff);
	box-shadow: 0 2px 8px rgba(0,0,0,.06);
}

/* ── FAQ Style: Numbered ─────────────────────────────────── */
.lcsp-faqs--numbered { counter-reset: faq-counter; }
.lcsp-faqs--numbered .lcsp-faq-item {
	counter-increment: faq-counter;
	position: relative;
}
.lcsp-faqs--numbered .lcsp-faq-question::before {
	content: counter(faq-counter, decimal-leading-zero);
	font-size: .75rem;
	font-weight: 800;
	color: var(--lcsp-faq-border-color, #f5a623);
	margin-right: 12px;
	flex-shrink: 0;
	letter-spacing: .03em;
}

/* ── FAQ Style: Clean Cards (shadow, no border) ──────────── */
.lcsp-faqs--clean .lcsp-faq-item {
	border: none;
	border-radius: 12px;
	background: var(--lcsp-faq-bg, #fff);
	box-shadow: 0 1px 6px rgba(0,0,0,.08);
	transition: box-shadow .2s;
}
.lcsp-faqs--clean .lcsp-faq-item[open] { box-shadow: 0 4px 16px rgba(0,0,0,.12); }
.lcsp-faqs--clean .lcsp-faq-question { background: transparent; border-radius: 12px 12px 0 0; }
.lcsp-faqs--clean .lcsp-faq-answer { padding: 0 20px 20px; }

/* ── CTAs ────────────────────────────────────────────────── */
.lcsp-cta-section { display: flex; gap: 16px; flex-wrap: wrap; justify-content: var(--lcsp-btn-justify, flex-start); }
.lcsp-btn {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 12px 24px;
	border-radius: var(--lcsp-btn-border-radius, 6px);
	font-size: var(--lcsp-btn-font-size, 0.9rem);
	font-weight: 600;
	text-decoration: none; transition: all .2s;
}
.lcsp-btn-primary { background: var(--lcsp-btn-primary-bg, #111); color: var(--lcsp-btn-primary-text, #fff); }
.lcsp-btn-primary:hover { background: var(--lcsp-btn-primary-hover-bg, #333); color: var(--lcsp-btn-primary-text, #fff); }
.lcsp-btn-secondary { background: var(--lcsp-btn-secondary-bg, #f0f0f0); color: var(--lcsp-btn-secondary-text, #111); border: 1px solid var(--lcsp-btn-secondary-border, #ddd); }
.lcsp-btn-secondary:hover { filter: brightness(.95); }

/* ── Stars ───────────────────────────────────────────────── */
.lcsp-stars { font-size: 1.1em; letter-spacing: .05em; }
.lcsp-star-filled { color: #f5a623; }
.lcsp-star-empty  { color: #ddd; }

/* ── Service Area Page ───────────────────────────────────── */
.lcsp-service-area-hero {
	background: var(--lcsp-sa-hero-bg, #111);
	background-image: var(--lcsp-sa-hero-bg-image, none);
	background-size: cover;
	background-position: center;
	color: var(--lcsp-sa-hero-text, #fff);
	padding: 64px 0;
	margin-bottom: 48px;
}
.lcsp-service-area-page .lcsp-service-area-title {
	font-size: var(--lcsp-sa-title-fontsize, clamp(2rem, 4vw, 3rem));
	font-weight: 700; margin: 0 0 12px;
	color: var(--lcsp-sa-hero-text, #fff);
}
.lcsp-service-area-page .lcsp-service-area-subtitle {
	font-size: 1.1rem; opacity: .85; margin: 0 0 8px;
	color: var(--lcsp-sa-hero-subtitle, inherit);
}
.lcsp-service-area-page .lcsp-service-area-count { font-size: .9rem; opacity: .6; margin: 0; }
.lcsp-service-area-content {
	padding-bottom: 64px;
	background: var(--lcsp-sa-page-bg, transparent);
}
.lcsp-service-area-content h2 { color: var(--lcsp-sa-heading-color, inherit); }
.lcsp-service-area-content p  { color: var(--lcsp-sa-body-color, inherit); }

.lcsp-no-results { padding: 40px; text-align: center; color: #888; }

/* ── Related areas links ─────────────────────────────────── */
.lcsp-related-areas { margin-top: 48px; padding-top: 32px; border-top: 1px solid #eee; }
.lcsp-related-areas h2 { font-size: 1.1rem; margin: 0 0 16px; color: var(--lcsp-sa-heading-color, inherit); }
.lcsp-related-areas-links { display: flex; flex-wrap: wrap; gap: 10px; }
.lcsp-related-link {
	display: inline-block;
	padding: 8px 16px;
	border: 1px solid #ddd;
	border-radius: 20px;
	text-decoration: none;
	font-size: 13px;
	color: var(--lcsp-sa-link-color, #2271b1);
	transition: background .2s, border-color .2s;
	white-space: nowrap;
}
.lcsp-related-link:hover { background: #f0f6ff; border-color: #72aee6; text-decoration: none; }

/* ── About City block ────────────────────────────────────── */
.lcsp-about-city {
	margin-top: 56px;
	padding: 32px 36px;
	background: var(--lcsp-sa-about-bg, #f5f5f7);
	border-radius: 12px;
	border-left: 4px solid var(--lcsp-sa-about-border, #d2d2d7);
}
.lcsp-about-city-heading {
	font-size: 1rem; font-weight: 700;
	text-transform: uppercase; letter-spacing: .06em;
	color: #6e6e73; margin: 0 0 12px;
}
.lcsp-about-city-desc {
	font-size: .9375rem; line-height: 1.7;
	color: var(--lcsp-sa-about-text, #1d1d1f);
	margin: 0 0 10px;
}
.lcsp-about-city-note {
	font-size: .9rem; line-height: 1.6;
	color: var(--lcsp-sa-about-text, #6e6e73);
	font-style: italic; margin: 0;
	padding-top: 10px;
	border-top: 1px solid var(--lcsp-sa-about-border, #d2d2d7);
}

/* ── Summary Cards ───────────────────────────────────────── */
.lcsp-cards-grid {
	display: grid;
	grid-template-columns: repeat(var(--lcsp-grid-cols, 3), 1fr);
	gap: 16px;
}

@media (max-width: 1100px) {
	.lcsp-cards-grid {
		grid-template-columns: repeat(var(--lcsp-grid-cols-md, 2), 1fr);
	}
}
@media (max-width: 640px) {
	.lcsp-cards-grid {
		grid-template-columns: repeat(var(--lcsp-grid-cols-sm, 1), 1fr);
	}
}

.lcsp-card {
	background: var(--lcsp-sa-card-bg, #fff);
	border: 1px solid var(--lcsp-sa-card-border, #e5e5e5);
	border-radius: 8px;
	overflow: hidden;
	display: flex; flex-direction: column;
	transition: box-shadow .2s, transform .2s;
}
.lcsp-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.10); transform: translateY(-1px); }

.lcsp-card-image-link { display: block; overflow: hidden; }
.lcsp-card-image {
	width: 100%; padding-top: 52%;
	background-size: cover; background-position: center;
	transition: transform .3s;
}
.lcsp-card-image--short { padding-top: 36%; }
.lcsp-card-image-link:hover .lcsp-card-image,
.lcsp-card--minimal:hover .lcsp-card-image { transform: scale(1.03); }

/* ── Card body — scoped under .lcsp-service-area-page for Divi specificity ── */
.lcsp-card-body {
	padding: 10px 12px;
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 0;
}

/* Nuclear margin/padding reset — beats Divi's p/h margin rules regardless of load order */
/* Surgical Divi reset — only the tags Divi injects margins onto */
.lcsp-service-area-page .lcsp-card-body p,
.lcsp-service-area-page .lcsp-card-body h1,
.lcsp-service-area-page .lcsp-card-body h2,
.lcsp-service-area-page .lcsp-card-body h3,
.lcsp-service-area-page .lcsp-card-body h4,
.lcsp-service-area-page .lcsp-card-body blockquote {
	margin: 0 !important;
	padding: 0 !important;
}

/* Re-apply only the spacing we actually want */
.lcsp-card-rating { font-size: 11px; line-height: 1; }
.lcsp-card-rating .lcsp-stars { font-size: 11px !important; letter-spacing: 0; }
.lcsp-card-title { font-size: .9rem; font-weight: 700; line-height: 1.25; }
.lcsp-card-title a { text-decoration: none; color: inherit; }
.lcsp-card-title a:hover { color: var(--lcsp-color-accent, #2271b1); }
.lcsp-card-result {
	color: #2e7d32; font-size: .78rem;
	display: flex; align-items: flex-start; gap: 4px;
	line-height: 1.4;
}
.lcsp-result-icon { color: #2e7d32; font-weight: 700; flex-shrink: 0; }
.lcsp-card-quote {
	font-style: italic; font-size: .8rem; color: #666;
	border-left: 3px solid #ddd;
	padding: 4px 0 4px 10px;
	line-height: 1.4;
}
.lcsp-card-cta {
	display: inline-flex; align-items: center; gap: 4px;
	font-size: .78rem; font-weight: 600;
	color: var(--lcsp-color-accent, #2271b1);
	text-decoration: none;
}
.lcsp-card-cta:hover { text-decoration: underline; }

/* ── Minimal ─────────────────────────────────────────── */
.lcsp-card--minimal { text-decoration: none; color: inherit; }
.lcsp-card--minimal:hover { color: inherit; }
.lcsp-card--minimal .lcsp-card-body { padding: 8px 10px !important; }
.lcsp-card--minimal .lcsp-card-image { padding-top: 56%; }
.lcsp-card--minimal .lcsp-card-title { font-size: .88rem; font-weight: 600; }

/* ── Standard ────────────────────────────────────────── */
.lcsp-card--standard .lcsp-card-body { padding: 8px 10px !important; }
.lcsp-card--standard .lcsp-card-top-row {
	display: flex; align-items: center;
	justify-content: space-between; flex-wrap: wrap;
	gap: 0;
	padding-bottom: 2px !important;
}
.lcsp-card--standard .lcsp-card-title { font-size: .9rem; padding-bottom: 1px !important; }
.lcsp-card--standard .lcsp-card-type { font-size: .72rem; color: #888; }
.lcsp-card--standard .lcsp-card-result { font-size: .75rem; padding-top: 2px !important; }
.lcsp-card--standard .lcsp-card-cta { font-size: .75rem; padding-top: 6px !important; }

/* ── Full ────────────────────────────────────────────── */
.lcsp-card--full .lcsp-card-body { padding: 14px 16px !important; }
.lcsp-card--full .lcsp-card-rating { font-size: 14px; padding-bottom: 5px !important; }
.lcsp-card--full .lcsp-card-rating .lcsp-stars { font-size: 14px !important; }
.lcsp-card--full .lcsp-card-title { font-size: 1rem; padding-bottom: 4px !important; }
.lcsp-card--full .lcsp-card-meta-inline { gap: 2px 6px; font-size: .8rem; padding-bottom: 4px !important; }
.lcsp-card--full .lcsp-card-result { font-size: .8rem; padding-top: 4px !important; }
.lcsp-card--full .lcsp-card-quote {
	font-size: .85rem;
	border-left: 3px solid #e0e0e0;
	padding: 6px 0 6px 12px !important;
	padding-top: 6px !important;
	margin-top: 6px !important;
}
.lcsp-card--full .lcsp-card-cta { font-size: .85rem; padding-top: 10px !important; }

/* ── Shared card elements ────────────────────────────── */
.lcsp-card-location-badge {
	display: inline-block;
	font-size: .68rem; font-weight: 600;
	text-transform: uppercase; letter-spacing: .04em;
	color: var(--lcsp-color-accent, #2271b1);
	background: rgba(34,113,177,.08);
	padding: 1px 7px;
	border-radius: 20px; line-height: 1.6;
}
.lcsp-card-meta-inline {
	display: flex; flex-wrap: wrap;
	gap: 2px 8px; font-size: .75rem;
	color: #888; line-height: 1.4;
}
.lcsp-card-meta-inline span { white-space: normal; word-break: break-word; }
.lcsp-card-meta-inline span + span::before { content: "·"; margin-right: 8px; }
.lcsp-card-top-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 3px; }

/* ── Archive ─────────────────────────────────────────────── */
.lcsp-archive-page { padding: 48px 0; }
.lcsp-archive-title { font-size: 2rem; font-weight: 700; margin-bottom: 24px; }
.lcsp-archive-grid { margin-top: 0; } /* inherits lcsp-cards-grid layout */

/* Filter bar */
.lcsp-archive-filters { margin-bottom: 32px; }
.lcsp-filter-row {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}
.lcsp-filter-select {
	padding: 8px 12px;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: .9rem;
	background: #fff;
	cursor: pointer;
	min-width: 160px;
}
.lcsp-filter-select:focus { outline: 2px solid var(--lcsp-color-accent, #2271b1); border-color: transparent; }
.lcsp-filter-reset {
	font-size: .85rem;
	color: #888;
	text-decoration: none;
	padding: 4px 8px;
	border-radius: 4px;
	transition: background .15s;
}
.lcsp-filter-reset:hover { background: #f0f0f0; color: #333; text-decoration: none; }
.lcsp-filter-count {
	font-size: .8rem;
	color: #aaa;
	margin-left: auto;
}

/* ── Lightbox overrides (simple built-in) ────────────────── */
.lcsp-lightbox-overlay {
	position: fixed; inset: 0; z-index: 99999;
	background: rgba(0,0,0,.92);
	display: flex; align-items: center; justify-content: center;
}
.lcsp-lightbox-img { max-width: 90vw; max-height: 90vh; border-radius: 4px; }
.lcsp-lightbox-close {
	position: absolute; top: 16px; right: 20px;
	font-size: 2rem; color: #fff; cursor: pointer;
	background: none; border: none; line-height: 1;
}
.lcsp-lightbox-prev, .lcsp-lightbox-next {
	position: absolute; top: 50%; transform: translateY(-50%);
	font-size: 2rem; color: #fff; cursor: pointer;
	background: none; border: none;
}
.lcsp-lightbox-prev { left: 20px; }
.lcsp-lightbox-next { right: 20px; }
