:root{--navy:#2d3461;--navy-d:#1d2244;--gold:#ac8447;--gold-l:#cca972;--warm:#faf8f4;--milk:#f3eee5;--ink:#3a372f;--cream:#f1e8de}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Noto Sans TC',sans-serif;font-weight:400;color:var(--ink);background:#fff;line-height:1.85;font-size:17px}
h1,h2,h3{font-family:'Noto Serif TC',serif;color:var(--navy)}
a{color:var(--gold);text-decoration:none}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
.narrow{max-width:720px;margin:0 auto}
/* nav */
.nav{border-bottom:1px solid rgba(45,52,97,.1);background:rgba(250,248,244,.92);position:sticky;top:0;z-index:9;backdrop-filter:blur(10px)}
.nav .wrap{display:flex;justify-content:space-between;align-items:center;height:56px;flex-wrap:wrap}
.nav a{color:var(--navy);font-size:14px;letter-spacing:.06em;margin-left:20px;white-space:nowrap}
.nav a:hover{color:var(--gold)}
.nav a.on{color:var(--gold)}
.nav .brand{font-family:'Noto Serif TC',serif;font-weight:600;font-size:16px;letter-spacing:.1em;margin-left:0}
.nav .ext{color:var(--gold)}
/* hero */
.hero{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-d) 100%);color:var(--cream);padding:72px 0 64px}
.hero .wrap{display:flex;align-items:center;gap:48px;flex-wrap:wrap}
.hero-txt{flex:1 1 480px}
.hero-txt .kicker{color:var(--gold-l);letter-spacing:.18em;font-size:13px;text-transform:uppercase;margin-bottom:16px}
.hero-txt h1{color:#fff;font-size:34px;line-height:1.5;margin-bottom:16px;font-weight:600}
.hero-txt .sub{font-family:'Noto Serif TC',serif;color:var(--gold-l);font-size:20px;line-height:1.6;margin-bottom:20px;font-weight:600}
.hero-txt p.lead{font-size:16.5px;color:rgba(241,232,222,.92);max-width:34em;margin-bottom:14px}
.hero-photo{flex:0 0 300px;text-align:center}
.hero-photo img{width:280px;height:280px;object-fit:cover;object-position:top;border-radius:50%;border:6px solid rgba(204,169,114,.45)}
/* page hero (inner pages) */
.phero{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-d) 100%);color:var(--cream);padding:56px 0;text-align:center}
.phero .kicker{color:var(--gold-l);letter-spacing:.22em;font-size:13px;text-transform:uppercase;margin-bottom:12px}
.phero h1{color:#fff;font-size:29px;line-height:1.55;font-weight:600;max-width:24em;margin:0 auto}
.phero p{color:rgba(241,232,222,.9);margin:16px auto 0;max-width:32em}
/* path strip */
.path-strip{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;margin:22px 0}
.path-strip span{font-family:'Noto Serif TC',serif;letter-spacing:.08em;font-size:15px;color:var(--gold-l);font-weight:600}
.path-strip a{font-family:'Noto Serif TC',serif;letter-spacing:.08em;font-size:15px;color:var(--gold-l);font-weight:600;border-bottom:1px dotted rgba(204,169,114,.55);padding-bottom:2px}
.path-strip a:hover{color:#fff;border-bottom-color:#fff}
.path-strip .arrow{color:rgba(204,169,114,.6);font-family:'Noto Sans TC',sans-serif}
.path-strip.dark span{color:var(--gold)}
.path-strip.dark .arrow{color:rgba(172,132,71,.55)}
/* buttons */
.btn{display:inline-block;padding:12px 26px;border-radius:4px;font-size:15px;letter-spacing:.06em;font-weight:500;cursor:pointer}
.btn-gold{background:var(--gold);color:#fff;border:1px solid var(--gold)}
.btn-gold:hover{background:#97744f}
.btn-line{border:1px solid rgba(241,232,222,.55);color:var(--cream);margin-left:12px}
.btn-line:hover{border-color:var(--gold-l);color:var(--gold-l)}
.btn-line-dark{border:1px solid rgba(45,52,97,.35);color:var(--navy);margin-left:12px}
.btn-line-dark:hover{border-color:var(--gold);color:var(--gold)}
/* sections */
section{padding:72px 0}
.sec-label{text-align:center;color:var(--gold);letter-spacing:.3em;font-size:13px;text-transform:uppercase;margin-bottom:10px}
.sec-title{text-align:center;font-size:26px;font-weight:600;margin-bottom:40px;line-height:1.55}
.sec-intro{text-align:center;max-width:34em;margin:-24px auto 40px;color:#6b6555}
.bg-warm{background:var(--warm)}
.bg-milk{background:var(--milk)}
.prose{max-width:36em;margin:0 auto;font-size:17px}
.prose p{margin-bottom:1.2em}
.prose .em{font-family:'Noto Serif TC',serif;color:var(--navy);font-weight:600;font-size:19px;line-height:1.7}
.quote{border-left:3px solid var(--gold);background:var(--warm);padding:20px 26px;margin:28px auto;max-width:34em;font-family:'Noto Serif TC',serif;color:var(--navy);font-size:17.5px;line-height:1.8;font-weight:500}
.center{text-align:center}
.cta-row{text-align:center;margin-top:40px}
/* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:26px}
.card{background:var(--warm);border-top:3px solid var(--gold);padding:34px 30px;border-radius:0 0 6px 6px}
.card .tag{font-family:'Noto Serif TC',serif;color:var(--gold-l);font-size:13.5px;letter-spacing:.2em;margin-bottom:10px;text-transform:uppercase}
.card h3{font-size:20px;margin-bottom:6px;line-height:1.5}
.card .subline{font-family:'Noto Serif TC',serif;color:var(--gold);font-size:16px;margin-bottom:14px;line-height:1.6;font-weight:600}
.card .role-line{font-size:13.5px;color:var(--gold);letter-spacing:.06em;margin:-2px 0 12px}
.deliv{font-family:'Noto Serif TC',serif;color:var(--navy);font-size:15.5px;font-weight:600;letter-spacing:.03em;margin-bottom:10px}
/* practice (proof of method) */
.practice{background:var(--warm);border-left:3px solid var(--gold);padding:38px 42px;max-width:820px;margin:0 auto 34px;border-radius:0 4px 4px 0}
.practice .p-label{color:var(--gold);letter-spacing:.18em;font-size:12.5px;text-transform:uppercase;margin-bottom:12px}
.practice h3{font-size:21px;margin-bottom:16px;line-height:1.55}
.practice p{font-size:16px;color:#4a463c;margin-bottom:14px}
.practice .p-quote{font-family:'Noto Serif TC',serif;font-size:19px;color:var(--navy);font-weight:600;line-height:1.7;margin:20px 0 18px}
.practice .p-result{border-top:1px solid rgba(45,52,97,.14);padding-top:14px;font-family:'Noto Serif TC',serif;color:var(--navy);font-size:15px;font-weight:600;letter-spacing:.03em}
@media (max-width:760px){.practice{padding:28px 22px}}
.card p{font-size:15.5px;margin-bottom:14px;color:#4a463c}
.card ul{list-style:none;margin:0 0 16px}
.card li{padding:3px 0 3px 22px;position:relative;font-size:15px;color:#4a463c}
.card li::before{content:"";position:absolute;left:2px;top:15px;width:10px;height:2px;background:var(--gold)}
.card .note{font-size:13.5px;color:#7a745f;margin-bottom:14px}
.card a.more{font-size:14.5px;letter-spacing:.04em}
.card.on-milk{background:#fff}
.cards.four{grid-template-columns:repeat(4,1fr)}
@media (max-width:1000px){.cards.four{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.cards.four{grid-template-columns:1fr}}
/* path steps (method page & home) */
.steps{max-width:760px;margin:0 auto}
.step{padding:30px 0 30px 74px;position:relative;border-bottom:1px solid rgba(45,52,97,.1);scroll-margin-top:70px}
.step:last-child{border-bottom:none}
.step .num{position:absolute;left:0;top:32px;font-family:'Noto Serif TC',serif;color:var(--gold-l);font-size:20px;letter-spacing:.06em;font-weight:600}
.step h3{font-size:20px;margin-bottom:10px;line-height:1.5}
.step p{font-size:16px;color:#4a463c;margin-bottom:10px}
.step .q{border-left:3px solid var(--gold);padding:6px 18px;font-family:'Noto Serif TC',serif;color:var(--navy);font-size:16px;line-height:1.75;font-weight:500;margin-top:14px}
.step ul{list-style:none;margin-top:8px}
.step li{padding:3px 0 3px 22px;position:relative;font-size:15.5px;color:#4a463c}
.step li::before{content:"";position:absolute;left:2px;top:15px;width:10px;height:2px;background:var(--gold)}
/* resume */
.resume-list{list-style:none;max-width:760px;margin:0 auto}
.resume-list li{padding:16px 0 16px 30px;position:relative;border-bottom:1px solid rgba(45,52,97,.08);font-size:16px}
.resume-list li::before{content:"";position:absolute;left:6px;top:28px;width:8px;height:8px;border-radius:50%;background:var(--gold)}
/* articles */
.articles ul{list-style:none;max-width:760px;margin:0 auto}
.articles li{border-bottom:1px solid rgba(45,52,97,.1);padding:20px 0}
.articles li a{color:var(--navy);font-family:'Noto Serif TC',serif;font-weight:600;font-size:18px;line-height:1.6}
.articles li a:hover{color:var(--gold)}
.articles .src{display:block;font-size:13.5px;color:#8a8371;margin-top:6px;letter-spacing:.04em}
.line-head{max-width:760px;margin:52px auto 6px}
.line-head:first-of-type{margin-top:0}
.line-head h3{font-size:20px}
.line-head .kw{font-size:14px;color:#8a8371;letter-spacing:.05em;margin-top:4px}
.readmore{text-align:center;margin-top:36px}
.readmore a{letter-spacing:.14em;font-size:14.5px;border-bottom:1px solid var(--gold);padding-bottom:3px;margin:0 14px}
/* contact form */
.cform{max-width:640px;margin:0 auto}
.cform label{display:block;font-size:14.5px;color:var(--navy);font-weight:500;margin-bottom:18px;letter-spacing:.04em}
.cform input,.cform textarea{display:block;width:100%;margin-top:6px;padding:11px 13px;border:1px solid rgba(45,52,97,.22);border-radius:4px;font:inherit;font-size:15.5px;background:#fff;color:var(--ink)}
.cform input:focus,.cform textarea:focus{outline:none;border-color:var(--gold)}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.cform button{border:none;margin-top:4px}
.contact-alt{text-align:center;margin-top:26px;font-size:15px}
/* dark cta band */
.band{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-d) 100%);color:var(--cream);text-align:center;padding:72px 0}
.band h2{color:#fff;font-size:26px;margin-bottom:22px;line-height:1.6}
.band p{max-width:32em;margin:0 auto 10px;color:rgba(241,232,222,.9);font-size:16.5px}
.band .em{font-family:'Noto Serif TC',serif;color:var(--gold-l);font-size:18px;font-weight:600;margin:18px auto 6px}
.band .cta-row{margin-top:34px}
/* footer */
footer{background:var(--navy-d);color:var(--cream);padding:48px 0 28px;text-align:center}
footer a{color:var(--cream);border-bottom:1px solid rgba(204,169,114,.5);padding-bottom:2px}
footer a:hover{color:var(--gold-l)}
footer .copy{margin-top:34px;font-size:12.5px;color:rgba(241,232,222,.5);letter-spacing:.06em}
@media (max-width:760px){
  .hero-txt h1{font-size:26px}
  .phero h1{font-size:23px}
  .hero .wrap{gap:30px}
  .hero{padding:44px 0 52px}
  .hero-photo{flex:1 1 100%;order:-1}
  .hero-photo img{width:140px;height:140px;border-width:4px}
  .btn-line{margin-left:0;margin-top:12px}
  .btn-line-dark{margin-left:0;margin-top:12px}
  .frow{grid-template-columns:1fr}
  .nav .wrap{height:auto;padding-top:10px;padding-bottom:10px}
  .nav a{margin-left:14px;font-size:13.5px}
  .step{padding-left:56px}
  section{padding:56px 0}
}
