/* =====================================================
   Freedom Immigration News — plugin styles v1.0.0
   深绿 #0E2E26 / #14463B / #1d5246 · 金 #C2A14D
   ===================================================== */

.fi-news, .fi-latest, .fi-single-extra, .fi-single .entry-content {
	--fi-g950:#0A231C; --fi-g900:#0E2E26; --fi-g800:#14463B; --fi-g700:#1d5246;
	--fi-g100:#DCE8E2; --fi-g50:#EEF4F1;
	--fi-gold:#C2A14D; --fi-gold-d:#8A6E2F; --fi-gold-l:#D4B264;
	--fi-cream:#CFE0D9; --fi-ink:#2A3833; --fi-mut:#5E6E67;
	--fi-line:#E4EBE7; --fi-r:14px;
	--fi-sh:0 1px 2px rgba(14,46,38,.05),0 1px 6px rgba(14,46,38,.04);
	--fi-sh-h:0 14px 30px rgba(14,46,38,.12);
	--fi-ff:'Inter','Noto Sans SC','Noto Sans KR',ui-sans-serif,system-ui,-apple-system,sans-serif;
	font-family:var(--fi-ff);
}
.fi-news *, .fi-latest *, .fi-single-extra * { box-sizing:border-box; }
.fi-news a, .fi-latest a, .fi-single-extra a { text-decoration:none; box-shadow:none; }
.fi-wrap { max-width:1200px; margin:0 auto; padding:0 24px; }

/* ---------- Hero ---------- */
.fi-hero { background:var(--fi-g900); color:#fff; position:relative; overflow:hidden; }
.fi-hero::before { content:""; position:absolute; inset:0; background:radial-gradient(600px 300px at 85% 0%, rgba(194,161,77,.10), transparent 60%); }
.fi-leafbg { position:absolute; right:-40px; bottom:-70px; width:340px; height:340px; opacity:.05; pointer-events:none; }
.fi-hero .fi-wrap { position:relative; padding-top:56px; padding-bottom:60px; }
.fi-crumb { font-size:12.5px; color:var(--fi-cream); opacity:.8; margin-bottom:18px; letter-spacing:.03em; }
.fi-crumb a { color:var(--fi-cream); }
.fi-crumb a:hover { color:var(--fi-gold-l); }
.fi-crumb span { opacity:.5; margin:0 4px; }
.fi-crumb b { color:var(--fi-gold-l); font-weight:500; }
.fi-eyebrow { font-size:12px; font-weight:700; letter-spacing:.22em; color:var(--fi-gold); margin-bottom:14px; }
.fi-h1 { font-size:clamp(2rem,4.5vw,3.1rem); font-weight:800; letter-spacing:-.015em; line-height:1.15; color:#fff; margin:0; }
.fi-bar { width:64px; height:3px; background:var(--fi-gold); border-radius:2px; margin:20px 0; }
.fi-gbar { width:28px; height:3px; background:var(--fi-gold); border-radius:2px; }
.fi-sub { max-width:640px; color:var(--fi-cream); font-size:16.5px; line-height:1.75; margin:0; }
.fi-live { display:inline-flex; align-items:center; gap:8px; margin-top:22px; font-size:13px; color:var(--fi-cream); opacity:.9; }
.fi-live i { width:7px; height:7px; border-radius:50%; background:var(--fi-gold); box-shadow:0 0 0 3px rgba(194,161,77,.22); }
.fi-hero-edge { height:3px; background:linear-gradient(90deg,var(--fi-gold),rgba(194,161,77,.15)); }

/* ---------- Layout ---------- */
.fi-main { padding:52px 0 72px; background:#F6F8F7; }
.fi-cols { display:grid; grid-template-columns:minmax(0,1fr) 336px; gap:36px; align-items:start; }
.fi-filter { background:#fff; border:1px solid var(--fi-line); border-radius:10px; padding:12px 18px; font-size:14px; color:var(--fi-mut); margin-bottom:22px; display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.fi-filter b { color:var(--fi-g700); }
.fi-filter a { margin-left:auto; color:var(--fi-gold-d); font-weight:600; font-size:13px; }
.fi-empty { background:#fff; border:1px dashed var(--fi-g100); border-radius:var(--fi-r); padding:48px 24px; text-align:center; color:var(--fi-mut); }

/* ---------- Cards ---------- */
.fi-grid { display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.fi-grid3 { grid-template-columns:repeat(3,1fr); }
.fi-card { background:#fff; border:1px solid var(--fi-line); border-radius:var(--fi-r); overflow:hidden; box-shadow:var(--fi-sh); transition:transform .18s ease, box-shadow .18s ease; display:flex; flex-direction:column; }
.fi-card:hover { transform:translateY(-4px); box-shadow:var(--fi-sh-h); }
.fi-im { display:block; aspect-ratio:16/9; overflow:hidden; position:relative; background:var(--fi-g900); }
.fi-im img, .fi-im svg.fi-ph { width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s ease; margin:0; }
.fi-card:hover .fi-im img, .fi-card:hover .fi-im svg.fi-ph { transform:scale(1.035); }
.fi-bd { padding:20px 22px 18px; display:flex; flex-direction:column; flex:1; }
.fi-meta { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; }
.fi-pill { display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--fi-gold-d); background:rgba(194,161,77,.13); border-radius:20px; padding:4px 11px; white-space:nowrap; }
.fi-pill-gold { background:var(--fi-gold); color:var(--fi-g900); }
.fi-date { font-size:12.5px; color:var(--fi-mut); white-space:nowrap; }
.fi-t { font-size:16.5px; line-height:1.45; font-weight:700; margin:0 0 10px; }
.fi-t a { color:var(--fi-g700); transition:color .15s; }
.fi-t a:hover { color:var(--fi-gold-d); }
.fi-ex { font-size:14px; color:var(--fi-mut); line-height:1.65; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; margin:0 0 16px; }
.fi-ft { margin-top:auto; padding-top:14px; border-top:1px solid var(--fi-line); }
.fi-more { display:inline-flex; align-items:center; gap:7px; font-size:13.5px; font-weight:600; color:var(--fi-g700); transition:color .15s; }
.fi-more span { transition:transform .18s; }
.fi-more:hover { color:var(--fi-gold-d); }
.fi-more:hover span { transform:translateX(4px); }

/* featured (first) card */
.fi-feat { grid-column:1/-1; flex-direction:row; min-height:280px; }
.fi-feat .fi-im { width:46%; aspect-ratio:auto; }
.fi-feat .fi-bd { width:54%; padding:28px 32px; }
.fi-feat .fi-t { font-size:22px; line-height:1.35; }
.fi-feat .fi-ex { font-size:14.5px; }

/* ---------- Pagination ---------- */
.fi-pager { display:flex; gap:8px; justify-content:center; margin-top:44px; flex-wrap:wrap; }
.fi-pager a { min-width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--fi-line); background:#fff; border-radius:10px; font-size:14px; font-weight:600; color:var(--fi-g700); transition:all .15s; }
.fi-pager a:hover { border-color:var(--fi-gold); color:var(--fi-gold-d); }
.fi-pager a.fi-cur { background:var(--fi-g800); border-color:var(--fi-g800); color:#fff; }

/* ---------- Sidebar ---------- */
.fi-side { display:flex; flex-direction:column; gap:24px; position:sticky; top:24px; }
.fi-box { background:#fff; border:1px solid var(--fi-line); border-radius:var(--fi-r); padding:24px; box-shadow:var(--fi-sh); }
.fi-bt { font-size:15px; font-weight:700; color:var(--fi-g700); margin-bottom:6px; }
.fi-bt + .fi-gbar { margin-bottom:16px; }
.fi-search { display:flex; border:1px solid var(--fi-line); border-radius:10px; overflow:hidden; margin-top:12px; }
.fi-search input[type="text"] { flex:1; border:0 !important; outline:0; padding:11px 14px; font-size:14px; font-family:var(--fi-ff); color:var(--fi-ink); background:#fff; border-radius:0; min-height:0; }
.fi-search input[type="text"]:focus { box-shadow:none; }
.fi-search button { border:0; background:var(--fi-g800); color:#fff; padding:0 16px; cursor:pointer; display:flex; align-items:center; transition:background .15s; border-radius:0; }
.fi-search button:hover { background:var(--fi-g900); }
.fi-search svg { width:16px; height:16px; stroke:#fff; fill:none; stroke-width:2; stroke-linecap:round; }
.fi-search:focus-within { border-color:var(--fi-gold); }
.fi-cats { list-style:none; margin:8px 0 0; padding:0; }
.fi-cats li { border-bottom:1px solid var(--fi-line); margin:0; }
.fi-cats li:last-child { border-bottom:0; }
.fi-cats a { display:flex; justify-content:space-between; align-items:center; padding:10px 2px; font-size:14px; font-weight:500; color:var(--fi-ink); border-left:2px solid transparent; transition:all .15s; }
.fi-cats a:hover, .fi-cats a.fi-on { color:var(--fi-gold-d); padding-left:8px; border-left-color:var(--fi-gold); }
.fi-n { font-size:11.5px; font-weight:600; background:var(--fi-g50); color:var(--fi-mut); border-radius:12px; padding:2px 9px; transition:all .15s; }
.fi-cats a:hover .fi-n { background:rgba(194,161,77,.15); color:var(--fi-gold-d); }
.fi-fp { list-style:none; margin:8px 0 0; padding:0; }
.fi-fp li { display:flex; gap:14px; padding:11px 0; border-bottom:1px solid var(--fi-line); margin:0; }
.fi-fp li:last-child { border-bottom:0; }
.fi-no { font-size:20px; font-weight:800; color:var(--fi-gold); line-height:1.2; min-width:30px; }
.fi-fp h4 { font-size:13.5px; line-height:1.45; font-weight:600; margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.fi-fp h4 a { color:var(--fi-g700); }
.fi-fp h4 a:hover { color:var(--fi-gold-d); }
.fi-d { font-size:11.5px; color:var(--fi-mut); margin-top:3px; }
.fi-grev { text-align:center; }
.fi-gh { display:flex; align-items:center; justify-content:center; gap:8px; font-weight:700; font-size:14.5px; color:var(--fi-ink); }
.fi-gh svg { width:20px; height:20px; }
.fi-num { font-size:34px; font-weight:800; color:var(--fi-g700); margin-top:10px; line-height:1; }
.fi-stars { display:flex; justify-content:center; gap:3px; margin:10px 0 6px; }
.fi-stars svg { width:17px; height:17px; }
.fi-gsub { font-size:12.5px; color:var(--fi-mut); margin-bottom:14px; }
.fi-btn-o { display:inline-block; border:1.5px solid var(--fi-gold); color:var(--fi-gold-d); font-size:13.5px; font-weight:600; border-radius:10px; padding:9px 20px; transition:all .15s; background:transparent; }
.fi-btn-o:hover { background:var(--fi-gold); color:var(--fi-g900); }
.fi-ctabox { background:var(--fi-g900); border:0; border-top:3px solid var(--fi-gold); color:#fff; position:relative; overflow:hidden; }
.fi-ctabox::before { content:""; position:absolute; inset:0; background:radial-gradient(280px 180px at 100% 0%, rgba(194,161,77,.12), transparent 60%); }
.fi-ctabox h3 { position:relative; font-size:18px; line-height:1.4; margin:0 0 10px; color:#fff; }
.fi-ctabox p { position:relative; font-size:13.5px; color:var(--fi-cream); line-height:1.65; margin:0 0 18px; }
.fi-btn-g { position:relative; display:block; text-align:center; background:var(--fi-gold); color:var(--fi-g900) !important; font-size:14.5px; font-weight:700; border-radius:10px; padding:12px 18px; transition:background .15s; }
.fi-btn-g:hover { background:var(--fi-gold-l); color:var(--fi-g900) !important; }
.fi-tel { position:relative; display:flex; align-items:center; justify-content:center; gap:7px; margin-top:14px; font-size:13.5px; color:var(--fi-cream); }
.fi-tel:hover { color:var(--fi-gold-l); }
.fi-tel svg { width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

/* ---------- Homepage latest section ---------- */
.fi-latest { padding:72px 0; }
.fi-ltop { text-align:center; max-width:640px; margin:0 auto 40px; }
.fi-eyebrow2 { font-size:11.5px; font-weight:700; letter-spacing:.22em; color:var(--fi-gold-d); margin-bottom:12px; }
.fi-h2 { font-size:clamp(1.6rem,3.4vw,2.2rem); font-weight:800; letter-spacing:-.01em; color:var(--fi-g700); margin:0; }
.fi-ltop p { color:var(--fi-mut); font-size:15px; margin:14px 0 0; }
.fi-gbar-c { margin:18px auto 0; }
.fi-all { text-align:center; margin-top:42px; }
.fi-btn-ol { display:inline-flex; align-items:center; gap:9px; border:1.5px solid var(--fi-g800); color:var(--fi-g800); font-size:14.5px; font-weight:700; border-radius:10px; padding:13px 30px; transition:all .18s; background:transparent; }
.fi-btn-ol span { transition:transform .18s; }
.fi-btn-ol:hover { background:var(--fi-g800); color:#fff; }
.fi-btn-ol:hover span { transform:translateX(4px); }

/* ---------- Single post enhancements ---------- */
.fi-single .entry-content, .fi-single .entry { font-size:17px; line-height:1.85; }
.fi-single ul.meta { display:none; }  /* 用插件的信息条替代主题默认 meta */
.fi-abyline { display:flex; align-items:center; gap:12px; padding:0 0 22px; border-bottom:1px solid var(--fi-line); margin-bottom:28px; flex-wrap:wrap; }
.fi-ava { width:42px; height:42px; border-radius:50%; background:var(--fi-g800); color:var(--fi-gold); font-weight:700; font-size:14px; display:inline-flex; align-items:center; justify-content:center; letter-spacing:.05em; flex:none; }
.fi-who b { display:block; font-size:14px; font-weight:600; color:var(--fi-ink); line-height:1.3; }
.fi-who span { font-size:12.5px; color:var(--fi-mut); }
.fi-abypill { margin-left:auto; }
.fi-single .entry-content h2 { font-size:21px; font-weight:700; color:var(--fi-g700); margin:36px 0 16px; padding-left:14px; border-left:3px solid var(--fi-gold); line-height:1.4; }
.fi-single .entry-content blockquote { border-left:3px solid var(--fi-gold); background:var(--fi-g50); border-radius:0 12px 12px 0; padding:20px 24px; margin:28px 0; font-style:italic; color:var(--fi-g700); }
.fi-single .single-media img, .fi-single .entry-content img { border-radius:16px; }
.fi-sharebar { display:flex; align-items:center; gap:12px; margin:30px 0 0; flex-wrap:wrap; }
.fi-lbl { font-size:13.5px; font-weight:600; color:var(--fi-ink); }
.fi-sic { width:38px; height:38px; border-radius:50%; border:1.5px solid var(--fi-g100); background:#fff; display:inline-flex; align-items:center; justify-content:center; transition:all .15s; cursor:pointer; padding:0; }
.fi-sic svg { width:16px; height:16px; fill:var(--fi-g700); transition:all .15s; }
.fi-sic svg.fi-st { fill:none; stroke:var(--fi-g700); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.fi-sic:hover { background:var(--fi-g800); border-color:var(--fi-g800); }
.fi-sic:hover svg { fill:#fff; }
.fi-sic:hover svg.fi-st { fill:none; stroke:#fff; }
.fi-sic.fi-ok { background:var(--fi-gold); border-color:var(--fi-gold); }
.fi-sic.fi-ok svg.fi-st { stroke:var(--fi-g900); }
.fi-disclaim { font-size:12.5px; color:var(--fi-mut); font-style:italic; border-top:1px solid var(--fi-line); margin-top:30px; padding-top:16px; }
.fi-rel { margin-top:52px; }
.fi-relh { font-size:22px; font-weight:800; color:var(--fi-g700); margin:0 0 12px; }
.fi-rel .fi-gbar { margin-bottom:26px; }
.fi-rel .fi-t { font-size:15px; }
.fi-ctaband { margin-top:52px; background:var(--fi-g900); border-radius:16px; position:relative; overflow:hidden; padding:44px 32px; text-align:center; }
.fi-ctaband::before { content:""; position:absolute; inset:0; background:radial-gradient(500px 260px at 90% 10%, rgba(194,161,77,.12), transparent 60%); }
.fi-ctaband h2 { position:relative; color:#fff; font-size:clamp(1.3rem,2.6vw,1.7rem); font-weight:800; margin:0 0 10px; border:0; padding:0; }
.fi-ctaband p { position:relative; color:var(--fi-cream); font-size:15px; margin:0 0 24px; }
.fi-row { position:relative; display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.fi-ctaband .fi-btn-g { display:inline-block; padding:13px 32px; }
.fi-btn-w { display:inline-flex; align-items:center; gap:8px; border:1.5px solid rgba(207,224,217,.5); color:#fff !important; font-size:14.5px; font-weight:600; border-radius:10px; padding:12px 26px; transition:all .15s; }
.fi-btn-w:hover { border-color:var(--fi-gold); color:var(--fi-gold-l) !important; }
.fi-btn-w svg { width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

/* ---------- Responsive ---------- */
@media (max-width:1024px) {
	.fi-cols { grid-template-columns:1fr; }
	.fi-side { position:static; }
}
@media (max-width:760px) {
	.fi-grid, .fi-grid3 { grid-template-columns:1fr; }
	.fi-feat { flex-direction:column; min-height:0; }
	.fi-feat .fi-im { width:100%; aspect-ratio:16/9; }
	.fi-feat .fi-bd { width:100%; padding:20px 22px; }
	.fi-feat .fi-t { font-size:18.5px; }
	.fi-hero .fi-wrap { padding-top:40px; padding-bottom:44px; }
	.fi-main { padding:36px 0 56px; }
	.fi-latest { padding:52px 0; }
	.fi-abypill { margin-left:0; }
	.fi-ctaband { padding:36px 20px; }
}

/* ---------- Overrides vs theme/Elementor global button styles (v1.0.1) ---------- */
.fi-news .fi-search button,
.fi-news .fi-search button:focus {
	background:var(--fi-g800) !important; background-color:var(--fi-g800) !important;
	color:#fff !important; border:0 !important; border-radius:0 !important;
	padding:0 16px !important; min-height:0 !important; box-shadow:none !important;
}
.fi-news .fi-search button:hover { background:var(--fi-g900) !important; background-color:var(--fi-g900) !important; }
.fi-single-extra .fi-sic,
.fi-single-extra button.fi-sic {
	background:#fff !important; background-color:#fff !important;
	border:1.5px solid var(--fi-g100) !important; border-radius:50% !important;
	padding:0 !important; min-height:0 !important; box-shadow:none !important;
	width:38px !important; height:38px !important;
}
.fi-single-extra .fi-sic:hover { background:var(--fi-g800) !important; background-color:var(--fi-g800) !important; border-color:var(--fi-g800) !important; }
.fi-single-extra .fi-sic.fi-ok { background:var(--fi-gold) !important; background-color:var(--fi-gold) !important; border-color:var(--fi-gold) !important; }
