/* Shared controls and icons across the animated home and reading pages. */
.ui-icon{display:inline-block;width:1em;height:1em;vertical-align:-.12em;flex-shrink:0;pointer-events:none}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid currentColor;outline-offset:5px}
.talk-button,.header .talk-button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-height:44px;padding:0 18px;border:0;border-radius:999px;background:#313f8b;color:#fff;font:500 12px/1 'DM Sans',sans-serif;text-transform:uppercase;text-decoration:none;white-space:nowrap}
.talk-button:hover{background:#070910;color:#fff}
.page-header{position:sticky;top:0;z-index:50;flex-direction:row;align-items:center;gap:20px;padding:14px 5vw;background:#e2e1e1ed;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.page-header .page-brand{font-family:'DM Sans',sans-serif;font-size:20px;font-weight:400;letter-spacing:-.04em;white-space:nowrap;margin-right:auto}
.page-header .desktop-nav{align-items:center;gap:22px}
.page-header nav a{display:inline-flex;align-items:center;min-height:44px}
.page-header nav a:last-child{color:inherit}
[aria-current="page"]{text-decoration:underline!important;text-underline-offset:6px}
.inner-menu-toggle,.inner-menu-close{display:none;align-items:center;justify-content:center;width:44px;height:44px;padding:10px;border:0;color:inherit;background:transparent;cursor:pointer}
.inner-menu-toggle svg{width:24px;height:24px}
#page-menu{box-sizing:border-box;width:min(440px,calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:32px;border:0;border-radius:12px;background:#e2e1e1;color:#070910}
#page-menu::backdrop{background:#07091066}
#page-menu .inner-menu-close{display:flex;position:absolute;right:12px;top:12px;font-size:30px}
#page-menu nav{display:flex;flex-direction:column;gap:8px;margin-top:25px}
#page-menu nav a{font-family:'Outfit',sans-serif;font-size:32px;line-height:1.4;padding:6px 0;text-decoration:none}
html:has(#page-menu[open]){overflow:hidden}
.page-cards h3 a{display:flex;align-items:baseline;gap:12px}
.page-cards h3 .ui-icon{width:22px;height:22px}
.page-button{gap:8px}
.breadcrumbs{align-items:center}
.page-footer nav a,.breadcrumbs a{display:inline-flex;align-items:center;min-height:44px}
.page-footer{padding-bottom:calc(35px + env(safe-area-inset-bottom))}
@media(max-width:800px){
 .page-header{gap:8px;padding:10px 5vw}
 .page-header .desktop-nav{display:none}
 .inner-menu-toggle{display:flex}
 .page-header .page-brand{font-size:clamp(16px,5vw,20px);letter-spacing:-.05em}
 .talk-button,.header .talk-button{font-size:10px;padding:0 12px}
 .breadcrumbs{margin-top:16px;gap:8px;align-items:center}
 .page-hero{padding:32px 0}
 .page-hero h1{margin:16px 0 22px}
 .lead{font-size:18px;line-height:1.65}
 .page-section{margin-top:24px;padding-top:28px}
 .page-cards{gap:16px;margin-top:16px}
 .page-cards article{padding:24px 0 8px}
 .page-cards h3{font-size:27px;margin:16px 0 12px}
 .page-cards p{font-size:16px;line-height:1.65}
 .faq-list summary{min-height:44px}
 .page-header .talk-button[aria-current]{text-decoration:none!important;box-shadow:0 0 0 2px #e2e1e1,0 0 0 3px #313f8b}
}
@media(max-width:600px){
 .header .menu-toggle{width:44px;height:44px;min-height:44px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:10px}
 .header .menu-toggle i{margin:0;width:24px}
 .header nav{gap:6px}
 .button{min-height:44px}
 .project-directory a,.service-detail-link{display:inline-flex;align-items:center;gap:6px;min-height:44px}
 .page-header{gap:4px}
}
@media(prefers-reduced-motion:reduce){.talk-button{transition:none}}
