/* Preserve the existing visual identity; improve reading and touch interaction. */
[hidden]{display:none!important}
html{scroll-padding-top:110px}
img{max-width:100%;height:auto}
button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--accent,#ff2d55);outline-offset:4px}
.app-dock{display:none}
.blog-discovery{max-width:900px;margin:0 auto 32px}
.blog-discovery label{display:block;margin-bottom:10px;font-weight:600}
.blog-discovery input{width:100%;min-height:48px;padding:12px 16px;border:1px solid var(--line2,#666);border-radius:12px;background:var(--bg2,#111);color:var(--text,#fff);font:inherit}
.blog-topics{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
.blog-topics button,.reader-actions button{min-height:44px;border:1px solid var(--line2,#666);border-radius:24px;padding:10px 16px;background:var(--bg2,#111);color:var(--text,#fff);font:inherit;cursor:pointer}
.blog-topics button[aria-pressed=true]{border-color:var(--accent,#ff2d55);box-shadow:inset 0 0 0 1px var(--accent,#ff2d55)}
.reader-summary,.related-guides{border:1px solid var(--line2,#666);border-radius:16px;padding:24px;margin:28px 0;background:var(--bg2,#111)}
.reader-summary h2,.related-guides h2{font-size:1.3rem;margin-top:0}
.reader-summary li,.related-guides li{margin-bottom:12px}
.reader-summary p{font-size:.9rem}
.reader-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:32px 0}
.blog-post-content{overflow-wrap:anywhere}
.blog-post-content p,.blog-post-content li{line-height:1.85}
.blog-post-content h2,.blog-post-content h3{scroll-margin-top:110px}
.blog-post-content table{display:block;max-width:100%;overflow-x:auto}
@media(max-width:768px){
 body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
 .app-dock{display:flex;position:fixed;z-index:950;left:0;right:0;bottom:0;justify-content:space-around;align-items:center;gap:4px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:var(--bg,#06060a);border-top:1px solid var(--line2,#555);box-shadow:0 -4px 20px #0003}
 .app-dock a,.app-dock button{min-height:48px;min-width:44px;display:flex;align-items:center;justify-content:center;flex:1;color:var(--text,#fff);font-size:12px;font-weight:600;border-radius:12px;text-decoration:none}
 .app-dock a[aria-current]{background:var(--accent,#ff2d55);color:white}
 .app-dock button{border:1px solid var(--line2,#555);background:transparent;font-family:inherit}
 .floating-buttons{bottom:calc(88px + env(safe-area-inset-bottom))!important}
 .theme-toggle{bottom:calc(88px + env(safe-area-inset-bottom))!important}
 .scroll-top-btn{bottom:calc(155px + env(safe-area-inset-bottom))!important}
 .chat-widget-btn{bottom:calc(205px + env(safe-area-inset-bottom))!important}
 .chat-widget{bottom:calc(265px + env(safe-area-inset-bottom))!important;max-height:55dvh;max-width:calc(100vw - 32px)}
 .nav-links{max-height:calc(100dvh - 160px);overflow-y:auto;overscroll-behavior:contain}
 input,select,textarea{font-size:16px!important}
 button,.btn,.nav-links a{min-height:44px}
 .blog-post-content{font-size:16px}
 .reader-summary,.related-guides{padding:18px}
 .blog-post-header h1{font-size:clamp(1.8rem,7vw,2.8rem);line-height:1.2}
 .blog-toc a{display:inline-block;padding:6px 0}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal,.reveal-left,.reveal-right,.reveal-scale,.stagger-children>*{opacity:1!important;transform:none!important}}
.blog-card-img{overflow:hidden}
.blog-card-img img{width:100%;height:100%;object-fit:cover;display:block}
/* Keep the header and its menu above page sections and the backdrop. */
@media screen {
 header.site{position:fixed;top:0;left:0;right:0;z-index:1000}
}
@media screen and (max-width:768px){
 header.site .nav-inner{gap:12px;min-height:72px}
 header.site .brand{min-width:0;flex:1}
 header.site .brand img{max-width:min(220px,calc(100vw - 110px));height:auto;max-height:50px;object-fit:contain}
 header.site .burger{display:flex!important;position:relative;z-index:1002;flex:0 0 48px;width:48px;height:48px;min-width:48px;align-items:center;justify-content:center;gap:5px;padding:10px;border:1px solid var(--line2,#555);border-radius:10px;background:var(--bg2,#0a0a12);color:var(--text,#eef0f6);visibility:visible;opacity:1}
 header.site .burger span{display:block;width:24px;height:3px;flex:0 0 3px;background:currentColor;opacity:1}
 header.site .burger.active span:nth-child(2){opacity:0}
 header.site nav.nav-links{z-index:1001;max-height:calc(100dvh - 82px);visibility:hidden;pointer-events:none}
 header.site nav.nav-links.active{visibility:visible;pointer-events:auto}
}
/* Footer is outside main; no content-section padding follows the legal links. */
body>footer.footer{margin-bottom:0}
.industry-strip-intro{text-align:center;color:var(--text2);font-size:.95rem;margin:12px auto 24px;padding:0 20px}
.industry-trust-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;max-width:1180px;margin:0 auto;padding:0 24px}
.industry-trust-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px 12px;min-height:110px;border:1px solid var(--line2);border-radius:14px;color:var(--text2);font-size:.85rem;text-align:center;background:var(--bg2)}
.industry-trust-item i{font-size:1.4rem;color:var(--accent)}
.map-directions{text-align:center;margin-top:20px}
.map-directions a{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;border:1px solid var(--line2);border-radius:12px;color:var(--text)}
@media(max-width:1000px){.industry-trust-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.industry-trust-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 16px}.client-logos-label{padding:0 20px;line-height:1.6}}

/* Contain horizontal paint without creating a vertical scroll container. */
html,body{overflow-x:hidden}
@supports(overflow:clip){html,body{overflow-x:clip}}
.bg-orb,.hero-ring{pointer-events:none;contain:layout style}
.marquee-section,.service-scroll{max-width:100%;overflow:hidden}
@supports(overflow:clip){.marquee-section,.service-scroll{overflow:clip}}
@media(max-width:768px){
 .bg-orb{max-width:100vw}
 .hero-ring{max-width:100vw;max-height:100vw}
 .reveal-left{transform:translateX(-16px)}
 .reveal-right{transform:translateX(16px)}
 header.site nav.nav-links{right:0;max-width:100vw;transform:translateX(100%);transition:transform .4s var(--ease);height:100vh;height:100dvh}
 header.site nav.nav-links.active{transform:translateX(0)}
}
@media(prefers-reduced-motion:no-preference){.marquee-track{animation:marqueeScroll 30s linear infinite!important}.marquee-track:hover{animation-play-state:paused!important}}
/* Mobile-only paint budget: preserve colors, content and geometry without huge filter surfaces. */
@media screen and (max-width:768px){
 body::before{position:fixed;inset:0;filter:none!important;animation:none!important;transform:none!important}
 .bg-grid::after{display:none}
 .bg-orb{filter:none!important;animation:none!important;transform:none!important}
 .bg-orb-1{background:radial-gradient(ellipse,var(--accent),transparent 70%)}
 .bg-orb-2{background:radial-gradient(ellipse,var(--cyan),transparent 70%)}
 .bg-orb-3{background:radial-gradient(ellipse,var(--purple),transparent 70%)}
 .hero::after{width:100%;height:100%;top:0;left:0;filter:none!important;animation:none!important;transform:none!important;background:radial-gradient(ellipse,rgba(255,45,85,.04),rgba(0,229,255,.03),transparent 70%)}
 .hero-visual img{filter:drop-shadow(0 8px 16px rgba(255,45,85,.18));animation:none}
 header.site{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
 header.site nav.nav-links{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
 .nav-overlay{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
}
/* Do not reserve the desktop custom scrollbar inside a mobile WebKit viewport. */
@media screen and (max-width:768px){
 html{scrollbar-width:none}
 html::-webkit-scrollbar,body::-webkit-scrollbar{width:0;height:0}
}

/* Consistent clearance beneath the fixed header on every page template. */
@media screen {
 .page-header,.blog-post-header{padding:112px 0 40px}
 .page-header + section{padding-top:48px}
 .hero{min-height:0;padding:112px 0 56px}
 .page-header::before,.blog-post-header::before{pointer-events:none}
 .grid > *{min-width:0}
 .breadcrumb{flex-wrap:wrap;row-gap:6px}
 :where(.card,.service-card,.footer) a{overflow-wrap:anywhere}
}
@media screen and (max-width:768px){
 .page-header,.blog-post-header{padding:100px 0 28px}
 .page-header + section{padding-top:32px}
 .hero{padding:100px 0 40px}
 .hero-badge{max-width:100%;white-space:normal}
}
@media screen and (min-width:769px) and (max-width:1000px){
 header.site .brand img{max-width:185px;height:auto}
 header.site .nav-inner{gap:12px;min-height:74px}
 header.site .nav-links{gap:0}
 header.site .nav-links a{padding:8px 10px;white-space:nowrap;font-size:.8rem}
}
