/* NetNavi Cloud v12.7.0 — frontend consolidation, accessibility and resilience layer.
   This is the single final public-site override layer. Keep future public-facing
   fixes here instead of adding another cascade patch file. */
:root{
  --nn-text:#152238;--nn-muted:#607086;--nn-line:#dce5ef;--nn-blue:#1769e0;
  --nn-blue-dark:#0f56bd;--nn-surface:#fff;--nn-soft:#f7f9fc;--nn-focus:rgba(23,105,224,.42)
}
html{overflow-x:hidden;scroll-padding-top:110px;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{min-width:0;overflow-x:hidden}
main{min-width:0}
main img,main svg,main video,main canvas,main iframe{max-width:100%;height:auto}
main table{max-width:100%}
p,li,dd,dt,a,button,input,select,textarea{word-break:normal;overflow-wrap:break-word;hyphens:none}
[hidden]{display:none!important}

/* A predictable, readable type floor across old and new components. */
body{color:var(--nn-text)}
main p,main li{line-height:1.65}
main small{line-height:1.4}
main h1,main h2,main h3,main h4{text-wrap:balance}
main p{text-wrap:pretty}
.eyebrow{line-height:1.2}

/* Keyboard and pointer interaction. */
a,button,input,select,textarea,summary{touch-action:manipulation}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:3px solid var(--nn-focus)!important;outline-offset:3px!important
}
button:disabled{cursor:wait;opacity:.72}
.skip-link:focus{z-index:99999}

/* Header/navigation: keep the original Services tab interaction and appearance.
   The underlying app.css owns the dropdown so the tab behaves as it did before v12.5.0. */
.site-header{isolation:isolate}
.header-inner,.header-actions{min-width:0}
.site-nav-dropdown-menu{max-width:min(360px,calc(100vw - 24px))}

/* Interactive text should never disappear due to inherited WebKit paint rules. */
a.primary-button,a.pricing-order-button,.header-client-link,button.primary-button,
.contact-form button[type="submit"],.nn-contact-form button[type="submit"]{
  visibility:visible!important;opacity:1!important;color:#fff!important;-webkit-text-fill-color:#fff!important
}
a.secondary-button,a.status-button,button.secondary-button{
  visibility:visible!important;opacity:1!important;color:var(--nn-text)!important;-webkit-text-fill-color:var(--nn-text)!important
}

/* Forms: clearer states, autofill, messages and tap targets. */
.contact-form input,.contact-form select,.contact-form textarea,.nn-contact-form input,.nn-contact-form select,.nn-contact-form textarea{
  min-height:46px;color:var(--nn-text)!important;-webkit-text-fill-color:var(--nn-text)!important;background:#fff!important
}
.contact-form textarea,.nn-contact-form textarea{min-height:150px}
.contact-form input::placeholder,.contact-form textarea::placeholder,.nn-contact-form input::placeholder,.nn-contact-form textarea::placeholder{color:#6b798b!important;opacity:1!important}
.contact-form input:-webkit-autofill,.contact-form textarea:-webkit-autofill,.contact-form select:-webkit-autofill,
.nn-contact-form input:-webkit-autofill,.nn-contact-form textarea:-webkit-autofill,.nn-contact-form select:-webkit-autofill{
  -webkit-text-fill-color:var(--nn-text)!important;-webkit-box-shadow:0 0 0 1000px #fff inset!important
}
.form-message{border-radius:10px;padding:12px 14px;font-weight:700;line-height:1.45}
.form-message.success{background:#eefaf3;color:#165c35;border:1px solid #bfe8cf}
.form-message.error{background:#fff3f3;color:#8a2525;border:1px solid #f0c2c2}
.nn-form-submit-row button{min-height:48px}

/* Explicit dark surfaces. */
.v123-standard .v123-standard-title h2,.v123-standard .v123-standard-points strong,.v12-platform .v12-platform-copy h2,.nn-about-values h2,.nn-about-values h3{color:#fff!important;-webkit-text-fill-color:#fff!important}
.v123-standard .v123-standard-points span,.v12-platform .v12-platform-copy p,.nn-about-values p,.nn-about-values li{-webkit-text-fill-color:currentColor!important}
html body main .section.v12-platform{background:linear-gradient(145deg,#14233a,#101c2f)!important;color:#fff!important}
html body main .v12-platform .v12-platform-copy p{color:#b8c5d5!important;-webkit-text-fill-color:#b8c5d5!important}
html body main .v12-platform .eyebrow{border-color:rgba(255,255,255,.15)!important;background:rgba(255,255,255,.06)!important;color:#c7dcff!important;-webkit-text-fill-color:#c7dcff!important}
html body main .v12-platform .v12-text-link{color:#e2edff!important;-webkit-text-fill-color:#e2edff!important}
html body main .v12-platform .v12-platform-window,html body main .v12-platform .v12-platform-window *{-webkit-text-fill-color:currentColor!important}

/* Small labels: raise contrast/readability floor without enlarging layout dramatically. */
.v12-console-price small,.v12-console-price span,.v12-service-start small,.v12-service-start em,.v12-service-includes>small,.v12-service-actions>span,.v12-vat,.v12-product-summary-facts small,.v121-audience-grid small,.v121-use-grid small,.v121-about-grid small,.v121-contact-guide small,.v121-careers-grid small,.v122-confidence-grid small,.v122-stack-grid small,.nn-job-side small,.nn-apply-card>small,.v12-popular,.v12-window-grid small{color:var(--nn-muted)!important;font-size:max(.68rem,11px)!important;line-height:1.4!important}

/* Homepage hosting CTA retained from v12.4.4, normalized here. */
.v12-hosting-cta{background:var(--nn-soft)!important;border-top:1px solid #e4eaf1;border-bottom:1px solid #e4eaf1}
.v12-hosting-cta-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:clamp(32px,6vw,88px);align-items:center}
.v12-hosting-cta-copy{max-width:760px}.v12-hosting-cta-copy h2{max-width:720px;margin:.7rem 0 1rem;color:#13223a!important}.v12-hosting-cta-copy p{max-width:700px;margin:0;color:#64748b!important}
.v12-hosting-cta-side{display:grid;gap:24px}.v12-hosting-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.v12-hosting-points span{display:flex;align-items:center;min-height:72px;padding:16px;border:1px solid var(--nn-line);border-radius:14px;background:#fff;color:#34445d!important;font-size:.82rem;font-weight:750;line-height:1.35}
.v12-hosting-cta-actions{display:flex;gap:12px;flex-wrap:wrap}.v12-hosting-cta-actions .primary-button,.v12-hosting-cta-actions .secondary-button{min-width:180px;justify-content:center}

/* Content extremes from CMS should not break grids/cards. */
[class*="grid"]>*{min-width:0}
.v12-service-card,.v12-plan-card,.dynamic-pricing-card,.nn-hero-summary-card,.v121-contact-guide article,.v121-next-list article{min-width:0}
.v12-service-card h3,.v12-plan-card h3,.dynamic-pricing-card h3,.header-actions a,.nnx-footer a{overflow-wrap:anywhere}

@media(max-width:900px){
  .header-actions.open{max-height:calc(100dvh - 92px)!important;overflow-y:auto!important;overscroll-behavior:contain}
  .site-nav-dropdown-menu{max-width:100%!important}
  .v12-hosting-cta-grid{grid-template-columns:1fr;gap:28px}.v12-hosting-points{grid-template-columns:1fr}.v12-hosting-points span{min-height:0}.v12-hosting-cta-actions{align-items:stretch}.v12-hosting-cta-actions a{flex:1 1 220px}
}

/* Service comparison stays readable without horizontal scrolling on narrow screens. */
@media(max-width:640px){
  .v121-compare-table-wrap{overflow:visible!important;border:0!important;background:transparent!important;box-shadow:none!important}
  .v121-compare-table{display:block!important;width:100%!important;min-width:0!important;border-collapse:separate!important}
  .v121-compare-table thead{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
  .v121-compare-table tbody{display:grid!important;gap:12px!important;width:100%!important}
  .v121-compare-table tr{display:block!important;overflow:hidden!important;border:1px solid var(--nn-line)!important;border-radius:13px!important;background:#fff!important;box-shadow:0 6px 18px rgba(16,28,47,.035)!important}
  .v121-compare-table td{display:grid!important;grid-template-columns:minmax(112px,.9fr) minmax(0,1.1fr)!important;gap:12px!important;width:100%!important;padding:12px 14px!important;border:0!important;border-bottom:1px solid #edf1f5!important;font-size:.72rem!important;line-height:1.45!important}
  .v121-compare-table td:last-child{border-bottom:0!important}.v121-compare-table td::before{content:attr(data-label);color:#64748b;font-size:.62rem;font-weight:900;letter-spacing:.035em;text-transform:uppercase}
  .v121-compare-table td:first-child{display:block!important;padding:14px!important;background:#f8fafc!important;color:var(--nn-text)!important;font-size:.78rem!important}.v121-compare-table td:first-child::before{display:none!important}
}
@media(max-width:520px){.v12-hosting-cta-actions{display:grid;grid-template-columns:1fr}.v12-hosting-cta-actions .primary-button,.v12-hosting-cta-actions .secondary-button{width:100%;min-width:0}}
@media(max-width:420px){
  .utility-bar-inner,.utility-group{min-width:0!important}.utility-group a,.utility-group span{white-space:normal!important;overflow-wrap:anywhere!important}
  .v12-plan-card,.v12-service-card,.dynamic-pricing-card{padding-left:20px!important;padding-right:20px!important}
  .brand span small{display:none}
}

/* Zoom and motion preferences. */
@media(prefers-reduced-motion:reduce){
  html:focus-within{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
@media(forced-colors:active){a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid CanvasText!important}}
