/* JavaScript marketing-site adapter. Shared v3 owns shell/prose/provider chrome;
   authored helper classes and specialized comparisons remain site-owned. */
html { scrollbar-gutter: stable; }
.javascript-site .dpu-site-subnav nav { gap: 0 24px; }
.javascript-site .dpu-page-title { margin: 0 0 24px; overflow-wrap: anywhere; }
.javascript-site .javascript-breadcrumbs { flex-wrap: nowrap; margin-bottom: 12px; }
.javascript-breadcrumbs > a { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.javascript-breadcrumbs > a:first-child { flex: none; }
.javascript-breadcrumbs .dpu-icon { flex: none; }
.javascript-crumb-current { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.javascript-copy { min-width: 0; }
/* CMS screenshot pixels already include their shadow. Never add a second frame. */
.javascript-copy.dpu-prose img { max-width: 100%; height: auto; margin-left: -5px; padding: 0; border: 0; border-radius: 0; box-shadow: none; }
.javascript-copy h2:not(:where(.buy-matrix *)) { margin-top: 44px; margin-bottom: 8px; scroll-margin-top: 24px; }
.javascript-copy h2 + h3 { margin-top: 0; margin-bottom: 24px; font-size: 18px; font-weight: 600; line-height: 1.5; color: var(--dpu-ink); }
.javascript-copy li > p { margin: 0; }
.javascript-copy > h2:first-child { margin-top: 0; }
.javascript-copy .article-text > p:first-child:has(> img:only-child) { margin-bottom: 24px; }
.javascript-copy .article-text > p:first-child:has(> img:only-child) + p:has(> strong:only-child) { font-size: 17px; line-height: 1.6; color: var(--dpu-ink); }
.javascript-copy .article-text > p:first-child + p > strong:only-child { font-weight: 600; }
.javascript-copy p:has(> a:is(.inline-btn,.inline-btn-lighter,.inline-btn-launch,.inline-btn-lighter-launch)):not(:where(.buy-matrix *)) { margin-block: 22px; }
/* A single editor-selected class owns each action. No text/URL/position inference.
   Explicit Buy comparison actions have their own reviewed sizing and CSS. */
.javascript-copy a:is(.inline-btn,.inline-btn-lighter,.inline-btn-launch,.inline-btn-lighter-launch,.dpw-button-action):not(:where(.buy-matrix *)) {
  box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-inline-size: min(160px, 100%); max-inline-size: 100%; min-height: 38px; padding: 7px 14px;
  border: 1px solid #bbc7cf; border-radius: var(--dpu-radius); background: #fff; color: #355267;
  font-family: inherit; font-size: 14px; font-weight: 500; line-height: 1.4;
  text-decoration: none; text-align: center; vertical-align: middle;
}
.javascript-copy a:is(.inline-btn,.inline-btn-lighter,.inline-btn-launch,.inline-btn-lighter-launch,.dpw-button-action):hover:not(:where(.buy-matrix *)) {
  color: #20415a; background: #f3f7fa; border-color: #90a8b8; text-decoration: none;
}
.javascript-copy a:is(.inline-btn,.inline-btn-launch,.dpw-button-action):not(:where(.buy-matrix *)) {
  background: var(--dpu-blue); border-color: var(--dpu-blue); color: #fff; box-shadow: 0 1px 1px #082d4710;
}
.javascript-copy a:is(.inline-btn,.inline-btn-launch,.dpw-button-action):is(:hover,:focus):not(:where(.buy-matrix *)) {
  background: var(--dpu-blue-hover); border-color: var(--dpu-blue-hover); color: #fff;
}
.javascript-copy a:is(.inline-btn-launch,.inline-btn-lighter-launch)::before {
  content: ""; flex: 0 0 18px; width: 18px; height: 18px; background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6m0-6L10 14M10 5H5a1 1 0 0 0-1 1v13a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1v-5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.javascript-copy .dpw-button-action.disabled { opacity: .55; cursor: not-allowed; box-shadow: none; }
.javascript-site main a:focus-visible { outline: 2px solid var(--dpu-focus); outline-offset: 3px; }
.javascript-copy pre { max-width: 100%; overflow: auto; }
/* Retain authored tables and the generated Lite/Pro matrix as distinct objects. */
.javascript-copy table:not(:where(.buy-matrix *)) { width: 100%; border-collapse: collapse; font-size: 14px; margin-block: 24px; }
.javascript-copy table:not(:where(.buy-matrix *)) :is(th,td) { border: 1px solid var(--dpu-line); padding: 10px 12px; font-size: 14px; text-align: start; }
.javascript-copy table:not(:where(.buy-matrix *)) th { background: var(--dpu-wash); color: var(--dpu-ink); font-weight: 500; }
.javascript-copy :is(td,th) > p:first-child { margin-top: 0; }
.javascript-copy :is(td,th) > p:last-child { margin-bottom: 0; }
.javascript-copy table.features { table-layout: auto; }
.javascript-copy table.features td, .javascript-copy table.features th.header { text-align: center; }
.javascript-copy table.features td { width: 76px; background: #fff; }
.javascript-copy table.features th:first-child { text-align: start; }
.javascript-copy table.features th.category { background: #eef2f5; font-weight: 600; }
.javascript-copy table.features th.category + td, .javascript-copy table.features th.category + td + td { background: #f7f9fb; }
.javascript-copy table.features th a { color: inherit; text-decoration: none; }
.javascript-copy table.features th a:hover { color: var(--dpu-blue); text-decoration: underline; }
.javascript-copy table.features .dp-edition-icon { display: block; margin: 0 auto; }
/* Existing authenticated navigation stays outside authored prose. */
.javascript-site .dpw-body-edit {
  position: fixed; right: 18px; bottom: 18px; z-index: 2200; display: flex; align-items: center; gap: 8px;
  padding: 10px 12px; border-radius: 999px; background: rgba(20,27,44,.95); color: #f5f7ff;
  box-shadow: 0 16px 34px rgba(13,20,33,.35); backdrop-filter: blur(6px); font-family: "Segoe UI",Tahoma,sans-serif;
}
.javascript-site .dpw-admin-overlay-label { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: #b8c3df; }
.javascript-site .dpw-admin-overlay-action {
  display: inline-flex; align-items: center; justify-content: center; padding: 6px 11px;
  border-radius: 999px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12);
  color: #f5f7ff; font-size: 13px; text-decoration: none; font-weight: 600; line-height: 1;
}
.javascript-site .dpw-admin-overlay-action:hover { background: rgba(255,255,255,.16); border-color: rgba(255,255,255,.25); }
.javascript-site .dpw-admin-overlay-action:focus-visible { outline: 2px solid #8fd0ff; outline-offset: 2px; }
/* Authored NBSP separators stay text, not anonymous flex items. Add a little
   desktop breathing room; narrow wrapping must not indent subsequent lines. */
@media (min-width: 721px) {
  .javascript-copy p > a:is(.inline-btn,.inline-btn-lighter,.inline-btn-launch,.inline-btn-lighter-launch) + a:is(.inline-btn,.inline-btn-lighter,.inline-btn-launch,.inline-btn-lighter-launch):not(:where(.buy-matrix *)) { margin-inline-start: 6px; }
}
@media (max-width: 720px) {
  .javascript-site .dpw-body-edit { left: 10px; right: 10px; bottom: 10px; flex-wrap: wrap; border-radius: 16px; }
  .javascript-copy table:not(:where(.buy-matrix *)) :is(th,td) { padding: 8px; }
  .javascript-copy table.features td { width: 44px; }
}
@media (max-width: 540px) {
  .javascript-copy .article-text > p:first-child:has(> img:only-child) + p:has(> strong:only-child) { font-size: 16px; }
}
