/* JUST ECO site styles. Only what theme.json cannot express.
 * Palette tokens mirror theme.json. Brand green (#6EC531) is for accents, icons, borders and backgrounds only;
 * text and buttons use green-dark (#3d7a1a). */
:root {
	--je-green: #6EC531;
	--je-green-dark: #3d7a1a;
	--je-green-mid: #5aab28;
	--je-green-pale: #f0fae8;
	--je-navy: #1a2e3b;
	--je-navy-deep: #12192a;
	--je-ink: #1d2a1d;
	--je-muted: #5b675b;
	--je-line: #e3e8df;
	--je-off: #f7f8f6;
	--je-radius: 10px;
	--je-shadow: 0 8px 28px rgba(29, 42, 29, 0.08);
	--je-head: Montserrat, Arial, Helvetica, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; }
.wp-site-blocks { overflow-x: clip; }
img { max-width: 100%; height: auto; }
.wp-site-blocks p { margin: 0 0 1em; }
.wp-site-blocks > * { margin-block-start: 0; }

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, .wp-block-button__link:focus-visible {
	outline: 3px solid var(--je-green-dark);
	outline-offset: 2px;
}
.je-footer a:focus-visible, .je-topbar a:focus-visible, .je-sec--green a:focus-visible, .je-sec--navy a:focus-visible { outline-color: var(--je-green); }

.wp-block-button__link { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; text-align: center; text-decoration: none; }
.wp-block-buttons { gap: 12px; }
.je-btn-ghost .wp-block-button__link { background: #fff; color: var(--je-green-dark); border: 2px solid var(--je-green-dark); }
.je-btn-ghost .wp-block-button__link:hover { background: var(--je-green-pale); color: #2f6213; }
.je-btn-light .wp-block-button__link { background: #fff; color: var(--je-green-dark); }
.je-btn-light .wp-block-button__link:hover { background: var(--je-green-pale); color: #2f6213; }

/* ---------- top bar + header ---------- */
.je-topbar { background: var(--je-navy-deep); color: #e8eeea; font-size: 14px; }
.je-topbar .je-topbar__in { max-width: 1172px; margin: 0 auto; padding: 6px 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2px 20px; }
.je-topbar p { margin: 0; color: #e8eeea; }
.je-topbar a { color: #fff; text-decoration: none; display: inline-block; padding: 4px 0; }
.je-topbar a:hover { text-decoration: underline; }
.je-topbar .je-topbar__items { display: flex; flex-wrap: wrap; gap: 0 22px; margin: 0; }
.je-topbar .wp-block-social-links { margin: 0; gap: 2px; }
.je-topbar .wp-block-social-links .wp-social-link a { padding: 6px; color: #fff; }
.je-topbar .wp-block-social-links .wp-social-link svg { width: 18px; height: 18px; fill: currentColor; }
@media (max-width: 760px) {
	.je-topbar .je-topbar__addr, .je-topbar .wp-block-social-links { display: none; }
	.je-topbar .je-topbar__in { justify-content: center; }
}

.je-header { background: #fff; border-bottom: 1px solid var(--je-line); }
.je-header .je-header__in { max-width: 1172px; margin: 0 auto; padding: 8px 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; min-height: 68px; }
.je-header .wp-block-site-logo { margin: 0; line-height: 0; }
.je-header .wp-block-site-logo img { height: auto; display: block; }
.je-header .wp-block-navigation { margin-left: auto; font-family: var(--je-head); font-weight: 600; font-size: 15px; }
.je-header .wp-block-navigation .wp-block-navigation-item__content { padding: 10px 10px; text-decoration: none; color: var(--je-ink); min-height: 44px; display: inline-flex; align-items: center; }
.je-header .wp-block-navigation .wp-block-navigation-item__content:hover { color: var(--je-green-dark); text-decoration: underline; }
.je-header .wp-block-navigation__responsive-container-open, .je-header .wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; }
.je-header .wp-block-navigation__submenu-container { border: 1px solid var(--je-line); box-shadow: var(--je-shadow); min-width: 280px; }
.je-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { white-space: normal; }
.je-header .je-header__cta { margin: 0; }
.je-header .je-header__cta .wp-block-button__link { font-size: 15px; padding: 0.55rem 1.1rem; white-space: nowrap; }
@media (max-width: 599px) {
	.je-header .je-header__in { flex-wrap: nowrap; gap: 8px; padding: 8px 16px; }
	.je-header .wp-block-navigation { margin-left: 0; }
	.je-header .je-header__cta { margin-left: auto; }
	.je-header .je-header__cta .wp-block-button__link { font-size: 14px; padding: 0.5rem 0.75rem; }
	.je-header .wp-block-site-logo img { max-width: 140px; }
}

/* landing-page header + footer */
.je-lp-header { background: #fff; border-bottom: 1px solid var(--je-line); }
.je-lp-header .je-lp-header__in { max-width: 1172px; margin: 0 auto; padding: 0 16px; min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.je-lp-header .wp-block-site-logo { margin: 0; line-height: 0; }
.je-lp-header .je-lp-call { margin: 0; font-family: var(--je-head); font-weight: 700; white-space: nowrap; }
.je-lp-header .je-lp-call a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; }
@media (max-width: 520px) { .je-lp-header .je-lp-call .je-lbl { display: none; } }
.je-lp-footer { font-size: 14px; color: var(--je-muted); padding: 20px 16px; text-align: center; background: #fff; border-top: 1px solid var(--je-line); }
.je-lp-footer p { margin: 0 0 6px; }

/* ---------- footer ---------- */
.je-footer { background: var(--je-navy-deep); color: #dfe6e2; }
.je-footer a { color: #fff; }
.je-footer .je-footer__news { background: var(--je-navy); padding: 32px 16px; }
.je-footer .je-footer__news-in { max-width: 1140px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: center; }
.je-footer .je-footer__news h2 { color: #fff; font-size: 1.25rem; margin: 0 0 6px; }
.je-footer .je-footer__news p { color: #dfe6e2; margin: 0; }
.je-footer .je-footer__news iframe { width: 100%; min-height: 230px; border: 0; background: #fff; border-radius: 8px; display: block; }
.je-footer .je-footer__main { max-width: 1172px; margin: 0 auto; padding: 44px 16px 24px; }
.je-footer .wp-block-columns { gap: 32px; margin: 0; }
.je-footer h3 { color: #fff; font-size: 0.875rem; letter-spacing: 0.08em; text-transform: uppercase; margin: 0 0 14px; }
.je-footer ul { list-style: none; padding: 0; margin: 0; }
.je-footer ul.wp-block-list { padding: 0; }
.je-footer li { margin: 0; }
.je-footer li a { text-decoration: none; display: inline-block; padding: 6px 0; min-height: 32px; }
.je-footer li a:hover { text-decoration: underline; }
.je-footer .je-footer__logo { background: #fff; display: inline-block; padding: 8px 12px; border-radius: 8px; line-height: 0; margin: 0 0 14px; }
.je-footer .je-footer__logo img { display: block; }
.je-footer .je-footer__tag { margin: 0 0 14px; }
.je-footer .wp-block-social-links { gap: 4px; margin: 0; }
.je-footer .wp-block-social-links .wp-social-link a { color: #fff; padding: 8px; }
.je-footer .wp-block-social-links .wp-social-link svg { width: 22px; height: 22px; fill: currentColor; }
.je-footer .je-footer__contact p { margin: 0 0 10px; }
.je-footer .je-footer__legal { border-top: 1px solid rgba(255, 255, 255, 0.15); max-width: 1172px; margin: 0 auto; padding: 18px 16px 28px; font-size: 14px; color: #c5cfca; }
.je-footer .je-footer__legal p { margin: 0 0 6px; }
@media (max-width: 781px) {
	.je-footer .je-footer__news-in { grid-template-columns: 1fr; }
}

/* ---------- sections ---------- */
.je-sec { padding: 48px 16px; }
.je-sec > * { max-width: 1140px; margin-left: auto; margin-right: auto; }
.je-sec--off { background: var(--je-off); }
.je-sec--white { background: #fff; }
.je-sec--pale { background: var(--je-green-pale); }
.je-sec--green { background: var(--je-green-dark); }
.je-sec--green :is(h1, h2, h3, h4, p, li) { color: #fff; }
.je-sec--green a:not(.wp-element-button) { color: #fff; }
.je-sec--navy { background: var(--je-navy); }
.je-sec--navy :is(h1, h2, h3, h4, p, li) { color: #fff; }
.je-sec--navy a:not(.wp-element-button) { color: #fff; }
.je-sec--tight { padding-top: 0; }
.je-center { text-align: center; }
.je-sec h2.je-h2 { margin: 0 0 20px; }
.je-sec .je-lead { font-size: 1.125rem; color: var(--je-muted); margin: 0 0 20px; }
.je-sec--green .je-lead, .je-sec--navy .je-lead { color: #eef5ea; }
.je-narrow > * { max-width: 820px; }

.je-eyebrow { display: inline-block; font-family: var(--je-head); font-size: 13px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--je-green-dark); background: #eef7e6; border-radius: 4px; padding: 4px 10px; margin: 0 0 14px; line-height: 1.4; }
.je-sec--green .je-eyebrow, .je-sec--navy .je-eyebrow { background: rgba(255, 255, 255, 0.14); color: #fff; }
p.je-eyebrow { width: fit-content; }

/* page title band (generic pages) */
.je-pagehead { background: linear-gradient(180deg, #fff 0, var(--je-off) 100%); border-bottom: 1px solid var(--je-line); padding: 40px 16px 32px; }
.je-pagehead > * { max-width: 1140px; margin-left: auto; margin-right: auto; }
.je-pagehead h1 { margin: 0 auto; }
.je-pagehead p { color: var(--je-muted); margin: 10px auto 0; font-size: 1.125rem; }

/* hero with optional form card */
.je-hero { padding: 40px 16px 32px; background: linear-gradient(180deg, #fff 0, var(--je-off) 100%); }
.je-hero .je-hero__grid { max-width: 1140px; margin: 0 auto; display: grid; grid-template-columns: 1.1fr 0.9fr; grid-template-areas: 'intro form' 'more form'; column-gap: 40px; row-gap: 0; align-items: start; }
.je-hero .je-hero__grid > .wp-block-group, .je-hero .je-hero__grid > .wp-block-image, .je-hero .je-hero__grid > .wp-block-html { margin: 0; }
.je-hero .je-hero__intro { grid-area: intro; min-width: 0; }
.je-hero .je-hero__more { grid-area: more; min-width: 0; }
.je-hero .je-formcard, .je-hero .je-hero__media { grid-area: form; min-width: 0; }
.je-hero .je-hero__grid--media { grid-template-areas: 'intro form' 'more form'; align-items: center; }
.je-hero h1 { font-size: clamp(1.7rem, 4.6vw, 2.5rem); margin: 0 0 14px; }
.je-hero .je-sub { font-size: 1.125rem; color: var(--je-muted); margin: 0 0 20px; }
.je-hero .je-hero__media img { border-radius: var(--je-radius); width: 100%; height: auto; display: block; box-shadow: var(--je-shadow); }
.je-hero .wp-block-buttons { margin: 0 0 20px; }
@media (max-width: 900px) {
	.je-hero .je-hero__grid, .je-hero .je-hero__grid--media { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'intro' 'form' 'more'; row-gap: 20px; }
	.je-hero .je-sub { margin-bottom: 0; }
}
.je-notfor { font-size: 0.9375rem; color: var(--je-muted); border-left: 3px solid var(--je-line); padding-left: 12px; margin: 0; }
.je-notice { background: var(--je-green-pale); border: 1px solid var(--je-green); border-left-width: 6px; border-radius: 8px; padding: 14px 18px; margin: 0 0 20px; font-weight: 600; }
.je-notice p { margin: 0; }

/* ticks */
ul.je-ticks.wp-block-list { list-style: none; padding: 0; margin: 0 0 20px; }
.je-ticks li { padding-left: 30px; position: relative; margin: 8px 0; }
.je-ticks li::before { content: ""; position: absolute; left: 0; top: 4px; width: 18px; height: 18px; border-radius: 50%; background: var(--je-green); }
.je-ticks li::after { content: ""; position: absolute; left: 6px; top: 8px; width: 6px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }

/* form card */
.je-formcard { background: #fff; border: 1px solid var(--je-line); border-radius: var(--je-radius); padding: 24px; box-shadow: var(--je-shadow); }
.je-formcard h2 { font-size: 1.375rem; margin: 0 0 4px; }
.je-formcard .je-small { font-size: 0.9375rem; color: var(--je-muted); margin: 0 0 16px; }

/* trust bar */
.je-trust { background: #fff; border-top: 1px solid var(--je-line); border-bottom: 1px solid var(--je-line); padding: 0 16px; }
.je-trust .je-trust__in { max-width: 1140px; margin: 0 auto; display: flex; flex-wrap: wrap; gap: 8px 28px; justify-content: center; padding: 18px 0; }
.je-trust .je-trust__in p { margin: 0; font-family: var(--je-head); font-weight: 700; font-size: 0.9375rem; color: var(--je-green-dark); }

/* grids and cards */
.je-grid { display: grid; gap: 16px; }
.je-grid > * { margin: 0; min-width: 0; }
.je-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.je-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.je-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 900px) { .je-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) { .je-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .je-grid--2, .je-grid--3, .je-grid--4 { grid-template-columns: minmax(0, 1fr); } }
.je-card { background: #fff; border: 1px solid var(--je-line); border-radius: var(--je-radius); padding: 20px; }
.je-card h3 { margin: 0 0 8px; font-size: 1.125rem; }
.je-card p:last-child, .je-card ul:last-child { margin-bottom: 0; }
.je-card .je-kicker { font-family: var(--je-head); font-weight: 700; font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--je-green-dark); margin: 0 0 6px; }
.je-card--num::before { counter-increment: card; content: counter(card, decimal-leading-zero); display: block; font-family: var(--je-head); font-weight: 800; font-size: 1.5rem; color: var(--je-green-dark); margin-bottom: 6px; }
.je-grid--count { counter-reset: card; }
.je-card ul.wp-block-list { padding-left: 1.1rem; margin: 0 0 1em; }
.je-card ul.wp-block-list li { margin: 4px 0; }
.je-card--pale { background: var(--je-green-pale); border-color: var(--je-green); }

.je-svc { background: #fff; border: 1px solid var(--je-line); border-radius: var(--je-radius); overflow: hidden; display: flex; flex-direction: column; }
.je-svc figure { margin: 0; }
.je-svc img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.je-svc .je-svc__body { padding: 18px 20px 20px; display: flex; flex-direction: column; flex: 1; }
.je-svc h3 { margin: 0 0 8px; font-size: 1.125rem; }
.je-svc h3 a { text-decoration: none; color: var(--je-ink); }
.je-svc h3 a:hover { text-decoration: underline; color: var(--je-green-dark); }
.je-svc p { color: var(--je-muted); }
.je-svc .wp-block-buttons { margin-top: auto; }

/* steps */
.je-steps { counter-reset: s; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.je-steps--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.je-steps > * { margin: 0; min-width: 0; }
.je-step { background: #fff; border: 1px solid var(--je-line); border-radius: var(--je-radius); padding: 18px; }
.je-step::before { counter-increment: s; content: counter(s); display: inline-flex; width: 32px; height: 32px; border-radius: 50%; background: var(--je-green-dark); color: #fff; font-weight: 700; align-items: center; justify-content: center; font-family: var(--je-head); margin-bottom: 8px; }
.je-step h3 { font-size: 1.0625rem; margin: 4px 0 6px; }
.je-step p { margin: 0; font-size: 1rem; color: var(--je-muted); }
.je-step .je-step__tag { margin-top: 10px; font-family: var(--je-head); font-weight: 700; font-size: 13px; color: var(--je-green-dark); }
@media (max-width: 900px) { .je-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) { .je-steps--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .je-steps, .je-steps--3 { grid-template-columns: minmax(0, 1fr); } }

/* stats and counters */
.je-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; text-align: center; }
.je-stats > * { margin: 0; min-width: 0; }
.je-stat { background: #fff; border: 1px solid var(--je-line); border-radius: var(--je-radius); padding: 18px 12px; }
.je-stat .je-num { font-family: var(--je-head); font-weight: 800; font-size: 2.25rem; line-height: 1.1; color: var(--je-green-dark); margin: 0; }
.je-stat .je-lbl { margin: 6px 0 0; color: var(--je-muted); font-size: 1rem; }
@media (max-width: 781px) { .je-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* two column text + media */
.je-split { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.je-split > * { margin: 0; min-width: 0; }
.je-split img { border-radius: var(--je-radius); width: 100%; display: block; }
@media (max-width: 781px) { .je-split { grid-template-columns: minmax(0, 1fr); gap: 24px; } }
.je-media { position: relative; }
.je-badge { position: absolute; left: 16px; bottom: 16px; background: var(--je-green-dark); color: #fff; border-radius: var(--je-radius); padding: 10px 18px; text-align: center; margin: 0; }
.je-badge p { color: #fff; margin: 0; }
.je-badge .je-num { font-family: var(--je-head); font-weight: 800; font-size: 2.25rem; line-height: 1; }
.je-badge .je-lbl { font-family: var(--je-head); font-weight: 700; font-size: 0.8125rem; letter-spacing: 0.06em; }

/* FAQ */
.je-faq details, .wp-block-details.je-faq__item { background: #fff; border: 1px solid var(--je-line); border-radius: 8px; padding: 14px 18px; margin: 10px 0; }
.je-faq summary { cursor: pointer; font-weight: 700; font-family: var(--je-head); }
.je-faq details p { margin: 10px 0 0; color: var(--je-muted); }

/* cta band */
.je-sec--green .wp-block-buttons { justify-content: center; margin-top: 8px; }
.je-sec--green h2 { margin: 0 0 12px; }

/* proof box */
.je-proofimg { border: 2px dashed #cfd8c9; border-radius: 8px; padding: 24px; text-align: center; color: var(--je-muted); margin: 0; }

/* prose */
.je-prose { padding: 40px 16px 56px; }
.je-prose > * { max-width: 760px; margin-left: auto; margin-right: auto; }
.je-prose h2 { margin: 1.6em auto 0.5em; }
.je-prose h3, .je-prose h4 { margin: 1.4em auto 0.4em; }
.je-prose p, .je-prose li { line-height: 1.7; }
.je-prose ul, .je-prose ol { margin-bottom: 1em; }
.je-prose img { border-radius: 8px; }
.je-prose .wp-block-image { margin: 1.5em auto; }

/* ---------- forms ---------- */
.je-form label { display: block; font-size: 0.9375rem; font-weight: 600; margin: 10px 0 0; }
.je-form label > span:first-child { display: block; margin-bottom: 4px; }
.je-form input:not([type="checkbox"]):not([type="radio"]), .je-form select, .je-form textarea { width: 100%; font: inherit; font-size: 16px; padding: 10px 12px; border: 1px solid #b9c4b2; border-radius: 6px; background: #fff; color: var(--je-ink); min-height: 44px; }
.je-form textarea { min-height: 110px; resize: vertical; }
.je-form input:focus, .je-form select:focus, .je-form textarea:focus { border-color: var(--je-green-dark); }
.je-form .je-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
@media (max-width: 520px) { .je-form .je-row { grid-template-columns: minmax(0, 1fr); } }
.je-form fieldset { border: 0; margin: 14px 0 0; padding: 0; min-width: 0; }
.je-form legend { font-weight: 600; font-size: 0.9375rem; padding: 0; margin-bottom: 6px; }
.je-form .je-checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0 12px; }
.je-form .je-checks label, .je-form .je-consent { display: flex; align-items: flex-start; gap: 10px; font-weight: 400; margin: 4px 0; min-height: 44px; align-items: center; }
.je-form .je-consent { align-items: flex-start; font-size: 0.9375rem; color: var(--je-muted); margin: 14px 0; min-height: 0; }
.je-form input[type="checkbox"] { width: 20px; height: 20px; min-height: 20px; margin: 2px 0 0; flex: none; accent-color: var(--je-green-dark); }
.je-form .je-em-hint { font-size: 0.875rem; color: #8a5a00; margin-top: 4px; }
.je-form button[type="submit"] { display: block; width: 100%; border: 0; border-radius: 6px; background: var(--je-green-dark); color: #fff; font-family: var(--je-head); font-weight: 700; font-size: 1.0625rem; padding: 14px 18px; min-height: 48px; cursor: pointer; margin-top: 4px; }
.je-form button[type="submit"]:hover { background: #2f6213; }
.je-form button[type="submit"][disabled] { opacity: 0.6; cursor: wait; }
.je-form .je-msg { font-size: 0.9375rem; margin-top: 10px; min-height: 1.4em; }
.je-form .je-msg.is-error { color: #a1260f; font-weight: 600; }
.je-form .je-msg.is-error a { color: #a1260f; }
.je-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- blog ---------- */
.je-blog { padding: 40px 16px 56px; }
.je-blog > * { max-width: 1140px; margin-left: auto; margin-right: auto; }
.je-blog .wp-block-post-template { gap: 24px; padding: 0; margin: 0 auto; }
.je-blog .wp-block-post-template.is-layout-grid { display: grid; }
.je-post { background: #fff; border: 1px solid var(--je-line); border-radius: var(--je-radius); overflow: hidden; height: 100%; }
.je-post .wp-block-post-featured-image { margin: 0; }
.je-post .wp-block-post-featured-image img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.je-post .je-post__body { padding: 16px 20px 20px; }
.je-post .wp-block-post-title { font-size: 1.1875rem; margin: 0 0 6px; }
.je-post .wp-block-post-title a { color: var(--je-ink); text-decoration: none; }
.je-post .wp-block-post-title a:hover { color: var(--je-green-dark); text-decoration: underline; }
.je-post .wp-block-post-date { font-size: 0.9375rem; color: var(--je-muted); margin: 0 0 8px; }
.je-post .wp-block-post-excerpt { margin: 0; }
.je-post .wp-block-post-excerpt__excerpt { margin: 0 0 8px; }
.je-post .wp-block-post-excerpt__more-link { font-weight: 600; }
.wp-block-query-pagination { margin-top: 28px; gap: 16px; }
.wp-block-query-pagination a { min-height: 44px; display: inline-flex; align-items: center; }
.je-single { padding: 40px 16px 24px; }
.je-single > * { max-width: 760px; margin-left: auto; margin-right: auto; }
.je-single .wp-block-post-featured-image { max-width: 1000px; margin-bottom: 24px; }
.je-single .wp-block-post-featured-image img { width: 100%; border-radius: var(--je-radius); display: block; }
.je-single h1 { margin: 0 auto 8px; }
.je-single .wp-block-post-date { color: var(--je-muted); font-size: 0.9375rem; margin-bottom: 24px; }
.je-single .wp-block-post-content { line-height: 1.7; }
.je-single .wp-block-post-content h2, .je-single .wp-block-post-content h3, .je-single .wp-block-post-content h4 { margin: 1.6em 0 0.5em; }
.je-single .wp-block-post-content > * { max-width: 760px; }
.je-single .wp-block-post-content figure { margin: 1.5em 0; }
.je-single .wp-block-post-content img { border-radius: 8px; }
.je-single .wp-block-post-content ul, .je-single .wp-block-post-content ol { margin: 0 0 1em; }
.je-single .wp-block-gallery { gap: 12px; }
.je-postnav { max-width: 760px; margin: 32px auto 0; padding-top: 16px; border-top: 1px solid var(--je-line); display: flex; justify-content: space-between; gap: 16px; font-weight: 600; }
.je-postnav a { text-decoration: none; display: inline-block; padding: 8px 0; }
.je-postnav a:hover { text-decoration: underline; }
.je-404 { padding: 64px 16px; text-align: center; }
.je-404 > * { max-width: 640px; margin-left: auto; margin-right: auto; }
.wp-block-search__input { min-height: 44px; }

/* thank-you */
.je-thanks { padding: 56px 16px; }
.je-thanks > * { max-width: 720px; margin-left: auto; margin-right: auto; }
.je-thanks h1 { margin-bottom: 14px; }
.je-thanks #je-thanks-p { font-size: 1.125rem; }

@media print { .je-topbar, .je-header, .je-footer, .je-form { display: none; } }

/* ---------- spacing helpers (block gap is 0 in theme.json) ---------- */
.wp-site-blocks :is(h1, h2, h3, h4, h5, h6) { margin-top: 0; margin-bottom: 0.5em; }
.je-sec .je-grid, .je-sec .je-steps, .je-sec .je-stats, .je-sec .je-faq, .je-sec .je-split { margin-top: 24px; }
.je-sec .je-split { margin-top: 0; }
.je-sec .je-card .je-grid { margin-top: 0; }
.je-sec > .wp-block-buttons { margin-top: 24px; }
.je-sec .wp-block-buttons { margin-bottom: 0; }
.je-sec .je-split .wp-block-buttons { margin-top: 20px; }
.je-sec .je-split .je-grid { margin-top: 16px; }
.je-sec .je-split .je-notfor { margin: 16px 0; }
.je-split--top { align-items: start; }
.je-split > .wp-block-group > h3 { margin-top: 1.2em; }
.je-sec .je-card + .je-card, .je-split .je-grid > .je-card { margin: 0; }
.je-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 1.5em 0; }
.je-gallery > * { margin: 0; }
.je-gallery img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; display: block; }
.je-map iframe { display: block; width: 100%; height: 380px; border: 0; border-radius: var(--je-radius); }
.je-small { font-size: 0.9375rem; color: var(--je-muted); }
.je-thanks .je-grid { margin: 24px auto; }
.je-thanks .je-notfor { margin: 0 auto 20px; }
.je-thanks .wp-block-buttons { margin-bottom: 16px; }
.je-sec .je-media figure { margin: 0; }
.je-sec .je-lead { margin-bottom: 16px; }
.je-card .wp-block-buttons { margin-top: 12px; }
.je-notice p { font-size: 1rem; }

/* ---------- review fixes: tablet hamburger, overlay menu, dropdown width, hero spacing ---------- */
@media (max-width: 899px) {
	.je-topbar .je-topbar__addr, .je-topbar .wp-block-social-links { display: none; }
	.je-topbar .je-topbar__in { justify-content: center; flex-wrap: nowrap; }
	.je-topbar .je-topbar__items { flex-wrap: nowrap; gap: 0 18px; }
}
@media (min-width: 600px) and (max-width: 899px) {
	/* force the core hamburger overlay up to 900px (core switches at 600px) */
	.je-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.je-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
}
@media (max-width: 899px) {
	.je-header .je-header__in { flex-wrap: nowrap; gap: 8px; }
	.je-header .wp-block-site-logo { margin-right: auto; }
	.je-header .wp-block-navigation { margin-left: 0; order: 3; }
	.je-header .je-header__cta { margin-left: 0; order: 2; }
}
/* overlay menu */
.je-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding: 56px 20px 20px; }
.je-header .is-menu-open .wp-block-navigation__container, .je-header .is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start; text-align: left; width: 100%; }
.je-header .is-menu-open .wp-block-navigation-item { align-items: flex-start; width: 100%; }
.je-header .is-menu-open .wp-block-navigation-item__content { padding: 10px 0; }
.je-header .is-menu-open .wp-block-navigation__submenu-container { position: static; border: 0; box-shadow: none; background: transparent; padding: 0 0 0 16px; min-width: 0; width: 100%; }
.je-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 8px 0; font-weight: 600; }
/* desktop dropdown */
@media (min-width: 900px) {
	.je-header .wp-block-navigation .wp-block-navigation__submenu-container { width: max-content !important; min-width: 300px !important; }
	.je-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { white-space: nowrap; }
}
/* hero spacing */
.je-hero .je-sub { margin-bottom: 20px; }
.je-hero .je-hero__intro .wp-block-buttons { margin: 20px 0 20px; }
.je-hero .je-hero__intro .je-sub + .wp-block-buttons { margin-top: 20px; }
@media (max-width: 520px) {
	.je-hero .je-hero__intro .wp-block-buttons { flex-direction: column; align-items: stretch; }
	.je-hero .je-hero__intro .wp-block-button { width: 100%; }
	.je-hero .je-hero__intro .wp-block-button__link { width: 100%; }
}


/* ---- Visual review fixes, 14 Oct 2026 (one column edge, rhythm, balance) ---- */
/* #1 eyebrow pills sit on the same left edge as the heading below them */
.je-eyebrow { display: block; width: fit-content; }
.je-sec > p.je-eyebrow { margin-left: max(0px, calc((100% - 1140px) / 2)) !important; margin-right: auto !important; }
.je-sec.je-narrow > p.je-eyebrow { margin-left: max(0px, calc((100% - 820px) / 2)) !important; }
.je-center > p.je-eyebrow, .je-sec.je-center > p.je-eyebrow { margin-left: auto !important; margin-right: auto !important; }
/* #2 prose pages: title lines up with the 760px body */
.je-prose-page .je-pagehead > * { max-width: 760px; }
/* #3 404: every child centred */
.je-404 > p, .je-404 > h1 { margin-left: auto; margin-right: auto; }
/* #4 hero: intro row hugs its content; the tick list follows straight on */
.je-hero .je-hero__grid, .je-hero .je-hero__grid--media { grid-template-rows: auto 1fr; }
.je-hero .je-hero__more { align-self: start; }
.je-hero .je-hero__intro { align-self: start; }
/* #6 about: image beside a 2x2 card grid, tops aligned */
.je-sec .je-split--top .je-grid { margin-top: 0; }
@media (min-width: 782px) {
	.je-split .je-grid:has(> :nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.je-split--top > .wp-block-image img, .je-split--top > figure img { height: 100%; object-fit: cover; }
}
/* #7 a lone last card in a 3-up grid spans to fill the row */
@media (min-width: 721px) { .je-grid--3 > :last-child:nth-child(3n+2) { grid-column: span 2; } }
@media (max-width: 720px) and (min-width: 601px) { .je-grid--3 > :last-child:nth-child(odd) { grid-column: 1 / -1; } }
/* #8 blog grid never squeezes below 260px cards */
.je-blog .wp-block-post-template.is-layout-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
/* #9 readable measure; the green CTA band honours its 820px width */
.je-sec--green.je-center > * { max-width: 820px; }
.je-sec > p:not(.je-lead):not(.je-eyebrow):not(.has-text-align-center) { max-width: 75ch; margin-left: max(0px, calc((100% - 1140px) / 2)) !important; margin-right: auto !important; }
.je-sec.je-center > p:not(.je-eyebrow), .je-sec.je-narrow > p:not(.je-eyebrow) { margin-left: auto !important; margin-right: auto !important; }
/* #10 hamburger icon centred in its 44px target, right edge on the gutter */
@media (max-width: 899px) { .je-header .wp-block-navigation__responsive-container-open { display: inline-flex; align-items: center; justify-content: center; margin-right: -10px; } }
@media (max-width: 599px) { .je-header .wp-block-navigation__responsive-container-open { margin-right: -6px; } }
/* #11 two consecutive off-white sections read as one */
.je-sec--off + .je-sec--off { padding-top: 0; }
/* #12 one H1 scale everywhere; one H3 scale for cards, steps and prose */
.je-hero h1 { font-size: var(--wp--preset--font-size--xx-large, clamp(1.9rem, 4.5vw, 2.75rem)); }
.je-card h3, .je-step h3, .je-prose h3, .je-contact h3 { font-size: 1.125rem; }
/* #13 no orphaned words in headings; nicer paragraph rag */
h1, h2, h3, h4 { text-wrap: balance; }
p, li { text-wrap: pretty; }
/* #14 top bar stays one line between 900 and 1000px */
@media (max-width: 1000px) { .je-topbar .je-topbar__addr, .je-topbar .je-social, .je-topbar .wp-block-social-links { display: none !important; } .je-topbar .je-topbar__in { justify-content: center; flex-wrap: nowrap; } }
/* #17 inputs and selects share one height; form card aligns with the column heading */
.je-form input:not([type=checkbox]):not([type=radio]), .je-form select { height: 46px; min-height: 46px; box-sizing: border-box; }
.je-split--top > .wp-block-html, .je-split--top .je-formcard { margin-top: 0; align-self: start; }
/* #18 one vertical rhythm for page bodies */
.je-prose, .je-blog, .je-thanks, .je-404 { padding-top: 48px; padding-bottom: 48px; }

/* re-review fixes */
.je-sec > p.je-lead { max-width: 75ch; margin-left: max(0px, calc((100% - 1140px) / 2)) !important; margin-right: auto !important; }
.je-sec.je-center > p.je-lead, .je-sec.je-narrow > p.je-lead { margin-left: auto !important; margin-right: auto !important; }
@media (min-width: 721px) and (max-width: 900px) { .je-steps:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.je-hero .je-hero__grid--media .je-hero__intro { align-self: center; }
@media (max-width: 399px) { .je-header .wp-block-site-logo img { max-width: 124px; } }
@media (max-width: 359px) { .je-header .wp-block-buttons .wp-block-button__link { padding-left: 12px; padding-right: 12px; font-size: 14px; } .je-header .wp-block-site-logo img { max-width: 112px; } }
