/* Easy Visa Path — shared public-page styles (Contact + future pages).
   Layered on top of main.css design tokens (scoped to .evp-home). */

/* ============ Page hero ============ */
.evp-phero {
	position: relative;
	overflow: hidden;
	padding-block: clamp(56px, 9vw, 120px);
	background: linear-gradient(180deg, #f6f9fe 0%, #ffffff 100%);
}
.evp-phero__bg {
	position: absolute; inset: 0;
	background:
		radial-gradient(900px 380px at 15% 0%, rgba(31,111,235,.12), transparent 60%),
		radial-gradient(700px 360px at 90% 10%, rgba(79,141,246,.14), transparent 62%);
	background-size: 140% 140%;
	animation: evp-phero-pan 18s ease-in-out infinite alternate;
	pointer-events: none;
}
@keyframes evp-phero-pan { 0% { background-position: 0% 0%; } 100% { background-position: 100% 60%; } }

.evp-phero__decor { position: absolute; inset: 0; pointer-events: none; }
.evp-phero__glow { position: absolute; border-radius: 50%; filter: blur(50px); opacity: .55; }
.evp-phero__glow--a { width: 320px; height: 320px; top: -80px; right: 4%; background: radial-gradient(circle, rgba(31,111,235,.35), transparent 70%); animation: evp-float 12s ease-in-out infinite; }
.evp-phero__glow--b { width: 260px; height: 260px; bottom: -120px; left: 2%; background: radial-gradient(circle, rgba(79,141,246,.30), transparent 70%); animation: evp-float 15s ease-in-out infinite reverse; }
.evp-phero__dot { position: absolute; width: 8px; height: 8px; border-radius: 50%; background: rgba(31,111,235,.45); }
.evp-phero__dot--1 { top: 22%; left: 12%; animation: evp-float 9s ease-in-out infinite; }
.evp-phero__dot--2 { top: 64%; left: 28%; width: 6px; height: 6px; background: rgba(79,141,246,.5); animation: evp-float 11s ease-in-out infinite reverse; }
.evp-phero__dot--3 { top: 30%; right: 22%; width: 5px; height: 5px; animation: evp-float 13s ease-in-out infinite; }
.evp-phero__doc { position: absolute; color: rgba(31,111,235,.30); }
.evp-phero__doc--1 { top: 26%; right: 9%; animation: evp-floaty 10s ease-in-out infinite; }
.evp-phero__doc--2 { bottom: 16%; right: 30%; color: rgba(79,141,246,.28); animation: evp-floaty 13s ease-in-out infinite reverse; }
@keyframes evp-float  { 0%,100% { transform: translate(0,0); } 50% { transform: translate(0,-16px); } }
@keyframes evp-floaty { 0%,100% { transform: translateY(0) rotate(-4deg); } 50% { transform: translateY(-14px) rotate(4deg); } }

.evp-phero__inner { position: relative; z-index: 1; max-width: 760px; }
.evp-phero__title {
	font-size: clamp(2rem, 4.6vw, 3.3rem);
	line-height: 1.08; letter-spacing: -.02em; margin: 10px 0 18px;
	color: var(--evp-ink, #0b1b2b);
}
.evp-phero__lead { font-size: clamp(1.05rem, 1.7vw, 1.28rem); line-height: 1.6; color: var(--evp-ink-soft, #3a4a5c); max-width: 620px; }
.evp-phero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

/* ============ Contact cards ============ */
.evp-contact-cards { padding-top: clamp(20px, 3vw, 40px); }
.evp-contact-cards__grid { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 760px) { .evp-contact-cards__grid { grid-template-columns: repeat(3, 1fr); } }

.evp-ccard {
	background: #fff; border: 1px solid var(--evp-line, #e5eaf1); border-radius: 16px;
	padding: 26px 24px; box-shadow: 0 1px 2px rgba(11,27,43,.04);
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.evp-ccard:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(31,111,235,.12); border-color: rgba(31,111,235,.30); }
.evp-ccard__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 46px; height: 46px; border-radius: 12px; margin-bottom: 14px;
	background: var(--evp-accent-soft, #e8efff); color: var(--evp-accent, #1f6feb);
}
.evp-ccard__label { font-size: 1.05rem; margin: 0 0 8px; color: var(--evp-ink, #0b1b2b); }
.evp-ccard__value-row { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.evp-ccard__value { font-weight: 600; color: var(--evp-accent, #1f6feb); word-break: break-all; }
.evp-ccard__desc { color: var(--evp-ink-mute, #6b7a8c); font-size: .95rem; line-height: 1.5; margin: 0 0 18px; }
.evp-ccard__btn { width: 100%; justify-content: center; text-align: center; }

/* copy button + tooltip */
.evp-copy-btn {
	position: relative; display: inline-flex; align-items: center; justify-content: center;
	width: 30px; height: 30px; border-radius: 8px; cursor: pointer;
	border: 1px solid var(--evp-line, #e5eaf1); background: #fff; color: var(--evp-ink-mute, #6b7a8c);
	transition: background .15s, color .15s, border-color .15s;
}
.evp-copy-btn:hover { background: var(--evp-accent-soft, #e8efff); color: var(--evp-accent, #1f6feb); border-color: rgba(31,111,235,.35); }
.evp-copied-tip {
	position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%) translateY(4px);
	background: #0b1b2b; color: #fff; font-size: 11px; padding: 3px 8px; border-radius: 6px;
	white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .15s, transform .15s;
}
.evp-copy-btn.is-copied .evp-copied-tip { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ============ Contact form ============ */
.evp-contact-form-sec { background: var(--evp-bg-alt, #f5f7fb); }
.evp-contact-form__inner { max-width: 720px; }
.evp-contact-form__box {
	background: #fff; border: 1px solid var(--evp-line, #e5eaf1); border-radius: 18px;
	padding: clamp(22px, 3vw, 36px); box-shadow: 0 8px 30px rgba(11,27,43,.06);
}
.evp-contact-form__box .wpforms-field-label { color: var(--evp-ink, #0b1b2b) !important; font-weight: 600; }
.evp-contact-form__box input[type="text"],
.evp-contact-form__box input[type="email"],
.evp-contact-form__box input[type="tel"],
.evp-contact-form__box select,
.evp-contact-form__box textarea {
	border: 1px solid var(--evp-line, #e5eaf1) !important;
	border-radius: 10px !important; padding: 11px 13px !important;
	background: #fff !important; color: var(--evp-ink, #0b1b2b) !important; box-shadow: none !important;
}
.evp-contact-form__box input:focus,
.evp-contact-form__box select:focus,
.evp-contact-form__box textarea:focus {
	border-color: var(--evp-accent, #1f6feb) !important; outline: none !important;
	box-shadow: 0 0 0 3px rgba(31,111,235,.14) !important;
}
.evp-contact-form__box .wpforms-submit {
	background: var(--evp-accent, #1f6feb) !important; border: 0 !important; color: #fff !important;
	border-radius: 999px !important; padding: 13px 30px !important; font-weight: 600 !important; cursor: pointer;
}
.evp-contact-form__box .wpforms-submit:hover { background: #185acb !important; }

/* Readable success box (green) — light section. */
.evp-contact-form__box .wpforms-confirmation-container-full {
	background: rgba(34,197,94,.12) !important; border: 1px solid rgba(34,197,94,.45) !important;
	border-radius: 12px !important; padding: 16px 20px !important; margin: 0 !important;
}
.evp-contact-form__box .wpforms-confirmation-container-full,
.evp-contact-form__box .wpforms-confirmation-container-full p {
	color: #14653a !important; font-size: 16px !important; line-height: 1.5 !important; margin: 0 !important;
}
.evp-contact-form__box .wpforms-container { min-height: 0 !important; margin: 0 !important; }

/* ============ Info / step cards ============ */
.evp-infocards { display: grid; grid-template-columns: 1fr; gap: 18px; margin-top: 8px; }
@media (min-width: 820px) { .evp-infocards { grid-template-columns: repeat(var(--evp-cols, 3), 1fr); } }
.evp-infocard {
	background: #fff; border: 1px solid var(--evp-line, #e5eaf1); border-radius: 16px; padding: 24px;
	box-shadow: 0 1px 2px rgba(11,27,43,.04); transition: transform .18s ease, box-shadow .18s ease;
}
.evp-infocard:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(11,27,43,.08); }
.evp-infocard__num {
	display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px;
	border-radius: 10px; font-weight: 800; margin-bottom: 12px;
	background: var(--evp-accent, #1f6feb); color: #fff;
}
.evp-infocard__icon { display: inline-flex; color: var(--evp-accent, #1f6feb); margin-bottom: 12px; }
.evp-infocard__title { font-size: 1.1rem; margin: 0 0 8px; color: var(--evp-ink, #0b1b2b); }
.evp-infocard__text { color: var(--evp-ink-mute, #6b7a8c); line-height: 1.6; margin: 0; }

/* keep the contact FAQ on a white background for contrast with the alt form section */
.evp-contact-faq { background: #fff; }

@media (max-width: 600px) {
	.evp-phero__ctas .evp-btn { width: 100%; justify-content: center; text-align: center; }
}

/* ============================================================
   Resources landing + article archives
   ============================================================ */
.evp-rescard-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
@media (max-width: 900px) { .evp-rescard-grid { grid-template-columns: 1fr; } }

.evp-rescard {
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	align-items: flex-start;
}
.evp-rescard:hover { border-color: var(--evp-accent); color: inherit; }
.evp-rescard__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: var(--evp-radius-sm);
	background: var(--evp-accent-soft);
	color: var(--evp-accent);
}
.evp-rescard__title { font-size: var(--evp-fs-h3); margin: 0; color: var(--evp-ink); }
.evp-rescard__text { color: var(--evp-ink-mute); margin: 0; }
.evp-rescard__more {
	margin-top: auto;
	font-weight: 600;
	color: var(--evp-accent);
	display: inline-flex;
	gap: 6px;
	align-items: center;
}
.evp-rescard__more span { transition: transform 0.25s var(--evp-ease); }
.evp-rescard:hover .evp-rescard__more span { transform: translateX(4px); }

/* Compact the archive pages (Visa Insights / Visa Guides / News): move the
   hero higher and tighten the gap before the posts grid. The archive <main>
   has BOTH .evp-resources and .evp-articles, so we use the 3-class selector
   .evp-resources.evp-articles to outrank the .evp-resources .evp-phero /
   .evp-articles-sec rules below (same 0,2,0 specificity otherwise). The
   Resources landing page lacks .evp-articles, so it keeps its own spacing. */
.evp-resources.evp-articles .evp-phero {
	padding-top: clamp(28px, 3.5vw, 44px);
	padding-bottom: clamp(16px, 2.2vw, 28px);
}
.evp-resources.evp-articles .evp-articles-sec {
	padding-top: clamp(18px, 2.2vw, 28px);
}

/* Article grid */
.evp-article-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
@media (max-width: 900px) { .evp-article-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .evp-article-grid { grid-template-columns: 1fr; } }

.evp-article-card { padding: 0; overflow: hidden; }
.evp-article-card__media {
	display: block;
	aspect-ratio: 16 / 9;
	background: var(--evp-bg-soft);
	overflow: hidden;
}
.evp-article-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s var(--evp-ease); }
.evp-article-card:hover .evp-article-card__media img { transform: scale(1.04); }
.evp-article-card__ph {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: var(--evp-accent);
	background: var(--evp-accent-soft);
}
.evp-article-card__body { padding: 22px 24px 26px; display: flex; flex-direction: column; gap: 12px; }
.evp-article-card__meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.evp-article-card__cat {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: #1d4ed8;
	background: #dbeafe;
	border-radius: 100px;
	padding: 3px 10px;
	transition: background-color 0.2s var(--evp-ease), color 0.2s var(--evp-ease);
}
.evp-article-card:hover .evp-article-card__cat { background: #c7ddfb; color: #1e40af; }
.evp-article-card__date { font-size: 13px; color: var(--evp-ink-soft); }
.evp-article-card__title { font-size: 1.15rem; margin: 0; line-height: 1.35; }
.evp-article-card__title a { color: var(--evp-ink); text-decoration: none; transition: color 0.2s var(--evp-ease); }
.evp-article-card__title a:visited { color: var(--evp-ink); }
.evp-article-card:hover .evp-article-card__title a,
.evp-article-card__title a:hover,
.evp-article-card__title a:focus,
.evp-article-card__title a:focus-visible { color: var(--evp-accent); }
.evp-article-card__excerpt { color: var(--evp-ink-mute); margin: 0; font-size: 0.95rem; }
.evp-article-card__more { margin-top: auto; font-weight: 600; color: var(--evp-accent); text-decoration: none; display: inline-flex; gap: 6px; }
.evp-article-card__more span { transition: transform 0.25s var(--evp-ease); }
.evp-article-card__more:hover span { transform: translateX(4px); }

/* Empty state */
.evp-article-empty {
	text-align: center;
	max-width: 460px;
	margin: 0 auto;
	padding: 56px 24px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
}
.evp-article-empty__icon { color: var(--evp-accent); opacity: 0.7; }
.evp-article-empty__text { color: var(--evp-ink-mute); font-size: var(--evp-fs-lead); margin: 0; }

/* Pagination */
.evp-article-pagination { margin-top: 40px; display: flex; justify-content: center; }
.evp-article-pagination ul { list-style: none; display: flex; gap: 8px; margin: 0; padding: 0; }
.evp-article-pagination a, .evp-article-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 10px;
	border: 1px solid var(--evp-line);
	border-radius: var(--evp-radius-sm);
	text-decoration: none;
	color: var(--evp-ink);
	background: #fff;
}
.evp-article-pagination a:hover { border-color: var(--evp-accent); color: var(--evp-accent); }
.evp-article-pagination .current { background: var(--evp-accent); border-color: var(--evp-accent); color: #fff; }

/* ============================================================
   Services page
   ============================================================ */
.evp-svc-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 22px;
	margin-top: 30px;
}
@media (max-width: 1100px) { .evp-svc-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .evp-svc-grid { grid-template-columns: 1fr; } }

.evp-svc-card { gap: 12px; }
.evp-svc-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: var(--evp-radius-sm);
	background: var(--evp-accent-soft);
	color: var(--evp-accent-ink, #1f6feb);
}
.evp-svc-card__icon svg { color: #1f6feb; }
.evp-svc-card__title { font-size: 1.08rem; margin: 0; color: var(--evp-ink); }
.evp-svc-card__text { color: var(--evp-ink-mute); margin: 0; font-size: 0.94rem; }

/* Country band */
.evp-services-countries { background: var(--evp-bg-soft); }
.evp-svc-countries { text-align: center; }
.evp-svc-countries__title { font-size: var(--evp-fs-h2); margin: 0 0 8px; }
.evp-svc-countries__lead { color: var(--evp-ink-mute); margin: 0 auto 22px; max-width: 620px; }
.evp-svc-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.evp-svc-chip {
	background: #fff;
	border: 1px solid var(--evp-line);
	border-radius: 100px;
	padding: 8px 18px;
	font-weight: 600;
	color: var(--evp-ink);
	font-size: 0.92rem;
}

/* UK sponsorship band */
.evp-svc-uk {
	display: grid;
	grid-template-columns: 1.4fr 0.6fr;
	gap: 30px;
	align-items: center;
	background: linear-gradient(135deg, #0b1b2b 0%, #14375e 100%);
	color: #fff;
	border-radius: var(--evp-radius-lg);
	padding: 44px;
}
@media (max-width: 800px) { .evp-svc-uk { grid-template-columns: 1fr; padding: 32px 24px; } }
.evp-svc-uk .evp-eyebrow { color: #8fc0ff; }
.evp-svc-uk__title { font-size: var(--evp-fs-h2); margin: 4px 0 12px; color: #fff; }
.evp-svc-uk__text { color: rgba(255,255,255,0.82); margin: 0 0 22px; max-width: 560px; }
.evp-svc-uk__flag { display: flex; flex-direction: column; border-radius: var(--evp-radius); overflow: hidden; min-height: 120px; box-shadow: 0 10px 30px rgba(0,0,0,0.25); }
.evp-svc-uk__flag-blue { background: #0057b7; flex: 1; }
.evp-svc-uk__flag-yellow { background: #ffd700; flex: 1; }
@media (max-width: 800px) { .evp-svc-uk__flag { min-height: 70px; flex-direction: row; } }

/* How we help disclaimer */
.evp-svc-disclaimer {
	margin: 28px auto 0;
	max-width: 760px;
	text-align: center;
	color: var(--evp-ink-soft);
	font-size: 0.9rem;
	background: #fff;
	border: 1px dashed var(--evp-line);
	border-radius: var(--evp-radius);
	padding: 16px 22px;
}

/* ============ Resources archive compactness ============
   Tighten the vertical rhythm on the Resources pages (Visa Guides, Visa
   Insights, News, Resources landing) so the article grid starts close to the
   hero instead of leaving ~240px of dead space. Scoped to .evp-resources so
   Contact / About / Services / homepage heroes are untouched. The double-class
   selectors outrank the base .evp-phero / .evp-section padding deterministically. */
.evp-resources .evp-phero {
	/* Hero: desktop ~104/84, mobile ~64/52 (was a symmetric clamp up to 120). */
	padding-top: clamp(64px, 8vw, 104px);
	padding-bottom: clamp(52px, 6vw, 84px);
}
.evp-resources .evp-articles-sec,
.evp-resources .evp-resources-cards {
	/* Gap to first card: desktop ~64, mobile ~34 (was up to 120). */
	padding-top: clamp(34px, 4.5vw, 64px);
	padding-bottom: clamp(48px, 7vw, 90px);
}

/* ============ Search results page ============ */
/* Results are a scan-and-pick list, not feature cards — everything here is
   deliberately a size down from .evp-article-card. */

.evp-search-page .evp-phero__title {
	font-size: clamp(1.55rem, 2.8vw, 2.15rem);
	line-height: 1.18;
}
.evp-search-page .evp-phero__lead { font-size: 1rem; }
.evp-search-page .evp-phero { padding-block: clamp(38px, 6vw, 64px); }

/* Refine-search form */
.evp-sform { margin: 0 0 26px; }
.evp-sform__label {
	display: block;
	margin: 0 0 8px;
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--evp-ink-mute, #6b7a8c);
}
.evp-sform__row { display: flex; gap: 10px; flex-wrap: wrap; }
.evp-sform__field {
	flex: 1 1 260px;
	min-width: 0;
	margin: 0;
	padding: 11px 14px;
	font-size: 0.98rem;
	color: var(--evp-ink, #0b1b2b);
	background: #fff;
	border: 1px solid var(--evp-line, #e5eaf1);
	border-radius: var(--evp-radius-sm, 10px);
}
.evp-sform__field:focus {
	outline: none;
	border-color: var(--evp-accent, #1f6feb);
	box-shadow: var(--evp-shadow-glow, 0 0 0 6px rgba(31, 111, 235, 0.10));
}
.evp-sform__submit { flex: 0 0 auto; }

/* Result rows */
.evp-sresults {
	border-top: 1px solid var(--evp-line-soft, #eef2f8);
}
.evp-sresult {
	display: grid;
	grid-template-columns: 132px 1fr;
	gap: 18px;
	align-items: start;
	padding: 18px 0;
	border-bottom: 1px solid var(--evp-line-soft, #eef2f8);
}
.evp-sresult__media {
	display: block;
	overflow: hidden;
	aspect-ratio: 3 / 2;
	border-radius: var(--evp-radius-sm, 10px);
	background: var(--evp-bg-alt, #f5f7fb);
}
.evp-sresult__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.35s var(--evp-ease, ease);
}
.evp-sresult:hover .evp-sresult__media img { transform: scale(1.04); }
.evp-sresult__ph {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: var(--evp-ink-mute, #6b7a8c);
	opacity: 0.55;
}
.evp-sresult__body { min-width: 0; }
.evp-sresult__cat {
	display: inline-block;
	margin-bottom: 6px;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--evp-accent, #1f6feb);
}
.evp-sresult__title {
	margin: 0 0 6px;
	font-size: 1.02rem;
	line-height: 1.38;
	font-weight: 650;
}
.evp-sresult__title a {
	color: var(--evp-ink, #0b1b2b);
	text-decoration: none;
	transition: color 0.2s var(--evp-ease, ease);
}
.evp-sresult__title a:visited { color: var(--evp-ink, #0b1b2b); }
.evp-sresult:hover .evp-sresult__title a,
.evp-sresult__title a:hover { color: var(--evp-accent, #1f6feb); }
.evp-sresult__excerpt {
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.55;
	color: var(--evp-ink-soft, #3a4a5c);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.evp-article-empty__title {
	margin: 0;
	font-size: 1.15rem;
	font-weight: 650;
	color: var(--evp-ink, #0b1b2b);
}

@media (max-width: 560px) {
	.evp-sresult { grid-template-columns: 96px 1fr; gap: 14px; }
	.evp-sresult__title { font-size: 0.98rem; }
	.evp-sresult__excerpt { -webkit-line-clamp: 3; }
}

/* Author archive: heading above the article list. */
.evp-author-listing {
	margin: 0 0 14px;
	font-size: 1.05rem;
	font-weight: 650;
	color: var(--evp-ink, #0b1b2b);
}
.evp-author-page .evp-phero { padding-block: clamp(34px, 5vw, 56px); }
