/*
Theme Name: 力進教育 Lijin Education
Theme URI: https://macaulijin.com/
Author: 力進教育
Author URI: https://macaulijin.com/
Description: 為澳門力進教育量身定制的藍白前端主題。深海靛藍主色、練習簿橫線母題、思源黑體排版，專注建立家長信任感。支援自訂頁首、導覽選單、課程與分社內容。
Version: 1.2.20
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lijin
Tags: education, tutoring, blue, custom-menu, featured-images, translation-ready
*/

/* ==========================================================================
   力進教育 藍白設計系統
   深海靛藍主色 · 練習簿橫線母題 · 思源黑體排版
   ========================================================================== */

:root{
  --ink:#0A2540;
  --navy:#123A63;
  --blue:#1F6FEB;
  --paper:#F6F8FB;
  --sky:#DCE9F7;
  --line:#C6D4E4;
  --white:#FFFFFF;
  --ink-soft:#41566E;
  --sans:"Microsoft JhengHei","微軟正黑體","PingFang HK","PingFang TC",-apple-system,"Segoe UI",sans-serif;
  --mono:"Microsoft JhengHei","微軟正黑體","Consolas","SFMono-Regular",Menlo,monospace;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{animation:none!important;transition:none!important;}
}

body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--white);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  /* 防止任何元素橫向撐大版面視口（clip 不產生滾動容器，不影響 sticky 頁首） */
  overflow-x:clip;
}

a{color:inherit;text-decoration:none;}
img{max-width:100%;height:auto;display:block;}
a:focus-visible,button:focus-visible{
  outline:3px solid var(--blue);
  outline-offset:3px;
  border-radius:2px;
}

/* 練習簿橫線母題 */
.ruled{
  background-image:repeating-linear-gradient(
    to bottom,transparent 0,transparent 39px,var(--line) 39px,var(--line) 40px);
}

.wrap{max-width:1120px;margin:0 auto;padding:0 28px;}

/* 螢幕閱讀器輔助 */
.screen-reader-text{
  position:absolute;width:1px;height:1px;margin:-1px;padding:0;
  overflow:hidden;clip:rect(0 0 0 0);border:0;
}

/* ---------- Header ---------- */
/* 注意：backdrop-filter 不可直接放在 .site-header 上——它會讓頁頭成為
   position:fixed 子元素（行動版抽屜選單）的定位基準，抽屜會被壓縮成 0 高度。
   改放在 ::before 偽元素上，毛玻璃效果不變、抽屜定位恢復正常。 */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.92);
  border-bottom:1px solid var(--line);
}
.site-header::before{
  content:"";position:absolute;inset:0;z-index:-1;
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  pointer-events:none;
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;
  height:68px;
}
.brand{
  display:flex;align-items:center;gap:10px;
  flex:none;
  font-weight:900;font-size:1.35rem;letter-spacing:.04em;
  color:var(--navy);
}
.brand .zh{font-size:1.35rem;}
.brand .en{font-size:.72rem;font-weight:500;color:var(--ink-soft);letter-spacing:.12em;text-transform:uppercase;}
.brand .custom-logo,
.brand img{max-height:54px;width:auto;display:block;}
.main-nav{display:flex;align-items:center;flex:none;min-width:0;}
.main-nav .menu{
  display:flex;align-items:center;gap:30px;
  list-style:none;margin:0;padding:0;
}
.main-nav .menu > li{white-space:nowrap;}
.main-nav a{
  font-size:.95rem;color:var(--ink-soft);font-weight:500;
  padding:6px 0;position:relative;white-space:nowrap;
}
.main-nav a:hover{color:var(--navy);}
.main-nav .current-menu-item > a,
.main-nav .current_page_item > a{color:var(--navy);}
.nav-cta{
  flex:none;
  background:var(--blue);color:#fff;font-weight:700;
  padding:10px 22px;border-radius:6px;font-size:.92rem;
  transition:background .18s ease;
}
.nav-cta:hover{background:var(--navy);color:#fff;}
.nav-cta .cta-short{display:none;}
/* 行動版選單開關：checkbox 本身視覺隱藏，僅作狀態；圖示由 label.nav-toggle 承載。
   注意：<input> 為替換元素，不渲染 ::before 偽元素，故 ☰ 圖示必須放在 label 上。 */
.nav-switch{
  position:absolute;
  width:1px;height:1px;margin:-1px;padding:0;border:0;
  clip:rect(0 0 0 0);clip-path:inset(50%);
  overflow:hidden;white-space:nowrap;
}
/* ☰ 開關按鈕（桌面版隱藏） */
.nav-toggle{
  display:none;
  width:2.2rem;height:2.2rem;flex:none;
  align-items:center;justify-content:center;
  font-size:1.5rem;line-height:1;color:var(--navy);
  cursor:pointer;user-select:none;
}
.nav-toggle::before{content:"☰";}
#lijin-nav-switch:checked ~ .wrap .nav-toggle::before{content:"✕";}
.nav-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:4px;}
.mobile-nav{display:none;}
.drawer-cta{display:none;}

/* 較窄桌面：收緊導航間距，避免換行 */
@media (max-width:1080px){
  .nav{gap:16px;}
  .main-nav .menu{gap:20px;}
  .main-nav a{font-size:.9rem;}
  .nav-cta{padding:9px 16px;font-size:.88rem;}
  .brand{font-size:1.2rem;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  background:var(--navy);
  color:#fff;
  overflow:hidden;
}
.hero-bg{
  position:absolute;inset:0;z-index:0;
  background-size:cover;background-position:center;
}
.hero-bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(10,37,64,.94) 0%,rgba(10,37,64,.84) 48%,rgba(10,37,64,.55) 100%);
}
.hero::after{
  content:"";position:absolute;inset:0;z-index:1;
  background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 39px,rgba(255,255,255,.06) 39px,rgba(255,255,255,.06) 40px);
  pointer-events:none;
}
.hero-inner{
  position:relative;z-index:2;
  padding:110px 0 96px;
  max-width:1120px;margin:0 auto;padding-left:28px;padding-right:28px;
}
.hero .kicker{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.85rem;letter-spacing:.06em;color:#9FC1E4;
  font-weight:500;
}
.hero .kicker::before{content:"";width:28px;height:1px;background:#5C86B4;}
.hero h1{
  font-size:clamp(2.4rem,6vw,4.2rem);
  font-weight:900;
  line-height:1.15;
  letter-spacing:.01em;
  margin:22px 0 18px;
  max-width:16em;
}
.hero h1 .mark{color:#7FB0E8;}
.hero .sub{
  font-size:1.12rem;color:#C9D9EC;max-width:34em;
  font-weight:300;
}
.hero-meta{
  display:flex;gap:44px;margin-top:46px;flex-wrap:wrap;
}
.hero-meta .stat b{
  display:block;font-size:2rem;font-weight:900;line-height:1;
  font-variant-numeric:tabular-nums;
}
.hero-meta .stat span{
  font-size:.86rem;color:#9FC1E4;font-weight:400;
  display:block;margin-top:8px;
}
.hero-cta{display:flex;gap:18px;margin-top:50px;flex-wrap:wrap;align-items:center;}
.btn{
  display:inline-block;font-weight:700;font-size:1rem;
  padding:15px 30px;border-radius:6px;cursor:pointer;
  transition:transform .15s ease,background .18s ease;
  border:none;
}
.btn-primary{background:var(--blue);color:#fff;}
.btn-primary:hover{background:#1a5fd0;color:#fff;}
.btn-ghost{
  color:#fff;border:1px solid rgba(255,255,255,.4);background:transparent;
}
.btn-ghost:hover{border-color:#fff;color:#fff;}

/* ---------- Section 通用 ---------- */
.site-main section{padding:96px 0;}
.sec-head{max-width:40em;margin-bottom:56px;}
.sec-title{
  font-size:clamp(1.8rem,4vw,2.5rem);
  font-weight:900;line-height:1.25;letter-spacing:.01em;
  color:var(--ink);
  margin-bottom:14px;
}
.sec-title .rule{
  display:inline-block;width:1.2em;height:8px;
  background:var(--blue);margin-right:8px;vertical-align:baseline;
}
.sec-title .sec-title-note{
  font-size:.62em;font-weight:600;color:var(--ink-soft);
  letter-spacing:0;margin-left:.2em;
}
.sec-desc{color:var(--ink-soft);font-size:1.05rem;font-weight:300;}

/* ---------- 信任點 ---------- */
.trust{background:var(--paper);}
.trust-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border-top:1px solid var(--line);
}
.trust-item{
  padding:34px 30px 34px 0;
  border-bottom:1px solid var(--line);
}
.trust-item + .trust-item{padding-left:30px;border-left:1px solid var(--line);}
.trust-item .idx{
  font-family:var(--mono);font-size:.8rem;color:var(--blue);
  letter-spacing:.05em;margin-bottom:14px;display:block;
}
.trust-item h3{font-size:1.15rem;font-weight:700;margin-bottom:10px;color:var(--navy);}
.trust-item p{font-size:.95rem;color:var(--ink-soft);font-weight:400;}

/* ---------- 課程收費表（首頁欄目） ---------- */
.pricing-section{background:var(--paper);}
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.pricing-card{
  border:1px solid var(--line);border-radius:10px;
  background:var(--white);padding:32px 30px;
  display:flex;flex-direction:column;
  transition:border-color .18s ease,transform .18s ease;
}
.pricing-card:hover{border-color:var(--blue);transform:translateY(-4px);}
.pricing-tag{
  display:inline-block;align-self:flex-start;
  font-family:var(--mono);font-size:.78rem;color:var(--blue);
  letter-spacing:.04em;background:var(--sky);
  padding:3px 12px;border-radius:999px;margin-bottom:16px;
}
.pricing-card h3{font-size:1.25rem;font-weight:900;color:var(--ink);margin-bottom:10px;line-height:1.35;}
.pricing-price{
  font-family:var(--mono);font-size:1.35rem;font-weight:700;color:var(--navy);
  margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--line);
}
.pricing-list{list-style:none;margin:0 0 24px;flex-grow:1;}
.pricing-list li{
  position:relative;padding-left:22px;margin-bottom:10px;
  font-size:.95rem;color:var(--ink-soft);
}
.pricing-list li::before{
  content:"";position:absolute;left:0;top:.55em;
  width:8px;height:8px;border-radius:2px;background:var(--blue);
}
.pricing-link{
  font-weight:700;color:var(--navy);font-size:.95rem;
  display:inline-flex;align-items:center;gap:6px;
}
.pricing-link:hover{color:var(--blue);}

/* ---------- 顧客口碑 ---------- */
.testimonials-section{padding:72px 0 96px;}
.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.testimonial-card{
  border:1px solid var(--line);border-radius:10px;
  background:var(--white);padding:32px 30px;
  display:flex;flex-direction:column;
  transition:border-color .18s ease,transform .18s ease;
}
.testimonial-card:hover{border-color:var(--blue);transform:translateY(-4px);}
.testimonial-media{
  margin:-32px -30px 20px;
  border-radius:10px 10px 0 0;
  overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  background:var(--paper);
  cursor:zoom-in;
  padding:0;border:none;
  font:inherit;text-align:center;
  -webkit-appearance:none;appearance:none;
  width:100%;
}
.testimonial-media img{
  width:100%;height:auto;max-height:420px;
  object-fit:contain;display:block;
  transition:opacity .18s ease;
}
.testimonial-media:hover img{opacity:.92;}
.testimonial-media:focus-visible{outline:2px solid var(--blue);outline-offset:-2px;}
.testimonial-stars{margin-bottom:16px;line-height:1;}
.testimonial-stars .star{font-size:1.15rem;color:#d7dce5;margin-right:2px;}
.testimonial-stars .star.is-on{color:#f5a623;}
.testimonial-text{
  font-size:1rem;color:var(--ink-soft);line-height:1.7;
  margin:0 0 20px;flex-grow:1;
}
.testimonial-name{
  font-weight:700;color:var(--navy);font-size:.95rem;
}
/* 好評分頁 */
.testimonials-wrap{padding:64px 28px 96px;}
.testimonials-cta{margin-top:48px;display:flex;gap:16px;flex-wrap:wrap;justify-content:center;}
.testimonials-cta .btn{font-size:1rem;padding:14px 28px;}

/* ---------- 我們的優勢頁 ---------- */
.advantages-wrap{padding:64px 28px 96px;}
.advantages-wrap .entry-content{max-width:980px;margin:0 auto;}
.advantages-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:24px;
}
.advantage-item{
  border:1px solid var(--line);border-radius:10px;
  background:var(--white);padding:34px 32px;
  transition:border-color .18s ease,transform .18s ease;
}
.advantage-item:hover{border-color:var(--blue);transform:translateY(-4px);}
.advantage-item .idx{
  font-family:var(--mono);font-size:.8rem;color:var(--blue);
  letter-spacing:.05em;margin-bottom:14px;display:block;
}
.advantage-item h2{font-size:1.2rem;font-weight:900;color:var(--navy);margin-bottom:10px;}
.advantage-item p{font-size:.95rem;color:var(--ink-soft);line-height:1.7;}
.advantages-cta{margin-top:48px;display:flex;gap:16px;flex-wrap:wrap;justify-content:center;}
.advantages-cta .btn{font-size:1rem;padding:14px 28px;}

/* ---------- 各區分社路線圖頁 ---------- */
.branch-maps-wrap{padding:64px 28px 96px;}
.branch-maps-cta{margin-top:48px;display:flex;gap:16px;flex-wrap:wrap;justify-content:center;}
.branch-maps-cta .btn{font-size:1rem;padding:14px 28px;}

/* ---------- 精選課程 ---------- */
.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.course{
  border:1px solid var(--line);border-radius:8px;
  padding:0;background:var(--white);
  display:flex;flex-direction:column;
  overflow:hidden;
  transition:border-color .18s ease;
}
.course:hover{border-color:var(--navy);}
.course-photo{
  width:100%;aspect-ratio:3/2;object-fit:cover;display:block;
  border-bottom:1px solid var(--line);
}
.course-body{
  padding:28px 30px 34px;
  display:flex;flex-direction:column;flex:1;
}
.course .tag{
  font-family:var(--mono);font-size:.78rem;color:var(--blue);
  letter-spacing:.04em;margin-bottom:14px;display:block;
}
.course h3{font-size:1.3rem;font-weight:900;line-height:1.35;margin-bottom:8px;color:var(--ink);}
.course .en{font-size:.85rem;color:var(--ink-soft);font-weight:400;margin-bottom:20px;letter-spacing:.02em;}
.course p{font-size:.95rem;color:var(--ink-soft);flex-grow:1;margin-bottom:24px;}
.course .more{
  font-weight:700;color:var(--navy);font-size:.95rem;
  display:inline-flex;align-items:center;gap:6px;
}
.course .more::after{content:"›";font-size:1.2rem;line-height:0;}

/* ---------- 分社（含門面照片） ---------- */
.branches{background:var(--navy);color:#fff;}
.branches .sec-title{color:#fff;}
.branches .sec-desc{color:#9FB6CF;}
.branch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.branch{
  border:1px solid var(--line);border-radius:8px;
  overflow:hidden;background:var(--white);
  display:flex;flex-direction:column;
  transition:border-color .18s ease;
}
.branch:hover{border-color:var(--navy);}
.branch-photo{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;border-bottom:1px solid var(--line);}
.branch-body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1;}
.branch h3{font-size:1.08rem;font-weight:700;margin-bottom:6px;line-height:1.4;color:var(--ink);}
.branch h3 a{color:var(--ink);}
.branch h3 a:hover{color:var(--navy);}
.branch .loc{font-size:.88rem;color:var(--ink-soft);font-weight:400;}
.branch-body .branch-addr,
.branch-body .branch-phone{
  font-size:.85rem;color:var(--ink-soft);line-height:1.5;margin:2px 0 0;
  background:none;border:none;padding:0;font-weight:400;
  max-width:none;display:block;
}
.branch-body .branch-phone{color:var(--navy);font-weight:500;}
.branch .more{margin-top:16px;font-weight:700;color:var(--navy);font-size:.9rem;}

/* 課程卡標題連結 */
.course h3 a{color:var(--ink);}
.course h3 a:hover{color:var(--navy);}

/* ---------- About ---------- */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
.about-grid h3{font-size:1.4rem;font-weight:900;line-height:1.4;margin-bottom:18px;color:var(--ink);}
.about-grid p{color:var(--ink-soft);margin-bottom:18px;font-weight:400;}
.about-grid .quote{
  border-left:3px solid var(--blue);padding:6px 0 6px 22px;
  font-size:1.05rem;color:var(--navy);font-weight:500;
}

/* ---------- CTA ---------- */
.cta-band{
  background:var(--paper);border-top:1px solid var(--line);
  padding:80px 0;text-align:center;
}
.cta-band h2{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:900;color:var(--ink);margin-bottom:14px;}
.cta-band p{color:var(--ink-soft);margin-bottom:32px;font-weight:300;font-size:1.05rem;}

/* ---------- Footer ---------- */
.site-footer{
  background:var(--ink);color:#9FB6CF;padding:56px 0 40px;
}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:48px;margin-bottom:48px;}
.site-footer .fbrand{font-weight:900;font-size:1.2rem;color:#fff;margin-bottom:12px;}
.site-footer p{font-size:.9rem;font-weight:400;}
.site-footer h4{color:#fff;font-size:.95rem;font-weight:700;margin-bottom:14px;}
.f-links{list-style:none;}
.f-links a{display:block;font-size:.9rem;margin-bottom:8px;color:#9FB6CF;}
.f-links a:hover{color:#fff;}
.foot-bottom{
  border-top:1px solid rgba(255,255,255,.12);padding-top:24px;
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  font-size:.82rem;
}

/* ---------- 全站頁尾 FAQ ---------- */
.faq-section{
  background:var(--paper);padding:64px 0 72px;
  border-top:1px solid var(--line, rgba(0,0,0,.06));
}
.faq-section .sec-head{margin-bottom:40px;}
.faq-list{max-width:52em;margin:0 auto;}
.faq-item{
  background:#fff;border:1px solid var(--line, rgba(0,0,0,.08));
  border-radius:12px;margin-bottom:14px;overflow:hidden;
  box-shadow:0 1px 3px rgba(15,34,58,.04);
}
.faq-item summary{
  list-style:none;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px 24px;font-weight:700;font-size:1.02rem;color:var(--ink);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary .faq-icon{
  flex:none;width:20px;height:20px;position:relative;
}
.faq-item summary .faq-icon::before,
.faq-item summary .faq-icon::after{
  content:"";position:absolute;background:var(--blue);
  top:50%;left:50%;transform:translate(-50%,-50%);
  transition:transform .2s ease;
}
.faq-item summary .faq-icon::before{width:16px;height:2px;}
.faq-item summary .faq-icon::after{width:2px;height:16px;}
.faq-item[open] summary .faq-icon::after{transform:translate(-50%,-50%) rotate(90deg);}
.faq-item summary:hover{color:var(--blue);}
.faq-answer{
  padding:0 24px 22px;color:var(--ink-soft);
  font-size:.98rem;line-height:1.85;
}
.faq-answer p{margin-bottom:10px;}

/* ---------- 通用內容頁（頁面/文章） ---------- */
.page-header{
  background:var(--navy);color:#fff;padding:72px 0 60px;
  position:relative;overflow:hidden;
}
.page-header::after{
  content:"";position:absolute;inset:0;
  background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 39px,rgba(255,255,255,.05) 39px,rgba(255,255,255,.05) 40px);
  pointer-events:none;
}
.page-header .wrap{position:relative;z-index:1;}
.page-header h1{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:900;}
.entry-content{
  max-width:760px;margin:0 auto;padding:72px 28px;color:var(--ink-soft);
}
.entry-content h2,.entry-content h3{color:var(--ink);font-weight:900;margin:32px 0 14px;}
.entry-content p{margin-bottom:18px;}
.entry-content a{color:var(--blue);}
.entry-content img{max-width:100%;height:auto;border-radius:8px;}

/* 頁首副標題 */
.page-header .page-sub{
  color:#9FB6CF;margin-top:12px;font-size:1.05rem;font-weight:300;
  max-width:40em;
}

/* 文章頁首 meta（日期 / 分類）在深色 page-header 內 */
.page-header .entry-meta{
  color:#9FB6CF;margin-top:10px;font-size:.9rem;
}
.page-header .entry-meta a{color:#9FB6CF;}
.page-header .entry-meta a:hover{color:#fff;}

/* 列表頁容器 */
.archive-wrap{padding:72px 28px 96px;}
.empty{color:var(--ink-soft);font-size:1.05rem;}

/* ---------- 課程價目表頁 ---------- */
.pricing-wrap{padding:64px 28px 96px;}
.pricing-wrap .entry-content{
  max-width:880px;margin:0 auto;padding:0;
}
.pricing-wrap .entry-content table{
  width:100%;border-collapse:collapse;margin:24px 0;
  font-size:.95rem;
}
.pricing-wrap .entry-content th,
.pricing-wrap .entry-content td{
  border:1px solid var(--line);padding:14px 16px;text-align:left;
}
.pricing-wrap .entry-content th{
  background:var(--navy);color:#fff;font-weight:700;
}
.pricing-wrap .entry-content tr:nth-child(even) td{background:var(--paper);}
.pricing-wrap .entry-content td{font-variant-numeric:tabular-nums;}
.pricing-note{
  font-size:.9rem;color:var(--ink-soft);margin-top:28px;
  text-align:center;font-weight:300;
}
.pricing-cta{
  max-width:880px;margin:40px auto 0;
  display:flex;gap:16px;flex-wrap:wrap;justify-content:center;
}
.pricing-cta .btn{font-size:1rem;padding:14px 28px;}

/* 分頁 */
.navigation.pagination,
.pagination{display:flex;justify-content:center;gap:8px;margin-top:56px;}
.pagination .nav-links{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;}
.pagination .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:40px;height:40px;padding:0 12px;
  border:1px solid var(--line);border-radius:6px;
  color:var(--ink-soft);font-weight:500;font-size:.95rem;
}
.pagination .page-numbers.current{background:var(--navy);border-color:var(--navy);color:#fff;}
.pagination .page-numbers:hover:not(.current){border-color:var(--navy);color:var(--navy);}

/* 精選入口區（首頁） */
.featured-section{background:var(--white);}
.featured-section--branches{background:var(--paper);}
.sec-head--split{
  max-width:none;
  display:flex;align-items:flex-end;justify-content:space-between;gap:24px;
}
.sec-head--split .sec-desc{max-width:40em;}
.sec-more{
  flex:none;font-weight:700;color:var(--blue);font-size:.95rem;
  padding-bottom:4px;border-bottom:2px solid var(--blue);
  white-space:nowrap;
}
.sec-more:hover{color:var(--navy);border-color:var(--navy);}

/* ---------- 分店路線地圖 ---------- */
.maps-section{background:var(--white);padding:72px 0 96px;}
.map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.map-card{
  border:1px solid var(--line);border-radius:10px;
  background:var(--white);overflow:hidden;
  display:flex;flex-direction:column;
  transition:border-color .18s ease,transform .18s ease;
}
.map-card:hover{border-color:var(--blue);transform:translateY(-4px);}
.map-photo{
  display:block;width:100%;
  padding:0;border:none;margin:0;
  background:none;cursor:zoom-in;
  font:inherit;text-align:center;
  -webkit-appearance:none;appearance:none;
  border-bottom:1px solid var(--line);
}
.map-photo img{
  width:100%;height:auto;display:block;
  transition:opacity .18s ease;
}
.map-photo:hover img{opacity:.9;}
.map-photo:focus-visible{outline:2px solid var(--blue);outline-offset:-2px;}
.map-body{padding:20px 22px 24px;}
.map-body h3{font-size:1.08rem;font-weight:900;color:var(--ink);margin:0 0 6px;line-height:1.4;}
.map-body .loc{font-size:.88rem;color:var(--ink-soft);}

/* 課程詳情頁 */
.course-single .page-header--course{background:var(--navy);}
.course-single .tag--on-dark{
  display:inline-block;background:rgba(255,255,255,.14);
  color:#fff;padding:4px 12px;border-radius:999px;
  font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;
  margin-bottom:16px;
}
.course-single__wrap{padding:0 28px 96px;}
.course-hero-img,
.branch-hero-img{margin:0 -28px 40px;}
.course-hero-img img,
.branch-hero-img img{
  width:100%;max-height:480px;object-fit:cover;display:block;
}
.course-single .entry-content,
.branch-single .entry-content{padding:0;max-width:760px;margin:0 auto;}
.course-single__cta,
.branch-single__cta{
  max-width:760px;margin:48px auto 0;
  display:flex;gap:16px;flex-wrap:wrap;
}
.course-single__cta .btn,
.branch-single__cta .btn{text-align:center;}

/* 分社詳情頁 */
.branch-single__wrap{padding:0 28px 96px;}
.branch-addr{
  max-width:760px;margin:0 auto 32px;
  display:flex;align-items:flex-start;gap:10px;
  background:var(--paper);border:1px solid var(--line);
  padding:18px 20px;border-radius:8px;
  color:var(--ink);font-weight:500;line-height:1.6;
}
.branch-addr .addr-icon{font-size:1.1rem;line-height:1.6;}
.branch-phone{
  max-width:760px;margin:0 auto 32px;
  display:flex;align-items:flex-start;gap:10px;
  background:var(--paper);border:1px solid var(--line);
  padding:18px 20px;border-radius:8px;
  color:var(--ink);font-weight:500;line-height:1.6;
}
.branch-phone .phone-icon{font-size:1.1rem;line-height:1.6;}
.branch-single .branch-hero-img{margin-bottom:24px;}
.branch-single__cta{margin-top:40px;}

/* ---------- BLOG / 教育資訊 ---------- */
.blog-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
}
.blog-card{
  border:1px solid var(--line);border-radius:8px;
  background:var(--white);overflow:hidden;
  display:flex;flex-direction:column;
  transition:border-color .18s ease;
}
.blog-card:hover{border-color:var(--navy);}
.blog-card .thumb{
  aspect-ratio:16/9;background:var(--sky);
  display:flex;align-items:center;justify-content:center;
  color:var(--navy);font-weight:500;font-size:.9rem;
}
.blog-card .thumb img{width:100%;height:100%;object-fit:cover;}
.blog-card .body{padding:26px 24px;display:flex;flex-direction:column;flex-grow:1;}
.blog-card .meta{
  font-family:var(--mono);font-size:.78rem;color:var(--blue);
  letter-spacing:.03em;margin-bottom:12px;display:block;
}
.blog-card h3{font-size:1.12rem;font-weight:700;line-height:1.45;margin-bottom:10px;color:var(--ink);}
.blog-card p{font-size:.92rem;color:var(--ink-soft);flex-grow:1;margin-bottom:20px;}
.blog-card .more{
  font-weight:700;color:var(--navy);font-size:.92rem;
  display:inline-flex;align-items:center;gap:6px;
}
.blog-card .more::after{content:"›";font-size:1.2rem;line-height:0;}

/* 博客文章內文 */
.single-post .entry-meta{
  color:var(--ink-soft);font-size:.9rem;margin-bottom:24px;
}
.single-post .entry-meta .sep{margin:0 8px;}

/* ---------- 底部聯絡雙按鈕（僅移動端）：微信 + 電話 ---------- */
.contact-fab{
  display:none;
  position:fixed;left:0;right:0;bottom:0;z-index:90;
  background:var(--navy);
  box-shadow:0 -2px 12px rgba(10,37,64,.18);
  /* 安卓手勢條 / iOS 底部安全區：抬高手按鈕，避免被系統欄遮擋 */
  padding-bottom:env(safe-area-inset-bottom,0px);
  /* 強制獨立合成層：修復 Android 瀏覽器滾動時固定欄不重繪、子按鈕消失的故障 */
  -webkit-transform:translateZ(0);
  transform:translateZ(0);
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
  will-change:transform;
}
.contact-fab .fab-btn{
  flex:1 1 50%;min-width:0;
  display:flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 8px;
  color:#fff;font-weight:700;font-size:.95rem;
  letter-spacing:.02em;white-space:nowrap;
  font-family:var(--sans);
  border:none;background:transparent;cursor:pointer;
  min-height:56px;
  -webkit-tap-highlight-color:transparent;
}
.contact-fab .fab-btn + .fab-btn{border-left:1px solid rgba(255,255,255,.25);}
.contact-fab .fab-wechat:hover{background:rgba(255,255,255,.08);color:#fff;}
.contact-fab .fab-phone{
  background:var(--blue)!important;
  display:flex!important;
  color:#fff!important;
}
.contact-fab .fab-phone:hover{background:#1a5fd0;color:#fff;}
.contact-fab .fab-icon{display:inline-flex;width:20px;height:20px;flex:none;}
.contact-fab .fab-icon svg{width:20px;height:20px;}

/* 微信 QR 彈窗 */
.qr-modal{
  position:fixed;inset:0;z-index:1000;
  display:flex;align-items:center;justify-content:center;
  padding:20px;
  padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));
  overscroll-behavior:contain;
}
.qr-modal[hidden]{display:none!important;}
.qr-backdrop{position:absolute;inset:0;background:rgba(10,37,64,.72);}
.qr-card{
  position:relative;z-index:1;
  background:#fff;border-radius:12px;
  padding:28px 22px 22px;text-align:center;
  width:min(320px,100%);
  max-height:calc(100vh - 40px);
  max-height:calc(100dvh - 40px);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.qr-card img{width:min(240px,64vw);height:auto;margin:0 auto 14px;display:block;}
.qr-name{font-weight:900;font-size:1.1rem;line-height:1.4;color:var(--ink);margin-bottom:6px;word-break:break-word;}
.qr-hint{font-size:.9rem;color:var(--ink-soft);}
.qr-close{
  position:absolute;top:8px;right:8px;
  width:36px;height:36px;border:none;background:transparent;
  font-size:1.1rem;color:var(--ink-soft);cursor:pointer;border-radius:50%;
}
.qr-close:hover{background:var(--paper);color:var(--ink);}

/* ---------- 口碑截圖 Lightbox ---------- */
.img-modal{
  position:fixed;inset:0;z-index:1100;
  display:flex;align-items:center;justify-content:center;
  padding:20px;
  padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));
  overscroll-behavior:contain;
}
.img-modal[hidden]{display:none!important;}
.img-backdrop{position:absolute;inset:0;background:rgba(10,37,64,.88);}
.img-stage{
  position:relative;z-index:1;
  max-width:min(480px,100%);
  max-height:calc(100vh - 40px);
  max-height:calc(100dvh - 40px);
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}
.img-stage img{
  display:block;width:auto;max-width:100%;height:auto;
  max-height:calc(100vh - 40px);
  max-height:calc(100dvh - 40px);
  border-radius:8px;
}
.img-close{
  position:fixed;top:12px;right:12px;
  width:40px;height:40px;border:none;
  background:rgba(255,255,255,.16);color:#fff;
  font-size:1.2rem;cursor:pointer;border-radius:50%;
  z-index:2;line-height:1;
}
.img-close:hover{background:rgba(255,255,255,.32);}

/* ---------- 響應式 ---------- */
@media (max-width:900px){
  .trust-grid{grid-template-columns:1fr 1fr;}
  .trust-item:nth-child(odd){padding-left:0;border-left:none;}
  .trust-item:nth-child(even){padding-left:30px;border-left:1px solid var(--line);}
  .course-grid{grid-template-columns:1fr;}
  .blog-grid{grid-template-columns:1fr;}
  .branch-grid{grid-template-columns:1fr 1fr;}
  .pricing-grid{grid-template-columns:1fr;}
  .testimonial-grid{grid-template-columns:1fr;}
  .map-grid{grid-template-columns:1fr 1fr;}
  .about-grid{grid-template-columns:1fr;gap:40px;}
  .foot-grid{grid-template-columns:1fr;gap:32px;}
}

@media (max-width:640px){
  .wrap{padding:0 20px;}
  .nav{height:60px;position:relative;}
  /* 手機版 LOGO：平移至中間並放大一倍 */
  .brand{
    position:absolute;left:50%;top:50%;
    transform:translate(-50%,-50%);
    z-index:1;
  }
  .brand .zh{font-size:2.7rem;}
  .brand .en{font-size:1.44rem;}
  .brand .custom-logo,
  .brand img{max-height:108px;}
  /* 頂欄轉化按鈕：與電腦版頭部按鈕同功能（點擊彈出微信 QR），移動端常駐最右側 */
  .nav-cta{
    display:inline-flex;align-items:center;justify-content:center;
    margin-left:auto;margin-right:0;
    padding:8px 14px;font-size:.88rem;border-radius:6px;
    white-space:nowrap;
  }
  .nav-cta .cta-full{display:none;}
  .nav-cta .cta-short{display:inline;}

  /* 行動版隱藏桌面導航，改用抽屜選單 */
  .main-nav{display:none;}

  /* ☰ 開關：顯示在最左側（flex 第一個元素），與「預約試堂」同一水平線 */
  .nav-toggle{
    display:inline-flex;
    width:2.4rem;height:2.4rem;
    font-size:1.6rem;
  }

  /* 抽屜式導航（純 CSS :checked 開合，不依賴 JS） */
  .mobile-nav{
    display:block;
    position:fixed;top:60px;left:0;right:0;bottom:0;
    background:var(--white);
    padding:24px 20px;
    transform:translate3d(100%,0,0);
    /* 關閉時完全不可見：部分安卓瀏覽器會把 translateX(100%) 的固定元素
       計入橫向溢出、撐大版面視口，導致整頁被縮小顯示 */
    visibility:hidden;
    transition:transform .25s ease, visibility 0s linear .25s;
    overflow-y:auto;
    z-index:80;
  }
  .nav-switch:checked ~ .mobile-nav{
    transform:translate3d(0,0,0);
    visibility:visible;
    transition:transform .25s ease, visibility 0s;
  }
  .mobile-nav .menu{display:block;list-style:none;margin:0;padding:0;}
  .mobile-nav .menu li{border-bottom:1px solid var(--line);}
  .mobile-nav a{
    display:block;padding:18px 0;
    font-size:1.1rem;font-weight:500;color:var(--ink);
    white-space:normal;
  }
  .mobile-nav a:hover{color:var(--navy);}

  /* 抽屜底部轉化按鈕 */
  .drawer-cta{
    display:block;
    margin-top:28px;text-align:center;
    background:var(--blue);color:#fff;font-weight:700;
    padding:15px 24px;border-radius:6px;font-size:1.05rem;
  }
  .drawer-cta:hover{background:#1a5fd0;color:#fff;}

  .site-main section{padding:60px 0;}
  .hero-inner{padding:64px 0 56px;padding-left:20px;padding-right:20px;}
  .hero-bg::after{background:linear-gradient(180deg,rgba(10,37,64,.88) 0%,rgba(10,37,64,.78) 100%);}
  .hero h1{font-size:2.1rem;}
  .hero .sub{font-size:1rem;}
  .hero-meta{gap:26px;}
  .hero-meta .stat b{font-size:1.6rem;}
  .hero-cta{flex-direction:column;align-items:stretch;gap:12px;}
  .hero-cta .btn{text-align:center;width:100%;}
  .btn{padding:14px 24px;font-size:.95rem;}

  .sec-head{margin-bottom:40px;}
  .sec-head--split{flex-direction:column;align-items:flex-start;gap:16px;}
  .archive-wrap{padding:48px 20px 72px;}
  .course-single__wrap,
  .branch-single__wrap{padding:0 20px 72px;}
  .course-hero-img,
  .branch-hero-img{margin:0 -20px 28px;}
  .course-single__cta,
  .branch-single__cta{flex-direction:column;align-items:stretch;}
  .course-single__cta .btn,
  .branch-single__cta .btn{width:100%;}
  .sec-title{font-size:1.6rem;}

  .trust-grid{grid-template-columns:1fr;}
  .trust-item,.trust-item + .trust-item{padding-left:0;border-left:none;}
  .trust-item{padding:26px 0;}
  .branch-grid{grid-template-columns:1fr;}
  .branch-body{padding:18px 16px;}
  .map-grid{grid-template-columns:1fr;}
  .advantages-grid{grid-template-columns:1fr;}
  .advantages-wrap,
  .branch-maps-wrap{padding:48px 20px 72px;}

  .course-body{padding:22px 20px 26px;}
  .blog-card .body{padding:22px 18px;}

  .about-grid{gap:32px;}
  .about-grid h3{font-size:1.25rem;}

  .cta-band{padding:60px 0;}
  .cta-band h2{font-size:1.7rem;}

  /* 底部聯絡雙按鈕顯示，並為頁尾預留空間 */
  .contact-fab{display:flex;}
  .site-footer{padding-bottom:calc(104px + env(safe-area-inset-bottom,0px));}

  /* 頁尾 FAQ 響應式 */
  .faq-section{padding:48px 0 56px;}
  .faq-item summary{padding:16px 18px;font-size:.98rem;}
  .faq-answer{padding:0 18px 18px;font-size:.94rem;}
}

/* 極窄螢幕 */
@media (max-width:360px){
  .hero h1{font-size:1.8rem;}
  .sec-title{font-size:1.45rem;}
  .contact-fab .fab-btn{font-size:.85rem;gap:6px;padding:12px 4px;}
  .nav-cta{padding:7px 10px;font-size:.8rem;margin-right:0;}
  .qr-card{padding:24px 16px 18px;}
  .qr-card img{width:min(220px,60vw);}
}
