/* Shared interaction language. Content and controls remain usable without JS. */
.refined-experience{--chapter-offset:182px}
.page-chapters{position:sticky;top:112px;z-index:20;background:#f7fafbee;border-block:1px solid #dce7ec;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.chapter-track{display:flex;align-items:center;gap:30px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
.chapter-track a{position:relative;display:flex;align-items:center;flex:0 0 auto;min-height:54px;padding:12px 0;color:#617984;font:500 12px/1.4 Arial,sans-serif;white-space:nowrap;transition:color .2s}
.chapter-track a::after{position:absolute;bottom:0;left:0;right:0;height:2px;content:'';background:#015b86;transform:scaleX(0);transform-origin:left;transition:transform .3s}
.chapter-track a:hover,.chapter-track a[aria-current]{color:#015b86}
.chapter-track a[aria-current]::after{transform:scaleX(1)}
.refined-experience [data-chapter]{scroll-margin-top:var(--chapter-offset)}
.refined-experience a:focus-visible,.refined-experience button:focus-visible,.refined-experience summary:focus-visible{outline:2px solid #137ca3;outline-offset:4px}
.refined-experience .programme-card,.refined-experience .service-card{transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s}
@media(hover:hover) and (pointer:fine){
.refined-experience .programme-card:hover,.refined-experience .service-card:hover{transform:translateY(-5px)}
.refined-experience .programme-image img,.refined-experience .service-card img,.refined-experience .experience-image img{transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.refined-experience .programme-card:hover img,.refined-experience .service-card:hover img,.refined-experience .experience-image:hover img{transform:scale(1.035)}
.refined-experience .text-link>span{display:inline-block;transition:transform .25s}
.refined-experience .text-link:hover>span{transform:translate(3px,-3px)}
}
.refined-experience .faq{transition:background .25s,border-color .25s}
.refined-experience .faq[open]{background:#f2f7fa;border-color:#b8d3e1}
.refined-experience .faq>summary{min-height:56px}
.refined-experience .faq[open]>:not(summary){animation:detail-enter .28s ease-out}
@keyframes detail-enter{from{opacity:.3;transform:translateY(-5px)}to{opacity:1;transform:none}}
.refined-experience .editorial-arrival{animation:editorial-enter .65s cubic-bezier(.2,.7,.3,1) both}
@keyframes editorial-enter{from{opacity:.25;transform:translateY(18px)}to{opacity:1;transform:none}}
.site-reading-progress{position:absolute;bottom:0;left:12px;right:12px;height:2px;pointer-events:none;overflow:hidden;border-radius:2px}
.site-reading-progress>i{display:block;width:100%;height:100%;background:#0879a7;transform:scaleX(0);transform-origin:left;opacity:.55}
@media(max-width:1100px){.page-chapters{top:92px}.refined-experience{--chapter-offset:158px}}
@media(max-width:640px){.page-chapters{top:84px}.chapter-track{gap:23px}.chapter-track a{min-height:48px;font-size:11px}.refined-experience{--chapter-offset:145px}}
@media(prefers-reduced-motion:reduce){.refined-experience *, .refined-experience *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Keep the phone header compact: the menu retains the contact action. */
@media(max-width:640px){.refined-experience .site-header .nav-contact{display:none}.refined-experience .site-header .brand{max-width:150px}}
