@charset "UTF-8";
html { scroll-padding-top: calc(var(--clinic-header-height,92px) + 16px); }
.site-header { position: sticky; top: 0; z-index: 1030; transition: transform .22s ease,box-shadow .22s ease; }
.site-header.nav-is-hidden { transform: translateY(-100%); }
.site-header.nav-is-scrolled { box-shadow: 0 5px 20px #392b4326; }
.site-header .nav-link[aria-current='page'] { color: #fff; text-decoration: underline; text-decoration-color: var(--clinic-gold); text-underline-offset: 8px; }
/* 全站分類選單：桌面下拉、手機選單內展開。 */
.clinic-nav-dropdown > button { border: 0; background: transparent; font-family: inherit; text-align: left; }
.clinic-nav-dropdown .dropdown-toggle::after { margin-left: 7px; vertical-align: .16em; transition: transform .2s ease; }
.clinic-nav-dropdown .dropdown-toggle[aria-expanded="true"]::after { transform: rotate(180deg); }
.clinic-nav-menu { --bs-dropdown-min-width: 210px; padding: 10px; margin-top: 8px; border: 1px solid #d8c9df; border-top: 2px solid var(--clinic-gold); border-radius: 4px 4px 16px 16px; background: var(--clinic-paper); box-shadow: 0 16px 36px #392b432b; }
.clinic-nav-menu .dropdown-item { padding: 9px 18px; border-radius: 8px; color: var(--clinic-purple); font-size: 17px; line-height: 1.6; transition: background-color .18s ease, color .18s ease; }
.clinic-nav-menu .dropdown-item:hover, .clinic-nav-menu .dropdown-item:focus, .clinic-nav-menu .dropdown-item:active { color: var(--clinic-deep); background: var(--clinic-lilac); }
@media (max-width: 991.98px) {
  .clinic-nav-dropdown > button { width: 100%; }
  .clinic-nav-menu { margin: 0 0 8px 11px; padding: 5px 8px; border: 0; border-left: 2px solid var(--clinic-gold); border-radius: 0 12px 12px 0; background: #f4eef7; box-shadow: none; }
  .clinic-nav-menu .dropdown-item { padding: 10px 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .clinic-nav-dropdown .dropdown-toggle::after, .clinic-nav-menu .dropdown-item { transition: none; }
}
:root{--clinic-font-sans:"Noto Sans TC","Microsoft JhengHei",Arial,sans-serif;--bs-body-font-family:var(--clinic-font-sans);--clinic-purple:#60486d;--clinic-deep:#392b43;--clinic-lilac:#eee7f1;--clinic-gold:#b69a6d;--clinic-ink:#413a43;--clinic-muted:#77707a;--clinic-paper:#fcfaf7;--bs-primary:#60486d;--bs-primary-rgb:96,72,109;--bs-body-font-size:1.125rem;--bs-body-color:#413a43;--bs-body-bg:#fcfaf7;--bs-border-color:#e8e0e7}
body{font-family:var(--clinic-font-sans);line-height:1.85;background:var(--clinic-paper)}
h1,h2,h3,.brand-name,.serif{font-family:var(--clinic-font-sans)}a{color:var(--clinic-purple);text-decoration:none}a:hover{color:var(--clinic-deep)}button,a{touch-action:manipulation}.skip-link{position:fixed;top:-100px;left:20px;background:white;padding:12px;z-index:1100}.skip-link:focus{top:10px}.eyebrow{font-size:.875rem;letter-spacing:.24em;text-transform:uppercase;color:var(--clinic-gold)}
.site-header{background:var(--clinic-deep);color:#fff}.navbar{min-height:92px}.navbar-brand{color:#fff!important;display:flex;align-items:center;gap:13px;margin:0}.brand-seal{border:1px solid #d1c1da;border-radius:50%;width:47px;height:47px;display:grid;place-items:center;font-family:var(--clinic-font-sans);font-size:27px;color:#eee3ef}.brand-name{font-size:26px;letter-spacing:.14em;line-height:1.4}.brand-en{font-size:11px;letter-spacing:.14em;color:#d7cadc;display:block}.navbar .nav-link{color:#e8dfea;font-size:18px;font-weight:700;padding:10px 11px!important}.navbar .nav-link:hover,.navbar .nav-link:focus{color:#fff}.navbar-toggler{border-color:#a78eaf}.navbar-cta{border:1px solid #b9a5c2;border-radius:30px;padding:7px 15px!important;color:white}
.hero{position:relative;overflow:hidden;background:linear-gradient(105deg,#f5eee8 0%,#f8f3ee 45%,#ece2ee 100%)}.hero .container{position:relative;z-index:2}.hero-row{min-height:575px;align-items:center}.hero-copy{padding-top:55px;padding-bottom:80px}.hero-tag{display:inline-block;border:1px solid #d2bed6;padding:3px 18px;border-radius:30px;color:var(--clinic-purple);font-size:16px;letter-spacing:.18em}.hero h1{font-size:clamp(3.5rem,6vw,5.6rem);font-weight:500;letter-spacing:.16em;color:var(--clinic-deep);margin:19px 0 12px}.hero-subtitle{font-family:var(--clinic-font-sans);font-size:26px;letter-spacing:.16em;color:var(--clinic-purple)}.hero-description{max-width:480px;color:var(--clinic-muted);font-size:17px;margin:20px 0 25px}.hero-benefits{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:16px;color:var(--clinic-purple);margin-bottom:28px}.hero-benefits span:before{content:'✧';color:var(--clinic-gold);margin-right:6px}.btn-clinic{background:var(--clinic-purple);color:white;border:1px solid var(--clinic-purple);border-radius:30px;padding:11px 26px;font-size:16px;letter-spacing:.12em}.btn-clinic:hover,.btn-clinic:focus{background:var(--clinic-deep);color:white;border-color:var(--clinic-deep)}.btn-outline-clinic{border:1px solid #bba3c7;color:var(--clinic-purple);border-radius:30px;padding:10px 32px;font-size:16px;letter-spacing:.12em}.btn-outline-clinic:hover{background:var(--clinic-purple);color:white}.btn-arrow{margin-left:20px}.hero-art{width:100%;height:485px;object-fit:contain;mix-blend-mode:multiply}.hero-image-note{position:absolute;bottom:62px;right:22px;color:#8e7b96;font-size:13px;letter-spacing:.1em}.hero-emblem{position:absolute;bottom:12px;left:calc(50% - 22px);border-radius:50%;background:var(--clinic-gold);color:white;width:44px;height:44px;display:grid;place-items:center;z-index:4;font-family:var(--clinic-font-sans)}
.section-space{padding:36px 0}.section-heading{margin-bottom:25px}.section-heading h2{font-size:29px;letter-spacing:.14em;color:var(--clinic-deep);margin:0}.section-heading .eyebrow{display:block;margin-top:4px;font-size:12px;letter-spacing:.2em}.more-link{font-size:16px;letter-spacing:.1em;white-space:nowrap}.more-link span{margin-left:12px}.entry-section{padding:20px 0 28px}.entry-card{height:100%;padding:30px 25px;border:1px solid var(--bs-border-color);border-radius:22px;background:#ffffff8c;transition:transform .2s,box-shadow .2s}.entry-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #4933540d}.entry-card h2{font-size:24px;letter-spacing:.13em;margin:0 0 10px;color:var(--clinic-ink)}.entry-card p{font-size:16px;color:var(--clinic-muted);margin:0 0 12px}.entry-card .more-link{font-size:14px}.line-icon{width:52px;height:52px;flex-shrink:0;fill:none;stroke:var(--clinic-purple);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.news-row{padding:14px 20px;background:#f2edf080;border-bottom:3px solid var(--clinic-paper);color:var(--clinic-ink);font-size:16px}.news-row:first-child{border-radius:10px 10px 0 0}.news-row:last-child{border-radius:0 0 10px 10px}.news-date{font-size:14px;letter-spacing:.05em;color:#8c8490;min-width:80px}.news-label{border:1px solid #c8b4d0;border-radius:20px;padding:0 12px;color:var(--clinic-purple);font-size:13px;white-space:nowrap}.news-arrow{color:var(--clinic-purple)}
.editorial-card{border:1px solid var(--bs-border-color);border-radius:16px;overflow:hidden;background:#fff;height:100%;box-shadow:0 4px 14px #513b5e05}.editorial-image{position:relative;background:#eee7ee;overflow:hidden;aspect-ratio:1.75}.editorial-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.editorial-card:hover img{transform:scale(1.035)}.image-label{position:absolute;left:12px;top:12px;border-radius:20px;background:#ffffffcf;color:var(--clinic-purple);padding:1px 11px;font-size:13px;letter-spacing:.1em}.editorial-body{padding:22px}.editorial-body h3{font-size:22px;letter-spacing:.06em;line-height:1.65;margin:0 0 10px}.editorial-body p{font-size:16px;color:var(--clinic-muted);margin-bottom:20px}.editorial-body .more-link{font-size:14px}.content-note{font-size:14px;color:#8b808e;margin:-13px 0 20px}
.service-tile{display:flex;flex-direction:column;align-items:center;gap:15px;padding:26px 10px 18px;border:1px solid var(--bs-border-color);border-radius:20px;background:#fff9;font-size:16px;letter-spacing:.08em;color:var(--clinic-purple);text-align:center;cursor:default}.service-tile .line-icon{width:57px;height:57px}.service-bottom{margin-top:27px;text-align:center}.column-card .editorial-body{padding:18px}.column-card h3{font-size:19px}.accordion{--bs-accordion-bg:#ffffff80;--bs-accordion-border-color:#e7dfe6;--bs-accordion-active-bg:#eee7f1;--bs-accordion-active-color:#60486d;--bs-accordion-btn-focus-box-shadow:none}.accordion-button{font-size:17px;padding:19px 23px}.accordion-body{font-size:16px;color:var(--clinic-muted);line-height:1.9}
.contact-section{padding:44px 0 52px;position:relative}.contact-panel{background:var(--clinic-deep);color:#f7f0f9;border-radius:24px;padding:42px;position:relative;overflow:hidden}.contact-brand{font-size:35px;line-height:1.6;letter-spacing:.14em;margin-bottom:14px}.contact-en{font-size:12px;letter-spacing:.13em;color:#ccbbd5}.contact-info{font-size:16px;margin:0;padding:0;list-style:none}.contact-info li{margin-bottom:16px}.contact-info strong{display:block;font-weight:400;font-size:13px;color:#c4afcf;letter-spacing:.1em}.contact-info .btn-clinic{background:#8b679b;border-color:#8b679b;margin-top:8px}.schedule-title{font-size:17px;letter-spacing:.13em;color:#d5c5a8;margin-bottom:12px}.schedule-wrap{overflow:auto;border:1px solid #8a729442;border-radius:10px}.schedule{width:100%;min-width:370px;text-align:center;font-size:14px;border-collapse:collapse;color:#ddd0e4}.schedule th,.schedule td{padding:10px 8px;border:1px solid #8a729430;font-weight:400}.schedule th{color:#d5c5a8}.schedule .pending{color:#baa7c5}.contact-note{font-size:13px;color:#c6b3ce;margin:10px 0 0}.site-footer{background:var(--clinic-deep);color:#ccb9d5;text-align:center;padding:15px;font-size:13px;letter-spacing:.07em}.back-top{position:fixed;right:18px;bottom:20px;width:68px;height:68px;background:#60486d;color:#f7f0fa;border:1px solid #a28dad;border-radius:50%;display:grid;place-items:center;font-size:32px;line-height:1;z-index:100;box-shadow:0 5px 18px #392b4326;transition:transform .2s,background-color .2s,box-shadow .2s}.back-top:hover{color:#f7f0fa;background:#70587c}.modal-content{border-radius:20px}.modal-header{border-color:var(--bs-border-color)}.modal-title{color:var(--clinic-purple);font-size:25px}.modal-body{font-size:17px;padding:25px;line-height:1.9}.preview-mark{font-size:14px;background:var(--clinic-lilac);padding:4px 12px;border-radius:20px;color:var(--clinic-purple);display:inline-block;margin-bottom:15px}

.more-link{color:var(--clinic-purple)}.news-row{margin-bottom:3px}.news-row:hover{background:#ece3ef}

/* 正式 LOGO：保留原 PNG，以 SVG 濾鏡呈現米白色並還原原檔的半透明濃度。 */
.brand-logo{display:block;width:180px;max-width:100%;height:auto}.contact-logo-link{display:inline-block;max-width:100%;margin:5px 0 24px}.contact-logo{display:block;width:225px;max-width:100%;height:auto}

/* 右側固定社群／地圖按鈕；以 inline SVG 顯示，無外部圖示依賴。 */
.floating-contact {
  position: fixed;
  top: 50%; right: 18px;
  transform: translateY(-50%);
  display: flex; flex-direction: column; gap: 14px;
  z-index: 1030;
}
.floating-contact-link {
  position: relative; display: grid; place-items: center;
  width: 68px; height: 68px; flex-shrink: 0;
  border: 1px solid #a28dad; border-radius: 50%;
  background: #60486d; color: #f7f0fa;
  box-shadow: 0 5px 18px #392b4326;
  transition: transform .2s, background-color .2s, box-shadow .2s;
}
.floating-contact-link::after, .back-top::after {
  content: ''; position: absolute; inset: 7px;
  border: 1px solid #dac9e0; border-radius: 50%; pointer-events: none;
}
.floating-contact-link:hover, .floating-contact-link:focus-visible, .back-top:hover, .back-top:focus-visible {
  transform: translateX(-4px) scale(1.04);
  background: #70587c; color: #f7f0fa;
  box-shadow: 0 7px 22px #392b4336;
}
.floating-contact-link img { width: 40px; height: 40px; }

.floating-contact-label {
  position: absolute;
  right: calc(100% + 10px);
  top: 50%;
  transform: translateY(-50%) translateX(5px);
  padding: 6px 13px;
  border-radius: 8px;
  background: var(--clinic-deep);
  color: #fffaf2;
  font-size: 16px;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .2s, transform .2s;
}
.floating-contact-label span { margin-left: 8px; }
.floating-contact-link:hover .floating-contact-label,
.floating-contact-link:focus-visible .floating-contact-label {
  opacity: 1;
  visibility: visible;
  transform: translateY(-50%);
}

.contact-line-account,.contact-line-account:hover{color:#f7f0f9;text-decoration:underline;text-underline-offset:3px}

.physician-modal-photo {
  display: block;
  width: 250px;
  max-width: 100%;
  height: auto;
  margin: 0 auto 22px;
  border-radius: 16px;
}
.physician-modal-photo[hidden] { display: none; }

.doctor-profile-dialog { max-width: 860px; }
.doctor-profile-body { padding: 30px; }

.doctor-profile-photo { width: 200px; max-width: 100%; height: auto; border-radius: 18px; }
.doctor-profile-name { font-size: 32px; color: var(--clinic-deep); letter-spacing: .12em; margin: 4px 0 7px; }
.doctor-profile-name small { font-family:var(--clinic-font-sans); font-size: 16px; letter-spacing: .1em; margin-left: 12px; color: var(--clinic-purple); }
.doctor-profile-subtitle { color: var(--clinic-purple); font-size: 16px; margin: 0 0 16px; }
.doctor-profile-body h4 { color: var(--clinic-purple); font-family:var(--clinic-font-sans); font-size: 18px; margin: 25px 0 10px; }
.doctor-profile-body ul { padding-left: 20px; font-size: 16px; line-height: 1.9; margin-bottom: 0; }
.doctor-profile-expertise { margin-top: 25px; border-top: 1px solid var(--bs-border-color); padding-top: 4px; }
.doctor-message { margin-top: 30px; padding: 26px; border: 1px solid #e0d5e6; border-radius: 16px; background: #f7f2f8; }
.doctor-message h4 { margin-top: 8px; }
.doctor-message blockquote { margin: 20px 0; padding-left: 18px; border-left: 3px solid var(--clinic-gold); font-family:var(--clinic-font-sans); font-size: 22px; line-height: 1.9; color: var(--clinic-purple); }
.doctor-message p { font-size: 17px; line-height: 1.95; color: var(--clinic-muted); }
.doctor-message p:last-child { margin-bottom: 0; }
.clinic-location { margin-bottom: 38px; }
.clinic-location .section-heading { margin-bottom: 20px; }
.location-address { color: var(--clinic-muted); font-size: 17px; margin: 12px 0 0; }
.clinic-map-wrap { overflow: hidden; border: 1px solid #e0d5e6; border-radius: 20px; background: #eee7f1; }
.clinic-map-wrap iframe { display: block; border: 0; width: 100%; height: 390px; }

.expertise-item { padding: 17px; border: 1px solid var(--bs-border-color); border-radius: 13px; background: #fcfaf7; }
.expertise-item h5 { font-family:var(--clinic-font-sans); color: var(--clinic-purple); font-size: 17px; margin: 0 0 7px; }
.expertise-item p { font-size: 16px; line-height: 1.9; margin: 0; color: var(--clinic-muted); }

.service-tile { font-size: 16px; letter-spacing: .03em; }
.contact-detail-link,.contact-detail-link:hover { color: #f7f0f9; text-decoration: underline; text-underline-offset: 3px; }

.schedule { min-width: 380px; table-layout: fixed; }
.schedule-wrap { position: relative; overflow-y: hidden; }
.schedule th:first-child { width: 108px; }
.schedule th, .schedule td { padding: 9px 4px; vertical-align: middle; }
.schedule-time { display: block; font-size: 12px; line-height: 1.5; letter-spacing: 0; color: #ddd0e4; white-space: nowrap; }
.schedule-open { font-size: 18px; line-height: 1; color: #e2c9a2; }
.schedule-empty { color: #a28fad; }
.schedule-closed { background: #ffffff04; color: #e7dce9; }
.schedule-closed span { display: inline-block; writing-mode: vertical-rl; letter-spacing: .3em; font-size: 16px; }
.schedule-notes { margin-top: 12px; }
.schedule-notes p { font-size: 13px; color: #d7c5df; margin: 3px 0; line-height: 1.8; }
.schedule-effective { color: #b9a6c1 !important; }

.hero .hero-title { font-family:var(--clinic-font-sans); font-size: clamp(3.1rem,5.3vw,4.9rem); font-weight: 700; letter-spacing: .12em; color: var(--clinic-deep); margin: 19px 0 12px; }
.hero-campaign-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.hero-campaign-note { position: absolute; bottom: 83px; right: 22px; color: #8e7b96; font-size: 13px; letter-spacing: .1em; }
.hero-copy{ padding-bottom: 110px; }
.hero-campaign-controls.carousel-indicators { right: auto; left: 50%; bottom: 68px; transform: translateX(-50%); margin: 0; gap: 8px; white-space: nowrap; z-index: 4; }
.hero-campaign-controls.carousel-indicators [data-bs-target] { box-sizing: border-box; flex: 0 1 auto; width: auto; height: auto; margin: 0; border: 1px solid #d7c7df; border-radius: 22px; padding: 7px 18px; text-indent: 0; background: #fffaf5; background-clip: border-box; opacity: 1; color: var(--clinic-purple); font-family:var(--clinic-font-sans); font-size: 14px; line-height: 1.7; }
.hero-campaign-controls.carousel-indicators .active { background: var(--clinic-purple); border-color: var(--clinic-purple); color: #fff; }
.hero-carousel .carousel-item { transition-duration: .4s; }

/* AOS 使用欄位外層，不影響 Bootstrap 欄寬與卡片的 hover 動畫。 */
[data-aos="fade-up"] { transform: translate3d(0,24px,0); }
[data-aos]:not(.aos-init),
[data-aos]:focus-within {
  opacity: 1 !important;
  transform: none !important;
  pointer-events: auto !important;
}
@media(prefers-reduced-motion:reduce) {
  [data-aos] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    pointer-events: auto !important;
  }
}

/* 分層視差：裝飾與圖片內層移動，Bootstrap 欄位與 AOS 外層各自保留。 */
.hero { isolation: isolate; }
.hero-carousel { position: relative; z-index: 2; }
.hero-depth-scene {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
[data-parallax-layer] {
  transform: translate3d(0,var(--parallax-y,0px),0);
}
.parallax-in-view [data-parallax-layer] { will-change: transform; }
.hero-depth-glow {
  position: absolute;
  width: min(66vw,960px);
  aspect-ratio: 1;
  right: -8%;
  top: -30%;
  border-radius: 50%;
  background: radial-gradient(circle,#c4a9d43d 0%,#d9c7e72b 40%,transparent 70%);
}


.hero-botanical { position: absolute; width: 185px; left: -34px; top: -97px; opacity: .42; }
.hero-botanical img { width: 100%; height: auto; transform: rotate(-38deg); }
.hero-botanical-secondary { position: absolute; width: 165px; right: -48px; bottom: 24px; opacity: .28; }
.hero-botanical-secondary img { width: 100%; height: auto; transform: rotate(27deg); }
.hero-art-depth { position: relative; }
.hero-art-depth .hero-art { display: block; }
.section-parallax { position: relative; isolation: isolate; overflow: hidden; }
.section-parallax > .container { position: relative; z-index: 1; }
.section-botanical { position: absolute; z-index: 0; width: 225px; pointer-events: none; opacity: .24; }
.section-botanical img { width: 100%; height: auto; }
.section-botanical-right { right: -82px; top: -25px; }
.section-botanical-right img { transform: rotate(-18deg); }
.section-botanical-left { left: -112px; top: 42px; opacity: .18; }
.section-botanical-left img { transform: rotate(32deg); }
@media(prefers-reduced-motion:reduce) {
  [data-parallax-layer] { transform: none !important; will-change: auto !important; }
}

/* 低對比材質：米白紙纖維、草本暗紋與深紫細織紋。 */
:root {
  --clinic-paper-texture: url("../images/decoration/paper-grain.png");
  --clinic-herbal-texture: url("../images/decoration/herbal-pattern.png");
}
body {
  background-image: var(--clinic-paper-texture);
  background-size: 360px 360px;
  background-repeat: repeat;
}
.hero {
  background-image: var(--clinic-paper-texture),linear-gradient(105deg,#f5eee8 0%,#f8f3ee 45%,#ece2ee 100%);
  background-size: 360px 360px,100% 100%;
  background-repeat: repeat,no-repeat;
}
#services {
  background-color: #f6f1f7;
  background-image: linear-gradient(90deg,#fcfaf7a6,#fcfaf726 50%,#fcfaf7a6),var(--clinic-herbal-texture),var(--clinic-paper-texture);
  background-size: 100% 100%,280px 280px,360px 360px;
  background-repeat: no-repeat,repeat,repeat;
}
.site-header,.contact-panel,.site-footer {
  background-image: var(--clinic-paper-texture),repeating-linear-gradient(45deg,#ffffff04 0 1px,transparent 1px 6px),linear-gradient(120deg,#49374f,var(--clinic-deep) 75%);
  background-size: 360px 360px,9px 9px,100% 100%;
  background-repeat: repeat,repeat,no-repeat;
}

/* 診所提供的減重案例：完整呈現 4:3 圖稿，不裁切數字或遮蔽區域。 */
.case-section-label { font-size: 16px; color: var(--clinic-purple); letter-spacing: .06em; }
.case-image-button { display: block; width: 100%; padding: 0; border: 0; background: #eee7f1; }
.case-image { display: block; aspect-ratio: 4/3; }
.case-image img { display: block; object-fit: contain; }
.case-card:hover img { transform: none; }
.case-period { display: inline-block; padding: 2px 10px; margin-bottom: 10px; border-radius: 20px; font-size: 14px; color: var(--clinic-purple); background: var(--clinic-lilac); }
.case-card h3 { font-size: 23px; }
/* Bootstrap 欄寬維持三／兩欄；AOS 套在滑動視窗，避免側邊案例尚未進場而空白。 */
.case-slider { margin-inline: -12px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: thin; scrollbar-color: #c4b2cf #eee7f1; border-radius: 14px; }
.case-slider-track { margin-top: 0; padding-block: 12px 18px; }
.case-slider-track > .case-slide { margin-top: 0; scroll-snap-align: start; }
.case-slider .case-card { height: 100%; }
.case-slider .case-card,.case-slider .case-card button { cursor: grab; }
.case-slider.is-dragging { scroll-snap-type: none; scroll-behavior: auto; user-select: none; }
.case-slider.is-dragging,.case-slider.is-dragging .case-card,.case-slider.is-dragging .case-card button { cursor: grabbing; }
.case-slider .case-card img { -webkit-user-drag: none; user-select: none; }
.case-slider-controls { display: flex; gap: 9px; }
.case-slider-arrow { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid #d7c7df; border-radius: 50%; background: var(--clinic-purple); color: #fff; font-size: 23px; line-height: 1; transition: background .2s,opacity .2s; }
.case-slider-arrow[hidden] { display: none; }
.case-slider-arrow:hover { background: var(--clinic-deep); }
.case-slider-arrow:disabled { background: #f2edf5; color: #aa97b5; cursor: default; }
.case-slider-footer { margin-top: 14px; }
.case-slider-hint,.case-slider-status { color: var(--clinic-muted); font-size: 14px; }
.case-slider-hint > span { color: var(--clinic-purple); margin-right: 5px; }
.case-slider-status { font-variant-numeric: tabular-nums; white-space: nowrap; }
@media(prefers-reduced-motion:reduce) { .case-slider { scroll-behavior: auto; } }
.case-weight-stats { margin-bottom: 20px; }
.case-weight-stats dt { font-size: 14px; font-weight: 400; color: var(--clinic-muted); }
.case-weight-stats dd { margin: 2px 0 0; font-size: 28px; line-height: 1.5; color: var(--clinic-purple); font-variant-numeric: tabular-nums; }
.case-weight-stats dd span { margin-left: 6px; font-size: 16px; color: var(--clinic-muted); }
.case-modal-body { padding: 20px; }
.case-modal-summary { font-size: 17px; color: var(--clinic-purple); margin-bottom: 15px; }
.case-modal-image { display: block; width: 100%; height: auto; border-radius: 10px; }

/* 專欄沿用完整圖文，保留原稿的文字與 LOGO，點擊可查看大圖。 */
.column-image-button { display: block; width: 100%; padding: 0; border: 0; background: #f4eee7; }
.column-artwork-image { display: block; aspect-ratio: 4/3; }
.column-artwork-image img { display: block; object-fit: contain; }
.column-artwork-card:hover img { transform: none; }
.column-category { display: inline-block; font-size: 13px; color: var(--clinic-purple); margin-bottom: 7px; letter-spacing: .1em; }
.image-preview-dialog { max-width: 900px; }
.image-preview-dialog .physician-modal-photo { width: 100%; margin-bottom: 16px; border-radius: 10px; }
.preview-original-link[hidden] { display: none; }

/* 已提供的方形廣告照片：保持原比例與自然色彩。 */
.hero-art.hero-photo { width: 100%; max-width: 485px; height: auto; aspect-ratio: 1; margin-inline: auto; object-fit: contain; mix-blend-mode: normal; border-radius: 26px; box-shadow: 0 18px 48px #392b4315; }
.hero-campaign-note { padding: 3px 10px; border-radius: 12px; background: #fcfaf7e8; }
.hero-art-depth:has(.hero-photo) { padding-bottom: 64px; }

/* 首頁廣告輪播：箭頭、主題切換與播放控制排列在同一列。 */
.hero-carousel-toolbar { position: absolute; z-index: 4; left: 50%; bottom: 68px; transform: translateX(-50%); display: flex; align-items: center; gap: 6px; max-width: calc(100% - 30px); }
.hero-carousel-toolbar .hero-campaign-controls { position: static; transform: none; gap: 6px; }
.hero-carousel-toolbar .hero-campaign-controls [data-bs-target] { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.hero-carousel-button { display: inline-flex; flex: 0 0 44px; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid #d7c7df; border-radius: 50%; color: var(--clinic-purple); background: #fffaf5; transition: background-color .2s,color .2s; }
.hero-carousel-button:hover { color: white; background: var(--clinic-purple); }
.hero-carousel-button svg[hidden],.campaign-label-short { display: none; }
.hero-carousel.carousel-fade .carousel-item { transition-duration: .7s; }

/* 對齊設計草稿：同寬內容、滿版主視覺與集中排列的文案。 */
:root { --clinic-paper: #fffdfb; }
.hero { background-color: #f7f2ee; background-image: var(--clinic-paper-texture),linear-gradient(100deg,#faf6f1 0%,#f8f3ef 65%,#f1e9ef 100%); }
.hero .hero-row { min-height: 600px; }
.hero-copy { position: relative; z-index: 2; text-align: center; padding: 58px 18px 70px; }
.hero-description { display: none; }
.hero .hero-title { margin: 20px 0 12px; }
.hero-subtitle { font-weight: 700; }
.hero-tag,.hero-benefits,.hero-campaign-actions .btn,.hero-campaign-actions .more-link { font-weight: 600; }
.hero-tag { background: #fffdfb8c; }
.hero-subtitle { margin-bottom: 28px; }
.hero-benefits { display: inline-flex; justify-content: center; gap: 8px 15px; border-radius: 30px; background: #fffdfbc9; padding: 7px 15px; margin-bottom: 24px; }
.hero-campaign-actions { justify-content: center; flex-direction: column; gap: 9px; }
.hero-campaign-actions > .more-link { font-size: 14px; }
.hero-media-column { position: relative; align-self: stretch; z-index: 1; pointer-events: none; }

.hero-depth-glow { opacity: .3; }
.hero-botanical-secondary { opacity: .1; }
.hero-carousel-toolbar { bottom: 70px; }
.hero-campaign-note { right: 12px; bottom: 74px; font-size: 12px; }
.section-space { padding: 38px 0; }
.section-heading { margin-bottom: 26px; }
.section-heading .eyebrow { display: none; }
.section-heading h2,
.entry-card h2,
.doctor-home h2 {
  font-family: "Microsoft JhengHei", "Noto Sans TC", Arial, sans-serif;
  font-weight: 900;
}
.section-heading h2:after {
  content: '';
  display: inline-block;
  width: 20px;
  height: 36px;
  margin-left: 14px;
  vertical-align: middle;
  background: url('../images/icons/heading-logo.png') center/contain no-repeat;
}
.entry-section { padding-top: 32px; padding-bottom: 20px; }
.entry-card { padding: 30px 25px; background: #ffffffa8; border-radius: 22px; box-shadow: none; }
.entry-card p { line-height: 1.8; }
.news-row { background: #f4f0edaa; border-radius: 7px; border-bottom: 0; margin-bottom: 6px; padding-block: 12px; }
.news-row:first-child,.news-row:last-child { border-radius: 7px; }
#services { background-color: transparent; background-image: none; }
.service-tile { background: #ffffffb3; padding: 26px 8px 20px; border-radius: 23px; }
.service-tile .line-icon { width: 60px; height: 60px; }
.service-bottom { margin-top: 32px; }
.editorial-card { border-radius: 16px; box-shadow: 0 4px 15px #4b365610; }
.column-card { box-shadow: none; }

/* 全寬 FAQ：Bootstrap 雙欄，AOS 與卡片互動分層。 */
.faq-contact-strip { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--bs-border-color); }
.faq-questions .faq-question-card {
  border: 1px solid #e4d9e9;
  border-radius: 20px;
  background: #ffffffb8;
  box-shadow: 0 5px 18px #392b4305;
  transition: transform .2s ease, border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.faq-question-card:hover { transform: translateY(-3px); border-color: #bda4ca; box-shadow: 0 10px 26px #60486d12; }
.faq-question-card:has(.accordion-button:not(.collapsed)) { background: #f2edf5; border-color: #b69ac5; box-shadow: 0 10px 26px #60486d12; }
.faq-questions .accordion-button { gap: 20px; padding: 22px 24px; border-radius: 20px; background: transparent; color: var(--clinic-ink); font-size: 19px; font-weight: 600; line-height: 1.6; box-shadow: none; }
.faq-questions .accordion-button:not(.collapsed) { color: var(--clinic-deep); background: transparent; box-shadow: none; }
.faq-number { display: grid; place-items: center; flex: 0 0 48px; width: 48px; height: 48px; border-radius: 14px; background: #eee7f3; color: #9c80ac; font-size: 24px; font-weight: 800; line-height: 1; transition: color .2s ease, background-color .2s ease; }
.faq-questions .accordion-button:not(.collapsed) .faq-number { background: var(--clinic-purple); color: #fff; }
.faq-questions .accordion-button:after { flex-shrink: 0; width: 30px; height: 30px; background-size: 16px; background-position: center; border: 1px solid #d8c9e1; border-radius: 50%; background-color: #fff8; }
.faq-questions .accordion-body { padding: 0 24px 24px 92px; font-size: 17px; line-height: 1.9; }

@media (max-width: 575.98px) {
  .faq-questions .accordion-button { gap: 12px; padding: 18px 16px; font-size: 17px; }
  .faq-number { flex-basis: 36px; width: 36px; height: 40px; font-size: 20px; border-radius: 11px; }
  .faq-questions .accordion-button:after { width: 25px; height: 25px; }
  .faq-questions .accordion-body { padding: 0 20px 22px; font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .faq-question-card, .faq-number { transition: none; }
  .faq-question-card:hover { transform: none; }
}
#faq { position: relative; isolation: isolate; }
#faq:after { content: ''; position: absolute; z-index: -1; width: 160px; height: 270px; right: 0; bottom: -30px; background: url('../images/decoration/botanical-branch.png') center/contain no-repeat; opacity: .15; pointer-events: none; }

.contact-section { isolation: isolate; }
.contact-section:before { content: ''; position: absolute; z-index: -1; inset: 0; background: url('../images/decoration/landscape.png') center bottom/100% auto no-repeat; opacity: .65; pointer-events: none; }
.contact-panel:before { content: ''; position: absolute; width: 170px; height: 220px; bottom: -100px; left: 45px; background: url('../images/decoration/botanical-branch.png') center/contain no-repeat; opacity: .12; pointer-events: none; }
.faq-answer-link { display: inline-flex; align-items: center; gap: 14px; min-height: 44px; max-width: 100%; padding: 4px 0; color: var(--clinic-purple); font-size: 18px; font-weight: 700; line-height: 1.6; text-decoration: underline; text-underline-offset: 5px; }
.site-footer-notice { display: block; max-width: 980px; margin: 10px auto 0; color: #e0d5e5; font-size: 14px; line-height: 1.8; letter-spacing: .04em; text-wrap: pretty; }
.site-footer-notice strong { font-weight: 600; }
.contact-line-qrcode { display: grid; justify-items: center; gap: 10px; width: 180px; max-width: 100%; margin: 0; color: #f7f0f9; font-size: 14px; line-height: 1.7; text-align: center; }
.contact-line-qrcode img { display: block; width: 180px; max-width: 100%; height: auto; padding: 10px; border-radius: 12px; background: #fff; }
.contact-line-qrcode:hover, .contact-line-qrcode:focus-visible { color: #fff; }
.contact-line-qrcode:hover > span, .contact-line-qrcode:focus-visible > span { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width:767.98px) { .contact-line-qrcode { margin: 12px auto 0; } }
.contact-panel .row { position: relative; z-index: 1; }
@media(min-width:768px) {
  .hero-media-column .hero-art-depth { position: absolute; left: -80px; top: -32px; width: calc(50vw + 80px); height: calc(100% + 64px); padding-bottom: 0; mask-image: linear-gradient(90deg,transparent 0%,#000 25%); }
  .hero-media-column .hero-art.hero-photo { max-width: none; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: center 42%; border-radius: 0; box-shadow: none; margin: 0; }
  .hero-carousel-toolbar { left: calc(50% - min(25vw,310px)); }
}

/* 輕量飄浮裝飾：內層動畫，與 AOS／視差的 transform 分開。 */
.ambient-layer { position: absolute; inset: 0; overflow: hidden; pointer-events: none; user-select: none; z-index: 0; }
.hero > .ambient-layer { z-index: 3; }
.ambient-slot { position: absolute; display: block; width: var(--float-size,40px); height: var(--float-size,40px); opacity: var(--float-opacity,.4); }
.ambient-piece { display: block; width: 100%; height: 100%; animation: ambient-drift var(--float-duration,15s) ease-in-out var(--float-delay,0s) infinite alternate; animation-play-state: paused; transform: rotate(var(--float-turn,0deg)); }
.float-in-view .ambient-piece { animation-play-state: running; }
.ambient-paused .ambient-piece { animation-play-state: paused; }
.ambient-leaf { background: url('../images/decoration/floating-leaf.png') center/contain no-repeat; }
.ambient-dot { border-radius: 50%; background: #c3a16a; box-shadow: 0 0 12px #c3a16a22; }
.ambient-orb { border-radius: 50%; background: radial-gradient(circle,#c8acd44d,transparent 70%); animation-name: ambient-breathe; }
.float-hero-leaf { left: 4%; top: 61%; --float-size: 62px; --float-opacity: .52; --float-turn: -23deg; --float-duration: 17s; --float-delay: -5s; }
.float-hero-leaf-small { left: 44%; top: 10%; --float-size: 34px; --float-opacity: .38; --float-turn: 28deg; --float-duration: 13s; --float-delay: -7s; }
.float-hero-dot { left: 12%; top: 17%; --float-size: 6px; --float-opacity: .6; --float-duration: 12s; --float-delay: -3s; }
.float-hero-dot-small { left: 48%; bottom: 28%; --float-size: 4px; --float-opacity: .5; --float-duration: 16s; --float-delay: -10s; }
.float-hero-orb { left: 1%; top: 18%; --float-size: 150px; --float-opacity: .5; --float-duration: 19s; --float-delay: -8s; }
.float-edge-leaf { left: 1.4%; top: 47%; --float-size: 45px; --float-opacity: .42; --float-turn: 20deg; --float-duration: 18s; --float-delay: -6s; }
.float-edge-dot { right: 3.5%; top: 24%; --float-size: 5px; --float-opacity: .5; --float-duration: 14s; --float-delay: -4s; }
#columns .float-edge-leaf { left: auto; right: 2%; top: 65%; --float-turn: -30deg; --float-delay: -10s; }
#columns .float-edge-dot { right: auto; left: 4%; top: 16%; }
#faq > .container { position: relative; z-index: 1; }
#faq .float-edge-leaf { left: 1%; top: 60%; --float-size: 38px; }
#faq .float-edge-dot { top: 19%; }
@keyframes ambient-drift {
  from { transform: translate3d(0,0,0) rotate(var(--float-turn,0deg)); }
  to { transform: translate3d(8px,-16px,0) rotate(calc(var(--float-turn,0deg) + 12deg)); }
}
@keyframes ambient-breathe {
  from { transform: translate3d(0,0,0) scale(.94); opacity: .65; }
  to { transform: translate3d(5px,-9px,0) scale(1.08); opacity: 1; }
}
@media(prefers-reduced-motion:reduce) {
  .ambient-piece { animation: none !important; transform: rotate(var(--float-turn,0deg)); }
}

/* 主視覺與首頁內容間的波浪銜接。 */
/* 波浪使用原 PNG 輪廓遮罩，填入與頁面相同的底色及紙紋。 */
.hero-wave { display: block; position: absolute; bottom: -1px; left: 0; width: 100%; height: 65px; background-color: var(--clinic-paper); background-image: var(--clinic-paper-texture); background-size: 360px 360px; background-repeat: repeat; -webkit-mask: url('../images/decoration/hero-wave.png') center / 100% 100% no-repeat; mask: url('../images/decoration/hero-wave.png') center / 100% 100% no-repeat; z-index: 3; pointer-events: none; }

/* PNG 圖示，覆蓋 Bootstrap 的預設向量背景。 */
.navbar-toggler-icon { background-image: url("../images/icons/menu.png"); }
.btn-close { background-image: url("../images/icons/close.png"); }
.accordion-button { --bs-accordion-btn-icon: url("../images/icons/chevron-down.png"); --bs-accordion-btn-active-icon: url("../images/icons/chevron-down.png"); }

.ambient-leaf { background-size: contain; }

/* 首頁院長介紹：外層 col-12，照片與文字由 Bootstrap 欄位分配。 */
.doctor-home { padding: 36px; border: 1px solid #e6dce9; border-radius: 22px; background: #fffdfb; }
.doctor-home-portrait { margin: 0; }
.doctor-home-portrait img { display: block; width: 100%; height: auto; border-radius: 18px; }
.doctor-home-portrait figcaption { font-size: 13px; color: var(--clinic-muted); margin-top: 12px; text-align: center; }
/* 首頁醫師照片：直排字、單側大圓角與姓名落款。 */
.doctor-editorial-portrait { position: relative; padding: 0 0 62px 42px; }
.doctor-portrait-frame { overflow: hidden; border-radius: 0 70px 0 0; background: #e6e5e0; }
.doctor-editorial-portrait .doctor-portrait-frame img { width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; object-position: 52% 24%; border-radius: 0; }
.doctor-portrait-word { position: absolute; top: 0; left: -8px; writing-mode: vertical-rl; transform: rotate(180deg); font-family: Georgia, 'Times New Roman', serif; font-size: 58px; font-weight: 400; line-height: 1; letter-spacing: -.05em; color: #ad9371; pointer-events: none; }
.doctor-editorial-portrait figcaption { position: absolute; bottom: 0; left: 0; margin: 0; text-align: left; }
.doctor-portrait-name { display: block; font-family: var(--clinic-font-sans); font-size: 30px; font-weight: 700; letter-spacing: .16em; line-height: 1.4; color: var(--clinic-purple); }
.doctor-portrait-role { display: block; margin-top: 4px; font-size: 14px; letter-spacing: .04em; color: var(--clinic-muted); }
@media (min-width: 992px) {
  .doctor-editorial-portrait { padding-left: 52px; padding-bottom: 78px; }
  .doctor-portrait-word { font-size: 74px; left: -10px; }
  .doctor-portrait-frame { border-top-right-radius: 90px; }
  .doctor-portrait-name { font-size: 40px; }
  .doctor-portrait-role { font-size: 16px; }
}
.doctor-home h2 { font-size: 18px; font-weight: 900; color: var(--clinic-purple); margin: 0 0 10px; letter-spacing: .08em; }
.doctor-home h3 { font-size: 32px; font-weight: 700; color: var(--clinic-deep); margin: 0; }
.doctor-home h3 span { font-size: 17px; font-weight: 500; margin-left: 8px; white-space: nowrap; }
.doctor-home { position: relative; }
.doctor-home-experience {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 230px;
  min-height: 56px;
  padding: 10px 16px 10px 24px;
  border-right: 3px solid #d8c8ae;
  background: #e8dfee;
  color: #70557e;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 10px 50%);
}
.doctor-experience-years { font-size: 32px; font-weight: 800; line-height: 1.15; letter-spacing: -.03em; color: #70557e; white-space: nowrap; }
.doctor-experience-years > span { font-size: 18px; vertical-align: top; margin-left: 2px; }
.doctor-experience-caption { font-size: 13px; font-weight: 600; letter-spacing: .04em; white-space: nowrap; }
@media (min-width: 992px) {
  .doctor-home-experience { position: absolute; right: 0; top: 42px; }
  .doctor-home-heading { padding-right: 210px; }
}
@media (max-width: 991.98px) {
  .doctor-home-experience { width: 220px; margin-top: 8px; }
}
.doctor-home-lead { margin: 18px 0 10px; color: var(--clinic-purple); font-size: 19px; font-weight: 600; }
.doctor-home-intro { color: var(--clinic-muted); font-size: 17px; margin-bottom: 20px; }
.doctor-home h4 { color: var(--clinic-deep); font-size: 17px; font-weight: 700; margin: 0 0 9px; }
.doctor-home-details ul { padding-left: 20px; font-size: 16px; color: var(--clinic-muted); line-height: 1.9; margin: 0; }
.doctor-home-philosophy { font-size: 16px; color: var(--clinic-muted); margin-top: 12px; margin-bottom: 0; }
.doctor-home .more-link { display: inline-block; margin-top: 22px; font-size: 16px; font-weight: 600; }

/* 診療資訊：聯絡資料與門診時段分段對齊。 */
.clinic-info-dialog { --bs-modal-width: 640px; }
.clinic-info-body h6 { font-size: 19px; font-weight: 700; color: var(--clinic-deep); margin: 0 0 16px; }
.clinic-info-details { margin-bottom: 28px; }
.clinic-info-details > .row + .row { margin-top: 12px; }
.clinic-info-body dt { font-size: 16px; font-weight: 600; color: var(--clinic-muted); }
.clinic-info-body dd { margin-bottom: 0; font-size: 17px; overflow-wrap: anywhere; }
.clinic-info-hours { margin-bottom: 18px; }
.clinic-info-hours > .row { padding: 14px 16px; margin-inline: 0; border-radius: 12px; background: #f2edf5; }
.clinic-info-hours > .row + .row { margin-top: 10px; }
.clinic-info-hours dt { color: var(--clinic-purple); }
.clinic-info-hours dd > div { display: flex; gap: 20px; }
.clinic-info-hours dd span { color: var(--clinic-muted); font-size: 16px; }
.clinic-info-hours time { white-space: nowrap; font-variant-numeric: tabular-nums; }
.clinic-info-reminder { font-size: 15px; color: var(--clinic-purple); margin-bottom: 6px; }
.clinic-info-source { font-size: 13px; color: var(--clinic-muted); margin-bottom: 0; }
@media (max-width: 575.98px) {
  .clinic-info-body { padding: 20px; }
  .clinic-info-hours > .row { padding: 12px 10px; }
}


/* 大面積淡色色塊：純色、不含線框，保留草本裝飾。 */
#about, #news, #services { position: relative; isolation: isolate; }
#about > .container, #news > .container, #services > .container, .contact-section > .container { position: relative; z-index: 1; }
#about:before, #news:before, #services:before, #columns:after, #faq:before, .contact-section:after, #cases:before {
  content: '';
  position: absolute;
  z-index: 0;
  pointer-events: none;
  opacity: .6;
  border: 0;
  outline: 0;
  box-shadow: none;
}
#about:before { inset: 16% 0 10%; background: #f3e6dd; border-radius: 0 0 180px 0; }
#news:before { width: 220px; height: 140px; right: 10px; bottom: 15px; background: #e3edf2; clip-path: polygon(28% 0, 100% 0, 72% 100%, 0 100%); }
#cases:before { inset: 21% 0 10%; background: #eee7f2; clip-path: polygon(0 12%, 74% 0, 100% 17%, 100% 83%, 24% 100%, 0 79%); }
#services:before { width: 210px; height: 210px; left: 14px; bottom: 6px; border-radius: 50%; clip-path: inset(0 50% 0 0); background: #e5eee5; }
#columns:after { width: 170px; height: 170px; right: 40px; top: 40px; border-radius: 18px; transform: rotate(35deg); background: #f4eddb; }
#faq:before { inset: 16% 0 8%; background: #f2e1e7; clip-path: polygon(0 0, 40% 0, 40% 12%, 72% 12%, 72% 25%, 100% 25%, 100% 100%, 0 100%); }
.contact-section:after { width: 200px; height: 190px; top: 26px; right: 22px; border-radius: 85% 0 0 0; background: #e5e8f3; }
@media (max-width: 767.98px) {
  #about:before, #news:before, #services:before, #columns:after, #faq:before, .contact-section:after { opacity: .35; }
  #about:before { inset: 12% 0 8%; border-radius: 0 0 80px 0; }
  #news:before { width: 120px; height: 100px; right: 4px; }
  #cases:before { inset: 24% 0 12%; clip-path: polygon(0 5%, 100% 0, 100% 95%, 0 100%); }
  #services:before { width: 110px; height: 110px; left: 4px; }
  #columns:after { width: 80px; height: 80px; right: 18px; top: 20px; border-radius: 12px; }
  #faq:before { inset: 12% 0 8%; }
  .contact-section:after { width: 100px; height: 110px; right: 8px; top: 16px; }
}

/* 移除點擊後的焦點外框與 Bootstrap 焦點光圈。 */
:focus, :focus-visible { outline: none !important; }
a:focus, button:focus, [tabindex]:focus { box-shadow: none !important; }

/* 醫療專欄沿用共用滑動視窗與 Bootstrap 欄寬。 */
.column-slider .column-card { height: 100%; }
.column-slider .column-card, .column-slider .column-card button { cursor: grab; }
.column-slider.is-dragging .column-card, .column-slider.is-dragging .column-card button { cursor: grabbing; }
.column-slider img { -webkit-user-drag: none; user-select: none; }

/* 電腦版字級：內文 18px，H3 22px；手機維持獨立設定。 */
@media (min-width: 992px) {
  body :is(main, .site-footer-wrap, .modal) :is(p, li, dt, dd, figcaption, table, th, td, .btn, .more-link, .eyebrow, .hero-tag, .hero-benefits, .hero-campaign-note, .news-date, .news-label, .news-title, .case-section-label, .case-period, .case-slider-hint, .case-slider-status, .column-category, .service-tile, .location-address, .contact-en, .contact-info, .contact-info strong, .schedule-time, .preview-mark, .doctor-profile-credentials, .doctor-home h3 span, .doctor-experience-caption, .clinic-info-hours dd span, .accordion-body, .modal-body, .schedule td span) { font-size: 18px; }
  body :is(main, .modal) h3, .faq-questions .accordion-button { font-size: 22px; }
  .site-footer, .floating-contact-label, .case-weight-stats dd span { font-size: 18px; }
  .doctor-home-experience { width: 290px; }
  .doctor-home-heading { padding-right: 270px; }
}

/* H2 標題字級：主區塊加大，資訊卡保留適合欄寬的層級。 */
.section-heading h2 { font-size: 34px; }
.entry-card h2 { font-size: 28px; }
.doctor-home h2 { font-size: 24px; }
.schedule-title { font-size: 22px; }
/* 首頁案例列表入口與卡片連結。 */
#cases .section-heading > .col-auto { display: flex; align-items: center; gap: 18px; }
.case-slider .case-card a { cursor: grab; }
.case-slider.is-dragging .case-card a { cursor: grabbing; }

/* 首頁與列表共用案例閱讀入口。 */
/* 首頁專欄閱讀入口：固定深紫三角，沿用卡片圓角。 */
#columnSlider .column-card { position: relative; isolation: isolate; display: flex; flex-direction: column; border-radius: 20px; transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
#columnSlider .editorial-body { flex: 1; padding-bottom: 108px; }
.column-page-corner { position: absolute; bottom: 0; right: 0; z-index: 2; width: 164px; height: 164px; color: #fffdfb; }
.column-corner-reveal { position: absolute; inset: 0; border-radius: 0 0 20px 0; background: #60486d; clip-path: polygon(100% 0,100% 100%,0 100%); transition: background-color .25s ease; pointer-events: none; }
.column-corner-label { position: absolute; z-index: 1; bottom: 18px; right: 18px; font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; }
.column-corner-arrow { position: absolute; z-index: 1; right: 20px; bottom: 54px; font-size: 26px; line-height: 1; transition: transform .25s ease; }
.column-page-corner:hover { color: #fffdfb; }
.column-page-corner:focus-visible { outline: none; }
@media (hover: hover) and (pointer: fine) {
  #columnSlider:not(.is-dragging) .column-card:hover { transform: translateY(-5px); border-color: #bca1cb; box-shadow: 0 18px 30px #60486d22,0 4px 8px #60486d12; }
  #columnSlider:not(.is-dragging) .column-card:hover .column-corner-reveal { background: #70547f; }
  #columnSlider:not(.is-dragging) .column-card:hover .column-corner-arrow { transform: translate(3px,-3px); }
}
#columnSlider .column-card:focus-within .column-corner-reveal { background: #70547f; }
#columnSlider .column-card:focus-within .column-corner-arrow { transform: translate(3px,-3px); }
#columnSlider.is-dragging .column-card { transform: none; }
@media (max-width: 767.98px) {
  .column-page-corner { width: 144px; height: 144px; }
}
@media (prefers-reduced-motion: reduce) {
  #columnSlider .column-card,.column-corner-reveal,.column-corner-arrow { transition: none; }
  #columnSlider:not(.is-dragging) .column-card:hover,
  #columnSlider:not(.is-dragging) .column-card:hover .column-corner-arrow,
  #columnSlider .column-card:focus-within .column-corner-arrow { transform: none; }
}
.case-card-read { display: flex; align-items: center; gap: 18px; width: 100%; margin-top: auto; padding-top: 18px; color: #80648d; font-size: 18px; }
.case-card-read-line { flex: 1; min-width: 24px; height: 1px; background: #d2bedc; transform-origin: left center; transition: transform .35s ease, background-color .35s ease; }
.case-card-read-label { display: inline-flex; align-items: center; gap: 9px; flex-shrink: 0; white-space: nowrap; transition: transform .35s ease, color .35s ease; }
.case-card-read-arrow { display: inline-block; transition: transform .35s ease; }
/* 首頁案例的立體回饋；拖曳時停用位移，保持操作穩定。 */
#caseSlider .case-slider-track { padding-block: 16px 30px; }
#caseSlider .case-card { display: flex; flex-direction: column; border-color: #ded1e5; box-shadow: 0 6px 16px #60486d0e; transform-origin: center center; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
#caseSlider .editorial-body { display: flex; flex-direction: column; flex: 1; }
#caseSlider .case-period { align-self: flex-start; }
#caseSlider .case-card img { transition: transform .4s ease; }
#caseSlider .case-card-read:hover { color: var(--clinic-purple); }
@media (hover: hover) and (pointer: fine) {
  #caseSlider:not(.is-dragging) .case-card:hover { transform: perspective(900px) translateY(-7px) rotateX(2deg) rotateY(-1deg); border-color: #b797c8; box-shadow: 0 18px 30px #60486d28, 0 5px 10px #60486d10; }
  #caseSlider:not(.is-dragging) .case-card:hover img { transform: scale(1.04); }
  #caseSlider:not(.is-dragging) .case-card:hover .case-card-read-line { transform: scaleX(.78); background: #9670ac; }
  #caseSlider:not(.is-dragging) .case-card:hover .case-card-read-label { transform: translateX(4px); color: var(--clinic-purple); }
  #caseSlider:not(.is-dragging) .case-card:hover .case-card-read-arrow { transform: translateX(4px); }
}
#caseSlider.is-dragging .case-card, #caseSlider.is-dragging .case-card img { transform: none; }
#caseSlider .case-card:focus-within { border-color: #b797c8; box-shadow: 0 12px 24px #60486d20; }
#caseSlider .case-card-read:focus-visible .case-card-read-line { transform: scaleX(.78); background: #9670ac; }
#caseSlider .case-card-read:focus-visible .case-card-read-label, #caseSlider .case-card-read:focus-visible .case-card-read-arrow { transform: translateX(4px); }
@media (prefers-reduced-motion: reduce) {
  .case-card-read-line, .case-card-read-label, .case-card-read-arrow, #caseSlider .case-card, #caseSlider .case-card img { transition: none; }
  #caseSlider:not(.is-dragging) .case-card:hover, #caseSlider:not(.is-dragging) .case-card:hover img,
  #caseSlider:not(.is-dragging) .case-card:hover .case-card-read-line, #caseSlider:not(.is-dragging) .case-card:hover .case-card-read-label, #caseSlider:not(.is-dragging) .case-card:hover .case-card-read-arrow,
  #caseSlider .case-card-read:focus-visible .case-card-read-line, #caseSlider .case-card-read:focus-visible .case-card-read-label, #caseSlider .case-card-read:focus-visible .case-card-read-arrow { transform: none; }
}

/* 三九貼公告按梯次分組，日期區間保留完整年份。 */
.sanjiu-schedule { margin: 0; display: grid; gap: 12px; }
.sanjiu-schedule > div { display: grid; grid-template-columns: 48px 1fr; gap: 14px; align-items: center; padding: 18px 16px; border-radius: 14px; background: #f2edf5; }
.sanjiu-schedule dt { color: var(--clinic-purple); font-size: 20px; font-weight: 700; }
.sanjiu-schedule dd { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: 0; font-size: 18px; }
.sanjiu-schedule time { white-space: nowrap; font-variant-numeric: tabular-nums; }
.sanjiu-schedule dd > span { color: var(--clinic-muted); }
@media (max-width: 575.98px) {
  .sanjiu-schedule > div { grid-template-columns: 40px 1fr; gap: 10px; padding: 14px 12px; }
  .sanjiu-schedule dd { flex-direction: column; align-items: flex-start; gap: 2px; }
}

/* 院長介紹卡的背景裝飾：淡色塊與留在邊緣的細線。 */
.doctor-home { isolation: isolate; background-image: url('../images/decoration/paper-grain.png'); background-size: 360px; }
.doctor-card-art { position: absolute; inset: 0; z-index: -1; overflow: hidden; border-radius: inherit; pointer-events: none; }
.doctor-card-art > span { position: absolute; display: block; }
.doctor-card-lilac { left: -78px; top: -68px; width: 39%; height: calc(100% + 110px); background: #f0e9f4; border-radius: 0 210px 230px 0; transform: rotate(-7deg); }
.doctor-card-sand { right: -84px; bottom: -64px; width: 360px; height: 190px; background: #f5eee2; border-radius: 110px 0 0 0; transform: rotate(-14deg); }
.doctor-card-arcs { right: -110px; top: -250px; width: 440px; height: 440px; border: 1px solid #c5b39566; border-radius: 50%; }
.doctor-card-arcs::after { content: ''; position: absolute; inset: 17px; border: 1px solid #c5b39545; border-radius: 50%; }
.doctor-card-line { left: 42px; bottom: 25px; width: 210px; height: 1px; background: #b99d7570; transform: rotate(-8deg); transform-origin: left center; }
@media (max-width: 991.98px) {
  .doctor-card-lilac { width: 42%; left: -65px; border-radius: 0 150px 170px 0; }
  .doctor-card-arcs { right: -140px; top: -250px; }
}
@media (max-width: 767.98px) {
  .doctor-card-lilac { width: 260px; height: 470px; left: -95px; top: -40px; border-radius: 0 140px 150px 0; }
  .doctor-card-sand { width: 220px; height: 150px; right: -95px; bottom: -58px; }
  .doctor-card-arcs { width: 270px; height: 270px; right: -155px; top: -180px; }
  .doctor-card-line { left: 24px; bottom: 14px; width: 105px; }
}
