/*
 * LAPObesity theme — front-end styles.
 *
 * Tokens come from theme.json presets (--wp--preset--*), aliased below so the
 * whole palette can be changed in one place. Calculators are styled by the
 * LAPObesity Tools plugin; this file only maps the plugin's --lapo-* variables
 * to the theme palette (see "Plugin integration").
 */

/* ===================== Tokens ===================== */

:root {
	--c-primary: var(--wp--preset--color--primary, #2f5d50);
	--c-primary-dark: var(--wp--preset--color--primary-dark, #1f4237);
	--c-sage: var(--wp--preset--color--sage, #e8f0ec);
	--c-accent: var(--wp--preset--color--accent, #b8642c);
	--c-ink: var(--wp--preset--color--ink, #1d2724);
	--c-muted: var(--wp--preset--color--muted, #55625d);
	--c-border: var(--wp--preset--color--border, #dce3df);
	--c-surface: var(--wp--preset--color--surface, #ffffff);
	--c-bg: var(--wp--preset--color--background, #f6f8f7);
	--c-focus: #c86a2b;

	--radius-lg: 18px;
	--radius: 14px;
	--radius-sm: 10px;
	--shadow-sm: 0 1px 2px rgba(18, 38, 31, .05);
	--shadow: 0 1px 2px rgba(18, 38, 31, .04), 0 8px 24px rgba(18, 38, 31, .06);
	--shadow-lg: 0 2px 4px rgba(18, 38, 31, .04), 0 18px 48px rgba(18, 38, 31, .10);

	--container: 75rem;
	--container-narrow: 46rem;
	--gutter: clamp(1rem, 4vw, 2rem);
	--section-y: clamp(3.5rem, 8vw, 6rem);
	--header-h: 72px;

	--font: var(--wp--preset--font-family--inter, ui-sans-serif, system-ui, sans-serif);
}

/* ===================== Base ===================== */

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-padding-top: 1rem; }

@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}

body {
	margin: 0;
	font-family: var(--font);
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--c-ink);
	background: var(--c-bg);
	font-feature-settings: "cv11", "ss01";
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-wrap: break-word;
}

img, svg, video { max-width: 100%; height: auto; }
svg.icon { flex: 0 0 auto; height: auto; }

a { color: var(--c-primary); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--c-primary-dark); }

h1, h2, h3, h4 { line-height: 1.2; letter-spacing: -.015em; margin: 0 0 .6em; color: var(--c-ink); }

:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 2px; border-radius: 4px; }
.site-main:focus { outline: none; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0);
	white-space: nowrap; border: 0;
}

.skip-link:focus {
	position: fixed !important;
	top: .75rem; left: .75rem;
	width: auto; height: auto;
	clip: auto; margin: 0;
	padding: .75rem 1.1rem;
	z-index: 1000;
	background: var(--c-surface);
	color: var(--c-primary);
	font-weight: 600;
	border-radius: var(--radius-sm);
	box-shadow: var(--shadow-lg);
	white-space: normal;
}

.container {
	width: 100%;
	max-width: calc(var(--container) + 2 * var(--gutter));
	margin-inline: auto;
	padding-inline: var(--gutter);
}
.container--narrow { max-width: calc(var(--container-narrow) + 2 * var(--gutter)); }

/* ===================== Buttons & chips ===================== */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	min-height: 48px;
	padding: .7rem 1.35rem;
	border-radius: var(--radius-sm);
	border: 1px solid transparent;
	font: inherit;
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s;
}
.btn--primary { background: var(--c-primary); color: #fff; }
.btn--primary:hover { background: var(--c-primary-dark); color: #fff; }
.btn--ghost { background: transparent; border-color: var(--c-border); color: var(--c-primary); }
.btn--ghost:hover { border-color: var(--c-primary); }
.btn--small { min-height: 44px; padding: .55rem 1rem; font-size: .9375rem; }

.chip {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: .4rem .95rem;
	border-radius: 999px;
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	color: var(--c-ink);
	font-size: .9375rem;
	font-weight: 500;
	text-decoration: none;
	transition: border-color .15s, color .15s;
}
.chip:hover { border-color: var(--c-primary); color: var(--c-primary); }

.link-arrow {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	min-height: 44px;
	font-weight: 600;
	text-decoration: none;
}
.link-arrow:hover .icon { transform: translateX(3px); }
.link-arrow .icon { transition: transform .15s; }

.icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px; height: 44px;
	padding: 0;
	border: 1px solid transparent;
	border-radius: var(--radius-sm);
	background: transparent;
	color: var(--c-ink);
	cursor: pointer;
}
.icon-btn:hover { background: var(--c-sage); color: var(--c-primary); }
.icon-btn[aria-expanded="true"] { background: var(--c-sage); color: var(--c-primary); }

.notice-box {
	padding: 1rem 1.25rem;
	border-radius: var(--radius);
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	color: var(--c-muted);
}

/* ===================== Header ===================== */

.site-header {
	position: relative;
	z-index: 50;
	background: rgba(255, 255, 255, .96);
	border-bottom: 1px solid var(--c-border);
}

.site-header__inner {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	min-height: var(--header-h);
}

.brand,
.custom-logo-link {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	text-decoration: none;
	color: var(--c-ink);
	flex: 0 0 auto;
	min-height: 44px;
}
.custom-logo { max-height: 44px; width: auto; }
.brand__name { font-size: 1.25rem; font-weight: 600; letter-spacing: -.02em; color: var(--c-primary); }
.brand__lap { font-weight: 800; color: var(--c-ink); }

.site-nav { margin-left: auto; }
.site-nav__list { display: flex; flex-wrap: wrap; gap: .25rem; list-style: none; margin: 0; padding: 0; }
.site-nav__list a {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: .4rem .8rem;
	border-radius: var(--radius-sm);
	color: var(--c-ink);
	font-weight: 500;
	font-size: .9688rem;
	text-decoration: none;
}
.site-nav__list a:hover { background: var(--c-sage); color: var(--c-primary); }
.site-nav__list .current-menu-item > a,
.site-nav__list .current_page_item > a,
.site-nav__list a[aria-current="page"] { color: var(--c-primary); background: var(--c-sage); font-weight: 600; }
.site-nav__list .sub-menu { list-style: none; margin: 0; padding: 0 0 0 1rem; }

.site-header__actions { display: flex; align-items: center; gap: .35rem; }
.nav-toggle { display: none; }
.nav-toggle__close { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__close { display: inline-flex; }

@media (min-width: 1080px) {
	.site-nav__list .menu-item-has-children { position: relative; }
	.site-nav__list .sub-menu {
		position: absolute; top: 100%; left: 0; min-width: 14rem;
		padding: .4rem; background: var(--c-surface);
		border: 1px solid var(--c-border); border-radius: var(--radius);
		box-shadow: var(--shadow-lg);
		opacity: 0; visibility: hidden; transform: translateY(4px);
		transition: opacity .15s, transform .15s, visibility .15s;
	}
	.site-nav__list .menu-item-has-children:hover > .sub-menu,
	.site-nav__list .menu-item-has-children:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
}

@media (min-width: 1080px) {
	.site-nav__list .menu-item--all { display: none; }
}

@media (max-width: 1079.98px) {
	.site-header__cta { display: none; }
	.nav-toggle { display: inline-flex; }
	.site-header__actions { margin-left: auto; }
	.js .site-nav {
		display: none;
		position: absolute;
		left: 0; right: 0; top: 100%;
		margin: 0;
		padding: .75rem var(--gutter) 1.25rem;
		background: var(--c-surface);
		border-bottom: 1px solid var(--c-border);
		box-shadow: var(--shadow-lg);
	}
	.js .site-nav.is-open { display: block; }
	.site-nav__list { flex-direction: column; gap: .15rem; }
	.site-nav__list a { min-height: 48px; font-size: 1.0625rem; }
	/* Without JavaScript the menu stays visible under the logo. */
	html:not(.js) .site-header__inner { flex-wrap: wrap; }
	html:not(.js) .site-nav { order: 3; width: 100%; margin: 0 0 .75rem; }
	html:not(.js) .nav-toggle,
	html:not(.js) .search-toggle { display: none; }
}

.header-search {
	border-top: 1px solid var(--c-border);
	background: var(--c-surface);
	padding: 1rem 0 1.25rem;
}

/* ===================== Tool search ===================== */

.tool-search {
	position: relative;
	display: flex;
	align-items: center;
	max-width: 40rem;
	background: var(--c-surface);
	border: 1px solid #b7c4be;
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	transition: border-color .15s, box-shadow .15s;
}
.tool-search:focus-within { border-color: var(--c-primary); outline: 3px solid var(--c-focus); outline-offset: 2px; }
.tool-search__icon { display: inline-flex; padding-left: 1rem; color: var(--c-muted); }
.tool-search__input {
	flex: 1 1 auto;
	min-width: 0;
	min-height: 56px;
	padding: .75rem .85rem;
	border: 0;
	background: transparent;
	font: inherit;
	font-size: 1.0625rem;
	color: var(--c-ink);
	-webkit-appearance: none;
	appearance: none;
}
.tool-search__input:focus { outline: none; }
.tool-search__input::placeholder { color: #6b7873; }
.tool-search__input::-webkit-search-cancel-button { cursor: pointer; }
.tool-search__submit {
	margin: .35rem;
	min-height: 46px;
	padding: .55rem 1.15rem;
	border: 0;
	border-radius: var(--radius-sm);
	background: var(--c-primary);
	color: #fff;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.tool-search__submit:hover { background: var(--c-primary-dark); }

.tool-search__results {
	position: absolute;
	top: calc(100% + .5rem);
	left: 0; right: 0;
	z-index: 30;
	margin: 0;
	padding: .4rem;
	list-style: none;
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
	box-shadow: var(--shadow-lg);
	max-height: 22rem;
	overflow-y: auto;
}
.tool-search__results a,
.tool-search__results .is-soon,
.tool-search__results .is-empty {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 48px;
	padding: .5rem .75rem;
	border-radius: var(--radius-sm);
	color: var(--c-ink);
	text-decoration: none;
}
.tool-search__results a:hover,
.tool-search__results a:focus-visible { background: var(--c-sage); color: var(--c-primary); outline-offset: -2px; }
.tool-search__results small { color: var(--c-muted); font-size: .8125rem; white-space: nowrap; }
.tool-search__results .is-soon { color: var(--c-muted); }
.tool-search__results .is-empty { color: var(--c-muted); font-size: .9375rem; }

@media (max-width: 520px) {
	.tool-search__submit { padding-inline: .9rem; }
	.tool-search__icon { padding-left: .8rem; }
	.tool-search__input { padding-inline: .6rem; font-size: 1rem; }
}

/* ===================== Hero ===================== */

.hero {
	position: relative;
	overflow: hidden;
	padding: clamp(3rem, 7vw, 5.5rem) 0 clamp(3rem, 7vw, 5rem);
	background:
		radial-gradient(60rem 30rem at 85% -10%, rgba(47, 93, 80, .10), transparent 60%),
		radial-gradient(40rem 22rem at -10% 110%, rgba(184, 100, 44, .07), transparent 60%),
		linear-gradient(180deg, #fff 0%, var(--c-bg) 100%);
	border-bottom: 1px solid var(--c-border);
}
.hero__inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; align-items: center; }

@media (min-width: 1000px) {
	.hero__inner { grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); }
}

.hero__pills { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0 0 1.5rem; padding: 0; }
.hero__pills li {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .3rem .75rem;
	border-radius: 999px;
	background: var(--c-sage);
	color: var(--c-primary-dark);
	font-size: .875rem;
	font-weight: 500;
}
.hero__title {
	font-size: clamp(2.25rem, 5.4vw, 3.6rem);
	line-height: 1.06;
	letter-spacing: -.035em;
	font-weight: 750;
	margin: 0 0 1.1rem;
	max-width: 15em;
	text-wrap: balance;
}
.hero__lead {
	font-size: clamp(1.0625rem, 1.6vw, 1.25rem);
	color: var(--c-muted);
	max-width: 36em;
	margin: 0 0 2rem;
}
.hero__quick { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 1.25rem 0 0; font-size: .9375rem; color: var(--c-muted); }
.hero__quick > span { margin-right: .25rem; }

.hero__visual { position: relative; display: none; min-height: 25rem; }
@media (min-width: 1000px) { .hero__visual { display: block; } }

.demo-card {
	position: absolute;
	top: 0; right: 0;
	width: min(100%, 21rem);
	padding: 1.5rem;
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-lg);
}
.demo-card--small {
	top: auto; right: auto;
	bottom: 0; left: -1rem;
	width: 13.5rem;
	z-index: 1;
	padding: 1.15rem 1.25rem;
}
.demo-card p { margin: 0; }
.demo-card__tag {
	display: inline-block;
	margin-bottom: .9rem !important;
	padding: .15rem .55rem;
	border-radius: 6px;
	background: var(--c-bg);
	color: var(--c-muted);
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.demo-card__label { color: var(--c-muted); font-size: .875rem; }
.demo-card__value { font-size: 2.4rem; font-weight: 750; letter-spacing: -.03em; color: var(--c-primary); line-height: 1.15; font-variant-numeric: tabular-nums; }
.demo-card--small .demo-card__value { font-size: 1.8rem; }
.demo-card__value span { font-size: .9rem; font-weight: 500; color: var(--c-muted); letter-spacing: 0; }
.demo-card__bar { display: flex; gap: 3px; height: .6rem; margin: 1rem 0; border-radius: 999px; overflow: hidden; }
.demo-card__bar span:nth-child(1) { background: var(--c-primary); }
.demo-card__bar span:nth-child(2) { background: #c9a227; }
.demo-card__bar span:nth-child(3) { background: var(--c-accent); }
.demo-card__macros { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin: 0; }
.demo-card__macros dt { font-size: .75rem; color: var(--c-muted); }
.demo-card__macros dd { margin: 0; font-weight: 650; font-variant-numeric: tabular-nums; }
.demo-card__badge {
	display: inline-block;
	margin-top: .4rem !important;
	padding: .15rem .6rem;
	border-radius: 999px;
	background: #e1f0e8;
	color: #1f5c40;
	font-size: .8125rem;
	font-weight: 600;
}

/* ===================== Sections ===================== */

.section { padding: var(--section-y) 0; }
.section + .section { padding-top: 0; }
.section--tracking,
.section--trust { padding-top: var(--section-y) !important; }
.section--tracking { background: var(--c-surface); border-block: 1px solid var(--c-border); padding-bottom: var(--section-y); }

.section__header { max-width: 44rem; margin-bottom: 2rem; }
.section__header--row { max-width: none; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 1.5rem; }
.section__title { font-size: clamp(1.65rem, 3.2vw, 2.25rem); letter-spacing: -.025em; margin: 0 0 .5rem; }
.section__lead { color: var(--c-muted); margin: 0; font-size: 1.0625rem; }
.section__subtitle { font-size: 1.25rem; margin: 2.5rem 0 1rem; }
.section__more { margin: 1.75rem 0 0; }

/* ===================== Tool cards ===================== */

.card-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17.5rem), 1fr)); }
.card-grid--compact { grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: .75rem; }

.tool-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: .9rem;
	padding: 1.4rem;
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	transition: border-color .15s, box-shadow .15s, transform .15s;
}
.tool-card:not(.tool-card--soon):hover {
	border-color: rgba(47, 93, 80, .45);
	box-shadow: var(--shadow);
}
@media (prefers-reduced-motion: no-preference) {
	.tool-card:not(.tool-card--soon):hover { transform: translateY(-2px); }
}
.tool-card:focus-within { border-color: var(--c-primary); }

.tool-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px; height: 48px;
	border-radius: 12px;
	background: var(--c-sage);
	color: var(--c-primary);
}
.tool-card__body { flex: 1 1 auto; }
.tool-card__eyebrow { margin: 0 0 .25rem; font-size: .8125rem; font-weight: 600; letter-spacing: .02em; color: var(--c-muted); }
.tool-card__title { margin: 0; font-size: 1.1875rem; font-weight: 650; letter-spacing: -.01em; line-height: 1.3; }
.tool-card__link { color: var(--c-ink); text-decoration: none; }
.tool-card__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.tool-card__link:focus-visible { outline: none; }
.tool-card__link:focus-visible::after { outline: 3px solid var(--c-focus); outline-offset: 2px; }
.tool-card__desc { margin: .45rem 0 0; color: var(--c-muted); font-size: .9688rem; line-height: 1.55; }
.tool-card__cta {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	color: var(--c-primary);
	font-weight: 600;
	font-size: .9375rem;
}
.tool-card:hover .tool-card__cta .icon { transform: translateX(3px); }
.tool-card__cta .icon { transition: transform .15s; }
.tool-card__badge {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	align-self: flex-start;
	padding: .2rem .6rem;
	border-radius: 999px;
	background: var(--c-bg);
	border: 1px solid var(--c-border);
	color: var(--c-muted);
	font-size: .8125rem;
	font-weight: 600;
	white-space: nowrap;
}
.tool-card--soon { background: rgba(255, 255, 255, .6); box-shadow: none; }
.tool-card--soon .tool-card__icon { background: var(--c-bg); color: var(--c-muted); }
.tool-card--soon .tool-card__title { color: var(--c-muted); }
.tool-card__admin { margin: 0; font-size: .8125rem; color: #8a3b12; position: relative; z-index: 1; }

@media (max-width: 599.98px) {
	.tool-card--feature { display: grid; grid-template-columns: auto 1fr; gap: .25rem 1rem; padding: 1.1rem 1.15rem; }
	.tool-card--feature .tool-card__icon { width: 44px; height: 44px; grid-row: span 2; }
	.tool-card--feature .tool-card__cta { display: none; }
	.tool-card--feature .tool-card__desc { font-size: .9375rem; margin-top: .25rem; }
	.tool-card--feature .tool-card__badge { grid-column: 2; }
	.card-grid { gap: .75rem; }
}

/* Compact rows inside categories and "more" strips */
.tool-card--compact {
	flex-direction: row;
	align-items: center;
	gap: .8rem;
	padding: .75rem .9rem;
	border-radius: var(--radius);
	box-shadow: none;
	min-height: 64px;
}
.tool-card--compact .tool-card__icon { width: 38px; height: 38px; border-radius: 10px; }
.tool-card--compact .tool-card__title { font-size: 1rem; font-weight: 600; }
.tool-card--compact .tool-card__cta { margin-left: auto; color: var(--c-muted); }
.tool-card--compact:hover .tool-card__cta { color: var(--c-primary); }
.tool-card--compact { flex-wrap: wrap; }
.tool-card--compact .tool-card__body { flex: 1 1 9rem; min-width: 0; }
.tool-card--compact .tool-card__badge { margin-left: auto; align-self: center; }

.filter-empty { margin: 1.25rem 0 0; color: var(--c-muted); }
[data-filterable] .tool-card[hidden] { display: none; }

/* ===================== Categories ===================== */

.category-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); }
.category {
	padding: 1.5rem;
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--radius-lg);
	scroll-margin-top: 1rem;
}
.category:focus { outline: none; }
.category:target { border-color: var(--c-primary); box-shadow: 0 0 0 3px rgba(47, 93, 80, .15); }
.category__header { display: flex; align-items: center; gap: .9rem; margin-bottom: .75rem; }
.category__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 46px; height: 46px; border-radius: 12px;
	background: var(--c-primary); color: #fff;
	flex: 0 0 auto;
}
.category__title { margin: 0; font-size: 1.1875rem; }
.category__count { margin: .1rem 0 0; font-size: .875rem; color: var(--c-muted); }
.category__desc { margin: 0 0 1.1rem; color: var(--c-muted); font-size: .9688rem; }
.category__tools { display: grid; gap: .5rem; }
.category .tool-card--compact { background: var(--c-bg); border-color: transparent; }
.category .tool-card--compact:not(.tool-card--soon):hover { background: var(--c-surface); border-color: rgba(47, 93, 80, .45); }
.category .tool-card--soon { background: transparent; border: 1px dashed var(--c-border); }

/* ===================== Features (tracking) ===================== */

.feature-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)); }
.feature {
	display: flex;
	flex-direction: column;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border-radius: var(--radius-lg);
	background: linear-gradient(160deg, var(--c-sage) 0%, #f4f8f6 70%);
	border: 1px solid #d3e2da;
}
.feature__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.feature__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 56px; height: 56px; border-radius: 14px;
	background: var(--c-surface); color: var(--c-primary);
	box-shadow: var(--shadow-sm);
}
.feature__title { font-size: 1.375rem; margin: 0 0 .5rem; }
.feature__desc { color: var(--c-muted); margin: 0 0 1.25rem; }
.feature .btn { align-self: flex-start; margin-top: 1.25rem; }

.check-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.check-list li { display: flex; gap: .6rem; align-items: flex-start; font-size: .9688rem; }
.check-list .icon { color: var(--c-primary); margin-top: .2rem; }

/* ===================== Trust ===================== */

.trust-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
.trust { padding: 1.5rem; border-radius: var(--radius-lg); background: var(--c-surface); border: 1px solid var(--c-border); }
.trust__icon { display: inline-flex; color: var(--c-primary); margin-bottom: .75rem; }
.trust__title { font-size: 1.125rem; margin: 0 0 .4rem; }
.trust p { margin: 0; color: var(--c-muted); font-size: .9688rem; }

/* ===================== Articles ===================== */

.post-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); }
.post-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--radius-lg);
	overflow: hidden;
	transition: border-color .15s, box-shadow .15s;
}
.post-card:hover { border-color: rgba(47, 93, 80, .45); box-shadow: var(--shadow); }
.post-card__thumb img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.post-card__body { padding: 1.25rem 1.4rem 1.4rem; }
.post-card__title { font-size: 1.1875rem; margin: 0 0 .35rem; }
.post-card__title a { color: var(--c-ink); text-decoration: none; }
.post-card__title a::after { content: ""; position: absolute; inset: 0; }
.post-card__title a:focus-visible { outline: none; }
.post-card__title a:focus-visible::after { outline: 3px solid var(--c-focus); outline-offset: -3px; border-radius: var(--radius-lg); }
.post-card__excerpt { margin: .5rem 0 0; color: var(--c-muted); font-size: .9688rem; }
.entry-meta { margin: 0; color: var(--c-muted); font-size: .875rem; }

.pagination, .nav-links { display: flex; flex-wrap: wrap; gap: .4rem; margin: 2rem 0 0; }
.page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 44px; min-height: 44px; padding: 0 .8rem;
	border-radius: var(--radius-sm); border: 1px solid var(--c-border);
	background: var(--c-surface); text-decoration: none; color: var(--c-ink);
}
.page-numbers.current { background: var(--c-primary); color: #fff; border-color: var(--c-primary); }

/* ===================== Page headers & breadcrumbs ===================== */

.breadcrumbs { font-size: .875rem; margin: 0 0 1.25rem; color: var(--c-muted); }
.breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: .15rem; list-style: none; margin: 0; padding: 0; }
.breadcrumbs li { display: inline-flex; align-items: center; gap: .15rem; }
.breadcrumbs a { color: var(--c-muted); text-decoration: none; padding: .55rem .15rem; }
.breadcrumbs a:hover { color: var(--c-primary); text-decoration: underline; }
.breadcrumbs .icon { color: #9aa6a1; }
.breadcrumbs [aria-current] { color: var(--c-ink); font-weight: 500; }

.entry-header { padding: clamp(2rem, 5vw, 3.25rem) 0 clamp(1.5rem, 3vw, 2rem); }
.entry-title { font-size: clamp(2rem, 4.5vw, 2.85rem); letter-spacing: -.03em; margin: 0 0 .5rem; text-wrap: balance; }
.archive__desc { color: var(--c-muted); max-width: 44rem; }
.archive { padding-bottom: var(--section-y); }
.archive--search .tool-search,
.archive--404 .tool-search { margin-top: 1.5rem; }

/* Calculator page */
.calc-page__header {
	padding: clamp(1.75rem, 4vw, 2.75rem) 0 clamp(1.25rem, 3vw, 2rem);
	background: linear-gradient(180deg, #fff 0%, var(--c-bg) 100%);
	border-bottom: 1px solid var(--c-border);
}
.calc-page__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	margin: 0 0 .75rem;
	font-size: .875rem;
	font-weight: 600;
	color: var(--c-primary);
}
.calc-page__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 32px; height: 32px; border-radius: 9px; background: var(--c-sage);
}
.calc-page__title { font-size: clamp(2rem, 4.5vw, 2.85rem); letter-spacing: -.03em; margin: 0 0 .5rem; }
.calc-page__lead { margin: 0; max-width: 44rem; color: var(--c-muted); font-size: 1.125rem; }
.calc-page__content { padding-top: clamp(1.25rem, 3vw, 2rem); padding-bottom: 1rem; }
.calc-page__content > :not(.lapo-tool):not(.alignwide):not(.alignfull):not(.wp-block-lapobesity-tool) { max-width: var(--container-narrow); }
.calc-page__content > p:first-child { font-size: 1.125rem; color: var(--c-muted); }
.calc-page__more { padding: 2.5rem 0 var(--section-y); border-top: 1px solid var(--c-border); background: var(--c-surface); }
.calc-page__more-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 1rem; margin-bottom: 1.25rem; }
.calc-page__more h2 { font-size: 1.375rem; margin: 0; }

.lapob-tool-missing { padding: 1.25rem; border-radius: var(--radius); background: #fbf3e2; border: 1px solid #ecd8ad; }
.lapob-tool-missing p { margin: 0; }

/* ===================== Entry content ===================== */

.entry-content { padding-bottom: var(--section-y); }
.entry-content > * { margin-block: 0 1.25rem; }
/* Typography for editor content only: never reach inside a calculator (.lapo-tool), which has its own styles. */
.entry-content h2:not(.lapo-tool *) { font-size: clamp(1.5rem, 3vw, 1.85rem); margin-top: 2.5rem; }
.entry-content h3:not(.lapo-tool *) { font-size: 1.3rem; margin-top: 2rem; }
.entry-content ul:not(.lapo-tool *),
.entry-content ol:not(.lapo-tool *) { padding-left: 1.4rem; }
.entry-content li:not(.lapo-tool *) { margin: .35rem 0; }
.entry-content blockquote:not(.lapo-tool *) { margin-inline: 0; padding-left: 1.25rem; border-left: 3px solid var(--c-primary); color: var(--c-muted); }
.entry-content table:not(.lapo-tool *) { width: 100%; border-collapse: collapse; font-size: .9688rem; }
.entry-content th:not(.lapo-tool *),
.entry-content td:not(.lapo-tool *) { padding: .6rem .75rem; border-bottom: 1px solid var(--c-border); text-align: left; }
.entry-content img:not(.lapo-tool *) { border-radius: var(--radius); }
.entry-content .alignwide { max-width: var(--container); }
.entry-content .wp-block-button__link { min-height: 48px; display: inline-flex; align-items: center; }
.entry-thumb { margin-block: 0 2rem; }
.entry-thumb img { border-radius: var(--radius-lg); display: block; width: 100%; }
.alignleft { float: left; margin: .3rem 1.5rem 1rem 0; }
.alignright { float: right; margin: .3rem 0 1rem 1.5rem; }
.aligncenter { margin-inline: auto; }
.wp-caption-text, figcaption { font-size: .875rem; color: var(--c-muted); }

.cta-tools { margin-bottom: 2.5rem; padding: 1.5rem; border-radius: var(--radius-lg); background: var(--c-sage); }
.cta-tools h2 { font-size: 1.25rem; margin: 0 0 1rem; }

.post-navigation .nav-links { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.post-navigation a { display: block; padding: 1rem 1.25rem; border: 1px solid var(--c-border); border-radius: var(--radius); background: var(--c-surface); text-decoration: none; color: var(--c-ink); font-weight: 600; }
.post-navigation .nav-label { display: block; font-size: .8125rem; color: var(--c-muted); font-weight: 500; }

.comments { margin: 2.5rem 0 var(--section-y); }
.comment-list { padding-left: 0; list-style: none; }
.comment-list .children { list-style: none; padding-left: 1.5rem; }
.comment-body { padding: 1rem 0; border-bottom: 1px solid var(--c-border); }
.comment-form input:not([type=submit]):not([type=checkbox]),
.comment-form textarea { width: 100%; padding: .7rem .8rem; border: 1px solid #b7c4be; border-radius: var(--radius-sm); font: inherit; }
.comment-form .submit { min-height: 48px; padding: .6rem 1.3rem; border: 0; border-radius: var(--radius-sm); background: var(--c-primary); color: #fff; font: inherit; font-weight: 600; cursor: pointer; }

/* WordPress core classes */
.sticky .post-card__title::before { content: "★ "; color: var(--c-accent); }
.bypostauthor > .comment-body { border-left: 3px solid var(--c-sage); padding-left: 1rem; }
.gallery-caption { font-size: .875rem; color: var(--c-muted); }
.entry-tags { margin: 0 0 2rem; font-size: .9375rem; color: var(--c-muted); }

/* ===================== Footer ===================== */

.site-footer {
	margin-top: 0;
	padding: clamp(3rem, 6vw, 4.5rem) 0 2rem;
	background: var(--c-primary-dark);
	color: #dbe7e1;
	font-size: .9688rem;
}
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; color: #fff; }
.site-footer__grid { display: grid; gap: 2.25rem 2rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); }
@media (min-width: 1000px) {
	.site-footer__grid { grid-template-columns: 1.6fr repeat(4, 1fr); }
}
.site-footer .brand__name,
.site-footer .brand__lap { color: #fff; }
.site-footer .brand__mark rect { fill: #fff; }
.site-footer .brand__mark path:first-of-type { stroke: var(--c-primary-dark); }
.site-footer .brand__mark path:last-of-type { stroke: var(--c-accent); }
.footer-brand__text { margin: 1rem 0; max-width: 22rem; }
.footer-brand__privacy { display: flex; gap: .5rem; align-items: flex-start; margin: 0; max-width: 22rem; font-size: .875rem; color: #c9d9d1; }
.footer-brand__privacy .icon { margin-top: .2rem; }
.footer-col__title { margin: 0 0 .75rem; font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; color: #b9cdc4; font-weight: 700; }
.footer-col__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.footer-col__list a { display: inline-flex; align-items: center; min-height: 40px; }

.health-notice {
	display: flex;
	gap: .75rem;
	align-items: flex-start;
	margin: 2.5rem 0 1.5rem;
	padding: 1.1rem 1.25rem;
	border-radius: var(--radius);
	background: rgba(255, 255, 255, .07);
	border: 1px solid rgba(255, 255, 255, .14);
	font-size: .9063rem;
	color: #e3ece8;
}
.health-notice .icon { margin-top: .15rem; color: #f3c7a6; }
.health-notice p { margin: 0; }
.site-footer__bottom { margin: 0; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, .14); font-size: .875rem; color: #c9d9d1; }

/* ===================== Plugin integration (LAPObesity Tools) ===================== */

/*
 * The plugin scopes its design tokens to .lapo-tool. `body .lapo-tool` wins on
 * specificity, so the calculators follow the theme palette and font without
 * editing the plugin. Only colours, radii and font are mapped; layout stays
 * the plugin's.
 */
body .lapo-tool {
	--lapo-primary: var(--c-primary);
	--lapo-primary-hover: var(--c-primary-dark);
	--lapo-primary-soft: var(--c-sage);
	--lapo-accent: var(--c-focus);
	--lapo-text: var(--c-ink);
	--lapo-muted: var(--c-muted);
	--lapo-border: var(--c-border);
	--lapo-surface: var(--c-surface);
	--lapo-bg-soft: var(--c-bg);
	--lapo-radius: var(--radius-lg);
	--lapo-radius-sm: var(--radius-sm);
	font-family: var(--font);
	margin-top: 0;
}
body .lapo-tool .lapo-hero__number { letter-spacing: -.035em; }
body .lapo-tool .lapo-section h2 { letter-spacing: -.02em; }
body .lapo-tool__info { max-width: var(--container-narrow); }
body .lapo-tool .lapo-related a { text-decoration: none; }

/* ===================== Print ===================== */

@media print {
	.site-header, .site-footer, .calc-page__more, .cta-tools, .tool-search { display: none !important; }
	body { background: #fff; }
}
