@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700&family=Poppins:wght@400;500;600;700&display=swap');

:root{
  --sage:#8FAF8C; --sage-light:#C8DCC6; --sage-pale:#EEF4ED; --dark-green:#39472F;
  --apricot:#E8A87C; --apricot-light:#F5D5BC; --apricot-pale:#FBF0E8;
  --blush:#E8C4C0; --blush-light:#F5E0DE; --blush-pale:#FCF5F4;
  --cream:#FAFAF7; --white:#FFFFFF; --ink:#3D3530; --stone:#6B6560; --ink-light:#7A716B; --border:#E8E2DC;
  --shadow:0 24px 60px -42px rgba(57,71,47,.34); --radius:24px; --radius-sm:16px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--cream);color:var(--ink);font-family:'Poppins','Noto Sans TC',sans-serif;-webkit-font-smoothing:antialiased;font-size:18px;line-height:1.72} img{display:block;max-width:100%} a{color:inherit}.site-shell{width:min(1120px,calc(100% - 48px));margin:0 auto}.accent-strip{display:grid;grid-template-columns:1.25fr .75fr .9fr;height:5px;border-radius:0 0 8px 8px;overflow:hidden}.accent-strip span:nth-child(1){background:var(--sage)}.accent-strip span:nth-child(2){background:var(--apricot)}.accent-strip span:nth-child(3){background:var(--blush)}
.site-header{position:sticky;top:0;z-index:50;background:rgba(250,250,247,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(232,226,220,.8)}.nav-row{min-height:82px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;white-space:nowrap;margin-right:auto}.brand img{width:42px;height:42px;object-fit:contain}.brand span{font-size:1.06rem;font-weight:700;color:var(--dark-green);letter-spacing:-.02em}.main-nav{display:flex;align-items:center;gap:4px}.main-nav a{text-decoration:none;color:var(--stone);font-size:.91rem;font-weight:500;padding:9px 11px;border-radius:999px}.main-nav a:hover,.main-nav a.active{color:var(--dark-green);background:var(--sage-pale)}.language-switch{display:flex;align-items:center;gap:7px;font-size:.86rem;color:var(--ink-light);padding-left:10px;border-left:1px solid var(--border)}.language-switch a{text-decoration:none}.language-switch .active{color:var(--dark-green);font-weight:700}.nav-toggle{display:none;border:1px solid var(--border);background:var(--white);border-radius:999px;padding:8px 12px;font:inherit;font-size:.86rem;color:var(--dark-green)}
main{min-height:60vh}.hero{padding:76px 0 64px;text-align:center}.eyebrow{margin:0 0 12px;color:var(--sage);font-weight:700;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase}.hero h1,.page-hero h1{font-size:clamp(2.55rem,5vw,4.7rem);line-height:1.04;letter-spacing:-.045em;color:var(--dark-green);max-width:900px;margin:0 auto 22px}.hero .lead{max-width:780px;margin:0 auto;color:var(--stone);font-size:1.13rem;line-height:1.75}.button-row{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;border-radius:999px;text-decoration:none;font-weight:600;font-size:.96rem;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--dark-green);color:var(--white);box-shadow:0 12px 28px -18px rgba(57,71,47,.75)}.btn-secondary{background:var(--white);color:var(--dark-green);border:1px solid var(--sage-light)}.btn-soft{background:var(--sage-pale);color:var(--dark-green);border:1px solid var(--sage-light)}.btn.pending{opacity:.72}.hero-art{display:block;margin-top:44px;border-radius:30px;overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow);background:#fff5eb}.hero-art img{width:100%;aspect-ratio:2/1;object-fit:cover}
.section{padding:72px 0;border-top:1px solid var(--border)}.section:first-of-type{border-top:0}.section-head{max-width:760px;margin:0 auto 38px;text-align:center}.section-label{margin:0 0 11px;color:var(--sage);font-size:.75rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.section h2,.page-section h2{font-size:clamp(1.9rem,3vw,2.55rem);line-height:1.15;letter-spacing:-.025em;color:var(--dark-green);margin:0 0 16px}.section-intro,.page-intro{color:var(--stone);font-size:1.04rem;line-height:1.78;margin:0}.section-intro strong{color:var(--ink)}
/* Meet Tracy */
.profile-carousel{max-width:980px;margin:0 auto}.profile-window{position:relative;border:1px solid var(--border);border-radius:28px;background:var(--white);box-shadow:var(--shadow);overflow:hidden}.profile-slide{display:none;grid-template-columns:1.08fr .92fr;align-items:center;min-height:520px}.profile-slide.active{display:grid}.profile-copy{padding:50px 52px}.profile-copy h3{font-size:2rem;line-height:1.18;color:var(--dark-green);margin:0 0 18px;letter-spacing:-.025em}.profile-copy p{color:var(--stone);margin:0 0 14px}.profile-copy .goal{color:var(--dark-green);font-weight:600;margin-top:22px}.profile-visual{height:100%;min-height:520px;background:var(--sage-pale);display:grid;place-items:center;padding:30px}.profile-visual img{width:min(100%,460px);aspect-ratio:1/1;object-fit:contain}.credential-list{display:grid;gap:15px;margin-top:22px}.credential{padding-bottom:13px;border-bottom:1px solid var(--border)}.credential:last-child{border-bottom:0}.credential strong{display:block;color:var(--dark-green);font-size:.95rem}.credential span{display:block;color:var(--stone);font-size:.91rem;margin-top:2px}.carousel-controls{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:18px}.carousel-controls button{border:1px solid var(--border);background:var(--white);color:var(--dark-green);cursor:pointer}.carousel-arrow{width:38px;height:38px;border-radius:50%;font-size:1.35rem;line-height:1}.carousel-dot{width:9px;height:9px;border:0!important;border-radius:50%;padding:0!important;background:var(--border)!important}.carousel-dot.active{background:var(--sage)!important;transform:scale(1.18)}.carousel-counter{font-size:.8rem;color:var(--ink-light);margin-left:3px}
/* learning principles */
.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:32px 0 46px}.principle-card{border:1px solid var(--border);border-radius:22px;padding:27px 25px;background:var(--white);position:relative;overflow:hidden}.principle-card::before{content:'';position:absolute;width:90px;height:90px;border-radius:50%;right:-38px;top:-38px;opacity:.85}.principle-card.sage::before{background:var(--sage-pale)}.principle-card.apricot::before{background:var(--apricot-pale)}.principle-card.blush::before{background:var(--blush-pale)}.mini-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;margin-bottom:18px}.mini-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sage .mini-icon{background:var(--sage-pale);color:var(--dark-green)}.apricot .mini-icon{background:var(--apricot-pale);color:#9A5A2C}.blush .mini-icon{background:var(--blush-pale);color:#8B4D49}.principle-card h3{font-size:1.08rem;color:var(--dark-green);margin:0 0 10px}.principle-card p{font-size:.94rem;color:var(--stone);margin:0}.belief{margin-top:13px!important;color:var(--dark-green)!important;font-weight:600}
.learning-title{margin:0 0 18px;font-size:1.5rem;color:var(--dark-green)}.learning-carousel{margin-top:22px}.learning-window{position:relative;border:1px solid var(--border);border-radius:26px;background:var(--white);overflow:hidden;box-shadow:var(--shadow)}.learning-slide{display:none;grid-template-columns:minmax(0,1.28fr) minmax(300px,.72fr);align-items:stretch;min-height:490px}.learning-slide.active{display:grid}.learning-visual{background:var(--sage-pale);padding:24px;display:grid;place-items:center}.learning-visual img{width:100%;aspect-ratio:4/3;object-fit:contain;border-radius:14px}.learning-caption{padding:44px 40px;display:flex;flex-direction:column;justify-content:center}.learning-caption .category{font-size:.72rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--sage);margin-bottom:9px}.learning-caption h3{font-size:1.5rem;line-height:1.22;color:var(--dark-green);margin:0 0 12px}.learning-caption p{color:var(--stone);font-size:.96rem;margin:0}.text-link{display:inline-block;margin-top:15px;color:var(--dark-green);font-size:.92rem;font-weight:700;text-decoration:none;border-bottom:1.5px solid var(--sage);align-self:flex-start}.learning-window>.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3}.learning-window>.carousel-arrow.prev{left:14px}.learning-window>.carousel-arrow.next{right:14px}
.cta-panel{background:linear-gradient(105deg,var(--sage-pale),var(--cream) 58%,var(--apricot-pale));border:1px solid var(--border);border-radius:26px;padding:34px 36px;display:flex;align-items:center;justify-content:space-between;gap:30px}.cta-panel h2{margin-bottom:8px}.cta-panel p{margin:0;color:var(--stone)}.cta-panel .button-row{margin:0;justify-content:flex-end}
/* page hero */
.page-hero{text-align:center;padding:70px 0 46px}.page-hero h1{font-size:clamp(2.35rem,4.5vw,4rem);margin-bottom:16px}.page-hero p{max-width:690px;margin:0 auto;color:var(--stone);font-size:1.05rem}.brand-mark{width:54px;height:54px;margin:0 auto 16px}.page-section{padding:20px 0 74px}
/* tuition */
.tuition-wrap{border:1px solid var(--border);border-radius:24px;overflow:hidden;background:var(--white);box-shadow:var(--shadow)}.tuition-table{width:100%;border-collapse:collapse}.tuition-table th{background:var(--sage-pale);color:var(--dark-green);font-size:.84rem;letter-spacing:.055em;text-transform:uppercase;font-weight:600;padding:19px 17px;text-align:center;border-bottom:1px solid var(--sage-light)}.tuition-table th:first-child{text-align:left;padding-left:26px}.tuition-table td{padding:22px 17px;border-bottom:1px solid var(--border);text-align:center;vertical-align:middle;font-size:.96rem;color:var(--stone)}.tuition-table tr:last-child td{border-bottom:0}.tuition-table td:first-child{text-align:left;padding-left:26px}.format-name{font-size:1.05rem;font-weight:600;color:var(--dark-green)}.people-dots{display:flex;justify-content:center;gap:4px}.people-dot{width:13px;height:13px;border-radius:50%;background:var(--sage)}.people-dot.ghost{background:var(--sage-light)}.dot-label{font-size:.76rem;color:var(--ink-light);margin-top:5px}.term-price{font-size:1.15rem;font-weight:700;color:var(--dark-green)}.min-badge{display:inline-block;min-width:30px;padding:4px 10px;border-radius:999px;background:var(--sage-pale);border:1px solid var(--sage-light);color:var(--dark-green);font-size:.82rem;font-weight:600}.table-note{font-size:.88rem;color:var(--ink-light);margin:16px 4px 0}.discounts{margin-top:56px;background:var(--sage-pale);border:1px solid var(--sage-light);border-radius:28px;padding:44px 40px;position:relative;overflow:hidden}.discounts::after{content:'';position:absolute;right:-70px;top:-70px;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.55)}.discounts .section-head{position:relative;z-index:1;margin-bottom:28px}.discount-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:20px}.discount-card{background:var(--white);border:1px solid var(--border);border-radius:20px;padding:28px}.discount-top{display:flex;align-items:center;gap:15px;margin-bottom:15px}.discount-badge{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:var(--sage-pale);border:1px solid var(--sage-light);color:var(--dark-green);font-weight:700;font-size:1.15rem}.discount-card h3{margin:0;color:var(--dark-green);font-size:1.02rem}.discount-tag{display:block;margin-top:2px;color:var(--sage);font-size:.69rem;letter-spacing:.1em;font-weight:700}.discount-card p,.discount-card li{color:var(--stone);font-size:.92rem}.discount-card ul{margin:10px 0 0;padding-left:18px}.discount-fineprint{text-align:center;color:var(--ink-light);font-size:.88rem;margin:24px 0 0;position:relative;z-index:1}.discount-fineprint strong{color:var(--dark-green)}
/* how to join */
.flow{position:relative;max-width:850px;margin:0 auto}.flow-line{position:absolute;left:35px;top:8px;bottom:8px;width:3px;background:linear-gradient(to bottom,var(--sage-light),var(--apricot-light),var(--blush-light),var(--sage-light));border-radius:3px}.flow-step{--tone:var(--sage);--tone-pale:var(--sage-pale);display:flex;gap:25px;position:relative;padding-bottom:34px}.flow-step:nth-child(3n+2){--tone:var(--apricot);--tone-pale:var(--apricot-pale)}.flow-step:nth-child(3n){--tone:var(--blush);--tone-pale:var(--blush-pale)}.flow-step.final{--tone:var(--dark-green);--tone-pale:var(--sage-pale);padding-bottom:0}.flow-node{flex:0 0 72px;width:72px;height:72px;border-radius:24px;background:var(--tone-pale);border:2px solid var(--tone);display:grid;place-items:center;position:relative;z-index:2;box-shadow:0 8px 22px -16px rgba(57,71,47,.4);transform:rotate(-2deg)}.flow-step:nth-child(even) .flow-node{transform:rotate(2deg)}.flow-node svg{width:33px;height:33px;fill:none;stroke:var(--dark-green);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.flow-step.final .flow-node{background:var(--dark-green);border-color:var(--dark-green)}.flow-step.final .flow-node svg{stroke:var(--white)}.flow-num{position:absolute;right:-7px;top:-7px;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:var(--tone);color:var(--white);border:3px solid var(--cream);font-size:.72rem;font-weight:700;transform:rotate(2deg)}.flow-card{flex:1;background:var(--white);border:1px solid var(--border);border-radius:20px;padding:22px 26px;margin-top:4px;box-shadow:0 18px 36px -34px rgba(57,71,47,.4)}.flow-step.final .flow-card{background:var(--sage-pale);border-color:var(--sage-light)}.flow-eyebrow{margin:0 0 3px;color:var(--tone);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;font-weight:700}.flow-card h3{margin:0 0 8px;color:var(--dark-green);font-size:1.08rem}.flow-card p{margin:0;color:var(--stone);font-size:.94rem}.flow-card p+p{margin-top:5px}.flow-branch{margin-top:11px;padding:11px 14px;border-radius:11px;background:var(--tone-pale);border-left:3px solid var(--tone);color:var(--dark-green);font-size:.86rem}.flow-doodle{position:absolute;right:18px;top:12px;color:var(--tone);opacity:.45}.flow-doodle svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
/* join */
.join-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(330px,.92fr);gap:28px;align-items:start}.course-card,.term-card{background:var(--white);border:1px solid var(--border);border-radius:24px;padding:30px;box-shadow:var(--shadow)}.course-card h2,.term-card h2{font-size:1.75rem;margin-bottom:13px}.course-card p{color:var(--stone)}.term-card{background:var(--sage-pale);border-color:var(--sage-light)}.term-chip{display:inline-block;border-radius:999px;background:var(--white);border:1px solid var(--sage-light);padding:6px 11px;color:var(--dark-green);font-weight:600;font-size:.78rem;margin-bottom:14px}.term-list{display:grid;gap:0;margin-top:15px}.term-row{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid rgba(143,175,140,.28)}.term-row:last-child{border-bottom:0}.term-row span:first-child{font-weight:600;color:var(--dark-green)}.term-row span:last-child{color:var(--stone);text-align:right}.course-info{margin-top:30px;background:var(--white);border:1px solid var(--border);border-radius:24px;overflow:hidden}.course-info table{width:100%;border-collapse:collapse}.course-info th,.course-info td{padding:15px 18px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.course-info tr:last-child th,.course-info tr:last-child td{border-bottom:0}.course-info th{width:30%;background:var(--sage-pale);color:var(--dark-green);font-size:.9rem}.course-info td{color:var(--stone);font-size:.94rem}.limited-card{margin-top:30px;border-radius:24px;padding:30px;background:linear-gradient(115deg,var(--apricot-pale),var(--blush-pale));border:1px solid var(--border);text-align:center}.limited-card h2{margin-bottom:8px}.limited-card p{color:var(--stone);max-width:650px;margin:0 auto}.limited-card .button-row{margin-top:22px}.fine-print{font-size:.82rem;color:var(--ink-light);margin-top:12px}
/* enquire */
.enquiry-card{max-width:780px;margin:0 auto;background:var(--sage-pale);border:1px solid var(--sage-light);border-radius:26px;padding:36px;text-align:center}.enquiry-card p{color:var(--stone);max-width:600px;margin:0 auto}.faq-section{max-width:900px;margin:58px auto 0}.faq-list{display:grid;gap:12px}.faq-list details{border:1px solid var(--border);background:var(--white);border-radius:16px;overflow:hidden}.faq-list summary{list-style:none;cursor:pointer;padding:19px 52px 19px 21px;color:var(--dark-green);font-weight:600;font-size:.98rem;position:relative}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary::after{content:'+';position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:1.25rem;color:var(--sage)}.faq-list details[open] summary::after{content:'–'}.faq-answer{padding:0 21px 20px;color:var(--stone);font-size:.93rem}.faq-answer p{margin:0}.faq-answer p+p{margin-top:8px}
.site-footer{margin-top:56px;padding:30px 0 38px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:20px;color:var(--ink-light);font-size:.82rem}.footer-brand{display:flex;align-items:center;gap:9px;color:var(--dark-green);font-weight:600}.footer-brand img{width:30px;height:30px}.footer-links{display:flex;gap:16px}.footer-links a{text-decoration:none}.footer-links a:hover{text-decoration:underline}.redirect-note{text-align:center;padding:100px 0}.redirect-note a{color:var(--dark-green);font-weight:700}
@media(max-width:900px){body{font-size:17px}.site-shell{width:min(100% - 36px,760px)}.nav-row{flex-wrap:wrap;min-height:72px;gap:12px}.nav-toggle{display:block;margin-left:auto}.main-nav{display:none;order:4;width:100%;padding:10px 0 4px;border-top:1px solid var(--border);flex-wrap:wrap}.main-nav.open{display:flex}.language-switch{margin-left:0}.hero{padding:58px 0 50px}.profile-slide{grid-template-columns:1fr}.profile-copy{padding:38px 34px}.profile-visual{min-height:360px;padding:22px}.profile-visual img{max-width:390px}.principles{grid-template-columns:1fr}.learning-slide{grid-template-columns:1fr;min-height:0}.learning-caption{padding:32px}.join-layout{grid-template-columns:1fr}.discount-grid{grid-template-columns:1fr}.cta-panel{flex-direction:column;align-items:flex-start}.cta-panel .button-row{justify-content:flex-start}.tuition-wrap{overflow-x:auto}.tuition-table{min-width:760px}}
@media(max-width:620px){body{font-size:17px}.site-shell{width:calc(100% - 28px)}.brand img{width:38px;height:38px}.brand span{font-size:1rem}.language-switch{font-size:.8rem}.hero{padding:44px 0 44px}.hero h1,.page-hero h1{font-size:2.45rem;line-height:1.07}.hero .lead,.page-hero p{font-size:1rem}.hero-art{margin-top:32px;border-radius:22px}.hero-art img{aspect-ratio:1/1}.section{padding:55px 0}.profile-copy{padding:29px 24px}.profile-copy h3{font-size:1.65rem}.profile-visual{min-height:0;padding:18px}.principle-card{padding:23px 21px}.learning-caption{padding:25px 22px 28px}.learning-caption h3{font-size:1.28rem}.learning-visual{padding:12px}.learning-window>.carousel-arrow{top:34%}.cta-panel{padding:27px 24px}.page-hero{padding:52px 0 35px}.page-section{padding-bottom:60px}.discounts{padding:34px 22px}.flow-line{left:28px}.flow-step{gap:16px;padding-bottom:27px}.flow-node{flex-basis:58px;width:58px;height:58px;border-radius:19px}.flow-node svg{width:27px;height:27px}.flow-num{width:24px;height:24px;font-size:.66rem}.flow-card{padding:18px 18px}.course-card,.term-card,.limited-card{padding:24px}.course-info,.tuition-wrap{border-radius:18px}.course-info table,.course-info tbody,.course-info tr,.course-info th,.course-info td{display:block;width:100%}.course-info tr{border-bottom:1px solid var(--border)}.course-info tr:last-child{border-bottom:0}.course-info th,.course-info td{border-bottom:0;padding:10px 15px}.course-info th{padding-bottom:2px}.course-info td{padding-top:3px}.enquiry-card{padding:28px 22px}.site-footer{flex-direction:column;align-items:flex-start}.footer-links{flex-wrap:wrap}.btn{min-height:46px;padding:11px 18px}}


/* ================= v6 refinements ================= */
.accent-strip{display:none}
.site-header{border-top:0}
.header-dots{display:flex;align-items:center;gap:7px;margin-right:auto;padding:10px 2px;text-decoration:none;min-width:54px}
.header-dots span{display:block;width:9px;height:9px;border-radius:50%}
.header-dots .sage-dot{background:var(--sage)}
.header-dots .apricot-dot{background:var(--apricot)}
.header-dots .blush-dot{background:var(--blush)}

/* One consistent brand treatment at the top of every page */
.hero{padding-top:66px}
.brand-mark{width:58px;height:58px;object-fit:contain;margin:0 auto 15px}
.hero-brand-mark{margin-bottom:14px}
.hero .eyebrow,.page-hero .eyebrow{font-size:.76rem;letter-spacing:.22em;font-weight:700;color:var(--sage);margin-bottom:12px}
.page-hero{padding-top:64px}
.page-hero h1{margin-bottom:14px}
.page-hero>p:last-child{font-size:1.08rem;line-height:1.7}

/* Primary actions use the softer brand sage rather than a heavy dark green. */
.btn-primary{background:var(--sage);color:var(--ink);box-shadow:0 12px 28px -18px rgba(57,71,47,.42)}
.btn-primary:hover{background:#84A581;color:var(--ink)}
.btn-primary.pending{background:var(--sage);color:var(--ink)}

/* Tuition: more child-friendly, but still restrained. */
.tuition-table th:first-child,.tuition-table td:first-child{text-align:center;padding-left:17px}
.tuition-table .format-name{display:inline-block;text-align:center}
.tuition-table tbody tr:nth-child(1){background:#fff}
.tuition-table tbody tr:nth-child(2){background:var(--sage-pale)}
.tuition-table tbody tr:nth-child(3){background:var(--apricot-pale)}
.tuition-table tbody tr:nth-child(4){background:var(--blush-pale)}
.tuition-table tbody tr:nth-child(1):hover{background:#f7faf6}
.tuition-table tbody tr:nth-child(2):hover{background:var(--sage-light)}
.tuition-table tbody tr:nth-child(3):hover{background:var(--apricot-light)}
.tuition-table tbody tr:nth-child(4):hover{background:var(--blush-light)}
.tuition-table tbody tr{transition:background .22s ease}

.discounts{background:linear-gradient(120deg,var(--cream),var(--sage-pale));border-color:var(--border)}
.discount-card:first-child{border-color:var(--apricot-light);background:var(--apricot-pale)}
.discount-card:first-child .discount-badge{background:var(--apricot);border-color:var(--apricot);color:var(--ink)}
.discount-card:first-child .discount-tag{color:#9A5A2C}
.discount-card:first-child li::before{background:var(--apricot)}
.discount-card:nth-child(2){border-color:var(--blush-light);background:var(--blush-pale)}
.discount-card:nth-child(2) .discount-badge{background:var(--blush);border-color:var(--blush);color:var(--ink)}
.discount-card:nth-child(2) .discount-tag{color:#8B4D49}
.discount-card:nth-child(2) li::before{background:var(--blush)}

@media (max-width:760px){
  .header-dots{gap:6px;min-width:auto}
  .header-dots span{width:8px;height:8px}
  .brand-mark{width:52px;height:52px}
  .hero{padding-top:48px}
  .page-hero{padding-top:48px}
}


/* ================= v7 homepage refinements ================= */
/* Larger eyebrow / section-label hierarchy throughout the site. */
.hero .eyebrow,.page-hero .eyebrow{
  font-size:1.08rem;
  letter-spacing:.18em;
  line-height:1.35;
  margin-bottom:14px;
}
.section-label{
  font-size:1.04rem;
  letter-spacing:.13em;
  line-height:1.4;
  margin-bottom:13px;
}

/* Home hero: short course descriptor + stronger brand promise. */
.hero .lead{
  max-width:760px;
  font-size:1.18rem;
  color:var(--stone);
  margin-bottom:10px;
}
.hero-promise{
  max-width:820px;
  margin:10px auto 0;
  color:var(--dark-green);
  font-size:clamp(1.34rem,2.25vw,1.72rem);
  line-height:1.5;
  font-weight:600;
  letter-spacing:-.01em;
}

/* Student Showcase header and direct eBook action. */
.learning-title{
  margin-bottom:8px;
}
.showcase-actions{
  display:flex;
  justify-content:flex-start;
  margin:0 0 20px;
}
.btn-small{
  min-height:43px;
  padding:9px 18px;
  font-size:.9rem;
}

/* Learning carousel navigation now matches the Tracy carousel. */
.learning-window>.carousel-arrow{display:none!important}
.learning-carousel>.carousel-controls{
  justify-content:flex-start;
  flex-wrap:wrap;
  padding-left:4px;
}
.learning-carousel>.carousel-controls .carousel-arrow{
  flex:0 0 38px;
}

/* CTA buttons: deeper sage + cream text for clearer contrast and a gentle periodic sheen. */
.btn{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.btn-primary,.btn-secondary,.btn-soft,
.btn-primary.pending{
  background:#739170;
  color:var(--cream);
  border:1px solid #739170;
  box-shadow:0 12px 28px -18px rgba(57,71,47,.48);
}
.btn-primary:hover,.btn-secondary:hover,.btn-soft:hover,
.btn-primary.pending:hover{
  background:#627E60;
  color:var(--cream);
  border-color:#627E60;
}
.btn::after{
  content:'';
  position:absolute;
  z-index:-1;
  top:-45%;
  bottom:-45%;
  width:28%;
  left:-45%;
  transform:skewX(-18deg);
  background:linear-gradient(90deg,transparent,rgba(250,250,247,.28),transparent);
  animation:softButtonSheen 5.2s ease-in-out infinite;
  pointer-events:none;
}
@keyframes softButtonSheen{
  0%,66%{left:-45%;opacity:0}
  70%{opacity:.25}
  82%{left:118%;opacity:.36}
  86%,100%{left:118%;opacity:0}
}
@media (prefers-reduced-motion: reduce){
  .btn::after{animation:none}
}

@media(max-width:620px){
  .hero .eyebrow,.page-hero .eyebrow{font-size:1rem;letter-spacing:.13em}
  .section-label{font-size:1rem;letter-spacing:.1em}
  .hero .lead{font-size:1.04rem}
  .hero-promise{font-size:1.22rem}
  .learning-carousel>.carousel-controls{justify-content:center;padding-left:0}
  .showcase-actions{justify-content:center}
}


/* ================= v8 homepage refinements ================= */
/* Corrected brand mark supplied by Tracy. */
.brand-mark,.footer-brand img{object-fit:contain}

/* Hero now leads with the simple course category; the promise carries the emotional message. */
.hero h1{max-width:820px}

/* Meet Tracy: original section label + concise emotional heading. */

/* Classroom carousel title and navigation are centered. */
.learning-title{
  text-align:center;
  margin:0 auto 22px;
  font-size:1.08rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--sage);
}
.learning-carousel>.carousel-controls{
  justify-content:center;
  padding-left:0;
}

/* Final homepage card: two clear next steps. */
.final-action-card{
  display:grid;
  grid-template-columns:1fr 1fr;
  border:1px solid var(--border);
  border-radius:28px;
  overflow:hidden;
  box-shadow:var(--shadow);
  background:var(--white);
}
.final-action-block{
  padding:36px 38px;
  min-height:245px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
}
.final-action-block + .final-action-block{border-left:1px solid var(--border)}
.showcase-block{background:linear-gradient(135deg,var(--sage-pale),var(--cream))}
.join-block{background:linear-gradient(135deg,var(--cream),var(--apricot-pale))}
.final-action-label{
  margin:0 0 9px;
  color:var(--sage);
  font-size:.86rem;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.final-action-block h2{
  margin:0 0 10px;
  font-size:clamp(1.55rem,2.4vw,2.05rem);
  line-height:1.16;
  color:var(--dark-green);
}
.final-action-block p:not(.final-action-label){
  margin:0;
  color:var(--stone);
  line-height:1.7;
}
.final-action-block .button-row{
  margin-top:20px;
  justify-content:flex-start;
}

/* Buttons: pill shape + slow whole-block two-tone pulse instead of a moving sheen. */
.btn{
  border-radius:999px;
  overflow:visible;
}
.btn::after{display:none!important}
.btn-primary,.btn-secondary,.btn-soft,.btn-primary.pending{
  background:var(--sage);
  color:var(--cream);
  border-color:var(--sage);
  animation:softButtonPulse 4.6s ease-in-out infinite;
}
.btn-primary:hover,.btn-secondary:hover,.btn-soft:hover,.btn-primary.pending:hover{
  background:#6f8f6d;
  border-color:#6f8f6d;
  color:var(--cream);
  animation-play-state:paused;
}
@keyframes softButtonPulse{
  0%,100%{background:#8FAF8C;border-color:#8FAF8C;box-shadow:0 10px 24px -18px rgba(57,71,47,.35)}
  50%{background:#739170;border-color:#739170;box-shadow:0 12px 28px -16px rgba(57,71,47,.52)}
}
@media(prefers-reduced-motion:reduce){
  .btn-primary,.btn-secondary,.btn-soft,.btn-primary.pending{animation:none}
}

@media(max-width:760px){
  .final-action-card{grid-template-columns:1fr}
  .final-action-block + .final-action-block{border-left:0;border-top:1px solid var(--border)}
  .final-action-block{padding:30px 26px;min-height:0}
}


/* ================= v9 homepage CTA refinements ================= */

/* Center the two final CTA cards and remove the previous eyebrow-label treatment. */
.final-action-block{
  align-items:center;
  text-align:center;
}
.final-action-block .button-row{
  justify-content:center;
  width:100%;
  margin-top:22px;
}
.final-action-block h2{
  width:100%;
  margin-bottom:12px;
}
.final-action-block p{
  max-width:430px;
}

/* Two separate gentle two-tone button animations.
   Text shifts between cream and dark green so it stays readable on both tones. */
.showcase-btn{
  background:#8FAF8C;
  border-color:#8FAF8C;
  color:#FAFAF7;
  animation:showcaseButtonPulse 4.8s ease-in-out infinite;
}
.showcase-btn:hover{
  background:#789A76;
  border-color:#789A76;
  color:#FAFAF7;
  animation-play-state:paused;
}
@keyframes showcaseButtonPulse{
  0%,100%{
    background:#8FAF8C;
    border-color:#8FAF8C;
    color:#FAFAF7;
    box-shadow:0 10px 24px -18px rgba(57,71,47,.35);
  }
  50%{
    background:#EEF4ED;
    border-color:#C8DCC6;
    color:#39472F;
    box-shadow:0 12px 28px -18px rgba(57,71,47,.18);
  }
}

.join-now-btn{
  background:#E8A87C;
  border-color:#E8A87C;
  color:#FAFAF7;
  animation:joinButtonPulse 4.8s ease-in-out infinite;
}
.join-now-btn:hover{
  background:#D9976C;
  border-color:#D9976C;
  color:#FAFAF7;
  animation-play-state:paused;
}
@keyframes joinButtonPulse{
  0%,100%{
    background:#E8A87C;
    border-color:#E8A87C;
    color:#FAFAF7;
    box-shadow:0 10px 24px -18px rgba(122,74,32,.28);
  }
  50%{
    background:#FBF0E8;
    border-color:#F5D5BC;
    color:#39472F;
    box-shadow:0 12px 28px -18px rgba(122,74,32,.14);
  }
}

@media(prefers-reduced-motion:reduce){
  .showcase-btn,.join-now-btn{animation:none}
}


/* ================= v10 consistency + concise content refinements ================= */
:root{
  --deep-apricot:#7A4A20;
  --deep-blush:#7A3A36;
}

/* Static, consistent CTA buttons across the site. */
.btn,
.btn-primary,.btn-secondary,.btn-soft,.btn-primary.pending,
.showcase-btn,.join-now-btn{
  background:var(--sage)!important;
  border:1px solid var(--sage)!important;
  color:var(--cream)!important;
  animation:none!important;
  box-shadow:none!important;
  transform:none!important;
  transition:none!important;
  opacity:1!important;
}
.btn:hover,.btn:focus,.btn-primary:hover,.btn-secondary:hover,.btn-soft:hover,
.showcase-btn:hover,.join-now-btn:hover{
  background:var(--sage)!important;
  border-color:var(--sage)!important;
  color:var(--cream)!important;
  transform:none!important;
}
.btn:focus-visible{outline:3px solid var(--sage-light);outline-offset:3px}
.btn::after{display:none!important;animation:none!important}

/* Homepage: pink + orange paired panels with the same soft layered gradient treatment. */
.showcase-block{background:linear-gradient(135deg,var(--cream) 0%,var(--blush-pale) 100%)!important}
.join-block{background:linear-gradient(135deg,var(--cream) 0%,var(--apricot-pale) 100%)!important}
.showcase-block h2{color:var(--deep-blush)!important}
.join-block h2{color:var(--deep-apricot)!important}

/* Tuition: simpler color rhythm and stronger differentiation. */
.tuition-table tbody tr:nth-child(1){background:var(--white)!important}
.tuition-table tbody tr:nth-child(2){background:var(--apricot-pale)!important}
.tuition-table tbody tr:nth-child(3){background:var(--white)!important}
.tuition-table tbody tr:nth-child(4){background:var(--blush-pale)!important}
.tuition-table tbody tr:hover{background:inherit!important}
.tuition-table tbody tr:nth-child(2) td,
.tuition-table tbody tr:nth-child(2) .format-name,
.tuition-table tbody tr:nth-child(2) .term-price,
.tuition-table tbody tr:nth-child(2) .dot-label{color:var(--deep-apricot)!important}
.tuition-table tbody tr:nth-child(4) td,
.tuition-table tbody tr:nth-child(4) .format-name,
.tuition-table tbody tr:nth-child(4) .term-price,
.tuition-table tbody tr:nth-child(4) .dot-label{color:var(--deep-blush)!important}
.tuition-table tbody tr:nth-child(2) .people-dot{background:var(--apricot)!important}
.tuition-table tbody tr:nth-child(4) .people-dot{background:var(--blush)!important}
.tuition-table tbody tr:nth-child(4) .people-dot.ghost{background:var(--blush-light)!important}
.tuition-table tbody tr:nth-child(2) .min-badge{background:var(--apricot-light);border-color:var(--apricot);color:var(--deep-apricot)}
.tuition-table tbody tr:nth-child(4) .min-badge{background:var(--blush-light);border-color:var(--blush);color:var(--deep-blush)}

.discounts{background:linear-gradient(120deg,var(--cream),var(--sage-pale));border-color:var(--border)}
.discount-card:first-child{background:linear-gradient(135deg,var(--cream),var(--apricot-pale))!important;border-color:var(--apricot-light)!important}
.discount-card:nth-child(2){background:linear-gradient(135deg,var(--cream),var(--blush-pale))!important;border-color:var(--blush-light)!important}
.discount-card:first-child .discount-badge{background:var(--apricot)!important;border-color:var(--apricot)!important;color:var(--deep-apricot)!important}
.discount-card:nth-child(2) .discount-badge{background:var(--blush)!important;border-color:var(--blush)!important;color:var(--deep-blush)!important}
.discount-card h3{font-size:clamp(1.35rem,2vw,1.62rem);line-height:1.18;font-weight:700}
.discount-card:first-child h3{color:var(--deep-apricot)}
.discount-card:nth-child(2) h3{color:var(--deep-blush)}
.discount-fineprint{font-size:1rem!important;font-weight:700!important;color:var(--dark-green)!important}
.discount-fineprint strong{font-weight:700!important;color:var(--dark-green)!important}

/* How to Join: larger, color-matched icons; sage final state. */
.flow-node svg{width:40px!important;height:40px!important;stroke:var(--tone)!important;stroke-width:2!important}
.flow-step.final{--tone:var(--sage)!important;--tone-pale:var(--sage-pale)!important}
.flow-step.final .flow-node{background:var(--sage)!important;border-color:var(--sage)!important}
.flow-step.final .flow-node svg{stroke:var(--cream)!important}
.cta-panel{justify-content:center!important;padding:28px 30px!important}
.cta-panel .centered-only{margin:0!important;justify-content:center!important;width:100%}

/* Join Now: two concise cards only. */
.course-card p{font-size:1rem;line-height:1.8;margin-bottom:0}
.term-card{background:linear-gradient(135deg,var(--cream),var(--sage-pale));}
.term-card h2{font-size:clamp(1.65rem,2.7vw,2.15rem);margin-bottom:18px}
.term-summary{padding:3px 0 14px;border-bottom:1px solid rgba(143,175,140,.35)}
.term-summary-line{margin:7px 0;color:var(--stone);line-height:1.55}
.term-summary-line strong{color:var(--dark-green)}
.registration-notes{margin:18px 0 0;padding-left:22px;color:var(--stone)}
.registration-notes li{margin:9px 0;line-height:1.65}
.reserve-cta{margin-top:24px;text-align:center;padding-top:20px;border-top:1px solid rgba(143,175,140,.35)}
.reserve-cta p{margin:0;color:var(--dark-green);font-weight:600;font-size:1.03rem}
.reserve-cta .button-row{margin-top:16px}

/* Enquire: hero is intentionally minimal; the contact card carries the one concise invitation. */
.enquiry-card{margin-top:0}

@media(max-width:620px){
  .flow-node svg{width:32px!important;height:32px!important}
  .discount-card h3{font-size:1.3rem}
}


/* ================= v11 Join Now flow ================= */
.join-page-stack{
  display:grid;
  gap:34px;
  max-width:940px;
  margin:0 auto;
}
.registration-open-card{
  background:linear-gradient(135deg,var(--sage-pale) 0%,var(--apricot-pale) 100%);
  border:1px solid var(--border);
  border-radius:26px;
  padding:34px 36px;
  text-align:center;
  box-shadow:var(--shadow);
}
.registration-open-card .section-label{
  margin:0 0 8px;
}
.registration-open-card h2{
  margin:0 0 14px;
  font-size:2rem;
  color:var(--dark-green);
}
.registration-dates{
  margin:0 auto;
  color:var(--stone);
  line-height:1.75;
}
.registration-open-card .registration-notes{
  max-width:700px;
  margin:20px auto 0;
  text-align:left;
}
.registration-open-card .reserve-cta{
  max-width:700px;
  margin:22px auto 0;
}
.course-brief-section{
  display:grid;
  gap:22px;
}
.course-brief-section .course-card{
  box-shadow:none;
  text-align:left;
}
.course-brief-section .course-card .section-label{
  margin:0 0 8px;
}
.course-brief-section .course-info{
  margin-top:0;
}

/* Mobile order stays exactly:
   Registration + CTA → Course Brief → Course Information table. */
@media(max-width:620px){
  .join-page-stack{gap:24px}
  .registration-open-card{
    padding:26px 20px;
    border-radius:20px;
  }
  .registration-open-card h2{font-size:1.72rem}
  .registration-open-card .registration-notes{
    padding-left:20px;
    font-size:.96rem;
  }
  .course-brief-section{gap:16px}
  .course-brief-section .course-card{padding:24px 20px}
  .course-info th{
    background:var(--sage-pale);
    font-size:.9rem;
  }
  .course-info td{
    font-size:.96rem;
    padding-bottom:12px;
  }
}

/* Email CTA: keep it a standard mailto link while making the intent explicit. */
.email-action{cursor:pointer}


/* ================= v12 Traditional Chinese typography — Option B ================= */
html[lang="zh-Hant"] body{
  font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
}
html[lang="zh-Hant"] .hero h1,
html[lang="zh-Hant"] .page-hero h1{
  font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
  font-weight:600;
  letter-spacing:.075em;
  line-height:1.28;
}
html[lang="zh-Hant"] .section h2,
html[lang="zh-Hant"] .page-section h2,
html[lang="zh-Hant"] .section-head h2,
html[lang="zh-Hant"] .cta-panel h2,
html[lang="zh-Hant"] .final-action-block h2{
  font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
  font-weight:600;
  letter-spacing:.06em;
  line-height:1.42;
}
html[lang="zh-Hant"] .profile-copy h3,
html[lang="zh-Hant"] .principle-card h3,
html[lang="zh-Hant"] .learning-caption h3,
html[lang="zh-Hant"] .learning-title,
html[lang="zh-Hant"] .discount-card h3,
html[lang="zh-Hant"] .flow-card h3,
html[lang="zh-Hant"] .faq-list summary{
  font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
  font-weight:600;
  letter-spacing:.035em;
  line-height:1.5;
}
html[lang="zh-Hant"] .hero-promise,
html[lang="zh-Hant"] .page-hero>p:last-child,
html[lang="zh-Hant"] .section-intro,
html[lang="zh-Hant"] .page-intro{
  letter-spacing:.025em;
  line-height:1.85;
}
html[lang="zh-Hant"] .eyebrow,
html[lang="zh-Hant"] .section-label{
  font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
  font-weight:600;
  letter-spacing:.16em;
}
html[lang="zh-Hant"] .credential-list{
  margin:20px 0 0;
  padding-left:1.25em;
  display:grid;
  gap:12px;
  color:var(--stone);
}
html[lang="zh-Hant"] .credential-list strong{
  color:var(--dark-green);
  font-weight:600;
}
@media(max-width:620px){
  html[lang="zh-Hant"] .hero h1,
  html[lang="zh-Hant"] .page-hero h1{
    letter-spacing:.055em;
    line-height:1.32;
  }
  html[lang="zh-Hant"] .section h2,
  html[lang="zh-Hant"] .page-section h2,
  html[lang="zh-Hant"] .section-head h2{
    letter-spacing:.045em;
    line-height:1.45;
  }
}
