.ept-hdr,.ept-ftr,.ept-hdr-panel{
	--ept-ink:#101010; --ept-ink-70:#3a3a3a; --ept-ink-50:#5b5b5b; --ept-ink-30:#8a8a8a;
	--ept-accent:#d48652; --ept-accent-dk:#b86c3c; --ept-accent-sf:#fbf1e9;
	--ept-cream:#fcfced; --ept-line:#e7e4dd;
	--ept-r:12px; --ept-r-sm:8px;
	--ept-sh:0 1px 2px rgba(16,16,16,.05), 0 8px 20px rgba(16,16,16,.06);
	box-sizing:border-box;
}
.ept-hdr *,.ept-hdr *::before,.ept-hdr *::after,.ept-ftr *,.ept-ftr *::before,.ept-ftr *::after,
.ept-hdr-panel *,.ept-hdr-panel *::before,.ept-hdr-panel *::after{ box-sizing:border-box; }

/* ── header ──
   Two deliberate rows: a white identity/contact row, then a cream nav rail.
   v2's first pass had both rows white, so the nav read as floating text with
   no edge — the tint is what makes the split look intended. */
.ept-hdr{ position:sticky; top:0; z-index:600; background:#fff; font-family:inherit; }
.ept-hdr-bar{ max-width:1280px; margin:0 auto; padding:15px 24px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.ept-hdr-logo img{ display:block; height:46px; width:auto; }

.ept-hdr-contact{ display:flex; align-items:center; gap:22px; }

/* Rating sits as quiet supporting text, NOT a filled pill — the pill version
   competed with the CTA for the same attention and both lost. */
.ept-hdr-rating{ display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:var(--ept-ink-50); white-space:nowrap; }
.ept-hdr-rating svg{ width:13px; height:13px; fill:#e0a13a; flex:none; }
.ept-hdr-rating b{ color:var(--ept-ink); font-weight:750; }

/* WhatsApp: green disc + stacked label/number. The label line is what makes
   it scan as "contact us here" rather than decorative text. */
.ept-hdr-wa{ display:inline-flex; align-items:center; gap:10px; text-decoration:none; white-space:nowrap; }
.ept-hdr-wa-ic{ width:36px; height:36px; border-radius:50%; background:#25d366; display:flex; align-items:center; justify-content:center; flex:none; transition:transform .15s; }
.ept-hdr-wa-ic svg{ width:19px; height:19px; fill:#fff; }
.ept-hdr-wa:hover .ept-hdr-wa-ic{ transform:scale(1.06); }
.ept-hdr-wa-txt{ line-height:1.25; }
.ept-hdr-wa-txt small{ display:block; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ept-ink-30); }
.ept-hdr-wa-txt b{ display:block; font-size:15.5px; font-weight:750; color:var(--ept-ink); }

.ept-hdr-cta{ background:var(--ept-accent); color:#fff !important; font-weight:700; font-size:14px; padding:12px 22px; border-radius:100px; text-decoration:none; white-space:nowrap; border:0; box-shadow:0 2px 10px rgba(212,134,82,.32); transition:background .15s, box-shadow .15s, transform .15s; }
.ept-hdr-cta:hover{ background:var(--ept-accent-dk); color:#fff !important; box-shadow:0 4px 16px rgba(212,134,82,.42); transform:translateY(-1px); }
.ept-hdr button.ept-hdr-burger{ display:none; width:44px; height:44px; min-width:44px; padding:0; margin:0;
	align-items:center; justify-content:center; background:#fff; background-image:none; border:1px solid var(--ept-line);
	border-radius:var(--ept-r-sm); cursor:pointer; flex:none; box-shadow:none; }
.ept-hdr button.ept-hdr-burger:hover{ background:var(--ept-cream); border-color:var(--ept-accent); }
.ept-hdr-burger svg{ width:22px; height:22px; stroke:var(--ept-ink); stroke-width:2.2; fill:none; }

.ept-hdr-nav{ background:var(--ept-cream); border-top:1px solid var(--ept-line); border-bottom:1px solid var(--ept-line); }
.ept-hdr-nav ul{ list-style:none; margin:0 auto; padding:0 16px; max-width:1280px; display:flex; flex-wrap:wrap; }
.ept-hdr-nav li{ margin:0; }
.ept-hdr-nav a{ display:block; position:relative; padding:14px 16px; color:var(--ept-ink-70); font-size:14.5px; font-weight:650; text-decoration:none; transition:color .15s; }
.ept-hdr-nav a::after{ content:''; position:absolute; left:16px; right:16px; bottom:0; height:3px; border-radius:3px 3px 0 0; background:transparent; transition:background .15s; }
.ept-hdr-nav a:hover{ color:var(--ept-accent-dk); }
.ept-hdr-nav a:hover::after{ background:rgba(212,134,82,.3); }
.ept-hdr-nav li.current-menu-item > a,.ept-hdr-nav li.current_page_item > a{ color:var(--ept-ink); }
.ept-hdr-nav li.current-menu-item > a::after,.ept-hdr-nav li.current_page_item > a::after{ background:var(--ept-accent); }

@media (max-width:1140px){ .ept-hdr-rating{ display:none; } }

/* mobile slide-out panel */
.ept-hdr-panel{ position:fixed; inset:0; z-index:900; visibility:hidden; }
.ept-hdr-panel-veil{ position:absolute; inset:0; background:rgba(16,16,16,.45); opacity:0; transition:opacity .2s; }
.ept-hdr-panel-sheet{ position:absolute; top:0; left:0; right:0; bottom:auto; width:100%; max-height:92vh;
	background:#fff; box-shadow:0 18px 40px rgba(16,16,16,.22); transform:translateY(-100%);
	transition:transform .28s cubic-bezier(.2,.7,.3,1); display:flex; flex-direction:column;
	padding:14px 18px 22px; overflow-y:auto; border-radius:0 0 var(--ept-r) var(--ept-r); }
.ept-hdr-panel.is-open{ visibility:visible; }
.ept-hdr-panel.is-open .ept-hdr-panel-veil{ opacity:1; }
.ept-hdr-panel.is-open .ept-hdr-panel-sheet{ transform:translateY(0); }
.ept-hdr-panel button.ept-hdr-panel-close{ align-self:flex-end; width:38px; height:38px; min-width:38px; padding:0; margin:0 0 6px;
	display:flex; align-items:center; justify-content:center; background:#fff; background-image:none;
	border:1px solid var(--ept-line); border-radius:50%; cursor:pointer; box-shadow:none; }
.ept-hdr-panel button.ept-hdr-panel-close:hover{ background:var(--ept-cream); border-color:var(--ept-accent); }
.ept-hdr-panel-close svg{ width:16px; height:16px; stroke:var(--ept-ink); stroke-width:2.2; fill:none; }
.ept-hdr-panel ul{ list-style:none; margin:0; padding:0; }
.ept-hdr-panel a{ display:block; padding:14px 4px; color:#101010; font-size:16.5px; font-weight:600;
	text-decoration:none; border-bottom:1px solid var(--ept-line-lt, #f0ede6); }
.ept-hdr-panel li:last-child a{ border-bottom:0; }
.ept-hdr-panel a:hover{ color:var(--ept-accent-dk); }
.ept-hdr-panel li.current-menu-item > a{ color:var(--ept-accent-dk); font-weight:700; }
.ept-hdr-panel a.ept-hdr-panel-cta{ margin-top:16px; display:block; text-align:center; background:var(--ept-accent); background-image:none; color:#fff !important; font-weight:700; font-size:15px; padding:14px; border-radius:100px; border:0; }

@media (max-width:900px){
	.ept-hdr-wa-txt{ display:none; }   /* keep the green disc — primary contact on mobile */
	.ept-hdr button.ept-hdr-burger{ display:flex; }   /* matches the specificity of the base rule above, which had to be raised to beat the theme's global button styling */
	.ept-hdr-nav{ display:none; }
	.ept-hdr-logo img{ height:38px; }
	.ept-hdr-bar{ gap:14px; padding:12px 18px; }
	.ept-hdr-contact{ gap:12px; }
}
@media (max-width:520px){
	.ept-hdr-cta{ display:none; }      /* the slide-out panel carries its own */
}

/* ── footer ──
   Warm near-black (#0f0e0c), not neutral #101010 — against the terracotta
   accent a cool grey reads muddy, a warm one reads intentional. */
.ept-ftr{ background:#0f0e0c; color:rgba(255,255,255,.7); font-family:inherit; }

.ept-ftr-trust{ background:rgba(255,255,255,.03); border-bottom:1px solid rgba(255,255,255,.07); }
.ept-ftr-trust-in{ max-width:1280px; margin:0 auto; padding:22px 24px; display:flex; flex-wrap:wrap; gap:14px 40px; justify-content:center; }
.ept-ftr-trust-in span{ display:inline-flex; align-items:center; gap:8px; color:rgba(255,255,255,.88); font-size:13.5px; font-weight:650; white-space:nowrap; }
.ept-ftr-trust-in svg{ width:15px; height:15px; fill:var(--ept-accent); flex:none; }

.ept-ftr-main{ max-width:1280px; margin:0 auto; padding:52px 24px 40px; display:grid; grid-template-columns:1.55fr 1fr 1fr 1.25fr; gap:44px; }

/* Accent rule under each column heading — cheap, but it is the difference
   between "list of links" and "designed footer". */
.ept-ftr h3{ position:relative; color:#fff; font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.09em; margin:0 0 20px; padding-bottom:11px; }
.ept-ftr h3::after{ content:''; position:absolute; left:0; bottom:0; width:26px; height:2px; background:var(--ept-accent); border-radius:2px; }

.ept-ftr-brand img{ height:34px; width:auto; margin-bottom:16px; filter:brightness(0) invert(1); }
.ept-ftr-brand p{ font-size:13.5px; line-height:1.7; margin:0 0 14px; color:rgba(255,255,255,.58); }
.ept-ftr-brand a.ept-ftr-more{ color:var(--ept-accent); font-weight:700; font-size:13.5px; text-decoration:none; }
.ept-ftr-brand a.ept-ftr-more:hover{ color:#e8a47d; }

.ept-ftr-lic{ margin-top:18px; background:rgba(255,255,255,.045); border-left:3px solid var(--ept-accent); border-radius:0 var(--ept-r-sm) var(--ept-r-sm) 0; padding:13px 15px; }
.ept-ftr-lic strong{ display:block; color:#fff; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; margin-bottom:5px; }
.ept-ftr-lic span{ font-size:12.5px; line-height:1.6; color:rgba(255,255,255,.6); }

/* Fixed 4-wide grid. The old flex-wrap put 7 icons on one line and stranded
   LinkedIn alone underneath — the single most visible flaw in the last pass. */
.ept-ftr-social{ display:grid; grid-template-columns:repeat(4,38px); gap:10px; margin-top:22px; }
.ept-ftr-social a svg{ width:17px; height:17px; }
.ept-ftr-social a{ width:38px; height:38px; display:flex; align-items:center; justify-content:center; border-radius:10px; background:rgba(255,255,255,.07); color:#fff; text-decoration:none; font-size:15px; transition:background .15s,transform .15s,color .15s; }
.ept-ftr-social a:hover{ background:var(--ept-accent); color:#fff; transform:translateY(-2px); }

.ept-ftr ul{ list-style:none; margin:0; padding:0; }
.ept-ftr li{ margin-bottom:12px; }
.ept-ftr a{ color:rgba(255,255,255,.66); text-decoration:none; font-size:13.5px; transition:color .15s,padding-left .15s; }
.ept-ftr-links a:hover{ color:var(--ept-accent); padding-left:4px; }

.ept-ftr-contact-card{ background:linear-gradient(160deg, rgba(212,134,82,.16), rgba(255,255,255,.035)); border:1px solid rgba(255,255,255,.09); border-radius:var(--ept-r); padding:20px; }
.ept-ftr-contact p{ font-size:12px; text-transform:uppercase; letter-spacing:.07em; font-weight:700; color:rgba(255,255,255,.42); margin:16px 0 5px; }
.ept-ftr-contact p:first-child{ margin-top:0; }
.ept-ftr-contact .ept-ftr-phone{ display:block; font-size:17px; font-weight:750; color:#fff; text-decoration:none; letter-spacing:-.01em; }
.ept-ftr-contact .ept-ftr-email{ display:block; font-size:13.5px; font-weight:600; color:rgba(255,255,255,.82); text-decoration:none; word-break:break-word; }
.ept-ftr-contact .ept-ftr-phone:hover,.ept-ftr-contact .ept-ftr-email:hover{ color:var(--ept-accent); }
.ept-ftr-wa{ display:flex; align-items:center; justify-content:center; gap:9px; margin-top:20px; background:#25d366; color:#fff !important; font-weight:700; font-size:13.5px; padding:12px 16px; border-radius:100px; text-decoration:none; transition:background .15s; }
.ept-ftr-wa:hover{ background:#1eb457; color:#fff !important; }
.ept-ftr-wa svg{ width:17px; height:17px; fill:#fff; flex:none; }

.ept-ftr-bottom{ border-top:1px solid rgba(255,255,255,.09); }
.ept-ftr-bottom-in{ max-width:1280px; margin:0 auto; padding:20px 24px; display:flex; flex-wrap:wrap; gap:10px 22px; align-items:center; justify-content:space-between; font-size:12.5px; color:rgba(255,255,255,.45); }
.ept-ftr-bottom-links{ display:flex; flex-wrap:wrap; gap:20px; }
.ept-ftr-bottom-links a{ font-size:12.5px; color:rgba(255,255,255,.45); }
.ept-ftr-bottom-links a:hover{ color:#fff; }
/* Agency credit. Sits as the third item in the space-between row, so it
   lands at the right on desktop and centres with the rest under 560px. */
.ept-ftr-credit{ display:inline-flex; align-items:center; gap:5px; font-size:12.5px; color:rgba(255,255,255,.45); }
.ept-ftr-heart{ color:#e0555f; font-size:13px; line-height:1; }
.ept-ftr-credit a{ color:rgba(255,255,255,.72); font-weight:600; }
.ept-ftr-credit a:hover{ color:#fff; }

@media (max-width:1000px){
	.ept-ftr-main{ grid-template-columns:1fr 1fr; gap:36px; }
}
@media (max-width:560px){
	.ept-ftr-main{ grid-template-columns:1fr; padding:40px 20px 32px; }
	.ept-ftr-trust-in{ gap:12px 22px; padding:18px 20px; }
	.ept-ftr-bottom-in{ justify-content:center; text-align:center; }
}
