/* eSIM Price Comparison — tools & games UI (brand: teal + orange + navy) */
.epc-tool {
	--t: #FE41C4; --td: #DB28A6; --ts: #FFE9F7; --o: #FE41C4; --od: #C21E90; --os: #FFE9F7;
	--ink: #1B1B1D; --mut: #7D7D7D; --ln: #E4E4E6; --s2: #F4F4F5; --g: #00B67A; --r: #E0556B;
	font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	color: var(--ink); background: #fff; border: 1px solid var(--ln); border-radius: 18px;
	box-shadow: 0 2px 4px rgba(0,0,0,.05), 0 24px 50px -30px rgba(0,0,0,.35);
	padding: 26px; max-width: 620px; margin: 1.8rem auto;
}
.epc-tool * { box-sizing: border-box; }
.epc-tool-head { display: flex; align-items: center; gap: 12px; }
.epc-tool-ic { font-size: 26px; line-height: 1; }
.epc-tool-head h3 { font-family: 'Sora', sans-serif; font-size: 21px; margin: 0; }
.epc-tool-sub { color: var(--mut); font-size: 14.5px; line-height: 1.6; margin: 8px 0 20px; }
.epc-tool .epc-hint { color: var(--mut); font-size: 12px; font-weight: 500; }
.epc-tool .epc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 800; font-size: 14px; padding: 13px 24px; border-radius: 12px; text-decoration: none; border: 0; cursor: pointer; }
.epc-tool .epc-btn--primary { background: var(--o); color: #fff; box-shadow: 0 4px 0 0 var(--od); }
.epc-tool .epc-btn--primary:hover { color: #fff; filter: brightness(1.03); }

.epc-step { margin-bottom: 18px; }
.epc-step-l { display: block; font-weight: 700; font-size: 14px; margin-bottom: 8px; }
.epc-step-l b { color: var(--td); font-family: 'Sora', sans-serif; }
.epc-tool select, .epc-dle-guess { width: 100%; border: 1.5px solid var(--ln); border-radius: 11px; padding: 12px 14px; font-size: 15px; font-family: inherit; background: #fff; outline: none; }
.epc-tool select:focus, .epc-dle-guess:focus { border-color: var(--t); }
.epc-tool input[type=range] { width: 100%; accent-color: var(--t); }
.epc-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.epc-choice { border: 1.5px solid var(--ln); background: #fff; border-radius: 12px; padding: 12px; font-weight: 800; font-size: 14px; cursor: pointer; display: flex; flex-direction: column; gap: 3px; text-align: left; transition: border-color .15s, background .15s; }
.epc-choice small { font-weight: 600; font-size: 11.5px; color: var(--mut); }
.epc-choice.is-active { border-color: var(--t); background: var(--ts); color: var(--td); }

/* planner result */
.epc-pl-result, .epc-sv-result { margin-top: 6px; }
.epc-pl-gb { background: var(--ink); color: #fff; border-radius: 14px; padding: 20px; text-align: center; }
.epc-pl-num { display: block; font-family: 'Sora', sans-serif; font-weight: 800; font-size: 40px; line-height: 1; }
.epc-pl-cap { display: block; font-size: 13px; color: rgba(255,255,255,.75); margin-top: 6px; }
.epc-pl-note { color: var(--mut); font-size: 13px; line-height: 1.55; margin: 12px 0 14px; }
.epc-planner .epc-btn, .epc-savings .epc-btn { width: 100%; }

/* savings */
.epc-sv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.epc-sv-cell { border-radius: 12px; padding: 16px; text-align: center; }
.epc-sv-cell span { display: block; font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.epc-sv-cell b { display: block; font-family: 'Sora', sans-serif; font-size: 26px; margin-top: 4px; }
.epc-sv-cell.is-bad { background: #FDECEF; color: var(--r); }
.epc-sv-cell.is-good { background: #E3F8F0; color: var(--g); }
.epc-sv-save { text-align: center; font-size: 16px; margin: 16px 0 14px; }
.epc-sv-save b { font-family: 'Sora', sans-serif; font-size: 24px; color: var(--td); }
.epc-sv-save span { color: var(--mut); font-size: 13px; }

/* traveldle */
.epc-dle-clues { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.epc-dle-clue { background: var(--ts); color: var(--td); border-radius: 10px; padding: 11px 14px; font-size: 14px; font-weight: 600; }
.epc-dle-wrong { background: #FDECEF; color: var(--r); border-radius: 10px; padding: 10px 14px; font-weight: 700; font-size: 14px; }
.epc-dle-flag { font-size: 26px; vertical-align: -4px; }
.epc-dle-input { display: flex; gap: 10px; }
.epc-dle-input .epc-dle-guess { flex: 1; }
.epc-dle-msg { margin-top: 12px; font-weight: 700; font-size: 14px; color: var(--mut); }
.epc-dle-msg.is-win { color: var(--g); }
.epc-dle-msg.is-lose { color: var(--r); }

/* quiz */
.epc-quiz-top { display: flex; justify-content: space-between; font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--mut); margin-bottom: 10px; }
.epc-quiz-q { font-size: 17px; font-weight: 700; margin-bottom: 14px; }
.epc-quiz-opts { display: grid; gap: 10px; }
.epc-quiz-opt { border: 1.5px solid var(--ln); background: #fff; border-radius: 12px; padding: 13px 16px; font-weight: 700; font-size: 15px; cursor: pointer; text-align: left; transition: border-color .12s, background .12s; }
.epc-quiz-opt:hover { border-color: var(--t); }
.epc-quiz-opt.is-correct { border-color: var(--g); background: #E3F8F0; color: var(--g); }
.epc-quiz-opt.is-wrong { border-color: var(--r); background: #FDECEF; color: var(--r); }
.epc-quiz-done { text-align: center; padding: 10px 0; }
.epc-quiz-final { font-family: 'Sora', sans-serif; font-weight: 800; font-size: 44px; color: var(--td); }
.epc-quiz-done p { color: var(--mut); font-size: 15px; margin: 6px 0 16px; }

/* spin */
.epc-spin-stage { display: flex; flex-direction: column; align-items: center; gap: 18px; }
.epc-spin-wheel { position: relative; width: 320px; max-width: 100%; }
.epc-spin-canvas { width: 100%; height: auto; display: block; border-radius: 50%; box-shadow: 0 10px 30px -10px rgba(0,0,0,.5); }
.epc-spin-pointer { position: absolute; top: -4px; left: 50%; transform: translateX(-50%); width: 0; height: 0; border-left: 12px solid transparent; border-right: 12px solid transparent; border-top: 20px solid var(--ink); z-index: 2; }
.epc-spin-go { min-width: 140px; font-size: 16px; letter-spacing: .06em; }
.epc-spin-win { margin-top: 18px; text-align: center; background: var(--ts); border-radius: 14px; padding: 20px; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.epc-spin-kick { font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--td); }
.epc-spin-win strong { font-family: 'Sora', sans-serif; font-size: 17px; }
.epc-spin-code { display: inline-flex; align-items: center; gap: 8px; border: 2px dashed var(--t); background: #fff; border-radius: 11px; padding: 8px 8px 8px 16px; }
.epc-spin-code span { font-family: 'Sora', ui-monospace, monospace; font-weight: 800; font-size: 18px; letter-spacing: .08em; }
.epc-tool .epc-copy { border: 0; background: var(--o); color: #fff; font-weight: 800; font-size: 12.5px; padding: 8px 14px; border-radius: 9px; cursor: pointer; box-shadow: 0 2px 0 0 var(--od); }

/* AI concierge */
.epc-conc-thread { display: flex; flex-direction: column; gap: 12px; max-height: 380px; overflow-y: auto; padding: 4px; margin-bottom: 12px; }
.epc-conc-msg { max-width: 88%; }
.epc-conc-msg.is-bot { align-self: flex-start; }
.epc-conc-msg.is-me { align-self: flex-end; }
.epc-conc-msg p { margin: 0; padding: 11px 15px; border-radius: 14px; font-size: 14.5px; line-height: 1.55; }
.epc-conc-msg.is-bot p { background: var(--ts); color: var(--ink); border-bottom-left-radius: 4px; }
.epc-conc-msg.is-me p { background: var(--ink); color: #fff; border-bottom-right-radius: 4px; }
.epc-conc-typing { display: inline-flex; gap: 4px; }
.epc-conc-typing span { width: 7px; height: 7px; border-radius: 50%; background: var(--td); opacity: .4; animation: epcBlink 1s infinite; }
.epc-conc-typing span:nth-child(2) { animation-delay: .2s; } .epc-conc-typing span:nth-child(3) { animation-delay: .4s; }
@keyframes epcBlink { 0%,100% { opacity: .3; } 50% { opacity: 1; } }
.epc-conc-plan { display: flex; align-items: center; gap: 10px; background: #fff; border: 1px solid var(--ln); border-radius: 12px; padding: 10px; margin-top: 8px; }
.epc-conc-plan .epc-qf-logo img, .epc-conc-plan .epc-qf-ph { width: 38px; height: 38px; }
.epc-conc-pmeta { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.epc-conc-pmeta strong { font-family: 'Sora', sans-serif; font-size: 14px; }
.epc-conc-pmeta span { font-size: 12px; color: var(--mut); }
.epc-conc-code b { color: var(--td); }
.epc-conc-plan .epc-btn { padding: 9px 16px; }
.epc-conc-chips { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 12px; }
.epc-conc-chip { border: 1px solid var(--ln); background: #fff; border-radius: 999px; padding: 7px 13px; font-size: 12.5px; font-weight: 700; color: var(--td); cursor: pointer; }
.epc-conc-chip:hover { border-color: var(--t); background: var(--ts); }
.epc-conc-input { display: flex; gap: 8px; }
.epc-conc-text { flex: 1; border: 1.5px solid var(--ln); border-radius: 11px; padding: 12px 14px; font-size: 15px; }
.epc-conc-text:focus { border-color: var(--t); outline: none; }

/* trip optimizer */
.epc-opt-stops { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.epc-opt-stop { display: grid; grid-template-columns: 1fr 74px 100px auto; gap: 8px; align-items: center; }
.epc-opt-stop select, .epc-opt-stop input { border: 1.5px solid var(--ln); border-radius: 10px; padding: 10px; font-size: 14px; background: #fff; }
.epc-opt-del { border: 0; background: var(--s2); color: var(--mut); width: 34px; height: 34px; border-radius: 9px; cursor: pointer; font-weight: 800; }
.epc-opt-add { border: 1.5px dashed var(--ln); background: none; color: var(--td); font-weight: 700; padding: 9px; border-radius: 10px; width: 100%; cursor: pointer; }
.epc-opt-head { font-size: 14.5px; margin: 6px 0 12px; }
.epc-opt-head b { color: var(--td); font-family: 'Sora', sans-serif; }
.epc-opt-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.epc-opt-strat { border: 1px solid var(--ln); border-radius: 14px; padding: 16px; }
.epc-opt-strat.is-win { border: 2px solid var(--g); background: #F3FBF7; }
.epc-opt-stitle { font-family: 'Sora', sans-serif; font-weight: 800; font-size: 14px; margin-bottom: 10px; }
.epc-opt-stitle span { color: var(--g); font-size: 11px; }
.epc-opt-list { list-style: none; margin: 0 0 10px; padding: 0; }
.epc-opt-list li { display: flex; justify-content: space-between; gap: 8px; font-size: 12.5px; padding: 5px 0; border-bottom: 1px dashed var(--ln); }
.epc-opt-list li span { color: var(--mut); }
.epc-opt-single { margin-bottom: 10px; }
.epc-opt-single strong { font-family: 'Sora', sans-serif; display: block; }
.epc-opt-single span { font-size: 12.5px; color: var(--mut); }
.epc-opt-total { font-family: 'Sora', sans-serif; font-weight: 800; font-size: 24px; color: var(--td); }
.epc-opt-strat .epc-btn { width: 100%; margin-top: 10px; padding: 10px; }
.epc-opt-none { color: var(--mut); font-size: 13px; }
.epc-opt-save { margin-top: 14px; background: var(--ts); border-radius: 12px; padding: 14px; text-align: center; font-size: 14.5px; }
.epc-opt-save b { color: var(--td); font-family: 'Sora', sans-serif; }
.epc-opt-msg { color: var(--r); font-weight: 700; font-size: 13.5px; }

/* price history */
.epc-ph-top { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin: 8px 0 12px; }
.epc-ph-now { display: flex; flex-direction: column; }
.epc-ph-now span { font-size: 11px; font-weight: 800; text-transform: uppercase; color: var(--mut); }
.epc-ph-now b { font-family: 'Sora', sans-serif; font-size: 28px; color: var(--ink); }
.epc-ph-verdict { font-size: 13.5px; font-weight: 700; padding: 9px 14px; border-radius: 999px; }
.epc-ph-verdict.is-good { background: #E3F8F0; color: var(--g); }
.epc-ph-verdict.is-warn { background: #FFF3E0; color: #B26B00; }
.epc-ph-svg { width: 100%; height: 90px; display: block; }
.epc-ph-range { display: flex; justify-content: space-between; font-size: 11.5px; color: var(--mut); font-weight: 700; margin-top: 4px; }

/* eSIM quiz */
.epc-qf-progress { height: 6px; background: var(--s2); border-radius: 999px; overflow: hidden; margin-bottom: 20px; }
.epc-qf-bar { display: block; height: 100%; background: var(--t); border-radius: 999px; transition: width .3s ease; }
.epc-qf-step { display: none; }
.epc-qf-step.is-active { display: block; }
.epc-qf-q { font-family: 'Sora', sans-serif; font-weight: 800; font-size: 18px; margin-bottom: 14px; }
.epc-qf-q b { color: var(--td); }
.epc-qf-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.epc-qf-opt { border: 1.5px solid var(--ln); background: #fff; border-radius: 12px; padding: 14px; font-weight: 800; font-size: 14px; cursor: pointer; display: flex; flex-direction: column; gap: 3px; text-align: left; transition: border-color .15s, background .15s; }
.epc-qf-opt small { font-weight: 600; font-size: 11.5px; color: var(--mut); }
.epc-qf-opt.is-active { border-color: var(--t); background: var(--ts); color: var(--td); }
.epc-qf-nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; }
.epc-qf-back { border: 0; background: none; color: var(--mut); font-weight: 700; font-size: 14px; cursor: pointer; padding: 8px; }
.epc-qf-step .epc-btn { min-width: 120px; }
.epc-qf-step > .epc-btn { margin-top: 16px; }
.epc-qf-result { margin-top: 8px; }
.epc-qf-loading, .epc-qf-none { text-align: center; padding: 20px; color: var(--mut); }
.epc-qf-reshead { font-size: 15px; margin: 6px 0 14px; }
.epc-qf-reshead b { color: var(--td); font-family: 'Sora', sans-serif; }
.epc-qf-card { border: 1px solid var(--ln); border-radius: 14px; padding: 18px; margin-bottom: 12px; position: relative; }
.epc-qf-card.is-top { border: 2px solid var(--o); }
.epc-qf-badge { position: absolute; top: -11px; left: 16px; background: var(--o); color: #fff; font-size: 10.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; padding: 4px 12px; border-radius: 999px; }
.epc-qf-cardhead { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.epc-qf-logo img, .epc-qf-ph { width: 44px; height: 44px; border-radius: 11px; object-fit: contain; background: #fff; border: 1px solid var(--ln); }
.epc-qf-ph { display: grid; place-items: center; font-weight: 800; color: #fff; background: var(--t); border: 0; }
.epc-qf-cardhead > div { flex: 1; display: flex; flex-direction: column; }
.epc-qf-cardhead strong { font-family: 'Sora', sans-serif; font-size: 17px; }
.epc-qf-plan { font-size: 13px; color: var(--mut); }
.epc-qf-price { font-family: 'Sora', sans-serif; font-weight: 800; font-size: 22px; color: var(--td); }
.epc-qf-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 10px; }
.epc-qf-tag, .epc-qf-ppg { font-size: 11.5px; font-weight: 700; color: var(--td); background: var(--ts); padding: 5px 11px; border-radius: 999px; }
.epc-qf-disc { color: var(--od); background: var(--os); }
.epc-qf-why { color: var(--mut); font-size: 13.5px; line-height: 1.55; margin: 0 0 12px; }
.epc-qf-code { font-size: 13.5px; margin-bottom: 12px; }
.epc-qf-code b { color: var(--td); letter-spacing: .05em; font-family: 'Sora', ui-monospace, monospace; }
.epc-qf-card .epc-btn { width: 100%; }
.epc-qf-disc2, .epc-qf-none p { color: var(--mut); font-size: 12px; line-height: 1.5; margin: 8px 0 14px; }

/* speed test */
.epc-speed-stage { display: flex; flex-direction: column; align-items: center; gap: 18px; }
.epc-gauge { width: 200px; height: 200px; border-radius: 50%; display: grid; place-items: center; text-align: center; background: conic-gradient(var(--t) 0deg, var(--t) 220deg, var(--ln) 220deg); position: relative; }
.epc-gauge::before { content: ''; position: absolute; inset: 14px; border-radius: 50%; background: #fff; }
.epc-gauge-val { position: relative; }
.epc-gauge-num { font-family: 'Sora', sans-serif; font-weight: 800; font-size: 42px; color: var(--ink); line-height: 1; }
.epc-gauge-val span { display: block; font-size: 12px; font-weight: 700; color: var(--mut); }
.epc-gauge-lbl { position: relative; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--td); margin-top: 4px; }
.epc-speed-go { min-width: 150px; }
.epc-speed-results { margin-top: 20px; }
.epc-speed-cells { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.epc-speed-cell { background: var(--s2); border-radius: 12px; padding: 14px; text-align: center; }
.epc-speed-cell span { display: block; font-size: 10.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--mut); }
.epc-speed-cell b { display: block; font-family: 'Sora', sans-serif; font-size: 26px; color: var(--td); }
.epc-speed-cell small { font-size: 11px; color: var(--mut); font-weight: 700; }
.epc-speed-contrib { margin-top: 18px; border-top: 1px dashed var(--ln); padding-top: 16px; }
.epc-speed-cnote { font-size: 13.5px; font-weight: 700; margin: 0 0 10px; }
.epc-speed-crow { display: grid; grid-template-columns: 1fr 1fr auto; gap: 8px; }
.epc-speed-crow select { padding: 10px 12px; }
.epc-c-msg { margin-top: 10px; font-size: 13px; font-weight: 700; }
.epc-c-msg.is-ok { color: var(--g); }
.epc-c-msg.is-err { color: var(--r); }
.epc-speed-disc { color: var(--mut); font-size: 11.5px; margin: 14px 0 0; text-align: center; }

/* community speed results */
.epc-sr-list { display: flex; flex-direction: column; gap: 10px; }
.epc-sr-row { display: grid; grid-template-columns: 26px 1fr 2fr auto; align-items: center; gap: 12px; }
.epc-sr-rank { width: 26px; height: 26px; border-radius: 8px; background: var(--s2); color: var(--mut); font-family: 'Sora', sans-serif; font-weight: 800; font-size: 13px; display: grid; place-items: center; }
.epc-sr-row:first-child .epc-sr-rank { background: var(--o); color: #fff; }
.epc-sr-name { font-weight: 700; font-size: 14px; display: flex; flex-direction: column; }
.epc-sr-name small { font-weight: 600; font-size: 11px; color: var(--mut); }
.epc-sr-bar { background: var(--s2); border-radius: 999px; height: 12px; overflow: hidden; }
.epc-sr-fill { display: block; height: 100%; background: var(--t); border-radius: 999px; }
.epc-sr-fill.is-top { background: var(--o); }
.epc-sr-val { font-family: 'Sora', sans-serif; font-weight: 800; font-size: 14px; white-space: nowrap; }
.epc-sr-val small { font-size: 10px; color: var(--mut); font-weight: 700; }
.epc-sr-empty { color: var(--mut); font-size: 14px; background: var(--s2); border-radius: 12px; padding: 16px; text-align: center; }
.epc-sr-foot { color: var(--mut); font-size: 11.5px; margin: 14px 0 0; }

@media (max-width: 560px) {
	.epc-tool { padding: 20px 16px; }
	.epc-speed-crow { grid-template-columns: 1fr; }
	.epc-speed-cells { grid-template-columns: 1fr 1fr 1fr; }
	.epc-sr-row { grid-template-columns: 22px 1fr auto; }
	.epc-sr-bar { display: none; }
	.epc-opt-cols { grid-template-columns: 1fr; }
	.epc-opt-stop { grid-template-columns: 1fr 60px auto; }
	.epc-opt-stop .epc-opt-usage { grid-column: 1 / 3; }
	.epc-conc-msg { max-width: 95%; }
	.epc-choices { grid-template-columns: 1fr; }
	.epc-sv-grid { grid-template-columns: 1fr; }
	.epc-dle-input { flex-direction: column; }
}
/* ============ Concierge structured results (v2) ============ */
.epc-conc-new{margin-left:auto;background:none;border:1.5px solid var(--epc-line,#E4E4E6);border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:600;color:#52525E;cursor:pointer;transition:border-color .16s,color .16s}
.epc-conc-new:hover{border-color:#FE41C4;color:#C9128F}
.epc-cg-results{margin:10px 0 4px}
.epc-cg-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.epc-cg-tile{background:#fff;border:1.5px solid #ECECEF;border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.epc-cg-tile i{font-style:normal;font-family:'IBM Plex Mono',monospace;font-size:9.5px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:#7D7D88}
.epc-cg-tile b{font-size:15px;font-weight:800;color:#0E0E12;letter-spacing:-.01em}
.epc-cg-label{font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:#7D7D88;margin:14px 0 8px}
.epc-cg-row{display:flex;align-items:center;gap:14px;background:#fff;border:1.5px solid #ECECEF;border-radius:16px;padding:14px 16px;margin-bottom:10px}
.epc-cg-row--top{border:2px solid #FE41C4;background:#FFFBFE;box-shadow:0 10px 24px -16px rgba(254,65,196,.45)}
.epc-cg-id{display:flex;align-items:center;gap:11px;min-width:0;flex:1}
.epc-cg-id strong{font-size:15px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.epc-cg-id small{display:block;font-size:12px;color:#7D7D88;margin-top:1px}
.epc-cg-badge{font-style:normal;font-family:'IBM Plex Mono',monospace;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:#FE41C4;padding:3px 9px;border-radius:999px}
.epc-cg-code{color:#0F6E56 !important;font-weight:600}
.epc-cg-cols{display:flex;gap:18px;align-items:center}
.epc-cg-col{display:flex;flex-direction:column;gap:1px;text-align:right}
.epc-cg-col i{font-style:normal;font-family:'IBM Plex Mono',monospace;font-size:8.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#A6A6B3}
.epc-cg-col b{font-size:14px;font-weight:700;color:#0E0E12;white-space:nowrap}
.epc-cg-price{color:#C9128F !important;font-size:16px !important}
.epc-cg-buy{white-space:nowrap}
@media (max-width:640px){
  .epc-cg-meta{grid-template-columns:1fr 1fr}
  .epc-cg-row{flex-wrap:wrap}
  .epc-cg-cols{width:100%;justify-content:space-between;gap:8px}
  .epc-cg-col{text-align:left}
  .epc-cg-buy{width:100%;text-align:center}
}
/* ---- readable form controls (theme paints buttons/inputs white-on-white) ---- */
.epc-tool .epc-quiz-opt{color:#0E0E12 !important}
.epc-tool .epc-quiz-opt:hover{border-color:#FE41C4;background:#FFF5FB}
.epc-tool select, .epc-tool input[type="text"], .epc-tool input[type="number"]{color:#0E0E12 !important;background:#fff !important;border:1.5px solid #E4E4E6;border-radius:12px;padding:11px 13px;font-size:14.5px}
.epc-tool select:focus, .epc-tool input[type="text"]:focus, .epc-tool input[type="number"]:focus{border-color:#FE41C4;outline:none}
.epc-tool input[type="range"]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:99px;background:#F6D9EA;outline:none}
.epc-tool input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#FE41C4;border:2.5px solid #fff;box-shadow:0 2px 8px rgba(201,18,143,.45);cursor:pointer}
.epc-tool input[type="range"]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#FE41C4;border:2.5px solid #fff;box-shadow:0 2px 8px rgba(201,18,143,.45);cursor:pointer}
.epc-tool input[type="range"]::-moz-range-track{height:6px;border-radius:99px;background:#F6D9EA}
.epc-quiz-flag{width:26px;height:19px;border-radius:4px;object-fit:cover;vertical-align:-3px;margin-right:6px;box-shadow:0 0 0 1px rgba(14,14,18,.12)}
.epc-tool select option{color:#0E0E12 !important;background:#fff !important}
/* ---- More free tools grid ---- */
.epc-more-tools{margin:40px 0 10px}
.epc-mt-h{font-family:'Archivo','Poppins',sans-serif;font-weight:800;letter-spacing:-.02em;font-size:22px;margin:0 0 16px}
.epc-mt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.epc-mt-card{display:flex;align-items:center;gap:12px;background:#fff;border:2px solid #101014;border-radius:16px;box-shadow:0 3px 0 #101014;padding:14px 15px;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}
.epc-mt-card:hover{transform:translate(-2px,-2px);box-shadow:5px 8px 0 #101014}
.epc-mt-ic{font-size:22px;line-height:1}
.epc-mt-txt b{display:block;font-size:14.5px;color:#0E0E12;letter-spacing:-.01em}
.epc-mt-txt small{display:block;font-size:12px;color:#7D7D88;line-height:1.35;margin-top:2px}
/* ---- bridges + new tools ---- */
.epc-bridge{margin-top:18px}
.epc-bridge-h{font-family:'IBM Plex Mono',monospace;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#7D7D88;margin:0 0 8px}
.epc-bridge-row{display:flex;align-items:center;gap:12px;background:#fff;border:1.5px solid #ECECEF;border-radius:14px;padding:12px 14px;margin-bottom:8px}
.epc-bridge-meta{flex:1;min-width:0}
.epc-bridge-meta b{display:block;font-size:14.5px;color:#0E0E12}
.epc-bridge-meta small{display:block;font-size:12px;color:#7D7D88;margin-top:1px}
.epc-bridge-price{font-family:'Archivo',sans-serif;font-weight:800;font-size:17px;color:#C9128F;white-space:nowrap}
.epc-tool .epc-bridge-row .epc-btn,.epc-planner .epc-bridge-row .epc-btn,.epc-savings .epc-bridge-row .epc-btn{width:auto;flex:0 0 auto;padding:10px 16px;font-size:13px;white-space:nowrap;margin:0}
.epc-bridge-row .epc-qf-logo{flex:0 0 auto}
.epc-bridge-row .epc-qf-logo img{width:36px;height:36px;object-fit:contain;border-radius:8px}
@media(max-width:560px){.epc-bridge-row{flex-wrap:wrap}.epc-bridge-row .epc-btn{width:100%;flex:1 1 100%}}
.epc-cov-bar,.epc-cmp-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.epc-cov-country,.epc-cmp-a,.epc-cmp-b{flex:1;min-width:170px}
.epc-cmp-vs{font-family:'Archivo',sans-serif;font-weight:800;font-size:13px;background:#FFE777;border:1.5px solid #101014;border-radius:999px;padding:6px 11px}
.epc-cmp-grid{border:2px solid #101014;border-radius:18px;box-shadow:0 4px 0 #101014;overflow:hidden;background:#fff}
.epc-cmp-headrow,.epc-cmp-row,.epc-cmp-ctas{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:8px;align-items:center;padding:11px 16px}
.epc-cmp-headrow{background:#0E0E12;color:#fff}
.epc-cmp-name{display:flex;align-items:center;gap:8px;font-weight:800;font-family:'Archivo',sans-serif}
.epc-cmp-name img{width:24px;height:24px;border-radius:7px;object-fit:cover;background:#fff}
.epc-cmp-row{border-top:1px solid #F1F1F4;font-size:14px}
.epc-cmp-row:nth-child(even){background:#FAFAFB}
.epc-cmp-l{color:#7D7D88;font-size:12.5px;font-weight:600}
.epc-cmp-ctas{border-top:1px solid #F1F1F4;padding:14px 16px}
.epc-alert-form{display:grid;grid-template-columns:1.2fr .7fr 1.2fr auto;gap:10px;align-items:center}
.epc-alert-msg{margin-top:12px;font-size:14px}
.epc-alert-ok{color:#0F6E56;font-weight:600}
.epc-alert-err{color:#B12A40;font-weight:600}
.epc-share-wrap{margin-top:12px;text-align:center}
.epc-share-btn{background:#0E0E12;color:#fff;border:0;border-radius:999px;padding:11px 20px;font-weight:700;font-size:13.5px;cursor:pointer;transition:background .18s,transform .18s}
.epc-share-btn:hover{background:#FE41C4;color:#000;transform:translateY(-1px)}
.epc-fu{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}
.epc-fu-l{font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#7D7D88}
.epc-st-tiein{margin-top:14px;padding:13px 16px;background:#FFF5FB;border:1.5px dashed #F4C0D1;border-radius:12px;font-size:14px}
@media (max-width:640px){
 .epc-alert-form{grid-template-columns:1fr}
 .epc-cmp-headrow,.epc-cmp-row,.epc-cmp-ctas{grid-template-columns:1fr 1fr 1fr;font-size:12.5px;padding:9px 10px}
}

/* ---- Coupon Inflation Tracker ---- */
.epc-cpi-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0 4px}
.epc-cpi-bar>div{min-width:0}
.epc-cpi-bar>div:nth-child(1){grid-column:span 3}
.epc-cpi-bar>div:nth-child(3){grid-column:span 2}
.epc-cpi-bar select,.epc-cpi-bar input{width:100%;min-width:0}
.epc-cpi-bar label{display:block;font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#7D7D88;margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.epc-cpi-box{border:2px solid #0E0E12;border-radius:16px;padding:18px;margin-top:16px;box-shadow:0 4px 0 #0E0E12}
.epc-cpi-box.is-good{background:#E9FBF3;border-color:#00B67A;box-shadow:0 4px 0 #00B67A}
.epc-cpi-box.is-warn{background:#FFF8E1;border-color:#E8A400;box-shadow:0 4px 0 #E8A400}
.epc-cpi-box.is-bad{background:#FDEDF7;border-color:#C9128F;box-shadow:0 4px 0 #C9128F}
.epc-cpi-box b{display:block;font-family:'Archivo',sans-serif;font-size:18px;color:#0E0E12;margin-bottom:6px}
.epc-cpi-box p{margin:0 0 12px;font-size:14.5px;color:#3A3A44}
.epc-cpi-box .epc-btn{font-size:13px;padding:10px 18px}
.epc-cpi-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:14px}
.epc-cpi-stat{background:#fff;border:1.5px solid #ECECEF;border-radius:12px;padding:12px 13px}
.epc-cpi-k{display:block;font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#7D7D88}
.epc-cpi-stat b{display:block;font-family:'Archivo',sans-serif;font-size:21px;color:#0E0E12;margin-top:3px;font-variant-numeric:tabular-nums}
.epc-cpi-stat b.is-g{color:#00935F}
.epc-cpi-stat b.is-b{color:#C9128F}
.epc-cpi-stat small{display:block;font-size:11.5px;color:#7D7D88;margin-top:2px}
.epc-cpi-tblwrap{margin-top:8px}
.epc-cpi-tbl{width:100%;border-collapse:collapse;font-size:14px}
.epc-cpi-tbl th{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:#7D7D88;text-align:left;padding:8px 10px;border-bottom:2px solid #0E0E12}
.epc-cpi-tbl td{padding:9px 10px;border-bottom:1px solid #ECECEF;color:#0E0E12}
.epc-cpi-tbl tr.is-you td{background:#FDEDF7;font-weight:700}
.epc-cpi-tbl tr.is-cheap td{color:#00935F;font-weight:600}
.epc-cpi-barcol{width:30%}
.epc-cpi-fill{display:block;height:8px;border-radius:4px;background:linear-gradient(90deg,#FE41C4,#8F4BE8);min-width:6px}
.epc-cpi-prov{display:inline-flex;align-items:center;gap:8px}
.epc-cpi-logo{width:22px;height:22px;object-fit:contain;border-radius:6px;background:#fff;border:1px solid #ECECEF;flex:0 0 auto}
.epc-cpi-code{display:inline-flex;align-items:center;gap:6px;border:1.5px dashed #FE41C4;background:#FFF5FC;color:#C9128F;font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:700;letter-spacing:.04em;border-radius:8px;padding:4px 8px;cursor:pointer}
.epc-cpi-code em{font-style:normal;color:#7D7D88;font-weight:600}
.epc-cpi-code:hover{background:#FDEDF7}
.epc-cpi-code.is-copied{border-style:solid;background:#E9FBF3;border-color:#00B67A;color:#00935F}
@media(max-width:560px){
	.epc-cpi-bar{grid-template-columns:1fr 1fr}
	.epc-cpi-bar>div:nth-child(1),.epc-cpi-bar>div:nth-child(3){grid-column:span 2}
	.epc-cpi-stats{grid-template-columns:1fr 1fr}
}

/* =========================================================================
   Comparison tables (epc_vs_plans, epc_speed_compare)
   Follows the house card style used by .epc-cmp-grid: hard 2px ink border,
   4px offset shadow, black header band. These blocks live outside .epc-tool,
   so button styling is declared here rather than inherited from it.
   ========================================================================= */
.epc-vsp,.epc-spc{
	font-family:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
	color:#1B1B1D;background:#fff;
	border:2px solid #101014;border-radius:18px;box-shadow:0 4px 0 #101014;
	padding:22px;margin:2rem 0;
}
.epc-vsp *,.epc-spc *{box-sizing:border-box}

/* --- heads ------------------------------------------------------------- */
.epc-vsp-head{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;margin-bottom:18px}
.epc-vsp-head h3,.epc-spc-head h3{font-family:'Sora',sans-serif;font-weight:800;margin:0;font-size:20px;line-height:1.3;color:#101014}
.epc-spc-head h3{margin-bottom:8px}
.epc-vsp-pick{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:700;color:#5a5a66;white-space:nowrap}
.epc-vsp-pick select{border:1.5px solid #E4E4E6;border-radius:11px;padding:10px 13px;font-size:14.5px;font-family:inherit;font-weight:600;background:#fff;color:#101014;outline:none;cursor:pointer}
.epc-vsp-pick select:focus{border-color:#FE41C4}
.epc-spc-sub{color:#7D7D7D;font-size:13.5px;line-height:1.65;margin:0 0 18px}
.epc-spc-sub a{color:#DB28A6;font-weight:700}

/* --- shared table shell ------------------------------------------------ */
.epc-vsp-wrap,.epc-spc-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:12px;border:1.5px solid #E4E4E6}
.epc-vsp-table,.epc-spc-table{width:100%;border-collapse:collapse;min-width:440px}
.epc-vsp-table th,.epc-vsp-table td,
.epc-spc-table th,.epc-spc-table td{padding:14px 16px;text-align:left;border-bottom:1px solid #EFEFF2}
.epc-vsp-table thead th,.epc-spc-table thead th{
	background:#0E0E12;color:#fff;font-family:'Sora',sans-serif;font-weight:700;
	/* No uppercase transform — it renders aloSIM as "ALOSIM" and destroys the
	   brand's own casing. Letter-spacing carries the header instead. */
	font-size:12.5px;letter-spacing:.06em;vertical-align:middle;border-bottom:0;
}
.epc-spc-table thead th img{vertical-align:middle;border-radius:6px;margin-right:8px;background:#fff}
.epc-vsp-table tbody th,.epc-spc-table tbody th{font-weight:700;color:#101014;font-size:14.5px;white-space:nowrap}
.epc-vsp-table tbody tr:last-child th,.epc-vsp-table tbody tr:last-child td,
.epc-spc-table tbody tr:last-child th,.epc-spc-table tbody tr:last-child td{border-bottom:0}
.epc-vsp-table tbody tr:nth-child(even),.epc-spc-table tbody tr:nth-child(even){background:#FAFAFC}

/* --- figures ----------------------------------------------------------- */
.epc-vsp-price,.epc-spc-mbps{display:block;font-family:'Sora',sans-serif;font-weight:800;font-size:17px;line-height:1.25;color:#101014}
.epc-vsp-days,.epc-spc-n{display:block;font-size:12px;font-weight:500;color:#7D7D7D;margin-top:3px}
.epc-vsp-none,.epc-spc-none{color:#A9A9B4;font-size:13.5px}
.epc-vsp-win,.epc-spc-best{background:#FFE9F7 !important;box-shadow:inset 3px 0 0 #FE41C4}
.epc-vsp-win .epc-vsp-price,.epc-spc-best .epc-spc-mbps{color:#C21E90}
.epc-vsp-win .epc-vsp-price::after{content:" ✓";font-size:.82em;vertical-align:1px}

/* --- CTAs -------------------------------------------------------------- */
.epc-vsp-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.epc-vsp .epc-btn{
	flex:1 1 200px;display:inline-flex;align-items:center;justify-content:center;
	text-align:center;text-decoration:none;border:0;cursor:pointer;
	font-family:'Sora',sans-serif;font-weight:800;font-size:14px;
	padding:14px 22px;border-radius:12px;
	transition:filter .15s ease,transform .05s ease;
}
.epc-vsp .epc-btn--primary{background:#FE41C4;color:#fff !important;box-shadow:0 4px 0 0 #C21E90}
.epc-vsp .epc-btn--primary:hover{color:#fff !important;filter:brightness(1.04);transform:translateY(-1px)}
.epc-vsp .epc-btn--primary:active{transform:translateY(2px);box-shadow:0 2px 0 0 #C21E90}

/* --- notes / empty ----------------------------------------------------- */
.epc-vsp-note,.epc-spc-note{margin:14px 0 0;font-size:12.5px;line-height:1.6;color:#7D7D7D}
.epc-spc-empty{border:1.5px dashed #D3D3DC;border-radius:12px;padding:20px;background:#FAFAFC}
.epc-spc-empty p{margin:0 0 9px;font-size:14px;line-height:1.65;color:#3a3a42}
.epc-spc-empty p:last-child{margin-bottom:0}
.epc-spc-empty a{color:#DB28A6;font-weight:700}

@media(max-width:600px){
	.epc-vsp,.epc-spc{padding:16px;border-radius:14px}
	.epc-vsp-head{flex-direction:column;align-items:stretch;gap:10px}
	.epc-vsp-head h3,.epc-spc-head h3{font-size:17px}
	.epc-vsp-pick{justify-content:space-between}
	.epc-vsp-pick select{flex:1}
	.epc-vsp-table th,.epc-vsp-table td,
	.epc-spc-table th,.epc-spc-table td{padding:11px 10px}
	.epc-vsp-price,.epc-spc-mbps{font-size:15px}
	.epc-vsp .epc-btn{flex:1 1 100%}
	/* Stack logo over name rather than hiding the name — a provider with no
	   logo would otherwise leave the column heading blank. */
	.epc-spc-table thead th{font-size:11px}
	.epc-spc-table thead th img{display:block;margin:0 0 4px}
}

/* ---- Cruise plans (epc_cruise_plans) ------------------------------------ */
.epc-cruise{font-family:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#1B1B1D;background:#fff;
	border:2px solid #101014;border-radius:18px;box-shadow:0 4px 0 #101014;padding:22px;margin:2rem 0}
.epc-cruise *{box-sizing:border-box}
.epc-cruise-head h3{font-family:'Sora',sans-serif;font-weight:800;margin:0 0 6px;font-size:20px;color:#101014}
.epc-cruise-sub{margin:0 0 18px;font-size:13.5px;line-height:1.65;color:#7D7D7D}
.epc-cruise-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:12px;border:1.5px solid #E4E4E6}
.epc-cruise-table{width:100%;border-collapse:collapse;min-width:560px}
.epc-cruise-table th,.epc-cruise-table td{padding:13px 14px;text-align:left;border-bottom:1px solid #EFEFF2}
.epc-cruise-table thead th{background:#0E0E12;color:#fff;font-family:'Sora',sans-serif;font-weight:700;font-size:12.5px;letter-spacing:.06em;border-bottom:0}
.epc-cruise-table tbody th{font-weight:700;color:#101014;font-size:14.5px;white-space:nowrap}
.epc-cruise-table tbody tr:nth-child(even){background:#FAFAFC}
.epc-cruise-table tbody tr:last-child th,.epc-cruise-table tbody tr:last-child td{border-bottom:0}
.epc-cruise-logo{vertical-align:middle;border-radius:6px;margin-right:8px}
.epc-cruise-price{font-family:'Sora',sans-serif;font-weight:800;font-size:16px;color:#101014}
.epc-cruise-note{margin:14px 0 0;font-size:12.5px;line-height:1.6;color:#7D7D7D}
@media(max-width:600px){.epc-cruise{padding:16px;border-radius:14px}.epc-cruise-table th,.epc-cruise-table td{padding:10px 9px}}

/* Country card with no page of ours to link to yet: same information, no
   pretend destination and no hover affordance. */
.epc-country-card--flat{cursor:default;opacity:.72}
.epc-country-card--flat:hover{transform:none;box-shadow:none}
