/* ============================================================
   各頁「備援／前置」樣式（原本寫在 style.css 連結之前，
   設計上會被下方共用樣式以同權重蓋過——順序不可移到共用樣式之後）
   ============================================================ */

/* ---------- blueprint.html（page-blueprint）前置備援 ---------- */
:root:where(.page-blueprint){
    /* fallback（若 style.css 變數已定義會被覆蓋） */
    --navy:#002347;--paper:#f4ede0;--gold:#b89968;--gold-soft:#d4bc92;
    --white:#fdfaf4;--ink:#2c2c2c;--navy-70:rgba(0,35,71,.7);--line:rgba(184,153,104,.35);
    --disp:'Italiana',serif;--quote:'Cormorant',serif;--tc:'Noto Serif TC',serif;
  }
  :where(html.page-blueprint) body{background:var(--paper);margin:0}
  :where(html.page-blueprint) .bp-nav{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:26px 36px;z-index:5}
  :where(html.page-blueprint) .bp-nav .brandmark{font-family:var(--disp);letter-spacing:.16em;color:var(--paper);text-decoration:none;font-size:1.15rem}
  :where(html.page-blueprint) .bp-nav .back{font-family:var(--tc);font-weight:300;font-size:.85rem;color:rgba(244,237,224,.65);text-decoration:none;letter-spacing:.08em}
  :where(html.page-blueprint) .bp-nav .back:hover{color:var(--gold-soft)}
  :where(html.page-blueprint) .bp-hero{background:var(--navy);color:var(--paper);text-align:center;padding:150px 32px 90px;position:relative;overflow:hidden}
  :where(html.page-blueprint) .bp-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 30%, rgba(184,153,104,.14), transparent 60%);pointer-events:none}
  :where(html.page-blueprint) .bp-hero .label-top{font-family:var(--quote);font-style:italic;letter-spacing:.2em;font-size:.9rem;color:var(--gold);text-transform:uppercase;margin-bottom:24px}
  :where(html.page-blueprint) .bp-hero h1{font-family:var(--tc);font-weight:500;font-size:clamp(1.8rem,5vw,3rem);letter-spacing:.1em;color:var(--white);line-height:1.5;margin:0}
  :where(html.page-blueprint) .bp-hero .h1-sub{font-family:var(--tc);font-weight:300;font-size:clamp(1.1rem,3vw,1.5rem);letter-spacing:.3em;color:var(--gold-soft);margin-top:14px}
  :where(html.page-blueprint) .bp-hero .desc{font-family:var(--tc);font-weight:300;font-size:.98rem;color:rgba(244,237,224,.75);letter-spacing:.06em;line-height:2.1;margin:34px auto 44px;max-width:560px}
  :where(html.page-blueprint) .bp-hero .desc strong{font-weight:500;color:var(--gold-soft)}
  :where(html.page-blueprint) .bp-sym{font-size:1.3rem;color:var(--gold);letter-spacing:.3em;margin-bottom:26px}
  :where(html.page-blueprint) .bp-form{display:flex;gap:12px;justify-content:center;align-items:stretch;flex-wrap:wrap;width:auto;max-width:none;margin:0 auto;padding:0;background:none;border:none;position:relative;z-index:2}
  :where(html.page-blueprint) .bp-form input{box-sizing:border-box;width:auto;max-width:260px;margin:0;background:transparent;border:1px solid rgba(244,237,224,.35);border-radius:0;color:var(--paper);padding:13px 18px;font-family:var(--tc);font-weight:300;font-size:.95rem;min-width:200px;flex:0 1 auto}
  :where(html.page-blueprint) .bp-form input::placeholder{color:rgba(244,237,224,.45)}
  :where(html.page-blueprint) .bp-form input:focus{outline:none;border-color:var(--gold)}
  :where(html.page-blueprint) .bp-form .bp-btn{box-sizing:border-box;width:auto;margin:0;background:var(--gold);color:var(--navy);border:none;border-radius:0;padding:13px 34px;font-family:var(--tc);letter-spacing:.12em;font-size:.95rem;cursor:pointer;transition:.3s;flex:0 0 auto}
  :where(html.page-blueprint) .bp-form .bp-btn:hover{background:var(--gold-soft)}
  :where(html.page-blueprint) .form-meta-bp{font-family:var(--tc);font-weight:300;font-size:.82rem;color:rgba(244,237,224,.6);letter-spacing:.08em;margin-top:18px;text-align:center}
  :where(html.page-blueprint) .bp-section{padding:90px 24px}
  :where(html.page-blueprint) .bp-wrap{max-width:880px;margin:0 auto}
  :where(html.page-blueprint) .bp-label{display:block;text-align:center;font-family:var(--quote);font-style:italic;letter-spacing:.18em;font-size:.85rem;color:var(--gold);text-transform:uppercase}
  :where(html.page-blueprint) .bp-h2{text-align:center;font-family:var(--tc);font-weight:500;font-size:1.5rem;color:var(--navy);letter-spacing:.08em;margin:10px 0 50px}
  :where(html.page-blueprint) .bp-two{display:grid;grid-template-columns:1fr 1fr;gap:26px}
  :where(html.page-blueprint) .bp-card{background:var(--white);border:1px solid var(--line);border-radius:4px;padding:38px 34px}
  :where(html.page-blueprint) .bp-card .csym{font-size:1.2rem;color:var(--gold);margin-bottom:16px}
  :where(html.page-blueprint) .bp-card h3{font-family:var(--tc);font-weight:500;font-size:1.15rem;color:var(--navy);margin:0 0 6px;letter-spacing:.05em}
  :where(html.page-blueprint) .bp-card .en{font-family:var(--quote);font-style:italic;font-size:.9rem;color:var(--gold);margin-bottom:16px}
  :where(html.page-blueprint) .bp-card p{font-family:var(--tc);font-weight:300;font-size:.95rem;color:var(--ink);line-height:2;margin:0}
  :where(html.page-blueprint) .bp-card p strong{font-weight:500;color:var(--navy)}
  :where(html.page-blueprint) .bp-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;counter-reset:step}
  :where(html.page-blueprint) .bp-step{text-align:center;padding:10px 14px}
  :where(html.page-blueprint) .bp-step .num{font-family:var(--quote);font-style:italic;font-size:2.2rem;color:var(--gold);line-height:1}
  :where(html.page-blueprint) .bp-step h4{font-family:var(--tc);font-weight:500;font-size:1.02rem;color:var(--navy);margin:14px 0 8px;letter-spacing:.05em}
  :where(html.page-blueprint) .bp-step p{font-family:var(--tc);font-weight:300;font-size:.88rem;color:var(--ink);line-height:1.9;margin:0}
  :where(html.page-blueprint) .bp-note{max-width:640px;margin:70px auto 0;padding-top:34px;border-top:1px solid var(--line);text-align:center;font-family:var(--tc);font-weight:300;font-size:.92rem;color:var(--navy-70);line-height:2.1}
  :where(html.page-blueprint) .bp-final{background:var(--navy);text-align:center;padding:90px 24px}
  :where(html.page-blueprint) .bp-final .q{font-family:var(--quote);font-style:italic;font-size:1.3rem;color:var(--gold-soft);margin-bottom:30px}
  @media(max-width:680px){:where(html.page-blueprint) .bp-two,:where(html.page-blueprint) .bp-steps{grid-template-columns:1fr}}

/* ---------- consult.html（page-consult）前置備援 ---------- */
:root:where(.page-consult){
    /* fallback（若 style.css 變數已定義會被覆蓋） */
    --navy:#002347;--paper:#f4ede0;--gold:#b89968;--gold-soft:#d4bc92;
    --white:#fdfaf4;--ink:#2c2c2c;--navy-70:rgba(0,35,71,.7);--line:rgba(184,153,104,.35);
    --disp:'Italiana',serif;--quote:'Cormorant',serif;--tc:'Noto Serif TC',serif;
  }
  :where(html.page-consult) body{background:var(--paper);margin:0}
  :where(html.page-consult) .mini-nav{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:26px 34px;z-index:5}
  :where(html.page-consult) .mini-nav .brandmark{font-family:var(--disp);letter-spacing:.18em;font-size:1.05rem;color:var(--paper);text-decoration:none;text-transform:uppercase}
  :where(html.page-consult) .mini-nav .back{font-family:var(--tc);font-weight:300;font-size:.85rem;letter-spacing:.08em;color:var(--gold-soft);text-decoration:none}
  :where(html.page-consult) .q-hero{position:relative;background:var(--navy);color:var(--paper);text-align:center;padding:130px 32px 70px}
  :where(html.page-consult) .q-hero .sym{font-size:1.3rem;color:var(--gold);letter-spacing:.3em;margin-bottom:22px}
  :where(html.page-consult) .q-hero h1{font-family:var(--tc);font-weight:400;font-size:clamp(1.7rem,4.5vw,2.5rem);letter-spacing:.08em;color:var(--white);margin:0}
  :where(html.page-consult) .q-hero .en{font-family:var(--quote);font-style:italic;font-size:1.15rem;color:var(--gold-soft);margin-top:16px}
  :where(html.page-consult) .q-hero .sub{font-family:var(--tc);font-weight:300;font-size:.95rem;color:rgba(244,237,224,.72);letter-spacing:.06em;margin-top:20px;line-height:2}
  :where(html.page-consult) .q-wrap{max-width:680px;margin:0 auto;padding:70px 24px 100px}
  :where(html.page-consult) .q-part{margin-top:56px}
  :where(html.page-consult) .q-part:first-child{margin-top:0}
  :where(html.page-consult) .q-part-label{font-family:var(--quote);font-style:italic;letter-spacing:.14em;font-size:.85rem;color:var(--gold);text-transform:uppercase}
  :where(html.page-consult) .q-part-title{font-family:var(--tc);font-weight:500;font-size:1.3rem;color:var(--navy);margin:8px 0 6px}
  :where(html.page-consult) .q-block{background:var(--white);border:1px solid var(--line);border-radius:4px;padding:28px 30px;margin-top:22px}
  :where(html.page-consult) .q-block h3{font-family:var(--tc);font-weight:500;font-size:1.02rem;color:var(--navy);line-height:1.8;margin:0 0 16px}
  :where(html.page-consult) .q-block h3 .qn{color:var(--gold);font-family:var(--quote);font-style:italic;margin-right:10px}
  :where(html.page-consult) .q-block h3 .opt{font-weight:300;font-size:.82rem;color:var(--navy-70)}
  :where(html.page-consult) .q-opt{display:flex;align-items:flex-start;gap:10px;padding:8px 4px;cursor:pointer;font-family:var(--tc);font-weight:300;font-size:.95rem;color:var(--ink);line-height:1.7}
  :where(html.page-consult) .q-opt input{margin-top:6px;accent-color:var(--gold)}
  :where(html.page-consult) .q-opt:hover{color:var(--navy)}
  :where(html.page-consult) .q-open{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:3px;background:transparent;
    font-family:var(--tc);font-weight:300;font-size:.95rem;color:var(--ink);padding:14px 16px;min-height:96px;line-height:1.8;resize:vertical}
  :where(html.page-consult) .q-open:focus{outline:none;border-color:var(--gold)}
  :where(html.page-consult) .q-open::placeholder{color:rgba(44,44,44,.38)}
  :where(html.page-consult) .q-id{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  :where(html.page-consult) .q-id input,:where(html.page-consult) .q-link input{width:100%;min-width:0;box-sizing:border-box;border:1px solid var(--line);border-radius:3px;background:transparent;padding:13px 16px;
    font-family:var(--tc);font-weight:300;font-size:.95rem;color:var(--ink)}
  :where(html.page-consult) .q-id input:focus,:where(html.page-consult) .q-link input:focus{outline:none;border-color:var(--gold)}
  :where(html.page-consult) .q-link{margin-top:14px}
  :where(html.page-consult) .q-submit{margin-top:64px;text-align:center}
  :where(html.page-consult) .q-submit .btn{font-family:var(--tc);letter-spacing:.14em;background:var(--navy);color:var(--paper);
    border:1px solid var(--gold);padding:16px 54px;font-size:.98rem;cursor:pointer;transition:.3s}
  :where(html.page-consult) .q-submit .btn:hover{background:var(--gold);color:var(--navy)}
  :where(html.page-consult) .q-submit .meta{font-family:var(--tc);font-weight:300;font-size:.82rem;color:var(--navy-70);margin-top:18px;letter-spacing:.06em}
  :where(html.page-consult) .q-quote{margin:52px auto 0;padding-top:30px;border-top:1px solid var(--line);text-align:center;
    font-family:var(--quote);font-style:italic;font-size:1.2rem;color:var(--navy);line-height:1.7}
  :where(html.page-consult) .q-quote .zh{display:block;font-style:normal;font-family:var(--tc);font-weight:300;font-size:.85rem;color:var(--navy-70);margin-top:10px;letter-spacing:.08em}
  :where(html.page-consult) .q-done{display:none;text-align:center;padding:80px 24px}
  :where(html.page-consult) .q-done h2{font-family:var(--tc);font-weight:400;font-size:1.6rem;color:var(--navy)}
  :where(html.page-consult) .q-done p{font-family:var(--tc);font-weight:300;color:var(--ink);line-height:2.1}
  :where(html.page-consult) .q-done .btn{display:inline-block;margin-top:28px;font-family:var(--tc);letter-spacing:.14em;background:var(--navy);color:var(--paper);
    border:1px solid var(--gold);padding:16px 54px;font-size:.98rem;text-decoration:none;transition:.3s}
  :where(html.page-consult) .q-done .btn:hover{background:var(--gold);color:var(--navy)}
  :where(html.page-consult) .q-done .meta{font-family:var(--tc);font-weight:300;font-size:.82rem;color:var(--navy-70);margin-top:18px;letter-spacing:.06em}
  @media(max-width:560px){:where(html.page-consult) .q-id{grid-template-columns:1fr}:where(html.page-consult) .mini-nav{padding:22px 22px}}

/* ---------- form.html（page-form）前置備援 ---------- */
:root:where(.page-form){
    /* fallback（若 style.css 變數已定義會被覆蓋） */
    --navy:#002347;--paper:#f4ede0;--gold:#b89968;--gold-soft:#d4bc92;
    --white:#fdfaf4;--ink:#2c2c2c;--navy-70:rgba(0,35,71,.7);--line:rgba(184,153,104,.35);
    --disp:'Italiana',serif;--quote:'Cormorant',serif;--tc:'Noto Serif TC',serif;
  }
  :where(html.page-form) body{background:var(--paper);margin:0}
  :where(html.page-form) .q-hero{background:var(--navy);color:var(--paper);text-align:center;padding:130px 32px 70px}
  :where(html.page-form) .q-hero .sym{font-size:1.3rem;color:var(--gold);letter-spacing:.3em;margin-bottom:22px}
  :where(html.page-form) .q-hero h1{font-family:var(--tc);font-weight:400;font-size:clamp(1.7rem,4.5vw,2.5rem);letter-spacing:.08em;color:var(--white);margin:0}
  :where(html.page-form) .q-hero .en{font-family:var(--quote);font-style:italic;font-size:1.15rem;color:var(--gold-soft);margin-top:16px}
  :where(html.page-form) .q-hero .sub{font-family:var(--tc);font-weight:300;font-size:.95rem;color:rgba(244,237,224,.72);letter-spacing:.06em;margin-top:20px;line-height:2}
  :where(html.page-form) .q-wrap{max-width:680px;margin:0 auto;padding:70px 24px 100px}
  :where(html.page-form) .q-part{margin-top:56px}
  :where(html.page-form) .q-part-label{font-family:var(--quote);font-style:italic;letter-spacing:.14em;font-size:.85rem;color:var(--gold);text-transform:uppercase}
  :where(html.page-form) .q-part-title{font-family:var(--tc);font-weight:500;font-size:1.3rem;color:var(--navy);margin:8px 0 6px}
  :where(html.page-form) .q-part-note{font-family:var(--tc);font-weight:300;font-size:.88rem;color:var(--navy-70);margin-bottom:8px}
  :where(html.page-form) .q-block{background:var(--white);border:1px solid var(--line);border-radius:4px;padding:28px 30px;margin-top:22px}
  :where(html.page-form) .q-block h3{font-family:var(--tc);font-weight:500;font-size:1.02rem;color:var(--navy);line-height:1.8;margin:0 0 16px}
  :where(html.page-form) .q-block h3 .qn{color:var(--gold);font-family:var(--quote);font-style:italic;margin-right:10px}
  :where(html.page-form) .q-opt{display:flex;align-items:flex-start;gap:10px;padding:8px 4px;cursor:pointer;font-family:var(--tc);font-weight:300;font-size:.95rem;color:var(--ink);line-height:1.7}
  :where(html.page-form) .q-opt input{margin-top:6px;accent-color:var(--gold)}
  :where(html.page-form) .q-opt:hover{color:var(--navy)}
  :where(html.page-form) .q-open{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:3px;background:transparent;
    font-family:var(--tc);font-weight:300;font-size:.95rem;color:var(--ink);padding:14px 16px;min-height:96px;line-height:1.8;resize:vertical}
  :where(html.page-form) .q-open:focus{outline:none;border-color:var(--gold)}
  :where(html.page-form) .q-open::placeholder{color:rgba(44,44,44,.38)}
  :where(html.page-form) .q-id{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  :where(html.page-form) .q-id input{width:100%;min-width:0;box-sizing:border-box;border:1px solid var(--line);border-radius:3px;background:transparent;padding:13px 16px;
    font-family:var(--tc);font-weight:300;font-size:.95rem;color:var(--ink)}
  :where(html.page-form) .q-id input:focus{outline:none;border-color:var(--gold)}
  :where(html.page-form) .q-submit{margin-top:64px;text-align:center}
  :where(html.page-form) .q-submit .btn{font-family:var(--tc);letter-spacing:.14em;background:var(--navy);color:var(--paper);
    border:1px solid var(--gold);padding:16px 54px;font-size:.98rem;cursor:pointer;transition:.3s}
  :where(html.page-form) .q-submit .btn:hover{background:var(--gold);color:var(--navy)}
  :where(html.page-form) .q-submit .meta{font-family:var(--tc);font-weight:300;font-size:.82rem;color:var(--navy-70);margin-top:18px;letter-spacing:.06em}
  :where(html.page-form) .q-quote{margin:52px auto 0;padding-top:30px;border-top:1px solid var(--line);text-align:center;
    font-family:var(--quote);font-style:italic;font-size:1.2rem;color:var(--navy);line-height:1.7}
  :where(html.page-form) .q-quote .zh{display:block;font-style:normal;font-family:var(--tc);font-weight:300;font-size:.85rem;color:var(--navy-70);margin-top:10px;letter-spacing:.08em}
  :where(html.page-form) .q-done{display:none;text-align:center;padding:80px 24px}
  :where(html.page-form) .q-done h2{font-family:var(--tc);font-weight:400;font-size:1.6rem;color:var(--navy)}
  :where(html.page-form) .q-done p{font-family:var(--tc);font-weight:300;color:var(--ink);line-height:2.1}
  @media(max-width:560px){:where(html.page-form) .q-id{grid-template-columns:1fr}}

/* ---------- newsletter.html（page-newsletter）前置備援 ---------- */
/* ===== 備援樣式：單獨開啟時使用，放回網站後由 style.css 覆蓋 ===== */
  :root:where(.page-newsletter){
    --navy:#1c2a3a;--paper:#f4ede0;--cream:#faf5ea;--gold:#b89968;--gold-soft:#d4bc92;
    --white:#fdfaf4;--ink:#2c2c2c;--navy-70:rgba(28,42,58,.7);--line:rgba(184,153,104,.35);
    --disp:'Italiana',serif;--quote:'Cormorant',serif;--tc:'Noto Serif TC',serif;
  }
  :where(html.page-newsletter) *{box-sizing:border-box}
  :where(html.page-newsletter) body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--tc)}
  :where(html.page-newsletter) a{color:inherit}
  /* nav */
  :where(html.page-newsletter) #nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:space-between;align-items:center;
    padding:18px 36px;background:var(--navy);border-bottom:1px solid rgba(184,153,104,.25)}
  :where(html.page-newsletter) #nav .brandmark{font-family:var(--disp);letter-spacing:.16em;font-size:1.15rem;color:var(--paper);text-decoration:none}
  :where(html.page-newsletter) .navlinks{display:flex;gap:26px;align-items:center}
  :where(html.page-newsletter) .navlinks a{font-family:var(--tc);font-weight:300;font-size:.9rem;letter-spacing:.08em;color:rgba(244,237,224,.8);text-decoration:none}
  :where(html.page-newsletter) .navlinks a:hover,:where(html.page-newsletter) .navlinks a.active{color:var(--gold-soft)}
  :where(html.page-newsletter) .has-sub{position:relative}
  :where(html.page-newsletter) .has-sub .submenu{display:none;position:absolute;top:100%;left:0;background:var(--navy);border:1px solid var(--line);
    padding:10px 0;min-width:230px;flex-direction:column}
  :where(html.page-newsletter) .has-sub:hover .submenu{display:flex}
  :where(html.page-newsletter) .submenu a{padding:9px 18px;font-size:.85rem}
  :where(html.page-newsletter) .navtoggle{display:none}
  /* sections */
  :where(html.page-newsletter) .section{padding:96px 24px}
  :where(html.page-newsletter) .on-paper{background:var(--paper)}
  :where(html.page-newsletter) .on-cream{background:var(--cream)}
  :where(html.page-newsletter) .on-navy{background:var(--navy)}
  :where(html.page-newsletter) .wrap{max-width:1080px;margin:0 auto}
  :where(html.page-newsletter) .sec-head.center{text-align:center;margin-bottom:48px}
  :where(html.page-newsletter) .sec-head .label{font-family:var(--quote);font-style:italic;letter-spacing:.18em;font-size:.85rem;color:var(--gold);text-transform:uppercase}
  :where(html.page-newsletter) .sec-head h2{font-family:var(--tc);font-weight:500;font-size:1.6rem;color:var(--navy);letter-spacing:.08em;margin:10px 0 8px}
  :where(html.page-newsletter) .sec-head .sub{font-family:var(--quote);font-style:italic;color:var(--navy-70);font-size:1rem;margin:0}
  /* cards */
  :where(html.page-newsletter) .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
  :where(html.page-newsletter) .card{background:var(--white);border:1px solid var(--line);border-radius:4px;padding:38px 32px}
  :where(html.page-newsletter) .csym{font-size:1.2rem;color:var(--gold);margin-bottom:14px}
  :where(html.page-newsletter) .ctitle{font-family:var(--tc);font-weight:500;font-size:1.15rem;color:var(--navy);letter-spacing:.05em}
  :where(html.page-newsletter) .cen{font-family:var(--quote);font-style:italic;font-size:.9rem;color:var(--gold);margin:4px 0 16px}
  :where(html.page-newsletter) .cdesc{font-family:var(--tc);font-weight:300;font-size:.93rem;line-height:2;color:var(--ink);margin:0}
  :where(html.page-newsletter) .hl-box{background:var(--white);border:1px solid var(--line);border-radius:4px;padding:34px 36px;text-align:center}
  :where(html.page-newsletter) .hl-eng{font-family:var(--quote);font-style:italic;letter-spacing:.14em;font-size:.85rem;color:var(--gold);margin-bottom:14px}
  :where(html.page-newsletter) .hl-box p{font-family:var(--tc);font-weight:300;font-size:.95rem;line-height:2.1;margin:0}
  /* subscribe form */
  :where(html.page-newsletter) .subscribe-form{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
  :where(html.page-newsletter) .subscribe-form input{background:transparent;border:1px solid rgba(244,237,224,.35);color:var(--paper);
    padding:13px 18px;font-family:var(--tc);font-weight:300;font-size:.95rem;min-width:200px}
  :where(html.page-newsletter) .subscribe-form input::placeholder{color:rgba(244,237,224,.45)}
  :where(html.page-newsletter) .subscribe-form input:focus{outline:none;border-color:var(--gold)}
  :where(html.page-newsletter) .subscribe-form .btn{background:var(--gold);color:var(--navy);border:none;padding:13px 34px;
    font-family:var(--tc);letter-spacing:.12em;font-size:.95rem;cursor:pointer;transition:.3s}
  :where(html.page-newsletter) .subscribe-form .btn:hover{background:var(--gold-soft)}
  :where(html.page-newsletter) .form-meta{font-family:var(--tc);font-weight:300;font-size:.82rem;color:rgba(244,237,224,.6);letter-spacing:.08em;margin-top:16px}
  /* footer */
  :where(html.page-newsletter) .foot{background:var(--navy);color:var(--paper);padding:60px 36px 30px}
  :where(html.page-newsletter) .fgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:30px;max-width:1080px;margin:0 auto}
  :where(html.page-newsletter) .fbrand .brandmark{font-family:var(--disp);letter-spacing:.16em;font-size:1.2rem}
  :where(html.page-newsletter) .fbrand .zh{font-weight:300;font-size:.85rem;color:rgba(244,237,224,.6);margin-top:8px}
  :where(html.page-newsletter) .fcol h4{font-family:var(--quote);font-style:italic;letter-spacing:.12em;font-size:.9rem;color:var(--gold);margin:0 0 14px}
  :where(html.page-newsletter) .fcol a{display:block;font-weight:300;font-size:.86rem;color:rgba(244,237,224,.75);text-decoration:none;margin-bottom:9px}
  :where(html.page-newsletter) .fcol a:hover{color:var(--gold-soft)}
  :where(html.page-newsletter) .legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;max-width:1080px;margin:44px auto 0;
    padding-top:22px;border-top:1px solid rgba(184,153,104,.25);font-weight:300;font-size:.78rem;color:rgba(244,237,224,.5)}
  :where(html.page-newsletter) .legal a{color:inherit}
  @media(max-width:860px){
    :where(html.page-newsletter) .navlinks{display:none}
    :where(html.page-newsletter) .cards,:where(html.page-newsletter) .fgrid{grid-template-columns:1fr}
  }

/* ---------- session.html（page-session）前置備援 ---------- */
:root:where(.page-session){
    /* fallback（若 style.css 變數已定義會被覆蓋） */
    --navy:#002347;--paper:#f4ede0;--gold:#b89968;--gold-soft:#d4bc92;
    --white:#fdfaf4;--ink:#2c2c2c;--navy-70:rgba(0,35,71,.7);--line:rgba(184,153,104,.35);
    --disp:'Italiana',serif;--quote:'Cormorant',serif;--tc:'Noto Serif TC',serif;
  }
  :where(html.page-session) body{background:var(--paper);margin:0}
  :where(html.page-session) .mini-nav{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:26px 34px;z-index:5}
  :where(html.page-session) .mini-nav .brandmark{font-family:var(--disp);letter-spacing:.18em;font-size:1.05rem;color:var(--paper);text-decoration:none;text-transform:uppercase}
  :where(html.page-session) .mini-nav .back{font-family:var(--tc);font-weight:300;font-size:.85rem;letter-spacing:.08em;color:var(--gold-soft);text-decoration:none}
  :where(html.page-session) .q-hero{position:relative;background:var(--navy);color:var(--paper);text-align:center;padding:130px 32px 70px}
  :where(html.page-session) .q-hero .sym{font-size:1.3rem;color:var(--gold);letter-spacing:.3em;margin-bottom:22px}
  :where(html.page-session) .q-hero h1{font-family:var(--tc);font-weight:400;font-size:clamp(1.7rem,4.5vw,2.5rem);letter-spacing:.08em;color:var(--white);margin:0}
  :where(html.page-session) .q-hero .en{font-family:var(--quote);font-style:italic;font-size:1.15rem;color:var(--gold-soft);margin-top:16px}
  :where(html.page-session) .q-hero .sub{font-family:var(--tc);font-weight:300;font-size:.95rem;color:rgba(244,237,224,.72);letter-spacing:.06em;margin-top:20px;line-height:2}
  :where(html.page-session) .q-wrap{max-width:680px;margin:0 auto;padding:70px 24px 100px}
  :where(html.page-session) .q-part{margin-top:56px}
  :where(html.page-session) .q-part:first-child{margin-top:0}
  :where(html.page-session) .q-part-label{font-family:var(--quote);font-style:italic;letter-spacing:.14em;font-size:.85rem;color:var(--gold);text-transform:uppercase}
  :where(html.page-session) .q-part-title{font-family:var(--tc);font-weight:500;font-size:1.3rem;color:var(--navy);margin:8px 0 6px}
  :where(html.page-session) .q-block{background:var(--white);border:1px solid var(--line);border-radius:4px;padding:28px 30px;margin-top:22px}
  :where(html.page-session) .q-block h3{font-family:var(--tc);font-weight:500;font-size:1.02rem;color:var(--navy);line-height:1.8;margin:0 0 16px}
  :where(html.page-session) .q-block h3 .qn{color:var(--gold);font-family:var(--quote);font-style:italic;margin-right:10px}
  :where(html.page-session) .q-block h3 .opt{font-weight:300;font-size:.82rem;color:var(--navy-70)}
  :where(html.page-session) .q-open{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:3px;background:transparent;
    font-family:var(--tc);font-weight:300;font-size:.95rem;color:var(--ink);padding:14px 16px;min-height:96px;line-height:1.8;resize:vertical}
  :where(html.page-session) .q-open:focus{outline:none;border-color:var(--gold)}
  :where(html.page-session) .q-open::placeholder{color:rgba(44,44,44,.38)}
  :where(html.page-session) .q-id{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  :where(html.page-session) .q-id input,:where(html.page-session) .q-link input{width:100%;min-width:0;box-sizing:border-box;border:1px solid var(--line);border-radius:3px;background:transparent;padding:13px 16px;
    font-family:var(--tc);font-weight:300;font-size:.95rem;color:var(--ink)}
  :where(html.page-session) .q-id input:focus,:where(html.page-session) .q-link input:focus{outline:none;border-color:var(--gold)}
  :where(html.page-session) .q-link{margin-top:14px}
  :where(html.page-session) .q-submit{margin-top:64px;text-align:center}
  :where(html.page-session) .q-submit .btn{font-family:var(--tc);letter-spacing:.14em;background:var(--navy);color:var(--paper);
    border:1px solid var(--gold);padding:16px 54px;font-size:.98rem;cursor:pointer;transition:.3s}
  :where(html.page-session) .q-submit .btn:hover{background:var(--gold);color:var(--navy)}
  :where(html.page-session) .q-submit .meta{font-family:var(--tc);font-weight:300;font-size:.82rem;color:var(--navy-70);margin-top:18px;letter-spacing:.06em}
  :where(html.page-session) .q-quote{margin:52px auto 0;padding-top:30px;border-top:1px solid var(--line);text-align:center;
    font-family:var(--quote);font-style:italic;font-size:1.2rem;color:var(--navy);line-height:1.7}
  :where(html.page-session) .q-quote .zh{display:block;font-style:normal;font-family:var(--tc);font-weight:300;font-size:.85rem;color:var(--navy-70);margin-top:10px;letter-spacing:.08em}
  :where(html.page-session) .q-done{display:none;text-align:center;padding:80px 24px}
  :where(html.page-session) .q-done h2{font-family:var(--tc);font-weight:400;font-size:1.6rem;color:var(--navy)}
  :where(html.page-session) .q-done p{font-family:var(--tc);font-weight:300;color:var(--ink);line-height:2.1}
  :where(html.page-session) .q-done .btn{display:inline-block;margin-top:28px;font-family:var(--tc);letter-spacing:.14em;background:var(--navy);color:var(--paper);
    border:1px solid var(--gold);padding:16px 54px;font-size:.98rem;text-decoration:none;transition:.3s}
  :where(html.page-session) .q-done .btn:hover{background:var(--gold);color:var(--navy)}
  :where(html.page-session) .q-done .meta{font-family:var(--tc);font-weight:300;font-size:.82rem;color:var(--navy-70);margin-top:18px;letter-spacing:.06em}
  @media(max-width:560px){:where(html.page-session) .q-id{grid-template-columns:1fr}:where(html.page-session) .mini-nav{padding:22px 22px}}

/* ============================================================
   On The Way ｜ 共用設計系統
   主視覺：深藍 #002347 × 金 #B89968 × 米色紙感
   ============================================================ */
:root{
  --navy:#002347;
  --navy-soft:#0a3158;
  --gold:#B89968;
  --gold-soft:#cdb489;
  --gold-deep:#8a6a30;
  --paper:#F4EDE0;
  --cream:#EBE2CF;
  --white:#FAF6ED;
  --ink:#1c2733;
  --navy-70:rgba(0,35,71,.70);
  --navy-45:rgba(0,35,71,.45);
  --line:rgba(184,153,104,.3);
  --line-soft:rgba(184,153,104,.15);
  --disp:'Italiana',serif;
  --quote:'Cormorant',serif;
  --body:'EB Garamond',serif;
  --mono:'JetBrains Mono',monospace;
  --tc:'Noto Serif TC',serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--white);
  color:var(--ink);
  font-family:var(--body),var(--tc);
  font-size:18px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.zh{font-family:var(--tc)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

.label{
  font-family:var(--mono);
  font-size:.7rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--gold);
}
.wrap{max-width:1080px;margin:0 auto;padding:0 32px}

/* ---------- NAV ---------- */
nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 32px;
  background:transparent;
  transition:background .4s ease, padding .4s ease, box-shadow .4s ease;
}
nav.scrolled, nav.solid{
  background:rgba(2,26,52,.92);
  backdrop-filter:blur(8px);
  padding:14px 32px;
  box-shadow:0 1px 0 rgba(184,153,104,.25);
}
nav .brandmark{
  font-family:var(--disp);
  font-size:1rem;
  letter-spacing:.42em;
  text-transform:uppercase;
  color:var(--paper);
  padding-left:.42em;
  white-space:nowrap;
}
nav .navlinks{display:flex;gap:30px;align-items:center}
nav .navlinks a{
  font-family:var(--mono);
  font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(244,237,224,.72);
  transition:color .25s;
}
nav .navlinks a:hover{color:var(--gold-soft)}
nav .navlinks a.active{color:var(--gold)}

/* ---- 下拉選單 ---- */
nav .has-sub{position:relative;display:flex;align-items:center}
nav .has-sub>a{display:inline-flex;align-items:center;gap:6px;padding:10px 0}
nav .has-sub>a .caret{font-size:.55em;opacity:.65;transition:transform .25s}
nav .has-sub:hover>a .caret{transform:translateY(1px);opacity:1}
nav .submenu{
  position:absolute;top:100%;left:50%;
  transform:translateX(-50%) translateY(6px);
  background:rgba(2,26,52,.97);
  backdrop-filter:blur(8px);
  border:1px solid rgba(184,153,104,.3);
  padding:12px 0;min-width:220px;
  opacity:0;visibility:hidden;
  transition:opacity .25s ease, transform .25s ease, visibility .25s;
  box-shadow:0 16px 40px rgba(0,0,0,.35);
}
nav .has-sub:hover .submenu,
nav .has-sub:focus-within .submenu{
  opacity:1;visibility:visible;
  transform:translateX(-50%) translateY(0);
}
nav .submenu a{
  display:block;padding:10px 24px;white-space:nowrap;
  font-family:var(--tc);font-weight:300;font-size:.85rem;
  letter-spacing:.08em;text-transform:none;
  color:rgba(244,237,224,.78);
  border-left:2px solid transparent;
  transition:color .25s,border-color .25s,padding-left .25s;
}
nav .submenu a:hover{color:var(--gold-soft);border-left-color:var(--gold);padding-left:28px}

.navtoggle{display:none;background:none;border:0;cursor:pointer;padding:6px}
.navtoggle span{display:block;width:24px;height:1.5px;background:var(--paper);margin:5px 0;transition:.3s}

/* ---------- PAGE HERO（內頁頁首） ---------- */
.page-hero{
  background:var(--navy);
  color:var(--paper);
  padding:180px 32px 90px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.page-hero::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 50% 20%, rgba(184,153,104,.10), transparent 60%);
  pointer-events:none;
}
.page-hero .eyebrow{display:block;margin-bottom:22px}
.page-hero h1{
  font-family:var(--tc);
  font-weight:400;
  font-size:clamp(1.9rem,5vw,3rem);
  letter-spacing:.08em;
  color:var(--white);
  line-height:1.4;
}
.page-hero .en-sub{
  font-family:var(--quote);
  font-style:italic;
  font-size:clamp(1.05rem,2.6vw,1.4rem);
  color:var(--gold-soft);
  margin-top:16px;
}
.page-hero .intro{
  font-family:var(--tc);font-weight:300;
  color:rgba(244,237,224,.72);
  max-width:620px;margin:26px auto 0;
  font-size:1rem;letter-spacing:.04em;line-height:2;
}

/* ---------- SECTIONS ---------- */
.section{padding:104px 0}
.section.on-navy{background:var(--navy);color:var(--paper)}
.section.on-cream{background:var(--cream)}
.section.on-paper{background:var(--paper)}
.sec-head{max-width:720px;margin-bottom:56px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head .label{display:block;margin-bottom:20px}
.sec-head h2{
  font-family:var(--tc);font-weight:400;
  font-size:clamp(1.8rem,4.6vw,2.6rem);
  letter-spacing:.05em;line-height:1.4;color:var(--navy);
}
.on-navy .sec-head h2{color:var(--white)}
.sec-head .sub{
  font-family:var(--quote);font-style:italic;
  font-size:1.35rem;color:var(--gold);margin-top:16px;letter-spacing:.01em;
}
.sec-head .desc{
  font-family:var(--tc);font-weight:300;
  color:var(--navy-70);margin-top:18px;font-size:1rem;letter-spacing:.03em;line-height:2;
}
.on-navy .sec-head .desc{color:rgba(244,237,224,.72)}

/* ---------- STACK ROWS ---------- */
.stack{display:grid;gap:0;border-top:1px solid var(--line)}
.row{
  display:grid;grid-template-columns:56px 1fr auto;
  gap:28px;align-items:baseline;
  padding:34px 4px;
  border-bottom:1px solid var(--line);
  transition:padding-left .35s ease;
}
.row:hover{padding-left:16px}
.row .idx{font-family:var(--mono);font-size:.8rem;color:var(--gold);letter-spacing:.1em}
.row .rtitle{font-family:var(--tc);font-weight:500;font-size:1.32rem;letter-spacing:.04em;color:var(--navy)}
.on-navy .row .rtitle{color:var(--white)}
.row .rdesc{font-family:var(--tc);font-weight:300;font-size:.98rem;margin-top:8px;line-height:1.8;color:var(--ink)}
.on-navy .row .rdesc{color:rgba(244,237,224,.72)}
.row .rstage{font-family:var(--quote);font-style:italic;font-size:1.15rem;color:var(--gold);white-space:nowrap}
.row .rmeta{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;color:var(--gold);white-space:nowrap;text-align:right}

/* ---------- ARCH GRID（深藍三格） ---------- */

/* ---------- CARDS ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:26px}
.cards.cards-4{grid-template-columns:repeat(2,1fr)}
@media(max-width:640px){.cards.cards-4{grid-template-columns:1fr}}
.card{
  background:var(--white);
  border:1px solid var(--line-soft);
  border-left:3px solid var(--gold);
  padding:36px 32px;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.card:hover{transform:translateY(-4px);border-color:var(--gold-soft);box-shadow:0 14px 40px rgba(0,35,71,.08)}
.card .csym{font-size:1.4rem;color:var(--gold);margin-bottom:14px}
.card .ctitle{font-family:var(--tc);font-weight:500;font-size:1.2rem;color:var(--navy);letter-spacing:.04em;margin-bottom:4px}
.card .cen{font-family:var(--quote);font-style:italic;font-size:.95rem;color:var(--gold-deep);margin-bottom:16px}
.card .cdesc{font-family:var(--tc);font-weight:300;font-size:.95rem;line-height:1.9;color:var(--ink)}
.card ul{list-style:none;margin-top:14px}
.card li{position:relative;padding:5px 0 5px 20px;font-family:var(--tc);font-weight:300;font-size:.92rem;line-height:1.8}
.card li::before{content:"◇";position:absolute;left:0;top:6px;color:var(--gold);font-size:.7rem}

/* ---------- STATS ---------- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.stat{background:var(--navy);padding:44px 30px;text-align:center}
.stat .sv{font-family:var(--quote);font-weight:500;font-size:2.7rem;color:var(--gold-soft);letter-spacing:.03em;line-height:1.1}
.stat .sl{font-family:var(--mono);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(244,237,224,.6);margin-top:12px}
.stat .sd{font-family:var(--tc);font-weight:300;font-size:.88rem;color:rgba(244,237,224,.75);margin-top:8px;line-height:1.7}

/* ---------- TESTIMONIALS ---------- */
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:26px}
.quote-card{
  background:var(--white);
  border:1px solid var(--line-soft);
  padding:38px 34px 30px;
  position:relative;
}
.quote-card::before{
  content:"“";
  font-family:var(--quote);font-style:italic;
  font-size:3rem;color:var(--gold);line-height:1;
  display:block;margin-bottom:10px;
}
.quote-card .qtext{font-family:var(--tc);font-weight:300;font-size:.98rem;line-height:2;color:var(--ink)}
.quote-card .qwho{
  margin-top:22px;padding-top:16px;border-top:1px solid var(--line-soft);
  font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;color:var(--gold-deep);text-transform:uppercase;
}

/* ---------- STEPS（流程） ---------- */
.steps{position:relative;margin-top:8px}
.steps::before{content:"";position:absolute;left:27px;top:28px;bottom:28px;width:1px;background:var(--line)}
.step{display:grid;grid-template-columns:56px 1fr;gap:28px;padding:22px 0;position:relative;align-items:start}
.step .snum{
  width:56px;height:56px;border-radius:50%;
  background:var(--paper);border:1.5px solid var(--gold);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--quote);font-style:italic;font-size:1.2rem;color:var(--gold-deep);
  position:relative;z-index:1;
}
.step .sbody h3{font-family:var(--tc);font-weight:500;font-size:1.15rem;color:var(--navy);letter-spacing:.03em}
.step .sbody .sdur{font-family:var(--quote);font-style:italic;font-size:.92rem;color:var(--gold-deep);margin:2px 0 8px}
.step .sbody p{font-family:var(--tc);font-weight:300;font-size:.95rem;line-height:1.9;color:var(--ink)}
.step .sbody .deliver{
  display:inline-block;margin-top:10px;
  font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;
  color:var(--gold-deep);border:1px solid var(--line);
  padding:5px 14px;border-radius:100px;background:rgba(184,153,104,.07);
}

/* ---------- PRICE ---------- */
.price-tag{
  display:inline-block;padding:14px 36px;
  border:1px solid var(--gold);border-radius:100px;
  font-family:var(--quote);font-size:1.3rem;color:var(--gold-deep);
  letter-spacing:.08em;background:rgba(244,237,224,.5);
}
.on-navy .price-tag{color:var(--gold-soft);background:rgba(184,153,104,.08)}
.price-tag strong{font-weight:500;font-size:1.5rem}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:0;border-top:1px solid var(--line)}
.faq-item{padding:30px 4px;border-bottom:1px solid var(--line)}
.faq-q{font-family:var(--tc);font-weight:500;font-size:1.1rem;color:var(--navy);letter-spacing:.03em;display:flex;gap:14px}
.faq-q .qn{font-family:var(--quote);font-style:italic;color:var(--gold);flex:0 0 auto}
.faq-a{font-family:var(--tc);font-weight:300;font-size:.95rem;line-height:2;color:var(--ink);margin-top:12px;padding-left:44px}

/* ---------- HIGHLIGHT BOX ---------- */
.hl-box{
  margin-top:48px;padding:30px 36px;
  background:rgba(184,153,104,.07);
  border-left:2px solid var(--gold);
  max-width:760px;
}
.hl-box .hl-eng{font-family:var(--quote);font-style:italic;font-size:1.05rem;color:var(--gold-deep);margin-bottom:10px;letter-spacing:.04em}
.hl-box p{font-family:var(--tc);font-weight:300;font-size:.95rem;line-height:2;color:var(--ink)}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-block;
  font-family:var(--mono);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--navy);background:var(--gold);
  padding:16px 34px;transition:background .3s,transform .3s;white-space:nowrap;
  border:0;cursor:pointer;
}
.btn:hover{background:var(--gold-soft);transform:translateY(-2px)}
.btn.ghost{
  background:transparent;color:var(--navy);
  border:1px solid var(--gold);
}
.btn.ghost:hover{background:rgba(184,153,104,.12)}
.on-navy .btn.ghost{color:var(--paper)}
.enter{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--navy);
  border-bottom:1px solid var(--gold);
  padding-bottom:4px;transition:gap .3s,color .3s;
}
.enter:hover{gap:18px;color:var(--gold)}
.on-navy .enter{color:var(--paper)}

/* ---------- PHILOSOPHY ---------- */
.philo{background:var(--paper);padding:120px 0}
.philo .wrap{max-width:820px;text-align:center}
.philo blockquote{
  font-family:var(--quote);font-style:italic;
  font-size:clamp(1.6rem,4.4vw,2.5rem);
  line-height:1.5;color:var(--navy);letter-spacing:.01em;
}
.philo .zh-quote{
  font-family:var(--tc);font-weight:300;
  font-size:clamp(1.05rem,2.6vw,1.3rem);
  color:var(--navy-70);margin-top:28px;letter-spacing:.14em;line-height:2;
}
.philo .rule{width:1px;height:60px;background:var(--gold);margin:44px auto 0}
.philo .cred{
  font-family:var(--tc);font-weight:300;font-size:.95rem;color:var(--navy-45);
  margin-top:44px;letter-spacing:.06em;
}

/* ---------- SUBSCRIBE FORM ---------- */
.subscribe-form{
  display:flex;flex-direction:column;
  width:100%;max-width:480px;
  border:1px solid var(--gold-soft);
  background:rgba(255,255,255,.05);
}
.subscribe-form input{
  width:100%;padding:18px 22px;border:none;background:transparent;
  font-family:var(--tc);font-size:.92rem;color:var(--paper);outline:none;letter-spacing:.05em;
}
.subscribe-form input:first-child{border-bottom:1px solid rgba(205,180,137,.25)}
.subscribe-form input::placeholder{color:rgba(244,237,224,.5);font-style:italic;font-family:var(--quote);font-size:1rem}
.subscribe-form .btn{width:100%}

.form-meta{
  margin-top:16px;
  font-family:var(--quote);font-style:italic;font-size:.82rem;
  color:rgba(244,237,224,.6);letter-spacing:.14em;
}

/* ---------- FOOTER ---------- */
.foot{background:var(--navy);color:var(--paper);padding:100px 0 44px}
.foot .cta-band{
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;
  gap:40px;padding-bottom:64px;border-bottom:1px solid rgba(184,153,104,.28);
}
.foot .cta-band .ct-left{max-width:520px}
.foot .cta-band h2{
  font-family:var(--tc);font-weight:400;font-size:clamp(1.6rem,4vw,2.3rem);
  color:var(--white);letter-spacing:.05em;line-height:1.4;
}
.foot .cta-band p{font-family:var(--tc);font-weight:300;color:rgba(244,237,224,.66);margin-top:16px;letter-spacing:.03em}
.foot .fgrid{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:40px;
  padding-top:52px;
}
.foot .fbrand .brandmark{
  font-family:var(--disp);font-size:1.15rem;letter-spacing:.42em;text-transform:uppercase;color:var(--paper);padding-left:.42em;
}
.foot .fbrand .zh{font-family:var(--tc);font-weight:300;color:rgba(244,237,224,.6);margin-top:12px;letter-spacing:.3em;font-size:.85rem}
.foot .fcol h4{font-family:var(--mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.foot .fcol a{display:block;font-family:var(--tc);font-weight:300;color:rgba(244,237,224,.72);margin-bottom:12px;font-size:.95rem;transition:color .25s}
.foot .fcol a:hover{color:var(--gold-soft)}
.foot .legal{
  margin-top:56px;padding-top:24px;border-top:1px solid rgba(184,153,104,.18);
  font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;color:rgba(244,237,224,.4);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
}
.foot .legal a{border-bottom:1px solid rgba(184,153,104,.35);transition:color .25s}
.foot .legal a:hover{color:var(--gold-soft)}

/* ---------- REVEAL ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* ---------- RESPONSIVE ---------- */
@media(max-width:820px){
  body{font-size:17px}
  nav .navlinks{
    position:fixed;inset:0 0 0 auto;width:74%;max-width:320px;
    background:var(--navy);flex-direction:column;justify-content:center;
    gap:30px;transform:translateX(100%);transition:transform .4s ease;
    box-shadow:-10px 0 40px rgba(0,0,0,.3);
  }
  nav .navlinks.open{transform:translateX(0)}
  nav .navlinks a{font-size:.8rem}
  nav .navlinks{overflow-y:auto;padding:60px 0}
  nav .has-sub{flex-direction:column}
  nav .has-sub>a .caret{display:none}
  nav .submenu{
    position:static;transform:none;opacity:1;visibility:visible;
    background:transparent;border:0;box-shadow:none;
    padding:10px 0 0;display:flex;flex-direction:column;gap:14px;align-items:center;
  }
  nav .submenu a{
    padding:0;border-left:0;font-size:.82rem;
    color:rgba(244,237,224,.55);
  }
  nav .submenu a:hover{padding-left:0}
  .navtoggle{display:block;z-index:60}
  
  .row{grid-template-columns:40px 1fr;gap:16px}
  .row .rstage,.row .rmeta{grid-column:2;text-align:left;margin-top:6px}
  .foot .cta-band{flex-direction:column;align-items:flex-start}
  .wrap{padding:0 24px}
  .page-hero{padding:150px 24px 70px}
  .faq-a{padding-left:0}
  .step{grid-template-columns:44px 1fr;gap:18px}
  .step .snum{width:44px;height:44px;font-size:1rem}
  .steps::before{left:21px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* 導覽列品牌標籤（全站） */
nav .brandmark .brandtag{font-family:var(--tc);font-size:.8rem;font-weight:300;letter-spacing:.28em;color:var(--gold-soft);
  margin-left:13px;padding-left:13px;border-left:1px solid rgba(184,153,104,.4);vertical-align:2px}
@media(max-width:600px){nav .brandmark .brandtag{display:none}}

/* ============================================================
   以下為各頁專屬樣式（原本寫在各 HTML 的 <style> 區塊）
   ------------------------------------------------------------
   規則：每頁的 <html> 標籤帶有 class="page-xxx"，
   該頁樣式一律包在 :where(html.page-xxx) 底下，
   :where() 不增加權重，所以畫面與整併前完全一致。
   新頁面請照同樣格式加在檔案最後。
   ============================================================ */

/* ---------- index.html（page-index） ---------- */
/* ---------- HERO（主頁專用） ---------- */
  :where(html.page-index) .hero{
    position:relative;
    min-height:100vh;
    background:var(--navy);
    color:var(--paper);
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    text-align:center;
    padding:120px 32px 80px;
    overflow:hidden;
  }
  :where(html.page-index) .hero::before{
    content:"";position:absolute;inset:0;
    background:radial-gradient(circle at 50% 32%, rgba(184,153,104,.10), transparent 60%);
    pointer-events:none;
  }
  :where(html.page-index) .hero .eyebrow{
    opacity:0;transform:translateY(14px);
    animation:rise .9s .2s forwards cubic-bezier(.2,.7,.2,1);
    margin-bottom:34px;
  }
  :where(html.page-index) .hero h1{
    font-family:var(--disp);
    font-weight:400;
    font-size:clamp(2.6rem,9vw,6.4rem);
    letter-spacing:.16em;
    line-height:1;
    text-transform:uppercase;
    padding-left:.16em;
    color:var(--white);
    opacity:0;transform:translateY(22px);
    animation:rise 1.1s .35s forwards cubic-bezier(.2,.7,.2,1);
  }
  :where(html.page-index) .hero .tagline{
    font-family:var(--quote);
    font-style:italic;
    font-size:clamp(1.1rem,3vw,1.6rem);
    letter-spacing:.02em;
    color:var(--gold-soft);
    margin-top:22px;
    opacity:0;transform:translateY(18px);
    animation:rise 1.1s .6s forwards cubic-bezier(.2,.7,.2,1);
  }
  :where(html.page-index) .hero .zh-line{
    font-family:var(--tc);
    font-weight:300;
    font-size:clamp(1rem,2.4vw,1.15rem);
    letter-spacing:.32em;
    color:rgba(244,237,224,.66);
    margin-top:26px;padding-left:.32em;
    opacity:0;transform:translateY(16px);
    animation:rise 1.1s .85s forwards cubic-bezier(.2,.7,.2,1);
  }
  @keyframes rise{to{opacity:1;transform:translateY(0)}}

  :where(html.page-index) .way-descend{
    position:absolute;left:50%;bottom:0;transform:translateX(-50%);
    width:1px;height:140px;
    background:linear-gradient(to bottom,transparent,var(--gold));
    opacity:0;
    animation:drawline 1.2s 1.15s forwards ease-out;
  }
  @keyframes drawline{to{opacity:1}}
  :where(html.page-index) .way-descend::after{
    content:"";position:absolute;left:50%;bottom:-3px;transform:translateX(-50%);
    width:5px;height:5px;border-radius:50%;background:var(--gold);
  }

  /* ---------- CREED ---------- */
  :where(html.page-index) .creed{background:var(--paper);text-align:center;padding:100px 32px 0}
  :where(html.page-index) .creed .label{display:block;margin-bottom:26px}
  :where(html.page-index) .creed-zh{
    font-family:var(--tc);font-weight:400;
    font-size:clamp(1.1rem,2.6vw,1.45rem);
    line-height:2.3;letter-spacing:.06em;color:var(--navy);
    max-width:720px;margin:0 auto;
  }
  :where(html.page-index) .creed-zh strong{font-weight:500;color:var(--navy)}

  /* ---------- FORK ---------- */
  :where(html.page-index) .fork{background:var(--paper);padding:96px 0 40px;position:relative}
  :where(html.page-index) .fork-intro{text-align:center;max-width:640px;margin:0 auto 8px}
  :where(html.page-index) .fork-intro .label{display:block;margin-bottom:20px}
  :where(html.page-index) .fork-intro h2{
    font-family:var(--tc);font-weight:400;
    font-size:clamp(1.5rem,4.2vw,2.2rem);
    letter-spacing:.06em;line-height:1.5;color:var(--navy);
  }
  :where(html.page-index) .fork-intro p{
    font-family:var(--tc);font-weight:300;
    color:var(--navy-70);margin-top:18px;font-size:1rem;letter-spacing:.03em;
  }
  :where(html.page-index) .fork-svg{display:block;margin:26px auto 0;width:100%;max-width:520px;height:88px}
  :where(html.page-index) .fork-svg path{fill:none;stroke:var(--gold);stroke-width:1.4}
  :where(html.page-index) .paths{
    display:grid;grid-template-columns:1fr 1fr;gap:0;
    max-width:1080px;margin:0 auto;
    border-top:1px solid rgba(184,153,104,.35);
  }
  :where(html.page-index) .path{padding:52px 44px 60px;position:relative;transition:background .4s ease}
  :where(html.page-index) .path:first-child{border-right:1px solid rgba(184,153,104,.35)}
  :where(html.page-index) .path:hover{background:var(--cream)}
  :where(html.page-index) .path .pathno{font-family:var(--mono);font-size:.7rem;letter-spacing:.24em;color:var(--gold)}
  :where(html.page-index) .path h3{
    font-family:var(--tc);font-weight:500;
    font-size:clamp(1.5rem,3.4vw,2rem);
    color:var(--navy);margin:16px 0 6px;letter-spacing:.04em;
  }
  :where(html.page-index) .path .who{
    font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;
    text-transform:uppercase;color:var(--navy-45);margin-bottom:22px;
  }
  :where(html.page-index) .path .lead{
    font-family:var(--tc);font-weight:300;
    color:var(--ink);font-size:1.02rem;line-height:1.9;letter-spacing:.02em;
  }
  :where(html.page-index) .path .enter{margin-top:30px}
  :where(html.page-index) .path .enter .arrow{transition:transform .3s}
  :where(html.page-index) .path:hover .enter .arrow{transform:translateX(4px)}

  @media(max-width:820px){
    :where(html.page-index) .paths{grid-template-columns:1fr}
    :where(html.page-index) .path:first-child{border-right:0;border-bottom:1px solid rgba(184,153,104,.35)}
    :where(html.page-index) .path{padding:44px 28px 50px}
    :where(html.page-index) .fork-svg{display:none}
  }
  @media(prefers-reduced-motion:reduce){
    :where(html.page-index) .hero .eyebrow,:where(html.page-index) .hero h1,:where(html.page-index) .hero .tagline,:where(html.page-index) .hero .zh-line{opacity:1;transform:none}
    :where(html.page-index) .way-descend{opacity:1}
  }

/* ---------- about.html（page-about） ---------- */
:where(html.page-about) .about-name{
    font-family:var(--quote);font-size:clamp(2.6rem,7vw,4rem);
    color:var(--white);letter-spacing:.02em;line-height:1.1;
  }
  :where(html.page-about) .about-roles{
    font-family:var(--tc);font-weight:300;font-size:.95rem;
    color:rgba(244,237,224,.7);letter-spacing:.2em;margin-top:16px;
  }
  :where(html.page-about) .fellow{
    font-family:var(--quote);font-style:italic;
    font-size:1.5rem;color:var(--gold-soft);margin-top:36px;
  }
  :where(html.page-about) .story p{
    font-family:var(--tc);font-weight:300;
    font-size:1.02rem;line-height:2.1;color:var(--ink);letter-spacing:.03em;
    max-width:680px;margin-bottom:28px;
  }
  :where(html.page-about) .story strong{font-weight:500;color:var(--navy)}
  :where(html.page-about) .universe .csym{letter-spacing:.2em}

/* ---------- articles.html（page-articles） ---------- */
:where(html.page-articles) .filter-bar{
    display:flex;justify-content:center;flex-wrap:wrap;gap:14px;
    margin-bottom:56px;
  }
  :where(html.page-articles) .filter-bar button{
    font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;
    color:var(--navy-70);background:transparent;border:1px solid var(--line);
    border-radius:100px;padding:10px 24px;cursor:pointer;transition:all .3s;
  }
  :where(html.page-articles) .filter-bar button:hover{border-color:var(--gold);color:var(--gold-deep)}
  :where(html.page-articles) .filter-bar button.on{background:var(--navy);color:var(--paper);border-color:var(--navy)}
  :where(html.page-articles) .article-card .adate{
    font-family:var(--mono);font-size:.64rem;letter-spacing:.16em;
    color:var(--navy-45);margin-bottom:14px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;
  }
  :where(html.page-articles) .article-card .acat{color:var(--gold-deep)}
  :where(html.page-articles) .article-card h3{
    font-family:var(--tc);font-weight:500;font-size:1.18rem;
    color:var(--navy);letter-spacing:.03em;line-height:1.6;margin-bottom:12px;
  }
  :where(html.page-articles) .article-card p{font-family:var(--tc);font-weight:300;font-size:.92rem;line-height:1.9;color:var(--ink)}
  :where(html.page-articles) .article-card .enter{margin-top:22px;font-size:.66rem}

/* ---------- brand-partner.html（page-brand-partner） ---------- */
:where(html.page-brand-partner) .pay-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
    background:rgba(184,153,104,.3);border:1px solid rgba(184,153,104,.3);margin-top:32px;
  }
  :where(html.page-brand-partner) .pay-cell{background:var(--navy);padding:26px 22px;text-align:center}
  :where(html.page-brand-partner) .pay-cell .pl{font-family:var(--mono);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(244,237,224,.6)}
  :where(html.page-brand-partner) .pay-cell .pv{font-family:var(--quote);font-weight:500;font-size:1.3rem;color:var(--gold-soft);margin-top:8px}
  @media(max-width:820px){:where(html.page-brand-partner) .pay-grid{grid-template-columns:1fr}}

/* ---------- copyright.html（page-copyright） ---------- */
:where(html.page-copyright) .legal-body{max-width:760px}
  :where(html.page-copyright) .legal-body h2{
    font-family:var(--tc);font-weight:500;font-size:1.25rem;color:var(--navy);
    letter-spacing:.05em;margin:56px 0 18px;
    padding-left:16px;border-left:3px solid var(--gold);
  }
  :where(html.page-copyright) .legal-body h2:first-of-type{margin-top:0}
  :where(html.page-copyright) .legal-body p{
    font-family:var(--tc);font-weight:300;font-size:.98rem;
    line-height:2.1;color:var(--ink);letter-spacing:.02em;margin-bottom:16px;
  }
  :where(html.page-copyright) .legal-body p strong{font-weight:500;color:var(--navy)}
  :where(html.page-copyright) .legal-body .updated{
    font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;
    color:var(--navy-45);text-transform:uppercase;margin-bottom:48px;display:block;
  }

/* ---------- courses.html（page-courses） ---------- */
:where(html.page-courses) .brandmark .brandtag{font-family:'Noto Serif TC',serif;font-size:.8rem;font-weight:300;letter-spacing:.28em;color:#d4bc92;margin-left:13px;padding-left:13px;border-left:1px solid rgba(184,153,104,.4);vertical-align:2px}@media(max-width:600px){:where(html.page-courses) .brandmark .brandtag{display:none}}

  :where(html.page-courses) .course-block{
    display:grid;grid-template-columns:180px 1fr;gap:44px;
    padding:64px 4px;border-bottom:1px solid var(--line);
    align-items:start;
  }
  :where(html.page-courses) .course-block:last-of-type{border-bottom:none}
  :where(html.page-courses) .course-stage{
    font-family:var(--quote);font-style:italic;
    font-size:1.3rem;color:var(--gold);line-height:1.5;
  }
  :where(html.page-courses) .course-stage .cno{display:block;font-family:var(--mono);font-style:normal;font-size:.7rem;letter-spacing:.24em;color:var(--gold);margin-bottom:10px}
  :where(html.page-courses) .course-body h3{
    font-family:var(--tc);font-weight:500;
    font-size:clamp(1.4rem,3.2vw,1.9rem);
    color:var(--navy);letter-spacing:.04em;
  }
  :where(html.page-courses) .course-body .cen{font-family:var(--quote);font-style:italic;font-size:1.05rem;color:var(--gold-deep);margin:4px 0 20px}
  :where(html.page-courses) .course-body .oneliner{
    font-family:var(--tc);font-weight:400;font-size:1.08rem;color:var(--navy);
    letter-spacing:.05em;margin-bottom:16px;
  }
  :where(html.page-courses) .course-body p{font-family:var(--tc);font-weight:300;font-size:1rem;line-height:2;color:var(--ink);max-width:640px}
  :where(html.page-courses) .course-facts{
    display:grid;grid-template-columns:auto 1fr;gap:8px 24px;
    margin:22px 0 4px;max-width:560px;
  }
  :where(html.page-courses) .course-facts .fk{font-family:var(--mono);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);padding-top:6px;white-space:nowrap}
  :where(html.page-courses) .course-facts .fv{font-family:var(--tc);font-weight:300;font-size:.95rem;color:var(--ink);line-height:1.9}
  :where(html.page-courses) .course-badge{
    display:inline-block;margin:18px 8px 0 0;
    font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;
    color:var(--gold-deep);border:1px solid var(--gold);border-radius:100px;
    padding:7px 18px;background:rgba(184,153,104,.08);
  }
  :where(html.page-courses) .course-badge.hot{background:var(--gold);color:var(--navy)}

  /* 課程對照表 */
  :where(html.page-courses) .compare{width:100%;min-width:640px;table-layout:fixed;border-collapse:collapse;margin-top:8px;background:var(--white);border:1px solid var(--line)}
  :where(html.page-courses) .compare thead th:first-child{width:120px}
  :where(html.page-courses) .compare th,:where(html.page-courses) .compare td{
    padding:20px 22px;text-align:left;vertical-align:top;
    border-bottom:1px solid var(--line-soft);border-right:1px solid var(--line-soft);
  }
  :where(html.page-courses) .compare th:last-child,:where(html.page-courses) .compare td:last-child{border-right:none}
  :where(html.page-courses) .compare thead th{
    background:var(--navy);color:var(--white);
    font-family:var(--tc);font-weight:500;font-size:1rem;letter-spacing:.05em;
  }
  :where(html.page-courses) .compare thead th:first-child{background:var(--navy)}
  :where(html.page-courses) .compare tbody th{
    font-family:var(--mono);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;
    color:var(--gold-deep);background:rgba(184,153,104,.06);white-space:nowrap;
  }
  :where(html.page-courses) .compare td{font-family:var(--tc);font-weight:300;font-size:.92rem;line-height:1.9;color:var(--ink)}
  :where(html.page-courses) .compare td strong{font-weight:500;color:var(--navy)}
  :where(html.page-courses) .compare-scroll{overflow-x:auto}
  @media(max-width:820px){
    :where(html.page-courses) .course-block{grid-template-columns:1fr;gap:18px;padding:48px 0}
    :where(html.page-courses) .compare th,:where(html.page-courses) .compare td{padding:14px 14px;font-size:.86rem}
  }

  /* ---------- 候補名單迷你表單 ---------- */
  :where(html.page-courses) .wl-form{display:block;margin-top:18px;max-width:560px}
  :where(html.page-courses) .wl-fields{display:flex;gap:10px;flex-wrap:wrap}
  :where(html.page-courses) .wl-fields input{flex:1 1 150px;min-width:0;box-sizing:border-box;border:1px solid rgba(184,153,104,.45);border-radius:3px;
    background:transparent;padding:12px 14px;font-family:var(--tc);font-weight:300;font-size:.92rem;color:var(--ink)}
  :where(html.page-courses) .wl-fields input:focus{outline:none;border-color:var(--gold)}
  :where(html.page-courses) .wl-fields input::placeholder{color:rgba(44,44,44,.38)}
  :where(html.page-courses) .wl-fields button{flex:0 0 auto;font-family:var(--tc);letter-spacing:.1em;background:var(--navy);color:var(--paper);
    border:1px solid var(--gold);padding:12px 26px;font-size:.9rem;cursor:pointer;transition:.3s;white-space:nowrap}
  :where(html.page-courses) .wl-fields button:hover{background:var(--gold);color:var(--navy)}
  :where(html.page-courses) .wl-fields button:disabled{opacity:.55;cursor:wait}
  :where(html.page-courses) .wl-note{font-family:var(--tc);font-weight:300;font-size:.8rem;color:var(--navy-70);letter-spacing:.05em;margin:10px 0 0}
  :where(html.page-courses) .wl-done{display:none;font-family:var(--tc);font-weight:300;font-size:.92rem;color:var(--navy);letter-spacing:.04em;
    border-left:2px solid var(--gold);padding-left:14px;line-height:1.9;margin:12px 0 0}
  :where(html.page-courses) .wl-form.done .wl-fields,:where(html.page-courses) .wl-form.done .wl-note{display:none}
  :where(html.page-courses) .wl-form.done .wl-done{display:block}
  @media(max-width:560px){:where(html.page-courses) .wl-fields button{flex:1 1 100%}}

/* ---------- heal.html（page-heal） ---------- */
:where(html.page-heal,html.page-shine,html.page-thrive) .brandmark .brandtag{font-family:'Noto Serif TC',serif;font-size:.8rem;font-weight:300;letter-spacing:.28em;color:#d4bc92;margin-left:13px;padding-left:13px;border-left:1px solid rgba(184,153,104,.4);vertical-align:2px}@media(max-width:600px){:where(html.page-heal) .brandmark .brandtag{display:none}}

:root:where(.page-heal){
  --navy:#002347; --navy-soft:#0A2F55; --ink:#1C2A3A;
  --gold:#B89968; --gold-light:#CDB088; --gold-deep:#B08A4A;
  --cream:#F4EDE0; --cream-deep:#ECE2CF; --paper:#FBF7EF;
  --brick:#B4504A; --soft:#5A6675; --line:#DDD2BD;
  --serif:'Noto Serif TC',serif; --sans:'Noto Sans TC',sans-serif; --latin:'Cormorant',serif;
}
:where(html.page-heal,html.page-shine,html.page-thrive) *{margin:0;padding:0;box-sizing:border-box}
html:where(.page-heal){scroll-behavior:smooth}
:where(html.page-heal) body{font-family:var(--serif);color:var(--ink);background:var(--paper);line-height:2.1;font-weight:400;letter-spacing:.04em}
:where(html.page-heal,html.page-shine,html.page-thrive) .badge,:where(html.page-heal,html.page-shine,html.page-thrive) .note,:where(html.page-heal,html.page-shine,html.page-thrive) .eyebrow,:where(html.page-heal,html.page-shine,html.page-thrive) .tag,:where(html.page-heal,html.page-shine,html.page-thrive) .tier,:where(html.page-heal,html.page-shine,html.page-thrive) footer.site{font-family:var(--sans)}
:where(html.page-heal,html.page-shine,html.page-thrive) img{max-width:100%}
:where(html.page-heal,html.page-shine,html.page-thrive) a{color:inherit}
:where(html.page-heal) .wrap{max-width:1020px;margin:0 auto;padding:0 24px}
:where(html.page-heal) section{padding:96px 0}
:where(html.page-heal,html.page-shine,html.page-thrive) .eyebrow{font-family:var(--latin);letter-spacing:.45em;text-transform:uppercase;font-size:.8rem;color:var(--gold-deep);display:block;margin-bottom:14px}
:where(html.page-heal,html.page-shine,html.page-thrive) .on-dark .eyebrow{color:var(--gold-light)}
:where(html.page-heal) h2{font-size:clamp(1.55rem,3.2vw,2.1rem);font-weight:600;letter-spacing:.06em;line-height:1.7;margin-bottom:18px}
:where(html.page-heal) .lead{color:var(--soft);max-width:600px;margin-bottom:48px}
:where(html.page-heal,html.page-shine,html.page-thrive) .on-dark{background:var(--navy);color:var(--cream)}
:where(html.page-heal,html.page-shine,html.page-thrive) .on-dark .lead{color:#C9CFDA}
:where(html.page-heal,html.page-shine,html.page-thrive) .on-cream{background:var(--cream)}
:where(html.page-heal,html.page-shine,html.page-thrive) .center{text-align:center}
:where(html.page-heal,html.page-shine,html.page-thrive) .center .lead{margin-left:auto;margin-right:auto}
:where(html.page-heal,html.page-shine,html.page-thrive) .btn{display:inline-block;padding:15px 36px;font-family:var(--sans);font-size:1rem;letter-spacing:.12em;text-decoration:none;border:1px solid var(--gold);transition:.25s;background:transparent;color:inherit;text-transform:none}
:where(html.page-heal,html.page-shine,html.page-thrive) .btn:hover{transform:none}
:where(html.page-heal,html.page-shine,html.page-thrive) .btn-solid{background:var(--gold);color:var(--navy);font-weight:600}
:where(html.page-heal,html.page-shine,html.page-thrive) .btn-solid:hover{background:var(--gold-deep);border-color:var(--gold-deep)}
:where(html.page-heal,html.page-shine,html.page-thrive) .btn-ghost{color:var(--gold-deep)}
:where(html.page-heal,html.page-shine,html.page-thrive) .on-dark .btn-ghost{color:var(--gold-light)}
:where(html.page-heal,html.page-shine,html.page-thrive) .btn-ghost:hover{background:rgba(184,153,104,.12)}
/* nav：改用主站導覽列（style.css），LP 原生 nav 樣式已移除 */
/* waitlist form（淺色底版本） */
:where(html.page-heal,html.page-shine,html.page-thrive) .wl-form{margin:34px auto 0;max-width:560px;text-align:center}
:where(html.page-heal,html.page-shine,html.page-thrive) .wl-fields{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
:where(html.page-heal) .wl-fields input{flex:1 1 170px;min-width:0;box-sizing:border-box;border:1px solid rgba(184,153,104,.5);background:transparent;
  padding:14px 16px;font-family:var(--sans);font-size:.95rem;color:var(--ink);border-radius:2px}
:where(html.page-heal) .wl-fields input::placeholder{color:rgba(90,102,117,.55)}
:where(html.page-heal) .wl-fields input:focus{outline:none;border-color:var(--gold-deep)}
:where(html.page-heal) .wl-fields .btn{cursor:pointer}
:where(html.page-heal) .wl-note{font-family:var(--sans);font-size:.82rem;color:var(--soft);letter-spacing:.05em;margin-top:12px}
:where(html.page-heal) .wl-done{display:none;font-family:var(--sans);font-size:.98rem;color:var(--gold-deep);letter-spacing:.04em;line-height:1.9;margin-top:14px}
:where(html.page-heal,html.page-shine,html.page-thrive) .wl-form.done .wl-fields,:where(html.page-heal,html.page-shine,html.page-thrive) .wl-form.done .wl-note{display:none}
:where(html.page-heal,html.page-shine,html.page-thrive) .wl-form.done .wl-done{display:block}
@media(max-width:560px){:where(html.page-heal) .wl-fields .btn{flex:1 1 100%}}
/* hero — 柔和版：紙色底、留白多 */
:where(html.page-heal) .hero{background:radial-gradient(110% 80% at 50% 10%,#FFFDF8 0%,var(--paper) 62%);color:var(--ink);padding:150px 0 48px;text-align:center;position:relative;overflow:hidden}
:where(html.page-heal) .hero:before{content:"WriteWay";position:absolute;font-family:var(--latin);font-style:italic;font-size:22rem;color:rgba(184,153,104,.06);top:-60px;right:-30px;pointer-events:none}
:where(html.page-heal,html.page-shine,html.page-thrive) .hero .wrap{position:relative}
:where(html.page-heal) .tagline{font-family:var(--latin);font-style:italic;font-size:1.3rem;color:var(--gold-deep);letter-spacing:.06em;margin-bottom:34px}
:where(html.page-heal) .hero h1{font-size:clamp(1.9rem,4.6vw,2.9rem);font-weight:700;letter-spacing:.1em;text-indent:.1em;line-height:1.7;margin:14px 0 26px;color:var(--navy)}
:where(html.page-heal) .hero h1 em{font-style:normal;color:var(--gold-deep)}
:where(html.page-heal) .hero .sub{font-size:1.08rem;color:var(--soft);max-width:620px;margin:0 auto 14px}
:where(html.page-heal) .hero .promise{font-size:1.12rem;color:var(--ink);max-width:620px;margin:0 auto 44px}
:where(html.page-heal) .hero .promise b{color:var(--gold-deep);font-weight:600}
:where(html.page-heal) .badges{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:44px}
:where(html.page-heal) .badge{border:1px solid rgba(184,153,104,.55);padding:6px 18px;font-size:.85rem;letter-spacing:.1em;color:var(--gold-deep)}
:where(html.page-heal,html.page-shine,html.page-thrive) .hero .ctas{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
:where(html.page-heal) .hero .note{margin-top:26px;font-size:.85rem;color:var(--soft);letter-spacing:.08em}
/* descend line（呼應主站） */
:where(html.page-heal) .way-descend{position:relative;margin:64px auto 0;width:1px;height:90px;background:linear-gradient(to bottom,transparent,var(--gold))}
:where(html.page-heal) .way-descend:after{content:"";position:absolute;left:50%;bottom:-3px;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--gold)}
/* cards & grids */
:where(html.page-heal,html.page-shine,html.page-thrive) .grid{display:grid;gap:22px}
:where(html.page-heal,html.page-shine,html.page-thrive) .g2{grid-template-columns:repeat(2,1fr)}
:where(html.page-heal,html.page-shine,html.page-thrive) .g3{grid-template-columns:repeat(3,1fr)}
:where(html.page-heal) .card{background:var(--paper);border:1px solid var(--line);padding:32px 28px}
:where(html.page-heal,html.page-shine,html.page-thrive) .on-cream .card{background:#fff9}
:where(html.page-heal,html.page-shine,html.page-thrive) .card h3{font-size:1.08rem;font-weight:600;margin-bottom:10px}
:where(html.page-heal,html.page-shine,html.page-thrive) .card p{font-size:.93rem;color:var(--soft)}
:where(html.page-heal,html.page-shine,html.page-thrive) .num{font-family:var(--latin);font-size:1.6rem;color:var(--gold);display:block;margin-bottom:8px}
:where(html.page-heal,html.page-shine,html.page-thrive) .on-dark .card{background:rgba(251,247,239,.05);border-color:rgba(184,153,104,.4)}
:where(html.page-heal,html.page-shine,html.page-thrive) .on-dark .card h3{color:var(--cream)}
:where(html.page-heal,html.page-shine,html.page-thrive) .on-dark .card p{color:#AEB9C9}
/* acts */
:where(html.page-heal,html.page-shine,html.page-thrive) .act{border-left:3px solid var(--gold);padding:26px 30px;background:var(--paper);border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:34px}
:where(html.page-heal,html.page-shine,html.page-thrive) .act-label{font-family:var(--latin);letter-spacing:.3em;font-size:.78rem;color:var(--gold-deep);text-transform:uppercase}
:where(html.page-heal,html.page-shine,html.page-thrive) .act h3{font-size:1.35rem;font-weight:700;margin:6px 0 4px}
:where(html.page-heal) .act h3 small{font-family:var(--latin);font-weight:500;font-size:.75em;color:var(--gold-deep);letter-spacing:.08em;margin-left:10px}
:where(html.page-heal,html.page-shine,html.page-thrive) .act .act-sub{color:var(--soft);font-size:.95rem;margin-bottom:20px}
:where(html.page-heal,html.page-shine,html.page-thrive) .weeks{display:grid;gap:14px}
:where(html.page-heal) .week{display:grid;grid-template-columns:90px 110px 1fr;gap:14px;align-items:baseline;border-top:1px dashed var(--line);padding-top:14px}
:where(html.page-heal,html.page-shine,html.page-thrive) .week .wno{font-family:var(--latin);color:var(--gold-deep);font-size:1.05rem}
:where(html.page-heal,html.page-shine,html.page-thrive) .week .wname{font-weight:600}
:where(html.page-heal,html.page-shine,html.page-thrive) .week .wq{color:var(--soft);font-size:.93rem}
:where(html.page-heal,html.page-shine,html.page-thrive) .week .wq b{color:var(--ink);font-weight:500;display:block}
/* table */
:where(html.page-heal,html.page-shine,html.page-thrive) table{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--line)}
:where(html.page-heal,html.page-shine,html.page-thrive) th,:where(html.page-heal,html.page-shine,html.page-thrive) td{padding:16px 18px;text-align:left;border-bottom:1px solid var(--line);font-size:.94rem;vertical-align:top}
:where(html.page-heal,html.page-shine,html.page-thrive) th{font-weight:600;background:var(--cream-deep);letter-spacing:.05em}
:where(html.page-heal,html.page-shine,html.page-thrive) td:first-child{font-weight:600;white-space:nowrap;color:var(--gold-deep)}
:where(html.page-heal,html.page-shine,html.page-thrive) td.before{color:var(--soft)}
:where(html.page-heal,html.page-shine,html.page-thrive) td.after{color:var(--ink)}
/* instructor */
:where(html.page-heal) .split{display:grid;grid-template-columns:1fr 1.4fr;gap:56px;align-items:center}

:where(html.page-heal) blockquote.pull{font-size:1.15rem;font-weight:500;border-left:3px solid var(--gold);padding-left:20px;margin:22px 0;line-height:2}
/* testimonials */
:where(html.page-heal,html.page-shine,html.page-thrive) .quote{background:var(--paper);border:1px solid var(--line);padding:28px;font-size:.95rem;color:var(--ink)}
:where(html.page-heal,html.page-shine,html.page-thrive) .quote footer{margin-top:14px;color:var(--gold-deep);font-size:.85rem;letter-spacing:.1em}
/* fit */
:where(html.page-heal,html.page-shine,html.page-thrive) .fit-list{list-style:none}
:where(html.page-heal,html.page-shine,html.page-thrive) .fit-list li{padding:10px 0 10px 34px;position:relative;border-bottom:1px dashed var(--line);font-size:.95rem}
:where(html.page-heal,html.page-shine,html.page-thrive) .fit-list li:before{position:absolute;left:4px;font-family:var(--latin)}
:where(html.page-heal,html.page-shine,html.page-thrive) .yes li:before{content:"✓";color:var(--gold-deep)}
:where(html.page-heal,html.page-shine,html.page-thrive) .no li:before{content:"✗";color:var(--brick)}
/* plans */
:where(html.page-heal) .plan{background:var(--paper);border:1px solid var(--line);padding:38px 30px;display:flex;flex-direction:column}
:where(html.page-heal) .plan.featured{border:1px solid var(--gold);background:#fff;transform:translateY(-10px)}
:where(html.page-heal,html.page-shine,html.page-thrive) .plan h3{font-family:var(--serif) !important;font-size:1.2rem;font-weight:700;margin-bottom:4px}
:where(html.page-heal) .plan .tier{font-family:var(--latin);letter-spacing:.28em;font-size:.72rem;text-transform:uppercase;color:var(--gold-deep);margin-bottom:16px}
:where(html.page-heal,html.page-shine,html.page-thrive) .plan ul{list-style:none;margin:14px 0 22px;flex:1}
:where(html.page-heal,html.page-shine,html.page-thrive) .plan li{padding:7px 0 7px 24px;position:relative;font-size:.9rem}
:where(html.page-heal,html.page-shine,html.page-thrive) .plan li:before{content:"—";position:absolute;left:0;color:var(--gold)}
:where(html.page-heal,html.page-shine,html.page-thrive) .plan .price{font-family:var(--latin);font-size:1.3rem;margin-bottom:18px;letter-spacing:.06em}
:where(html.page-heal) .plan .price small{font-size:.72rem;font-family:var(--sans);letter-spacing:.08em;display:block;color:var(--soft);margin-top:4px}
:where(html.page-heal) .tag{display:inline-block;background:var(--gold-deep);color:#fff;font-size:.72rem;letter-spacing:.15em;padding:3px 12px;margin-bottom:14px;align-self:flex-start}
/* faq */
:where(html.page-heal,html.page-shine,html.page-thrive) details{border-bottom:1px solid var(--line);padding:20px 0}
:where(html.page-heal,html.page-shine,html.page-thrive) summary{cursor:pointer;font-weight:600;font-size:1rem;list-style:none;position:relative;padding-right:32px}
:where(html.page-heal,html.page-shine,html.page-thrive) summary::-webkit-details-marker{display:none}
:where(html.page-heal,html.page-shine,html.page-thrive) summary:after{content:"+";position:absolute;right:4px;font-family:var(--latin);color:var(--gold-deep);font-size:1.3rem}
:where(html.page-heal,html.page-shine,html.page-thrive) details[open] summary:after{content:"–"}
:where(html.page-heal,html.page-shine,html.page-thrive) details p{margin-top:12px;color:var(--soft);font-size:.94rem}
/* final */
:where(html.page-heal) .final{text-align:center;padding:120px 0}
:where(html.page-heal) .final h2{font-size:clamp(1.7rem,3.8vw,2.4rem)}
:where(html.page-heal,html.page-shine,html.page-thrive) .final .sig{font-family:var(--latin);font-style:italic;font-size:1.3rem;color:var(--gold-light);margin:26px 0 38px}
:where(html.page-heal,html.page-shine,html.page-thrive) footer.site{background:var(--ink);color:#8FA0B5;text-align:center;padding:30px 0;font-size:.82rem;letter-spacing:.08em}
/* editable slots */
:where(html.page-heal,html.page-shine,html.page-thrive) .slot{outline:1px dashed rgba(180,80,74,.0)}
@media(max-width:860px){
  :where(html.page-heal) .g2,:where(html.page-heal) .g3,:where(html.page-heal) .split{grid-template-columns:1fr 1fr}
  :where(html.page-heal) .split{grid-template-columns:1fr}
  :where(html.page-heal) section{padding:68px 0}
  :where(html.page-heal) .week{grid-template-columns:70px 1fr;grid-template-rows:auto auto}
  :where(html.page-heal) .week .wq{grid-column:1/-1}
  :where(html.page-heal) .plan.featured{transform:none}
}
@media(max-width:520px){:where(html.page-heal) .g2,:where(html.page-heal) .g3{grid-template-columns:1fr}:where(html.page-heal) .hero:before{font-size:10rem}}

/* ---------- newsletter.html（page-newsletter） ---------- */
:where(html.page-newsletter) .nl-hero{
    background:var(--navy);color:var(--paper);
    min-height:92vh;display:flex;flex-direction:column;align-items:center;justify-content:center;
    text-align:center;padding:160px 32px 90px;position:relative;overflow:hidden;
  }
  :where(html.page-newsletter) .nl-hero::before{
    content:"";position:absolute;inset:0;
    background:radial-gradient(circle at 50% 28%, rgba(184,153,104,.12), transparent 60%);
    pointer-events:none;
  }
  :where(html.page-newsletter) .nl-sym{font-size:1.5rem;color:var(--gold);letter-spacing:.3em;margin-bottom:26px}
  :where(html.page-newsletter) .nl-hero h1{
    font-family:var(--disp);font-weight:400;
    font-size:clamp(2.4rem,7vw,4.6rem);
    letter-spacing:.14em;text-transform:uppercase;padding-left:.14em;
    color:var(--white);line-height:1.1;
  }
  :where(html.page-newsletter) .nl-hero .tagline{
    font-family:var(--quote);font-style:italic;
    font-size:clamp(1.05rem,2.8vw,1.5rem);color:var(--gold-soft);margin-top:20px;
  }
  :where(html.page-newsletter) .nl-hero .zh-sub{
    font-family:var(--tc);font-weight:300;font-size:.98rem;
    color:rgba(244,237,224,.7);letter-spacing:.08em;margin:18px 0 48px;max-width:560px;
  }
  :where(html.page-newsletter) .rhythm-quote{
    margin:56px auto 0;padding:36px 40px;max-width:640px;
    border-top:1px solid var(--line);border-bottom:1px solid var(--line);
    font-family:var(--quote);font-style:italic;
    font-size:1.35rem;color:var(--navy);line-height:1.7;text-align:center;
  }
  :where(html.page-newsletter) .rhythm-quote .zh{display:block;font-style:normal;font-size:.9rem;color:var(--navy-70);margin-top:12px;letter-spacing:.1em}
  :where(html.page-newsletter) .rhythm-lines{text-align:center;max-width:640px;margin:0 auto}
  :where(html.page-newsletter) .rhythm-lines p{font-family:var(--tc);font-weight:300;font-size:1.05rem;line-height:2.2;color:var(--ink)}
  :where(html.page-newsletter) .rhythm-lines strong{font-weight:500;color:var(--navy)}
  
  

/* ---------- services.html（page-services） ---------- */
:where(html.page-services) .svc-grid{display:grid;gap:32px;margin-top:8px}
  :where(html.page-services) .svc-card{
    display:grid;grid-template-columns:200px 1fr auto;gap:40px;align-items:center;
    background:var(--white);border:1px solid var(--line-soft);border-left:3px solid var(--gold);
    padding:44px 44px;transition:transform .3s ease, box-shadow .3s ease;
  }
  :where(html.page-services) .svc-card:hover{transform:translateY(-4px);box-shadow:0 14px 40px rgba(0,35,71,.08)}
  :where(html.page-services) .svc-meta .sm-no{font-family:var(--mono);font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
  :where(html.page-services) .svc-meta .sm-price{font-family:var(--quote);font-style:italic;font-size:1.15rem;color:var(--gold-deep);margin-top:12px;line-height:1.6}
  :where(html.page-services) .svc-body h3{font-family:var(--tc);font-weight:500;font-size:1.5rem;color:var(--navy);letter-spacing:.04em}
  :where(html.page-services) .svc-body .sen{font-family:var(--quote);font-style:italic;font-size:1rem;color:var(--gold-deep);margin:4px 0 14px}
  :where(html.page-services) .svc-body p{font-family:var(--tc);font-weight:300;font-size:.96rem;line-height:1.9;color:var(--ink);max-width:560px}
  :where(html.page-services) .svc-body .fit{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;color:var(--navy-45);margin-top:14px;text-transform:uppercase}
  @media(max-width:900px){
    :where(html.page-services) .svc-card{grid-template-columns:1fr;gap:20px;padding:36px 28px}
  }

/* ---------- shine.html（page-shine） ---------- */
@media(max-width:600px){:where(html.page-shine) .brandmark .brandtag{display:none}}

:root:where(.page-shine){
  --navy:#002347; --navy-soft:#0A2F55; --ink:#1C2A3A;
  --gold:#B89968; --gold-light:#CDB088; --gold-deep:#B08A4A;
  --cream:#F4EDE0; --cream-deep:#ECE2CF; --paper:#FBF7EF;
  --brick:#B4504A; --soft:#5A6675; --line:#DDD2BD;
  --serif:'Noto Serif TC',serif; --sans:'Noto Sans TC',sans-serif; --latin:'Cormorant',serif;
}

html:where(.page-shine){scroll-behavior:smooth}
:where(html.page-shine,html.page-thrive) body{font-family:var(--serif);color:var(--ink);background:var(--paper);line-height:2;font-weight:400;letter-spacing:.03em}

:where(html.page-shine,html.page-thrive) .wrap{max-width:1060px;margin:0 auto;padding:0 24px}
:where(html.page-shine,html.page-thrive) section{padding:88px 0}

:where(html.page-shine,html.page-thrive) h2{font-size:clamp(1.6rem,3.4vw,2.2rem);font-weight:600;letter-spacing:.06em;line-height:1.6;margin-bottom:18px}
:where(html.page-shine,html.page-thrive) .lead{color:var(--soft);max-width:620px;margin-bottom:48px}

/* nav：改用主站導覽列（style.css），LP 原生 nav 樣式已移除 */
/* hero */
:where(html.page-shine,html.page-thrive) .hero{background:radial-gradient(120% 90% at 50% 18%,#10365F 0%,var(--navy) 68%);color:var(--cream);padding:130px 0 110px;text-align:center;position:relative;overflow:hidden}
:where(html.page-shine,html.page-thrive) .hero:before{content:"WriteWay";position:absolute;font-family:var(--latin);font-style:italic;font-size:22rem;color:rgba(184,153,104,.05);top:-70px;left:-40px;pointer-events:none}

:where(html.page-shine,html.page-thrive) .tagline{font-family:var(--latin);font-style:italic;font-size:1.3rem;color:var(--gold-light);letter-spacing:.06em;margin-bottom:34px}
:where(html.page-shine,html.page-thrive) .hero h1{font-size:clamp(2rem,4.8vw,3rem);font-weight:700;letter-spacing:.08em;text-indent:.08em;line-height:1.5;margin:14px 0 24px;color:var(--cream)}
:where(html.page-shine,html.page-thrive) .hero h1 em{font-style:normal;color:var(--gold-light)}
:where(html.page-shine,html.page-thrive) .hero .sub{font-size:1.08rem;color:#C9CFDA;max-width:640px;margin:0 auto 14px}
:where(html.page-shine,html.page-thrive) .hero .promise{font-size:1.15rem;color:var(--cream);max-width:640px;margin:0 auto 40px}
:where(html.page-shine,html.page-thrive) .hero .promise b{color:var(--gold-light);font-weight:600}
:where(html.page-shine,html.page-thrive) .badges{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:42px}
:where(html.page-shine,html.page-thrive) .badge{border:1px solid rgba(184,153,104,.5);padding:6px 18px;font-size:.85rem;letter-spacing:.1em;color:var(--gold-light)}

:where(html.page-shine,html.page-thrive) .hero .note{margin-top:26px;font-size:.85rem;color:#8FA0B5;letter-spacing:.08em}
/* cards & grids */

:where(html.page-shine,html.page-thrive) .card{background:var(--paper);border:1px solid var(--line);padding:30px 26px}

/* acts */

:where(html.page-shine) .week{display:grid;grid-template-columns:64px 152px 1fr;gap:14px;align-items:baseline;border-top:1px dashed var(--line);padding-top:14px}

:where(html.page-shine) .week .wname .wletter{display:block;font-family:var(--latin);font-weight:400;font-size:.7rem;letter-spacing:.14em;color:var(--gold-deep);margin-top:5px;text-transform:uppercase;white-space:nowrap}

/* before after */

/* works */
:where(html.page-shine,html.page-thrive) .works{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;max-width:900px;margin:0 auto;counter-reset:wk}
:where(html.page-shine,html.page-thrive) .work{border:1px solid rgba(184,153,104,.45);padding:18px 14px;text-align:center;font-size:.9rem;color:var(--cream);counter-increment:wk;background:rgba(251,247,239,.04)}
:where(html.page-shine,html.page-thrive) .work:before{content:counter(wk,decimal-leading-zero);display:block;font-family:var(--latin);color:var(--gold-light);font-size:1.2rem;margin-bottom:6px}
/* mentors */

:where(html.page-shine,html.page-thrive) .mono{width:76px;height:76px;border-radius:50%;border:1px solid var(--gold);color:var(--gold-light);display:flex;align-items:center;justify-content:center;font-family:var(--latin);font-size:1.5rem;margin:0 auto 14px}

/* instructor */
:where(html.page-shine) .split{display:grid;grid-template-columns:1fr 1.4fr;gap:56px;align-items:center}

:where(html.page-shine,html.page-thrive) blockquote.pull{font-size:1.15rem;font-weight:500;border-left:3px solid var(--gold);padding-left:20px;margin:22px 0;line-height:1.9}
/* testimonials */

/* fit */

/* plans */
:where(html.page-shine,html.page-thrive) .plan{background:rgba(251,247,239,.05);border:1px solid rgba(184,153,104,.4);padding:38px 30px;display:flex;flex-direction:column}
:where(html.page-shine,html.page-thrive) .plan.featured{background:var(--paper);color:var(--ink);border:1px solid var(--gold);transform:translateY(-10px)}

:where(html.page-shine,html.page-thrive) .plan .tier{font-family:var(--latin);letter-spacing:.28em;font-size:.72rem;text-transform:uppercase;color:var(--gold-light);margin-bottom:16px}
:where(html.page-shine,html.page-thrive) .plan.featured .tier{color:var(--gold-deep)}

:where(html.page-shine,html.page-thrive) .plan .price small{font-size:.72rem;font-family:var(--sans);letter-spacing:.08em;display:block;color:var(--gold-light);margin-top:4px}
:where(html.page-shine,html.page-thrive) .plan.featured .price small{color:var(--soft)}
:where(html.page-shine,html.page-thrive) .tag{display:inline-block;background:var(--brick);color:#fff;font-size:.72rem;letter-spacing:.15em;padding:3px 12px;margin-bottom:14px;align-self:flex-start}
/* faq */

/* final */
:where(html.page-shine,html.page-thrive) .final{text-align:center;padding:110px 0}
:where(html.page-shine,html.page-thrive) .final h2{font-size:clamp(1.8rem,4vw,2.6rem)}

/* editable slots */

@media(max-width:860px){
  :where(html.page-shine) .g2,:where(html.page-shine) .g3,:where(html.page-shine) .split,:where(html.page-shine) .works{grid-template-columns:1fr 1fr}
  :where(html.page-shine) .split{grid-template-columns:1fr}
  :where(html.page-shine) section{padding:64px 0}
  :where(html.page-shine) .week{grid-template-columns:52px 1fr;grid-template-rows:auto auto}
  :where(html.page-shine) .week .wq{grid-column:1/-1}
  :where(html.page-shine) .plan.featured{transform:none}
}
@media(max-width:520px){:where(html.page-shine) .g2,:where(html.page-shine) .g3,:where(html.page-shine) .works{grid-template-columns:1fr}:where(html.page-shine) .hero:before{font-size:9rem}}

/* waitlist form */

:where(html.page-shine,html.page-thrive) .wl-fields input{flex:1 1 170px;min-width:0;box-sizing:border-box;border:1px solid rgba(205,176,136,.55);background:rgba(251,247,239,.06);
  padding:14px 16px;font-family:var(--sans);font-size:.95rem;color:var(--paper);border-radius:2px}
:where(html.page-shine,html.page-thrive) .wl-fields input::placeholder{color:rgba(244,237,224,.45)}
:where(html.page-shine,html.page-thrive) .wl-fields input:focus{outline:none;border-color:var(--gold-light)}
:where(html.page-shine,html.page-thrive) .wl-note{font-family:var(--sans);font-size:.82rem;color:rgba(244,237,224,.6);letter-spacing:.05em;margin-top:12px}
:where(html.page-shine,html.page-thrive) .wl-done{display:none;font-family:var(--sans);font-size:.98rem;color:var(--gold-light);letter-spacing:.04em;line-height:1.9;margin-top:14px}

@media(max-width:560px){:where(html.page-shine) .wl-fields .btn{flex:1 1 100%}}

/* ---------- students.html（page-students） ---------- */
/* 階段小標 */
  
  
  
  
  

  /* 作品卡 */
  
  

  /* 尚未開始的階段 */
  

/* ---------- thrive.html（page-thrive） ---------- */
@media(max-width:600px){:where(html.page-thrive) .brandmark .brandtag{display:none}}

:root:where(.page-thrive){
  --navy:#002347; --navy-soft:#0A2F55; --ink:#1C2A3A;
  --gold:#B89968; --gold-light:#CDB088; --gold-deep:#B08A4A;
  --cream:#F4EDE0; --cream-deep:#ECE2CF; --paper:#FBF7EF;
  --brick:#B4504A; --soft:#5A6675; --line:#DDD2BD;
  --serif:'Noto Serif TC',serif; --sans:'Noto Sans TC',sans-serif; --latin:'Cormorant',serif;
}

html:where(.page-thrive){scroll-behavior:smooth}

/* nav：改用主站導覽列（style.css），LP 原生 nav 樣式已移除 */
/* hero */

/* cards & grids */

/* acts */

:where(html.page-thrive) .week{display:grid;grid-template-columns:64px 110px 1fr;gap:14px;align-items:baseline;border-top:1px dashed var(--line);padding-top:14px}

/* before after */

/* works */

/* mentors */

/* instructor */
:where(html.page-thrive) .split{display:grid;grid-template-columns:1fr 1.4fr;gap:56px;align-items:center}

/* testimonials */

/* fit */

/* plans */

/* faq */

/* final */

/* editable slots */

@media(max-width:860px){
  :where(html.page-thrive) .g2,:where(html.page-thrive) .g3,:where(html.page-thrive) .split,:where(html.page-thrive) .works{grid-template-columns:1fr 1fr}
  :where(html.page-thrive) .split{grid-template-columns:1fr}
  :where(html.page-thrive) section{padding:64px 0}
  :where(html.page-thrive) .week{grid-template-columns:52px 1fr;grid-template-rows:auto auto}
  :where(html.page-thrive) .week .wq{grid-column:1/-1}
  :where(html.page-thrive) .plan.featured{transform:none}
}
@media(max-width:520px){:where(html.page-thrive) .g2,:where(html.page-thrive) .g3,:where(html.page-thrive) .works{grid-template-columns:1fr}:where(html.page-thrive) .hero:before{font-size:9rem}}

/* waitlist form */

@media(max-width:560px){:where(html.page-thrive) .wl-fields .btn{flex:1 1 100%}}

/* ========== 2026-07 站體優化批次一 ========== */
/* sr-only（表單標籤／無障礙） */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* 首頁 HERO 定位句與 CTA */
:where(html.page-index) .hero .hero-pitch{
  font-family:var(--tc);font-weight:300;
  font-size:clamp(.96rem,2.2vw,1.12rem);line-height:2;letter-spacing:.04em;
  color:rgba(244,237,224,.82);max-width:660px;margin:32px auto 0;
  opacity:0;transform:translateY(16px);
  animation:rise 1.1s 1s forwards cubic-bezier(.2,.7,.2,1);
}

:where(html.page-index) .hero .btn.ghost{color:var(--paper);border-color:rgba(244,237,224,.5)}
:where(html.page-index) .hero .btn.ghost:hover{background:rgba(244,237,224,.1)}
@media(prefers-reduced-motion:reduce){
  :where(html.page-index) .hero .hero-pitch{opacity:1;transform:none}
}

/* 課程頁排隊表單隱私說明 */
:where(html.page-courses) .wl-privacy{font-family:var(--tc);font-weight:300;font-size:.72rem;line-height:1.7;color:var(--navy-45);margin-top:10px;max-width:560px}

/* 漢堡選單 → X */
.navtoggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.navtoggle.open span:nth-child(2){opacity:0}
.navtoggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* 手機：子選單預設收合、點擊展開 */
@media(max-width:820px){
  nav .has-sub>a .caret{display:inline-block;transition:transform .25s}
  nav .has-sub.open>a .caret{transform:rotate(180deg)}
  nav .submenu{max-height:0;overflow:hidden;opacity:0;padding:0;
    transition:max-height .3s ease,opacity .25s ease,padding .3s ease}
  nav .has-sub.open .submenu{max-height:420px;opacity:1;padding:10px 0 4px}
}

/* HERO 定位句：三行結構 */
:where(html.page-index) .hero .hero-pitch span{display:block}
:where(html.page-index) .hero .hero-pitch span + span{margin-top:9px}

/* ========== 2026-08-12 shine 進階定位改版（僅 page-shine scope） ========== */
:where(html.page-shine) .tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
:where(html.page-shine) .tblwrap table{min-width:560px}
:where(html.page-shine) .defcard{background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--gold);padding:30px 26px}
:where(html.page-shine) .on-cream .defcard{background:#fff9}
:where(html.page-shine) .defcard .dk{font-family:var(--latin);letter-spacing:.24em;font-size:.72rem;text-transform:uppercase;color:var(--gold-deep);display:block;margin-bottom:8px}
:where(html.page-shine) .defcard h3{font-size:1.15rem;font-weight:700;margin-bottom:10px}
:where(html.page-shine) .defcard p{font-size:.93rem;color:var(--soft)}

:where(html.page-shine) .ba{display:grid;gap:10px}
:where(html.page-shine) .ba>div{font-size:.9rem;line-height:1.85;padding:10px 0 10px 14px;border-left:2px solid var(--line);color:var(--soft)}
:where(html.page-shine) .ba>div.aft{border-left-color:var(--gold);color:var(--ink)}
:where(html.page-shine) .ba>div em{font-style:normal;font-family:var(--sans);font-size:.7rem;letter-spacing:.16em;color:var(--gold-deep);display:block;margin-bottom:3px}
:where(html.page-shine) .notice{border:1px solid rgba(184,153,104,.4);background:rgba(251,247,239,.05);padding:38px 30px;max-width:660px;margin:0 auto}
:where(html.page-shine) .wl-err{display:none;font-family:var(--sans);font-size:.9rem;color:#F2BCA8;letter-spacing:.04em;line-height:1.8;margin-top:12px}
:where(html.page-shine) .wl-form.err .wl-err{display:block}

/* C.R.E.A.T.E. 六字母視覺化（課程地圖） */
:where(html.page-shine) .acrogrid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;max-width:760px;margin:6px 0 34px}
:where(html.page-shine) .acro{text-align:center;border-bottom:1px solid var(--line);padding-bottom:14px}
:where(html.page-shine) .acro b{display:block;font-family:var(--latin);font-weight:400;
  font-size:clamp(2.1rem,4.6vw,3rem);line-height:1;color:var(--gold-deep)}
:where(html.page-shine) .acro span{display:block;font-family:var(--latin);font-size:.64rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--soft);margin-top:10px;white-space:nowrap}
:where(html.page-shine) .acro i{display:block;font-style:normal;font-size:.8rem;letter-spacing:.06em;color:var(--ink);margin-top:5px}
:where(html.page-shine) .week .wname .wletter b{font-family:var(--latin);font-weight:400;font-size:1.05rem;
  letter-spacing:.02em;color:var(--gold-deep);margin-right:2px}
@media(max-width:640px){:where(html.page-shine) .acrogrid{grid-template-columns:repeat(3,1fr);gap:10px}
  :where(html.page-shine) .acro span{font-size:.58rem;letter-spacing:.1em}}

/* 學員 BEFORE→AFTER 圖片區（第一季證據） */

/* 2026-08-14 shine BA：可手動左右滑的輪播帶＋延伸案例區 */
:where(html.page-shine) .baHint{color:var(--gold-deep);margin-left:10px;font-size:.85rem}
:where(html.page-shine) .baRow+.baRow{margin-top:34px}
:where(html.page-shine) .baRowHead{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px}
:where(html.page-shine) .baRowLabel{font-family:var(--sans);font-size:.62rem;letter-spacing:.16em;color:var(--gold-deep);text-transform:uppercase}
:where(html.page-shine) .baNav{display:flex;gap:8px}
:where(html.page-shine) .baArrow{width:32px;height:32px;border:1px solid var(--line);background:transparent;color:var(--soft);
  border-radius:50%;cursor:pointer;font-size:.9rem;line-height:1;display:grid;place-items:center;transition:.18s;padding:0}
:where(html.page-shine) .baArrow:hover{border-color:var(--gold-soft);color:var(--navy)}
:where(html.page-shine) .baStrip{position:relative;overflow-x:auto;overflow-y:hidden;padding:4px 0;cursor:grab;
  scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}
:where(html.page-shine) .baStrip::-webkit-scrollbar{display:none}
:where(html.page-shine) .baStrip.dragging{cursor:grabbing}
:where(html.page-shine) .baStrip.dragging *{user-select:none}
:where(html.page-shine) .baTrack{display:flex;width:max-content}
:where(html.page-shine) .baCard{flex:0 0 auto;margin-right:30px;background:none;border:0;padding:0;
  font:inherit;color:inherit;text-align:left;cursor:zoom-in;display:block}
:where(html.page-shine) .baCard .ct{display:block;font-size:.95rem;font-weight:600;margin-bottom:9px;letter-spacing:.02em}
:where(html.page-shine) .baCard .ct em{font-style:normal;font-weight:400;font-size:.78rem;color:var(--soft);margin-left:9px}
:where(html.page-shine) .baCard .pair{display:flex;gap:7px}
:where(html.page-shine) .baCard .pair figure{margin:0;position:relative;border:1px solid var(--line);
  overflow:hidden;background:var(--cream-deep);line-height:0}
:where(html.page-shine) .baCard .pair img{height:200px;width:auto;display:block;pointer-events:none}
:where(html.page-shine) .baRow.bio .baCard .pair img{height:176px}
:where(html.page-shine) .baRow.post .baCard .pair img{height:214px}
:where(html.page-shine) .baCard .pair figcaption{position:absolute;top:5px;left:5px;font-family:var(--sans);font-size:.55rem;
  letter-spacing:.12em;color:#fff;background:rgba(31,45,61,.86);padding:2px 7px;border-radius:2px;z-index:2;line-height:1.5}
:where(html.page-shine) .baCard .pair figure.aft figcaption{background:rgba(110,143,122,.92)}
:where(html.page-shine) .baCard .cs{display:block;font-size:.8rem;color:var(--soft);line-height:1.75;margin-top:10px;max-width:440px}
:where(html.page-shine) .baCard:hover .pair figure,
:where(html.page-shine) .baCard:focus-visible .pair figure{border-color:var(--gold-soft)}
@media(max-width:720px){
  :where(html.page-shine) .baRow.bio .baCard .pair img{height:132px}
  :where(html.page-shine) .baRow.post .baCard .pair img{height:162px}
  :where(html.page-shine) .baCard{margin-right:22px}
  :where(html.page-shine) .baNav{display:none}
}

/* 延伸案例區 */

/* 放大檢視 */
:where(html.page-shine) .ba-lb{position:fixed;inset:0;background:rgba(16,21,29,.975);backdrop-filter:blur(4px);display:none;z-index:99999;
  align-items:center;justify-content:center;padding:34px 22px}
:where(html.page-shine) .ba-lb.on{display:flex}
:where(html.page-shine) .ba-lb .in{max-width:100%;width:100%;max-height:94vh;display:flex;flex-direction:column;align-items:center;overflow:auto}
:where(html.page-shine) .ba-lb .lbpair{display:flex;gap:14px;justify-content:center;align-items:flex-start;max-width:100%}
:where(html.page-shine) .ba-lb .lbpair figure{margin:0;position:relative;flex:0 1 auto;min-width:0;line-height:0}
:where(html.page-shine) .ba-lb .lbpair img{max-height:72vh;max-width:calc(50vw - 42px);width:auto;height:auto;display:block;border:1px solid rgba(255,255,255,.16)}
:where(html.page-shine) .ba-lb .lbpair figcaption{position:absolute;top:7px;left:7px;font-family:var(--sans);font-size:.6rem;
  letter-spacing:.12em;color:#fff;background:rgba(31,45,61,.9);padding:3px 9px;border-radius:2px;z-index:2;line-height:1.6}
:where(html.page-shine) .ba-lb .lbpair figure:only-child img{max-height:none;max-width:min(100%,1024px)}
:where(html.page-shine) .ba-lb .lbnote{color:#e9e3d7;font-size:.9rem;line-height:1.95;margin:20px auto 0;max-width:780px;text-align:center}
:where(html.page-shine) .ba-lb .x{position:absolute;top:14px;right:20px;background:none;border:0;color:#fff;
  font-size:2.2rem;line-height:1;cursor:pointer;opacity:.8}
:where(html.page-shine) .ba-lb .x:hover{opacity:1}
@media(max-width:720px){:where(html.page-shine) .ba-lb .lbpair{flex-direction:column;align-items:center}
  :where(html.page-shine) .ba-lb .lbpair img{max-width:100%;max-height:38vh}}

/* 2026-08-15 shine 精修：Hero 斷行、手機節奏、對比 */
:where(html.page-shine) .hero h1 .hl{display:inline-block;white-space:nowrap}

:where(html.page-shine) .hero .note{color:#A9B7C9}
:where(html.page-shine) .badge{color:#E4CDA0;border-color:rgba(184,153,104,.62)}
:where(html.page-shine) .hero .sub{color:#D2D8E2}
@media(max-width:720px){
  :where(html.page-shine) .hero{padding:76px 0 64px}
  :where(html.page-shine) .hero h1{font-size:1.72rem;line-height:1.62;letter-spacing:.05em;text-indent:.05em;margin:10px 0 18px}
  :where(html.page-shine) .hero .sub{font-size:.98rem;line-height:1.95;margin-bottom:12px}
  :where(html.page-shine) .hero .promise{font-size:1rem;line-height:1.9;margin-bottom:26px}
  :where(html.page-shine) .badges{gap:8px;margin-bottom:28px}
  :where(html.page-shine) .badge{padding:5px 12px;font-size:.76rem;letter-spacing:.06em}
  :where(html.page-shine) .hero .ctas{gap:10px}
  :where(html.page-shine) .hero .ctas .btn{min-height:48px;display:inline-flex;align-items:center;justify-content:center}
  :where(html.page-shine) .hero .note{margin-top:18px;font-size:.8rem;line-height:1.85}
  :where(html.page-shine) .hero:before{font-size:7rem;top:-30px}
}
@media(max-width:420px){
  :where(html.page-shine) .hero h1{font-size:1.6rem}
}

/* shine · 客製品牌模板系統（2026-08-15） */
:where(html.page-shine) .card.feat{border-top:3px solid var(--gold)}
:where(html.page-shine) .card.feat p+p{margin-top:10px}

/* shine · 卡片內學員原話（2026-08-17） */

/* shine · 學員品牌視覺系統四張 */

/* shine · 第二季重點分兩層：亮點卡 ／ 運作方式輕量列（2026-08-17） */
:where(html.page-shine) .grpLab{font-size:.82rem;letter-spacing:.14em;color:var(--gold-deep);font-weight:600;margin:0 0 20px}
:where(html.page-shine) .grpLab.second{margin-top:38px}
:where(html.page-shine) .runList{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 34px}
:where(html.page-shine) .runList>div{border-top:2px solid var(--gold);padding-top:20px}
:where(html.page-shine) .runList h4{font-size:1.08rem;font-weight:600;margin-bottom:11px}
:where(html.page-shine) .runList p{font-size:.93rem;color:var(--soft);line-height:1.95}
@media(max-width:720px){
  :where(html.page-shine) .runList{grid-template-columns:1fr;gap:26px 0}
}

/* Navigation additions: course overview and BSL */
@media(max-width:820px){
  nav .navlinks.open{max-height:calc(100dvh - 72px);overflow-y:auto;overscroll-behavior:contain}
  nav .submenu a{white-space:normal}
}
/* Mobile drawer uses viewport height even inside the blurred fixed header. */
@media(max-width:820px){
  nav .navlinks{height:100dvh;max-height:100dvh;justify-content:flex-start;padding:92px 24px 36px;gap:22px;visibility:hidden}
  nav .navlinks.open{height:100dvh;max-height:100dvh;visibility:visible}
  nav .navlinks>a,nav .navlinks>.has-sub{flex-shrink:0;width:100%;text-align:left}
  nav .has-sub{align-items:flex-start}
  nav .has-sub .submenu,nav .has-sub:hover .submenu,nav .has-sub:focus-within .submenu{
    display:flex;position:static;transform:none;min-width:0;width:100%;align-items:flex-start;gap:16px;visibility:hidden;
  }
  nav .has-sub.open .submenu{visibility:visible}
  nav .submenu a{font-size:.8rem;line-height:1.7;white-space:normal}
}

/* 學員原話頭像（2026-09-18） */
:where(html.page-shine) .quote footer:has(.qav){display:flex;align-items:center;gap:12px}
:where(html.page-shine) .quote .qav{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:none;border:1px solid var(--line);background:var(--paper)}

/* 學員的路頁首照片（2026-09-18）：定位實作手冊，右側淡入 */
:where(html.page-students) .page-hero.sv-hero{text-align:left;padding:0;min-height:660px;display:flex;align-items:stretch}
:where(html.page-students) .sv-hero .sv-photo{position:absolute;inset:0 0 0 42%;margin:0;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 32%);mask-image:linear-gradient(90deg,transparent 0%,#000 32%)}
:where(html.page-students) .sv-hero .sv-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 72%}
:where(html.page-students) .sv-hero .sv-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,35,71,.5),rgba(0,35,71,.08) 55%),linear-gradient(0deg,rgba(0,35,71,.35),transparent 30%)}
:where(html.page-students) .sv-hero .sv-copy{position:relative;z-index:1;width:100%;max-width:1180px;margin:0 auto;padding:180px 40px 96px}
:where(html.page-students) .sv-hero .sv-copy>*{max-width:540px}
:where(html.page-students) .sv-hero .intro{margin:26px 0 0}
@media(max-width:820px){
  :where(html.page-students) .page-hero.sv-hero{flex-direction:column;min-height:0;padding-top:56px}
  :where(html.page-students) .sv-hero .sv-photo{position:relative;inset:auto;height:300px;-webkit-mask-image:linear-gradient(0deg,transparent 0%,#000 35%);mask-image:linear-gradient(0deg,transparent 0%,#000 35%)}
  :where(html.page-students) .sv-hero .sv-photo:after{background:none}
  :where(html.page-students) .sv-hero .sv-copy{padding:8px 24px 56px}
}

/* 品牌策略夥伴：頁首照片金色偏移框＋合作方法旁的照片（2026-09-19） */
html.page-brand-partner .otw-photo-hero .otw-photo{max-width:380px;border:0;background:none;overflow:visible}
html.page-brand-partner .otw-photo-hero .otw-photo::before{content:"";position:absolute;left:-22px;top:22px;right:22px;bottom:-22px;border:1px solid var(--gold);z-index:0;pointer-events:none}
html.page-brand-partner .otw-photo-hero .otw-photo img{position:relative;z-index:1}
html.page-brand-partner .bp-method{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center}
html.page-brand-partner .bp-method-photo{margin:0;position:relative}
html.page-brand-partner .bp-method-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:40% 50%}
@media(max-width:820px){
  html.page-brand-partner .otw-photo-hero .otw-photo{max-width:calc(100% - 22px);margin-left:22px}
  html.page-brand-partner .bp-method{grid-template-columns:minmax(0,1fr);gap:36px}
}


/* ── 首頁・學員版面精選（2026-09-23 加，加法式，整段移除即還原） ───────── */
:where(html.page-index) .swall{position:relative;overflow-x:auto;overflow-y:hidden;padding:4px 0 2px;margin-top:6px;cursor:grab;scrollbar-width:none;overscroll-behavior-x:contain}
:where(html.page-index) .swall::-webkit-scrollbar{display:none}
:where(html.page-index) .swall.dragging{cursor:grabbing}
:where(html.page-index) .swall.dragging *{user-select:none}
:where(html.page-index) .swallTrack{display:flex;width:max-content}
:where(html.page-index) .swallCard{flex:0 0 auto;margin-right:18px;text-decoration:none;color:inherit;display:block}
:where(html.page-index) .swallCard figure{margin:0;border:1px solid var(--line);overflow:hidden;background:var(--cream-deep);line-height:0;transition:border-color .2s ease,transform .2s ease}
:where(html.page-index) .swallCard img{height:236px;width:auto;display:block;pointer-events:none}
:where(html.page-index) .swallCard .nm{display:block;font-size:.86rem;font-weight:600;margin-top:10px;letter-spacing:.02em;color:var(--navy)}
:where(html.page-index) .swallCard .rl{display:block;font-size:.72rem;color:var(--soft);margin-top:2px}
:where(html.page-index) .swallCard:hover figure,:where(html.page-index) .swallCard:focus-visible figure{border-color:var(--gold-soft);transform:translateY(-2px)}
@media(max-width:820px){:where(html.page-index) .swallCard img{height:182px}}
@media(prefers-reduced-motion:reduce){:where(html.page-index) .swallCard figure{transition:none}}
:where(html.page-index) .swallWrap{position:relative}
/* 左右快轉帶：整條全高、面積大、順便當成兩側的淡出收邊（取代原本的 mask） */
:where(html.page-index) .swallNudge{position:absolute;top:0;bottom:0;z-index:2;box-sizing:border-box;
  width:clamp(52px,7vw,84px);border:0;padding:0 0 62px;cursor:pointer;
  display:grid;place-items:center;font-size:1.05rem;line-height:1;color:var(--navy);
  opacity:1;transition:color .2s ease}
:where(html.page-index) .swallNudge.left{left:0;background:linear-gradient(90deg,var(--paper) 34%,rgba(244,237,224,0))}
:where(html.page-index) .swallNudge.right{right:0;background:linear-gradient(270deg,var(--paper) 34%,rgba(244,237,224,0))}
:where(html.page-index) .swallNudge span{display:grid;place-items:center;width:40px;height:40px;
  border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.62);
  transition:border-color .2s ease,background .2s ease,transform .2s ease}
:where(html.page-index) .swallNudge.left span{margin-right:auto;margin-left:2px}
:where(html.page-index) .swallNudge.right span{margin-left:auto;margin-right:2px}
:where(html.page-index) .swallNudge:hover span,:where(html.page-index) .swallNudge:focus-visible span,
:where(html.page-index) .swallNudge.on span{border-color:var(--gold-soft);background:#fff}
:where(html.page-index) .swallNudge.left:hover span,:where(html.page-index) .swallNudge.left.on span{transform:translateX(-3px)}
:where(html.page-index) .swallNudge.right:hover span,:where(html.page-index) .swallNudge.right.on span{transform:translateX(3px)}
@media(max-width:820px){:where(html.page-index) .swallNudge{padding-bottom:52px;font-size:.95rem}
  :where(html.page-index) .swallNudge span{width:34px;height:34px}}
/* ── 首頁・學員版面精選 結束 ─────────────────────────────── */


/* ── 首頁・區塊間距微調（2026-09-23 加，加法式，整段移除即還原） ─────────
   兩處同底色的長留白會讀成斷層：
   (1) 形象照的說明卡壓在照片下緣，卡片底到 fork 的第一行原本 177px
   (2) 學員成果的 CTA 到 philosophy 引言原本 184px（圖帶收尾，不像卡片會自己框住）
   兩處都收到 ~120px。選擇器刻意不用 :where()，因為要蓋過後載入的 portraits.css。 */
html.page-index .otw-editorial-break--home{padding-bottom:clamp(68px,6vw,80px)}
html.page-index .fork{padding-top:76px}
html.page-index #proof{padding-bottom:48px}
html.page-index #philosophy{padding-top:80px}
/* ── 首頁・區塊間距微調 結束 ──────────────────────────────── */


/* ── shine・兩條對照帶改用左右快轉帶（2026-09-23 加，整段移除即還原）
   原本 .baNav 的兩顆小箭頭是「點一下跳一張」，改成和首頁同一種手感：
   整條全高的感應帶，滑過或按住就往那個方向快轉，放開平滑回復。
   兩側的淡出仍由 .baStrip 原本的 mask 負責，帶子本身透明、只放一顆圓鈕。
   選擇器不用 :where()，才蓋得過原本 :where(html.page-shine) 的規則。 */
html.page-shine .baWrap{position:relative}
html.page-shine .baNav{display:none}
html.page-shine .baNudge{position:absolute;top:0;bottom:0;z-index:2;box-sizing:border-box;
  width:clamp(52px,7vw,84px);border:0;padding:0;background:none;cursor:pointer;
  display:grid;place-items:center;font-size:1.05rem;line-height:1;color:var(--navy)}
html.page-shine .baNudge.left{left:0}
html.page-shine .baNudge.right{right:0}
html.page-shine .baNudge span{display:grid;place-items:center;width:40px;height:40px;
  border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.72);
  transition:border-color .2s ease,background .2s ease,transform .2s ease}
html.page-shine .baNudge.left span{margin-right:auto;margin-left:2px}
html.page-shine .baNudge.right span{margin-left:auto;margin-right:2px}
html.page-shine .baNudge:hover span,html.page-shine .baNudge:focus-visible span,
html.page-shine .baNudge.on span{border-color:var(--gold-soft);background:#fff}
html.page-shine .baNudge.left:hover span,html.page-shine .baNudge.left.on span{transform:translateX(-3px)}
html.page-shine .baNudge.right:hover span,html.page-shine .baNudge.right.on span{transform:translateX(3px)}
@media(max-width:820px){html.page-shine .baNudge{font-size:.95rem}
  html.page-shine .baNudge span{width:34px;height:34px}}
/* ── shine・左右快轉帶 結束 ── */

/* ── 課程總覽・學員版面跑馬燈（2026-09-23，同首頁 #proof，整段移除即還原） ── */
:where(html.page-courses) .swall{position:relative;overflow-x:auto;overflow-y:hidden;padding:4px 0 2px;margin-top:6px;cursor:grab;scrollbar-width:none;overscroll-behavior-x:contain}
:where(html.page-courses) .swall::-webkit-scrollbar{display:none}
:where(html.page-courses) .swall.dragging{cursor:grabbing}
:where(html.page-courses) .swall.dragging *{user-select:none}
:where(html.page-courses) .swallTrack{display:flex;width:max-content}
:where(html.page-courses) .swallCard{flex:0 0 auto;margin-right:18px;text-decoration:none;color:inherit;display:block}
:where(html.page-courses) .swallCard figure{margin:0;border:1px solid var(--line);overflow:hidden;background:var(--cream-deep);line-height:0;transition:border-color .2s ease,transform .2s ease}
:where(html.page-courses) .swallCard img{height:236px;width:auto;display:block;pointer-events:none}
:where(html.page-courses) .swallCard .nm{display:block;font-size:.86rem;font-weight:600;margin-top:10px;letter-spacing:.02em;color:var(--navy)}
:where(html.page-courses) .swallCard .rl{display:block;font-size:.72rem;color:var(--soft);margin-top:2px}
:where(html.page-courses) .swallCard:hover figure,:where(html.page-courses) .swallCard:focus-visible figure{border-color:var(--gold-soft);transform:translateY(-2px)}
@media(max-width:820px){:where(html.page-courses) .swallCard img{height:182px}}
@media(prefers-reduced-motion:reduce){:where(html.page-courses) .swallCard figure{transition:none}}
:where(html.page-courses) .swallWrap{position:relative}
:where(html.page-courses) .swallNudge{position:absolute;top:0;bottom:0;z-index:2;box-sizing:border-box;
  width:clamp(52px,7vw,84px);border:0;padding:0 0 62px;cursor:pointer;
  display:grid;place-items:center;font-size:1.05rem;line-height:1;color:var(--navy);
  opacity:1;transition:color .2s ease}
:where(html.page-courses) .swallNudge.left{left:0;background:linear-gradient(90deg,var(--paper) 34%,rgba(244,237,224,0))}
:where(html.page-courses) .swallNudge.right{right:0;background:linear-gradient(270deg,var(--paper) 34%,rgba(244,237,224,0))}
:where(html.page-courses) .swallNudge span{display:grid;place-items:center;width:40px;height:40px;
  border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.62);
  transition:border-color .2s ease,background .2s ease,transform .2s ease}
:where(html.page-courses) .swallNudge.left span{margin-right:auto;margin-left:2px}
:where(html.page-courses) .swallNudge.right span{margin-left:auto;margin-right:2px}
:where(html.page-courses) .swallNudge:hover span,:where(html.page-courses) .swallNudge:focus-visible span,
:where(html.page-courses) .swallNudge.on span{border-color:var(--gold-soft);background:#fff}
:where(html.page-courses) .swallNudge.left:hover span,:where(html.page-courses) .swallNudge.left.on span{transform:translateX(-3px)}
:where(html.page-courses) .swallNudge.right:hover span,:where(html.page-courses) .swallNudge.right.on span{transform:translateX(3px)}
@media(max-width:820px){:where(html.page-courses) .swallNudge{padding-bottom:52px;font-size:.95rem}
  :where(html.page-courses) .swallNudge span{width:34px;height:34px}}
/* 跑馬燈卡片寬度跟著圖片，不被長職稱撐寬（避免圖右側露出底色） */
:where(html.page-index,html.page-courses) .swallCard .nm,:where(html.page-index,html.page-courses) .swallCard .rl{width:0;min-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 選單：「品牌服務」「WriteWay 課程」只展開選單、不連結（總覽在子選單裡） */
nav .has-sub>a:not([href]){cursor:default}
/* ── 課程總覽・學員版面跑馬燈 結束 ── */
