/* First-party page tools: no external widget, font or tracking dependency. */
.site-tools{position:fixed;z-index:35;right:7px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:3px;padding:4px;background:#fff;border:1px solid #cedbd2;border-radius:8px;box-shadow:0 3px 16px #143b2912}
.site-tools>a{position:relative;display:grid;place-items:center;width:40px;min-height:44px;color:#426653;border-radius:7px;text-decoration:none}
.site-tools>a:hover,.site-tools>a:focus-visible{background:#edf5ef;color:#146843}
.site-tools .service-icon{width:23px;height:23px;stroke-width:1.5}
.tools-tooltip{position:absolute;right:calc(100% + 13px);top:50%;transform:translateY(-50%);padding:8px 12px;border-radius:5px;background:#172e29;color:#fff;font-size:.875rem;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none}
.site-tools>a:hover .tools-tooltip,.site-tools>a:focus-visible .tools-tooltip{opacity:1;visibility:visible}
.tools-open{overflow:hidden}
.tools-drawer{position:fixed;inset:0 0 0 auto;width:min(440px,100%);height:100%;height:100dvh;max-width:100%;max-height:none;margin:0;padding:0;border:0;border-left:1px solid #cbd9cf;background:#fff;color:#172e29;box-shadow:-12px 0 48px #173c2919;overflow:hidden}
.tools-drawer:not([open]){display:none}
.tools-drawer[open]{animation:tools-slide-in .23s ease-out}
.tools-drawer::backdrop{background:#1436265c}
@keyframes tools-slide-in{from{transform:translateX(100%)}to{transform:translateX(0)}}
.tools-shell{display:flex;flex-direction:column;height:100%;min-height:0}
.tools-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:26px 24px 18px;padding-top:max(26px,env(safe-area-inset-top));background:#f1f4f2;border-bottom:1px solid #d7dfda;flex-shrink:0}
.tools-header>div{min-width:0}
.tools-header p{font-size:.875rem;letter-spacing:0;color:#51635d;margin:0 0 9px;line-height:1.5}
.tools-header h2{font-size:1.6rem;line-height:1.25;letter-spacing:0;margin:0}
.tools-header h2:focus{outline:none}
.tools-close{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;margin:-5px -8px 0 0;background:transparent;border:1px solid transparent;border-radius:7px;color:#355b49}
.tools-close svg{width:23px;height:23px}
.tools-close:hover{background:#e1ede5;border-color:#9bb6a7}
.tools-navigation{display:flex;flex-wrap:wrap;gap:4px;padding:14px 20px;border-bottom:1px solid #d7dfda;flex-shrink:0}
.tools-navigation button{flex:1 1 auto;min-height:44px;padding:9px 10px;font-size:.875rem;line-height:1.4;border:1px solid transparent;border-radius:5px;background:#fff;color:#51635d;font-weight:600}
.tools-navigation button[aria-pressed="true"]{border-color:#9abdac;background:#edf5ef;color:#13543c;text-decoration:underline;text-underline-offset:5px}
.tools-navigation button:hover{background:#f1f5f2}
.tools-content{padding:23px 24px 30px;padding-bottom:max(30px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;min-height:0;scrollbar-gutter:stable;flex:1}
.tools-content p{font-size:.875rem;line-height:1.7;color:#51635d;margin-bottom:17px}
.tools-content h3{font-size:1rem;line-height:1.4;letter-spacing:0;margin-bottom:10px}
.tools-content .tools-intro{font-size:.92rem;margin-bottom:24px}
.tools-size{margin-bottom:16px}
.tools-size label{display:block;font-size:.9rem;font-weight:600;margin-bottom:9px}
.tools-size select{width:100%;min-height:46px;padding:10px 12px;border:1px solid #819c8e;border-radius:5px;color:#172e29;background:#fff;font-size:.875rem}
.tools-settings{border-top:1px solid #d7dfda}
.tools-setting{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 0;border-bottom:1px solid #d7dfda;cursor:pointer}
.tools-setting>span{min-width:0}
.tools-setting strong{display:block;font-size:.9rem;font-weight:600;line-height:1.5}
.tools-setting small{display:block;color:#51635d;font-size:.875rem;line-height:1.6;margin-top:3px}
.tools-setting input{appearance:none;-webkit-appearance:none;display:block;flex:0 0 44px;width:44px;height:26px;position:relative;margin:0;border:1px solid #7e9989;border-radius:20px;background:#e7eee9;cursor:pointer}
.tools-setting input:before{content:"";display:block;position:absolute;top:3px;left:3px;width:18px;height:18px;background:#526e5c;border-radius:50%;transition:transform .15s}
.tools-setting input:checked{background:#146843;border-color:#146843}
.tools-setting input:checked:before{background:#fff;transform:translateX(18px)}
.tools-remember{margin:24px 0 17px}
.tools-remember label{display:flex;gap:10px;align-items:flex-start;min-height:44px;font-size:.875rem;font-weight:600;cursor:pointer}
.tools-remember input{width:19px;height:19px;flex:0 0 19px;margin:3px 0 0;accent-color:#146843}
.tools-content .tools-remember p,.tools-content .tools-small{font-size:.875rem;line-height:1.7;color:#51635d}
.tools-reset{min-height:44px;padding:10px 14px;border:1px solid #839e8e;border-radius:5px;background:#fff;color:#245339;font-size:.875rem;font-weight:600;line-height:1.5;text-align:left}
.tools-reset:hover{background:#eaf3ed}
.tools-note{background:#f1f4f2;border:1px solid #d7dfda;border-radius:6px;padding:16px;margin-top:22px;margin-bottom:15px}
.tools-note p:last-child{margin:0;font-size:.875rem;line-height:1.7}
.tools-page-link{display:flex;align-items:center;justify-content:space-between;gap:13px;min-height:48px;padding:12px 0;font-size:.875rem;color:#195b3f;text-decoration:underline;line-height:1.5}
.tools-page-link .arrow{width:19px;height:19px}
.tools-fact{border-bottom:1px solid #d7dfda;padding:0 0 21px;margin:0 0 23px}
.tools-fact-heading{display:flex;flex-wrap:wrap;align-items:center;gap:7px 12px;margin-bottom:12px}
.tools-fact-heading h3{margin:0}
.tools-badge{display:inline-block;font-size:.875rem;line-height:1.5;padding:3px 7px;border:1px solid #b6cdbf;border-radius:4px;background:#f1f5f2;color:#315f44}
.tools-fact dl{font-size:.875rem;line-height:1.7;margin:16px 0;color:#51635d}
.tools-fact dt{font-weight:600;color:#294f39;margin-top:9px}
.tools-fact dd{margin:2px 0 0;overflow-wrap:anywhere}
.tools-fact code{font-size:.95em;color:#245339}
.tools-email{display:inline-block;min-height:44px;font-size:.9rem;color:#195b3f;overflow-wrap:anywhere;padding-bottom:10px}
.tools-status:empty{display:none}
.tools-content .tools-status{border-left:3px solid #146843;padding:10px 12px;background:#eef6f0;color:#265339;font-size:.875rem;margin:20px 0 0}
.tools-drawer :is(a,button,input,select):focus-visible,.site-tools a:focus-visible{outline:3px solid #075b3f;outline-offset:3px}

/* Explicit visitor preferences. Browser zoom and OS preferences remain available. */
body{overflow-wrap:anywhere}
:is(.split,.legal-layout,.footer-top,.contact-grid,.software-grid,.capability-grid)>*{min-width:0}
.button,.text-link{max-width:100%;min-width:0}
html[data-text-size="125"]{font-size:125%}
html[data-text-size="150"]{font-size:150%}
html[data-display-links] :is(main,.site-header,.site-footer) a{text-decoration:underline!important;text-underline-offset:.2em}
html[data-display-spacing] :is(p,li,label,a,input,select,textarea){line-height:1.8!important;letter-spacing:0;word-spacing:.16em!important}
html[data-display-spacing] :is(h1,h2,h3){line-height:1.4!important;letter-spacing:0;word-spacing:.12em!important}
html[data-display-spacing] p{margin-bottom:1.6em!important}
html[data-display-contrast] :is(body,body *){background-color:#fff!important;color:#111!important;border-color:#111!important;box-shadow:none!important;text-shadow:none!important}
html[data-display-contrast] a{color:#003b6b!important;text-decoration:underline!important}
html[data-display-contrast] button[aria-pressed="true"]{border-width:2px!important;text-decoration:underline!important}
html[data-display-contrast] .tools-setting input:before{background:#111!important}
html[data-display-contrast] :focus-visible{outline:3px solid #003b6b!important;outline-offset:3px}
html[data-display-motion]{scroll-behavior:auto!important}
html[data-display-motion] *,html[data-display-motion] *:before,html[data-display-motion] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}

@media(max-width:860px){
  html{scroll-padding-bottom:100px}
  body{padding-bottom:80px}
  .site-tools{top:auto;bottom:max(12px,env(safe-area-inset-bottom));right:12px;transform:none;flex-direction:row;border-radius:8px;box-shadow:0 3px 20px #172e2925}
  .site-tools>a{width:44px}
  .tools-tooltip{right:0;top:auto;bottom:calc(100% + 13px);transform:none}
  .main-nav>a{white-space:normal}
  :is(html[data-text-size="125"],html[data-text-size="150"]) .header-inner{flex-wrap:wrap;gap:14px 12px;padding-block:15px}
}
@media(max-width:440px){
  .tools-header{padding-inline:19px;padding-top:22px}
  .tools-header h2{font-size:1.4rem}
  .tools-content{padding-inline:20px}
  .tools-navigation{padding:10px 15px}
  .tools-setting{gap:12px}
}
@media(prefers-reduced-motion:reduce){.tools-drawer[open]{animation:none}.tools-setting input:before{transition:none}}
@media(forced-colors:active){
  .site-tools,.tools-drawer,.tools-note,.tools-badge{border:1px solid CanvasText}
  .tools-setting input{appearance:auto;-webkit-appearance:auto;width:24px;height:24px;flex-basis:24px}
  .tools-setting input:before{display:none}
}
@media print{.site-tools,.tools-drawer{display:none!important}body{padding-bottom:0}.tools-open{overflow:visible}}

/* Accommodate the larger visitor-selected text in the public layout. */
html:is([data-text-size="125"],[data-text-size="150"],[data-display-spacing]) .header-inner{flex-wrap:wrap;gap:18px;padding-block:18px}
html:is([data-text-size="125"],[data-text-size="150"],[data-display-spacing]) .site-nav{flex-wrap:wrap;flex:1 1 650px;max-width:100%}
html:is([data-text-size="125"],[data-text-size="150"],[data-display-spacing]) .project-hero{height:auto;min-height:0}
html:is([data-text-size="125"],[data-text-size="150"],[data-display-spacing]) .hero-photo{display:none}
html:is([data-text-size="125"],[data-text-size="150"],[data-display-spacing]) .hero-copy{max-width:850px}
html:is([data-text-size="125"],[data-text-size="150"],[data-display-spacing]) .legal-toc{position:static}
html:is([data-text-size="125"],[data-text-size="150"],[data-display-spacing]) .calculator-layout{grid-template-columns:1fr}
html:is([data-text-size="125"],[data-text-size="150"],[data-display-spacing]) .price-result{position:static}
html[data-display-contrast] .hero-photo{display:none}
html[data-display-contrast] .tools-setting input:checked{outline:2px solid #111;outline-offset:2px}
:is(.module-grid,.membership-comparison,.benefit-grid,.topic-grid,.status-options,.calculator-layout)>*{min-width:0}
@media(min-width:861px){.wrap,.page-intro,.detail-hero,.site-shell main>.section.compact{width:min(var(--max),calc(100% - 144px))}}
@media(max-width:600px){html:is([data-text-size="125"],[data-text-size="150"],[data-display-spacing]) :is(.module-grid,.topic-grid,.status-options,.footer-top){grid-template-columns:1fr}.tools-header{padding-inline:18px}.tools-content{padding-inline:18px}}
