:root{--text: #1a1b1f;--text-muted: #4d4a47;--text-soft: #9d9c9a;--bg: #faf9f8;--bg-alt: #f4f1ec;--bg-card: #FFFFFF;--accent: #324137;--accent-deep: #1e2721;--accent-soft: #e8ede9;--taupe: #a38c78;--taupe-soft: #f1ebe3;--border: #e4e4e3}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}:root{--ease-elegant: cubic-bezier(.83, 0, .17, 1)}.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease-elegant),transform .9s var(--ease-elegant);will-change:opacity,transform}.reveal.in-view{opacity:1;transform:translateY(0)}.reveal.delay-1{transition-delay:.1s}.reveal.delay-2{transition-delay:.2s}.reveal.delay-3{transition-delay:.3s}.reveal.delay-4{transition-delay:.4s}.reveal.delay-5{transition-delay:.5s}.reveal-img{opacity:0;transform:scale(1.04);filter:blur(12px);transition:opacity 1.1s var(--ease-elegant),transform 1.1s var(--ease-elegant),filter 1.1s ease-out}.reveal-img.in-view{opacity:1;transform:scale(1);filter:blur(0)}.hero-anim{opacity:0;transform:translateY(24px);animation:heroFadeUp .9s var(--ease-elegant) forwards}@keyframes heroFadeUp{to{opacity:1;transform:translateY(0)}}.hero-anim.d1{animation-delay:.05s}.hero-anim.d2{animation-delay:.15s}.hero-anim.d3{animation-delay:.3s}.hero-anim.d4{animation-delay:.45s}.hero-anim.d5{animation-delay:.6s}.hero-img-anim{opacity:0;transform:scale(1.04);filter:blur(12px);animation:heroImgReveal 1.2s var(--ease-elegant) .2s forwards}@keyframes heroImgReveal{to{opacity:1;transform:scale(1);filter:blur(0)}}@media(prefers-reduced-motion:reduce){.reveal,.reveal-img,.hero-anim,.hero-img-anim{opacity:1!important;transform:none!important;filter:none!important;animation:none!important;transition:none!important}}body{font-family:Noto Sans TC,Inter,sans-serif;color:var(--text);background:var(--bg);line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}nav{position:sticky;top:0;z-index:50;background:#fafaf9d9;backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.nav-inner{max-width:1200px;margin:0 auto;padding:1.25rem 2rem;display:flex;justify-content:space-between;align-items:center}.brand{font-family:"Noto Serif TC",serif;font-weight:500;font-size:1.15rem;letter-spacing:.02em}.brand small{font-weight:400;color:var(--text-muted);margin-left:.5rem;font-family:Inter,sans-serif}.nav-links{display:flex;gap:2rem}.nav-links a{color:var(--text-muted);font-size:.95rem;transition:color .2s}.nav-links a:hover{color:var(--accent)}@media(max-width:768px){.nav-links,.brand small{display:none}}.hero{max-width:1200px;margin:0 auto;padding:5rem 2rem 4rem;display:grid;grid-template-columns:1.2fr 1fr;gap:4rem;align-items:center}.hero-eyebrow{font-family:Inter,sans-serif;font-size:.85rem;color:var(--accent);letter-spacing:.15em;text-transform:uppercase;margin-bottom:1.5rem;font-weight:500}.hero h1{font-family:"Noto Serif TC",serif;font-size:clamp(2.4rem,5vw,3.8rem);font-weight:500;line-height:1.25;letter-spacing:.005em;margin-bottom:1.25rem;color:var(--text)}.hero h1 .highlight{color:var(--accent)}.hero-en{font-family:"Noto Serif TC",serif;font-size:1.2rem;color:var(--text-muted);font-style:italic;margin-bottom:2rem;letter-spacing:.02em;font-weight:400}.hero p.lead{font-size:1.05rem;color:var(--text-muted);margin-bottom:2.5rem;max-width:480px}.cta-row{display:flex;gap:1rem;flex-wrap:wrap}.btn{display:inline-block;font-weight:500;font-size:.98rem;transition:all .25s ease;cursor:pointer;letter-spacing:.02em}.btn-primary{background:var(--accent);color:#fff;border-radius:999px;padding:1rem 2rem}.btn-primary:hover{background:var(--accent-deep);transform:translateY(-1px);box-shadow:0 8px 20px #32413740}.btn-secondary{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:1rem 2rem}.btn-secondary:hover{border-color:var(--accent);color:var(--accent);background:var(--bg)}.hero-portrait{position:relative;aspect-ratio:4/5;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px #1f29371f}.hero-portrait img{width:100%;height:100%;object-fit:cover;object-position:center top}@media(max-width:768px){.hero{grid-template-columns:1fr;padding:3rem 1.5rem;gap:2.5rem}.hero-portrait{max-width:320px;margin:0 auto}}.section{max-width:1200px;margin:0 auto;padding:5rem 2rem}.section-eyebrow{font-family:Inter,sans-serif;font-size:.85rem;color:var(--accent);letter-spacing:.15em;text-transform:uppercase;margin-bottom:.75rem;font-weight:500}.section-title{font-family:"Noto Serif TC",serif;font-size:clamp(1.9rem,3.2vw,2.6rem);font-weight:500;margin-bottom:1rem;letter-spacing:.005em;color:var(--text)}.section-lead{color:var(--text-muted);margin-bottom:3rem;max-width:600px}.about-section{background:#fff;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.about-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:4rem;align-items:start}.about-meta-box{background:var(--bg);padding:2rem;border-radius:12px;border:1px solid var(--border)}.about-meta-box h4{font-size:.78rem;color:var(--accent);letter-spacing:.15em;text-transform:uppercase;margin-bottom:.5rem;font-weight:600}.about-meta-box p{font-size:.95rem;margin-bottom:1.5rem}.about-meta-box p:last-child{margin-bottom:0}.about-meta-box strong{font-weight:500}.about-text h2{margin-bottom:1.5rem}.about-text p{color:var(--text);margin-bottom:1.25rem;font-size:1.02rem}.about-text p.muted{color:var(--text-muted)}.about-quote{font-family:"Noto Serif TC",serif;border-left:3px solid var(--accent);padding:.5rem 0 .5rem 1.25rem;margin:2rem 0;color:var(--text);font-size:1.2rem;font-weight:500;line-height:1.8;letter-spacing:.01em}.lang-badges{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.75rem}.lang-badge{background:var(--taupe-soft);color:#6b5a4a;padding:.3rem .85rem;border-radius:999px;font-size:.85rem;font-weight:500}@media(max-width:768px){.about-grid{grid-template-columns:1fr;gap:2rem}}.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem}.service-card{background:var(--bg-card);padding:2rem 1.75rem;border-radius:12px;border:1px solid var(--border);transition:all .25s}.service-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 10px 30px #32413714}.service-icon{width:48px;height:48px;border-radius:12px;background:var(--taupe-soft);color:var(--taupe);display:flex;align-items:center;justify-content:center;font-family:"Noto Serif TC",serif;font-size:1.3rem;margin-bottom:1.25rem;font-weight:500}.service-card h3{font-family:"Noto Serif TC",serif;font-size:1.25rem;font-weight:500;margin-bottom:.6rem;color:var(--text)}.service-card p{color:var(--text-muted);font-size:.95rem;line-height:1.6}.expertise-section{background:var(--bg-card);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.expertise-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin-top:3rem}.expertise-card{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:1.85rem 1.75rem;transition:all .25s}.expertise-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 10px 30px #3241370f}.expertise-icon{width:48px;height:48px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:1.2rem;transition:all .25s}.expertise-icon svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.expertise-card:hover .expertise-icon{background:var(--accent);color:var(--bg-card);transform:scale(1.05)}.expertise-card-en{font-family:Inter,sans-serif;font-size:.76rem;color:var(--accent);letter-spacing:.14em;text-transform:uppercase;font-weight:500;margin-bottom:.4rem}.expertise-card h3{font-family:"Noto Serif TC",serif;font-size:1.25rem;font-weight:500;color:var(--text);margin-bottom:1.1rem;letter-spacing:.01em}.expertise-chips{display:flex;flex-wrap:wrap;gap:.5rem}.expertise-chip{background:var(--taupe-soft);color:#6b5a4a;padding:.45rem .95rem;border-radius:999px;font-size:.88rem;font-weight:500;white-space:nowrap;transition:all .2s}.expertise-card:hover .expertise-chip{background:var(--accent-soft);color:var(--accent)}.timeline{background:var(--bg-alt)}.timeline-list{max-width:800px;margin:0 auto;list-style:none}.timeline-item{display:grid;grid-template-columns:180px 1fr;gap:2rem;padding:1.5rem 0;border-bottom:1px solid var(--border)}.timeline-item:last-child{border-bottom:none}.timeline-date{font-family:Inter,sans-serif;color:var(--accent);font-size:.92rem;font-weight:500;letter-spacing:.02em}.timeline-content h4{font-family:"Noto Serif TC",serif;font-size:1.1rem;font-weight:500;margin-bottom:.2rem;color:var(--text)}.timeline-content p{color:var(--text-muted);font-size:.92rem}@media(max-width:768px){.timeline-item{grid-template-columns:1fr;gap:.4rem;padding:1.25rem 0}}.reviews-section{background:var(--bg-alt)}.reviews-grid{column-count:3;column-gap:1.5rem;margin-top:3rem}@media(max-width:1000px){.reviews-grid{column-count:2}}@media(max-width:600px){.reviews-grid{column-count:1}}.review-card{background:var(--bg-card);border-radius:12px;padding:1.75rem;border:1px solid var(--border);break-inside:avoid;margin:0 0 1.5rem;transition:all .25s;display:inline-block;width:100%}.review-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 10px 30px #3241370f}.review-head{display:flex;gap:.85rem;align-items:center;margin-bottom:.85rem}.review-avatar{width:42px;height:42px;border-radius:50%;background:var(--taupe);color:#fff;display:flex;align-items:center;justify-content:center;font-family:"Noto Serif TC",serif;font-weight:500;font-size:1.05rem;flex-shrink:0}.review-avatar.alt{background:var(--accent)}.review-meta{flex:1;min-width:0}.review-name{font-weight:500;color:var(--text);font-size:.98rem;line-height:1.3}.review-sub{color:var(--text-soft);font-size:.78rem;margin-top:.15rem}.review-rating{display:flex;align-items:center;gap:.6rem;margin-bottom:.85rem}.review-stars{color:#f5a623;letter-spacing:.12em;font-size:.95rem}.review-date{color:var(--text-soft);font-size:.82rem}.review-body{color:var(--text-muted);font-size:.93rem;line-height:1.8;white-space:pre-line}.review-source{margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--border);font-size:.78rem;color:var(--text-soft);letter-spacing:.04em}.review-source-g{font-weight:700;background:linear-gradient(90deg,#4285f4,#db4437,#f4b400,#0f9d58);-webkit-background-clip:text;background-clip:text;color:transparent}.reviews-cta{text-align:center;margin-top:2.5rem}.reviews-cta a{display:inline-block;padding:.7rem 1.5rem;border:1px solid var(--text);color:var(--text);border-radius:999px;font-size:.92rem;font-weight:500;transition:all .25s}.reviews-cta a:hover{background:var(--accent);border-color:var(--accent);color:#fff}.reviews-stats{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-top:1.25rem;color:var(--text-muted);font-size:.95rem;flex-wrap:wrap}.reviews-stats .big{font-family:"Noto Serif TC",serif;font-size:2.2rem;font-weight:500;color:var(--text);line-height:1}.clinic-section{background:var(--bg-card);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.clinic-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:4rem;align-items:start;margin-top:3rem}@media(max-width:900px){.clinic-grid{grid-template-columns:1fr;gap:2.5rem}}.schedule{display:grid;grid-template-columns:80px repeat(6,1fr);border:1px solid var(--border);border-radius:4px;overflow:hidden;font-size:.92rem;background:var(--bg)}.sched-cell{padding:.85rem .4rem;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg-card);min-height:92px;display:flex;align-items:center;justify-content:center;text-align:center;position:relative}.sched-cell:nth-child(7n){border-right:none}.sched-cell.is-header{background:var(--bg);font-weight:500;min-height:auto;padding:.85rem .4rem .6rem;flex-direction:column;gap:.15rem}.sched-cell.is-header .day-zh{font-family:"Noto Serif TC",serif;font-size:1.1rem;color:var(--text)}.sched-cell.is-header .day-en{font-family:Inter,sans-serif;font-size:.72rem;color:var(--text-soft);letter-spacing:.08em}.sched-cell.is-rowlabel{background:var(--bg);flex-direction:column;gap:.35rem;font-weight:500}.sched-cell.is-rowlabel .row-zh{font-family:"Noto Serif TC",serif;font-size:1.05rem;color:var(--text)}.sched-cell.is-rowlabel .row-time{font-family:Inter,sans-serif;font-size:.72rem;color:var(--text-muted);line-height:1.4}.marker{width:46px;height:46px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-family:"Noto Serif TC",serif;font-weight:500;font-size:1.1rem;box-shadow:0 4px 12px #32413726;transition:transform .25s ease}.sched-cell:hover .marker{transform:scale(1.08)}.marker.tcmg{background:var(--accent)}.marker.tx{background:var(--taupe)}.legend{display:flex;gap:1.5rem;margin-top:1rem;font-size:.88rem;color:var(--text-muted);flex-wrap:wrap}.legend-item{display:inline-flex;align-items:center;gap:.5rem}.legend-dot{width:14px;height:14px;border-radius:50%}.legend-dot.tcmg{background:var(--accent)}.legend-dot.tx{background:var(--taupe)}.clinic-cards{display:flex;flex-direction:column;gap:1.5rem}.clinic-card{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:1.75rem;transition:all .25s}.clinic-card:hover{border-color:var(--accent);box-shadow:0 10px 30px #3241370f}.clinic-card h3{font-family:"Noto Serif TC",serif;font-size:1.25rem;font-weight:500;margin-bottom:.85rem;display:flex;align-items:center;gap:.6rem}.clinic-card h3:before{content:"";width:12px;height:12px;border-radius:50%;flex-shrink:0}.clinic-card.tcmg h3:before{background:var(--accent)}.clinic-card.tx h3:before{background:var(--taupe)}.clinic-card .clinic-meta{color:var(--text-muted);font-size:.92rem;margin-bottom:1.25rem;line-height:1.7}.clinic-card .clinic-meta strong{color:var(--text);font-weight:500}.btn-clinic{display:inline-block;padding:.7rem 1.4rem;border:1px solid var(--text);color:var(--text);border-radius:4px;font-size:.92rem;font-weight:500;transition:all .25s}.btn-clinic:hover{background:var(--accent);border-color:var(--accent);color:#fff}.clinic-map{margin:1rem 0 1.25rem;border-radius:8px;overflow:hidden;border:1px solid var(--border);aspect-ratio:16 / 9;background:var(--bg-alt)}.clinic-map iframe{width:100%;height:100%;border:0;display:block}footer{border-top:1px solid var(--border);background:var(--bg);padding:4.5rem 2rem 2rem;color:var(--text-muted);font-size:.92rem}.footer-inner{max-width:1200px;margin:0 auto}.footer-grid{display:grid;grid-template-columns:1.4fr 1.1fr 1fr;gap:4rem;align-items:start;padding-bottom:3rem;border-bottom:1px solid var(--border)}@media(max-width:900px){.footer-grid{grid-template-columns:1fr;gap:2.5rem}}.footer-brand{font-family:"Noto Serif TC",serif;font-size:2rem;font-weight:500;color:var(--text);margin-bottom:.5rem;letter-spacing:.02em;line-height:1.3}.footer-brand-en{font-family:"Noto Serif TC",serif;font-style:italic;color:var(--text-muted);font-size:1rem;margin-bottom:1.25rem}.footer-tagline{color:var(--text-muted);line-height:1.7;font-size:.92rem;max-width:320px}.footer-h4{font-family:"Noto Serif TC",serif;font-size:1.05rem;font-weight:500;color:var(--text);margin-bottom:1.25rem;letter-spacing:.02em}.footer-clinic-row{margin-bottom:1.5rem;line-height:1.75}.footer-clinic-row strong{display:block;color:var(--text);font-weight:500;margin-bottom:.15rem}.footer-clinic-row a{color:var(--text-muted);transition:color .2s}.footer-clinic-row a:hover{color:var(--accent)}.footer-social{display:flex;gap:.85rem;margin-top:1.25rem}.footer-social a{width:40px;height:40px;border-radius:50%;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);transition:all .25s}.footer-social a:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.footer-social a svg{width:18px;height:18px;fill:currentColor}.footer-nav{display:flex;flex-direction:column;gap:.7rem}.footer-nav a{color:var(--text-muted);transition:color .2s}.footer-nav a:hover{color:var(--accent)}.footer-bottom{padding-top:1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;color:var(--text-soft);font-size:.82rem}.footer-bottom .disclaimer{max-width:700px}@media(max-width:700px){.footer-bottom{justify-content:center;text-align:center}}
