/* Optional reading preferences. Load after the site's other stylesheets. */
html[data-cmla-text-size="100"]{font-size:100%}
html[data-cmla-text-size="115"]{font-size:115%}
html[data-cmla-text-size="130"]{font-size:130%}
html[data-cmla-text-size] body{font-size:1rem}
html[data-cmla-text-size]{scroll-padding-block-start:calc(var(--cmla-a11y-header-height,110px) + 20px);scroll-padding-block-end:calc(var(--cmla-a11y-sticky-height,0px) + 20px)}

/* Preserve a visible, two-color focus ring on both light and dark surfaces. */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #005fb8!important;outline-offset:4px!important;box-shadow:0 0 0 4px #fff!important;scroll-margin-block:calc(var(--cmla-a11y-header-height,110px) + 20px) calc(var(--cmla-a11y-sticky-height,0px) + 20px)}
#app :is(button,select,textarea,input:not([type="checkbox"]):not([type="radio"]),summary,.btn,.nav a,.footer-links a,.back-link,.text-button,.utility a){min-height:44px;min-width:44px}
#app :is(.nav a,.footer-links a,.back-link,.utility a){display:inline-flex;align-items:center}
#app :is(input,select,textarea){max-width:100%}
#app :is(.language,.menu,.close){min-width:44px!important;min-height:44px!important}
#app .logo-grid>*{min-width:0}
#app .brand-tile span{max-width:100%;overflow-wrap:anywhere}
#app .calendar-controls label{flex-wrap:wrap;min-width:0}
html[data-cmla-text-size]:not([data-cmla-text-size="100"]) #app :is(h1,h2,h3,p,a,button,label,legend,dd){overflow-wrap:anywhere}
html[data-cmla-text-size]:not([data-cmla-text-size="100"]) #app :is(.header .wrap,.header-actions,.nav){flex-wrap:wrap}
html[data-cmla-text-size]:not([data-cmla-text-size="100"]) #app .nav a{white-space:normal}
html[data-cmla-text-size]:not([data-cmla-text-size="100"]) #app :is(.wrap,.cards,.hero-grid,.price-grid)>*{min-width:0}
html[data-cmla-text-size]:not([data-cmla-text-size="100"]) #app .membership-band .btn{white-space:normal}

.cmla-a11y-widget{font-family:'Segoe UI',Arial,sans-serif;line-height:1.5;color:#142f53}
.cmla-a11y-launcher{position:fixed;left:16px;bottom:calc(var(--cmla-a11y-sticky-height,0px) + 16px + env(safe-area-inset-bottom,0px));z-index:35;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;max-width:calc(100vw - 32px);padding:10px 14px;border:1px solid #142f53;border-radius:9px;background:#fff;color:#142f53;font:600 .875rem/1.25 'Segoe UI',Arial,sans-serif;box-shadow:0 3px 14px #142f5326;text-align:left}
.cmla-a11y-launcher:hover{background:#edf4fb}
.cmla-a11y-launcher svg{width:22px;height:22px}
.cmla-a11y-launcher.cmla-a11y-clear-focus{visibility:hidden}
.cmla-a11y-panel{width:min(30rem,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:24px;border:1px solid #8497ac;border-radius:16px;background:#fff;color:#142f53;box-shadow:0 20px 70px #05172f44;overflow:auto;overscroll-behavior:contain}
.cmla-a11y-panel::backdrop{background:#0b234099}
.cmla-a11y-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:8px}
.cmla-a11y-heading h2{font:650 1.45rem/1.3 'Segoe UI',Arial,sans-serif;letter-spacing:0;margin:6px 0 0;overflow-wrap:anywhere}
.cmla-a11y-close{display:flex;align-items:center;justify-content:center;flex:none;min-width:44px;min-height:44px;padding:8px;border:1px solid #8497ac;border-radius:8px;background:#fff;color:#142f53}
.cmla-a11y-panel p{color:#41556f;margin:0 0 18px}
.cmla-a11y-field{display:grid;gap:8px;margin-block:20px}
.cmla-a11y-field>label{font-weight:650}
.cmla-a11y-field select{width:100%;min-width:0;min-height:48px;padding:10px 12px;font:inherit;color:#142f53;background:#fff;border:1px solid #6d829b;border-radius:7px}
.cmla-a11y-check{display:flex;align-items:center;gap:12px;min-height:48px;padding-block:10px;font-weight:600;cursor:pointer}
.cmla-a11y-check input{flex:none;width:22px;height:22px;margin:0;accent-color:#174c82;cursor:pointer}
.cmla-a11y-panel .cmla-a11y-small{font-size:.85rem;line-height:1.55;margin:0;color:#41556f}
.cmla-a11y-reset{display:inline-flex;align-items:center;justify-content:center;min-height:44px;max-width:100%;padding:10px 14px;border:1px solid #174c82;border-radius:7px;background:#fff;color:#174c82;font:600 .95rem/1.4 'Segoe UI',Arial,sans-serif;text-align:center}
.cmla-a11y-panel .cmla-a11y-status{font-size:.9rem;margin:12px 0 0}
.cmla-a11y-status:empty{display:none}
.cmla-a11y-help{border-top:1px solid #c6d3e0;margin-block:22px 18px;padding-top:18px}
.cmla-a11y-help p{margin:0 0 4px;font-weight:600;color:#142f53}
.cmla-a11y-help a{display:inline-flex;align-items:center;min-height:44px;color:#174c82;font-weight:650;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
html[data-cmla-links="underlined"] :is(#app,#cmla-accessibility) a{text-decoration-line:underline!important;text-decoration-thickness:2px;text-underline-offset:.2em}

/* A real color mode rather than a filter, so form controls retain readable labels. */
html[data-cmla-contrast="high"]{--ink:#111;--blue:#003b70;--muted:#252525;--ice:#fff;--line:#454545;--white:#fff;background:#fff;color:#111;color-scheme:light}
html[data-cmla-contrast="high"] body,
html[data-cmla-contrast="high"] :is(#app,#cmla-accessibility),
html[data-cmla-contrast="high"] :is(#app,#cmla-accessibility) :is(main,header,footer,nav,section,article,aside,div,dialog,h1,h2,h3,h4,p,span,em,strong,small,ul,ol,li,dl,dt,dd,details,summary,label,legend,fieldset){background-color:#fff!important;background-image:none!important;color:#111!important;border-color:#454545!important;box-shadow:none;text-shadow:none}
html[data-cmla-contrast="high"] :is(#app,#cmla-accessibility) a{color:#003b70!important;text-decoration:underline!important}
html[data-cmla-contrast="high"] :is(#app,#cmla-accessibility) :is(input,select,textarea){background:#fff!important;color:#111!important;border-color:#111!important;accent-color:#003b70;caret-color:#111}
html[data-cmla-contrast="high"] :is(#app,#cmla-accessibility) :is(button,.btn){background:#003b70!important;color:#fff!important;border:1px solid #003b70!important}
html[data-cmla-contrast="high"] :is(#app,#cmla-accessibility) :is(button,.btn) *{color:inherit!important;background:transparent!important}
html[data-cmla-contrast="high"] :is(#app,#cmla-accessibility) button[aria-pressed="true"]{background:#fff!important;color:#003b70!important;outline:2px solid #003b70;outline-offset:-4px;text-decoration:underline}
html[data-cmla-contrast="high"] :is(#app,#cmla-accessibility) :is(button,input,select,textarea):disabled{background:#e5e5e5!important;color:#494949!important;opacity:1}
html[data-cmla-contrast="high"] #app .brand-dark{background:#111!important}
html[data-cmla-contrast="high"] #app .brand-dark span{background:#111!important;color:#fff!important}
html[data-cmla-contrast="high"] :focus-visible{outline-color:#111!important;box-shadow:0 0 0 4px #fff!important}

/* Always honor the operating-system preference; the panel can also opt in. */
html[data-cmla-motion="reduce"]{scroll-behavior:auto!important}
html[data-cmla-motion="reduce"] *,html[data-cmla-motion="reduce"] *::before,html[data-cmla-motion="reduce"] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html[data-cmla-motion="reduce"] .btn:hover{transform:none!important}
@media(prefers-reduced-motion:reduce){html,html *,html *::before,html *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.btn:hover{transform:none!important}}
@media(max-width:380px){.cmla-a11y-panel{padding:18px}.cmla-a11y-heading{gap:10px}.cmla-a11y-launcher{left:12px;padding-inline:10px}}
@media(forced-colors:active){.cmla-a11y-launcher,.cmla-a11y-panel,.cmla-a11y-close,.cmla-a11y-reset{border:2px solid ButtonText}:focus-visible{outline:3px solid Highlight!important;box-shadow:none!important}}
