/* 留学帮 学生端样式（基于 ../assets/common.css） */
.wrap { max-width: 1200px; margin: 0 auto; padding: 0 16px; }
main.wrap { padding-bottom: 40px; min-height: 70vh; }
.mt8 { margin-top: 8px; } .mt16 { margin-top: 16px; }
.block { display: flex; width: 100%; justify-content: center; margin-top: 8px; }
textarea.block { display: block; }
.bad { color: var(--bad); } .ok { color: var(--ok); } .warn { color: var(--warn); } .brand { color: var(--brand); }
.tr { text-align: right; }

/* 顶栏 */
.topnav { background: #fff; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 50; }
.topnav .wrap { height: 60px; }
.logo { display: flex; align-items: center; gap: 8px; font-size: 20px; font-weight: 700; color: var(--ink); }
.logo-mark { width: 32px; height: 32px; border-radius: 9px; background: linear-gradient(135deg, var(--brand), #6a8dff); color: #fff; display: grid; place-items: center; font-size: 16px; }
#nav { display: flex; gap: 4px; overflow-x: auto; }
#nav a { color: var(--ink-2); padding: 8px 12px; border-radius: 8px; white-space: nowrap; }
#nav a:hover { color: var(--brand); background: var(--brand-l); }
#nav a.on { color: var(--brand); font-weight: 600; background: var(--brand-l); }
.sitefoot { border-top: 1px solid var(--line); background: #fff; color: var(--ink-3); font-size: 12px; padding: 18px 0; text-align: center; }

.crumb { color: var(--ink-3); font-size: 12px; margin: 16px 0 12px; }
.crumb a { color: var(--ink-2); }

/* hero */
.hero { margin-top: 20px; border-radius: 16px; padding: 44px 40px 28px; color: #fff; position: relative; overflow: hidden;
  background: radial-gradient(circle at 85% 10%, rgba(255,255,255,.22), transparent 40%), linear-gradient(120deg, #1546c7 0%, #1e5eff 45%, #6a5cff 100%); }
.hero::after { content: ''; position: absolute; right: -60px; bottom: -80px; width: 280px; height: 280px; border-radius: 50%; background: rgba(255,255,255,.08); }
.hero h1 { font-size: 32px; } .hero p { opacity: .85; margin: 0 0 20px; }
.search { display: flex; gap: 8px; max-width: 720px; position: relative; z-index: 1; }
.search input { flex: 1; padding: 13px 16px; font-size: 15px; border: 0; border-radius: 10px; }
.search .btn { padding: 0 26px; font-size: 15px; border-radius: 10px; }
.hero .search .btn { background: #ffb020; border-color: #ffb020; color: #3a2600; font-weight: 600; }
.search.inline { margin-bottom: 16px; } .search.inline input { border: 1px solid var(--line); }
.cats { margin-top: 20px; display: grid; gap: 8px; position: relative; z-index: 1; }
.cats b { display: inline-block; width: 42px; opacity: .7; font-weight: 500; }
.cats a { color: #fff; padding: 3px 12px; margin: 2px 4px 2px 0; border-radius: 99px; background: rgba(255,255,255,.14); display: inline-block; font-size: 13px; }
.cats a:hover { background: rgba(255,255,255,.3); }

/* 轮播 */
.carousel { position: relative; height: 150px; margin-top: 16px; border-radius: 14px; overflow: hidden; }
.slide { position: absolute; inset: 0; padding: 30px 36px; color: #fff; opacity: 0; transition: opacity .6s; cursor: pointer;
  background-image: linear-gradient(90deg, rgba(0,0,0,.18), transparent 70%) !important; }
.slide.on { opacity: 1; z-index: 1; }
.slide h2 { font-size: 24px; } .slide p { opacity: .85; margin: 0; }
.ad-badge { position: absolute; right: 12px; top: 10px; font-size: 11px; background: rgba(0,0,0,.35); padding: 1px 8px; border-radius: 4px; }
.dots { position: absolute; z-index: 2; bottom: 12px; left: 36px; display: flex; gap: 6px; }
.dots i { width: 8px; height: 8px; border-radius: 99px; background: rgba(255,255,255,.5); cursor: pointer; transition: .3s; }
.dots i.on { width: 22px; background: #fff; }

/* 卡片 & 区块 */
.hov { transition: transform .18s, box-shadow .18s, border-color .18s; color: inherit; display: block; }
.hov:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(30, 94, 255, .14); border-color: #c9d6ff; }
.quick { margin-top: 16px; }
.quick .card { display: flex; flex-direction: column; gap: 2px; }
.qi { font-size: 26px; }
.sec { margin-top: 28px; }
.sec-h { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 12px; }
.sec-h h2, .sec-h h3 { margin: 0; }
.pcard h4, .mcard h4 { margin: 8px 0 2px; font-size: 16px; }
.price { color: #f04a00; font-weight: 700; font-size: 16px; } .price.big { font-size: 30px; }
.score { background: linear-gradient(135deg, #ffb020, #ff7a00); color: #fff; font-weight: 700; padding: 1px 9px; border-radius: 6px; }
.clamp { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 8px 0 0; font-size: 13px; }
.kpis { display: flex; gap: 8px; margin: 10px 0; }
.kpis > div { flex: 1; background: #f7f9fc; border-radius: 8px; padding: 6px; text-align: center; }
.kpis b { display: block; font-size: 18px; } .kpis span { font-size: 12px; color: var(--ink-3); }
.kpis.side { min-width: 240px; margin: 0; }
.filters label { font-size: 13px; color: var(--ink-2); }

/* 机构 / 项目头部 */
.mhead { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.avatar { width: 68px; height: 68px; border-radius: 16px; background: linear-gradient(135deg, var(--brand), #7b6bff); color: #fff; font-size: 28px; font-weight: 700; display: grid; place-items: center; }
.doc { background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 12px; display: flex; flex-direction: column; gap: 4px; }
.thumb { height: 90px; border-radius: 8px; display: grid; place-items: center; font-size: 30px; background: repeating-linear-gradient(45deg, #f2f5fb, #f2f5fb 10px, #e9eef8 10px, #e9eef8 20px); }
.rv { border-top: 1px dashed var(--line); padding: 10px 0; } .rv:first-of-type { border-top: 0; }
.rv p { margin: 4px 0; }
.reply { background: #f7f9fc; border-radius: 6px; padding: 6px 10px; font-size: 13px; color: var(--ink-2); margin-top: 4px; }
.stars { color: #ffb020; letter-spacing: 1px; } .stars i { color: #dde1ea; font-style: normal; }
.phead { display: flex; gap: 24px; flex-wrap: wrap; }
.phead h1 { font-size: 24px; margin: 12px 0; }
.info { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.info div { background: #f7f9fc; border-radius: 8px; padding: 8px 10px; }
.info span { display: block; font-size: 12px; color: var(--ink-3); }
.buybox { width: 280px; background: linear-gradient(180deg, #fff7f0, #fff); border: 1px solid #ffe2cc; border-radius: 12px; padding: 16px; }
.disclaimer { text-align: center; color: var(--ink-3); font-size: 12px; margin: 28px 0 0; }
.risk-alert { background: var(--bad-l); color: var(--bad); border: 1px solid #f6c9cb; border-radius: 8px; padding: 10px 12px; font-size: 13px; }
.risk-alert .btn { margin-left: 8px; }

