/* Accessibility and consistent presentation for existing content pages. */
.mobile-nav{justify-content:flex-start;padding-top:100px}.blog-empty{padding:25px;border:1px solid var(--line);color:var(--muted);background:var(--white);font-size:.9rem}
.error-phone{font-size:.8rem;white-space:nowrap}.category-choice{display:flex;justify-content:space-between;align-items:center;gap:15px;width:100%;border:0;background:none;text-align:left;padding:5px 0;font:inherit;color:var(--ink)}
.recent-thumb{display:none}.recent-article{cursor:default}.recent-title a:hover{text-decoration:underline;text-underline-offset:3px}.tag[data-cat]{min-height:36px}.recent-title{font-weight:500}
[hidden]{display:none!important}:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.skip-link{position:fixed;top:8px;left:12px;transform:translateY(-180%);z-index:1010;background:var(--white);color:var(--ink);padding:12px 20px}.skip-link:focus{transform:none}.menu-open{overflow:hidden}.menu-open #backTop{visibility:hidden}.mobile-nav[hidden]{display:none!important}
.captcha-choice{margin:20px 0;border-top:1px solid var(--line);padding-top:18px}.captcha-choice label{display:flex;align-items:flex-start;gap:10px;font-size:.76rem;line-height:1.65;font-weight:500;cursor:pointer}.captcha-choice input{width:18px!important;height:18px;flex:0 0 18px;margin-top:3px;accent-color:var(--accent)}.captcha-choice p{margin-top:10px;color:var(--muted);font-size:.7rem;line-height:1.7}.captcha-choice a,.form-note a,.legal-content a{text-decoration:underline;text-underline-offset:3px}.form-error{padding:14px;background:#fce7df;border:1px solid #9d3023;color:#822519;border-radius:3px;margin:16px 0;font-size:.85rem}.form-submit:disabled{opacity:.7;cursor:wait}#selected-offer{padding:12px 14px;background:var(--sage);font-size:.84rem;margin-bottom:20px;font-weight:600}.grecaptcha-badge{z-index:9996}
.service-copy{max-width:880px}.service-copy h2{font-size:1.8rem;color:var(--ink);margin:40px 0 18px}.service-copy h2:first-child{margin-top:0}.service-copy p{font-size:1.04rem;line-height:1.9;color:var(--muted)}.service-copy a:not(.btn-primary){color:var(--accent);text-decoration:underline}.service-copy .btn-primary{margin-top:30px}.legal-section{background:var(--paper)}.legal-content h2{font-family:var(--sans)}.legal-content p,.legal-content li{color:var(--muted)}
.article-header h1,.article-card h2,.article-card h3,.article-body-content h2,.widget-title,.related-articles h3,.project-body h3,.portfolio-cta h2,.author-info h4{font-family:var(--sans);font-weight:500;letter-spacing:-.035em}.article-header h1{font-size:clamp(2rem,4vw,3.25rem);line-height:1.1}.article-single-layout{grid-template-columns:minmax(0,1fr) 270px;gap:65px}.article-toc{display:block;margin:25px 0;padding:25px;background:var(--light);border:1px solid var(--line);font-size:.9rem}.article-toc li{margin:10px 0}.article-toc a{font-size:.9rem;text-decoration:underline;text-underline-offset:3px}.article-update{color:var(--muted);font-size:.8rem}.article-body-content{font-size:1.04rem;line-height:1.95}.article-body-content h2{font-size:1.8rem;line-height:1.25}.article-body-content p,.article-body-content li{color:var(--muted)}.article-featured-img{display:none}.article-info{border-color:var(--line)}.article-toc ul{padding-left:18px;list-style:disc}.blog-sidebar{position:sticky;top:115px;padding:25px;border:1px solid var(--line);background:var(--white)}.blog-sidebar h2{font-size:1.3rem}.blog-sidebar p{font-size:.86rem;color:var(--muted);margin:14px 0}.blog-sidebar a{color:var(--accent);text-decoration:underline}.tip-box,.key-points{background:var(--light);border-color:var(--line);border-radius:3px}.tip-box strong,.key-points h4{color:var(--ink)}
.blog-layout{grid-template-columns:minmax(0,1fr) 285px;gap:40px}.articles-grid{gap:25px}.article-card{box-shadow:none;border-color:var(--line);border-radius:3px;background:var(--white)}.article-card:hover{box-shadow:none;transform:none;border-color:var(--accent)}.article-card h2,.article-card h3{font-size:1.3rem;line-height:1.3}.article-card.featured h2{font-size:1.75rem}.article-thumb,.article-card.featured .article-thumb{display:none}.article-card.featured .article-body{padding:32px}.article-body{padding:27px}.article-excerpt{font-size:.88rem}.article-footer{border-color:var(--line);gap:15px}.article-author-mini{display:none}.read-more{font-size:.8rem}.article-meta{gap:14px;flex-wrap:wrap}.sidebar-widget{box-shadow:none;border:1px solid var(--line);border-radius:3px;background:var(--white);padding:25px}.widget-cta{background:var(--ink)}.widget-title{border-color:var(--line)}.filter-btn,.filter-pill{font-family:var(--sans);border:1px solid var(--line);background:transparent;font-weight:400;color:var(--ink);border-radius:3px;min-height:44px;padding:10px 16px}.filter-btn:hover,.filter-btn.active,.filter-pill:hover,.filter-pill.active{background:var(--ink);border-color:var(--ink);color:var(--paper);box-shadow:none;transform:none}.blog-filters{gap:8px}.widget-search input{font-family:var(--sans);border:1px solid var(--line);border-radius:3px;font-size:16px}.widget-search button{border-radius:3px}.author-box,.share-bar{border-radius:3px}.author-box{background:var(--white);border-color:var(--line)}.tag,.tech-badge{border-color:var(--line);color:var(--muted);border-radius:3px;background:var(--light)}
.filter-bar{justify-content:flex-start;gap:10px}.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px}.project-card,.project-card.show{border-radius:3px;border:1px solid var(--line);box-shadow:none;animation:none;transition:border-color .2s}.project-card:hover{transform:none;box-shadow:none;border-color:var(--ink)}.project-thumb{aspect-ratio:auto;overflow:visible;background:var(--sage)}.project-thumb-placeholder{height:200px;background:var(--sage)!important;color:var(--ink);padding:35px;align-items:flex-start;justify-content:center;gap:18px}.project-thumb-placeholder i{display:none}.project-thumb-placeholder span{font-family:var(--serif);font-size:clamp(1.5rem,2.5vw,2.2rem);letter-spacing:-.025em;overflow-wrap:anywhere}.project-card:nth-child(3n+2) .project-thumb-placeholder{background:#ead8c6!important}.project-card:nth-child(3n) .project-thumb-placeholder{background:#e6e4d8!important}.project-cat-badge{position:static;background:transparent!important;color:var(--ink);display:block;border-radius:0;padding:13px 24px;font-size:.6rem;letter-spacing:.13em;font-weight:400;border-top:1px solid #243c3220}.project-overlay{opacity:1;transform:none;position:static;background:var(--white);padding:0 24px}.overlay-btn.primary{font-family:var(--sans);background:none;color:var(--accent);justify-content:flex-start;padding:13px 0;border-radius:0;font-size:.8rem}.overlay-btn.primary:hover{background:none;transform:none;text-decoration:underline;text-underline-offset:4px}.project-body{padding:10px 24px 24px;background:var(--white)}.project-body h3{font-size:1.35rem}.project-client{font-size:.76rem}.project-techs{padding-top:5px}.tech-badge{font-size:.63rem;font-weight:400}.portfolio-cta{background:var(--ink);border-radius:3px;padding:55px 40px;text-align:left}.portfolio-cta::before{display:none}.portfolio-cta h2{font-size:2.5rem;color:var(--paper)}.portfolio-cta p{margin:20px 0 28px;color:#c6d1c5;max-width:600px;font-size:1rem}.portfolio-cta .btn-primary{font-size:.86rem!important;padding:14px 23px!important}.real-stats{background:var(--light);border-color:var(--line)}
@media(max-width:1024px){.article-single-layout,.blog-layout{grid-template-columns:1fr;gap:40px}.blog-sidebar{position:static}.sidebar{display:grid;grid-template-columns:1fr 1fr}.article-card.featured{flex-direction:column}}
@media(max-width:768px){.portfolio-grid{grid-template-columns:1fr;gap:25px}.project-thumb-placeholder{height:175px;padding:25px}.project-thumb-placeholder span{font-size:1.8rem}.portfolio-cta{padding:35px 25px}.portfolio-cta h2{font-size:2rem}.filter-pill{font-size:.78rem;padding:10px 13px}.sidebar{grid-template-columns:1fr}.article-body,.article-card.featured .article-body{padding:25px}.article-card.featured h2{font-size:1.45rem}.service-copy h2{font-size:1.6rem}.article-body-content h2{font-size:1.5rem}.article-body-content{font-size:1rem}.article-toc{padding:20px}.article-header h1{font-size:2.1rem}.article-info{gap:12px}.article-info-item{font-size:.75rem}.related-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
