/*
Theme Name: Eminent Solutions
Theme URI: https://eminentsolutions.co.zw
Author: JomeTech Africa
Author URI: https://jometechafrica.com
Description: Eminent Solutions — company registration, secretarial and tax compliance in Zimbabwe. Online orders with secure document upload, order tracking, cost calculator, structure quiz and deadline checker. Built for the block editor and Rank Math.
Version: 3.0.0
Requires at least: 6.4
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: eminent
*/

/* =========================================================
   Tokens
   ========================================================= */
:root {
	--ink: #10261a;
	--green: #0a6b37;
	--green-2: #0d8344;
	--green-deep: #073d20;
	--leaf: #8cc63f;
	--amber: #f29400;
	--amber-2: #ffab1f;
	--amber-ink: #2b1a00;
	--paper: #f3f7f2;
	--paper-2: #e9f1e8;
	--line: #d3e1d5;
	--muted: #4e6457;
	--white: #ffffff;
	--danger: #b42318;
	--sans: "Schibsted Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--doc: "Cormorant Garamond", "Times New Roman", Georgia, serif;
	--max: 1200px;
	--gutter: 24px;
	--r-sm: 6px;
	--r: 10px;
	--r-lg: 18px;
	/* security-paper moiré, used in heroes and the certificate */
	--moire: repeating-radial-gradient(circle at 12% 30%, transparent 0 13px, rgba(10, 107, 55, .055) 13px 14px), repeating-radial-gradient(circle at 88% 70%, transparent 0 13px, rgba(10, 107, 55, .045) 13px 14px);
	--wa-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.47 14.38c-.3-.15-1.75-.86-2.02-.96-.27-.1-.47-.15-.67.15-.2.3-.77.96-.94 1.16-.17.2-.35.22-.64.07-.3-.15-1.25-.46-2.38-1.47-.88-.79-1.47-1.76-1.65-2.06-.17-.3-.02-.46.13-.6.13-.13.3-.35.45-.52.15-.18.2-.3.3-.5.1-.2.05-.37-.03-.52-.07-.15-.67-1.6-.92-2.2-.24-.58-.49-.5-.67-.5h-.57c-.2 0-.52.07-.79.37-.27.3-1.04 1.02-1.04 2.48s1.07 2.88 1.21 3.08c.15.2 2.1 3.2 5.08 4.49.71.3 1.26.49 1.7.63.71.22 1.36.19 1.87.12.57-.09 1.75-.72 2-1.41.25-.69.25-1.29.17-1.41-.07-.12-.27-.2-.57-.35M12.05 21.8h-.01a9.87 9.87 0 0 1-5.03-1.38l-.36-.21-3.74.98 1-3.65-.24-.37a9.86 9.86 0 0 1-1.51-5.26c0-5.45 4.44-9.88 9.9-9.88 2.64 0 5.12 1.03 6.99 2.9a9.82 9.82 0 0 1 2.89 6.99c0 5.45-4.44 9.88-9.89 9.88M20.46 3.49A11.82 11.82 0 0 0 12.05 0C5.5 0 .16 5.34.16 11.89c0 2.1.55 4.14 1.59 5.94L.06 24l6.3-1.65a11.88 11.88 0 0 0 5.68 1.45h.01c6.55 0 11.89-5.34 11.89-11.89 0-3.18-1.24-6.16-3.48-8.42'/%3E%3C/svg%3E");
	--check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a6b37' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}

/* =========================================================
   Base
   ========================================================= */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 96px; }
body { margin: 0; background: var(--white); color: var(--ink); font-family: var(--sans); font-size: 17.5px; line-height: 1.6; font-feature-settings: "ss01", "tnum" 0; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img, svg { max-width: 100%; height: auto; }
a { color: var(--green); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--green-deep); }
:focus-visible { outline: 3px solid var(--amber); outline-offset: 2px; border-radius: 3px; }
::selection { background: var(--leaf); color: var(--ink); }
[hidden] { display: none !important; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link:focus { position: fixed; top: 8px; left: 8px; z-index: 1000; width: auto; height: auto; clip: auto; background: #fff; padding: 10px 16px; border-radius: 8px; }

h1, h2, h3, h4 { font-family: var(--sans); color: var(--ink); margin: 0 0 .5em; text-wrap: balance; }
h1 { font-size: clamp(2.35rem, 4.9vw, 4.05rem); line-height: 1.02; font-weight: 800; letter-spacing: -.035em; }
h2 { font-size: clamp(1.75rem, 3vw, 2.55rem); line-height: 1.08; font-weight: 760; letter-spacing: -.025em; }
h3 { font-size: 1.24rem; line-height: 1.25; font-weight: 700; letter-spacing: -.01em; }
p { margin: 0 0 1em; }
strong { font-weight: 650; }
.es-container { max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter); }

.es-eyebrow { font-size: 15.5px; font-weight: 650; color: var(--green); margin-bottom: 10px; letter-spacing: 0; text-transform: none; }
.es-lead { font-size: 1.2rem; line-height: 1.55; color: var(--muted); max-width: 60ch; }
.es-small { font-size: 14.5px; color: var(--muted); }

/* =========================================================
   Buttons
   ========================================================= */
.es-btn, .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 12px 24px; border-radius: var(--r-sm); border: 2px solid transparent; font: 650 16.5px/1.2 var(--sans); text-decoration: none; cursor: pointer; transition: background-color .15s, border-color .15s, color .15s; }
.wp-block-button__link { background: var(--green); color: #fff; border-color: var(--green); }
.wp-block-button__link:hover { background: var(--green-deep); border-color: var(--green-deep); color: #fff; }
.es-btn-amber, .es-btn-wa .wp-block-button__link { background: var(--amber); border-color: var(--amber); color: var(--amber-ink); }
.es-btn-amber:hover, .es-btn-wa .wp-block-button__link:hover { background: var(--amber-2); border-color: var(--amber-2); color: var(--amber-ink); }
.es-btn-wa .wp-block-button__link::before { content: ""; width: 19px; height: 19px; flex: none; background: currentColor; -webkit-mask: var(--wa-icon) center / contain no-repeat; mask: var(--wa-icon) center / contain no-repeat; }
.es-btn-green { background: var(--green); border-color: var(--green); color: #fff; }
.es-btn-green:hover { background: var(--green-deep); border-color: var(--green-deep); color: #fff; }
.es-btn-ghost, .is-style-outline .wp-block-button__link { background: transparent; border-color: var(--ink); color: var(--ink); }
.es-btn-ghost:hover, .is-style-outline .wp-block-button__link:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.es-btn-lg { min-height: 56px; padding: 14px 30px; font-size: 17.5px; }
.es-btn[disabled] { opacity: .6; cursor: progress; }
.wp-block-buttons { gap: 12px; margin: 26px 0 18px; }

/* =========================================================
   Header
   ========================================================= */
.es-topbar { background: var(--green-deep); color: #cfe4d4; font-size: 13.5px; }
.es-topbar .es-container { display: flex; gap: 22px; justify-content: flex-end; align-items: center; min-height: 36px; flex-wrap: wrap; }
.es-topbar a { color: #fff; text-decoration: none; }
.es-topbar a:hover { color: var(--leaf); }
.es-header { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, .97); border-bottom: 1px solid var(--line); backdrop-filter: saturate(1.4) blur(8px); transition: box-shadow .2s; }
.es-header.is-scrolled { box-shadow: 0 8px 28px rgba(7, 61, 32, .08); }
.admin-bar .es-header { top: 32px; }
.es-header .es-container { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 76px; }
.es-logo { display: block; line-height: 0; flex: none; }
.es-logo img { height: 54px; width: auto; }
.custom-logo { max-height: 54px; width: auto; }

.es-nav ul { list-style: none; margin: 0; padding: 0; }
.es-nav > ul { display: flex; align-items: center; gap: 2px; }
.es-nav li { position: relative; }
.es-nav a { display: block; padding: 10px 11px; color: var(--ink); text-decoration: none; font-weight: 550; font-size: 15.5px; border-radius: var(--r-sm); white-space: nowrap; }
.es-nav a:hover { color: var(--green); background: var(--paper); }
.es-nav .current-menu-item > a, .es-nav .current_page_item > a { color: var(--green); box-shadow: inset 0 -2px 0 var(--leaf); border-radius: 0; background: none; }
.es-nav .menu-item-has-children > a::after, .es-nav .page_item_has_children > a::after { content: ""; display: inline-block; width: 6px; height: 6px; margin-left: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-3px) rotate(45deg); }
.es-nav .sub-menu, .es-nav .children { position: absolute; top: 100%; left: 0; min-width: 270px; background: #fff; border: 1px solid var(--line); border-radius: var(--r); box-shadow: 0 18px 40px rgba(7, 61, 32, .12); padding: 8px; opacity: 0; visibility: hidden; transform: translateY(6px); transition: .16s ease; }
.es-nav li:hover > .sub-menu, .es-nav li:focus-within > .sub-menu, .es-nav li:hover > .children, .es-nav li:focus-within > .children { opacity: 1; visibility: visible; transform: none; }
.es-nav .sub-menu a, .es-nav .children a { font-size: 15px; box-shadow: none; }
.es-header-actions { display: flex; align-items: center; gap: 10px; }
.es-header-wa { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; color: var(--green); border: 1.5px solid var(--line); }
.es-header-wa:hover { border-color: var(--green); color: var(--green-deep); }
.es-header-wa svg { width: 22px; height: 22px; fill: currentColor; }
.es-header-cta { display: inline-flex; align-items: center; min-height: 46px; padding: 0 20px; border-radius: var(--r-sm); background: var(--amber); color: var(--amber-ink) !important; font-weight: 700; text-decoration: none; white-space: nowrap; }
.es-header-cta:hover { background: var(--amber-2); }
.es-menu-toggle { display: none; background: none; border: 1.5px solid var(--line); border-radius: var(--r-sm); width: 46px; height: 46px; cursor: pointer; padding: 0; }
.es-menu-toggle span { display: block; width: 20px; height: 2px; background: var(--ink); margin: 4px auto; transition: .2s; }

@media (max-width: 1240px) {
	.es-menu-toggle { display: block; }
	.es-nav { position: fixed; inset: 112px 0 0 0; background: #fff; display: none; flex-direction: column; padding: 12px var(--gutter) 120px; overflow-y: auto; border-top: 1px solid var(--line); z-index: 60; }
	.admin-bar .es-nav { top: 158px; }
	.es-nav.is-open { display: block; }
	.es-nav > ul { flex-direction: column; align-items: stretch; }
	.es-nav a { font-size: 18px; padding: 14px 4px; border-bottom: 1px solid var(--paper); border-radius: 0; }
	.es-nav .sub-menu, .es-nav .children { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 6px 16px; min-width: 0; }
	.es-nav .sub-menu a { font-size: 16px; padding: 10px 4px; }
	.es-nav .menu-item-has-children > a::after { display: none; }
	.es-menu-open .es-menu-toggle span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
	.es-menu-open .es-menu-toggle span:nth-child(2) { opacity: 0; }
	.es-menu-open .es-menu-toggle span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
}
@media (max-width: 600px) {
	.es-topbar .es-hide-sm { display: none; }
	.es-topbar .es-container { justify-content: center; }
	.es-logo img { height: 42px; }
	.es-header-cta { padding: 0 14px; font-size: 15px; }
	.es-header-wa { display: none; }
	.admin-bar .es-header { top: 0; }
}

/* =========================================================
   Content frame (blocks)
   ========================================================= */
.es-content { padding-bottom: 72px; }
.entry-content > * { max-width: var(--max); margin-left: auto; margin-right: auto; padding-left: var(--gutter); padding-right: var(--gutter); }
.entry-content > .es-hero, .entry-content > .es-page-hero, .entry-content > .es-section-tint, .entry-content > .es-band { max-width: none; padding-left: max(var(--gutter), calc((100% - var(--max)) / 2 + var(--gutter))); padding-right: max(var(--gutter), calc((100% - var(--max)) / 2 + var(--gutter))); }
.entry-content > * + * { margin-top: 0; }
.wp-block-columns { gap: 40px; margin-bottom: 0; }

/* =========================================================
   Home hero — the certificate
   ========================================================= */
.es-hero { position: relative; background: var(--moire), linear-gradient(180deg, #fff 0%, var(--paper) 100%); padding-top: 72px !important; padding-bottom: 88px !important; margin-bottom: 0 !important; align-items: center !important; gap: 64px !important; border-bottom: 1px solid var(--line); overflow: hidden; }
.es-hero-copy { flex-basis: 56% !important; }
.es-hero-aside { flex-basis: 44% !important; }
.es-hero h1 { max-width: 13ch; }
.es-hero .es-lead { color: var(--muted); }
.es-hero .es-small { color: var(--muted); margin-top: 18px; }

.es-namecheck { margin: 28px 0 0; max-width: 600px; }
.es-namecheck-label { display: block; font-weight: 650; font-size: 15px; margin-bottom: 8px; }
.es-namecheck-row { display: flex; gap: 10px; align-items: stretch; margin-bottom: 14px; flex-wrap: wrap; }
.es-namecheck-row input[type=text] { flex: 1 1 260px; min-height: 56px; padding: 0 18px; font: 600 19px var(--sans); color: var(--ink); background: #fff; border: 2px solid var(--ink); border-radius: var(--r-sm); }
.es-namecheck-row input[type=text]::placeholder { color: #8aa094; font-weight: 500; }
.es-namecheck-row input[type=text]:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 4px rgba(140, 198, 63, .35); }
.es-namecheck-note { font-size: 14.5px; color: var(--muted); margin: 12px 0 0; }
.es-namecheck .es-p { color: var(--ink); font-weight: 700; }

.es-seg { display: inline-flex; border: 2px solid var(--ink); border-radius: var(--r-sm); overflow: hidden; background: #fff; }
.es-seg label { position: relative; display: flex; }
.es-seg input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.es-seg span { display: flex; align-items: center; padding: 0 18px; min-height: 52px; font-weight: 650; font-size: 15.5px; cursor: pointer; }
.es-seg label + label span { border-left: 2px solid var(--ink); }
.es-seg input:checked + span { background: var(--ink); color: #fff; }
.es-seg input:focus-visible + span { outline: 3px solid var(--amber); outline-offset: -3px; }

/* Certificate */
.es-cert { margin: 0 26px 0 0; position: relative; }
.es-cert-paper { position: relative; background: #fff; border-radius: 4px; padding: 44px 40px 40px; text-align: center; color: var(--ink); box-shadow: 0 1px 0 var(--line), 0 30px 60px -20px rgba(7, 61, 32, .28), 0 12px 24px -12px rgba(7, 61, 32, .18); transform: rotate(-1.6deg); outline: 1.5px solid var(--green); outline-offset: -14px; }
.es-cert-paper::before { content: ""; position: absolute; inset: 20px; border: 4px double rgba(10, 107, 55, .55); pointer-events: none; }
.es-cert-guilloche { position: absolute; inset: 26px; background: repeating-radial-gradient(ellipse at 50% 50%, transparent 0 7px, rgba(10, 107, 55, .06) 7px 8px), repeating-conic-gradient(from 0deg at 50% 50%, rgba(140, 198, 63, .05) 0 4deg, transparent 4deg 8deg); pointer-events: none; }
.es-cert-paper > p { position: relative; }
.es-cert-head { font: 600 14px/1.2 var(--doc); letter-spacing: .26em; text-transform: uppercase; color: var(--green); margin: 8px 0 10px; }
.es-cert-title { font: 600 italic clamp(1.6rem, 2.6vw, 2.15rem)/1.1 var(--doc); margin: 0 0 22px; color: var(--green-deep); }
.es-cert-line { font: 600 1.06rem/1.45 var(--doc); color: #3b5446; margin: 0 auto 12px; max-width: 30ch; }
.es-cert-name { font: 700 clamp(1.25rem, 2.3vw, 1.7rem)/1.2 var(--sans); letter-spacing: -.01em; margin: 6px auto 16px; padding: 10px 6px 12px; border-bottom: 1.5px solid var(--ink); max-width: 92%; overflow-wrap: anywhere; color: #9bb0a3; transition: color .2s; }
.es-cert-name.is-typed { color: var(--ink); }
.es-cert-name [data-cert-suffix] { font-weight: 600; color: var(--muted); }
.es-cert-foot { position: relative; display: flex; justify-content: space-between; gap: 16px; margin-top: 26px; font: 600 14px var(--doc); color: #3b5446; }
.es-cert-foot span { border-top: 1px solid #9bb0a3; padding-top: 6px; min-width: 40%; }
.es-cert-seal { position: absolute; right: -26px; bottom: -30px; width: 118px; color: var(--amber); transform: rotate(-14deg); opacity: .92; mix-blend-mode: multiply; }
.es-js .es-cert-seal { animation: es-stamp .55s cubic-bezier(.2, 1.4, .4, 1) .7s both; }
@keyframes es-stamp { from { transform: rotate(-30deg) scale(1.7); opacity: 0; } to { transform: rotate(-14deg) scale(1); opacity: .92; } }
.es-cert figcaption { font-size: 12.5px; color: var(--muted); text-align: center; margin-top: 18px; }

/* Facts strip */
.entry-content > .es-facts { padding-top: 34px; padding-bottom: 34px; gap: 0 !important; border-bottom: 1px solid var(--line); }
.es-facts > .wp-block-column { padding: 4px 28px; border-left: 1px solid var(--line); }
.es-facts > .wp-block-column:first-child { border-left: 0; padding-left: 0; }
.es-fact-num { font-size: 2.2rem; line-height: 1; font-weight: 800; letter-spacing: -.03em; color: var(--green); margin: 0 0 8px; }
.es-fact-num strong { font-weight: 800; }
.es-fact-label { font-size: 15px; color: var(--muted); margin: 0; line-height: 1.45; max-width: 24ch; }

/* =========================================================
   Sections
   ========================================================= */
.es-section { padding-top: 96px; padding-bottom: 96px; }
.es-section-tint { background: var(--paper); }
.entry-content > .es-section:not(.es-section-tint) + .es-section:not(.es-section-tint) { padding-top: 0; }
.es-section > h2 { max-width: 24ch; }
.es-section > .es-lead { margin-bottom: 40px; }

/* Re-registration notice */
.entry-content > .es-alert { max-width: calc(var(--max) - 2 * var(--gutter)); margin: 48px auto; padding: 22px 26px; background: #fff7e8; border: 1.5px solid #f6c66f; border-radius: var(--r); display: flex; align-items: center; justify-content: space-between; gap: 22px; flex-wrap: wrap; }
@media (max-width: 1248px) { .entry-content > .es-alert { margin-left: var(--gutter); margin-right: var(--gutter); } }
.es-alert p { margin: 0; flex: 1 1 440px; }
.es-alert .wp-block-buttons { margin: 0; }

/* Fee schedule */
.es-fees { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 48px; margin-top: 40px; }
.es-fees-col h3 { font-size: 1.05rem; padding-bottom: 12px; border-bottom: 2px solid var(--ink); margin-bottom: 4px; }
.es-fees ul { list-style: none; margin: 0; padding: 0; }
.es-fees li a { display: flex; align-items: baseline; gap: 10px; padding: 13px 0; border-bottom: 1px solid var(--line); text-decoration: none; color: var(--ink); }
.es-fees li a:hover .es-fee-name { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.es-fee-name { font-weight: 550; }
.es-fee-dots { flex: 1; border-bottom: 2px dotted #b7c9bb; transform: translateY(-4px); min-width: 16px; }
.es-fee-price { font-weight: 750; color: var(--green); white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 960px) { .es-fees { grid-template-columns: 1fr; gap: 32px; } }

/* Service cards (hub pages) */
.es-cards { margin-top: 32px !important; gap: 24px !important; }
.es-cards + .es-cards { margin-top: 24px !important; }
.es-cards > .wp-block-column { display: flex; }
.es-card { background: #fff; border: 1.5px solid var(--line); border-radius: var(--r); padding: 28px; width: 100%; display: flex; flex-direction: column; transition: border-color .15s; }
.es-card:hover { border-color: var(--green); }
.es-card h3 a { color: var(--ink); text-decoration: none; }
.es-card h3 a::after { content: ""; position: absolute; inset: 0; }
.es-card { position: relative; }
.es-card p { color: var(--muted); }
.es-card-meta { font-weight: 700; color: var(--green) !important; margin-top: auto !important; padding-top: 6px; }
.es-card-link { margin: 0; font-weight: 650; }
.es-card-link a { color: var(--green); }
.es-section-tint .es-card { background: #fff; }
.es-ico::before { content: ""; display: block; width: 44px; height: 44px; border-radius: var(--r-sm); margin-bottom: 18px; background-color: var(--paper-2); background-repeat: no-repeat; background-position: center; background-size: 24px; }

/* How it works — a real sequence */
.es-steps-row { margin-top: 44px !important; gap: 0 !important; counter-reset: es-step; }
.es-steps-row > .wp-block-column { position: relative; padding: 0 28px 0 0; }
.es-steps-row > .wp-block-column::before { content: ""; position: absolute; top: 21px; left: 46px; right: 0; height: 2px; background: repeating-linear-gradient(90deg, var(--green) 0 8px, transparent 8px 14px); }
.es-steps-row > .wp-block-column:last-child::before { display: none; }
.es-step-num { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--green); color: #fff; font-weight: 800; font-size: 15px; margin-bottom: 18px; position: relative; z-index: 1; }
.es-steps-row h3 { margin-bottom: 8px; }
.es-steps-row p:last-child { color: var(--muted); }
@media (max-width: 781px) { .es-steps-row > .wp-block-column { padding: 0 0 8px 0; } .es-steps-row > .wp-block-column::before { display: none; } }

/* Lists */
.es-checks, .es-docs, .es-related-list { list-style: none; padding: 0; margin: 0 0 1.6em; }
.es-checks li, .es-docs li { position: relative; padding-left: 34px; margin: 0 0 12px; }
.es-checks li::before { content: ""; position: absolute; left: 0; top: .22em; width: 22px; height: 22px; border-radius: 50%; background: var(--paper-2) var(--check) center / 13px no-repeat; }
.es-docs li::before { content: ""; position: absolute; left: 3px; top: .3em; width: 15px; height: 19px; border: 2px solid var(--green); border-radius: 2px; }
.es-docs li::after { content: ""; position: absolute; left: 7px; top: calc(.3em + 6px); width: 7px; height: 2px; background: var(--green); box-shadow: 0 4px 0 var(--green); }
.es-steps { counter-reset: step; list-style: none; padding: 0; margin: 0 0 1.6em; }
.es-steps li { counter-increment: step; position: relative; padding: 4px 0 20px 52px; margin: 0; }
.es-steps li::before { content: counter(step); position: absolute; left: 0; top: 0; width: 34px; height: 34px; border-radius: 50%; background: var(--green); color: #fff; font-weight: 800; font-size: 14.5px; display: grid; place-items: center; }
.es-steps li:not(:last-child)::after { content: ""; position: absolute; left: 16px; top: 38px; bottom: 2px; width: 2px; background: var(--line); }

/* Why */
.es-why { gap: 64px !important; }

/* Tables */
.wp-block-table { margin: 24px 0 18px; overflow-x: auto; }
.wp-block-table table { width: 100%; border-collapse: collapse; background: #fff; font-size: 16px; border-top: 2px solid var(--ink); }
.wp-block-table th { text-align: left; color: var(--ink); font-weight: 700; padding: 14px 16px; border: 0; border-bottom: 1.5px solid var(--ink); background: transparent; }
.wp-block-table td { padding: 14px 16px; border: 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.wp-block-table td a { color: var(--ink); font-weight: 600; text-decoration: none; }
.wp-block-table td a:hover { color: var(--green); text-decoration: underline; }
.es-price-table td:last-child, .es-price-table th:last-child { text-align: right; white-space: nowrap; }
.es-price-table td:last-child { font-weight: 750; color: var(--green); font-variant-numeric: tabular-nums; }
.es-price-table th:first-child { width: 36%; }
.es-compare-table td:first-child { font-weight: 650; width: 22%; }
@media (max-width: 640px) {
	.wp-block-table table { font-size: 15px; }
	.wp-block-table th, .wp-block-table td { padding: 11px 10px; }
	.es-price-table th:nth-child(2):not(:last-child), .es-price-table td:nth-child(2):not(:last-child) { display: none; }
	.es-price-table th:first-child { width: auto; }
	.es-compare-table table { min-width: 560px; }
}

/* FAQ */
.es-faq { padding-top: 80px; padding-bottom: 40px; }
.es-faq > * { max-width: 860px; }
.es-faq > h2 { margin-bottom: 20px; }
.wp-block-details { border-bottom: 1px solid var(--line); margin: 0; }
.wp-block-details:first-of-type { border-top: 2px solid var(--ink); }
.wp-block-details summary { cursor: pointer; list-style: none; padding: 20px 52px 20px 0; font-weight: 650; font-size: 17.5px; position: relative; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: ""; position: absolute; right: 6px; top: 50%; width: 14px; height: 14px; margin-top: -7px; background: linear-gradient(var(--green), var(--green)) center / 14px 2px no-repeat, linear-gradient(var(--green), var(--green)) center / 2px 14px no-repeat; transition: transform .2s; }
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details > *:not(summary) { color: var(--muted); max-width: 70ch; }
.wp-block-details > p:last-child { padding-bottom: 12px; }

/* Related links */
.es-related { padding-top: 24px; padding-bottom: 8px; }
.es-related h2 { font-size: 1.3rem; }
.es-related-list { display: flex; flex-wrap: wrap; gap: 10px; }
.es-related-list li { margin: 0; }
.es-related-list a { display: inline-block; padding: 9px 16px; border: 1.5px solid var(--line); border-radius: 999px; text-decoration: none; color: var(--ink); font-weight: 550; font-size: 15px; }
.es-related-list a:hover { border-color: var(--green); color: var(--green); }

/* Closing call to action */
.entry-content > .es-cta { max-width: calc(var(--max) - 2 * var(--gutter)); margin: 72px auto 0; padding: 64px; border-radius: var(--r-lg); background: repeating-radial-gradient(circle at 100% 0, transparent 0 15px, rgba(255, 255, 255, .05) 15px 16px), var(--green-deep); color: #cfe4d4; }
@media (max-width: 1248px) { .entry-content > .es-cta { margin-left: var(--gutter); margin-right: var(--gutter); } }
.es-cta h2 { color: #fff; max-width: 20ch; }
.es-cta p { max-width: 56ch; }
.es-cta .wp-block-buttons { margin-bottom: 0; }
.es-cta .is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255, 255, 255, .55); }
.es-cta .is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--green-deep); }
@media (max-width: 600px) { .entry-content > .es-cta { padding: 40px 24px; } }

/* =========================================================
   Inner page hero + breadcrumbs
   ========================================================= */
.es-crumbs { background: var(--paper); font-size: 14px; color: var(--muted); }
.es-crumbs ol { list-style: none; margin: 0; padding: 18px 0 0; display: flex; flex-wrap: nowrap; gap: 6px; min-width: 0; }
.es-crumbs li { display: inline-flex; align-items: center; gap: 6px; flex: none; }
.es-crumbs li + li::before { content: "/"; color: #9bb0a3; }
.es-crumbs a { color: var(--ink); text-decoration: none; }
.es-crumbs a:hover { color: var(--green); text-decoration: underline; }
.es-crumbs li[aria-current] { flex: 1 1 auto; min-width: 0; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); }
.es-crumbs li[aria-current]::before { margin-right: 6px; }
.es-page-hero { background: var(--moire), var(--paper); padding-top: 40px; padding-bottom: 64px; margin-bottom: 64px; border-bottom: 1px solid var(--line); }
.es-page-hero h1 { max-width: 20ch; }
.es-page-hero .wp-block-buttons { margin-bottom: 0; }
.es-page-hero-plain { padding-top: 40px; padding-bottom: 40px; }
@media (max-width: 781px) { .es-page-hero { padding-top: 28px; padding-bottom: 44px; margin-bottom: 44px; } }

/* Service page layout */
.es-split { padding-bottom: 24px; gap: 64px !important; }
.es-main { flex-basis: 64% !important; }
.es-main h2 { font-size: 1.6rem; margin-top: 8px; }
.es-aside { flex-basis: 36% !important; }
.es-price-card { position: sticky; top: 108px; background: #fff; border: 2px solid var(--ink); border-radius: var(--r); padding: 28px; }
.es-price-card .es-eyebrow { color: var(--muted); font-weight: 550; }
.es-price { font-size: 2.3rem; font-weight: 800; letter-spacing: -.03em; color: var(--green); line-height: 1.05; margin-bottom: 10px; }
.es-price-card .wp-block-buttons { margin: 20px 0 14px; }
.es-price-card .wp-block-button, .es-price-card .wp-block-button__link { width: 100%; }
@media (max-width: 781px) { .es-split > .es-aside { order: -1; } .es-price-card { position: static; } .es-split { gap: 36px !important; } }

/* Prose (legal) */
.es-prose { max-width: 760px !important; padding-top: 24px; }
.es-prose h2 { font-size: 1.45rem; margin-top: 1.6em; }
.es-prose ul { padding-left: 1.2em; }
.es-prose li { margin-bottom: .4em; }

/* Contact */
.es-form label { display: block; font-weight: 650; font-size: 15px; margin: 0 0 6px; }
.es-form input, .es-form select, .es-form textarea { width: 100%; font: inherit; font-size: 16px; padding: 13px 14px; border: 1.5px solid #b9cbbd; border-radius: var(--r-sm); background: #fff; color: var(--ink); margin-bottom: 18px; }
.es-form input:focus, .es-form select:focus, .es-form textarea:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px rgba(140, 198, 63, .35); }
.es-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.es-form button { border: 0; cursor: pointer; background: var(--amber); color: var(--amber-ink); font: 650 16.5px var(--sans); padding: 15px 26px; border-radius: var(--r-sm); display: inline-flex; align-items: center; gap: 9px; }
.es-form button::before { content: ""; width: 19px; height: 19px; background: currentColor; -webkit-mask: var(--wa-icon) center / contain no-repeat; mask: var(--wa-icon) center / contain no-repeat; }
.es-contact-card { background: #fff; border: 2px solid var(--ink); border-radius: var(--r); padding: 28px; }
.es-contact-card dl { margin: 0; }
.es-contact-card dt { font-size: 14px; font-weight: 650; color: var(--muted); margin-top: 18px; }
.es-contact-card dt:first-child { margin-top: 0; }
.es-contact-card dd { margin: 4px 0 0; font-size: 17px; }
.es-contact-card dd a { color: var(--ink); font-weight: 650; text-decoration: none; }
@media (max-width: 600px) { .es-form-row { grid-template-columns: 1fr; } }

/* =========================================================
   Forms shared (order, tools)
   ========================================================= */
.es-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.es-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 20px; }
@media (max-width: 720px) { .es-grid-2, .es-grid-3 { grid-template-columns: 1fr; } }
.es-order label, .es-track label, .es-dl label { display: block; font-weight: 650; font-size: 15px; margin-bottom: 6px; }
.es-order input[type=text], .es-order input[type=tel], .es-order input[type=email], .es-order input[type=number], .es-order textarea,
.es-track input, .es-dl input[type=date] { width: 100%; font: 500 16.5px var(--sans); color: var(--ink); padding: 13px 14px; border: 1.5px solid #b9cbbd; border-radius: var(--r-sm); background: #fff; }
.es-order input:focus, .es-order textarea:focus, .es-track input:focus, .es-dl input:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px rgba(140, 198, 63, .35); }
.es-narrow { max-width: 260px; }
.es-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.es-form-error { color: var(--danger); background: #fdecea; border-left: 3px solid var(--danger); padding: 10px 14px; border-radius: 0 var(--r-sm) var(--r-sm) 0; font-weight: 550; }
.es-form-error[hidden] { display: none; }
.es-step-help { color: var(--muted); font-size: 15.5px; max-width: 64ch; }

/* Service picker */
.es-pick-wrap { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin: 18px 0 8px; }
@media (max-width: 960px) { .es-pick-wrap { grid-template-columns: 1fr; gap: 20px; } }
.es-pick-group { border: 0; margin: 0; padding: 0; min-width: 0; }
.es-pick-group legend { font-weight: 700; font-size: 1.02rem; padding: 0 0 10px; width: 100%; border-bottom: 2px solid var(--ink); margin-bottom: 4px; }
.es-pick { position: relative; display: flex !important; align-items: center; gap: 12px; padding: 12px 10px 12px 0; margin: 0 !important; border-bottom: 1px solid var(--line); cursor: pointer; font-weight: 500 !important; font-size: 16px !important; }
.es-pick input { appearance: none; -webkit-appearance: none; flex: none; width: 22px; height: 22px; border: 2px solid #8aa094; border-radius: 5px; margin: 0; display: grid; place-items: center; background: #fff; cursor: pointer; }
.es-pick input:checked { background: var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 15px no-repeat; border-color: var(--green); }
.es-pick-name { flex: 1; }
.es-pick-price { font-weight: 700; color: var(--green); white-space: nowrap; font-variant-numeric: tabular-nums; }
.es-pick.is-on .es-pick-name { font-weight: 650; }
.es-pick:hover .es-pick-name { color: var(--green); }

/* Totals bar */
.es-total { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.es-total span { font-weight: 600; color: var(--muted); }
.es-total-num { font-size: 1.8rem; font-weight: 800; letter-spacing: -.02em; color: var(--ink); font-variant-numeric: tabular-nums; }
.es-total-note { color: var(--muted); font-size: 14px; }
.es-calc-bar, .es-order-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 18px 0; margin-top: 18px; border-top: 2px solid var(--ink); }

/* Order form */
.es-order { position: relative; }
.es-order-progress { display: none; list-style: none; margin: 0 0 32px; padding: 0; counter-reset: p; }
.es-order.is-stepped .es-order-progress { display: flex; gap: 6px; }
.es-order-progress li { counter-increment: p; flex: 1; padding-top: 12px; border-top: 4px solid var(--line); font-size: 14.5px; font-weight: 600; color: var(--muted); }
.es-order-progress li::before { content: counter(p) ". "; }
.es-order-progress li.is-done { border-top-color: var(--leaf); color: var(--ink); }
.es-order-progress li.is-current { border-top-color: var(--green); color: var(--ink); }
.es-step { padding-bottom: 12px; }
.es-order.is-stepped .es-step { display: none; }
.es-order.is-stepped .es-step.is-active { display: block; }
.es-order:not(.is-stepped) .es-order-nav { display: none; }
.es-step h2 { font-size: 1.7rem; }
.es-step h2:focus { outline: none; }
.es-step h3 { font-size: 1.1rem; margin-top: 12px; }
.es-new-co { margin: 8px 0 12px; padding: 22px; border-radius: var(--r); background: var(--paper); }
.es-new-co[hidden] { display: none; }
.es-drop { display: grid !important; place-items: center; text-align: center; gap: 6px; padding: 40px 20px; border: 2px dashed #8aa094; border-radius: var(--r); background: var(--paper); cursor: pointer; transition: border-color .15s, background .15s; }
.es-drop:hover, .es-drop.is-over { border-color: var(--green); background: var(--paper-2); }
.es-drop input { max-width: 100%; font-size: 15px; }
.es-drop-title { font-size: 1.1rem; font-weight: 700; }
.es-drop-help { color: var(--muted); font-weight: 500; font-size: 14.5px; }
.es-file-list { list-style: none; padding: 0; margin: 14px 0; }
.es-file-list li { padding: 8px 12px; border-bottom: 1px solid var(--line); font-size: 15px; }
.es-file-list li::before { content: ""; display: inline-block; width: 12px; height: 15px; margin-right: 10px; border: 2px solid var(--green); border-radius: 2px; vertical-align: -2px; }
.es-file-list li.is-bad { color: var(--danger); }
.es-secure-note { font-size: 14.5px; color: var(--muted); padding-left: 26px; position: relative; }
.es-secure-note::before { content: ""; position: absolute; left: 0; top: 2px; width: 14px; height: 12px; border: 2px solid var(--green); border-radius: 2px; margin-top: 6px; }
.es-secure-note::after { content: ""; position: absolute; left: 3px; top: 0; width: 8px; height: 9px; border: 2px solid var(--green); border-bottom: 0; border-radius: 6px 6px 0 0; }
.es-summary { border-top: 2px solid var(--ink); }
.es-sum-list { list-style: none; margin: 0; padding: 0; }
.es-sum-list li { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.es-sum-list li span:last-child { font-weight: 700; color: var(--green); white-space: nowrap; }
.es-sum-total { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; justify-content: space-between; padding: 14px 0; font-weight: 650; }
.es-sum-total strong { font-size: 1.5rem; }
.es-sum-total small { width: 100%; text-align: right; color: var(--muted); font-weight: 500; }
.es-sum-meta { display: grid; grid-template-columns: 160px 1fr; gap: 8px 16px; margin: 8px 0 22px; padding: 18px; background: var(--paper); border-radius: var(--r); }
.es-sum-meta dt { color: var(--muted); font-weight: 600; }
.es-sum-meta dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
@media (max-width: 560px) { .es-sum-meta { grid-template-columns: 1fr; } .es-sum-meta dd { margin-bottom: 8px; } }
.es-consent label { display: flex !important; gap: 12px; align-items: flex-start; font-weight: 500 !important; }
.es-consent input { width: 20px; height: 20px; margin-top: 3px; flex: none; accent-color: var(--green); }
.es-order-nav { display: flex; gap: 10px; }
.es-order-done { padding: 40px; border-radius: var(--r-lg); background: var(--moire), var(--paper); border: 2px solid var(--green); }
.es-order-done:focus { outline: none; }
.es-order-done[hidden] { display: none; }
.es-order-done h2 { color: var(--green-deep); }
.es-ref { font-size: 1.35em; letter-spacing: .04em; color: var(--green); font-variant-numeric: tabular-nums; }
.es-order-done .es-btn { margin: 6px 8px 6px 0; }
@media (max-width: 600px) {
	.es-order-bar { position: sticky; bottom: 70px; background: #fff; z-index: 5; padding: 12px 0; }
	.es-order-done { padding: 26px; }
	.es-order-progress li { font-size: 0; }
	.es-order-progress li::before { font-size: 13px; }
}

/* Tracker */
.es-track .es-btn { margin-top: 4px; }
.es-track-result { margin-top: 28px; padding: 28px; border: 2px solid var(--ink); border-radius: var(--r); }
.es-track-result[hidden] { display: none; }
.es-track-ref { color: var(--muted); margin-bottom: 4px; }
.es-track-status { font-size: 1.8rem; font-weight: 800; letter-spacing: -.02em; color: var(--green); margin-bottom: 16px; }
.es-track-msg { margin: 0 0 22px; padding: 16px 18px; background: var(--paper); border-left: 4px solid var(--leaf); border-radius: 0 var(--r-sm) var(--r-sm) 0; font-size: 17px; }
.es-track-msg cite { display: block; margin-top: 6px; font-style: normal; font-size: 14px; color: var(--muted); }
.es-track-steps { list-style: none; padding: 0; margin: 0 0 18px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.es-track-steps li { padding-top: 12px; border-top: 4px solid var(--line); font-size: 14px; font-weight: 600; color: var(--muted); }
.es-track-steps li.is-done { border-top-color: var(--leaf); color: var(--ink); }
.es-track-steps li.is-current { border-top-color: var(--green); color: var(--green); }
.es-track-svc { margin: 0; padding-left: 1.1em; color: var(--muted); }
@media (max-width: 640px) { .es-track-steps { grid-template-columns: 1fr; } }

/* Tools index */
.es-tools { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; border-top: 2px solid var(--ink); }
.es-tool { display: block; padding: 26px 40px 26px 0; border-bottom: 1px solid var(--line); text-decoration: none; color: var(--ink); position: relative; }
.es-tool::after { content: ""; position: absolute; right: 8px; top: 50%; width: 12px; height: 12px; margin-top: -6px; border-top: 2.5px solid var(--green); border-right: 2.5px solid var(--green); transform: rotate(45deg); transition: right .15s; }
.es-tool:hover::after { right: 2px; }
.es-tool-name { display: block; font-size: 1.3rem; font-weight: 750; letter-spacing: -.01em; margin-bottom: 4px; }
.es-tool:hover .es-tool-name { color: var(--green); }
.es-tool-desc { color: var(--muted); }
@media (max-width: 720px) { .es-tools { grid-template-columns: 1fr; } }

/* Quiz */
.es-quiz-list { list-style: none; counter-reset: q; margin: 0; padding: 0; border-top: 2px solid var(--ink); }
.es-quiz-q { counter-increment: q; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.es-quiz-text { margin: 0; flex: 1 1 420px; font-weight: 550; font-size: 17.5px; }
.es-quiz-text::before { content: counter(q) ". "; color: var(--green); font-weight: 750; }
.es-quiz .es-seg span { min-height: 44px; padding: 0 22px; }
.es-quiz-hint { color: var(--muted); margin-top: 14px; }
.es-quiz-hint[hidden] { display: none; }
.es-quiz-result { margin-top: 28px; padding: 30px; border-radius: var(--r-lg); background: var(--moire), var(--paper); border: 2px solid var(--green); }
.es-quiz-result[hidden] { display: none; }
.es-quiz-verdict { font-size: 1.7rem; font-weight: 800; letter-spacing: -.02em; color: var(--green-deep); margin-bottom: 8px; line-height: 1.15; }
.es-quiz-result .es-btn { margin: 6px 8px 0 0; }

/* Deadline checker */
.es-dl-checks { border: 0; padding: 0; margin: 8px 0 20px; }
.es-dl-checks legend { font-weight: 700; margin-bottom: 8px; }
.es-dl-checks label { display: flex !important; gap: 12px; align-items: center; font-weight: 500 !important; font-size: 16.5px !important; padding: 9px 0; }
.es-dl-checks input { width: 20px; height: 20px; accent-color: var(--green); }
.es-dl-result { margin-top: 36px; }
.es-dl-result[hidden] { display: none; }
.es-dl-list { list-style: none; margin: 0 0 22px; padding: 0; border-top: 2px solid var(--ink); }
.es-dl-list li { display: grid; grid-template-columns: 220px 1fr auto; gap: 4px 20px; padding: 16px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.es-dl-list time { font-weight: 700; font-variant-numeric: tabular-nums; }
.es-dl-list strong { font-weight: 700; }
.es-dl-when { font-size: 14px; font-weight: 650; color: var(--muted); white-space: nowrap; }
.es-dl-note { grid-column: 2 / 4; color: var(--muted); font-size: 15px; }
.es-dl-list li.is-soon .es-dl-when { color: #9a5b00; }
.es-dl-list li.is-late time, .es-dl-list li.is-late .es-dl-when { color: var(--danger); }
.es-dl-empty { display: block !important; color: var(--muted); }
@media (max-width: 640px) { .es-dl-list li { grid-template-columns: 1fr auto; } .es-dl-note { grid-column: 1 / 3; } .es-dl-list time { grid-column: 1 / 3; } }

/* =========================================================
   Guides
   ========================================================= */
.es-guides-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 40px; margin: 32px 0 20px; border-top: 2px solid var(--ink); }
@media (max-width: 960px) { .es-guides-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .es-guides-grid { grid-template-columns: 1fr; } }
.es-guide-card { position: relative; padding: 24px 0 26px; border-bottom: 1px solid var(--line); display: flex; flex-direction: column; }
.es-guide-card h3 { font-size: 1.24rem; line-height: 1.3; margin-bottom: 10px; }
.es-guide-card h3 a { color: var(--ink); text-decoration: none; }
.es-guide-card h3 a::after { content: ""; position: absolute; inset: 0; }
.es-guide-card:hover h3 a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.es-guide-card p { color: var(--muted); font-size: 15.5px; }
.es-guide-meta { font-size: 13.5px !important; font-weight: 600; color: var(--green) !important; margin-bottom: 10px; }
.es-guide-link { margin-top: auto; font-weight: 650; color: var(--green); font-size: 15px; }
.es-guides-index { padding-top: 0 !important; }

/* Article */
.es-article-hero { background: var(--moire), var(--paper); padding: 36px 0 60px; border-bottom: 1px solid var(--line); }
.es-article-head { max-width: 1100px; margin-left: auto; margin-right: auto; }
.es-article-head h1 { max-width: 22ch; font-size: clamp(2rem, 4.2vw, 3.2rem); }
.es-article-head .es-lead { max-width: 62ch; }
.es-article-meta { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 14px; color: var(--muted); margin: 20px 0 0; }
.es-article-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 64px; max-width: 1100px; padding-top: 56px; }
@media (max-width: 960px) { .es-article-grid { grid-template-columns: 1fr; gap: 32px; } }
.es-article-body.entry-content > * { max-width: none; padding-left: 0; padding-right: 0; }
.es-prose-body { font-size: 18.5px; line-height: 1.7; }
.es-prose-body > h2 { font-size: 1.75rem; margin: 1.8em 0 .55em; }
.es-prose-body > p, .es-prose-body > ul, .es-prose-body > ol, .es-prose-body > figure { margin-bottom: 1.15em; }
.es-prose-body > ul:not([class*="es-"]), .es-prose-body > ol:not([class*="es-"]) { padding-left: 1.2em; }
.es-prose-body li { margin-bottom: .45em; }
.es-prose-body > p, .es-prose-body > ul { max-width: 68ch; }
.es-prose-body .es-faq-inline { padding: 24px 0 0; }
.es-prose-body .es-faq-inline > * { max-width: none; }
.es-disclaimer { margin-top: 40px !important; padding: 16px 18px; border-radius: var(--r); background: var(--paper); font-size: 14px !important; color: var(--muted); }
.es-aside-card { position: sticky; top: 108px; border: 2px solid var(--ink); border-radius: var(--r); padding: 26px; background: #fff; }
.es-aside-card .es-eyebrow { color: var(--muted); }
.es-aside-card .es-aside-title { font-size: 1.3rem; font-weight: 750; letter-spacing: -.01em; line-height: 1.25; }
.es-aside-card p { font-size: 15.5px; }
.es-btn-wa-plain { background: var(--amber); border-color: var(--amber); color: var(--amber-ink) !important; width: 100%; margin: 6px 0 14px; }
.es-btn-wa-plain svg { width: 19px; height: 19px; fill: currentColor; }
.es-btn-wa-plain:hover { background: var(--amber-2); border-color: var(--amber-2); }
.es-aside-link { font-weight: 650; color: var(--green); font-size: 15px; }
.es-more-guides { padding-top: 72px; padding-bottom: 24px; max-width: 1100px; }
.es-callout { margin: 36px 0 !important; padding: 28px 30px !important; border-radius: var(--r-lg); background: repeating-radial-gradient(circle at 100% 0, transparent 0 15px, rgba(255, 255, 255, .05) 15px 16px), var(--green-deep); color: #cfe4d4; }
.es-callout-title { font-size: 1.35rem; color: #fff; font-weight: 750; margin-bottom: 8px !important; }
.es-callout .wp-block-buttons { margin: 18px 0 0; }
.es-callout .is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255, 255, 255, .55); }
.es-callout .is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--green-deep); }
.es-callout .es-p { color: var(--amber-2); font-weight: 700; }

/* Testimonials + photos */
.es-testimonials > h2 { margin-bottom: 8px; }
.es-tgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 28px; }
@media (max-width: 960px) { .es-tgrid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .es-tgrid { grid-template-columns: 1fr; } }
.es-tcard { margin: 0; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r); padding: 26px; display: flex; flex-direction: column; }
.es-stars { color: var(--amber); letter-spacing: 3px; font-size: 16px; margin-bottom: 12px; }
.es-tcard blockquote { margin: 0 0 20px; font-size: 1.1rem; line-height: 1.55; font-weight: 500; }
.es-tcard figcaption { margin-top: auto; display: flex; align-items: center; gap: 12px; }
.es-tavatar { width: 42px; height: 42px; border-radius: 50%; background: var(--green); color: #fff; display: grid; place-items: center; font-weight: 750; flex: none; }
.es-tcard figcaption strong { display: block; }
.es-tcard figcaption small { display: block; color: var(--muted); font-size: 14px; }
.es-photo { margin: 0; border-radius: var(--r); overflow: hidden; background: var(--paper); }
.es-photo img { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
.es-photo figcaption { font-size: 14px; color: var(--muted); padding: 10px 14px; }
.es-why .es-photo { margin-top: 24px; }
.entry-content > .es-photo-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; padding-bottom: 64px; }

/* =========================================================
   Footer
   ========================================================= */
.es-footer { background: var(--green-deep); color: #b8d2bf; font-size: 15.5px; }
.es-footer a { color: #fff; text-decoration: none; }
.es-footer a:hover { color: var(--leaf); text-decoration: underline; }
.es-footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; padding: 72px 0 48px; }
.es-footer h4 { color: #fff; font-size: 15px; font-weight: 700; margin-bottom: 14px; }
.es-footer ul { list-style: none; margin: 0; padding: 0; }
.es-footer li { margin-bottom: 9px; }
.es-footer-logo { display: inline-block; background: #fff; border-radius: var(--r); padding: 12px 16px; margin-bottom: 18px; line-height: 0; }
.es-footer-logo img { height: 50px; width: auto; }
.es-footer-contact { margin: 18px 0 !important; }
.es-footer-pay { color: #b8d2bf; font-size: 14.5px; }
.es-group-line { display: inline-block; margin-top: 6px; padding: 7px 14px; border: 1px solid rgba(140, 198, 63, .5); border-radius: 999px; color: var(--leaf); font-size: 13.5px; }
.es-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .12); padding: 22px 0 28px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 14px; }
.es-footer-bottom nav { display: flex; flex-wrap: wrap; gap: 6px 18px; }
@media (max-width: 900px) { .es-footer-grid { grid-template-columns: 1fr 1fr; } .es-footer-brand { grid-column: 1 / -1; } }
@media (max-width: 560px) { .es-footer-grid { grid-template-columns: 1fr; gap: 28px; padding-top: 56px; } }

.es-wa-float { position: fixed; right: 20px; bottom: 20px; z-index: 60; width: 58px; height: 58px; border-radius: 50%; background: #25d366; display: grid; place-items: center; box-shadow: 0 10px 28px rgba(7, 61, 32, .3); }
.es-wa-float:hover { background: #1ebe5b; }
.es-wa-float svg { width: 30px; height: 30px; fill: #fff; }
.es-mobile-bar { display: none; }
@media (max-width: 781px) {
	.es-mobile-bar { display: grid; grid-template-columns: 1fr 1fr 1.25fr; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .97); backdrop-filter: blur(8px); box-shadow: 0 -6px 24px rgba(7, 61, 32, .12); }
	.es-mobile-bar a { display: flex; align-items: center; justify-content: center; gap: 7px; height: 48px; border-radius: var(--r-sm); font-weight: 650; text-decoration: none; font-size: 15px; }
	.es-mobile-bar svg { width: 19px; height: 19px; fill: currentColor; }
	.es-mb-call { background: var(--paper-2); color: var(--green-deep) !important; }
	.es-mb-wa { background: #25d366; color: #fff !important; }
	.es-mb-start { background: var(--amber); color: var(--amber-ink) !important; }
	.es-wa-float { display: none; }
	body { padding-bottom: 70px; }
}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 960px) {
	.es-hero { gap: 40px !important; padding-top: 48px !important; padding-bottom: 56px !important; }
	.es-cert-paper { transform: none; padding: 36px 26px 30px; }
	.es-cert-seal { width: 84px; right: -8px; bottom: -22px; }
}
@media (max-width: 781px) {
	.es-section { padding-top: 64px; padding-bottom: 64px; }
	.entry-content > .wp-block-columns.es-facts { flex-wrap: wrap !important; gap: 22px 0 !important; }
	.entry-content > .wp-block-columns.es-facts > .wp-block-column { flex-basis: 50% !important; border-left: 0; padding: 0 12px 0 0; }
	.es-fact-num { font-size: 1.8rem; }
	.entry-content > .es-alert { flex-direction: column; align-items: flex-start; }
	body { font-size: 17px; }
	.es-why { gap: 32px !important; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* 404 */
.es-404 { text-align: left; padding: 120px var(--gutter); max-width: 760px; }

/* Service icons */
.es-ico-building::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230a6b37%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%224%22%20y%3D%223%22%20width%3D%2216%22%20height%3D%2218%22%20rx%3D%221.5%22/%3E%3Cpath%20d%3D%22M9%207h1M14%207h1M9%2011h1M14%2011h1M9%2015h1M14%2015h1M10%2021v-3h4v3%22/%3E%3C/svg%3E"); }
.es-ico-briefcase::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230a6b37%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%227%22%20width%3D%2218%22%20height%3D%2213%22%20rx%3D%222%22/%3E%3Cpath%20d%3D%22M8%207V5a2%202%200%200%201%202-2h4a2%202%200%200%201%202%202v2M3%2013h18%22/%3E%3C/svg%3E"); }
.es-ico-receipt::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230a6b37%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%202h12v20l-3-2-3%202-3-2-3%202z%22/%3E%3Cpath%20d%3D%22M9%207h6M9%2011h6M9%2015h4%22/%3E%3C/svg%3E"); }
.es-ico-layers::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230a6b37%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%202%202%207l10%205%2010-5z%22/%3E%3Cpath%20d%3D%22m2%2017%2010%205%2010-5M2%2012l10%205%2010-5%22/%3E%3C/svg%3E"); }
.es-ico-search::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230a6b37%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2211%22%20cy%3D%2211%22%20r%3D%227%22/%3E%3Cpath%20d%3D%22m21%2021-4.3-4.3%22/%3E%3C/svg%3E"); }
.es-ico-refresh::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230a6b37%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M21%2012a9%209%200%201%201-3-6.7L21%208%22/%3E%3Cpath%20d%3D%22M21%203v5h-5%22/%3E%3C/svg%3E"); }
.es-ico-calendar::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230a6b37%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%225%22%20width%3D%2218%22%20height%3D%2216%22%20rx%3D%222%22/%3E%3Cpath%20d%3D%22M16%203v4M8%203v4M3%2010h18%22/%3E%3C/svg%3E"); }
.es-ico-users::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230a6b37%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M17%2021v-2a4%204%200%200%200-4-4H5a4%204%200%200%200-4%204v2%22/%3E%3Ccircle%20cx%3D%229%22%20cy%3D%227%22%20r%3D%224%22/%3E%3Cpath%20d%3D%22M23%2021v-2a4%204%200%200%200-3-3.9M16%203.1a4%204%200%200%201%200%207.8%22/%3E%3C/svg%3E"); }
.es-ico-swap::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230a6b37%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M17%203l4%204-4%204M3%207h18M7%2021l-4-4%204-4M21%2017H3%22/%3E%3C/svg%3E"); }
.es-ico-eye::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230a6b37%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M1%2012s4-8%2011-8%2011%208%2011%208-4%208-11%208S1%2012%201%2012z%22/%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223%22/%3E%3C/svg%3E"); }
.es-ico-x::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230a6b37%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22/%3E%3Cpath%20d%3D%22m15%209-6%206M9%209l6%206%22/%3E%3C/svg%3E"); }
.es-ico-file::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230a6b37%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%22/%3E%3Cpath%20d%3D%22M14%202v6h6M9%2013h6M9%2017h6%22/%3E%3C/svg%3E"); }
.es-ico-percent::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230a6b37%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M19%205%205%2019%22/%3E%3Ccircle%20cx%3D%226.5%22%20cy%3D%226.5%22%20r%3D%222.5%22/%3E%3Ccircle%20cx%3D%2217.5%22%20cy%3D%2217.5%22%20r%3D%222.5%22/%3E%3C/svg%3E"); }
.es-ico-shield::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230a6b37%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2022s8-4%208-10V5l-8-3-8%203v7c0%206%208%2010%208%2010z%22/%3E%3Cpath%20d%3D%22m9%2012%202%202%204-4%22/%3E%3C/svg%3E"); }
.es-ico-award::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230a6b37%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228%22%20r%3D%226%22/%3E%3Cpath%20d%3D%22M8.2%2013.9%207%2022l5-3%205%203-1.2-8.1%22/%3E%3C/svg%3E"); }
.es-ico-check::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230a6b37%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M22%2011.1V12a10%2010%200%201%201-5.9-9.1%22/%3E%3Cpath%20d%3D%22M22%204%2012%2014l-3-3%22/%3E%3C/svg%3E"); }

/* Primary "start" buttons in block content */
.es-btn-start .wp-block-button__link { background: var(--amber); border-color: var(--amber); color: var(--amber-ink); }
.es-btn-start .wp-block-button__link:hover { background: var(--amber-2); border-color: var(--amber-2); color: var(--amber-ink); }
.es-cta .es-btn-start .wp-block-button__link { color: var(--amber-ink); }
.es-order-section, .es-narrow-section { padding-top: 0 !important; }
.es-narrow-section > * { max-width: 760px; }

.entry-content > .es-alert + .es-section { padding-top: 40px; }
.entry-content > .es-page-hero + .es-section { padding-top: 0; }
