/* ==========================================================================
   LifeSkills Cares — theme design system
   Deep evergreen · action green · refined gold · warm cream
   Companion stylesheet for Elementor Pro. Elementor Global Colors/Fonts
   should be set to match the tokens below (see readme.txt).
   ========================================================================== */

:root {
	--lsc-ink: #0f2e26;
	--lsc-ink-2: #173f34;
	--lsc-ink-soft: #4a6157;
	--lsc-green: #16a05f;
	--lsc-green-dark: #0d7a47;
	--lsc-green-tint: #e3efe8;
	--lsc-gold: #dfa93b;
	--lsc-cream: #f8f6f1;
	--lsc-white: #ffffff;
	--lsc-line: #e6e1d6;
	--lsc-radius: 18px;
	--lsc-radius-sm: 12px;
	--lsc-display: 'Archivo', system-ui, sans-serif;
	--lsc-body: 'Inter', system-ui, sans-serif;
	--lsc-shadow: 0 18px 44px rgba(15, 46, 38, .12);
}

/* ---- Base -------------------------------------------------------------- */

html { scroll-behavior: smooth; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation: none !important; transition: none !important; }
}

body.lsc-theme {
	margin: 0;
	font-family: var(--lsc-body);
	font-size: 16.5px;
	line-height: 1.65;
	color: var(--lsc-ink);
	background: var(--lsc-white);
	-webkit-font-smoothing: antialiased;
}

body.lsc-theme h1,
body.lsc-theme h2,
body.lsc-theme h3,
body.lsc-theme h4 {
	font-family: var(--lsc-display);
	line-height: 1.12;
	letter-spacing: -.015em;
	color: var(--lsc-ink);
}

body.lsc-theme a { color: var(--lsc-green-dark); }

body.lsc-theme a:focus-visible,
body.lsc-theme button:focus-visible,
body.lsc-theme input:focus-visible {
	outline: 3px solid var(--lsc-green);
	outline-offset: 3px;
	border-radius: 6px;
}

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	position: absolute !important;
	height: 1px; width: 1px; overflow: hidden;
}

.skip-link:focus {
	clip: auto;
	height: auto; width: auto;
	left: 0; top: 0;
	background: var(--lsc-ink);
	color: #fff;
	padding: 10px 18px;
	z-index: 100000;
}

/* ---- 100% full width --------------------------------------------------- */
/* Content area carries no max-width; Elementor sections decide their own. */

.lsc-main { width: 100%; margin: 0; padding: 0; }

.lsc-main > .elementor { width: 100%; }

/* Utility container for non-Elementor fallback templates */
.lsc-container {
	max-width: 1240px;
	margin: 0 auto;
	padding: 56px 32px;
}

.lsc-eyebrow {
	font-family: var(--lsc-display);
	font-weight: 700;
	font-size: .78rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--lsc-green-dark);
}

/* ---- Fallback header (used until Elementor Pro header is published) ---- */

.lsc-header {
	background: #fff;
	position: sticky;
	top: 0;
	z-index: 50;
	box-shadow: 0 1px 0 var(--lsc-line);
}

.lsc-header__bar {
	max-width: 1240px;
	margin: 0 auto;
	padding: 14px 32px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.lsc-header__name {
	font-family: var(--lsc-display);
	font-weight: 700;
	font-size: 1.12rem;
	color: var(--lsc-ink);
	text-decoration: none;
	line-height: 1.1;
}

.lsc-header__name span {
	display: block;
	font-weight: 500;
	font-size: .66rem;
	color: var(--lsc-ink-soft);
	letter-spacing: .08em;
	text-transform: uppercase;
	margin-top: 2px;
}

.lsc-menu {
	display: flex;
	list-style: none;
	gap: 4px;
	margin: 0;
	padding: 0;
	align-items: center;
}

.lsc-menu a {
	font-family: var(--lsc-display);
	font-weight: 600;
	font-size: .9rem;
	color: var(--lsc-ink);
	text-decoration: none;
	padding: 10px 15px;
	border-radius: 8px;
	transition: background .15s, color .15s;
	display: inline-block;
}

.lsc-menu a:hover {
	background: var(--lsc-green-tint);
	color: var(--lsc-green-dark);
}

.lsc-nav-toggle {
	display: none;
	background: none;
	border: 2px solid var(--lsc-ink);
	border-radius: 8px;
	padding: 10px 12px;
	cursor: pointer;
}

.lsc-nav-toggle__bars,
.lsc-nav-toggle__bars::before,
.lsc-nav-toggle__bars::after {
	display: block;
	width: 20px;
	height: 2px;
	background: var(--lsc-ink);
	position: relative;
	content: "";
}

.lsc-nav-toggle__bars::before { position: absolute; top: -6px; }
.lsc-nav-toggle__bars::after { position: absolute; top: 6px; }

@media (max-width: 1020px) {
	.lsc-nav { display: none; }
	.lsc-nav.is-open {
		display: block;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: #fff;
		border-bottom: 1px solid var(--lsc-line);
		padding: 12px 32px 22px;
	}
	.lsc-nav.is-open .lsc-menu { flex-direction: column; align-items: stretch; }
	.lsc-nav-toggle { display: block; }
}

/* ---- Fallback page/post/archive styling -------------------------------- */

.lsc-page__content { max-width: 100%; }
.lsc-page__content > * { max-width: 820px; margin-left: auto; margin-right: auto; }
.lsc-page__content > .alignwide { max-width: 1240px; }
.lsc-page__content > .alignfull { max-width: 100%; }
.lsc-page { padding: 56px 32px; }

/* Elementor-built pages: remove the fallback padding entirely */
.lsc-page .elementor { margin: -56px -32px; }

.lsc-single__header { max-width: 820px; margin: 0 auto 28px; }
.lsc-single__title { font-size: clamp(2rem, 4vw, 3rem); margin: 10px 0 0; }
.lsc-single__thumb { max-width: 1240px; margin: 0 auto 36px; }
.lsc-single__thumb img { width: 100%; height: auto; border-radius: var(--lsc-radius); }

.lsc-archive {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

@media (max-width: 1020px) { .lsc-archive { grid-template-columns: 1fr; } }

.lsc-card-post {
	background: #fff;
	border: 1px solid var(--lsc-line);
	border-radius: var(--lsc-radius);
	overflow: hidden;
	transition: transform .15s, box-shadow .15s;
}

.lsc-card-post:hover { transform: translateY(-5px); box-shadow: var(--lsc-shadow); }
.lsc-card-post__img img { width: 100%; height: auto; display: block; }
.lsc-card-post__body { padding: 22px 24px 26px; }
.lsc-card-post__title { font-size: 1.1rem; margin: 8px 0 6px; }
.lsc-card-post__title a { color: var(--lsc-ink); text-decoration: none; }
.lsc-card-post__title a:hover { color: var(--lsc-green-dark); }

/* ---- Buttons (also available as Elementor custom classes) -------------- */

.lsc-btn,
.lsc-btn-green,
.lsc-btn-ink,
.lsc-btn-outline {
	display: inline-block;
	font-family: var(--lsc-display);
	font-weight: 600;
	font-size: .95rem;
	text-decoration: none;
	border-radius: 8px;
	padding: 15px 30px;
	transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
	cursor: pointer;
	border: none;
	letter-spacing: .01em;
}

.lsc-btn-green { background: var(--lsc-green); color: #fff; }
.lsc-btn-green:hover { background: var(--lsc-green-dark); color: #fff; transform: translateY(-2px); box-shadow: 0 10px 24px rgba(22, 160, 95, .35); }
.lsc-btn-ink { background: var(--lsc-ink); color: #fff; }
.lsc-btn-ink:hover { background: var(--lsc-ink-2); color: #fff; transform: translateY(-2px); }
.lsc-btn-outline { background: transparent; color: var(--lsc-ink); border: 2px solid var(--lsc-ink); }
.lsc-btn-outline:hover { transform: translateY(-2px); }

/* ---- Fallback footer ---------------------------------------------------- */

.lsc-footer {
	background: #0a211b;
	color: #bcd8c9;
	font-size: .88rem;
}

.lsc-footer__inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 72px 32px 36px;
	display: grid;
	grid-template-columns: 1.5fr 1fr;
	gap: 44px;
}

@media (max-width: 1020px) { .lsc-footer__inner { grid-template-columns: 1fr; } }

.lsc-footer__brand strong {
	font-family: var(--lsc-display);
	font-weight: 700;
	font-size: 1.1rem;
	color: #fff;
	display: block;
}

.lsc-footer__domain {
	color: #7fa491;
	font-size: .66rem;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.lsc-footer__approvals {
	margin-top: 20px;
	padding: 16px 20px;
	background: rgba(255, 255, 255, .06);
	border-left: 3px solid var(--lsc-gold);
	border-radius: 0 var(--lsc-radius-sm) var(--lsc-radius-sm) 0;
	font-size: .78rem;
	line-height: 1.6;
}

.lsc-footer__approvals b { color: var(--lsc-gold); }

.lsc-footer-menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.lsc-footer-menu a { color: #bcd8c9; text-decoration: none; }
.lsc-footer-menu a:hover { color: #fff; text-decoration: underline; }

.lsc-footer__base {
	border-top: 1px solid rgba(255, 255, 255, .12);
	max-width: 1240px;
	margin: 0 auto;
	padding: 26px 32px 36px;
	font-size: .78rem;
	color: #7fa491;
}

/* ---- WordPress core niceties -------------------------------------------- */

.wp-block-image img, .lsc-page__content img { max-width: 100%; height: auto; }
.aligncenter { margin-left: auto; margin-right: auto; display: block; }
