.eps-post{
	--s-accent:var(--epl-accent);
	--s-accent-dk:var(--epl-accent-dk);
	--s-accent-wash:var(--epl-accent-sf);
	--s-cta:var(--epl-accent);
	--s-cta-dk:var(--epl-accent-dk);
	--s-ink:var(--epl-ink);
	--s-ink-2:var(--epl-ink-70);
	--s-ink-3:var(--epl-ink-30);
	--s-rule:var(--epl-line);
	--s-rule-2:var(--epl-line-lt);
	--s-bg:#ffffff;
	--s-bg-alt:var(--epl-sand);
}
.eps-post *,.eps-post *::before,.eps-post *::after{ box-sizing:border-box; }
.eps-post{
	width: auto; max-width: auto; margin-left: 0; margin-right: 0;
	overflow-x:clip; background:var(--s-bg); color:var(--s-ink); line-height:1.7; font-family:inherit;
}
.eps-post img{ max-width:100%; height:auto; }
.eps-wrap{ max-width:var(--epl-container); margin:0 auto; padding:0 24px; box-sizing:border-box; padding-inline:var(--epl-gutter); }

/* the parent theme wraps every page in overflow:hidden, which kills position:sticky
   for anything inside it — swap to clip on single posts only */
body.single-post .traveltour-body-outer-wrapper,
body.single-post .traveltour-body-wrapper,
body.single-post .traveltour-page-wrapper,
body.single-post .traveltour-content-container,
body.single-post .traveltour-content-area{ overflow:clip; }

/* reading progress */
.eps-progress{ position:fixed; left:0; top:0; height:3px; width:0; background:var(--s-cta); z-index:9999; transition:width .1s linear; }

/* hero */
.eps-hero{ position:relative; background:var(--epl-ink); }
.eps-hero-img{ position:relative; height:clamp(300px,44vw,460px); overflow:hidden; }
.eps-hero-img img{ width:100%; height:100% !important; object-fit:cover; display:block; }
.eps-hero-img::after{ content:""; position:absolute; inset:0;
	background:linear-gradient(180deg,rgba(16,16,16,.2) 0%,rgba(16,16,16,.5) 45%,rgba(16,16,16,.93) 100%),
	           linear-gradient(90deg,rgba(16,16,16,.92) 0%,rgba(16,16,16,.78) 38%,rgba(16,16,16,.34) 64%,rgba(16,16,16,.1) 88%); }
.eps-hero-body{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding-bottom:34px; }
.eps-hero-body .eps-wrap{ max-width:var(--epl-container); }
.eps-post .eps-cat{
	display:inline-block; font-size:0.75rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
	color:#fff; background:var(--s-cta); border-radius:20px; padding:5px 14px; margin-bottom:16px;
}
.eps-post h1.eps-title{
	position:relative; z-index:2; color:#fff; font-size:clamp(2rem,4.2vw,2.7rem); line-height:1.14; margin:0 0 16px;
	letter-spacing:-.015em; text-wrap:balance; max-width:30ch;
	text-shadow:0 2px 18px rgba(0,0,0,.4);
}
.eps-meta{ display:flex; flex-wrap:wrap; gap:8px 20px; font-size:.86rem; color:#e2dbd2; }
.eps-meta span{ display:inline-flex; align-items:center; gap:7px; }
.eps-meta b{ color:#fff; font-weight:600; }
.eps-post a.eps-byline{ color:inherit; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.45); }
.eps-post a.eps-byline:hover{ border-bottom-color:#fff; }
.eps-hero-plain{ background:var(--s-bg-alt); border-bottom:1px solid var(--s-rule); padding:46px 0 34px; }
.eps-hero-plain .eps-cat{ background:var(--s-accent); }
.eps-hero-plain h1.eps-title{ color:var(--s-ink); text-shadow:none; }
.eps-hero-plain .eps-meta{ color:var(--s-ink-3); }
.eps-hero-plain .eps-meta b{ color:var(--s-ink-2); }
.eps-hero-plain a.eps-byline{ border-bottom-color:var(--s-rule); }

/* body grid — the aside reclaims the dead rail */
.eps-body{ display:grid; grid-template-columns:minmax(0,1fr) 316px; gap:56px; padding:46px 0 64px; align-items:start; }

/* content typography */
.eps-content{ min-width:0; font-size:1.06rem; color:var(--s-ink-2); }
.eps-content > *:first-child{ margin-top:0; }
.eps-content p{ margin:0 0 1.25em; max-width:70ch; }
.eps-content h2{
	font-size:clamp(1.4rem,2.4vw,1.85rem); line-height:1.2; color:var(--s-ink);
	margin:2.2em 0 .6em; padding-top:.5em; border-top:1px solid var(--s-rule-2);
	letter-spacing:-.012em; scroll-margin-top:80px; text-wrap:balance;
}
.eps-content h2:first-of-type{ border-top:0; padding-top:0; }
.eps-content h3{ font-size:1.2rem; line-height:1.3; color:var(--s-ink); margin:1.8em 0 .5em; scroll-margin-top:80px; }
.eps-content h4{ font-size:1.04rem; color:var(--s-ink); margin:1.5em 0 .4em; }
.eps-content ul,.eps-content ol{ margin:0 0 1.4em; padding-left:1.3em; max-width:70ch; }
.eps-content li{ margin-bottom:.5em; }
.eps-content li::marker{ color:var(--s-accent); }
.eps-content a{ color:var(--s-accent); text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px; text-decoration-color:var(--epl-accent-pale); }
.eps-content a:hover{ text-decoration-color:var(--s-accent); }
.eps-content strong{ color:var(--s-ink); }
.eps-content img{
	display:block; width:100%; height:auto !important; border-radius:12px;
	margin:0em 0; box-shadow:0 12px 28px -18px rgba(16,16,16,.5);
}
.eps-content figure{ margin:0; }
.eps-content figure img{ margin:0; }
.eps-content figcaption{ font-size:.85rem; color:var(--s-ink-3); margin-top:10px; text-align:center; }
.eps-content blockquote{
	margin:1.8em 0; padding:18px 24px; background:var(--s-accent-wash);
	border-left:4px solid var(--s-accent); border-radius:0 10px 10px 0; color:var(--s-ink-2);
}
.eps-content blockquote p:last-child{ margin-bottom:0; }
.eps-content table{ width:100%; border-collapse:collapse; margin:1.6em 0; font-size:.94rem; }
.eps-content th,.eps-content td{ padding:11px 14px; border:1px solid var(--s-rule); text-align:left; }
.eps-content th{ background:var(--s-bg-alt); font-weight:700; color:var(--s-ink); }
.eps-table-scroll{ overflow-x:auto; margin:1.6em 0; }
.eps-table-scroll table{ margin:0; min-width:520px; }
/* the plugin's inline TOC duplicates the aside on desktop */
@media (min-width:1000px){
	#ftwp-container-outer, #ftwp-container, #ftwp-trigger, .ftwp-in-post, .ftwp-wrap,
	#ftwp-float-container, .ftwp-float-left, .ftwp-float-right,
	.eps-content #toc_container, .eps-content .ez-toc-v2_0_{ display:none !important; }
}

/* aside */
.eps-aside{ position:sticky; top:74px; display:flex; flex-direction:column; gap:18px; }
.eps-card{ background:var(--s-bg); border:1px solid var(--s-rule); border-radius:12px; overflow:hidden; }
.eps-card-h{
	font-size:0.75rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase;
	color:var(--s-ink-3); padding:15px 18px 11px; margin:0;
}
.eps-toc{ max-height:46vh; overflow-y:auto; padding:0 8px 12px; }
.eps-toc ol{ list-style:none; margin:0; padding:0; counter-reset:toc; }
.eps-toc li{ margin:0; }
.eps-post .eps-toc a{
	display:block; padding:8px 10px; font-size:.88rem; line-height:1.4; color:var(--s-ink-2);
	border-radius:7px; text-decoration:none; border-left:2px solid transparent; transition:all .15s;
}
.eps-post .eps-toc a:hover{ background:var(--s-bg-alt); color:var(--s-ink); }
.eps-post .eps-toc a.is-active{ color:var(--s-accent-dk); background:var(--s-accent-wash); border-left-color:var(--s-accent); font-weight:600; }

.eps-tours{ padding:0 12px 14px; display:flex; flex-direction:column; gap:8px; }
.eps-post a.eps-tour{
	display:grid; grid-template-columns:74px 1fr; gap:11px; align-items:center;
	padding:8px; border:1px solid var(--s-rule); border-radius:10px; text-decoration:none;
	transition:border-color .15s, background .15s;
}
.eps-post a.eps-tour:hover{ border-color:var(--epl-accent-pale); background:var(--s-cta-wash,#fbeee5); }
.eps-tour-img{ display:block; position:relative; aspect-ratio:4/3; border-radius:7px; overflow:hidden; background:var(--s-bg-alt); }
.eps-tour-img img{ position:absolute; inset:0; width:100%; height:100% !important; object-fit:cover; margin:0; border-radius:0; box-shadow:none; }
.eps-tour-t{ display:block; min-width:0; }
.eps-tour-t b{ display:block; font-size:.83rem; line-height:1.3; color:var(--s-ink); font-weight:600; margin-bottom:3px; }
.eps-tour-t span{ font-size:.8rem; font-weight:700; color:var(--s-cta-dk); }
.eps-tour-t span small{ font-size:inherit; font-weight:400; color:var(--s-ink-3); }

.eps-ask{ background:var(--s-ink); color:#fff; padding:20px 18px 22px; }
.eps-ask h3{ color:#fff; font-size:1.02rem; margin:0 0 7px; }
.eps-ask p{ font-size:.86rem; color:#c4bcb2; margin:0 0 14px; }
.eps-btns{ display:flex; flex-direction:column; gap:8px; }
.eps-post .eps-btn{
	display:block; text-align:center; font-weight:700; font-size:.88rem; padding:11px 16px;
	border-radius:9px; text-decoration:none; transition:filter .15s;
}
.eps-post .eps-btn:hover{ filter:brightness(1.08); }
.eps-post .eps-btn-cta{ background:var(--s-cta); color:#fff; }
.eps-post .eps-btn-wa{ background:#25d366; color:#04310f; }

/* author + related */
.eps-foot{ border-top:1px solid var(--s-rule); padding:34px 0 0; margin-top:40px; }
.eps-author{
	display:grid; grid-template-columns:104px 1fr; gap:26px; align-items:start;
	background:var(--s-bg-alt); border:1px solid var(--s-rule); border-radius:14px; padding:30px 32px;
}
.eps-author-av{ width:104px; height:104px; border-radius:50%; overflow:hidden; background:var(--s-accent); }
.eps-author-av img{ width:100%; height:100% !important; object-fit:cover; object-position:center 22%; margin:0; border-radius:0; box-shadow:none; }
.eps-author-kicker{ display:block; font-size:0.75rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--s-ink-3); margin-bottom:7px; }
.eps-post a.eps-author-name{ display:block; font-size:1.4rem; font-weight:700; color:var(--s-ink); line-height:1.15; margin-bottom:4px; letter-spacing:-.015em; text-decoration:none; }
.eps-post a.eps-author-name:hover{ color:var(--s-accent); text-decoration:underline; text-underline-offset:3px; }
.eps-author-role{ display:block; font-size:.9rem; font-weight:600; color:var(--s-accent); margin-bottom:12px; }
.eps-author-bio{ margin:0; font-size:.93rem; color:var(--s-ink-2); max-width:66ch; }
.eps-author-stats{ display:flex; flex-wrap:wrap; gap:38px; margin-top:20px; padding-top:18px; border-top:1px solid var(--s-rule); }
.eps-author-stats div b{ display:block; font-size:1.35rem; font-weight:700; color:var(--s-ink); line-height:1.1; font-variant-numeric:tabular-nums; }
.eps-author-stats div span{ display:block; font-size:0.75rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--s-ink-3); margin-top:5px; }
@media (max-width:600px){
	.eps-author{ grid-template-columns:1fr; gap:18px; padding:24px; }
	.eps-author-stats{ gap:24px; }
}
.eps-related{ margin-top:40px; }
.eps-related h2{ font-size:1.25rem; margin:0 0 18px; color:var(--s-ink); }
.eps-rel-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:12px; }
@media (min-width:760px){ .eps-rel-grid{ grid-template-columns:repeat(2,1fr); } }
.eps-post a.eps-rel{
	display:grid; grid-template-columns:88px 1fr; gap:14px; align-items:center;
	text-decoration:none; border:1px solid var(--s-rule); border-radius:11px;
	background:#fff; padding:10px; transition:border-color .15s, background .15s, transform .15s;
}
.eps-post a.eps-rel:hover{ transform:translateY(-2px); border-color:var(--s-accent); background:var(--s-accent-wash); }
.eps-rel-img{ display:block; position:relative; aspect-ratio:1/1; border-radius:8px; overflow:hidden; background:var(--s-bg-alt); }
.eps-rel-img img{ position:absolute; inset:0; width:100%; height:100% !important; object-fit:cover; margin:0; border-radius:0; box-shadow:none; }
.eps-rel-b{ display:block; min-width:0; }
.eps-rel-b b{ display:block; font-size:.94rem; line-height:1.35; color:var(--s-ink); font-weight:600; }
.eps-rel-b span{ display:block; font-size:.78rem; color:var(--s-ink-3); margin-top:4px; }

@media (max-width:1000px){
	.eps-body{ grid-template-columns:1fr; gap:34px; padding-top:32px; }
	.eps-aside{ position:static; }
	.eps-toc{ max-height:none; }
}
@media (max-width:560px){
	.eps-wrap{ padding:0 18px; padding-inline:var(--epl-gutter); }
	.eps-content{ font-size:1.02rem; }
	.eps-hero-img{ height:clamp(220px,52vw,300px); }
}

/* ═══ blog-post modules (functions.php: bridge module + FAQ module) ═══════
   Moved 2026-09-11 from inline <style> blocks printed in wp_head. */
.epl-bridge{margin:40px 0 8px;border:1px solid #ecdfd2;border-left:4px solid var(--epl-accent);background:linear-gradient(180deg,#fdf8f1,#f9f6f1);border-radius:14px;overflow:hidden}
.epl-bridge-inner{padding:26px 28px}
.epl-bridge-kicker{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--epl-accent-dk)}
.epl-bridge-h{font-size:22px;line-height:1.2;margin:8px 0 10px;color:#1a1a1a}
.epl-bridge-lead{font-size:16px;line-height:1.6;color:#3a3a3a;margin:0 0 18px;max-width:64ch}
.epl-bridge-links{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}
.epl-bridge-link{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid #e6ddcf;color:#1a1a1a !important;padding:10px 16px;border-radius:10px;font-weight:600;font-size:14.5px;text-decoration:none !important;transition:border-color .15s,transform .15s}
.epl-bridge-link:hover{border-color:var(--epl-accent);transform:translateY(-1px);color:var(--epl-accent-dk) !important}
.epl-bridge-link span{color:var(--epl-accent-dk)}
.epl-bridge-cta .epl-wa-cta{display:inline-flex;align-items:center;gap:8px;background:#25d366;color:#fff !important;padding:11px 20px;border-radius:10px;font-weight:700;font-size:14.5px;text-decoration:none !important}
.epl-bridge-cta .epl-wa-cta::before{content:"";display:inline-block;width:16px;height:16px;background:no-repeat center/contain url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white"><path d="M12 2a10 10 0 00-8.5 15.2L2 22l4.9-1.5A10 10 0 1012 2zm0 18a8 8 0 01-4.1-1.1l-.3-.2-2.9.9.9-2.8-.2-.3A8 8 0 1112 20z"/></svg>')}
.epl-bridge-cta .epl-wa-cta:hover{background:#1eb358}
@media(max-width:600px){.epl-bridge-inner{padding:22px 18px}
.epl-bridge-h{font-size:19px}
.epl-bridge-link{width:100%;justify-content:space-between}}

.epl-faq{margin:38px 0 8px}
.epl-faq-h{font-size:24px;margin:0 0 16px;color:#1a1a1a}
.epl-faq-item{border:1px solid #e8e2d3;border-radius:12px;margin-bottom:12px;overflow:hidden;background:#fff}
.epl-faq-item[open]{border-color:#eab98f;box-shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.05)}
.epl-faq-item summary{list-style:none;cursor:pointer;padding:18px 52px 18px 20px;font-weight:700;font-size:17px;color:#1a1a1a;position:relative}
.epl-faq-item summary::-webkit-details-marker{display:none}
.epl-faq-item summary::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);width:26px;height:26px;border:1px solid #e6ddcf;border-radius:50%;display:grid;place-items:center;font-size:18px;color:var(--epl-accent-dk);transition:transform .2s,background .2s}
.epl-faq-item[open] summary::after{content:"\2013";background:var(--epl-accent);color:#fff;border-color:var(--epl-accent)}
.epl-faq-a{padding:0 20px 20px;color:#3a3a3a;font-size:16px;line-height:1.65}
