/* Progressive enhancement: content is visible without this script or motion support. */
.reading-progress{position:fixed;inset:0 0 auto;height:3px;z-index:1100;pointer-events:none;background:transparent}
.reading-progress>span{display:block;width:100%;height:100%;background:var(--brand);transform:scaleX(0);transform-origin:left;box-shadow:0 0 12px #29aae04a}
.scroll-top{position:fixed;right:28px;bottom:92px;width:48px;height:48px;display:grid;place-items:center;border:1px solid #ffffff65;border-radius:50%;background:var(--ink);color:white;z-index:80;box-shadow:0 6px 24px #152c3d26;opacity:0;visibility:hidden;translate:0 12px;transition:opacity .2s,translate .2s,visibility .2s}
.scroll-top.is-visible{opacity:1;visibility:visible;translate:0 0}
.scroll-top svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.scroll-top:hover{background:var(--blue)}
.floating-contact{position:fixed;right:24px;bottom:24px;width:56px;height:56px;display:grid;place-items:center;border:1px solid #ffffff80;border-radius:50%;background:#087eac;color:#fff;z-index:90;text-decoration:none;box-shadow:0 6px 24px #132c3d40;transition:background .2s,box-shadow .2s}
.floating-contact svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.floating-contact:hover{background:#056895;box-shadow:0 8px 28px #132c3d55}
.floating-contact:focus-visible{outline:3px solid #50c9f1;outline-offset:4px}
.floating-contact-label{position:absolute;right:calc(100% + 12px);padding:9px 13px;border:1px solid #ffffff50;border-radius:8px;background:#142d3d;color:white;white-space:nowrap;font-size:.8rem;line-height:1.3;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s,visibility .15s}
.floating-contact:is(:hover,:focus-visible) .floating-contact-label{opacity:1;visibility:visible}
.facts strong .counter-value{font:inherit;color:inherit;margin:0;display:inline-block;font-variant-numeric:tabular-nums}
.motion-sr{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.guide-toc a[aria-current=location],.service-categories a[aria-current=location]{color:var(--blue);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.guide-toc a[aria-current=location]{background:var(--pale);border-radius:3px}
.cursor-halo{position:fixed;top:0;left:0;width:0;height:0;z-index:1200;pointer-events:none;opacity:0;transition:opacity .12s}
.cursor-halo.is-visible{opacity:1}
.cursor-glyph{position:absolute;left:-16px;top:-16px;width:32px;height:32px;display:block;transition:transform .16s ease-out;filter:drop-shadow(0 0 1px #132b3d9c) drop-shadow(0 1px 2px #132b3d33)}
.cursor-glyph svg{width:100%;height:100%;display:block;overflow:visible;fill:#fff}
.cursor-orbit{transform-box:view-box;transform-origin:50% 50%;animation:ceva-cursor-chase 2.4s linear infinite;animation-play-state:paused}
.cursor-orbit path:first-child{fill-opacity:.88}
.cursor-orbit path:last-child{fill-opacity:.64}
.cursor-center{fill-opacity:.9}
.cursor-halo.is-visible .cursor-orbit{animation-play-state:running}
.cursor-halo.is-action .cursor-glyph{transform:scale(1.08)}
.cursor-halo.is-pressed .cursor-glyph{transform:scale(.92)}
@keyframes ceva-cursor-chase{to{transform:rotate(-360deg)}}
html.custom-pointer-mode body,html.custom-pointer-mode a,html.custom-pointer-mode button,html.custom-pointer-mode summary,html.custom-pointer-mode select,html.custom-pointer-mode [role=button]{cursor:url('assets/ceva-logo-pointer.svg?v=white-chase-1') 16 16,auto}
html.custom-pointer-mode.custom-pointer-visible body,html.custom-pointer-mode.custom-pointer-visible a,html.custom-pointer-mode.custom-pointer-visible button,html.custom-pointer-mode.custom-pointer-visible summary,html.custom-pointer-mode.custom-pointer-visible select,html.custom-pointer-mode.custom-pointer-visible [role=button]{cursor:none}
html.custom-pointer-mode :is(input,textarea,[contenteditable=true]){cursor:text}
html.custom-pointer-mode :is(button:disabled,[aria-disabled=true]){cursor:not-allowed}
@media(prefers-reduced-motion:no-preference){
  .property-card,.service-card,.type-card{transition:transform .25s,border-color .25s,box-shadow .25s,background .25s}
  .custom-pointer-mode .property-card:hover,.custom-pointer-mode .service-card:hover{transform:translateY(-5px);border-color:#92c7df;box-shadow:0 16px 38px #152c3d12}
  .custom-pointer-mode .type-card:hover{transform:translateY(-3px)}
  .button{transition:background .2s,color .2s,transform .2s,box-shadow .2s}
  .custom-pointer-mode .button:hover{transform:translateY(-2px);box-shadow:0 7px 22px #086b9b26}
  .property-image,.campus-photo{overflow:hidden}
  .property-image img,.campus-photo img{transition:transform .55s cubic-bezier(.22,1,.36,1)}
  .custom-pointer-mode .property-card:hover .property-image img,.custom-pointer-mode .campus-photo:hover img{transform:scale(1.035)}
  .service-icon{transition:transform .3s,background .3s}
  .custom-pointer-mode .service-card:hover .service-icon{transform:rotate(-7deg);background:#dff2fa}
  .text-link:hover{text-decoration-thickness:2px;text-underline-offset:7px}
  .full-offer-table tbody tr{transition:background .2s}
  .custom-pointer-mode .full-offer-table tbody tr:hover{background:#edf6fb}
}
.service-card:focus-within,.property-card:focus-within{border-color:var(--blue)}
@media(max-width:700px){.floating-contact{right:16px;bottom:calc(16px + env(safe-area-inset-bottom));width:52px;height:52px}.scroll-top{right:20px;bottom:calc(80px + env(safe-area-inset-bottom));width:44px;height:44px}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  .cursor-halo{display:none!important}
  .cursor-orbit{animation:none!important}
  html.custom-pointer-mode *{cursor:revert!important}
  .scroll-top,.floating-contact,.floating-contact-label,.property-card,.service-card,.type-card,.button,.property-image img,.campus-photo img,.service-icon{transition:none!important;transform:none!important;translate:none!important}
}
@media(forced-colors:active){.cursor-halo{display:none}html.custom-pointer-mode *{cursor:revert!important}.reading-progress>span{background:Highlight}.scroll-top,.floating-contact{border:1px solid ButtonText}}
@media print{.reading-progress,.scroll-top,.floating-contact,.cursor-halo{display:none!important}}
