/*
 Theme Name:   Astra Child
 Theme URI:    https://wpastra.com/
 Description:  Child theme tùy chỉnh cho ExpatConnect
 Author:       ExpatConnect
 Template:     astra
 Version:      1.0.0
*/

/* Base */
body { line-height: 1.7; color: #0f172a; }
.site { font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; }
.entry-content > * { margin-bottom: 1.1rem; }
h1,h2,h3 { color: #0b1324; line-height: 1.2; }
.page .entry-title { display: none; } /* Ẩn tiêu đề trang mặc định (tránh lặp H1) */

/* Sections */
.ec-section { padding: 32px 0; border-bottom: 1px solid #e5e7eb; }
.ec-section--alt { background: #f8fafc; }
.ec-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ec-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.ec-card { background: #ffffff; border: 1px solid #e5e7eb; border-radius: 12px; padding: 16px; }

/* Buttons */
.ec-btn { display:inline-block; padding:10px 14px; border-radius:10px; text-decoration:none; font-weight:600; }
.ec-btn--primary { background:linear-gradient(135deg,#4f46e5,#2563eb); color:#fff; border:1px solid rgba(255,255,255,.0); box-shadow: 0 10px 26px rgba(37,99,235,.18); }
.ec-btn--primary:hover { filter:saturate(1.05); opacity:.96; }
.ec-btn--ghost { border:1px solid #dbeafe; color:#0b1324; background:#fff; }
.ec-btn--ghost:hover { border-color:#c7d2fe; background:#eef2ff; }
.ec-btn--small { padding:8px 10px; border-radius:10px; font-size:13px; }
.ec-btn--wa { border-color:rgba(34,197,94,.35); }
.ec-btn--wa:hover { background:rgba(34,197,94,.10); border-color:rgba(34,197,94,.55); }
.ec-btn--zalo { border-color:rgba(14,165,233,.35); }
.ec-btn--zalo:hover { background:rgba(14,165,233,.10); border-color:rgba(14,165,233,.55); }

/* Forms */
input,textarea,select { border-radius:10px !important; }

/* Header menu spacing */
.main-header-menu a { font-weight:600; }

/* Custom header/footer */
.ec-site-header { position: sticky; top:0; z-index:20; background:rgba(255,255,255,.86); backdrop-filter: blur(12px); border-bottom:1px solid rgba(148,163,184,.35); box-shadow: 0 10px 30px rgba(2,6,23,.06); }
/* Generic container: do NOT force flex here (it breaks page sections) */
.ec-container { max-width:1160px; margin:0 auto; padding:0 16px; }
.ec-header-inner { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 0; }
/* Make logo stand out more in header */
.ec-brand { display:inline-flex; align-items:center; padding:6px 10px; border-radius:14px; background:rgba(255,255,255,.72); border:1px solid rgba(148,163,184,.28); box-shadow: 0 12px 32px rgba(2,6,23,.10); }
.ec-brand img { height:56px; width:auto; display:block; filter: drop-shadow(0 10px 22px rgba(2,6,23,.14)); }
.ec-nav { display:flex; align-items:center; gap:14px; }
.ec-menu { list-style:none; margin:0; padding:0; display:flex; gap:14px; }
.ec-menu a { text-decoration:none; color:#0f172a; font-weight:700; padding:10px 8px; border-radius:10px; }
.ec-menu a:hover { background:#f1f5f9; }
.ec-main { min-height:60vh; }
/* Footer (premium) */
.ec-site-footer { border-top:1px solid rgba(148,163,184,.22); background: radial-gradient(1200px 600px at 20% -10%, rgba(14,165,233,.22), transparent 55%), radial-gradient(1000px 520px at 90% 10%, rgba(79,70,229,.18), transparent 55%), #0b1224; color:#e2e8f0; padding:46px 0 16px; margin-top:40px; }
.ec-footer-top { display:grid; grid-template-columns: 1.2fr .8fr 1fr; gap:26px; align-items:start; }
.ec-footer-title { font-weight:800; letter-spacing:.02em; color:#fff; margin: 6px 0 12px; }
.ec-footer-logo img { height:36px; width:auto; display:block; }
.ec-footer-tagline { margin:10px 0 0; color:rgba(226,232,240,.78); max-width:52ch; }
.ec-footer-links { display:grid; grid-template-columns:1fr; gap:10px; }
.ec-footer-links a { color:rgba(226,232,240,.82); text-decoration:none; font-weight:600; }
.ec-footer-links a:hover { color:#fff; text-decoration:underline; text-underline-offset:3px; }
.ec-footer-bottom { margin-top:28px; padding-top:14px; border-top:1px solid rgba(148,163,184,.18); display:flex; gap:10px; flex-wrap:wrap; color:rgba(226,232,240,.72); font-size:14px; }
.ec-footer-dot { opacity:.5; }

/* Contact block (dark footer friendly) */
.ec-contact { display:flex; flex-wrap:wrap; gap:10px; margin-top:2px; }
.ec-contact__item { display:inline-flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid rgba(148,163,184,.22); border-radius:14px; background:rgba(255,255,255,.04); text-decoration:none; color:#e2e8f0; font-weight:700; font-size:14px; }
.ec-contact__item:hover { border-color:rgba(199,210,254,.55); background:rgba(255,255,255,.06); box-shadow: 0 12px 30px rgba(2,6,23,.25); }
.ec-contact__icon { width:26px; height:26px; border-radius:10px; display:inline-flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#0ea5e9,#1d4ed8); color:#fff; font-weight:900; font-size:12px; }

/* Hero slider */
.ec-hero { padding: 48px 0 32px; background: linear-gradient(180deg,#eef2ff,transparent 70%); }
.ec-hero-slider { position:relative; overflow:hidden; }
/* Use normal flow to avoid overlay/blank space issues */
.ec-slide { display:none; opacity:0; transform:translateY(8px); transition:opacity .35s ease, transform .35s ease; }
.ec-slide.is-active { display:block; opacity:1; transform:none; }
.ec-slide-inner { display:grid; grid-template-columns: 1.2fr .8fr; gap:18px; align-items:center; width:100%; max-width:1160px; margin:0 auto; padding:0 16px; }
.ec-slide h1 { font-size:34px; margin:.2rem 0 .6rem; }
.ec-slide p { color:#475569; margin:0 0 1rem; }
.ec-slide img { width:100%; max-width:420px; border-radius:12px; box-shadow: 0 8px 28px rgba(2,6,23,.08); }

/* Service cards & teachers */
.ec-cards3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.ec-card--shadow { background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:16px; box-shadow: 0 8px 22px rgba(2,6,23,.06); }
.ec-teachers { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.ec-teacher { background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:12px; }
.ec-teacher h4 { margin:.4rem 0 .1rem; }
.ec-muted { color:#64748b; }

/* Fluent Forms - làm đẹp form */
.fluentform .ff-el-form-control { border-radius:10px; border:1px solid #e5e7eb; background:#fff; padding:10px 12px; }
.fluentform .ff-el-group .ff-el-input--label { font-weight:600; color:#0f172a; }
.fluentform .ff_submit_btn, .fluentform .ff-btn-submit { background:#4f46e5; border:1px solid #4f46e5; color:#fff; border-radius:10px; padding:10px 16px; }
.fluentform .ff_submit_btn:hover, .fluentform .ff-btn-submit:hover { opacity:.92; }

/* Job search hero bar */
.ec-jobsearch { background: linear-gradient(90deg,#0ea5e9,#2563eb); padding:22px 0; color:#e2e8f0; }
.ec-jobsearch-inner { display:flex; justify-content:center; }
.ec-jobsearch-card { width:100%; max-width:1040px; background: rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.22); border-radius:18px; padding:16px; box-shadow: 0 20px 50px rgba(2,6,23,.18); }
.ec-jobsearch .ec-jobsearch-form { display:grid; grid-template-columns: 1.35fr 1fr auto; gap:12px; align-items:center; }
.ec-jobsearch .ec-input { width:100%; border:1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.98); border-radius:14px; padding:14px 16px; color:#0f172a; font-size:15px; box-shadow: inset 0 1px 0 rgba(255,255,255,.6); }
.ec-jobsearch .ec-input::placeholder { color:#94a3b8; }
.ec-btn--search { padding:14px 22px; border-radius:14px; font-size:15px; white-space:nowrap; }
.ec-jobsearch-meta { margin-top:12px; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.ec-jobsearch .ec-popular { display:flex; gap:10px; flex-wrap:wrap; align-items:center; font-size:14px; }
.ec-popular-label { color:rgba(226,232,240,.88); font-weight:700; }
.ec-jobsearch .ec-chip { background: rgba(255,255,255,.14); color:#fff; padding:7px 12px; border-radius:999px; text-decoration:none; border:1px solid rgba(255,255,255,.22); transition:all .2s; }
.ec-jobsearch .ec-chip:hover { background:rgba(255,255,255,.22); transform: translateY(-1px); }
.ec-jobsearch .ec-adv { color:#fff; text-decoration:none; font-weight:800; display:inline-flex; align-items:center; gap:8px; padding:8px 10px; border-radius:12px; background: rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.18); }
.ec-jobsearch .ec-adv:hover { background:rgba(255,255,255,.22); }
.ec-jobsearch .ec-adv::before { content:"⚙"; opacity:.9; }

.ec-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Hero với hình minh họa (refine typography) */
.ec-slide-inner { display:grid; grid-template-columns: 1.1fr .9fr; gap:32px; align-items:center; }
.ec-slide h1 { font-size:42px; font-weight:700; margin:.2rem 0 .8rem; color:#0f172a; letter-spacing:-.02em; }
.ec-slide p { color:#475569; margin:0 0 1.5rem; font-size:18px; line-height:1.6; max-width:42ch; }
.ec-slide img, .ec-slide svg { width:100%; max-width:520px; border-radius:16px; box-shadow: 0 12px 40px rgba(2,6,23,.12); }

/* Service cards với hình minh họa */
.ec-service-card { background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:24px; box-shadow: 0 4px 16px rgba(2,6,23,.06); transition:transform .2s, box-shadow .2s; }
.ec-service-card:hover { transform:translateY(-4px); box-shadow: 0 8px 24px rgba(2,6,23,.12); }
.ec-service-card img, .ec-service-card svg { width:100%; max-width:200px; height:auto; margin:0 auto 16px; display:block; }
.ec-service-card h3 { font-size:20px; font-weight:700; margin:0 0 8px; color:#0f172a; }
.ec-service-card p { color:#64748b; margin:0; line-height:1.6; }

/* Companies grid */
.ec-companies { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:20px; }
.ec-company-card { background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:20px; text-align:center; transition:all .2s; }
.ec-company-card:hover { border-color:#4f46e5; box-shadow: 0 4px 12px rgba(79,70,229,.1); }
.ec-company-logo { width:76px; height:76px; margin:0 auto 12px; border-radius:16px; background:#fff; border:1px solid #e5e7eb; display:flex; align-items:center; justify-content:center; overflow:hidden; box-shadow: 0 8px 20px rgba(2,6,23,.06); }
.ec-company-logo img { width:100%; height:100%; object-fit:contain; padding:10px; background:#fff; }
.ec-company-card h4 { font-size:16px; font-weight:600; margin:0 0 4px; }
.ec-company-card .ec-muted { font-size:14px; }

/* Featured jobs (custom cards) */
.ec-jobcards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.ec-jobcard { background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:18px; box-shadow: 0 10px 30px rgba(2,6,23,.06); transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.ec-jobcard:hover { transform: translateY(-2px); border-color:#c7d2fe; box-shadow: 0 18px 46px rgba(2,6,23,.10); }
.ec-jobcard-top { display:flex; gap:12px; align-items:center; }
.ec-jobcard-head { flex: 1; min-width: 0; }
.ec-jobcard-logo { width:56px; height:56px; border-radius:14px; background:#fff; border:1px solid #e5e7eb; display:flex; align-items:center; justify-content:center; overflow:hidden; flex:0 0 auto; }
.ec-jobcard-logo img { width:100%; height:100%; object-fit:contain; padding:8px; }
.ec-jobcard-title { font-size:16px; font-weight:800; margin:0 0 6px; line-height:1.25; }
.ec-jobcard-title a { color:#0b1324; text-decoration:none; }
.ec-jobcard-title a:hover { text-decoration:underline; text-underline-offset:3px; }
.ec-jobcard-sub { display:flex; flex-wrap:wrap; gap:8px; }
.ec-pill { display:inline-flex; align-items:center; padding:6px 10px; border-radius:999px; background:#eef2ff; color:#3730a3; font-weight:700; font-size:12px; border:1px solid rgba(199,210,254,.7); }
.ec-pill--muted { background:#f1f5f9; color:#334155; border-color:#e2e8f0; }
.ec-pill--type { background:rgba(16,185,129,.10); color:#047857; border-color:rgba(16,185,129,.25); }
.ec-jobcard-excerpt { margin:12px 0 14px; color:#475569; font-size:14px; min-height: 42px; }
.ec-jobcard-actions { display:flex; gap:10px; align-items:center; }
.ec-jobcard-actions .ec-btn { flex:1; text-align:center; }
.ec-jobcard--empty { grid-column: 1 / -1; text-align:center; }

/* Testimonials */
.ec-testimonials { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:20px; }
.ec-testimonial { background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:24px; }
.ec-testimonial p { color:#475569; font-style:italic; margin:0 0 16px; line-height:1.6; }
.ec-testimonial-author { display:flex; align-items:center; gap:12px; }
.ec-testimonial-author img { width:48px; height:48px; border-radius:50%; }
.ec-testimonial-author-info h4 { font-size:16px; font-weight:600; margin:0; }
.ec-testimonial-author-info p { font-size:14px; color:#64748b; margin:0; }

/* Stats section */
.ec-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:24px; text-align:center; }
.ec-stat { }
.ec-stat-number { font-size:48px; font-weight:700; color:#4f46e5; margin:0 0 8px; }
.ec-stat-label { font-size:16px; color:#64748b; }

/* CTA section */
.ec-cta { background:linear-gradient(135deg,#4f46e5,#7c3aed); color:#fff; padding:48px 24px; border-radius:16px; text-align:center; }
.ec-cta h2 { color:#fff; margin:0 0 16px; }
.ec-cta p { color:rgba(255,255,255,.9); margin:0 0 24px; font-size:18px; }
.ec-cta .ec-btn { background:#fff; color:#4f46e5; padding:12px 24px; font-size:16px; }

/* Section spacing */
.ec-section { padding: 64px 0; }
.ec-section h2 { font-size:36px; font-weight:700; margin:0 0 32px; text-align:center; color:#0f172a; }
.ec-section-subtitle { text-align:center; color:#64748b; font-size:18px; margin:0 0 48px; max-width:600px; margin-left:auto; margin-right:auto; }

/* EPIK-inspired sections */
.ec-epik-hero { padding: 42px 0 18px; background: linear-gradient(180deg,#eef2ff,#ffffff 55%); border-bottom: 1px solid #e5e7eb; }
.ec-epik-hero-inner { display:grid; grid-template-columns: 1.4fr .6fr; gap:20px; align-items:stretch; }
.ec-epik-kicker { font-weight:800; color:#334155; letter-spacing:.02em; }
.ec-epik-hero-copy h1 { font-size:44px; margin:10px 0 10px; letter-spacing:-.02em; }
.ec-epik-hero-copy p { color:#475569; font-size:18px; line-height:1.7; margin:0 0 14px; max-width:60ch; }
.ec-epik-hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin: 10px 0 10px; }
.ec-epik-hero-note { color:#64748b; font-size:14px; }
.ec-epik-hero-card { background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:16px; box-shadow: 0 14px 40px rgba(2,6,23,.08); }
.ec-epik-hero-card-title { font-weight:900; color:#0b1324; margin-bottom:10px; }
.ec-epik-hero-card-links { display:grid; gap:10px; }
.ec-epik-hero-card-links a { padding:10px 12px; border-radius:12px; border:1px solid #e2e8f0; background:#f8fafc; text-decoration:none; color:#0f172a; font-weight:700; }
.ec-epik-hero-card-links a:hover { border-color:#c7d2fe; background:#eef2ff; }

.ec-epik-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin-bottom: 14px; }
.ec-epik-section-head h2 { margin:0; text-align:left; }
.ec-epik-more { color:#2563eb; font-weight:800; text-decoration:none; }
.ec-epik-more:hover { text-decoration:underline; text-underline-offset:3px; }
.ec-epik-news { background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:14px 16px; }
.ec-epik-news-list { list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.ec-epik-news-item { display:flex; gap:12px; align-items:baseline; }
.ec-epik-news-date { font-weight:900; color:#0f172a; opacity:.55; font-size:13px; min-width:92px; }
.ec-epik-news-link { color:#0f172a; font-weight:800; text-decoration:none; }
.ec-epik-news-link:hover { text-decoration:underline; text-underline-offset:3px; }

.ec-epik-cards { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:16px; }
.ec-epik-card { display:block; border:1px solid #e5e7eb; border-radius:16px; padding:18px; background:#fff; text-decoration:none; color:#0f172a; box-shadow: 0 12px 34px rgba(2,6,23,.06); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.ec-epik-card:hover { transform: translateY(-2px); border-color:#c7d2fe; box-shadow: 0 18px 46px rgba(2,6,23,.10); }
.ec-epik-card-title { font-weight:900; font-size:18px; margin-bottom:6px; }
.ec-epik-card-desc { color:#475569; font-weight:600; }
.ec-epik-card-cta { margin-top:10px; color:#2563eb; font-weight:900; }

.ec-epik-sns { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.ec-epik-sns-links { display:flex; gap:10px; flex-wrap:wrap; }
.ec-epik-sns-btn { display:inline-flex; align-items:center; justify-content:center; padding:10px 14px; border-radius:12px; border:1px solid rgba(148,163,184,.25); background:#fff; color:#0b1324; font-weight:900; text-decoration:none; }
.ec-epik-sns-btn:hover { border-color:#c7d2fe; background:#eef2ff; }

/* Services ecosystem */
.ec-ecosystem { display:grid; grid-template-columns: 1fr; gap:16px; }
.ec-ecosystem-card { background:#fff; border:1px solid #e5e7eb; border-radius:18px; padding:18px; box-shadow: 0 14px 40px rgba(2,6,23,.07); }
.ec-ecosystem-card--core { border-color: rgba(37,99,235,.25); }
.ec-ecosystem-top { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px; }
.ec-ecosystem-badge { display:inline-flex; padding:6px 10px; border-radius:999px; font-weight:900; font-size:12px; background: rgba(37,99,235,.12); color:#1d4ed8; border:1px solid rgba(37,99,235,.22); }
.ec-ecosystem-title { font-weight:900; letter-spacing:.02em; color:#0b1324; }
.ec-ecosystem-grid { display:grid; grid-template-columns: 1fr 1fr; gap:16px; }
.ec-ecosystem-block { border:1px solid #e5e7eb; border-radius:16px; padding:14px; background:#f8fafc; }
.ec-ecosystem-label { font-weight:900; margin-bottom:8px; color:#0b1324; }
.ec-ecosystem-block ul { margin:0; padding-left:18px; color:#334155; }
.ec-ecosystem-actions { display:flex; gap:12px; margin-top:14px; flex-wrap:wrap; }

.ec-va-grid { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:16px; }
.ec-va-card { background:#fff; border:1px solid #e5e7eb; border-radius:18px; padding:18px; box-shadow: 0 14px 40px rgba(2,6,23,.06); }
.ec-va-head { display:flex; gap:12px; align-items:flex-start; margin-bottom:10px; }
.ec-va-badge { width:34px; height:34px; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; font-weight:900; background:linear-gradient(135deg,#4f46e5,#2563eb); color:#fff; flex:0 0 auto; }
.ec-va-title { font-weight:900; font-size:18px; color:#0b1324; }
.ec-va-list { margin:10px 0 10px; padding-left:18px; color:#334155; }
.ec-va-actions { display:flex; gap:10px; margin-top:12px; }
.ec-va-actions .ec-btn { flex:1; text-align:center; }
.ec-va-split { display:grid; grid-template-columns: 1fr 1fr; gap:12px; margin-top:10px; }
.ec-va-subcard { border:1px solid #e5e7eb; border-radius:16px; padding:12px; background:#f8fafc; }
.ec-va-subtitle { font-weight:900; color:#0b1324; margin-bottom:8px; }

/* TeachAway-inspired layout (refined hero) */
.ec-ta-hero { padding: 44px 0 18px; background: radial-gradient(1100px 520px at 18% 8%, rgba(14,165,233,.20), transparent 58%), radial-gradient(900px 520px at 88% 0%, rgba(79,70,229,.18), transparent 55%), linear-gradient(180deg,#ffffff,#f8fafc 70%); border-bottom: 1px solid #e5e7eb; }
.ec-ta-hero-inner { display:grid; grid-template-columns: 1.05fr .95fr; gap:26px; align-items:center; }
.ec-ta-eyebrow { font-weight:900; letter-spacing:.02em; color:#334155; }
.ec-ta-hero-copy h1 { font-size:46px; margin:10px 0 10px; letter-spacing:-.03em; }
.ec-ta-hero-copy p { color:#475569; font-size:18px; line-height:1.7; margin:0 0 14px; max-width:62ch; }
.ec-ta-hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin: 10px 0 10px; }
.ec-ta-hero-bullets { display:flex; gap:10px; flex-wrap:wrap; margin-top:8px; }
.ec-ta-hero-media { justify-self:end; }
.ec-ta-hero-media img { width:min(560px, 100%); height:auto; border-radius:22px; border:1px solid rgba(148,163,184,.28); box-shadow: 0 22px 70px rgba(2,6,23,.14); background:#fff; }
.ec-ta-hero-inline { width:min(560px, 100%); border-radius:22px; border:1px solid rgba(148,163,184,.28); box-shadow: 0 22px 70px rgba(2,6,23,.14); background:#fff; overflow:hidden; }
.ec-ta-hero-inline svg { display:block; width:100%; height:auto; }

@media (max-width: 980px) {
  .ec-ta-hero { padding: 34px 0 12px; }
  .ec-ta-hero-copy h1 { font-size:34px; }
  .ec-ta-hero-media { justify-self:stretch; }
  .ec-ta-hero-media img { width:100%; }
}

.ec-ta-paths { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:16px; }
.ec-ta-path { display:block; text-decoration:none; color:#0f172a; border:1px solid #e5e7eb; border-radius:18px; padding:18px; background:#fff; box-shadow: 0 14px 40px rgba(2,6,23,.06); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.ec-ta-path:hover { transform: translateY(-2px); border-color:#c7d2fe; box-shadow: 0 18px 46px rgba(2,6,23,.10); }
.ec-ta-path-title { font-weight:900; font-size:18px; margin-bottom:6px; }
.ec-ta-path-desc { color:#475569; font-weight:600; }
.ec-ta-path-cta { margin-top:10px; color:#2563eb; font-weight:900; }

.ec-ta-steps { display:grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap:14px; }
.ec-ta-step { border:1px solid #e5e7eb; border-radius:18px; background:#fff; padding:16px; box-shadow: 0 14px 40px rgba(2,6,23,.06); }
.ec-ta-step-num { width:34px; height:34px; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; font-weight:900; background:linear-gradient(135deg,#4f46e5,#2563eb); color:#fff; margin-bottom:10px; }
.ec-ta-step-title { font-weight:900; margin-bottom:6px; }
.ec-ta-step-desc { color:#475569; font-weight:600; }

.ec-ta-partners { display:grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap:14px; align-items:center; }
.ec-ta-partner { border:1px solid #e5e7eb; border-radius:18px; background:#fff; padding:14px; display:flex; align-items:center; justify-content:center; box-shadow: 0 12px 34px rgba(2,6,23,.06); }
.ec-ta-partner img { width:72px; height:72px; object-fit:contain; }

.ec-ta-posts { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:16px; }
.ec-ta-post { border:1px solid #e5e7eb; border-radius:18px; background:#fff; padding:18px; box-shadow: 0 14px 40px rgba(2,6,23,.06); }
.ec-ta-post-meta { color:#64748b; font-weight:800; font-size:13px; }
.ec-ta-post-title { margin:8px 0 8px; font-size:18px; font-weight:900; line-height:1.25; }
.ec-ta-post-title a { color:#0b1324; text-decoration:none; }
.ec-ta-post-title a:hover { text-decoration:underline; text-underline-offset:3px; }
.ec-ta-post-excerpt { color:#475569; font-weight:600; margin:0; }

@media (max-width: 980px) {
  .ec-slide-inner { grid-template-columns:1fr; }
  .ec-cards3 { grid-template-columns:1fr; }
  .ec-teachers { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ec-jobsearch .ec-jobsearch-form { grid-template-columns:1fr; }
  .ec-slide h1 { font-size:32px; }
  .ec-section { padding: 48px 0; }
  .ec-section h2 { font-size:28px; }
  .ec-jobcards { grid-template-columns:1fr; }
  .ec-epik-hero-inner { grid-template-columns: 1fr; }
  .ec-epik-cards { grid-template-columns: 1fr; }
  .ec-epik-sns { flex-direction:column; align-items:flex-start; }
  .ec-ecosystem-grid { grid-template-columns: 1fr; }
  .ec-va-grid { grid-template-columns: 1fr; }
  .ec-va-split { grid-template-columns: 1fr; }
  .ec-ta-hero-inner { grid-template-columns: 1fr; }
  .ec-ta-paths { grid-template-columns: 1fr; }
  .ec-ta-steps { grid-template-columns: 1fr; }
  .ec-ta-partners { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ec-ta-posts { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .ec-brand { padding:5px 8px; border-radius:12px; }
  .ec-brand img { height:40px; }
  .ec-footer-top { grid-template-columns: 1fr; }
  .ec-footer-bottom { justify-content:flex-start; }
}

/* =========================
   TeachAway-inspired Job Board (WP Job Manager)
   ========================= */
.ec-jobboard { border-bottom: none; }
.ec-jobboard-hero { padding: 10px 0 22px; }
.ec-jobboard-kicker { font-weight: 800; color:#475569; letter-spacing:.02em; text-transform: none; }
.ec-jobboard-title { margin: 10px 0 10px; font-size: 44px; font-weight: 900; letter-spacing: -.03em; }
.ec-jobboard-sub { margin: 0 0 14px; color:#475569; font-weight: 600; max-width: 72ch; }
.ec-jobboard-chips { display:flex; flex-wrap:wrap; gap:10px; }
.ec-jobboard-chips .ec-chip { display:inline-flex; align-items:center; padding:8px 12px; border-radius:999px; text-decoration:none; font-weight:800; font-size:13px; line-height:1; }
.ec-chip--light { background: #f1f5f9; color:#0f172a; border:1px solid #e2e8f0; }
.ec-chip--light:hover { background:#e2e8f0; }

.ec-jobboard-shell { display:grid; grid-template-columns: 320px 1fr; gap: 18px; align-items:start; }

/* Filters (left) */
.ec-jobboard-shell .job_filters.ec-jm-filters { background:#fff; border:1px solid #e5e7eb; border-radius:18px; padding:16px; box-shadow: 0 12px 36px rgba(2,6,23,.06); position: sticky; top: 88px; }
.ec-jm-filters__head { margin-bottom: 10px; }
.ec-jm-filters__title { font-weight: 900; font-size: 16px; }
.ec-jm-filters__hint { color:#64748b; font-weight: 600; font-size: 13px; margin-top: 4px; }
.ec-jobboard-shell .job_filters label { display:block; font-weight: 800; font-size: 13px; color:#0f172a; margin: 10px 0 6px; }
.ec-jobboard-shell .job_filters input[type="text"],
.ec-jobboard-shell .job_filters select { width:100%; border:1px solid #e5e7eb; background:#fff; border-radius:14px; padding:12px 12px; font-weight: 600; }
.ec-jobboard-shell .job_filters .search_remote_position { margin-top: 10px; }
.ec-jobboard-shell .job_filters .search_remote_position input { margin-right: 8px; }
.ec-jobboard-shell .job_filters .search_submit input[type="submit"] { width:100%; margin-top: 12px; border-radius:14px; padding:12px 14px; background: linear-gradient(135deg,#4f46e5,#2563eb); color:#fff; border:1px solid rgba(255,255,255,.0); font-weight: 900; cursor:pointer; }
.ec-jobboard-shell .job_filters .search_submit input[type="submit"]:hover { opacity:.95; }

/* Job type checkboxes (remove default bullets) */
.ec-jobboard-shell .job_types { margin: 12px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.ec-jobboard-shell .job_types li { list-style: none; margin: 0; padding: 0; }
.ec-jobboard-shell .job_types label { display:flex; align-items:center; gap: 10px; margin:0; font-weight:800; }
.ec-jobboard-shell .job_types input { width: 18px; height: 18px; }

/* Results (right) */
.ec-jobboard-shell .job_listings { background: transparent; border: 0; }
.ec-jobboard-shell ul.job_listings { list-style:none; margin:0; padding:0; display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.ec-jobboard-shell ul.job_listings .job_listing { margin:0; padding:0; border:none; background: transparent; }
.ec-jm-card__link { display:flex; gap: 14px; border:1px solid #e5e7eb; background:#fff; border-radius:18px; padding:14px; text-decoration:none; box-shadow: 0 12px 34px rgba(2,6,23,.06); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.ec-jm-card__link:hover { transform: translateY(-2px); border-color:#c7d2fe; box-shadow: 0 18px 52px rgba(2,6,23,.10); }
.ec-jm-card__logo { width: 56px; height: 56px; border-radius: 14px; border:1px solid #e5e7eb; background: #f8fafc; display:flex; align-items:center; justify-content:center; overflow:hidden; flex: 0 0 56px; }
.ec-jm-card__logo img { width: 100%; height: 100%; object-fit: contain; padding: 8px; }
.ec-jm-card__body { min-width:0; flex:1; }
.ec-jm-card__title { margin: 2px 0 8px; font-size: 17px; font-weight: 900; line-height: 1.25; color:#0b1324; }
.ec-jm-card__meta { display:flex; flex-wrap:wrap; gap: 8px; margin-bottom: 8px; }
.ec-jm-card__tags { display:flex; flex-wrap:wrap; gap: 8px; }
.ec-jm-card__foot { margin-top: 10px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.ec-jm-card__cta { font-weight: 900; color:#2563eb; }

.ec-jobboard-adminhint { margin-top: 16px; }
.ec-jobboard-adminhint a { font-weight: 900; text-decoration: none; }
.ec-jobboard-adminhint a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Pagination */
.ec-jobboard-shell .job-manager-pagination { grid-column: 1 / -1; }
.ec-jobboard-shell .job-manager-pagination ul { list-style:none; display:flex; gap:8px; justify-content:center; padding: 16px 0 0; margin:0; }
.ec-jobboard-shell .job-manager-pagination a,
.ec-jobboard-shell .job-manager-pagination span { display:inline-flex; align-items:center; justify-content:center; min-width: 38px; height: 38px; border-radius: 12px; border:1px solid #e5e7eb; background:#fff; color:#0f172a; text-decoration:none; font-weight: 800; }
.ec-jobboard-shell .job-manager-pagination .current { background:#4f46e5; border-color:#4f46e5; color:#fff; }

@media (max-width: 980px) {
  .ec-jobboard-title { font-size: 34px; }
  .ec-jobboard-shell { grid-template-columns: 1fr; }
  .ec-jobboard-shell .job_filters.ec-jm-filters { position: relative; top: 0; }
  .ec-jobboard-shell ul.job_listings { grid-template-columns: 1fr; }
}
