/* Persistent enrollment access sits below menus and disappears for dialogs. */
:root{--enrollment-clearance:100px}
html{scroll-padding-bottom:var(--enrollment-clearance)}
body{padding-bottom:var(--enrollment-clearance)}
.enrollment-dock{position:fixed;right:24px;bottom:24px;z-index:9;animation:enrollment-dock-arrive .65s cubic-bezier(.22,1,.36,1) both;transition:opacity .2s,visibility .2s;pointer-events:none}
.enrollment-dock .button{position:relative;overflow:hidden;isolation:isolate;pointer-events:auto;min-width:196px;min-height:54px;gap:16px;font-size:16px;line-height:1.5;padding:14px 28px;transition:transform .25s,background .25s}
.enrollment-dock .button::after{content:"";position:absolute;pointer-events:none}
.enrollment-dock svg{position:relative;z-index:2;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:translate .25s}
.enrollment-dock .button:active{transform:scale(.98)}
.back-to-top{position:fixed;right:24px;bottom:96px;z-index:9;display:grid;place-items:center;width:46px;height:46px;border:1px solid #e9d5a456;border-radius:50%;background:#201c28e8;backdrop-filter:blur(14px);color:#eed9a8;box-shadow:0 6px 22px #0005;opacity:0;visibility:hidden;translate:0 9px;pointer-events:none;transition:opacity .3s,translate .35s cubic-bezier(.22,1,.36,1),visibility .3s,background .25s,border-color .25s}
.back-to-top.is-visible{opacity:1;visibility:visible;translate:0 0;pointer-events:auto}
.back-to-top svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
.back-to-top:active{transform:scale(.94)}
body:has(dialog[open]) .enrollment-dock,body:has(dialog[open]) .back-to-top,body:has(#page-menu:not([hidden])) .enrollment-dock,body:has(#page-menu:not([hidden])) .back-to-top{opacity:0;visibility:hidden;pointer-events:none}
body:has(dialog[open]) .enrollment-dock .button,body:has(#page-menu:not([hidden])) .enrollment-dock .button{pointer-events:none}
@keyframes enrollment-dock-arrive{from{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}
@media(hover:hover) and (pointer:fine){.enrollment-dock .button:hover{transform:translateY(-2px)}.enrollment-dock .button:hover svg{translate:3px 0}.back-to-top:hover{background:#332b40;border-color:#ead5a491}.back-to-top:hover svg{transform:translateY(-2px)}}
@media(max-width:760px){:root{--enrollment-clearance:calc(92px + env(safe-area-inset-bottom,0px))}.enrollment-dock{left:0;right:0;bottom:0;padding:18px max(16px,env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));background:linear-gradient(180deg,#08080a00,#08080aeb 25%,#08080af7)}.enrollment-dock .button{width:100%;min-height:52px;font-size:16px;padding:13px 24px}.back-to-top{right:max(18px,env(safe-area-inset-right,0px));bottom:calc(96px + env(safe-area-inset-bottom,0px))}}
@media(prefers-reduced-motion:reduce){.enrollment-dock{animation:none}.enrollment-dock,.enrollment-dock .button,.enrollment-dock svg,.back-to-top,.back-to-top svg{transition:none}.enrollment-dock .button:hover,.enrollment-dock .button:active,.back-to-top:active,.back-to-top:hover svg{transform:none}.enrollment-dock .button:hover svg{translate:none}}
@media print{body{padding-bottom:0}.enrollment-dock,.back-to-top{display:none}}

#intro-enroll{scroll-margin-top:110px}@media(max-width:700px){#intro-enroll{scroll-margin-top:95px}}
