/*
Theme Name: LUS Theme（成達留學設計）
Theme URI: https://levelupstudies.kinsta.cloud/
Description: Level Up Studies 越南留學台灣官網自訂主題 — 由 Cloudflare 靜態站設計移植而來。內容由 WordPress 後台管理（文章/頁面/WooCommerce/TranslatePress 等外掛照常運作）。
Author: Level Up Studies
Version: 0.17.2
Text Domain: lus-theme
*/

:root{
  --navy:#1d2f8f;
  --blue:#00a0e0;
  --blue-d:#0079b8;
  --yellow:#ffd532;
  --ink:#1e293b;
  --muted:#5b6576;
  --bg:#f5f8fc;
  --white:#fff;
  --radius:18px;
  --shadow:0 18px 50px rgba(29,47,143,.12);
  --shadow-sm:0 8px 24px rgba(29,47,143,.10);
  /* ── 版面寬度尺度（單一真實來源，2026-08-07）────────────────────────────
     --w-shell：頁面外殼＝頁首與「展示型」內容（照片牆、卡片格、名冊、據點卡…）。
                頁首/hub/內頁三者共用它 → 左緣互相對齊。
     --w-read ：閱讀欄＝散文、清單、資料表的寬度上限。刻意維持放寬前的 980px，
                所以行長一個字都沒變、可讀性零風險。
     兩者分開的理由：大螢幕要少留白，但文字不能跟著變長。
     ⚠️ 改這兩個值會同時動到三個窗口，改完務必量 1920/1600/1440/1280 四個斷點。 */
  --w-shell:1440px;
  --w-read:980px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
[id]{scroll-margin-top:84px}
body{
  font-family:'Noto Sans TC','Be Vietnam Pro',system-ui,sans-serif;
  color:var(--ink);background:var(--bg);line-height:1.7;overflow-x:hidden;
}
html[lang="vi"] body,html[lang="vi-VN"] body{font-family:'Be Vietnam Pro','Noto Sans TC',system-ui,sans-serif}
/* ⚠️ Elementor／Essential-Addons 全域 kit 會用 inline <style> 把 body 字體蓋成 'Helvetica Neue', Arial；
   在 Apple 裝置上 Helvetica Neue 的越南文變音符不齊→掉字、同句粗細不一（使用者回報「粗粗細細」）。
   故用 !important 強制全站 body 用 Be Vietnam Pro（越南文專用字體、變音符完整），中文 fallback Noto Sans TC。 */
html body{font-family:'Be Vietnam Pro','Noto Sans TC',system-ui,-apple-system,'Segoe UI',sans-serif!important}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.wrap{width:min(var(--w-shell),92%);margin:0 auto}

/* 開站動畫改由 WPCode 片段「開場動畫」(#lus-split-preloader) 負責，主題自己的 .lus-loading 已移除（避免兩層重疊） */

/* 區塊間極細分隔線：#fff 與 #f5f8fc 兩色太接近、界線難辨，加 hairline 讓長頁捲動時段落清楚 */
section{padding:88px 0;border-top:1px solid #e9eef6}
.hero,.hero + section{border-top:0}   /* hero 本身與其後第一區：hero 自帶深色邊界，不需線 */
.eyebrow{display:inline-block;font-weight:700;font-size:.8rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--blue);background:rgba(0,160,224,.1);
  padding:7px 16px;border-radius:999px;margin-bottom:18px}
h2.sec-title{font-size:clamp(1.7rem,3.6vw,2.6rem);font-weight:900;line-height:1.25;color:var(--navy)}
.sec-head{text-align:center;max-width:680px;margin:0 auto 56px}
.sec-head p{color:var(--muted);margin-top:14px;font-size:1.05rem}
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:700;border-radius:999px;
  padding:14px 30px;cursor:pointer;border:none;font-size:1rem;transition:.25s;font-family:inherit;white-space:nowrap}
.btn-primary{background:var(--navy);color:#fff;box-shadow:0 10px 26px rgba(29,47,143,.3)}
.btn-primary:hover{background:#16246e;transform:translateY(-2px)}
.btn-yellow{background:var(--yellow);color:var(--navy)}
.btn-yellow:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(255,213,50,.45)}
.btn-ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.7)}
.btn-ghost:hover{background:#fff;color:var(--navy)}

/* ---------- Header ---------- */
/* 只給網站頁首(#header)，不能用裸 header 選擇器：內文(匯入頁)的 <header> 標籤會被誤釘到視窗頂端 */
/* frosted glass 整列頁首（Stripe/Linear 風）：半透明＋模糊，logo 與選項坐同一表面、與彩色 logo 協調 */
/* 頁首用寬版容器：logo 靠左、語言＋免費諮詢靠右，選單置中、不擠在中間 */
/* 頁首與內容共用 --w-shell → 兩者左右緣切齊（原本頁首 1560、內容 1180，差 380px 看起來像內容浮在中間） */
#header > .wrap.nav{width:min(var(--w-shell),92%)}
#header{position:fixed;top:0;left:0;right:0;z-index:100;transition:.3s;padding:15px 0;
  background:rgba(255,255,255,.9);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);
  border-bottom:1px solid rgba(20,30,80,.07)}
#header.scrolled{background:rgba(255,255,255,.9);box-shadow:0 4px 20px rgba(0,0,0,.06);padding:10px 0}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:12px;flex:none;transition:.3s}
.brand img{height:46px;width:auto}
.brand .bname{font-weight:900;color:var(--navy);font-size:1.05rem;line-height:1.1;white-space:nowrap}
.brand .bname small{display:block;font-size:.62rem;letter-spacing:.05em;color:var(--muted);font-weight:500}
.menu{display:flex;flex:1;justify-content:space-evenly;gap:18px;list-style:none;margin:0 18px}
.menu a{font-weight:600;color:var(--ink);font-size:1.12rem;transition:.2s;position:relative;white-space:nowrap}
.menu a:hover{color:var(--blue)}
.menu li{position:relative}
.has-sub > a::after{content:"";display:inline-block;margin-left:7px;width:7px;height:7px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg) translate(-1px,-3px);transition:.25s}
.has-sub::before{content:"";position:absolute;top:100%;left:0;right:0;height:20px}
.submenu{position:absolute;top:100%;left:-14px;margin-top:16px;min-width:235px;background:#fff;
  border-radius:14px;box-shadow:0 18px 44px rgba(29,47,143,.18);padding:10px;list-style:none;
  opacity:0;visibility:hidden;transform:translateY(10px);transition:.22s;z-index:60}
.menu .submenu a{display:block;color:var(--ink);font-size:.9rem;font-weight:500;
  padding:9px 14px;border-radius:9px;white-space:nowrap}
.menu .submenu a:hover{background:var(--bg);color:var(--blue)}
@media(min-width:1181px){
  .has-sub:hover > .submenu{opacity:1;visibility:visible;transform:translateY(0)}
}
html[lang="vi"] .menu{gap:10px}
html[lang="vi"] .menu a{font-size:1rem}
html[lang="vi"] .nav-cta{padding:9px 14px;font-size:.8rem}
html[lang="vi"] .brand .bname,html[lang="zh-Hant"] .brand .bname{display:none}
html[lang="vi"] .has-sub > a::after{width:6px;height:6px;margin-left:5px}
.cards.cards-4{grid-template-columns:repeat(4,1fr)}
.nav-right{display:flex;align-items:center;gap:14px}
.nav-cta{padding:10px 22px;font-size:.9rem}
.burger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;background:none;border:none;cursor:pointer;padding:10px;min-width:44px;min-height:44px}
.burger span{width:26px;height:3px;background:var(--navy);border-radius:2px;transition:.3s}
#header.scrolled .burger span{background:var(--navy)}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;
  --hero-img:url('assets/hero_tw_students.jpg');
  background:
    linear-gradient(180deg,rgba(8,14,48,.32) 0%,rgba(8,14,48,0) 16%),
    radial-gradient(120% 88% at 20% 62%,rgba(8,14,48,.82) 0%,rgba(8,14,48,.46) 40%,rgba(8,14,48,.10) 64%,rgba(8,14,48,0) 82%),
    var(--hero-img);
  background-size:cover;background-position:center;color:#fff;padding-top:90px;overflow-x:hidden}
.hero h1,.hero .lead,.hero .hero-list,.hero .kicker{text-shadow:0 2px 18px rgba(8,14,48,.45)}
.hero .wrap{position:relative;z-index:2}
.hero-tag{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.15);
  border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(6px);padding:8px 18px;border-radius:999px;
  font-size:.85rem;font-weight:600;margin-bottom:24px}
.hero h1{font-size:clamp(2rem,5vw,3.8rem);font-weight:900;line-height:1.18;max-width:none}
.hero h1 .t2{white-space:nowrap}
/* .t2 在手機改為可斷行（見 ~L806），但整句要斷在詞的邊界；.nb 把不可拆的詞綁成一個單位 */
.hero h1 .nb{white-space:nowrap}
.hero h1 .hl{color:var(--yellow)}
.hero .kicker{font-family:'Poppins',sans-serif;font-weight:800;letter-spacing:.02em;
  font-size:clamp(1rem,2vw,1.4rem);color:var(--yellow);margin-bottom:10px;opacity:.95}
.hero p.lead{font-size:1.15rem;max-width:46ch;margin:22px 0 34px;color:rgba(255,255,255,.92)}
.hero .hero-list{list-style:none;max-width:52ch;margin:24px 0 34px;display:flex;flex-direction:column;gap:14px}
.hero .hero-list li{position:relative;padding-left:26px;font-size:1.1rem;line-height:1.6;color:rgba(255,255,255,.94)}
.hero .hero-list li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;border-radius:50%;
  background:var(--yellow);box-shadow:0 0 0 4px rgba(255,176,46,.25)}
.hero .hero-list li b{color:#fff;font-weight:800}
.hero-btns{display:flex;gap:16px;flex-wrap:wrap}
.scroll-ind{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:2;
  width:26px;height:42px;border:2px solid rgba(255,255,255,.6);border-radius:14px;display:flex;justify-content:center;padding-top:7px}
.scroll-ind::before{content:"";width:4px;height:8px;background:#fff;border-radius:2px;animation:sd 1.6s infinite}
@keyframes sd{0%{transform:translateY(0);opacity:1}100%{transform:translateY(14px);opacity:0}}

/* ---------- AU Hero：字母拼貼(L/U/S)，移植自成達澳洲官網 decoArea(src-aus) ---------- */
.hero.au-deco-hero{background:linear-gradient(160deg,#fef9ef 0%,#fbf3df 38%,#eef3fb 100%);
  color:var(--ink);padding-top:128px;align-items:flex-start}
.au-deco-hero h1,.au-deco-hero .lead,.au-deco-hero .hero-list,.au-deco-hero .kicker{text-shadow:none}
.au-deco-hero .kicker{color:var(--blue-d)}
.au-deco-hero h1{color:var(--navy)}
.au-deco-hero h1 .hl{color:var(--blue-d)}
.au-deco-hero .hero-list li{color:var(--muted)}
.au-deco-hero .hero-list li b{color:var(--navy)}
.au-deco-hero .scroll-ind{border-color:rgba(29,47,143,.3)}
.au-deco-hero .scroll-ind::before{background:var(--navy)}
.au-deco-list{display:flex;align-items:flex-start;justify-content:space-between;
  gap:clamp(10px,3vw,36px);margin-bottom:30px;pointer-events:none;user-select:none}
.au-deco-item{position:relative}
.au-deco-item.l{flex:0 1 25%}
.au-deco-item.u{flex:0 1 37%}
.au-deco-item.s{flex:0 1 32%}
.au-deco-item .letter{opacity:0;transform:translateY(10px);animation:auSlideUp .7s .25s forwards;
  filter:drop-shadow(0 6px 14px rgba(214,204,163,.55))}
.au-deco-item .letter img,.au-deco-item .deco img{width:100%;height:auto;display:block;backface-visibility:hidden}
.au-deco-item .deco{position:absolute;opacity:0}
.au-deco-item.l .kangaroo{width:45%;top:36.5%;left:-6%;animation:auSlideUp .6s 1s forwards}
.au-deco-item.l .deco-box{position:absolute;right:2%;bottom:2%;width:76%;height:42%;overflow:hidden;border-radius:4px}
.au-deco-item.l .deco-box img{opacity:0;transform:translateY(10px);animation:auSlideUp .6s 1.4s forwards}
.au-deco-item.u .letter{animation-delay:.5s}
.au-deco-item.u .deco{opacity:1;animation:auFloat 6s linear infinite}
.au-deco-item.u .deco img{opacity:0;transform:translateY(10px)}
.au-deco-item.u .balloon-1{width:15%;top:8%;left:-4%;animation-delay:.5s}
.au-deco-item.u .balloon-1 img{animation:auSlideUp .5s 1.2s forwards}
.au-deco-item.u .balloon-2{width:5%;top:14%;left:-22%}
.au-deco-item.u .balloon-2 img{animation:auSlideUp .5s 1.6s forwards}
.au-deco-item.u .balloon-3{width:6.6%;top:22.5%;left:-14.5%;animation-delay:1s}
.au-deco-item.u .balloon-3 img{animation:auSlideUp .5s 2s forwards}
.au-deco-item.s .letter{animation-delay:.75s}
.au-deco-item.s .people{width:50%;top:11%;left:18%;animation:auFadeIn .7s 1.2s forwards}
.au-deco-item.s .turtle{width:30%;top:26%;left:1%;animation:auFadeIn .7s 1.6s forwards}
@keyframes auSlideUp{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:translateY(0)}}
@keyframes auFadeIn{0%{opacity:0}100%{opacity:1}}
@keyframes auFloat{0%,100%{transform:translateY(0)}25%{transform:translateY(-5px)}75%{transform:translateY(5px)}}
@media (prefers-reduced-motion:reduce){
  .au-deco-item .letter,.au-deco-item .deco,.au-deco-item .deco img,.au-deco-item .deco-box img{
    animation:none!important;opacity:1!important;transform:none!important}
}
/* 中型螢幕（桌機選單剛消失後，601–1180px）：字母縮小，避免 hero 過高 */
@media(max-width:1180px) and (min-width:601px){
  .au-deco-item.l{flex:0 1 18%}
  .au-deco-item.u{flex:0 1 27%}
  .au-deco-item.s{flex:0 1 23%}
  .hero.au-deco-hero{padding-top:100px}
}
/* 短視窗（常見 1366×768 筆電）：進一步縮小字母，hero 不用滾太多就看完 */
@media(max-height:800px) and (min-width:601px){
  .au-deco-item.l{flex:0 1 15%}
  .au-deco-item.u{flex:0 1 23%}
  .au-deco-item.s{flex:0 1 20%}
  .hero.au-deco-hero{padding-top:88px}
  .au-deco-list{margin-bottom:18px}
}

/* ---------- TW Hero：LUS 字母填台灣 4 大地標（v0.18.10；重用上面 .au-deco-* 字母骨架＋動畫；留澳 hero 不受影響）---------- */
/* L=台北101（整支塔順字幹）／U=阿里山雲海（整片雲填雙柱）／S=中正紀念堂(上)＋日月潭(下)。照片燒進字母剪影、無外部裝飾 SVG */

/* ---------- About ---------- */
.about-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:center}
.about-visual{position:relative}
.about-visual img{border-radius:var(--radius);box-shadow:var(--shadow)}
.about-badge{position:absolute;bottom:-26px;right:-14px;background:var(--white);border-radius:16px;
  padding:18px 24px;box-shadow:var(--shadow);text-align:center}
.about-badge .n{font-size:1.9rem;font-weight:900;color:var(--navy);font-family:'Poppins',sans-serif;line-height:1}
.about-badge .l{font-size:.78rem;color:var(--muted);margin-top:4px}
.about-text h2{margin-bottom:20px}
.about-text p{color:var(--muted);margin-bottom:18px}
.about-points{list-style:none;display:grid;gap:12px;margin-top:24px}
.about-points li{display:flex;gap:12px;align-items:flex-start;font-weight:500}
.about-points .ck{flex:none;width:22px;height:22px;border-radius:50%;background:var(--blue);position:relative;margin-top:3px}
.about-points .ck::after{content:"";position:absolute;left:7.5px;top:4.5px;width:5px;height:9px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.offices{margin-top:26px;font-size:.92rem;color:var(--muted)}
.offices b{color:var(--navy)}

/* ---------- 服務清單（一站式服務 8 項條列）---------- */
.svc-list{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:14px 32px;max-width:760px;margin:0 auto}
.svc-list li{position:relative;padding:14px 18px 14px 48px;background:#fff;border:1px solid #e6ecf6;border-radius:12px;
  font-size:1.05rem;font-weight:600;color:var(--navy);box-shadow:var(--shadow-sm)}
.svc-list li::before{content:"";position:absolute;left:18px;top:50%;width:18px;height:10px;
  border-left:3px solid var(--blue);border-bottom:3px solid var(--blue);transform:translateY(-70%) rotate(-45deg)}

/* ---------- 獎學金「只列名稱」卡（點進去看完整介紹）---------- */
.sch-names .sch-item{display:block}
.sch-tag{color:var(--muted);font-size:.95rem;margin-top:10px;font-weight:600}

/* ---------- 中文班 海報圖牆（自存圖＋連 FB 貼文）---------- */
.cn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px}
.cn-card{display:block;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);
  background:#fff;border:1px solid #e6ecf6;transition:.3s;position:relative}
.cn-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.cn-card img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}
/* 影片卡與「更多」卡：品牌色塊 */
.cn-vid,.cn-more{aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:12px;text-align:center;color:#fff;padding:20px}
.cn-vid{background:linear-gradient(150deg,var(--navy),var(--blue-d))}
.cn-play{width:62px;height:62px;border-radius:50%;background:rgba(255,255,255,.18);display:grid;place-items:center;
  font-size:1.5rem;border:2px solid rgba(255,255,255,.7)}
.cn-vlabel{font-weight:800;font-size:1.05rem}
.cn-more{background:linear-gradient(150deg,#1877f2,#0e5fc0)}
.cn-more-in{font-weight:800;font-size:1.08rem;line-height:1.4}
.cn-more-in small{display:block;font-weight:600;font-size:.85rem;opacity:.9;margin-top:6px}

/* ---------- Services ---------- */
#services{background:linear-gradient(180deg,#fff,#eef4fb)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
/* 服務／TOCFL 卡：去除色塊圖示，改頂部 accent 色條（編輯式、去 AI 感） */
.card{background:#fff;border-radius:var(--radius);padding:30px 28px;box-shadow:var(--shadow-sm);
  transition:.3s;border:1px solid #eef1f7;border-top:3px solid var(--accent,var(--blue));position:relative;overflow:hidden}
.card:hover{transform:translateY(-8px);box-shadow:var(--shadow);border-top-color:var(--accent,var(--blue))}
.card h3{font-size:1.18rem;color:var(--navy);margin-bottom:10px}
.card p{color:var(--muted);font-size:.96rem}

/* ---------- Programs ---------- */
.prog{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.prog-card{border-radius:var(--radius);overflow:hidden;color:#fff;padding:30px 24px;min-height:240px;
  display:flex;flex-direction:column;justify-content:flex-start;position:relative;transition:.3s}
.prog-card:hover{transform:translateY(-8px)}
/* 「出自LUS FB」標籤壓回卡片底部，讓頂端的圖示與標題跨卡對齊 */
.prog-card > .src{margin-top:auto;align-self:flex-start}
.prog-card h3{font-size:1.25rem;margin-bottom:8px}
.prog-card p{font-size:.9rem;opacity:.92}

/* ---------- Scholarships / Schools ---------- */
.sch{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
/* 地區學校＝該區代表大學實景照當背景（取代 emoji 圖示） */
.sch-card{position:relative;z-index:0;border-radius:var(--radius);overflow:hidden;min-height:300px;
  display:flex;flex-direction:column;justify-content:flex-end;color:#fff;box-shadow:var(--shadow-sm);transition:transform .4s,box-shadow .4s}
.sch-card::after{content:"";position:absolute;inset:0;z-index:-2;background-image:var(--img);background-size:cover;background-position:center;transition:transform .6s ease}
.sch-card::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(13,22,60,0) 0%,rgba(13,22,60,.28) 45%,rgba(13,22,60,.9) 100%);transition:background .4s}
a.sch-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
a.sch-card:hover::after{transform:scale(1.06)}
a.sch-card:hover::before{background:linear-gradient(180deg,rgba(13,22,60,.05) 0%,rgba(13,22,60,.4) 45%,rgba(13,22,60,.94) 100%)}
.sch-cap{padding:24px 26px 22px}
a.sch-card h3::after,a.card h3::after,a.prog-card h3::after{content:"→";display:inline-block;margin-left:8px;color:var(--blue);opacity:0;transition:.25s}
a.sch-card h3::after,a.prog-card h3::after{color:var(--yellow)}
a.sch-card:hover h3::after,a.card:hover h3::after,a.prog-card:hover h3::after{opacity:1;transform:translateX(4px)}
/* 內容出處標籤（審閱期用，部署正式站前移除）：藍=對方Kinsta站、綠=LUS澳洲官網、黃=AI建議 */
.src{display:inline-block;font-size:.68rem;font-weight:700;padding:2px 9px;border-radius:999px;margin-left:8px;vertical-align:middle;letter-spacing:.02em;white-space:nowrap}
.src-kinsta{background:#e8f4ff;color:#0b6bb8;border:1px solid #b9ddf7}
.src-aus{background:#e9f9ef;color:#117a3d;border:1px solid #bfe8cd}
.src-ai{background:#fff7df;color:#9a7b00;border:1px dashed #e0c45c}
.src-gov{background:#eef0fb;color:#3142a3;border:1px solid #c5ccf0}
.src-ref{background:#f3eefb;color:#6a3fb0;border:1px solid #ddccf0}
/* 「待填入」占位標籤：自寫示意內容已清空，等公司提供（見 CLAUDE.md 風險清單） */
.tofill{display:inline-block;color:#9a7b00;background:#fff7df;border:1px dashed #e0c45c;border-radius:8px;padding:4px 12px;font-size:.85rem;font-weight:600}
.prog-card .tofill{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.5);color:#fff}
.sch-card h3{color:#fff;font-size:1.32rem;margin-bottom:7px}
.sch-card .desc{color:rgba(255,255,255,.92);font-size:.92rem;line-height:1.6}
.sch-card .cities{color:#ffe08a;font-weight:700;font-size:.84rem;margin-bottom:6px;letter-spacing:.02em}

/* ---------- Scholarships（獎學金：大寫縮寫錨點卡，取代圖示） ---------- */
.sch-item{display:block;background:#fff;border:1px solid #e6ecf6;
  border-left:4px solid var(--accent,var(--blue));border-radius:var(--radius);padding:28px 30px;transition:.3s}
a.sch-item:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:#e6ecf6;border-left-color:var(--accent,var(--blue))}
/* 縮寫與標題同一行（頂部），下方欄位整寬 → 縮寫不再霸佔整條左欄、消除左側空白 */
.sch-head{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.sch-badge{flex:none;font-family:'Poppins',sans-serif;font-weight:800;font-size:1.5rem;line-height:1;
  color:var(--accent,var(--navy));letter-spacing:.01em}
.sch-item h3{color:var(--navy);font-size:1.14rem;margin:0}

/* ---------- Process ---------- */
#process{background:linear-gradient(180deg,#eef4fb,#fff)}
.steps{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;counter-reset:step}
.step{text-align:center;position:relative}
.step .num{width:64px;height:64px;border-radius:50%;background:#fff;border:3px solid var(--blue);
  color:var(--navy);font-weight:900;font-size:1.4rem;font-family:'Poppins';display:grid;place-items:center;margin:0 auto 16px;
  box-shadow:var(--shadow-sm);position:relative;z-index:2}
.step:not(:last-child)::after{content:"";position:absolute;top:32px;left:60%;width:80%;height:3px;
  background:linear-gradient(90deg,var(--blue),rgba(0,160,224,.2));z-index:1}
.step h4{color:var(--navy);font-size:1rem;margin-bottom:4px}
.step p{font-size:.85rem;color:var(--muted)}

/* ---------- FAQ ---------- */
.faq{max-width:820px;margin:0 auto;display:grid;gap:14px}
.faq-item{background:#fff;border-radius:14px;box-shadow:var(--shadow-sm);overflow:hidden;border:1px solid #eef1f7}
.faq-q{width:100%;text-align:left;background:none;border:none;padding:22px 26px;font-size:1.05rem;font-weight:700;
  color:var(--navy);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;font-family:inherit}
.faq-q .pl{flex:none;width:26px;height:26px;position:relative;transition:.3s}
.faq-q .pl::before,.faq-q .pl::after{content:"";position:absolute;background:var(--blue);border-radius:2px}
.faq-q .pl::before{top:50%;left:0;right:0;height:3px;transform:translateY(-50%)}
.faq-q .pl::after{left:50%;top:0;bottom:0;width:3px;transform:translateX(-50%);transition:.3s}
.faq-item.open .pl::after{transform:translateX(-50%) scaleY(0)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease}
.faq-a-inner{padding:0 26px 24px;color:var(--muted)}
.faq-a-inner table{width:100%;border-collapse:collapse;margin-top:6px;font-size:.92rem}
.faq-a-inner th,.faq-a-inner td{border:1px solid #e6ebf3;padding:9px 12px;text-align:left}
.faq-a-inner th{background:var(--bg);color:var(--navy)}
.faq-a-inner ul{margin:8px 0 0 18px}

/* ---------- CTA / Contact ---------- */
.cta{background:linear-gradient(120deg,var(--navy),var(--blue-d));color:#fff;text-align:center;border-radius:26px;
  padding:60px 30px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.cta h2{font-size:clamp(1.6rem,3.4vw,2.4rem);font-weight:900;margin-bottom:14px}
.cta p{max-width:50ch;margin:0 auto 30px;color:rgba(255,255,255,.9)}
/* CTA 費用（留學大學部／華語正規班）：白色玻璃卡，兩欄 */
.cta-fees{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin:0 auto 22px}
.cta-fee{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:16px;
  padding:18px 26px;min-width:240px}
.cta-fee-k{display:block;font-size:.95rem;color:rgba(255,255,255,.85);margin-bottom:6px}
.cta-fee-v{display:block;font-size:1.5rem;font-weight:900;font-family:'Poppins',sans-serif;color:var(--yellow)}
/* 優惠膠囊（去 🎁 emoji，改質感標籤 chip） */
.cta-offer{display:inline-flex;align-items:center;gap:11px;margin:0 auto 26px;max-width:none;
  background:rgba(255,213,50,.14);border:1px solid rgba(255,213,50,.5);color:#fff;
  padding:10px 20px 10px 11px;border-radius:999px;font-weight:600;line-height:1.5;font-size:.95rem;text-align:left}
.cta-offer-tag{flex:none;background:var(--yellow);color:var(--navy);font-weight:800;font-size:.76rem;
  padding:5px 13px;border-radius:999px;letter-spacing:.03em}
.cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.socials{display:flex;gap:14px;justify-content:center;margin-top:30px}
.socials a{width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.15);display:grid;place-items:center;
  transition:.25s;border:1px solid rgba(255,255,255,.25)}
.socials a:hover{background:var(--yellow);transform:translateY(-3px)}
.socials svg{width:22px;height:22px;fill:#fff}
.socials a:hover svg{fill:var(--navy)}

/* ---------- Footer ---------- */
footer{background:#0f1a4d;color:rgba(255,255,255,.75);padding:54px 0 28px;font-size:.92rem}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;margin-bottom:36px}
.foot-grid h4{color:#fff;margin-bottom:16px;font-size:1rem}
.foot-grid img{height:44px;width:118px;object-fit:contain;display:block}
.foot-logo-card{display:inline-block;background:#fff;border-radius:12px;padding:10px 16px;margin-bottom:14px}
.foot-nap{margin-top:16px;font-size:.85rem;line-height:1.6;color:rgba(255,255,255,.72)}
.foot-nap b{display:block;color:#fff;font-weight:700;font-size:.82rem;margin-bottom:2px}
.team-cta{margin-top:34px;text-align:center}
.foot-grid ul{list-style:none;display:grid;gap:9px}
.foot-grid a:hover{color:var(--yellow)}
.foot-nap a{color:var(--yellow);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color .2s}
.foot-nap a:hover{color:#fff}
.foot-bottom{border-top:1px solid rgba(255,255,255,.15);padding-top:22px;text-align:center;font-size:.85rem;color:rgba(255,255,255,.55)}

.reveal{opacity:0;transform:translateY(34px);transition:.7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* ---------- Responsive ---------- */
@media(max-width:1180px){
  .menu,.nav-cta{display:none}
  .burger{display:flex}
  /* 頂列防裁切：手機把「國家切換器」移進漢堡選單(見 .m-country)，頂列只剩 logo＋語言＋漢堡，空間充裕、不裁切 */
  #header > .wrap.nav{width:min(var(--w-shell),92%)}
  .brand .bname{display:none}            /* 桌機才顯示品牌文字；手機僅留 logo 圖騰省空間 */
  .brand img{height:38px}
  .nav{gap:10px}
  .nav-right{gap:8px}
  #lusCountry{display:none}              /* 頂列國家鈕手機隱藏，改用漢堡內 .m-country(更清楚) */
  .lus-lang-toggle{padding:7px 12px;font-size:.9rem;gap:6px}
  .burger{flex:none}

  /* 漢堡選單最上方的「國家切換」列：清楚標示，一看就懂在切換留學國家
     用 .menu.open .m-country 提高優先級，確保勝過後面全域的 .m-country{display:none} */
  .menu.open .m-country{display:block;border-bottom:1px solid #f0f3f8;padding:6px 2px 14px}
  .m-country-label{display:block;font-size:1.08rem;font-weight:800;color:var(--navy);margin-bottom:11px;letter-spacing:.01em}
  .m-country-opts{display:flex;flex-direction:column;gap:8px}
  .menu.open .m-country-opts .ctry-opt{display:flex;align-items:center;gap:12px;width:100%;
    padding:11px 14px;border-radius:13px;border:1.5px solid #e4ebf5;background:#fff;color:var(--ink);text-align:left;transition:.18s}
  /* 選中卡白字：加 #header 提高到 ID 等級，蓋過 #header.solid .menu a{color:--ink}（否則標籤被深藍底吃掉） */
  #header .m-country-opts .ctry-opt.is-current{background:var(--navy);border-color:var(--navy)}
  #header .m-country-opts .ctry-opt.is-current,
  #header .m-country-opts .ctry-opt.is-current .ctry-label{color:#fff}
  #header .m-country-opts .ctry-opt.is-current .ctry-sub{color:rgba(255,255,255,.78)}
  #header .m-country-opts .ctry-opt.is-current .ctry-arrow{color:rgba(255,255,255,.6)}
  .menu.open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;
    background:#fff;padding:6px 24px 12px;gap:0;box-shadow:0 12px 24px rgba(0,0,0,.1);
    max-height:calc(100vh - 80px);overflow-y:auto}
  /* 每個父項一條細分隔線，視覺清楚不擁擠 */
  .menu.open > li{border-bottom:1px solid #f0f3f8}
  .menu.open > li:last-child{border-bottom:0}
  /* 整列可點、最小高度 ≥44px（觸控目標研究：≥44px 誤觸率大降） */
  .menu.open a{color:var(--ink);display:block;padding:13px 2px;font-size:1.08rem}
  .has-sub::before{display:none}
  .submenu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;
    margin:0 0 8px;padding:0 0 0 16px;min-width:0;display:none;background:transparent;
    border-left:2px solid #e6ebf3}
  .has-sub.open > .submenu{display:block}
  .submenu li{margin-bottom:0}
  /* 子項也要好點：≥44px、字級略小於父項 */
  .menu .submenu a{padding:11px 2px;font-size:1rem}
  .has-sub.open > a::after{transform:rotate(225deg) translate(-2px,-2px)}
}
/* ---------- Trust（信任區 #why-lus） ---------- */
.trust{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.t-card{background:var(--bg);border:1px solid #e6ecf6;border-radius:var(--radius);padding:32px 28px;transition:.3s}
.t-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-sm);border-color:var(--blue)}
.t-num{display:inline-block;font-family:'Poppins',sans-serif;font-weight:800;font-size:1.45rem;color:var(--blue);
  letter-spacing:.04em;margin-bottom:16px;padding-bottom:11px;position:relative}
.t-num::after{content:"";position:absolute;left:2px;bottom:0;width:26px;height:3px;background:var(--yellow);border-radius:2px}
.t-card h3{font-size:1.12rem;color:var(--navy);margin-bottom:8px;line-height:1.4}
.t-card p{color:var(--muted);font-size:.94rem}
.t-card a{color:var(--blue-d);font-weight:600}

/* 三欄費用表（透明分項：項目／收費方／金額） */
.fee-table-3 th:nth-child(2),.fee-table-3 td:nth-child(2){width:130px;color:var(--muted);font-weight:600}
.fee-table-3 thead th{background:var(--navy);color:#fff;width:auto}

@media(max-width:860px){
  .trust{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){ .trust{grid-template-columns:1fr} }

@media(max-width:980px){
  .cards,.prog,.cards.cards-4{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(3,1fr);gap:30px 18px}
  .step:nth-child(3)::after{display:none}
  .about-grid{grid-template-columns:1fr;gap:50px}
  .sch{grid-template-columns:1fr}
}
@media(max-width:760px){
  section{padding:64px 0}
  .svc-list{grid-template-columns:1fr;max-width:none}
  .hero{background:
    linear-gradient(180deg,rgba(8,14,48,.28) 0%,rgba(8,14,48,.48) 46%,rgba(8,14,48,.66) 100%),
    var(--hero-img);
    background-size:cover;background-position:center}
}
@media(max-width:520px){
  .cards,.prog,.cards.cards-4{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:repeat(2,1fr)}
  .step::after{display:none!important}
}

/* ---------- 最新消息（news 列表 + 單篇）---------- */
.news-wrap{width:min(var(--w-shell),92%);margin:0 auto;padding:138px 0 88px;min-height:70vh}
.news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:28px}
.news-card{display:flex;flex-direction:column;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid #eef1f7;transition:.3s}
.news-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.news-thumb{aspect-ratio:1/1;background:linear-gradient(135deg,var(--navy),var(--blue));display:grid;place-items:center;overflow:hidden}
.news-thumb img{width:100%;height:100%;object-fit:cover}
.news-thumb .ph{font-family:'Poppins',sans-serif;font-weight:800;font-size:2rem;color:rgba(255,255,255,.92);letter-spacing:2px}
.news-cardbody{padding:18px 20px 22px}
.news-date{font-size:.8rem;color:var(--muted);font-weight:600}
.news-cardtitle{font-size:1.04rem;line-height:1.45;color:var(--ink);margin:.4em 0 0;font-weight:700}
.news-card:hover .news-cardtitle{color:var(--navy)}
/* 地區學校列表（template-region.php）：照片在上 16:9、校名在下；hover 圖片輕微放大 */
.news-grid.is-region .news-thumb{aspect-ratio:16/9}
.news-grid.is-region .news-thumb img{transition:transform .45s ease}
.news-grid.is-region .news-card:hover .news-thumb img{transform:scale(1.05)}
.news-pagination{text-align:center;margin-top:46px}
.news-pagination .page-numbers{display:inline-block;padding:8px 14px;margin:0 4px;border-radius:10px;background:#fff;border:1px solid #e6edf6;color:var(--navy);font-weight:700}
.news-pagination .page-numbers.current{background:var(--navy);color:#fff}
.single-wrap{width:min(820px,92%);margin:0 auto;padding:128px 0 80px}
.single-date{color:var(--blue);font-weight:700;font-size:.85rem;letter-spacing:.04em}
.single-title{font-size:clamp(1.6rem,3.4vw,2.4rem);font-weight:900;color:var(--navy);line-height:1.25;margin:.3em 0 1em}
.single-body{color:var(--ink);font-size:1.05rem}
.single-body p{margin:0 0 1em}
.single-body img{border-radius:var(--radius);margin:1em 0}
.single-back{display:inline-block;margin-top:36px;color:var(--blue-d);font-weight:700}

/* ---- 最新消息：分類篩選按鈕 ---- */
.news-filter{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:38px}
.news-filter-btn{display:inline-block;padding:9px 22px;border-radius:999px;background:#fff;
  border:1.5px solid #dde6f2;color:var(--navy);font-weight:700;font-size:.92rem;transition:.25s}
.news-filter-btn:hover{border-color:var(--blue);color:var(--blue-d);transform:translateY(-2px)}
.news-filter-btn.active{background:var(--navy);border-color:var(--navy);color:#fff;
  box-shadow:0 8px 20px rgba(29,47,143,.25)}

/* ---- 通用內頁（page.php，含 Elementor 匯入頁整理） ---- */
.page-wrap{width:min(var(--w-shell),92%);margin:0 auto;padding:128px 0 80px;min-height:60vh}
.page-head{margin-bottom:30px}
.page-title{font-size:clamp(1.7rem,3.6vw,2.5rem);font-weight:900;color:var(--navy);line-height:1.25;margin:.25em 0 0}
.page-body{color:var(--ink);font-size:1.03rem;line-height:1.85}
.page-body h1,.page-body h2,.page-body h3,.page-body h4{color:var(--navy);line-height:1.35;margin:1.4em 0 .55em}
.page-body h2{font-size:1.5rem}
.page-body h3{font-size:1.22rem}
.page-body p{margin:0 0 1em}
/* 縮排用 padding 而非 margin-left：下方閱讀欄要靠 margin-inline:auto 置中，
   若縮排掛在 margin-left 上會被 auto 吃掉、項目符號還會被裁掉。 */
.page-body ul,.page-body ol{margin:0 0 1.2em;padding-left:1.4em}
.page-body li{margin:.3em 0}
.page-body img{max-width:100%;height:auto;border-radius:var(--radius);margin:.6em 0}
.page-body iframe{max-width:100%;border-radius:var(--radius)}
.page-body a{color:var(--blue-d);font-weight:600}
.page-body a:hover{text-decoration:underline}
.page-body table{width:100%;border-collapse:collapse;margin:1.2em 0;background:#fff;
  border-radius:12px;overflow:hidden;box-shadow:var(--shadow-sm);font-size:.97rem}
.page-body th,.page-body td{padding:12px 14px;border:1px solid #e8eef7;text-align:left;vertical-align:top}
.page-body th{background:var(--navy);color:#fff;font-weight:700}
.page-body tr:nth-child(even) td{background:#f7fafd}
/* Elementor 渲染殘骸的中和 */
.page-body .elementor-section,.page-body .e-con,.page-body .e-con-inner{margin:0 0 .5em}
.page-body .elementor-widget-container>*:last-child{margin-bottom:0}
.page-body .elementor-button{display:inline-block;padding:10px 24px;border-radius:999px;
  background:var(--navy);color:#fff!important;font-weight:700;text-decoration:none}
.page-body .elementor-divider{margin:1em 0;border-top:1px solid #e6edf6}

/* ── 內頁閱讀欄（2026-08-07）───────────────────────────────────────────────
   .page-wrap 已放寬到 --w-shell，但「文字」不該跟著變寬。
   做法＝預設把 .page-body 的直接子元素收在 --w-read 並置中。

   ⚠️ 2026-08-19 使用者拍板：「所有區塊都對齊，制式沒關係」。
   原本 .ed-split／.ed-mosaic／.ed-rows 三個展示型區塊 opt-in 吃滿 1440，
   結果同一頁出現兩三個左緣，看起來就是沒對齊。現在這三個都在各自的定義處
   加了 max-width:var(--w-read) 收回同一欄；連橫幅大圖與標題區也一起收。
   下面選擇器的三個 :not() 仍要保留——它們現在的作用是把特定度墊到 (0,4,0)，
   不是真的在放行誰（三個 class 都已在別處自行收窄）。

   ⚠️ 選擇器用三個 :not() 把特定度墊到 (0,4,0)，是為了壓過各區塊自己的
   `.page-body .dp-xxx{margin:24px 0}`(0,2,0)——那些規則會把 margin-left 設回 0、
   讓置中失效。墊高特定度後就與原始碼順序無關，日後新增元件也不會破。 */
.page-body > *:not(.ed-split):not(.ed-mosaic):not(.ed-rows){
  max-width:var(--w-read);margin-left:auto;margin-right:auto;
}
/* 內頁的標題區與底部返回鈕也收進同一條線（2026-08-19）。
   在此之前大標題落在 1440 外殼的左緣、正文卻在閱讀欄，兩者差 172px，
   整頁看起來就是沒對齊。橫幅大圖刻意留在外殼寬，當滿版的視覺入口。
   只套 .au-detail（三個窗口的主題分頁），不動 page.php 的匯入頁與詞彙表——
   那兩種的內文本來就要吃滿寬度，跟著收窄反而會生出新的落差。 */
.au-detail>.page-head,.au-detail>.au-detail-cta{max-width:var(--w-read);margin-left:auto;margin-right:auto}
/* 註 1：要新增「吃滿寬度」的區塊，一定是加進上面那串 :not() 裡，不能另外寫一條
         `.page-body > .xxx{max-width:none}`——那只有 (0,2,0)，會被上面的 (0,4,0) 壓過。
         （已踩過：.sch-city 用獨立規則寫，量出來仍是 980。）
   註 2：.ed-rows 吃滿寬度後的欄寬調整寫在下方 .ed-row 定義旁（同特定度、必須放它後面才蓋得過）。
   註 3：13 校介紹頁的 .sch-city（城市定場照）與 .sch-aside（校景左圖右文）刻意留在閱讀欄——
         那些頁 79% 是散文，照片、圖說、內文共用同一個左緣時整體最像一篇完整文章；
         實測放寬反而讓圖說行變長、且大圖會打斷閱讀節奏。 */
/* 頁首語言切換：世界級網站風格的「地球＋當前語言＋下拉選單」 */
.lus-lang{position:relative;flex:none}
.lus-lang-toggle{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border:1.5px solid rgba(212,220,236,.9);
  border-radius:999px;background:rgba(255,255,255,.55);color:var(--ink);font-weight:700;font-size:1rem;line-height:1;
  cursor:pointer;white-space:nowrap;transition:.2s}
.lus-lang-toggle:hover{border-color:var(--blue);color:var(--blue);background:#fff}
.lus-lang-globe{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;flex:none}
.lus-lang-caret{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.2;flex:none;transition:.25s;opacity:.7}
.lus-lang.open .lus-lang-caret{transform:rotate(180deg)}
.lus-lang-menu{position:absolute;top:calc(100% + 10px);right:0;min-width:170px;background:#fff;border-radius:14px;
  box-shadow:0 18px 44px rgba(29,47,143,.18);padding:8px;list-style:none;margin:0;
  opacity:0;visibility:hidden;transform:translateY(8px);transition:.2s;z-index:120}
.lus-lang.open .lus-lang-menu{opacity:1;visibility:visible;transform:none}
.lus-lang-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-radius:9px;
  color:var(--ink);font-weight:600;font-size:1rem;white-space:nowrap}
.lus-lang-opt:hover{background:var(--bg);color:var(--blue)}
.lus-lang-opt.is-current{background:var(--yellow);color:var(--navy)}
.lus-lang-opt.is-current::after{content:"✓";font-size:.95em}
#header.solid .lus-lang-toggle,#header.scrolled .lus-lang-toggle{border-color:rgba(212,220,236,.9);color:var(--ink);background:#fff}
#header.solid .lus-lang-toggle:hover,#header.scrolled .lus-lang-toggle:hover{color:var(--blue)}
/* 國家切換器（情境式導覽）：沿用 .lus-lang 全套樣式；標籤桌機用完整、手機用短版 */
.lc-short{display:none}
.m-country{display:none}   /* 漢堡選單內的國家切換列，僅手機顯示(見 ≤1180 區塊) */
/* 國旗圖示(SVG，跨平台一致) */
.lus-flag{width:22px;height:15px;border-radius:3px;object-fit:cover;flex:none;box-shadow:0 0 0 1px rgba(0,0,0,.1);vertical-align:middle}
/* 窗口切換器（出發國→目的國・呼應航程主題；標籤用各窗口自身語言） */
.ctry-route{display:inline-flex;align-items:center;gap:6px;flex:none}
.ctry-flag{width:28px;height:19px;border-radius:2px;object-fit:cover;display:block;box-shadow:0 0 0 1px rgba(0,0,0,.12)}
/* 雙旗之間的飛機：細線描邊客機（line-art，有質感；CSS mask 取 stroke 形狀，currentColor 上色，選中態自動變白） */
.ctry-arrow{width:24px;height:24px;flex:none;color:var(--muted);background-color:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 10h4a2 2 0 0 1 0 4h-4l-4 7h-3l2 -7h-4l-2 2h-3l2 -4l-2 -4h3l2 2h4l-2 -7h3z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 10h4a2 2 0 0 1 0 4h-4l-4 7h-3l2 -7h-4l-2 2h-3l2 -4l-2 -4h3l2 2h4l-2 -7h3z'/%3E%3C/svg%3E") center/contain no-repeat}
.ctry-text{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.ctry-label{font-weight:700;white-space:nowrap}
.ctry-sub{font-size:.72rem;color:var(--muted);font-weight:600;white-space:nowrap}
.lus-country .lus-lang-toggle{gap:9px}
.lus-country .lus-lang-menu{min-width:0;width:max-content;max-width:min(320px,92vw)}
.lus-country .lus-lang-opt.ctry-opt{justify-content:flex-start;gap:11px;padding:9px 14px;align-items:center}
.lus-country .lus-lang-opt.ctry-opt:hover:not(.is-current){background:var(--bg)}
.lus-country .lus-lang-opt.ctry-opt.is-current{background:var(--navy);color:#fff}
.lus-country .lus-lang-opt.ctry-opt.is-current::after{content:none}
.lus-country .lus-lang-opt.ctry-opt.is-current .ctry-sub{color:rgba(255,255,255,.72)}
.lus-country .lus-lang-opt.ctry-opt.is-current .ctry-arrow{color:rgba(255,255,255,.6)}
/* 隱藏 TranslatePress 內建的浮動語言切換器（多餘；改用頁首自製的 .lus-lang 下拉） */
.trp-floating-switcher{display:none!important}
/* 留澳細節分頁（template-au-detail.php） */
.au-detail .au-back{display:inline-block;color:var(--blue-d);font-weight:700;margin-bottom:14px}
.au-detail .au-back:hover{color:var(--blue)}
.au-detail .au-lead{color:var(--muted);font-size:1.08rem;margin-top:.5em}
.au-detail-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:44px}
.btn-ghost-navy{background:#fff;border:2px solid var(--navy);color:var(--navy)}
.btn-ghost-navy:hover{background:var(--navy);color:#fff}
/* 統一「回上頁」鈕（每頁內文上＝藍字連結、下＝外框按鈕；皆 data-back 走 history.back） */
.lus-back-top{display:inline-block;color:var(--blue-d);font-weight:700;margin-bottom:18px}
.lus-back-top:hover{color:var(--blue)}
.lus-back-bottom{margin-top:44px}

/* 資料就緒模板：key-value 欄位（獎學金/方案等，等公司填數字就直接套） */
.kv{margin:10px 0 0;display:grid;gap:7px}
.kv-row{display:grid;grid-template-columns:92px 1fr;gap:10px;align-items:start;font-size:.92rem;line-height:1.5}
.kv-k{font-weight:700;color:var(--navy);white-space:nowrap}
.kv-k::after{content:"："}
.kv-v{color:var(--ink)}
.prog-card .kv-k{color:rgba(255,255,255,.9)}.prog-card .kv-v{color:#fff}
/* 費用表骨架 */
.fee-table{width:100%;border-collapse:collapse;margin-top:4px;font-size:.95rem}
.fee-table th,.fee-table td{border:1px solid #e6ebf3;padding:10px 12px;text-align:left;vertical-align:top}
.fee-table th{background:var(--bg);color:var(--navy);font-weight:700;white-space:nowrap;width:140px}
.fee-note{font-size:.84rem;color:var(--muted);margin-top:8px}
/* 非首頁（無深色 hero）：頁首預設實心、深色字，避免白字看不見 */
#header.solid{background:rgba(255,255,255,.97);box-shadow:0 4px 20px rgba(0,0,0,.07);padding:10px 0}
#header.solid .menu a{color:var(--ink)}
#header.solid .menu a:hover{color:var(--blue)}
#header.solid .brand .bname{color:var(--navy)}
#header.solid .brand .bname small{color:var(--muted)}
#header.solid .burger span{background:var(--navy)}
/* 頁首社群圖示：品牌色圓角方塊＋官方標誌（Simple Icons 白色遮罩） */
.nav-social{display:flex;align-items:center;gap:10px}
.soc{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;transition:.2s}
.soc::before{content:"";width:60%;height:60%;background:#fff;
  -webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat}
.soc:hover{transform:translateY(-2px);filter:brightness(1.07)}
.soc-zalo{background:#0068ff;--m:url(assets/social/zalo.svg)}
.soc-ig{background:radial-gradient(circle at 30% 110%,#fdf497 0%,#fd5949 45%,#d6249f 70%,#285aeb 100%);--m:url(assets/social/instagram.svg)}
.soc-msgr{background:radial-gradient(circle at 32% 0%,#00b2ff,#006aff 55%,#7a3cff);--m:url(assets/social/messenger.svg)}
.soc-line{background:#06c755;--m:url(assets/social/line.svg)}
.soc-fb{background:#1877f2;--m:url(assets/social/facebook.svg)}
.menu.open .nav-social{padding-top:6px}

/* 頁尾「追蹤我們」社群清單（深底＋品牌圖示） */
.foot-social{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.foot-social li{margin:0}
.foot-social a{display:inline-flex;align-items:center;gap:11px;color:inherit;text-decoration:none;opacity:.9;transition:opacity .2s}
.foot-social a:hover{opacity:1}
.foot-social .soc{width:30px;height:30px;border-radius:9px;flex-shrink:0}

/* ===== 留澳「為什麼選成達」：兩端的橋（非卡片、完整且大；signature 區） ===== */
.au-why-head{text-align:center;max-width:800px;margin:0 auto 30px}
.au-why-lead{font-size:1.18rem;line-height:1.85;color:#3a4255;margin:14px 0 0}
.au-why-lead b{color:#0f1a4d}
.au-bridge{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;margin:0 auto;max-width:1080px}
.au-end{padding:38px 38px;border-radius:22px}
.au-end-vn{background:#fff6ec}
.au-end-au{background:#eef4fc}
.au-end-tag{display:inline-block;font-weight:800;font-size:.82rem;letter-spacing:.06em;padding:5px 13px;border-radius:999px;margin-bottom:16px}
.au-end-vn .au-end-tag{background:#ffe2c2;color:#b45309}
.au-end-au .au-end-tag{background:#d6e6fa;color:#1d4ed8}
.au-end h3{font-size:1.42rem;color:#0f1a4d;margin:0 0 12px;line-height:1.42}
.au-end p{font-size:1.04rem;line-height:1.85;color:#3a4255;margin:0}
.au-bridge-arc{position:relative;display:flex;align-items:center;justify-content:center;padding:0 20px}
.au-bridge-arc span{display:none}
.au-bridge-arc i{position:absolute;top:20%;bottom:20%;width:2px;background:repeating-linear-gradient(#d3ddea 0 5px,transparent 5px 11px)}
.au-bridge-arc::before{content:"\2708";position:relative;z-index:1;width:48px;height:48px;display:grid;place-items:center;background:#ffd23f;color:#0f1a4d;border-radius:50%;font-size:1.2rem;transform:rotate(90deg);box-shadow:0 8px 18px rgba(255,178,46,.45)}
.au-focus{margin:34px auto 0;max-width:1080px;background:#0f1a4d;border-radius:22px;padding:36px 42px}
.au-focus p{margin:0;font-size:1.1rem;line-height:1.9;color:#dbe3ff}
.au-focus-hl{display:inline;color:#ffd23f;font-size:1.26rem;font-weight:800}
@media(max-width:760px){
  .au-bridge{grid-template-columns:1fr;max-width:520px;gap:6px}
  .au-end{padding:28px 24px}
  .au-bridge-arc{padding:4px 0;min-height:54px}
  .au-bridge-arc i{top:auto;bottom:auto;left:30%;right:30%;width:auto;height:2px;background:repeating-linear-gradient(90deg,#d3ddea 0 5px,transparent 5px 11px)}
  .au-bridge-arc::before{transform:rotate(135deg)}
  .au-focus{padding:28px 24px}
  .au-why-lead{font-size:1.06rem}
}

/* ===== 升學路徑：feature 文案 + 箭頭清單（非卡片） ===== */
.au-paths{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center;max-width:1080px;margin:0 auto}
.au-paths-intro .sec-title{text-align:left;margin:0 0 18px}
.au-paths-intro p{font-size:1.08rem;line-height:1.85;color:#3a4255;margin:0 0 24px;max-width:430px}
.au-paths-list{display:flex;flex-direction:column;border-top:1px solid #e4eaf3}
.au-paths-list a{display:flex;flex-direction:column;gap:3px;padding:18px 44px 18px 4px;border-bottom:1px solid #e4eaf3;text-decoration:none;position:relative;transition:padding .18s,background .18s}
.au-paths-list a::after{content:"\2192";position:absolute;right:14px;top:50%;transform:translateY(-50%);color:#1d2f8f;font-size:1.3rem;opacity:.45;transition:.18s}
.au-paths-list a:hover{background:#f5f8fc;padding-left:14px}
.au-paths-list a:hover::after{opacity:1;right:9px}
.au-paths-list .pl-t{font-size:1.18rem;font-weight:700;color:#0f1a4d}
.au-paths-list .pl-d{font-size:.95rem;color:#6b7a93}

/* ===== 費用生活住宿：橫向三欄目錄（直線分隔，非卡片） ===== */
.au-prep{display:grid;grid-template-columns:repeat(3,1fr);max-width:1040px;margin:0 auto;border:1px solid #e4eaf3;border-radius:18px;overflow:hidden;background:#fff}
.au-prep a{display:flex;flex-direction:column;gap:9px;padding:30px 28px;text-decoration:none;border-left:1px solid #e4eaf3;transition:background .18s}
.au-prep a:first-child{border-left:0}
.au-prep a:hover{background:#f5f8fc}
.au-prep .pp-t{font-size:1.2rem;font-weight:800;color:#0f1a4d;position:relative;padding-bottom:11px}
.au-prep .pp-t::after{content:"";position:absolute;left:0;bottom:0;width:30px;height:3px;background:#ffd23f;border-radius:2px}
.au-prep .pp-d{font-size:.97rem;line-height:1.7;color:#5a6577}

/* ===== 澳洲專欄：雜誌式兩欄（深色面板） ===== */
.au-mag{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:1040px;margin:0 auto}
.au-mag-item{display:block;padding:34px 34px 30px;border-radius:20px;background:linear-gradient(160deg,#16246e,#0f1a4d);color:#fff;text-decoration:none;transition:transform .2s,box-shadow .2s}
.au-mag-item:nth-child(2){background:linear-gradient(160deg,#0a7fb0,#075e84)}
.au-mag-item:hover{transform:translateY(-4px);box-shadow:0 18px 38px rgba(15,26,77,.28)}
.au-mag-item .mag-k{display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.08em;color:#ffd23f;margin-bottom:12px}
.au-mag-item h3{font-size:1.5rem;margin:0 0 12px;color:#fff}
.au-mag-item p{font-size:1.02rem;line-height:1.8;color:#d7e0f5;margin:0 0 18px}
.au-mag-item .mag-go{font-weight:700;color:#fff}
.au-mag-item .mag-go::after{content:" \2192"}

@media(max-width:860px){
  .au-paths{grid-template-columns:1fr;gap:22px;text-align:center}
  .au-paths-intro .sec-title{text-align:center}
  .au-paths-intro p{max-width:none;margin-left:auto;margin-right:auto}
  .au-paths-list{text-align:left}
  .au-prep{grid-template-columns:1fr}
  .au-prep a{border-left:0;border-top:1px solid #e4eaf3}.au-prep a:first-child{border-top:0}
  .au-mag{grid-template-columns:1fr}
}

/* ===== 飛行航線敘事：越南 → 澳洲校園 ===== */
.au-journey{position:relative;overflow:hidden;padding:62px 0 74px;
  background:linear-gradient(180deg,#fff3e6 0%,#fdeee7 20%,#f2f5fb 66%,#e7f0fb 100%)}
.au-journey-intro{text-align:left;max-width:760px;margin:0 0 40px}
.au-journey-intro p{font-size:1.12rem;line-height:1.85;color:#3a4255;margin:14px 0 0}
.au-stops{position:relative;padding:26px 0 30px}
.au-stops::before{content:"";position:absolute;left:48px;top:0;bottom:0;width:2px;transform:none;
  background:repeating-linear-gradient(#aebfdb 0 7px,transparent 7px 16px);z-index:0}
.au-plane,.au-arrive{position:absolute;left:48px;transform:translateX(-50%);width:52px;height:52px;border-radius:50%;
  display:grid;place-items:center;font-size:1.4rem;z-index:3}
.au-plane{top:-14px;background:#ffd23f;color:#0f1a4d;box-shadow:0 10px 22px rgba(255,178,46,.5)}
.au-plane::before{content:"\2708";transform:rotate(135deg)}
.au-arrive{bottom:-18px;background:#0f1a4d;color:#fff;box-shadow:0 10px 22px rgba(15,26,77,.4)}
.au-arrive::before{content:"\1F393"}
.au-stop{position:relative;z-index:1;background:#fff;border-radius:22px;
  padding:30px 36px;margin:0 0 34px 96px;box-shadow:0 16px 38px rgba(20,40,90,.09)}
.au-stop:nth-of-type(odd){margin-right:0;margin-left:96px}
.au-stop:nth-of-type(even){margin-left:96px;margin-right:0}
.au-stop::after{content:"";position:absolute;top:32px;left:-56px;right:auto;width:16px;height:16px;border-radius:50%;
  background:#fff;border:4px solid #ffb02e;box-shadow:0 0 0 4px rgba(255,178,46,.22);z-index:3}
.au-stop::before{content:"";position:absolute;top:39px;left:-40px;right:auto;height:2px;width:40px;
  background:repeating-linear-gradient(90deg,#bfcbe0 0 4px,transparent 4px 8px);z-index:1}
.au-stop:nth-of-type(odd)::after{left:-56px;right:auto}
.au-stop:nth-of-type(odd)::before{left:-40px;right:auto;width:40px}
.au-stop:nth-of-type(even)::after{left:-56px;right:auto}
.au-stop:nth-of-type(even)::before{left:-40px;right:auto;width:40px}
.au-leg{display:inline-block;font-size:.8rem;font-weight:800;letter-spacing:.04em;color:#0f1a4d;
  background:#ffd23f;padding:6px 14px;border-radius:999px;margin-bottom:14px}
.au-stop h3{font-size:1.4rem;color:#0f1a4d;margin:0 0 11px;line-height:1.42}
/* 停靠點卡片跟著 --w-shell 變寬，但卡內敘述文字收在閱讀欄，行長不變 */
.au-stop>p{font-size:1.02rem;line-height:1.8;color:#3a4255;margin:0 0 16px;max-width:var(--w-read)}
.au-stop-cta{margin-top:16px}
.au-stop-btns{display:flex;flex-wrap:wrap;gap:12px}
/* 停靠點窄、按鈕文字長時讓它換行＋不超出卡片（.btn 預設 nowrap 會跑版） */
.au-stop .btn{white-space:normal;max-width:100%;text-align:center;line-height:1.35}
.au-stop-warm{background:#fff7ef}
.au-stop-warm .au-leg{background:#ffd9a8;color:#9a4a06}
.au-stop-cool{background:#eef5fd}
.au-stop-cool .au-leg{background:#cfe4fb;color:#1d4ed8}
.au-stop .au-paths-list{margin-top:2px}
.au-stop .au-mag{grid-template-columns:1fr;gap:16px;max-width:none}
/* 修正：深色雜誌面板標題在 .au-stop h3(深藍) 規則下會變隱形，拉高 specificity 設回白色 */
.au-stop .au-mag-item h3{color:#fff;margin:0 0 12px}
@media(max-width:820px){
  .au-stops::before{left:19px}
  .au-plane,.au-arrive{left:19px}
  .au-stop,.au-stop:nth-of-type(odd),.au-stop:nth-of-type(even){margin:0 0 24px 46px;padding:24px 22px}
  .au-stop::after,.au-stop:nth-of-type(odd)::after,.au-stop:nth-of-type(even)::after{left:-35px}
  .au-stop::before,.au-stop:nth-of-type(odd)::before,.au-stop:nth-of-type(even)::before{left:-27px;width:27px}
}
/* 留台航線：站內中文海報小牆 + 一站式服務清單 */
.au-stop .cn-grid.cn-grid-mini{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:4px}
.au-stop .cn-grid-mini .cn-card{border-radius:12px}
.au-svc-list{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:11px 18px}
.au-svc-list li{position:relative;padding-left:24px;font-size:1.02rem;color:#3a4255;line-height:1.55}
.au-svc-list li::before{content:"";position:absolute;left:0;top:7px;width:9px;height:9px;border-radius:50%;background:#ffd23f;box-shadow:0 0 0 3px #fff4cf}
@media(max-width:560px){.au-svc-list{grid-template-columns:1fr}}

/* ===== 浮動社群 dock（取代 Chaty；hover 展開、移開收起、無關閉鈕；手機點擊切換） ===== */
/* 浮動社群 dock：4 個圖示永遠可見，無需展開 */
.lus-dock{position:fixed;right:22px;bottom:22px;z-index:95;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.lus-dock .soc{position:relative;width:50px;height:50px;border-radius:50%;box-shadow:0 8px 22px rgba(0,0,0,.22);
  transition:.2s;opacity:1;transform:none}
.lus-dock .soc:hover{transform:scale(1.1);box-shadow:0 12px 28px rgba(0,0,0,.28)}
.lus-dock .soc::before{width:52%;height:52%}
/* 滑過圖示時左側跳出名稱標籤 */
.lus-dock .soc::after{content:attr(data-label);position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%) translateX(6px);
  background:var(--ink);color:#fff;padding:6px 12px;border-radius:8px;font-size:.85rem;font-weight:600;white-space:nowrap;
  opacity:0;visibility:hidden;pointer-events:none;transition:.18s;box-shadow:0 6px 16px rgba(0,0,0,.18)}
.lus-dock .soc:hover::after{opacity:1;visibility:visible;transform:translateY(-50%) translateX(0)}
@media(max-width:640px){.lus-dock{right:14px;bottom:14px}.lus-dock .soc{width:44px;height:44px}}

/* 越南訪客建議橫幅(只在中文台灣留澳窗口輸出；bottom-left toast，避開 bottom-right 的 .lus-dock) */
.lus-vi-hint{position:fixed;left:16px;bottom:16px;z-index:96;max-width:360px;
  background:#fff;border:1px solid #e6ecf6;border-radius:14px;padding:16px 18px;
  box-shadow:0 14px 40px rgba(15,26,77,.22);
  opacity:0;transform:translateY(14px);transition:opacity .3s,transform .3s}
.lus-vi-hint.show{opacity:1;transform:none}
.lus-vi-hint-q{font-weight:800;color:var(--navy);font-size:1.02rem;margin:0 24px 12px 0;line-height:1.4}
.lus-vi-hint-links{display:flex;gap:8px;flex-wrap:wrap}
.lus-vi-hint-links a{flex:1 1 auto;text-align:center;white-space:nowrap;
  padding:9px 14px;border-radius:10px;font-weight:700;font-size:.92rem;transition:.2s}
.lus-vi-hint-links a.p{background:var(--navy);color:#fff}
.lus-vi-hint-links a.p:hover{background:#16246f}
.lus-vi-hint-links a.g{background:#eef2fb;color:var(--navy)}
.lus-vi-hint-links a.g:hover{background:#e2e8f7}
.lus-vi-hint-x{position:absolute;top:8px;right:10px;border:0;background:none;
  font-size:1.5rem;line-height:1;color:#8a94a9;cursor:pointer;padding:2px 6px}
.lus-vi-hint-x:hover{color:var(--navy)}
@media(prefers-reduced-motion:reduce){.lus-vi-hint{transition:none}}
@media(max-width:640px){.lus-vi-hint{left:12px;right:64px;max-width:none;bottom:12px;padding:14px 16px}
  .lus-vi-hint-links{flex-direction:column}}

/* ===================================================================
   📱 手機專屬排版（2026-06-21，v0.7.0）
   原則：全部包在 max-width 斷點內 → 只影響手機，桌機版型維持原樣。
   目標：提升手機可讀性——收斂過大的留白/內距、表格不爆版、加大點擊區、
   標題不被裁切、把橫向空間還給文字。
   =================================================================== */
@media(max-width:600px){
  /* 行動端字體可讀性（依手機排版研究）：
     - 內文 ≥16px(1rem)：小螢幕近距離閱讀，低於 16px 不易讀、且 iOS 會自動縮放
     - 中文內文行高 ~1.7：CJK 字密、需較鬆的行距（拉丁文約 1.2，混排取中文標準）
     只動手機、桌機不變 */
  .sch-card .desc{font-size:.98rem;line-height:1.7}
  .kv-row{font-size:.98rem;line-height:1.65}
  .t-card h3{line-height:1.45}
  /* 越南文（拉丁文＋疊加變音符）：行距再放寬給變音符淨空、字級略放大避免看起來偏小 */
  html[lang="vi"] body{line-height:1.78}
  html[lang="vi"] .page-body,html[lang="vi"] .single-body{font-size:1.05rem;line-height:1.85}

  /* 區塊垂直留白：手機比桌機(88px)小，但保留呼吸感、不擠 */
  section{padding:66px 0}
  .sec-head{margin:0 auto 42px}
  .sec-head p{font-size:1rem}
  .wrap{width:min(var(--w-shell),90%)}    /* 兩側多一點邊距，文字不貼螢幕邊（此處生效的是 90%，px 上限用不到） */

  /* Hero：允許標題斷行避免被裁切；按鈕改全寬好點按；隱藏滑鼠引導 */
  .hero{min-height:auto;padding:118px 0 72px}
  .hero h1{font-size:clamp(1.85rem,7.6vw,2.4rem);line-height:1.26}
  .hero h1 .t2{white-space:normal}        /* 桌機維持不斷行；手機改成可斷行 */
  .hero p.lead{font-size:1.05rem;margin:18px 0 28px}
  .hero .hero-list{gap:13px;margin:22px 0 30px}
  .hero .hero-list li{font-size:1.02rem}
  .hero-btns{flex-direction:column;gap:13px}
  .hero-btns .btn{width:100%;justify-content:center}
  .scroll-ind{display:none}
  .au-deco-hero{padding-top:96px}
  .au-deco-list{margin-bottom:20px;gap:10px}

  /* 卡片/區塊內距：保留舒適留白，文字不貼邊也不擠 */
  .card{padding:30px 24px}
  .t-card{padding:30px 24px}
  .prog-card{padding:30px 26px;min-height:0}
  .sch-card{min-height:240px}
  .sch-cap{padding:24px 24px 22px}
  .cta{padding:56px 26px;border-radius:22px}
  .cta-offer{flex-wrap:wrap;font-size:.9rem}
  .cta-btns{flex-direction:column}
  .cta-btns .btn{width:100%;justify-content:center}

  /* 卡片之間留多一點間距（單欄堆疊時的垂直呼吸感） */
  .cards,.prog,.trust,.sch{gap:20px}

  /* 關於我們：單欄時間距、把懸浮數字徽章拉回畫面內 */
  .about-grid{gap:40px}
  .about-badge{right:8px;bottom:-18px;padding:14px 18px}

  /* 獎學金條目：內距收斂、縮寫字級略縮 */
  .sch-item{padding:28px 24px}
  .sch-badge{font-size:1.35rem}

  /* FAQ：問句/答案內距保留舒適 */
  .faq-q{padding:22px 22px;font-size:1rem}
  .faq-a-inner{padding:0 22px 24px}

  /* 表格不爆版（手機最常見的可讀性殺手）：
     - 匯入頁面任意表格 → 可橫向捲動，不撐破版面
     - FAQ 內其他表格 → 縮字級與內距 */
  .page-body table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  /* ⚠️ 上面那條單獨用其實捲不動：display:block 讓表格縮到容器寬，沒有內容溢出就沒有東西可捲，
     欄數一多只會被擠扁（實測 4 欄表的第一欄會被壓成「學／士／能／不／能／辦」一字一行）。
     欄多的寬表要掛 .dp-wide 給 min-width——但 min-width 一定要配外層 .dp-wide-wrap，
     否則變寬的是表格「盒子」本身、會把整頁撐破（實測 scrollWidth 656>390）。
     ＝比照 .au-vs 的既有做法：wrap 負責 overflow-x、table 負責 min-width。 */
  .page-body table.dp-wide{min-width:640px}
  /* .dp-wide-hint 的手機顯示規則不能放這裡：它與元件定義（見下方 .dp-wide-hint）
     特定度相同 (0,2,0)，而元件定義在本檔更後面 → 後者永遠勝、提示在任何寬度都不顯示。
     故已移到元件定義「之後」。這是 2026-08-11 建立 .dp-wide 時踩到的坑。 */
  .faq-a-inner table{font-size:.85rem}
  .faq-a-inner th,.faq-a-inner td{padding:8px 9px}

  /* 費用表（三欄）→ 改「堆疊式」：不橫向捲動，每列攤成「項目／收費方／金額」逐行帶標籤。
     ⚠️ 資料一筆不少（與桌機完全相同），只是改為直向排列，符合「桌機有手機就要有」原則。
     欄名透過 td 的 data-label 用 ::before 顯示，故隱藏 thead 不會少資訊。 */
  .fee-table-3{display:block;font-size:.95rem}
  .fee-table-3 thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .fee-table-3 tbody,.fee-table-3 tr,.fee-table-3 td{display:block;width:auto}
  .fee-table-3 tr{border:1px solid #e6ecf6;border-radius:12px;padding:6px 14px;margin-bottom:12px;background:#fff}
  .fee-table-3 td{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border:0;border-bottom:1px solid #f0f3f8;text-align:right}
  .fee-table-3 tr td:last-child{border-bottom:0}
  .fee-table-3 td::before{content:attr(data-label);flex:none;font-weight:700;color:var(--navy);text-align:left}
  .fee-table-3 td:first-child{font-weight:700;color:var(--navy)}

  /* 流程步驟：縮小圓圈 */
  .step .num{width:54px;height:54px;font-size:1.2rem}

  /* 內頁/單篇/列表頂端留白：手機頁首較矮，不需 128–138px 的大空白 */
  .news-wrap{padding:96px 0 56px}
  .single-wrap{padding:92px 0 56px}
  .page-wrap{padding:92px 0 56px}
  .single-body{font-size:1rem}
  .page-body{font-size:1rem;line-height:1.8}

  /* 頁尾置中、好讀 */
  .foot-grid{text-align:center;gap:28px}
  .foot-grid ul{justify-items:center}
}

@media(max-width:400px){
  .hero h1{font-size:1.72rem}
  h2.sec-title{font-size:1.5rem}
}

/* ===== 中文詞彙表（互動查詢） ===== */
.vocab-wrap{max-width:1000px}
.vocab-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:22px 0 16px;position:sticky;top:62px;z-index:6;background:var(--bg);padding:12px;border-radius:14px;border:1px solid #e4eaf3}
.vocab-search{flex:1;min-width:220px;padding:12px 16px;border:1.5px solid #d7e0ee;border-radius:11px;font-size:1rem;background:#fff}
.vocab-search:focus{outline:none;border-color:#1d2f8f;box-shadow:0 0 0 3px rgba(29,47,143,.12)}
.vocab-levels{display:flex;gap:8px}
.vlv{padding:9px 16px;border:1.5px solid #d7e0ee;background:#fff;border-radius:999px;font-weight:700;color:#3a4255;cursor:pointer;font-size:.95rem;transition:.15s}
.vlv:hover{border-color:#1d2f8f}
.vlv.is-on{background:#1d2f8f;color:#fff;border-color:#1d2f8f}
.vocab-count{color:#6b7a93;font-size:.9rem;font-weight:700;margin-left:auto}
.vocab-table-wrap{border:1px solid #e9eef6;border-radius:16px;overflow:hidden}
.vocab-table{width:100%;border-collapse:collapse;font-size:1rem;background:#fff}
.vocab-table thead th{text-align:left;background:#0f1a4d;color:#fff;padding:12px 14px;font-size:.92rem;letter-spacing:.02em}
.vocab-table td{padding:11px 14px;border-top:1px solid #eef2f8;vertical-align:middle}
.vocab-table tbody tr:hover{background:#f5f8fc}
.vocab-table .v-zh{font-size:1.3rem;font-weight:700;color:#0f1a4d;white-space:nowrap}
.vocab-table .v-py{color:#5a6577}
.v-lv{display:inline-block;font-size:.76rem;font-weight:800;padding:2px 9px;border-radius:999px}
.v-A1{background:#e9f9ef;color:#117a3d}
.v-A2{background:#fff3df;color:#9a6b00}
.vocab-empty{text-align:center;color:#6b7a93;padding:28px;margin:0}
.vocab-legend{margin:-4px 0 16px;font-size:.92rem;line-height:1.75;color:var(--ink)}
.vocab-legend b{color:var(--navy)}
/* 朗讀按鈕：音檔在 assets/vocab-audio/，檔名由 md5(漢字|拼音) 決定，見 template-vocab.php */
.v-play{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;margin-left:10px;padding:0;border:1.5px solid #d7e0ee;border-radius:50%;background:#fff;color:#1d2f8f;cursor:pointer;vertical-align:middle;transition:background .15s,border-color .15s,color .15s}
.v-play svg{width:17px;height:17px;fill:currentColor;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.v-play .v-wave{fill:none}
.v-play:hover{background:#1d2f8f;border-color:#1d2f8f;color:#fff}
.v-play:focus{outline:none}
.v-play:focus-visible{background:#1d2f8f;border-color:#1d2f8f;color:#fff;box-shadow:0 0 0 3px rgba(29,47,143,.18)}
.v-play.is-playing{background:#1d2f8f;border-color:#1d2f8f;color:#fff}
.v-play.is-playing .v-wave{animation:vwave .7s ease-in-out infinite alternate}
.v-play.is-playing .v-wave2{animation-delay:.12s}
@keyframes vwave{from{opacity:.2}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.v-play.is-playing .v-wave{animation:none}}
@media(max-width:680px){
  .vocab-tools{position:static}
  .vocab-count{margin-left:0}
  .vocab-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .vocab-table,.vocab-table tbody,.vocab-table tr,.vocab-table td{display:block;width:auto}
  .vocab-table tr{border-top:1px solid #e9eef6;padding:12px 14px}
  .vocab-table tbody tr:first-child{border-top:0}
  .vocab-table td{border:0;padding:3px 0;display:flex;gap:12px;align-items:baseline}
  .vocab-table td::before{content:attr(data-label);flex:0 0 64px;font-weight:700;color:#8b97ab;font-size:.82rem}
  .vocab-table .v-zh{font-size:1.45rem;white-space:normal;align-items:center}
  /* 手機：漢字與喇叭是同一列的兩個 flex 項目，按鈕放大到好按的尺寸 */
  .v-play{width:36px;height:36px;margin-left:auto;flex:0 0 36px}
  .v-play svg{width:19px;height:19px}
}

/* ===== 暫時隱藏所有出處/審閱標籤（.src）。標記仍留在 HTML，移除下面這行即可恢復顯示。 ===== */
.src{display:none !important}

/* 最新消息：飛向 FB 粉專的大入口（航線+紙飛機 → 大 FB 粉專面板 → 前往粉專鈕；純示意、點了去粉專）。
   封面＝真實照片（越南留澳＝校園學生 hero_au_students／台灣留澳＝墨爾本團隊 team_melbourne，經 PHP inline background-image 帶入），
   取代原扁平藍漸層，讓面板更像真實 FB 粉專封面。 */
.au-fbportal{max-width:760px;margin:0 auto}
.au-fbportal-route{position:relative;height:30px;margin:0 auto 8px;max-width:560px;border-top:2px dashed #c3cede}
.fbp-plane{position:absolute;top:-14px;left:84%;font-size:1.5rem;line-height:1;color:var(--navy)}
.au-fbpage{display:block;background:#fff;border:1px solid #e4e8f0;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm);color:var(--ink);transition:transform .25s,box-shadow .25s}
.au-fbpage:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.au-fbpage-cover{height:200px;background-color:#dfe5ee;background-size:cover;background-position:center;background-repeat:no-repeat;position:relative;overflow:hidden}
.au-fbpage-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.28))}
.au-fbpage-head{display:flex;align-items:flex-end;gap:14px;padding:12px 22px 18px;position:relative}
.au-fbpage-avatar{flex:0 0 auto;width:78px;height:78px;margin-top:-52px;border-radius:50%;background:linear-gradient(135deg,var(--navy),var(--blue));border:4px solid #fff;color:#fff;display:grid;place-items:center;font-family:'Poppins',sans-serif;font-weight:800;font-size:1.2rem;letter-spacing:.5px;box-shadow:var(--shadow-sm)}
.au-fbpage-id{display:flex;flex-direction:column;padding-bottom:4px;min-width:0}
.au-fbpage-name{display:flex;align-items:center;gap:6px;font-weight:800;color:var(--navy);font-size:1.18rem;line-height:1.2}
.au-fbpage-check{width:18px;height:18px;color:var(--blue);flex:none}
.au-fbpage-meta{color:var(--muted);font-size:.92rem;margin-top:3px}
.au-fbpage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:0 4px 4px}
.au-fbpage-tile{aspect-ratio:1/1;overflow:hidden;background:#eef1f7}
.au-fbpage-tile img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.au-fbpage:hover .au-fbpage-tile img{transform:scale(1.05)}
.au-fbportal-cta{text-align:center;margin-top:26px}
.au-fbportal-btn{font-size:1.08rem;padding:15px 40px}
@media(max-width:560px){
  .au-fbpage-cover{height:150px}
  .au-fbpage-avatar{width:64px;height:64px;font-size:1rem;margin-top:-42px}
  .au-fbpage-name{font-size:1.04rem}
  .au-fbpage-head{padding:10px 16px 16px}
}

/* ===== 顧問團隊區塊（三窗口共用 lus_team()）===== */
/* flex 而非 grid：顧問人數非 3 的倍數時（目前 5 位）最後一列自動置中，不會留孤兒卡。
   增減顧問只要改 lus_team() 的 $people，版面自動適應、不必動欄數。 */
/* 五位顧問排成一排（使用者 2026-08-07 指定）。容器放寬到 --w-shell 之後才排得下：
   1440 容器 → 每張 272px。卡片內容同步縮一級（照片 156→132、簡介 1.04→.95rem），
   否則 228px 的內文區會擠。螢幕不夠寬時下面的斷點會退回 3 欄並把尺寸放回來。 */
.team-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:20px}
.team-card{flex:0 1 calc((100% - 60px)/4);background:#fff;border:1px solid #e7edf6;border-radius:20px;padding:30px 22px 26px;text-align:center;box-shadow:var(--shadow-sm);transition:transform .2s}
.team-card:hover{transform:translateY(-5px)}
.team-photo{width:190px;height:190px;border-radius:50%;object-fit:cover;object-position:center top;border:6px solid #fff;box-shadow:0 10px 26px rgba(29,47,143,.22);margin:0 auto 18px;display:block;background:#e7edf6}
.team-name{font-weight:800;color:var(--navy);font-size:1.18rem;line-height:1.24}
.team-role{display:inline-block;margin:9px 0 13px;font-size:.86rem;font-weight:700;color:var(--navy);background:#eef2ff;border:1px solid #dfe6ff;padding:4px 13px;border-radius:999px}
.team-bio{font-size:.95rem;line-height:1.75;color:var(--muted);text-align:left}
/* 排不下 4 欄就退回 3 欄，卡片內容放大一級（否則大卡配小字會顯得空） */
@media(max-width:1439px){
  .team-grid{gap:28px}
  .team-card{flex-basis:calc((100% - 56px)/3);padding:36px 30px 32px}
  .team-photo{width:200px;height:200px;margin-bottom:22px}
  .team-name{font-size:1.4rem;line-height:1.2}
  .team-role{margin:10px 0 15px;font-size:.95rem;padding:5px 16px}
  .team-bio{font-size:1.04rem;line-height:1.78}
}
/* ⚠️ 覆寫 .team-card 的 flex-basis 要用 flex-basis（非 flex 簡寫），才不會把 grow/shrink 一起洗掉；
   這幾條與桌機同為 (0,1,0) 特定度，靠「在後面」取勝，勿把桌機那條移到下面來。 */
@media(max-width:1000px){.team-grid{gap:24px}.team-card{flex-basis:calc((100% - 24px)/2)}}
@media(max-width:520px){.team-card{flex-basis:100%}}

/* ===== 線上中文班促銷（中文課頁）：左圖右文卡片，避免直式海報右側大片留白 ===== */
.cn-online{display:flex;gap:28px;align-items:center;background:#f5f8fc;border:1px solid #e7edf6;border-radius:16px;padding:24px;margin:0 0 1.2em}
.cn-online-poster{flex:0 0 320px;max-width:320px}
.cn-online-poster img{width:100%;border-radius:12px;display:block;margin:0}
.cn-online-body{flex:1;min-width:0}
.cn-online-body h3{margin-top:0}
.cn-online-body ul,.cn-online-body p{margin-bottom:.8em}
@media(max-width:700px){.cn-online{flex-direction:column;gap:18px;padding:18px}.cn-online-poster{flex-basis:auto;max-width:340px;margin:0 auto}}

/* ===== QR Code Modal（LINE / Zalo dock 彈出）===== */
button.soc{cursor:pointer;border:none;padding:0}
.lus-qr-modal{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.5);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .2s}
.lus-qr-modal.open{opacity:1;pointer-events:auto}
.lus-qr-inner{background:#fff;border-radius:16px;padding:28px 24px 24px;text-align:center;
  position:relative;max-width:280px;width:90%;
  box-shadow:0 16px 48px rgba(0,0,0,.25);
  transform:scale(.95);transition:transform .2s}
.lus-qr-modal.open .lus-qr-inner{transform:scale(1)}
.lus-qr-close{position:absolute;top:10px;right:14px;background:none;border:none;
  font-size:1.5rem;line-height:1;cursor:pointer;color:#999;padding:4px 8px;border-radius:4px}
.lus-qr-close:hover{color:#222;background:#f5f5f5}
.lus-qr-label{font-weight:700;font-size:1.1rem;color:var(--navy);margin:0 0 14px}
.lus-qr-img{width:220px;height:220px;display:block;margin:0 auto;border-radius:8px}
.lus-qr-hint{font-size:.8rem;color:var(--muted);margin:12px 0 0;line-height:1.5}
/* 收起來時要明寫 display:none：上面 .lus-qr-modal 的 display:flex 是作者樣式，
   會蓋掉 [hidden] 屬性在瀏覽器預設樣式表裡的 display:none。 */
.lus-qr-modal[hidden]{display:none}
/* 這個彈窗只在電腦出現：手機／平板點 Zalo 是直接叫起 App（見 theme.js） */
.lus-qr-close:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.lus-qr-modal,.lus-qr-inner{transition:none}}

/* ===== 台灣留澳「關於成達」#au-about（分段式復刻總公司 About，2026-07-20）===== */
/* 重點文字不畫螢光筆：恢復一般文字(不強調) */
.au-about .mk{background:none;color:inherit;font-weight:inherit;padding:0}

/* 開場：圖 + 文（築夢者理念）— 對應總公司 Introduction */
.au-intro{display:grid;grid-template-columns:.82fr 1fr;gap:44px;align-items:center;margin:40px 0 8px}
.au-intro-photo{margin:0;border-radius:16px;overflow:hidden;box-shadow:0 18px 42px rgba(15,26,77,.15)}
.au-intro-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.au-intro-text h3{font-size:1.5rem;color:var(--navy);margin:0 0 14px}
.au-intro-text p{line-height:1.9;color:var(--ink);margin:0 0 12px}
.au-intro-text p:last-child{margin-bottom:0}

/* 成長歷程：橫向時間軸 — 對應總公司 Timeline */
.au-timeline{margin:56px 0 8px;text-align:center}
.au-timeline-title{font-size:1.4rem;color:var(--navy);margin:0 0 36px}
.au-tl{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr)}
/* 三個節點的版本（越南留澳：河內辦公室年份未確認、不掛年份，故只有 2016／2019／至今） */
.au-tl.tl-3{grid-template-columns:repeat(3,1fr)}
.au-tl-item{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 10px}
.au-tl-item:not(:last-child)::before{content:"";position:absolute;top:51px;left:50%;width:100%;height:2px;background:#dce3f2;z-index:0}
.au-tl-year{font-family:'Poppins',sans-serif;font-weight:800;font-size:1.5rem;color:var(--navy);height:30px;line-height:30px}
.au-tl-dot{width:18px;height:18px;border-radius:50%;background:var(--yellow);border:3px solid #fff;box-shadow:0 0 0 2px rgba(15,26,77,.18);margin:12px 0 16px;position:relative;z-index:1}
.au-tl-label{font-size:.98rem;color:var(--muted);line-height:1.55;max-width:190px}

/* 集團實績數字區（白底、大字、金色點綴，無藍底）— 對應總公司 Statistics */
.au-stats{margin:56px 0 12px;text-align:center}
.au-stats-head{display:inline-block;font-weight:800;letter-spacing:.1em;color:var(--navy);margin-bottom:34px;font-size:1.06rem;position:relative;padding-bottom:12px}
.au-stats-head::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:46px;height:4px;border-radius:2px;background:var(--yellow)}
.au-stats-row{display:flex;justify-content:center;align-items:flex-start;flex-wrap:wrap}
.au-stat{display:flex;flex-direction:column;gap:12px;padding:0 56px;position:relative}
.au-stat + .au-stat::before{content:"";position:absolute;left:0;top:8%;height:70%;width:1px;background:#e2e8f4}
.au-stat-n{font-size:4.6rem;font-weight:900;color:var(--yellow);line-height:.95;font-family:'Poppins',sans-serif;letter-spacing:-.02em}
.au-stat-l{font-size:1.08rem;color:var(--muted);font-weight:600}

/* 據點：照片卡（墨爾本 + 台北）— 對應總公司 Office Locations */
.au-offices{margin:56px 0 8px}
.au-offices-title{font-size:1.4rem;color:var(--navy);margin:0 0 26px;text-align:center}
.au-offices-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.au-office{margin:0;background:#fff;border:1px solid #e6ecf6;border-radius:16px;overflow:hidden;box-shadow:0 12px 30px rgba(15,26,77,.08);display:flex;flex-direction:column}
.au-office-photo{aspect-ratio:16/9;overflow:hidden}
.au-office-photo img{display:block;width:100%;height:100%;object-fit:cover}
.au-office-body{display:flex;flex-direction:column;gap:6px;padding:22px 24px}
.au-office-city{font-size:1.2rem;font-weight:800;color:var(--navy)}
.au-office-role{font-size:.95rem;color:var(--muted)}
.au-office-addr{font-size:.95rem;color:var(--ink);line-height:1.55;margin-top:4px}

/* 承諾 — 對應總公司 Our Promise */
.au-promise{margin:56px auto 8px;max-width:760px;text-align:center;background:var(--bg);border-radius:16px;padding:34px 40px}
.au-promise-title{font-size:1.4rem;color:var(--navy);margin:0 0 12px}
.au-promise p{line-height:1.9;color:var(--ink);margin:0}

/* 錄取實績：兩欄「名冊」排版。刻意不用卡片／不用編號——內容本身就是一份紀錄清單，
   力道來自一整面真實校名的密度，靠 hairline 與字級分層即可，#au-about 已夠滿故此區保持安靜。
   同一 grid row 的項目等高，故各 border-top 會橫向對齊。 */
/* 淺色框＋章節標頭：把整份名冊從白底 #au-about 裡標成一個獨立章節（使用者回饋「捲動找不到」）。
   頂部 4px 金 bar ＝這一區的 signature（同區的 .au-promise 淺色面板沒有，故錄取實績更像主角）；
   金色只出現在這條 bar，標題與 kicker 保持 navy 安靜。 */
.au-offers{margin:64px 0 8px;background:var(--bg);border-top:4px solid var(--yellow);border-radius:16px;padding:46px 48px 40px}
.au-offers-kicker{display:block;text-align:center;font-family:'Poppins',sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.au-offers-title{font-size:1.7rem;color:var(--navy);margin:0 0 10px;text-align:center;font-weight:800}
.au-offers-lead{max-width:720px;margin:0 auto 30px;text-align:center;color:var(--muted);line-height:1.85}
.au-offers-lead b{color:var(--navy)}
/* 中文數量詞不可斷行（避免出現「橫／跨」拆兩行） */
.au-offers-lead .nw{white-space:nowrap}
.au-roll{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 48px}
.au-roll-uni{padding:18px 0 15px;border-top:1px solid #e2e8f4}
.au-roll-name{margin:0 0 9px;font-size:1.1rem;font-weight:800;color:var(--navy);line-height:1.35}
.au-roll-name a{color:var(--navy);text-decoration:none}
.au-roll-name a:hover{text-decoration:underline}
.au-roll-en{display:block;font-family:'Poppins',sans-serif;font-size:.73rem;font-weight:500;letter-spacing:.06em;color:var(--muted);text-transform:uppercase;margin-top:3px}
.au-roll-list{list-style:none;margin:0;padding:0}
.au-roll-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;padding:5px 0;font-size:.98rem;color:var(--ink);line-height:1.6}
.au-roll-deg{font-weight:600}
/* 黃底深藍字＝金錢類（獎學金/減免），沿用 .ed-cta 的用色邏輯；白底上不放黃字 */
.au-roll-tag{background:var(--yellow);color:var(--navy);font-weight:700;font-size:.75rem;padding:2px 9px;border-radius:999px;white-space:nowrap}
.au-roll-note{color:var(--muted);font-size:.87rem}
.au-offers-foot{max-width:720px;margin:26px auto 0;text-align:center;color:var(--ink);line-height:1.85}
.au-offers-src{max-width:760px;margin:12px auto 0;text-align:center;color:var(--muted);font-size:.85rem;line-height:1.7}

/* 顧問內嵌於關於成達 */
.au-about-team{margin-top:56px}
.au-about-team-title{font-size:1.4rem;color:var(--navy);margin:0 0 6px;text-align:center}
.au-about-team-lead{text-align:center;color:var(--muted);margin:0 0 26px}
.au-about-team .team-embed .team-grid{margin-top:0}
@media(max-width:820px){
  .au-intro{grid-template-columns:1fr;gap:24px}
  .au-intro-photo{max-width:520px;margin:0 auto}
  .au-offices-grid{grid-template-columns:1fr;gap:20px}
  .au-stat{padding:0 30px}
  .au-stat-n{font-size:3.2rem}
  .au-roll{grid-template-columns:1fr;gap:0}
  .au-offers{padding:34px 22px 30px;margin:48px 0 8px}
}
@media(max-width:560px){
  /* ⚠️ .tl-3 也要明寫：桌機那條是 .au-tl.tl-3（0,2,0），只寫 .au-tl（0,1,0）壓不過它 */
  .au-tl,.au-tl.tl-3{grid-template-columns:1fr}
  .au-tl-item{flex-direction:row;align-items:baseline;gap:12px;text-align:left;padding:13px 0;border-bottom:1px solid #eef2f9}
  .au-tl-item:last-child{border-bottom:0}
  .au-tl-item:not(:last-child)::before{display:none}
  .au-tl-dot{display:none}
  .au-tl-year{height:auto;line-height:1.2;font-size:1.15rem;min-width:52px;flex:0 0 auto}
  .au-tl-label{max-width:none;text-align:left}
}
@media(max-width:520px){
  .au-stat{padding:0 14px;min-width:40%}
  .au-stat + .au-stat::before{display:none}
  .au-stat-n{font-size:2.5rem}
  .au-stat-l{font-size:.96rem}
  .au-promise{padding:26px 22px}
}

/* ===== 台灣留澳子頁 banner 大圖（2026-07-18）===== */
.au-detail-banner{margin:0 auto 22px;max-width:var(--w-read);border-radius:16px;overflow:hidden;line-height:0;box-shadow:0 8px 26px rgba(15,26,77,.12)}
.au-detail-banner img{width:100%;height:auto;aspect-ratio:1200/360;object-fit:cover;display:block}
@media(max-width:600px){.au-detail-banner{border-radius:12px;margin-bottom:16px}.au-detail-banner img{aspect-ratio:1200/430}}

/* ===== 內頁「數據簡報」視覺元件 .dp-*（台灣留澳子頁，2026-07-20）===== */
/* 表格加斑馬紋，更好掃視 */
.page-body tbody tr:nth-child(even){background:#f7faff}
/* 一分鐘看懂：重點框 */
.page-body .dp-note{display:flex;gap:14px;align-items:flex-start;background:#f0f5ff;border-left:5px solid var(--navy);border-radius:0 12px 12px 0;padding:18px 22px;margin:22px 0;line-height:1.85;color:var(--ink)}
.page-body .dp-note-tag{flex:0 0 auto;background:var(--navy);color:#fff;font-weight:800;font-size:.8rem;letter-spacing:.04em;padding:5px 13px;border-radius:999px;white-space:nowrap;margin-top:2px}
/* 數據速覽 tiles */
.page-body .dp-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin:24px 0}
.page-body .dp-fact{background:linear-gradient(165deg,#26389d,#14215a);border:0;border-radius:16px;padding:24px 16px 22px;text-align:center;box-shadow:0 14px 30px rgba(15,26,77,.22)}
.page-body .dp-fact-v{display:block;font-family:'Poppins',sans-serif;font-weight:800;font-size:1.7rem;color:var(--yellow);line-height:1.12;letter-spacing:-.01em}
.page-body .dp-fact-v small{font-size:.8rem;font-weight:700;color:rgba(255,255,255,.62)}
.page-body .dp-fact-l{display:block;font-size:.92rem;color:rgba(255,255,255,.84);margin-top:9px;line-height:1.45}
.page-body .dp-fact::after{content:"";display:block;width:28px;height:3px;border-radius:2px;background:var(--yellow);opacity:.9;margin:11px auto 0}
/* 規格 / 資訊卡 */
.page-body .dp-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin:24px 0}
.page-body .dp-card{background:#fff;border:1px solid #e6ecf6;border-top:4px solid var(--navy);border-radius:14px;padding:22px;box-shadow:0 8px 22px rgba(15,26,77,.06)}
.page-body .dp-card h4{margin:0 0 10px;font-size:1.06rem;color:var(--navy)}
.page-body .dp-card p{margin:0;font-size:.96rem;color:var(--ink);line-height:1.7}
/* 路徑 / 流程（節點 + 箭頭） */
.page-body .dp-paths{display:flex;flex-direction:column;gap:16px;margin:24px 0}
.page-body .dp-path{display:flex;flex-wrap:wrap;align-items:stretch;background:#f7faff;border:1px solid #e6ecf6;border-radius:14px;padding:16px 16px 16px 20px}
.page-body .dp-node{position:relative;flex:1 1 auto;min-width:120px;background:#fff;border:1px solid #dbe4f3;border-radius:10px;padding:12px 14px;text-align:center;font-size:.95rem;color:var(--ink);font-weight:600;display:flex;align-items:center;justify-content:center;margin-right:28px}
.page-body .dp-node:last-child{margin-right:0}
.page-body .dp-node:not(:last-child)::after{content:"\2192";position:absolute;right:-23px;top:50%;transform:translateY(-50%);color:var(--navy);font-weight:800;font-size:1.15rem}
.page-body .dp-node-start{background:var(--navy);color:#fff;border-color:var(--navy)}
.page-body .dp-node-end{background:#fff7d6;border-color:var(--yellow);color:var(--navy);font-weight:800}
/* 費用長條（分段） */
.page-body .dp-bar{margin:24px 0;background:#fff;border:1px solid #e6ecf6;border-radius:14px;padding:22px;box-shadow:0 8px 22px rgba(15,26,77,.06)}
.page-body .dp-bar-title{font-weight:800;color:var(--navy);margin:0 0 14px}
.page-body .dp-bar-track{display:flex;height:46px;border-radius:10px;overflow:hidden;font-size:.86rem;font-weight:700}
.page-body .dp-seg{display:flex;align-items:center;justify-content:center;color:#fff;padding:0 6px;white-space:nowrap;overflow:hidden}
.page-body .dp-seg.s1{background:#1d2f8f}
.page-body .dp-seg.s2{background:#3f57c4}
.page-body .dp-seg.s3{background:#8aa0e0;color:var(--navy)}
.page-body .dp-bar-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:14px;font-size:.92rem;color:var(--ink)}
.page-body .dp-bar-legend span{display:flex;align-items:center;gap:7px}
.page-body .dp-bar-legend i{width:12px;height:12px;border-radius:3px;display:inline-block;flex:0 0 auto}
.page-body .dp-bar-total{margin-top:14px;font-size:1.1rem;color:var(--navy);font-weight:800}
/* 公式（相加） */
.page-body .dp-formula{display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:#f7faff;border:1px solid #e6ecf6;border-radius:14px;padding:18px;margin:24px 0}
.page-body .dp-term{background:#fff;border:1px solid #dbe4f3;border-radius:10px;padding:10px 14px;font-size:.95rem;color:var(--ink);font-weight:600}
.page-body .dp-term-sum{background:var(--navy);color:var(--yellow);border-color:var(--navy);font-weight:800}
.page-body .dp-op{font-weight:800;color:var(--navy);font-size:1.15rem}
/* 勾選清單 */
.page-body ul.dp-check{list-style:none;padding:0;margin:20px 0}
.page-body ul.dp-check li{position:relative;padding:9px 0 9px 32px;line-height:1.7;border-bottom:1px solid #eef2f9}
.page-body ul.dp-check li:last-child{border-bottom:0}
.page-body ul.dp-check li::before{content:"";position:absolute;left:5px;top:13px;width:7px;height:13px;border:solid var(--navy);border-width:0 3px 3px 0;transform:rotate(45deg)}
/* 編號步驟流程（申請／簽證流程） */
.page-body ol.dp-steps{list-style:none;counter-reset:dpstep;padding:0;margin:24px 0}
.page-body ol.dp-steps li{position:relative;padding:0 0 24px 58px;counter-increment:dpstep}
.page-body ol.dp-steps li::before{content:counter(dpstep);position:absolute;left:0;top:0;width:38px;height:38px;border-radius:50%;background:var(--navy);color:#fff;font-family:'Poppins',sans-serif;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:1.02rem;z-index:1}
.page-body ol.dp-steps li::after{content:"";position:absolute;left:18px;top:40px;bottom:2px;width:2px;background:#dce3f2}
.page-body ol.dp-steps li:last-child{padding-bottom:0}
.page-body ol.dp-steps li:last-child::after{display:none}
.page-body ol.dp-steps li b{color:var(--navy);font-size:1.04rem}
.page-body ol.dp-steps li .dp-step-d{display:block;color:var(--ink);margin-top:5px;line-height:1.7;font-size:.96rem}
/* 警示框（拒簽原因等） */
.page-body .dp-warn{background:#fff6f2;border-left:5px solid #e0663a;border-radius:0 12px 12px 0;padding:16px 22px;margin:22px 0}
.page-body .dp-warn-title{font-weight:800;color:#c2451e;margin:0 0 10px}
.page-body ul.dp-warn-list{list-style:none;padding:0;margin:0}
.page-body ul.dp-warn-list li{position:relative;padding:6px 0 6px 28px;line-height:1.7}
.page-body ul.dp-warn-list li::before{content:"!";position:absolute;left:3px;top:7px;width:18px;height:18px;border-radius:50%;background:#e0663a;color:#fff;font-weight:800;font-size:.76rem;display:flex;align-items:center;justify-content:center}
/* 寬表的橫捲容器：捲的是 wrap、不是 table 本身（table 只負責 min-width）。
   兩者一定要成對使用，只給 table min-width 會把整頁撐破。 */
.page-body .dp-wide-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* 寬表的「左右滑動」提示：桌機不需要（表格排得下），只在手機斷點顯示（見 @media max-width:600px 的 .dp-wide）。
   刻意用一行明說，不用邊緣淡出——捲到底時淡出會變成「內容被吃掉」的錯覺（v0.20.64 的判斷）。 */
.page-body .dp-wide-hint{display:none;margin:10px 0 0;text-align:center;color:var(--muted);font-size:.85rem;font-weight:600;letter-spacing:.02em}
/* ⚠️ 這條必須留在上面那行「之後」：兩者特定度都是 (0,2,0)，靠原始碼順序決勝。
   寫進前面的 @media(max-width:600px) 區塊會被上面那行壓掉、提示永遠不顯示（實測過）。 */
@media(max-width:600px){ .page-body .dp-wide-hint{display:block} }
@media(max-width:640px){
  .page-body .dp-node{margin-right:0;margin-bottom:26px;min-width:100%}
  .page-body .dp-node:last-child{margin-bottom:0}
  .page-body .dp-node:not(:last-child)::after{content:"\2193";right:auto;left:50%;top:auto;bottom:-22px;transform:translateX(-50%)}
  .page-body .dp-fact-v{font-size:1.5rem}
}

/* ===== 費用頁「編輯式暖版」.ed-*（2026-07-21 試點：照片+文字/暖米面板/無藍底黃字/無卡片）===== */
.page-body .ed-lead{background:#fbf6ec;border:1px solid #efe7d6;border-left:5px solid var(--yellow);border-radius:0 14px 14px 0;padding:22px 30px;margin:20px 0 34px;font-size:1.06rem;line-height:1.95;color:var(--ink)}
.page-body .ed-lead b{color:var(--navy)}
.page-body .ed-split{display:grid;grid-template-columns:.92fr 1.08fr;gap:42px;align-items:center;margin:40px auto;max-width:var(--w-read)}
.page-body .ed-split.rev{grid-template-columns:1.08fr .92fr}
.page-body .ed-split.rev .ed-split-fig{order:2}
.page-body .ed-split-fig{margin:0;border-radius:16px;box-shadow:0 18px 42px rgba(15,26,77,.17);aspect-ratio:4/3;background-size:cover;background-position:center}
.page-body .ed-fig-students{background-image:url(assets/hero_au_students.jpg)}
.page-body .ed-fig-life{background-image:url(assets/tw-au/tw-au-life.jpg)}
.page-body .ed-fig-campus{background-image:url(assets/cover_students_campus.jpg)}
.page-body .ed-fig-team{background-image:url(assets/team_melbourne.jpg)}
.page-body .ed-fig-expo{background-image:url(assets/team_expo.jpg)}
.page-body .ed-fig-taipei{background-image:url(assets/office/taipei.jpg)}
.page-body .ed-fig-about{background-image:url(assets/about_team.jpg)}
.page-body .ed-fig-party{background-image:url(assets/team_party.jpg)}
/* 申請表格照（GS/SOP 頁）：與 .ed-vn-apply 共用同一張圖，取中性命名供 tw-au 使用 */
.page-body .ed-fig-form{background-image:url(assets/vn-au/apply.jpg)}
/* 機考考場照（PTE 頁，2026-08-13 v0.20.80）：成人戴耳機在電腦前作答＝呼應 PTE 全程機考 */
.page-body .ed-fig-exam{background-image:url(assets/tw-au/pte-test.jpg)}
/* 越南留澳(vn-au)內頁專屬照片（2026-08-03 v0.20.65）。其餘圖位直接沿用本檔下方 tw-au 已有的
   .ed-g-*(校園)／.ed-c-*(科系)／.ed-la-*(語言) class＝同主題共用一張，不重複找圖。
   ⚠️ 換這幾張圖時檔名不變→記得同步提高這裡的 ?v=（CSS 內的 url() 不會跟著 lus_img() 自動帶版號）。 */
.page-body .ed-vn-visa{background-image:url(assets/vn-au/visa.jpg)}
.page-body .ed-vn-apply{background-image:url(assets/vn-au/apply.jpg)}
.page-body .ed-vn-budget{background-image:url(assets/vn-au/budget.jpg)}
.page-body .ed-vn-work{background-image:url(assets/vn-au/work.jpg)}
.page-body .ed-vn-grad{background-image:url(assets/vn-au/graduation.jpg)}
.page-body .ed-split-body h3{margin-top:0}
.page-body ul.ed-items{list-style:none;padding:0;margin:16px 0 0}
.page-body ul.ed-items li{padding:15px 0;border-bottom:1px solid #ece7dd;line-height:1.78;color:var(--ink)}
.page-body ul.ed-items li:last-child{border-bottom:0}
.page-body ul.ed-items b{display:block;color:var(--navy);font-size:1.05rem;margin-bottom:4px}
.page-body .ed-budget{background:#fbf6ec;border:1px solid #efe7d6;border-radius:16px;padding:24px 32px;margin:22px 0}
.page-body .ed-budget-cap{font-weight:800;color:var(--navy);margin-bottom:12px}
.page-body .ed-budget-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 0;border-bottom:1px dashed #ded4bd}
.page-body .ed-budget-row span:last-child{font-family:'Poppins',sans-serif;font-weight:700;color:var(--navy);white-space:nowrap}
.page-body .ed-budget-total{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-top:14px;padding-top:16px;border-top:2px solid var(--navy)}
.page-body .ed-budget-total span:first-child{font-weight:800;color:var(--navy)}
.page-body .ed-budget-total span:last-child{font-family:'Poppins',sans-serif;font-weight:800;font-size:1.5rem;color:var(--navy);white-space:nowrap}
.page-body .ed-cta{text-align:center;margin:36px 0 10px}
.page-body .ed-cta a{display:inline-flex;align-items:center;gap:9px;background:var(--yellow);color:var(--navy);font-weight:800;font-size:1.06rem;padding:15px 36px;border-radius:999px;box-shadow:0 12px 26px rgba(255,213,50,.42);text-decoration:none}
.page-body .ed-cta a:hover{filter:brightness(1.04)}
/* ed-rows：每個項目一列「左圖右文字」（如住宿類型），非卡片格 */
.page-body .ed-rows{display:flex;flex-direction:column;gap:14px;margin:24px auto;max-width:var(--w-read)}
.page-body .ed-row{display:grid;grid-template-columns:300px 1fr;gap:26px;align-items:center;padding:18px 0;border-bottom:1px solid #edf0f5}
.page-body .ed-row:last-child{border-bottom:0}
.page-body .ed-row-img{aspect-ratio:3/2;border-radius:14px;background-size:cover;background-position:center;box-shadow:0 12px 30px rgba(15,26,77,.14)}
.page-body .ed-row-b h4{margin:0 0 8px;color:var(--navy);font-size:1.16rem}
.page-body .ed-row-b p{margin:0;font-size:1rem;line-height:1.78;color:var(--ink)}
.page-body .ed-row-b .ed-plat{margin:10px 0 0;font-size:.95rem;line-height:1.72}
.page-body .ed-row-b .ed-plat b{color:var(--navy)}
.page-body .ed-row-b .ed-tip{margin:10px 0 0;font-size:.9rem;line-height:1.66;color:#5a6479;padding-left:13px;border-left:3px solid var(--yellow)}
.page-body .ed-row-b .ed-tip b{color:var(--navy)}
/* feature-first：清單第一項放大成寬幅 hero（如住宿 學生公寓），做出層次 */
.page-body .ed-rows.lead .ed-row:first-child{grid-template-columns:1fr;gap:16px}
.page-body .ed-rows.lead .ed-row:first-child .ed-row-img{aspect-ratio:23/9;width:100%}
/* ⚠️⚠️ 2026-08-19 移除了「圖欄放大到 460px」與「文字欄 margin:auto 置中」兩條，別加回來。
   置中那條是這次版面亂掉的真兇：.ed-row-b 是格線項目，兩側 margin 都設 auto 時
   會失去 stretch、改用內容寬度並置中 → 每一列的文字左緣都由「那列文字多長」決定。
   實測住宿頁四列落在 546／569／643／567，語言頁更誇張（716／593／673／764）。
   現在 .ed-rows 已經收進閱讀欄、與上下文共用左緣，圖欄維持 300px 即可，
   文字欄不必再封頂也不要置中——讓它自然撐滿格子，全部列才會對齊在同一條線。 */
.page-body .ed-rows.lead .ed-row:first-child .ed-row-b h4{font-size:1.34rem}
/* highlight：標出清單裡「最關鍵」的一項（如語言 EAP），黃色左邊條，非方框 */
.page-body .ed-row.hl .ed-row-b{border-left:4px solid var(--yellow);padding-left:17px}
/* ed-zig：左右交錯（偶數列改右圖左文），破解「每條都一樣」的單調 */
.page-body .ed-rows.ed-zig .ed-row:nth-child(even){grid-template-columns:1fr 300px}
.page-body .ed-rows.ed-zig .ed-row:nth-child(even) .ed-row-img{order:2}
/* ed-trio：三張並排（圖上文下），給短清單不同形狀的節奏 */
.page-body .ed-rows.ed-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.page-body .ed-rows.ed-trio .ed-row{display:block;padding:0;border-bottom:0}
.page-body .ed-rows.ed-trio .ed-row-img{margin-bottom:14px}
.page-body .ed-rows.ed-trio .ed-row-b h4{font-size:1.1rem}
/* 三張並排維持 4:3（比較接近方形卡片）；左圖右文那種才用 3:2 */
.page-body .ed-rows.ed-trio .ed-row-img{aspect-ratio:4/3}
/* ed-mosaic：大小不一的照片馬賽克（真校園照當主體、指定位置填滿、無卡片框） */
.page-body .ed-mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,152px);gap:14px;margin:26px auto;max-width:var(--w-read);
  grid-template-areas:"syd syd mel mel" "syd syd uns uq" "mon mon uwa ade" "anu anu uwa ade"}
.page-body .ed-tile{position:relative;display:block;border-radius:16px;overflow:hidden;text-decoration:none;background-size:cover;background-position:center;box-shadow:0 12px 30px rgba(15,26,77,.16);transition:transform .35s ease,box-shadow .35s ease}
.page-body .ed-tile:hover{transform:translateY(-4px);box-shadow:0 20px 44px rgba(15,26,77,.28)}
.page-body .ed-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(10,18,50,.86) 0%,rgba(10,18,50,.25) 44%,rgba(10,18,50,0) 72%)}
.page-body .ed-tile-cap{position:absolute;left:16px;right:14px;bottom:13px;z-index:2}
.page-body .ed-tile-cap .nm{display:block;color:#fff;font-weight:800;font-size:1.02rem;line-height:1.28;text-shadow:0 1px 6px rgba(0,0,0,.35)}
.page-body .ed-tile-cap .rk{display:inline-block;margin-top:5px;color:var(--navy);background:var(--yellow);font-weight:800;font-size:.76rem;padding:2px 9px;border-radius:999px}
.page-body .t-syd{grid-area:syd}.page-body .t-mel{grid-area:mel}.page-body .t-uns{grid-area:uns}.page-body .t-uq{grid-area:uq}
.page-body .t-mon{grid-area:mon}.page-body .t-uwa{grid-area:uwa}.page-body .t-ade{grid-area:ade}.page-body .t-anu{grid-area:anu}
.page-body .ed-tile.big .ed-tile-cap .nm{font-size:1.4rem}
.page-body .ed-tile-cap .sub{display:block;margin-top:5px;color:rgba(255,255,255,.92);font-size:.82rem;line-height:1.45;text-shadow:0 1px 6px rgba(0,0,0,.4)}
/* m5：科系用的 5 塊馬賽克（3 欄、排法與學校不同） */
.page-body .ed-mosaic.m5{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,152px);
  grid-template-areas:"f1 f1 f2" "f1 f1 f3" "f4 f5 f5"}
.page-body .m5 .t-f1{grid-area:f1}.page-body .m5 .t-f2{grid-area:f2}.page-body .m5 .t-f3{grid-area:f3}
.page-body .m5 .t-f4{grid-area:f4}.page-body .m5 .t-f5{grid-area:f5}
@media(max-width:820px){
  .page-body .ed-mosaic{grid-template-columns:repeat(2,1fr);grid-template-rows:none;grid-auto-rows:128px;grid-template-areas:none}
  /* 小方格＋兩行校名時，原本的遮罩在校名處已快透明→淺色校舍照上的白字讀不到，手機加厚 */
  .page-body .ed-tile::after{background:linear-gradient(to top,rgba(10,18,50,.92) 0%,rgba(10,18,50,.5) 58%,rgba(10,18,50,0) 96%)}
  .page-body .ed-tile{grid-area:auto}
  .page-body .ed-tile.big{grid-column:span 2;grid-row:span 2}
  .page-body .ed-tile.big .ed-tile-cap .nm{font-size:1.15rem}
  /* m5 的桌機規則（3 欄、固定 152px 列）特定度比上面那條 .ed-mosaic 手機重置高，
     不明寫就會在手機殘留 3 個窄欄→文字擠爆方格。這裡照手機意圖明寫成 2 欄 */
  .page-body .ed-mosaic.m5{grid-template-columns:repeat(2,1fr);grid-template-rows:none;grid-auto-rows:128px;grid-template-areas:none}
  .page-body .ed-mosaic.m5 .ed-tile{grid-area:auto}
  .page-body .ed-mosaic.m5 .t-f1{grid-column:span 2;grid-row:span 2}
  /* 越南文（vn-au）：校名／領域名比中文長很多，128px 小方格會把校名擠出方格上緣被切掉→
     越南文版加高方格＋縮小字級；台灣留澳是 lang="zh-Hant"、不受影響 */
  html[lang="vi"] .page-body .ed-mosaic{grid-auto-rows:172px}
  html[lang="vi"] .page-body .ed-tile-cap .nm{font-size:.95rem}
  html[lang="vi"] .page-body .ed-tile-cap .rk{font-size:.7rem}
  html[lang="vi"] .page-body .ed-tile-cap .sub{font-size:.76rem;line-height:1.4}
}
.page-body .ed-h-apartment{background-image:url(assets/tw-au/housing/apartment.jpg)}
.page-body .ed-h-homestay{background-image:url(assets/tw-au/housing/homestay.jpg)}
.page-body .ed-h-sharehouse{background-image:url(assets/tw-au/housing/sharehouse.jpg)}
.page-body .ed-h-hostel{background-image:url(assets/tw-au/housing/hostel.jpg)}
.page-body .ed-h-agent{background-image:url(assets/tw-au/housing/agent.jpg)}
.page-body .ed-g-melbourne{background-image:url(assets/tw-au/go8/melbourne.jpg)}
.page-body .ed-g-sydney{background-image:url(assets/tw-au/go8/sydney.jpg)}
.page-body .ed-g-unsw{background-image:url(assets/tw-au/go8/unsw.jpg)}
.page-body .ed-g-queensland{background-image:url(assets/tw-au/go8/queensland.jpg)}
.page-body .ed-g-monash{background-image:url(assets/tw-au/go8/monash.jpg)}
.page-body .ed-g-uwa{background-image:url(assets/tw-au/go8/uwa.jpg)}
.page-body .ed-g-adelaide{background-image:url(assets/tw-au/go8/adelaide.jpg)}
.page-body .ed-g-anu{background-image:url(assets/tw-au/go8/anu.jpg)}
.page-body .ed-c-it{background-image:url(assets/tw-au/course/it.jpg)}
.page-body .ed-c-biz{background-image:url(assets/tw-au/course/biz.jpg)}
.page-body .ed-c-eng{background-image:url(assets/tw-au/course/eng.jpg)}
.page-body .ed-c-health{background-image:url(assets/tw-au/course/health.jpg)}
.page-body .ed-c-design{background-image:url(assets/tw-au/course/design.jpg)}
.page-body .ed-la-general{background-image:url(assets/tw-au/lang/general.jpg)}
.page-body .ed-la-exam{background-image:url(assets/tw-au/lang/exam.jpg)}
.page-body .ed-la-eap{background-image:url(assets/tw-au/lang/eap.jpg)}
.page-body .ed-la-pathway{background-image:url(assets/tw-au/lang/pathway.jpg)}
.page-body .ed-li-food{background-image:url(assets/tw-au/life/food.jpg)}
.page-body .ed-li-safe{background-image:url(assets/tw-au/life/safe.jpg)}
.page-body .ed-li-culture{background-image:url(assets/tw-au/life/culture.jpg)}
@media(max-width:820px){
  .page-body .ed-split,.page-body .ed-split.rev{grid-template-columns:1fr;gap:20px}
  .page-body .ed-split.rev .ed-split-fig{order:0}
  .page-body .ed-split-fig{max-width:520px;margin:0 auto;width:100%}
  .page-body .ed-row{grid-template-columns:1fr;gap:12px}
  .page-body .ed-row-img{max-width:420px}
  .page-body .ed-rows.lead .ed-row:first-child .ed-row-img{aspect-ratio:16/9;max-width:none}
  .page-body .ed-rows.ed-zig .ed-row:nth-child(even){grid-template-columns:1fr}
  .page-body .ed-rows.ed-zig .ed-row:nth-child(even) .ed-row-img{order:0}
  .page-body .ed-rows.ed-trio{grid-template-columns:1fr;gap:16px}
  .page-body .ed-rows.ed-trio .ed-row-img{max-width:420px}
  /* 帳單總計：1.5rem + nowrap 的長金額在手機塞不下 → 標籤被壓成直排、金額衝出卡片並讓整頁可橫向晃動。改上下堆疊 */
  .page-body .ed-budget{padding:20px 18px}
  .page-body .ed-budget-total{flex-direction:column;align-items:flex-start;gap:4px}
  .page-body .ed-budget-total span:last-child{font-size:1.22rem}
  /* 每一列同理：值有 white-space:nowrap，越南文的 VND 金額（如 ~580,000,000 VND (AUD 35,000)）
     比中文版的 AUD 長很多，會把 vn-au 費用頁撐到 391px。v0.20.63 當時只修了 -total、漏了 -row。
     一律直排＝不管幣別字串多長都不會再溢出。 */
  .page-body .ed-budget-row{flex-direction:column;align-items:flex-start;gap:4px}
}

/* 為什麼選澳洲 vs 英美 比較表（hub #au-why） */
/* 比較表只有 4 欄短值，撐到 --w-shell 會變稀疏 → 收在閱讀欄置中 */
.au-why .au-vs-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:8px auto 0;max-width:var(--w-read)}
.au-vs{width:100%;border-collapse:collapse;min-width:560px;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 8px 24px rgba(15,26,77,.08)}
.au-vs th,.au-vs td{padding:14px 16px;text-align:left;border-bottom:1px solid #e9eef6;font-size:.98rem;vertical-align:top}
.au-vs thead th{background:var(--navy);color:#fff;font-weight:800;font-size:1rem}
.au-vs tbody td:first-child{font-weight:700;color:var(--navy)}
.au-vs .au-col{background:#fffbe9}
.au-vs thead th.au-col{background:#14215a}
.au-vs tbody tr:last-child td{border-bottom:none}
.au-vs-src{display:block;font-weight:400;color:var(--muted);font-size:.8rem;margin-top:2px}
.au-vs-links{margin-top:18px;display:flex;flex-wrap:wrap;gap:18px}
.au-vs-links a{color:var(--navy);font-weight:700;text-decoration:none;border-bottom:2px solid var(--yellow);padding-bottom:2px}
.au-vs-links a:hover{color:#14215a}
/* 手機上表格是橫捲的（min-width:560px），但沒有捲軸＝看不出美國那欄還在後面 → 給一行提示 */
.au-vs-hint{display:none}
@media(max-width:820px){
  .au-vs-hint{display:block;margin:10px 0 0;text-align:center;color:var(--muted);font-size:.85rem;font-weight:600;letter-spacing:.02em}
}
@media(max-width:560px){.au-vs th,.au-vs td{padding:11px 12px;font-size:.92rem}}

/* ============================================================
   各大學介紹頁的內文照片（13 校共用，中文/越南文兩窗口同一份 inc/au-schools.php）
   資料檔是 PHP 單引號字串、無法呼叫 lus_img()，故圖片網址寫成 {{img:路徑}}，
   由 lus_expand_img_tokens() 在輸出前換成帶 ?v= 的網址。

   這幾頁是「一整套要互相比較的學校檔案」，所以刻意做成統一的兩種圖位、不逐校變花樣：
   .sch-city ＝所在城市的定場照（寬幅 21:9，放在「校區地點」那段開頭）
   .sch-aside＝校景左圖右文（4:3，用來把「學校優勢」的長清單切開）
   照片當文件用，不做卡片框；只有圖說掛一條金色細線，呼應站上既有的 .ed-lead。
   ============================================================ */
.page-body .sch-city{margin:26px 0 24px}
.page-body .sch-city img{display:block;width:100%;height:auto;aspect-ratio:21/9;object-fit:cover;border-radius:14px;margin:0}
.page-body .sch-cap{margin:11px 0 0;padding-left:11px;border-left:3px solid var(--yellow);font-size:.9rem;line-height:1.6;color:var(--muted)}
.page-body .sch-aside{display:grid;grid-template-columns:330px 1fr;gap:28px;align-items:start;margin:22px 0 8px}
.page-body .sch-aside figure{margin:0}
.page-body .sch-aside img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:14px;margin:0}
.page-body .sch-aside > ul{margin:0}
.page-body .sch-aside > ul > li:first-child{margin-top:0}
@media(max-width:820px){
  .page-body .sch-city img{aspect-ratio:16/9}
  /* 手機一律上下堆疊；圖在上、清單在下 */
  .page-body .sch-aside{grid-template-columns:1fr;gap:16px;margin:18px 0 8px}
  .page-body .sch-aside img{aspect-ratio:16/9}
}


/* ============================================================
   開場動畫（preloader）
   2026-08-18 從 WPCode 片段移植進主題。原本存在資料庫，live 上片段不見了、
   動畫就消失且沒人會發現（部署再多次也不會回來，因為它根本不是主題檔）。
   移植時修掉原片段三個問題：①整段 body{} 會覆蓋主題字體 ②logo 寫死 staging
   網址 ③外面包著一整份 HTML 文件（含自己的 <title>）。
   選擇器改用 class：staging 的 WPCode 版是 id 且自帶 CSS，兩邊互不干擾。
   ============================================================ */
/* ========================================
   1. 主容器
   ======================================== */
.lus-preloader {
    --lus-sky: #009FE8;
        --lus-navy: #1E398E;
        --lus-yellow: #FFD000;
        --lus-white: #ffffff;

    position: fixed;
    inset: 0;
    background: var(--lus-white);
    /* 預設隱藏，避免第二次以後進入網頁時瞬間閃出動畫 */
    display: none; 
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 9999999;
    overflow: hidden;
    transition: opacity 0.8s ease;
}

/* ✨ 背景優化：顯著網格效果 */
.lus-preloader::before {
    content: '';
    position: absolute;
    inset: 0;
    /* 將透明度從 0.03 提高到 0.07，並把網格縮小到 30px 讓視覺更精緻 */
    background-image: 
        linear-gradient(rgba(30, 57, 142, 0.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(30, 57, 142, 0.07) 1px, transparent 1px);
    background-size: 30px 30px;
    opacity: 0;
    animation: lusGridFade 1.5s ease forwards;
}

/* ✨ 背景優化：修復中央藍黃擴散光暈 */
.lus-preloader::after {
    content: '';
    position: absolute;
    top: 50%; left: 50%;
    width: 700px; height: 700px;
    background: radial-gradient(circle, 
        rgba(0, 159, 232, 0.15) 0%, 
        rgba(255, 208, 0, 0.06) 35%,
        transparent 65%);
    transform: translate(-50%, -50%) scale(0);
    animation: lusHaloExpand 2.5s ease-out forwards;
    animation-delay: 0.3s;
}

@keyframes lusGridFade {
    to { opacity: 1; }
}

/* 🔴 修正原本寫錯的 Bug (原本寫成 translate 導致動畫失效) */
@keyframes lusHaloExpand {
    to { transform: translate(-50%, -50%) scale(1); }
}

/* ========================================
   2. 主視覺舞台
   ======================================== */
.lus-stage {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    z-index: 5;
}

/* ========================================
   3. 公司 LOGO 圖片容器與動畫
   ======================================== */
.lus-company-logo-wrapper {
    position: relative;
    width: 320px; 
    height: auto;
    opacity: 0;
    animation: lusLogoSmoothEnter 1.2s cubic-bezier(0.25, 1, 0.5, 1) forwards;
    animation-delay: 0.4s;
}

.lus-company-logo-wrapper img {
    width: 100%;
    height: auto;
    display: block;
    filter: drop-shadow(0 15px 35px rgba(30, 57, 142, 0.18));
}

@keyframes lusLogoSmoothEnter {
    0% {
        opacity: 0;
        transform: translateY(30px) scale(0.95);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* ========================================
   4. 浮動裝飾粒子
   ======================================== */
.lus-particle {
    position: absolute;
    border-radius: 50%;
    opacity: 0;
    top: 50%;
    left: 50%;
    pointer-events: none;
}

.lus-particle:nth-child(1) { width: 6px; height: 6px; background: var(--lus-yellow); animation: lusParticle1 2.2s ease-out forwards; animation-delay: 1.2s; }
.lus-particle:nth-child(2) { width: 8px; height: 8px; background: var(--lus-sky); animation: lusParticle2 2.2s ease-out forwards; animation-delay: 1.35s; }
.lus-particle:nth-child(3) { width: 5px; height: 5px; background: var(--lus-navy); animation: lusParticle3 2.2s ease-out forwards; animation-delay: 1.5s; }
.lus-particle:nth-child(4) { width: 7px; height: 7px; background: var(--lus-yellow); animation: var(--lus-yellow); animation: lusParticle4 2.2s ease-out forwards; animation-delay: 1.25s; }
.lus-particle:nth-child(5) { width: 6px; height: 6px; background: var(--lus-sky); animation: lusParticle5 2.2s ease-out forwards; animation-delay: 1.4s; }
.lus-particle:nth-child(6) { width: 5px; height: 5px; background: var(--lus-navy); animation: lusParticle6 2.2s ease-out forwards; animation-delay: 1.55s; }

@keyframes lusParticle1 {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(0); }
    40% { opacity: 1; }
    100% { opacity: 0.45; transform: translate(-340px, -220px) scale(1); }
}
@keyframes lusParticle2 {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(0); }
    40% { opacity: 1; }
    100% { opacity: 0.45; transform: translate(320px, -250px) scale(1); }
}
@keyframes lusParticle3 {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(0); }
    40% { opacity: 1; }
    100% { opacity: 0.45; transform: translate(-380px, 180px) scale(1); }
}
@keyframes lusParticle4 {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(0); }
    40% { opacity: 1; }
    100% { opacity: 0.45; transform: translate(360px, 200px) scale(1); }
}
@keyframes lusParticle5 {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(0); }
    40% { opacity: 1; }
    100% { opacity: 0.45; transform: translate(-220px, 280px) scale(1); }
}
@keyframes lusParticle6 {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(0); }
    40% { opacity: 1; }
    100% { opacity: 0.45; transform: translate(260px, -300px) scale(1); }
}

/* ========================================
   5. 品牌標語
   ======================================== */
.lus-tagline {
    font-family: 'Helvetica Neue', Arial, sans-serif;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 8px;
    text-transform: uppercase;
    color: var(--lus-navy);
    opacity: 0;
    margin-top: 10px;
    animation: lusTaglineFade 0.9s ease-out forwards;
    animation-delay: 1.8s;
}

@keyframes lusTaglineFade {
    from { opacity: 0; transform: translateY(8px); letter-spacing: 3px; }
    to { opacity: 0.55; transform: translateY(0); letter-spacing: 8px; }
}

/* ========================================
   6. 進度指示器
   ======================================== */
.lus-progress-dots {
    position: absolute;
    bottom: 10%;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    opacity: 0;
    animation: lusFadeIn 0.4s ease forwards;
    animation-delay: 2.0s;
}

.lus-progress-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    animation: lusDotPulse 1.4s ease-in-out infinite;
}

.lus-progress-dot:nth-child(1) { background: var(--lus-navy); animation-delay: 0s; }
.lus-progress-dot:nth-child(2) { background: var(--lus-sky); animation-delay: 0.2s; }
.lus-progress-dot:nth-child(3) { background: var(--lus-yellow); animation-delay: 0.4s; }

@keyframes lusDotPulse {
    0%, 100% { opacity: 0.3; transform: scale(0.8); }
    50% { opacity: 1; transform: scale(1.2); }
}

@keyframes lusFadeIn {
    to { opacity: 1; }
}

/* ========================================
   7. 載入完成消失效果
   ======================================== */
.lus-preloader.fade-out {
    opacity: 0;
    pointer-events: none;
}

.lus-preloader.fade-out .lus-stage {
    animation: lusExit 0.7s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes lusExit {
    to {
        transform: translateY(-40px) scale(0.92);
        opacity: 0;
    }
}

/* ========================================
   8. 響應式設計（手機端自動縮小 LOGO）
   ======================================== */
@media (max-width: 768px) {
    .lus-company-logo-wrapper { width: 240px; }
    .lus-tagline { font-size: 10px; letter-spacing: 5px; margin-top: 5px; }
}

@media (max-width: 480px) {
    .lus-company-logo-wrapper { width: 190px; }
}
