/* Final responsive shell. */
html,body{max-width:100%;overflow-x:clip}
@media(max-width:900px){.header{position:sticky!important;top:0;z-index:100}.floating-actions{left:auto!important;right:10px!important;bottom:11px!important;display:flex!important;flex-direction:column!important;gap:6px!important}.floating-actions a,.floating-actions .booking{display:grid!important;width:42px!important;height:42px!important;padding:0!important;border-radius:50%!important}.floating-actions svg{display:block!important;width:18px!important;height:18px!important}.floating-actions .zalo-logo{width:27px!important;height:27px!important}.chat-launch{right:10px!important;bottom:174px!important}.chat-panel{right:12px!important;bottom:228px!important}}

/* Service menu: root > category tab > service list.  Milky transparency keeps it readable. */
.service-menu-panel{width:min(760px,calc(100vw - 32px));padding:0;background:rgba(250,249,246,.94);backdrop-filter:blur(18px)}.service-menu-groups{position:relative;display:flex;align-items:stretch;gap:0;overflow-x:auto;scrollbar-width:none}.service-menu-groups::-webkit-scrollbar{display:none}.service-category-nav{position:static;flex:none;padding:0}.service-category-nav>summary{height:52px;padding:0 16px;border-bottom:2px solid transparent;gap:6px;white-space:nowrap;color:var(--pearl-ink)}.service-category-nav>summary svg{width:12px}.service-category-nav[open]>summary{border-color:#287e86;color:#176b72}.service-category-nav>ul{left:0;right:0;top:100%;display:block;width:auto;max-height:min(470px,calc(100vh - 150px));margin:0;padding:14px 22px 16px;border:1px solid rgba(6,42,66,.12);border-top:0;background:rgba(250,249,246,.99);box-shadow:0 22px 42px rgba(6,42,66,.15);overflow-y:auto;animation:menu-drop .25s ease-out both}.header nav .service-category-nav a{padding:9px 0;font-size:14px}.service-category-nav:not([open])>ul{display:none}@keyframes menu-drop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){.service-menu-panel{left:0;width:min(760px,calc(100vw - 32px));transform:none}.service-category-nav>summary{height:49px;padding:0 14px}.service-category-nav>ul{position:absolute;left:0;right:0;top:100%;width:auto;margin:0;padding:12px 20px;box-shadow:0 18px 35px rgba(6,42,66,.15)}}@media(max-width:600px){.service-menu-panel{width:calc(100vw - 24px)}.service-category-nav>summary{padding:0 12px;font-size:13px}.service-category-nav>ul{max-height:min(440px,calc(100vh - 132px));padding:11px 18px}.header nav .service-category-nav a{padding:8px 0;font-size:13px}}

/* Six trust cards are deliberately a clean 2 x 3 grid at every viewport. */
.trust-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.trust-list article,.trust-list article:nth-child(2),.trust-list article:nth-child(3),.trust-list article:nth-child(4),.trust-list article:nth-child(5),.trust-list article:nth-child(6){min-height:188px;transform:none}.trust-list article.motion-item{transform:translateX(var(--trust-entry,-18px)) scale(.96)}.trust-list article:nth-child(even).motion-item{--trust-entry:18px}.trust-list article.motion-item.is-visible,.trust-list article.motion-item.is-visible:nth-child(3),.trust-list article.motion-item.is-visible:nth-child(5){transform:translateX(0) scale(1)}.trust-list article.motion-item.is-visible:hover{transform:translateY(-5px) scale(1)}.trust-icon{overflow:hidden}.trust-icon:after{position:absolute;inset:5px;border:1px solid rgba(119,171,176,.32);border-radius:10px;content:"";opacity:0}.trust-list article.is-visible .trust-icon:after{animation:icon-pulse 2.8s ease-in-out infinite}.trust-list article.is-visible .trust-icon svg{animation:icon-draw .7s ease-out both}@keyframes icon-pulse{0%,100%{transform:scale(.84);opacity:0}40%{opacity:.7}70%{transform:scale(1.16);opacity:0}}@keyframes icon-draw{from{opacity:.25;transform:scale(.72)}to{opacity:1;transform:scale(1)}}
@media(max-width:600px){.trust-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.trust-list article,.trust-list article:nth-child(2),.trust-list article:nth-child(3),.trust-list article:nth-child(4),.trust-list article:nth-child(5),.trust-list article:nth-child(6){min-height:196px;padding:17px 14px}.trust-list h3{font-size:13px}.trust-list p{font-size:11px}}
@media(prefers-reduced-motion:reduce){.trust-list article.motion-item,.trust-list article.motion-item.is-visible{opacity:1;transform:none}.trust-list article.is-visible .trust-icon:after,.trust-list article.is-visible .trust-icon svg{animation:none}}

/* A vertical accordion is faster to scan and easier to operate than horizontally scrolling tabs. */
.service-menu-panel{width:min(420px,calc(100vw - 32px));padding:8px 16px 12px}.service-menu-groups{display:grid;overflow:visible}.service-category-nav{position:static;border-bottom:1px solid var(--pearl-line)}.service-category-nav:last-child{border-bottom:0}.service-category-nav>summary{height:auto;padding:13px 2px;border:0;font-size:14px}.service-category-nav[open]>summary{color:#176b72}.service-category-nav>ul,.service-category-nav[open]>ul{position:static;display:grid;width:auto;max-height:0;margin:0;padding:0 0 0 13px;border:0;background:transparent;box-shadow:none;overflow:hidden;opacity:0;animation:none}.service-category-nav[open]>ul{max-height:520px;padding:0 0 11px 13px;opacity:1;transition:max-height .32s ease,opacity .2s ease}.header nav .service-category-nav a{padding:7px 0;font-size:13px}.service-category-nav>summary svg{transform:rotate(90deg)}.service-category-nav[open]>summary svg{transform:rotate(180deg)}
@media(max-width:900px){.service-menu-panel{position:static;left:auto;width:auto;margin:0;padding:4px 16px 12px;transform:none}.service-category-nav>ul,.service-category-nav[open]>ul{position:static;left:auto;right:auto;top:auto;margin:0;padding-left:13px}.service-category-nav[open]>ul{padding-bottom:11px}.floating-actions{right:12px!important;bottom:16px!important;gap:8px!important}.chat-launch{right:12px!important;bottom:166px!important}.chat-panel{right:12px!important;bottom:220px!important}}
@media(max-width:600px){.service-menu-panel{width:auto;padding-left:14px;padding-right:14px}.service-category-nav>summary{font-size:13px}.header nav .service-category-nav a{font-size:13px}}

/* The chat launcher is part of the same CTA rhythm; mobile menus scroll inside their own sheet. */
@media(max-width:900px){.floating-actions a,.floating-actions .booking,.chat-launch{width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important}.header nav{max-height:calc(100dvh - 68px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}.service-nav[open] .service-menu-panel{max-height:calc(100dvh - 136px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.service-category-nav[open]>ul{max-height:none!important}}

/* The medical thread starts with technology, then is echoed by services and doctors. */
.equipment-grid{position:relative;padding-top:22px}.equipment-thread{position:absolute;z-index:0;left:5%;top:0;width:90%;height:112px;overflow:visible;pointer-events:none}.equipment-thread path{fill:none;stroke:rgba(119,171,176,.7);stroke-width:1.3;stroke-dasharray:1200;stroke-dashoffset:1200}.equipment-grid.thread-active .equipment-thread path{animation:thread-draw 1.8s cubic-bezier(.2,.8,.2,1) forwards}.equipment-card{position:relative;z-index:1}.equipment-node{position:absolute;z-index:4;top:-5px;left:50%;width:10px;height:10px;border-radius:50%;background:var(--pearl-ivory);box-shadow:0 0 0 5px rgba(119,171,176,.16),0 0 16px rgba(119,171,176,.75);opacity:0;transform:translateX(-50%) scale(.4)}.equipment-card.is-visible .equipment-node{animation:node-arrive .7s cubic-bezier(.2,.8,.2,1) both}.equipment-card:nth-child(3) .equipment-node{animation-delay:.12s}.equipment-card:nth-child(4) .equipment-node{animation-delay:.24s}.equipment-card:nth-child(5) .equipment-node{animation-delay:.36s}@keyframes thread-draw{to{stroke-dashoffset:0}}@keyframes node-arrive{0%{opacity:0;transform:translateX(-50%) scale(.2)}65%{opacity:1;transform:translateX(-50%) scale(1.3)}100%{opacity:1;transform:translateX(-50%) scale(1)}}
.doctor-profile.is-visible .doctor-photo{animation:doctor-mask-reveal .82s cubic-bezier(.2,.8,.2,1) both}.doctor-profile.is-visible .doctor-photo>span{animation:doctor-monogram .78s cubic-bezier(.2,.8,.2,1) both}.doctor-profile.is-visible .doctor-content{animation:doctor-copy-in .72s .15s cubic-bezier(.2,.8,.2,1) both}@keyframes doctor-mask-reveal{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0)}}@keyframes doctor-monogram{from{transform:scale(.9);opacity:.2}to{transform:scale(1);opacity:1}}
@media(max-width:720px){.equipment-grid{padding:28px 0 0}.equipment-grid:before{position:absolute;left:20px;top:14px;bottom:14px;width:1px;background:linear-gradient(var(--pearl-teal),rgba(119,171,176,.12));content:""}.equipment-thread{display:none}.equipment-card{transform:translateX(var(--equipment-shift,0))}.equipment-card:nth-of-type(odd){--equipment-shift:0}.equipment-card:nth-of-type(even){--equipment-shift:12px}.equipment-card.is-visible{transform:translateX(0)}.equipment-node{top:-4px;left:24px}.service-list{position:relative;border:0}.service-list:before{position:absolute;left:0;top:28px;bottom:28px;width:1px;background:linear-gradient(var(--pearl-teal),rgba(119,171,176,.15));content:""}.service-item{padding-left:27px!important;border-bottom:1px solid var(--pearl-line)!important}.service-item:after{position:absolute;left:-4px;top:35px;width:9px;height:9px;border:2px solid var(--pearl-teal);border-radius:50%;background:var(--pearl-white);content:""}.service-item.is-visible .service-number{color:#1c9fad}.service-item.is-visible h3{animation:service-title-in .5s .1s both}@keyframes service-title-in{from{opacity:.2;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}}
@media(prefers-reduced-motion:reduce){.equipment-grid.thread-active .equipment-thread path,.equipment-card.is-visible .equipment-node,.doctor-profile.is-visible .doctor-photo,.doctor-profile.is-visible .doctor-photo>span,.doctor-profile.is-visible .doctor-content,.service-item.is-visible h3{animation:none}}
