/* eSIM Price Comparison — front-end styles
 * Brand palette: eSIMTweaks teal + navy + orange accent.
 */
.epc {
	--epc-blue: #FE41C4;          /* primary (brand teal) */
	--epc-blue-dark: #DB28A6;
	--epc-blue-soft: #FFE9F7;
	--epc-green: #00B67A;         /* value / success */
	--epc-green-dark: #00996A;
	--epc-green-soft: #E3F8F0;
	--epc-accent: #FE41C4;        /* CTA accent (orange) */
	--epc-accent-dark: #C21E90;
	--epc-accent-soft: #FFE9F7;
	--epc-amber: #FDD34D;         /* stars */
	--epc-ink: #1B1B1D;
	--epc-muted: #7D7D7D;
	--epc-line: #E4E4E6;
	--epc-surface: #ffffff;
	--epc-surface-2: #F4F4F5;
	--epc-radius: 16px;
	--epc-shadow: 0 1px 2px rgba(0,0,0,.04), 0 18px 40px -24px rgba(0,0,0,.28);

	color: var(--epc-ink);
	font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	margin: 1.6rem 0;
	-webkit-font-smoothing: antialiased;
}
.epc *, .epc *::before, .epc *::after { box-sizing: border-box; }
.epc h1, .epc h2, .epc h3, .epc h4,
.epc .epc-hero-title, .epc .epc-stat-num, .epc .epc-afford-big, .epc .epc-calc-gb, .epc .epc-lb-num {
	font-family: 'Archivo', 'Poppins', sans-serif;
}

/* ---------- Toolbar ---------- */
.epc-toolbar {
	display: flex; align-items: center; justify-content: space-between;
	gap: 12px; flex-wrap: wrap;
	background: var(--epc-surface-2);
	border: 1px solid var(--epc-line);
	border-radius: var(--epc-radius) var(--epc-radius) 0 0;
	padding: 14px 18px;
}
.epc-toolbar__label { font-weight: 600; font-size: 14px; color: var(--epc-ink); }
.epc-toolbar__controls { display: flex; gap: 10px; flex-wrap: wrap; }

.epc-select {
	appearance: none;
	background: var(--epc-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23FE41C4' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;
	border: 1px solid var(--epc-line);
	border-radius: 10px;
	padding: 9px 34px 9px 14px;
	font-size: 14px; font-weight: 600; color: var(--epc-blue-dark);
	cursor: pointer;
}
.epc-select:focus { outline: 2px solid var(--epc-blue); outline-offset: 1px; }

.epc-btn {
	border: 0; border-radius: 10px; cursor: pointer;
	font-size: 14px; font-weight: 600; padding: 9px 18px;
	transition: transform .05s ease, background .15s ease, box-shadow .15s ease;
}
.epc-btn:active { transform: translateY(1px); }
.epc-btn--primary { background: var(--epc-blue); color: #000; box-shadow: 0 8px 18px -8px rgba(254,65,196,.75); }
.epc-btn--primary:hover { background: var(--epc-blue-dark); }
.epc-btn--ghost { background: var(--epc-surface); color: var(--epc-blue-dark); border: 1px solid var(--epc-line); }
.epc-btn--ghost:hover { border-color: var(--epc-blue); }
.epc-btn--load { background: var(--epc-blue-soft); color: var(--epc-blue-dark); width: 100%; padding: 12px; }
.epc-btn--load:hover { background: var(--epc-blue-soft); box-shadow: var(--epc-shadow); }

/* Inline SVG icons (replace emoji) */
.epc-ico { width: 1em; height: 1em; display: inline-block; vertical-align: -0.14em; flex: none; }
.epc-chip .epc-ico, .epc-tab .epc-ico { width: 15px; height: 15px; vertical-align: -0.18em; margin-right: 2px; }

/* Keyboard focus rings (a11y + polish) */
.epc-btn:focus-visible, .epc-chip:focus-visible, .epc-tab:focus-visible,
.epc-code-chip:focus-visible, .epc-detail-link:focus-visible, .epc-copy:focus-visible,
summary:focus-visible { outline: 2px solid var(--epc-blue); outline-offset: 2px; border-radius: 8px; }

/* ---------- Filter panel ---------- */
.epc-filter-panel {
	display: flex; gap: 16px; flex-wrap: wrap; align-items: flex-end;
	background: var(--epc-surface);
	border: 1px solid var(--epc-line); border-top: 0;
	padding: 16px 18px;
}
.epc-filter-panel label { font-size: 13px; font-weight: 600; color: var(--epc-muted); display: flex; flex-direction: column; gap: 6px; }
.epc-filter-panel input[type="number"] { width: 110px; padding: 8px 10px; border: 1px solid var(--epc-line); border-radius: 8px; font-size: 14px; }
.epc-check { flex-direction: row !important; align-items: center; gap: 8px !important; }

/* ---------- Table ---------- */
.epc-table-wrap {
	border: 1px solid var(--epc-line);
	border-radius: 0 0 var(--epc-radius) var(--epc-radius);
	overflow-x: auto;
	background: var(--epc-surface);
	box-shadow: var(--epc-shadow);
}
.epc-price-table .epc-toolbar + .epc-table-wrap,
.epc-price-table .epc-filter-panel + .epc-table-wrap { border-radius: 0 0 var(--epc-radius) var(--epc-radius); }

.epc-table { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 720px; }
.epc-table thead th {
	text-align: left; font-weight: 700; font-size: 12px; letter-spacing: .02em;
	text-transform: uppercase; color: var(--epc-muted);
	padding: 14px 16px; background: var(--epc-surface-2);
	border-bottom: 1px solid var(--epc-line); white-space: nowrap;
}
.epc-table .epc-th-price { color: var(--epc-blue); }
.epc-table tbody td { padding: 16px; border-bottom: 1px solid var(--epc-line); vertical-align: middle; }
.epc-table tbody tr:last-child td { border-bottom: 0; }
.epc-table tbody tr:hover { background: var(--epc-blue-soft); }

.epc-cell-esim { display: flex; align-items: center; gap: 12px; min-width: 150px; }
.epc-esim-name { font-weight: 600; }
.epc-logo { width: 36px; height: 36px; object-fit: contain; border-radius: 8px; background: var(--epc-surface-2); padding: 2px; flex: 0 0 auto; }
.epc-logo--ph { display: inline-block; }
.epc-cell-price { font-weight: 700; color: var(--epc-ink); }
.epc-price-old { color: var(--epc-muted); font-weight: 600; text-decoration: line-through; margin-right: 6px; font-size: 13px; }
.epc-price-now { color: var(--epc-green-dark); font-weight: 800; }
.epc-apply-wrap { font-size: 13px; font-weight: 600; color: var(--epc-blue-dark); display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.epc-cell-ppgb { color: var(--epc-green-dark); font-weight: 600; }
.epc-cell-code { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 13px; color: var(--epc-muted); }
.epc-code-chip {
	font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 12px; font-weight: 700;
	color: var(--epc-blue-dark); background: var(--epc-blue-soft); border: 1px dashed var(--epc-blue);
	border-radius: 7px; padding: 5px 10px; cursor: pointer; letter-spacing: .03em; line-height: 1;
	transition: background .12s ease, color .12s ease;
}
.epc-code-chip:hover { background: var(--epc-blue); color: #000; }
.epc-code-chip.is-copied { background: var(--epc-green); color: #fff; border-color: var(--epc-green); }
.epc-strong { font-weight: 700; }

.epc-pill {
	display: inline-block; background: var(--epc-accent); color: #fff;
	font-weight: 700; font-size: 13px; padding: 8px 16px; border-radius: 999px;
	text-decoration: none; white-space: nowrap;
	box-shadow: 0 6px 14px -6px rgba(254,65,196,.7);
}
.epc-pill { transition: background .18s ease, transform .18s ease, box-shadow .18s ease; }
.epc-pill:hover { background: var(--epc-accent-dark); color: #fff; transform: translateY(-2px); box-shadow: 0 10px 20px -8px rgba(254,65,196,.8); }

.epc-empty { text-align: center; color: var(--epc-muted); padding: 28px 16px !important; font-style: italic; }

.epc-more { margin-top: 14px; text-align: center; }
.epc-loading { display: inline-block; color: var(--epc-muted); font-size: 14px; padding: 10px; }

/* ---------- Card head (cheapest table) ---------- */
.epc-card-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.epc-card-head--col { flex-direction: column; align-items: flex-start; gap: 2px; }
.epc-card-head h3, .epc-results-head h3, .epc-card-head--col h3 { margin: 0; font-size: 20px; font-weight: 700; }
.epc-card-icon {
	width: 40px; height: 40px; border-radius: 10px; background: var(--epc-blue);
	color: #fff; display: grid; place-items: center;
}
.epc-card-icon .dashicons { color: #fff; }
.epc-sub { margin: 0; color: var(--epc-muted); font-size: 14px; }
.epc-cheapest { border: 1px solid var(--epc-line); border-radius: var(--epc-radius); padding: 22px; box-shadow: var(--epc-shadow); background: var(--epc-surface); }
.epc-table--clean { min-width: 520px; }
.epc-cheapest .epc-table-wrap { border: 0; box-shadow: none; }

/* ---------- Leaderboard ---------- */
.epc-leaderboard { border: 1px solid var(--epc-line); border-radius: var(--epc-radius); padding: 22px; box-shadow: var(--epc-shadow); background: var(--epc-surface); }
.epc-lb-toolbar { display: flex; align-items: center; gap: 10px; margin: 14px 0 18px; }
.epc-lb-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.epc-lb-item {
	display: grid; grid-template-columns: 28px 36px 1fr 2fr auto; align-items: center; gap: 14px;
	padding: 12px 10px; border-radius: 10px; border-bottom: 1px solid var(--epc-line);
}
.epc-lb-item:last-child { border-bottom: 0; }
.epc-lb-item.is-top { background: var(--epc-green-soft); }
.epc-lb-rank {
	width: 28px; height: 28px; border-radius: 50%; background: var(--epc-surface-2);
	display: grid; place-items: center; font-weight: 700; font-size: 13px; color: var(--epc-muted);
}
.epc-lb-item.is-top .epc-lb-rank { background: var(--epc-green); color: #fff; }
.epc-lb-name { font-weight: 600; }
.epc-lb-bar { height: 10px; background: var(--epc-surface-2); border-radius: 999px; overflow: hidden; }
.epc-lb-fill { display: block; height: 100%; width: 0; border-radius: 999px; background: var(--epc-blue); transition: width .9s cubic-bezier(.2,.7,.2,1); }
.epc-lb-num { font-weight: 800; font-size: 22px; text-align: right; line-height: 1; }
.epc-lb-num small { display: block; font-size: 11px; font-weight: 600; color: var(--epc-muted); }
.epc-lb-name small { display: block; font-size: 11px; font-weight: 600; color: var(--epc-muted); }
.epc-prov { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .02em; padding: 2px 8px; border-radius: 999px; vertical-align: middle; margin-right: 6px; }
.epc-prov--editorial { background: rgba(2,157,211,.12); color: var(--epc-blue-dark); }
.epc-prov--community { background: rgba(0,182,122,.14); color: #00875C; }
.epc-lb-foot { margin: 10px 2px 0; font-size: 12px; color: var(--epc-muted); }

/* ---------- Results table ---------- */
.epc-results { border: 1px solid var(--epc-line); border-radius: var(--epc-radius); box-shadow: var(--epc-shadow); overflow: hidden; background: var(--epc-surface); }
.epc-results-head {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding: 18px 22px; background: #000000; color: #fff;
}
.epc-results-head h3 { color: #fff; }
.epc-badge-verified { background: rgba(255,255,255,.18); color: #fff; border-radius: 999px; padding: 6px 14px; font-size: 12px; font-weight: 700; }
.epc-results-scroll { max-height: 520px; overflow-y: auto; border: 0; box-shadow: none; border-radius: 0; }
.epc-table--results { min-width: 760px; }
.epc-yes { color: var(--epc-green-dark); font-weight: 700; }
.epc-detail-link { color: var(--epc-blue); font-weight: 600; text-decoration: none; }
.epc-detail-link:hover { text-decoration: underline; }

/* ---------- Responsive ---------- */
@media (max-width: 600px) {
	.epc-lb-item { grid-template-columns: 24px 30px 1fr auto; }
	.epc-lb-bar { display: none; }
	.epc-toolbar { flex-direction: column; align-items: stretch; }
}

/* ---------- Country page (all-in-one) ---------- */
.epc-country-page .epc-cp-head { margin-bottom: 6px; }
.epc-country-page .epc-cp-head h2 { margin: 0 0 4px; font-size: 26px; font-weight: 800; }
.epc-cp-section { margin: 26px 0; }
.epc-cp-h { font-size: 20px; font-weight: 700; margin: 0 0 12px; }

/* Hero */
.epc-hero {
	position: relative; text-align: center; color: #fff;
	background: #000000;
	border-radius: 22px; padding: 34px 24px 28px; overflow: hidden;
	box-shadow: 0 22px 44px -22px rgba(0,0,0,.45);
}
.epc-hero::after { content: ""; position: absolute; inset: 0; background: radial-gradient(120% 120% at 50% -20%, rgba(255,255,255,.18), transparent 60%); pointer-events: none; }
.epc-hero-flag { font-size: 38px; line-height: 1; display: inline-block; margin-bottom: 6px; }
.epc-hero-title { color: #fff; margin: 0; font-size: 30px; font-weight: 800; letter-spacing: -.01em; }
.epc-hero-sub { color: rgba(255,255,255,.9); margin: 8px 0 0; font-size: 14px; }
.epc-hero-sub strong { color: #fff; }

/* Featured "best pick" cards */
.epc-featured { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 22px; position: relative; z-index: 1; }
.epc-feat-card {
	display: flex; flex-direction: column; align-items: center; gap: 6px; text-decoration: none;
	background: rgba(255,255,255,.97); border-radius: 14px; padding: 14px 16px; min-width: 150px;
	box-shadow: 0 6px 18px rgba(15,23,42,.18); transition: transform .12s ease, box-shadow .12s ease;
}
.epc-feat-card:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(15,23,42,.25); }
.epc-feat-label { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--epc-blue); }
.epc-feat-body { display: flex; align-items: center; gap: 8px; }
.epc-feat-name { font-weight: 700; color: var(--epc-ink); font-size: 15px; }
.epc-feat-metric { font-weight: 800; color: var(--epc-green-dark); font-size: 15px; }

/* Stats bar */
.epc-statbar {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin: 16px 0 6px;
	background: var(--epc-line); border: 1px solid var(--epc-line); border-radius: var(--epc-radius); overflow: hidden;
}
.epc-stat { background: var(--epc-surface); padding: 16px 12px; text-align: center; }
.epc-stat-num { display: block; font-size: 24px; font-weight: 800; color: var(--epc-ink); line-height: 1.1; }
.epc-stat-lbl { display: block; font-size: 12px; font-weight: 600; color: var(--epc-muted); margin-top: 4px; text-transform: uppercase; letter-spacing: .03em; }

/* Two-column section grid */
.epc-cp-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 20px; }
.epc-cp-grid .epc-cp-section { margin: 26px 0 0; }

@media (max-width: 800px) {
	.epc-cp-grid { grid-template-columns: minmax(0,1fr); }
	.epc-statbar { grid-template-columns: repeat(2, 1fr); }
	.epc-hero-title { font-size: 24px; }
}

/* ---------- Data calculator ---------- */
.epc-calc { border: 1px solid var(--epc-line); border-radius: var(--epc-radius); padding: 22px; box-shadow: var(--epc-shadow); background: var(--epc-surface); }
.epc-calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 6px 0 18px; }
.epc-calc-field { display: flex; flex-direction: column; gap: 8px; font-weight: 600; font-size: 14px; }
.epc-calc-field > span { color: var(--epc-muted); }
.epc-calc-row { display: flex; align-items: center; gap: 12px; }
.epc-calc-row input[type="range"] { flex: 1; accent-color: var(--epc-blue); }
.epc-calc-days-out { font-weight: 700; color: var(--epc-blue-dark); min-width: 64px; }
.epc-calc-check { flex-direction: row; align-items: center; gap: 8px; }
.epc-calc-result { background: var(--epc-blue-soft); border-radius: 12px; padding: 18px 20px; display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.epc-calc-num { display: flex; flex-direction: column; align-items: center; line-height: 1; }
.epc-calc-gb { font-size: 42px; font-weight: 800; color: var(--epc-blue-dark); }
.epc-calc-num small { font-size: 12px; font-weight: 700; color: var(--epc-muted); text-transform: uppercase; letter-spacing: .04em; }
.epc-calc-note { margin: 0; flex: 1; min-width: 200px; color: var(--epc-ink); font-size: 14px; }
.epc-calc-cta { text-decoration: none; }
@media (max-width: 600px) { .epc-calc-grid { grid-template-columns: 1fr; } }

/* ---------- Coupons / deals ---------- */
.epc-coupon-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 18px; }

/* Brand-coloured coupon cards (homepage style) */
.epc-cpn-card {
	border: 1px solid var(--epc-line); border-radius: 16px; padding: 18px; background: var(--epc-surface);
	box-shadow: var(--epc-shadow); display: flex; flex-direction: column; gap: 16px;
}
.epc-cpn-head { display: flex; align-items: center; gap: 12px; }
.epc-cpn-avatar {
	width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center;
	font-weight: 800; font-size: 18px; flex: 0 0 auto;
	color: var(--cpn); background: var(--epc-surface-2);
	background: color-mix(in srgb, var(--cpn) 14%, #fff);
}
.epc-cpn-logo { width: 44px; height: 44px; border-radius: 12px; object-fit: contain; background: var(--epc-surface-2); padding: 3px; flex: 0 0 auto; }
.epc-cpn-titles { display: flex; flex-direction: column; line-height: 1.3; flex: 1; min-width: 0; }
.epc-cpn-titles strong { font-size: 16px; color: var(--epc-ink); }
.epc-cpn-titles small { color: var(--epc-muted); font-size: 12px; }
.epc-cpn-off { display: flex; flex-direction: column; align-items: flex-end; line-height: 1; color: var(--cpn); text-align: right; }
.epc-cpn-off b { font-size: 24px; font-weight: 800; }
.epc-cpn-off i { font-style: normal; font-size: 11px; font-weight: 700; letter-spacing: .06em; color: var(--epc-muted); }
.epc-cpn-off--text b { font-size: 15px; }
.epc-cpn-coderow { display: flex; align-items: stretch; gap: 10px; }
.epc-cpn-code {
	flex: 1; display: flex; align-items: center; justify-content: center; min-height: 46px;
	background: var(--epc-surface-2); border: 1px dashed var(--epc-line); border-radius: 10px;
	font-family: ui-monospace, Menlo, monospace; font-weight: 800; letter-spacing: .08em; color: var(--epc-ink); padding: 0 12px;
}
.epc-cpn-copy { border: 0; background: var(--cpn); color: #fff; font-weight: 700; font-size: 14px; padding: 0 22px; border-radius: 10px; cursor: pointer; transition: filter .12s ease; }
.epc-cpn-copy:hover { filter: brightness(1.06); }
.epc-cpn-copy.is-copied { background: var(--epc-green); }
@media (max-width: 380px) { .epc-coupon-grid { grid-template-columns: 1fr; } }
.epc-coupon-card { border: 1px solid var(--epc-line); border-radius: 12px; padding: 18px; background: var(--epc-surface); box-shadow: var(--epc-shadow); display: flex; flex-direction: column; gap: 12px; }
.epc-coupon-top { display: flex; align-items: center; gap: 10px; }
.epc-coupon-offer { font-weight: 800; color: var(--epc-green-dark); font-size: 18px; }
.epc-coupon-code { display: flex; align-items: stretch; border: 1px dashed var(--epc-blue); border-radius: 8px; overflow: hidden; }
.epc-coupon-code > span { flex: 1; padding: 9px 12px; font-family: ui-monospace, Menlo, monospace; font-weight: 700; color: var(--epc-blue-dark); background: var(--epc-blue-soft); letter-spacing: .03em; }
.epc-copy { border: 0; background: var(--epc-blue); color: #fff; font-weight: 700; padding: 0 14px; cursor: pointer; font-size: 13px; }
.epc-copy:hover { background: var(--epc-blue-dark); }
.epc-coupon-cta { text-align: center; text-decoration: none; background: var(--epc-accent); box-shadow: 0 8px 18px -8px rgba(254,65,196,.75); }
.epc-coupon-cta:hover { background: var(--epc-accent-dark); }

/* Shared deal button (Get Deal / Copy & Go / Redeem) */
.epc-btn--deal {
	background: var(--epc-accent); color: #000;
	border-radius: 999px; box-shadow: 0 8px 18px -8px rgba(254,65,196,.8); white-space: nowrap; text-decoration: none;
}
.epc-btn--deal:hover { filter: brightness(1.05); color: #fff; }
.epc-btn--deal.is-copied { background: var(--epc-green); box-shadow: none; }

/* Price-table row discount badge */
.epc-row-badge {
	display: inline-block; background: var(--epc-accent-soft); color: var(--epc-accent-dark);
	font-weight: 800; font-size: 10px; letter-spacing: .03em; text-transform: uppercase;
	padding: 3px 8px; border-radius: 999px; margin-bottom: 4px;
}

/* Tested / last-update footer notes */
.epc-tested-note { text-align: center; color: var(--epc-accent-dark); font-weight: 600; font-size: 14px; margin: 18px auto 4px; max-width: 640px; }
.epc-update-note { text-align: center; color: var(--epc-muted); font-size: 13px; margin: 0; }
/* Shown only while prices are displayed in a converted currency. */
.epc-fx-note { text-align: center; color: var(--epc-muted); font-size: 12px; margin: 6px 0 0; }
.epc-fx-note[hidden] { display: none; }

/* Deals table */
.epc-deals { border: 1px solid var(--epc-line); border-radius: var(--epc-radius); padding: 22px; box-shadow: var(--epc-shadow); background: var(--epc-surface); }
.epc-deals-table { min-width: 560px; }
.epc-deals-disc { color: var(--epc-green-dark); font-weight: 700; }
.epc-deals-code {
	display: inline-block; font-family: ui-monospace, Menlo, monospace; font-weight: 700; letter-spacing: .04em;
	background: var(--epc-surface-2); border-radius: 8px; padding: 7px 14px; color: var(--epc-ink);
}
.epc-deals-table .epc-btn--deal { padding: 8px 16px; font-size: 13px; }

/* Single coupon hero card */
.epc-coupon-hero {
	max-width: 560px; margin: 1.6rem auto; text-align: center;
	border: 1px solid var(--epc-line); border-radius: 22px; padding: 26px 24px;
	box-shadow: 0 22px 44px -22px rgba(0,0,0,.28); background: var(--epc-surface);
}
.epc-ch-head { display: flex; align-items: center; gap: 14px; justify-content: center; position: relative; margin-bottom: 18px; }
.epc-ch-head .epc-logo { width: 48px; height: 48px; }
.epc-ch-titles { text-align: left; display: flex; flex-direction: column; }
.epc-ch-titles strong { font-size: 18px; }
.epc-ch-titles span { font-size: 11px; font-weight: 700; letter-spacing: .06em; color: var(--epc-muted); }
.epc-ch-badge { background: var(--epc-accent-soft); color: var(--epc-accent-dark); font-weight: 800; font-size: 14px; padding: 6px 14px; border-radius: 999px; margin-left: auto; }
.epc-ch-codebox {
	display: flex; align-items: center; gap: 12px; justify-content: space-between;
	background: var(--epc-surface-2); border: 1px dashed var(--epc-line); border-radius: 14px; padding: 12px 12px 12px 20px; margin-bottom: 14px;
}
.epc-ch-code { font-family: ui-monospace, Menlo, monospace; font-weight: 800; font-size: 24px; letter-spacing: .12em; color: var(--epc-ink); }
.epc-ch-codebox .epc-btn--deal { padding: 11px 22px; }
.epc-ch-tags { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 16px; }
.epc-ch-tag { background: var(--epc-surface-2); border: 1px solid var(--epc-line); color: var(--epc-ink); font-weight: 600; font-size: 13px; padding: 6px 14px; border-radius: 999px; }
.epc-ch-cta { display: inline-block; padding: 13px 26px; font-size: 15px; }
.epc-ch-verified { margin-top: 16px; font-size: 12px; color: var(--epc-muted); display: flex; align-items: center; gap: 6px; justify-content: center; }
.epc-ch-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--epc-green); display: inline-block; }
@media (max-width: 520px) {
	.epc-ch-codebox { flex-direction: column; align-items: stretch; text-align: center; padding: 16px; }
	.epc-ch-badge { position: absolute; top: -6px; right: 0; margin: 0; }
}

/* ---------- Quick-filter chips ---------- */
.epc-quickfilters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.epc-chip {
	border: 1px solid var(--epc-line); background: var(--epc-surface); color: var(--epc-ink);
	border-radius: 999px; padding: 7px 14px; font-size: 13px; font-weight: 600; cursor: pointer;
	transition: background .12s ease, border-color .12s ease, color .12s ease;
}
.epc-chip:hover { border-color: var(--epc-blue); }
.epc-chip.is-active { background: var(--epc-blue); border-color: var(--epc-blue); color: #fff; }

/* ---------- Card shells shared by new widgets ---------- */
.epc-compat, .epc-afford, .epc-networks, .epc-reviews, .epc-faq {
	border: 1px solid var(--epc-line); border-radius: var(--epc-radius); padding: 22px;
	box-shadow: var(--epc-shadow); background: var(--epc-surface);
}

/* Compatibility checker */
.epc-compat-grid { display: grid; grid-template-columns: 1fr 1fr auto; gap: 12px; align-items: end; margin-top: 12px; }
.epc-compat-grid label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: var(--epc-muted); }
.epc-compat-grid .epc-select { width: 100%; }
.epc-compat-check { white-space: nowrap; }
.epc-compat-result { margin-top: 16px; padding: 14px 16px; border-radius: 10px; font-size: 14px; line-height: 1.5; }
.epc-compat-result.is-ok { background: var(--epc-green-soft); color: var(--epc-green-dark); border: 1px solid #a7f3d0; }
.epc-compat-result.is-no { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
@media (max-width: 640px) { .epc-compat-grid { grid-template-columns: 1fr; } }

/* Affordability */
.epc-afford-row { display: flex; align-items: center; gap: 16px; margin: 6px 0 14px; }
.epc-afford-big { font-size: 40px; font-weight: 800; color: var(--epc-green-dark); line-height: 1; }
.epc-afford-row p { margin: 0; font-size: 14px; color: var(--epc-ink); }
.epc-afford-rate { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.epc-afford-score { font-size: 22px; font-weight: 800; color: var(--epc-blue-dark); }
.epc-afford-score small { font-size: 13px; font-weight: 700; color: var(--epc-muted); }
.epc-afford-tag { background: var(--epc-blue-soft); color: var(--epc-blue-dark); font-weight: 700; font-size: 12px; padding: 5px 12px; border-radius: 999px; }
.epc-afford-note { margin: 0; font-size: 13px; color: var(--epc-muted); }

/* Networks list */
.epc-network-list { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.epc-network-list li {
	background: var(--epc-surface-2); border: 1px solid var(--epc-line); border-radius: 10px;
	padding: 10px 14px; font-weight: 600; font-size: 14px;
}

/* Review scores */
.epc-review-list { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-direction: column; }
.epc-review-item { display: flex; align-items: center; gap: 12px; padding: 12px 4px; border-bottom: 1px solid var(--epc-line); }
.epc-review-item:last-child { border-bottom: 0; }
.epc-review-item .epc-esim-name { flex: 1; min-width: 90px; }
.epc-stars { display: inline-flex; align-items: center; gap: 1px; color: #e2e8f0; font-size: 16px; letter-spacing: 1px; }
.epc-stars .epc-star.is-on { color: var(--epc-amber); }
.epc-stars .epc-star.is-half { background: linear-gradient(90deg, var(--epc-amber) 50%, #e2e8f0 50%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.epc-stars b { margin-left: 6px; font-size: 13px; color: var(--epc-ink); }
.epc-review-link { font-weight: 600; font-size: 13px; color: var(--epc-blue); text-decoration: none; white-space: nowrap; }
.epc-review-link:hover { text-decoration: underline; }

/* FAQ accordion */
.epc-faq-list { display: flex; flex-direction: column; gap: 8px; margin-top: 6px; }
.epc-faq-item { border: 1px solid var(--epc-line); border-radius: 10px; padding: 0 16px; background: var(--epc-surface); }
.epc-faq-item summary { cursor: pointer; font-weight: 700; padding: 14px 0; list-style: none; position: relative; padding-right: 28px; }
.epc-faq-item summary::-webkit-details-marker { display: none; }
.epc-faq-item summary::after { content: "+"; position: absolute; right: 2px; top: 12px; font-size: 20px; font-weight: 700; color: var(--epc-blue); }
.epc-faq-item[open] summary::after { content: "−"; }
.epc-faq-a { padding: 0 0 16px; color: var(--epc-ink); font-size: 14px; line-height: 1.6; }

/* ---------- Tabs (providers table + country grid) ---------- */
.epc-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; justify-content: center; }
.epc-tab {
	border: 1px solid var(--epc-line); background: var(--epc-surface); color: var(--epc-ink);
	border-radius: 999px; padding: 9px 18px; font-size: 14px; font-weight: 600; cursor: pointer;
	transition: background .12s ease, color .12s ease, border-color .12s ease;
}
.epc-tab:hover { border-color: var(--epc-blue); }
.epc-tab.is-active { background: var(--epc-ink); border-color: var(--epc-ink); color: #fff; }

/* Providers comparison table */
.epc-ptable { border: 1px solid var(--epc-line); border-radius: var(--epc-radius); padding: 18px; box-shadow: var(--epc-shadow); background: var(--epc-surface); }
.epc-ptable-table { min-width: 680px; }
.epc-pt-name { display: inline-flex; flex-direction: column; line-height: 1.25; }
.epc-pt-name small { color: var(--epc-muted); font-weight: 500; font-size: 12px; }
.epc-pt-speed { font-size: 16px; }
.epc-pt-rating { color: var(--epc-amber); font-weight: 700; font-size: 13px; }
.epc-pt-from { font-weight: 800; color: var(--epc-accent); font-size: 17px; }
.epc-muted { color: var(--epc-muted); }

/* Region cards */
.epc-regions-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }
.epc-region-card {
	position: relative; border: 1px solid var(--epc-line); border-radius: 18px; padding: 22px 20px 18px;
	background: var(--epc-surface); box-shadow: var(--epc-shadow); overflow: hidden;
}
.epc-region-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px; background: var(--epc-blue); }
.epc-region--asia::before { background: var(--epc-accent); }
.epc-region--global::before, .epc-region--americas::before { background: #029DD3; }
.epc-region--middle-east::before { background: var(--epc-amber); }
.epc-region--oceania::before { background: #FE9CD6; }
.epc-region-tag { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--epc-surface-2); font-weight: 800; color: var(--epc-ink); margin-bottom: 10px; }
.epc-region-card h4 { margin: 0; font-size: 22px; }
.epc-region-count { color: var(--epc-blue-dark); font-weight: 700; font-size: 13px; }
.epc-region-card p { margin: 8px 0 16px; color: var(--epc-muted); font-size: 14px; }
.epc-region-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.epc-region-from { color: var(--epc-ink); font-size: 14px; }
.epc-region-from strong { color: var(--epc-accent); font-size: 18px; }
.epc-region-foot .epc-btn { text-decoration: none; }

/* Country grid */
.epc-cgrid-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.epc-country-card {
	display: flex; align-items: center; gap: 12px; text-decoration: none;
	border: 1px solid var(--epc-line); border-radius: 14px; padding: 14px 16px; background: var(--epc-surface);
	transition: transform .1s ease, box-shadow .1s ease, border-color .1s ease;
}
.epc-country-card:hover { transform: translateY(-2px); box-shadow: var(--epc-shadow); border-color: var(--epc-blue); }
.epc-cc-code { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: var(--epc-blue-soft); color: var(--epc-blue-dark); font-weight: 800; font-size: 14px; flex: 0 0 auto; }
.epc-cc-body { display: flex; flex-direction: column; line-height: 1.3; flex: 1; }
.epc-cc-body strong { color: var(--epc-ink); }
.epc-cc-body small { color: var(--epc-muted); font-size: 12px; }
.epc-cc-body b { color: var(--epc-accent); }
.epc-cc-arrow { color: var(--epc-muted); font-size: 18px; }
.epc-country-card:hover .epc-cc-arrow { color: var(--epc-blue); }
/* ============ coupon cards matched to homepage bold design ============ */
.epc-coupon-card{border:2px solid #101014 !important;border-radius:20px !important;box-shadow:0 3px 0 #101014 !important;transition:transform .18s ease,box-shadow .18s ease}
.epc-coupon-card:hover{transform:translate(-2px,-2px);box-shadow:5px 8px 0 #101014 !important}
.epc-coupon-offer{font-family:'Archivo','Poppins',sans-serif !important;font-weight:800 !important;font-size:24px !important;letter-spacing:-.03em !important;color:#C9128F !important}
.epc-coupon-code{border:1.6px dashed #FE41C4 !important;border-radius:11px !important;background:#fff}
.epc-coupon-code > span{background:#fff !important;color:#C9128F !important;font-family:'IBM Plex Mono',ui-monospace,monospace !important;font-weight:600 !important;font-size:13px;letter-spacing:.06em !important}
.epc-copy{background:#FE41C4 !important;color:#000 !important;font-weight:700 !important;border-radius:0 9px 9px 0;transition:background .16s}
.epc-copy:hover{background:#FF5CCD !important}
/* coupon cards (epc-cpn) — homepage bold design */
.epc-cpn-card{border:2px solid #101014 !important;border-radius:20px !important;box-shadow:0 3px 0 #101014 !important;transition:transform .18s ease,box-shadow .18s ease;background:#fff !important}
.epc-cpn-card:hover{transform:translate(-2px,-2px);box-shadow:5px 8px 0 #101014 !important}
.epc-cpn-titles strong{font-size:16.5px;letter-spacing:-.015em}
.epc-cpn-off b{font-family:'Archivo','Poppins',sans-serif !important;font-weight:800 !important;font-size:24px !important;letter-spacing:-.03em !important;color:#C9128F !important}
.epc-cpn-off i{color:#6E6E78 !important;font-style:normal}
.epc-cpn-code{border:1.6px dashed #FE41C4 !important;border-radius:11px !important;background:#fff !important;color:#C9128F !important;font-family:'IBM Plex Mono',ui-monospace,monospace !important;font-weight:600 !important;letter-spacing:.06em !important}
.epc-cpn-copy{background:#FE41C4 !important;color:#000 !important;font-weight:700 !important;border:0 !important;border-radius:999px !important;box-shadow:0 6px 16px -8px rgba(254,65,196,.55);transition:background .16s,transform .16s}
.epc-cpn-copy:hover{background:#FF5CCD !important;transform:translateY(-1px)}
/* ---------- Fit the price table inside post-content columns (no cut-off) ---------- */
.esr-pricing .epc-table{min-width:0;font-size:13px}
.esr-pricing .epc-table thead th{padding:10px 8px;font-size:10.5px;letter-spacing:.01em}
.esr-pricing .epc-table tbody td{padding:10px 8px}
.esr-pricing .epc-cell-esim{min-width:0;gap:8px}
.esr-pricing .epc-cell-esim img{width:26px;height:26px}
.esr-pricing .epc-esim-name{font-size:13px}
.esr-pricing .epc-row-badge{font-size:9px;letter-spacing:.04em;white-space:nowrap}
.esr-pricing .epc-code-chip{font-size:10.5px;padding:5px 8px;letter-spacing:.03em}
.esr-pricing .epc-pill{padding:8px 12px;font-size:12px;white-space:nowrap}
.esr-pricing .epc-cell-code{max-width:118px}
@media (max-width:640px){
  .esr-pricing .epc-table{min-width:560px}
  .esr-pricing .epc-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
}
/* white text on solid CTAs + hover */
.epc-btn--primary{color:#fff !important}
.epc-btn--primary:hover{color:#fff !important;transform:translateY(-2px)}
.epc-cpn-copy{color:#fff !important}
/* country-page sections: never clip on phones — scroll inside instead */
@media (max-width: 640px) {
	.epc-cp-section { max-width: 100%; min-width: 0; }
	.epc-cp-section .epc-table--clean { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; min-width: 0; }
	.epc-cp-section .epc-table--clean tbody, .epc-cp-section .epc-table--clean thead { min-width: 430px; display: table; width: 100%; }
	.epc-cp-section .epc-table--clean th, .epc-cp-section .epc-table--clean td { padding: 10px 10px; font-size: 13px; white-space: nowrap; }
	.epc-cp-grid { grid-template-columns: minmax(0,1fr); }
}

/* ---- Scan-to-open offer card ([epc_qr_offer]) ---- */
.epc-qroffer {
	display: flex; gap: 26px; align-items: center; flex-wrap: wrap;
	background: var(--epc-surface-2, #f6f7f9); border: 1px solid var(--epc-line, #e5e7eb);
	border-radius: var(--epc-radius, 18px); padding: 24px 28px; margin: 26px 0;
}
.epc-qroffer__visual { position: relative; display: flex; align-items: center; gap: 14px; flex: 0 0 auto; }
.epc-phone {
	position: relative; width: 104px; height: 168px; border-radius: 18px;
	background: #12141a; border: 3px solid #12141a; box-shadow: 0 10px 24px rgba(0,0,0,.18);
	display: flex; align-items: center; justify-content: center;
}
.epc-phone::after { content: ""; position: absolute; inset: 5px; border-radius: 13px; background: #fff; }
.epc-phone__notch { position: absolute; top: 9px; left: 50%; transform: translateX(-50%); width: 34px; height: 5px; border-radius: 3px; background: #12141a; z-index: 2; }
.epc-phone__logo { position: relative; z-index: 2; width: 72px; height: 72px; object-fit: contain; }
.epc-qrcode { display: flex; flex-direction: column; align-items: center; gap: 6px; text-decoration: none; }
.epc-qrcode img { display: block; width: 132px; height: 132px; background: #fff; border: 1px solid var(--epc-line, #e5e7eb); border-radius: 10px; padding: 6px; }
.epc-qrcode__hint { font-size: 12px; color: var(--epc-muted, #6b7280); letter-spacing: .02em; }
.epc-qroffer__body { flex: 1 1 300px; min-width: 0; }
.epc-qroffer__title { margin: 0 0 12px; font-size: clamp(20px, 2.4vw, 26px); line-height: 1.2; }
.epc-qroffer__list { margin: 0 0 16px; padding-left: 20px; }
.epc-qroffer__list li { margin: 0 0 8px; line-height: 1.5; }
.epc-qroffer__cta {
	display: inline-block; padding: 12px 26px; border-radius: 999px; font-weight: 700;
	background: var(--epc-accent, #FE41C4); color: #fff !important; text-decoration: none;
	box-shadow: 0 8px 18px -8px rgba(254,65,196,.75);
}
.epc-qroffer__cta:hover { background: var(--epc-accent-dark, #C21E90); color: #fff !important; }
.epc-qroffer__note { margin: 10px 0 0; font-size: 12px; color: var(--epc-muted, #6b7280); }
@media (max-width: 560px) {
	.epc-qroffer { gap: 18px; padding: 20px; }
	.epc-qroffer__visual { width: 100%; justify-content: center; }
}

/* Country page -> buying guide cross-link */
.epc-cp-guide{margin:18px 0 0;padding:13px 16px;background:var(--epc-blue-soft);border-left:4px solid var(--epc-blue);border-radius:10px;font-size:14.5px;line-height:1.6;color:var(--epc-ink)}
.epc-cp-guide-k{font-weight:800;margin-right:4px}
.epc-cp-guide a{font-weight:700;color:var(--epc-accent-dark)}
.epc-cp-guide a:hover{text-decoration:underline}
@media(max-width:600px){.epc-cp-guide{font-size:13.5px;padding:11px 13px}}
