:root {
  --dgesp-primary: #533AE8;
  --dgesp-primary-soft: rgba(83, 58, 232, .075);
  --dgesp-primary-border: rgba(83, 58, 232, .16);
  --dgesp-text: #17171d;
  --dgesp-text-soft: #444650;
  --dgesp-muted: #777a86;
  --dgesp-line: #ebeaf1;
  --dgesp-soft: #f8f8fb;
  --dgesp-white: #fff;
  --dgesp-radius-lg: 18px;
  --dgesp-radius-md: 14px;
  --dgesp-shadow: 0 14px 38px rgba(20, 17, 45, .045);
}

.dgesp-page,
.dgesp-page * { box-sizing: border-box; }

.dgesp-page {
  direction: ltr;
  background: #fff;
  color: var(--dgesp-text);
  font-family: inherit;
  font-synthesis: none;
}

.dgesp-page a { -webkit-tap-highlight-color: transparent; }

.dgesp-container {
  width: min(1260px, calc(100% - 40px));
  margin-inline: auto;
}

.dgesp-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 290px;
  gap: 34px;
  align-items: stretch;
  padding: 24px 0 72px;
}

.dgesp-main-column { min-width: 0; align-self: start; }

.dgesp-progress {
  position: fixed;
  inset: 0 0 auto;
  z-index: 99999;
  height: 3px;
  pointer-events: none;
}

.dgesp-progress > span {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--dgesp-primary);
  transform: scaleX(0);
  transform-origin: left center;
  will-change: transform;
}

.dgesp-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  min-height: 24px;
  margin-bottom: 24px;
  color: #9597a0;
  font-size: 12px;
  line-height: 1.8;
}

.dgesp-breadcrumb a { color: inherit; text-decoration: none; }
.dgesp-breadcrumb a:hover { color: var(--dgesp-primary); }

.dgesp-hero { margin-bottom: 24px; }

.dgesp-kicker-row,
.dgesp-date-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px 13px;
}

.dgesp-kicker-row { margin-bottom: 14px; }

.dgesp-category-pill {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 4px 11px;
  border-radius: 999px;
  background: var(--dgesp-primary-soft);
  color: var(--dgesp-primary);
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}

.dgesp-meta-item,
.dgesp-date-row {
  color: var(--dgesp-muted);
  font-size: 12px;
}

.dgesp-meta-item a { color: var(--dgesp-text-soft); text-decoration: none; font-weight: 700; }
.dgesp-meta-dot { width: 4px; height: 4px; border-radius: 50%; background: #cacbd1; }

.dgesp-title {
  max-width: 910px;
  margin: 0;
  color: var(--dgesp-text);
  font-size: clamp(34px, 3.1vw, 46px);
  font-weight: 800;
  line-height: 1.45;
  letter-spacing: -.015em;
}

.dgesp-excerpt {
  max-width: 880px;
  margin: 14px 0 0;
  color: #656875;
  font-size: 16px;
  line-height: 2;
}

.dgesp-date-row { margin-top: 14px; }

.dgesp-featured {
  width: 100%;
  margin: 0 0 18px;
  overflow: hidden;
  border: 1px solid var(--dgesp-line);
  border-radius: 20px;
  background: var(--dgesp-soft);
  box-shadow: var(--dgesp-shadow);
}

.dgesp-featured img {
  display: block;
  width: 100%;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
  aspect-ratio: auto !important;
}

.dgesp-share-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 28px;
  padding: 11px 12px;
  border: 1px solid var(--dgesp-line);
  border-radius: 14px;
  background: #fff;
}

.dgesp-share-buttons { display: flex; flex-wrap: wrap; gap: 7px; }

.dgesp-icon-btn,
.dgesp-copy-shortlink {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 36px;
  padding: 7px 10px;
  border: 1px solid var(--dgesp-line);
  border-radius: 10px;
  background: var(--dgesp-soft);
  color: #4d505b;
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: .18s ease;
}

.dgesp-icon-btn svg,
.dgesp-copy-shortlink svg { width: 15px; height: 15px; fill: currentColor; flex: 0 0 auto; }

.dgesp-icon-btn:hover,
.dgesp-copy-shortlink:hover {
  border-color: var(--dgesp-primary-border);
  background: var(--dgesp-primary-soft);
  color: var(--dgesp-primary);
}

.dgesp-shortlink-inline {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  color: var(--dgesp-muted);
  font-size: 11px;
}

.dgesp-shortlink-inline code {
  max-width: 250px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  direction: ltr;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 11px;
  color: #555762;
}

.dgesp-shortlink-label { white-space: nowrap; }

.dgesp-content {
  color: #292a31;
  font-size: 17px;
  line-height: 2.15;
  overflow-wrap: anywhere;
}

.dgesp-content > *:first-child { margin-top: 0; }
.dgesp-content p { margin: 0 0 1.35em; }
.dgesp-content ul,
.dgesp-content ol { margin: 0 0 1.4em; padding-inline-start: 1.35em; }
.dgesp-content li + li { margin-top: .35em; }

.dgesp-content h2,
.dgesp-content h3,
.dgesp-content h4 {
  color: #22232a;
  scroll-margin-top: 110px;
}

.dgesp-content h2 {
  margin: 2.15em 0 .75em;
  font-size: 30px;
  font-weight: 800;
  line-height: 1.65;
}

.dgesp-content h3 {
  margin: 1.9em 0 .7em;
  font-size: 24px;
  font-weight: 750;
  line-height: 1.7;
}

.dgesp-content h4 { margin: 1.7em 0 .65em; font-size: 18px; line-height: 1.75; }
.dgesp-content a { color: var(--dgesp-primary); text-underline-offset: 3px; }
.dgesp-content img { max-width: 100%; height: auto; border-radius: 14px; }
.dgesp-content figure { max-width: 100%; margin-inline: auto; }
.dgesp-content iframe { max-width: 100%; border-radius: 14px; }

.dgesp-content blockquote {
  margin: 26px 0;
  padding: 16px 18px;
  border: 1px solid var(--dgesp-primary-border);
  border-inline-start: 4px solid var(--dgesp-primary);
  border-radius: 12px;
  background: var(--dgesp-primary-soft);
}

.dgesp-content pre {
  direction: ltr;
  text-align: left;
  overflow: auto;
  padding: 17px;
  border-radius: 14px;
  background: #17171d;
  color: #f7f7f8;
  font-size: 13px;
  line-height: 1.8;
}

.dgesp-content .wp-block-table { overflow-x: auto; }
.dgesp-content table { width: 100%; border-collapse: collapse; }
.dgesp-content th,
.dgesp-content td { border: 1px solid var(--dgesp-line); padding: 10px 12px; text-align: left; }

.dgesp-tags {
  margin-top: 34px;
  padding-top: 22px;
  border-top: 1px solid var(--dgesp-line);
}

.dgesp-section-mini-title {
  display: block;
  margin-bottom: 9px;
  color: var(--dgesp-muted);
  font-size: 11px;
  font-weight: 700;
}

.dgesp-tag-list { display: flex; flex-wrap: wrap; gap: 7px; }
.dgesp-tag-list a {
  padding: 7px 10px;
  border: 1px solid var(--dgesp-line);
  border-radius: 999px;
  background: var(--dgesp-soft);
  color: #4d4f59;
  text-decoration: none;
  font-size: 12px;
}
.dgesp-tag-list a:hover { color: var(--dgesp-primary); border-color: var(--dgesp-primary-border); }

.dgesp-author-card {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  margin-top: 34px;
  padding: 20px 22px;
  overflow: hidden;
  border: 1px solid rgba(83, 58, 232, .14);
  border-radius: 20px;
  background: linear-gradient(135deg, #fff 0%, #fff 58%, rgba(83, 58, 232, .055) 100%);
  box-shadow: 0 16px 42px rgba(34, 26, 82, .055);
}

.dgesp-author-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--dgesp-primary), rgba(83, 58, 232, .18));
}

.dgesp-author-glow {
  position: absolute;
  z-index: -1;
  width: 170px;
  height: 170px;
  left: -56px;
  top: -88px;
  border-radius: 50%;
  background: rgba(83, 58, 232, .09);
  filter: blur(4px);
  pointer-events: none;
}

.dgesp-author-avatar {
  width: 82px;
  height: 82px;
  padding: 4px;
  border: 1px solid rgba(83, 58, 232, .15);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 9px 24px rgba(31, 25, 67, .09);
}
.dgesp-author-avatar img { display: block; width: 100%; height: 100%; border-radius: 17px; object-fit: cover; }
.dgesp-author-info { min-width: 0; }
.dgesp-author-meta-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 6px; }
.dgesp-author-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 27px;
  padding: 4px 9px;
  border-radius: 999px;
  background: var(--dgesp-primary-soft);
  color: var(--dgesp-primary);
  font-size: 10px;
  font-weight: 800;
}
.dgesp-author-badge svg { width: 13px; height: 13px; fill: currentColor; }
.dgesp-author-count { color: #8a8c95; font-size: 10.5px; font-weight: 600; }
.dgesp-author-info h2 { margin: 0 0 4px; font-size: 21px; line-height: 1.55; }
.dgesp-author-info p { max-width: 720px; margin: 0 0 9px; color: #656873; font-size: 12.5px; line-height: 1.9; }
.dgesp-author-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--dgesp-primary) !important;
  font-size: 11.5px;
  font-weight: 800;
  text-decoration: none !important;
  transition: gap .18s ease, opacity .18s ease;
}
.dgesp-author-link svg { width: 15px; height: 15px; fill: currentColor; }
.dgesp-author-link:hover { gap: 8px; opacity: .82; }
.dgesp-text-link { color: var(--dgesp-primary); font-size: 12px; font-weight: 700; text-decoration: none; }

.dgesp-section { margin-top: 36px; }
.dgesp-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.dgesp-section-head h2 { margin: 0; font-size: 21px; line-height: 1.6; }
.dgesp-section-head h2 span { color: #9a9ca5; font-size: .65em; }

.dgesp-card-grid { display: grid; gap: 12px; }
.dgesp-card-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.dgesp-post-card {
  overflow: hidden;
  border: 1px solid var(--dgesp-line);
  border-radius: 14px;
  background: #fff;
  transition: transform .18s ease, box-shadow .18s ease;
}
.dgesp-post-card:hover { transform: translateY(-2px); box-shadow: var(--dgesp-shadow); }
.dgesp-post-card-media { display: block; overflow: hidden; background: var(--dgesp-soft); }
.dgesp-post-card-media img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .24s ease; }
.dgesp-post-card:hover .dgesp-post-card-media img { transform: scale(1.018); }
.dgesp-post-card-body { padding: 11px 12px 12px; }
.dgesp-post-card-body h3 { margin: 0 0 7px; font-size: 13px; line-height: 1.85; }
.dgesp-post-card-body h3 a { color: var(--dgesp-text); text-decoration: none; }
.dgesp-post-card-body span { color: #999ba4; font-size: 10px; }

/* Author posts: same visual language as the Blog Hub cards. */
.dgesp-author-posts-track {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.dgesp-blog-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #e9e8ef;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 26px rgba(24, 20, 52, .025);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.dgesp-blog-card:hover {
  transform: translateY(-3px);
  border-color: rgba(83, 58, 232, .18);
  box-shadow: 0 15px 36px rgba(24, 20, 52, .065);
}

.dgesp-blog-card-media {
  display: block;
  overflow: hidden;
  background: var(--dgesp-soft);
  text-decoration: none;
}

.dgesp-blog-card-media img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  transition: transform .28s ease;
}

.dgesp-blog-card:hover .dgesp-blog-card-media img { transform: scale(1.018); }

.dgesp-blog-card-body {
  display: flex;
  min-height: 156px;
  flex-direction: column;
  padding: 15px 16px 14px;
}

.dgesp-blog-card-body h3 {
  margin: 0;
  color: var(--dgesp-text);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.95;
}

.dgesp-blog-card-body h3 a {
  color: inherit;
  text-decoration: none;
}

.dgesp-blog-card-divider {
  width: 100%;
  height: 1px;
  margin: auto 0 11px;
  background: #efeff4;
}

.dgesp-blog-card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: #999ba4;
  font-size: 10.5px;
}

.dgesp-blog-card-meta time { white-space: nowrap; }

.dgesp-blog-card-meta a {
  overflow: hidden;
  color: var(--dgesp-primary);
  font-weight: 700;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dgesp-related-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.dgesp-related-card {
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr);
  min-height: 94px;
  overflow: hidden;
  border: 1px solid var(--dgesp-line);
  border-radius: 14px;
  background: #fff;
}
.dgesp-related-media { display: block; overflow: hidden; background: var(--dgesp-soft); }
.dgesp-related-media img { display: block; width: 100%; height: 100%; min-height: 94px; object-fit: cover; }
.dgesp-related-body { align-self: center; min-width: 0; padding: 10px 11px; }
.dgesp-related-body h3 { margin: 0 0 7px; font-size: 12px; line-height: 1.8; }
.dgesp-related-body h3 a { color: var(--dgesp-text); text-decoration: none; }
.dgesp-related-body span { color: #999ba4; font-size: 10px; }

.dgesp-sidebar { min-width: 0; align-self: stretch; position: relative; }
.dgesp-sidebar-sticky {
  position: sticky;
  top: 22px;
  height: max-content;
  display: grid;
  gap: 14px;
  max-height: calc(100vh - 44px);
  overflow: auto;
  scrollbar-width: thin;
  scrollbar-color: #dedee6 transparent;
}
.admin-bar .dgesp-sidebar-sticky { top: 54px; max-height: calc(100vh - 76px); }

.dgesp-sidebar-card {
  padding: 17px;
  border: 1px solid var(--dgesp-line);
  border-radius: 16px;
  background: #fff;
}

.dgesp-sidebar-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 11px;
}
.dgesp-sidebar-title-row h2 { margin: 0; font-size: 15px; line-height: 1.6; }
.dgesp-sidebar-accent { width: 22px; height: 3px; border-radius: 999px; background: var(--dgesp-primary); opacity: .75; }

.dgesp-toc-list,
.dgesp-toc-mobile-list { display: grid; gap: 2px; }
.dgesp-toc-list a,
.dgesp-toc-mobile-list a {
  display: block;
  padding: 7px 8px;
  border-radius: 8px;
  color: #666975;
  text-decoration: none;
  font-size: 11px;
  line-height: 1.75;
  transition: .18s ease;
}
.dgesp-toc-list a.is-sub,
.dgesp-toc-mobile-list a.is-sub { padding-inline-start: 19px; font-size: 10.5px; }
.dgesp-toc-list a:hover,
.dgesp-toc-list a.is-active,
.dgesp-toc-mobile-list a:hover,
.dgesp-toc-mobile-list a.is-active { color: var(--dgesp-primary); background: var(--dgesp-primary-soft); }

.dgesp-category-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 3px; }
.dgesp-category-list li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 9px;
  padding-inline-start: calc(9px + (var(--dgesp-cat-depth, 0) * 13px));
  border-radius: 9px;
  color: #464852;
  text-decoration: none;
  font-size: 11px;
  transition: .18s ease;
}
.dgesp-category-list li a:hover,
.dgesp-category-list li.is-current a { color: var(--dgesp-primary); background: var(--dgesp-primary-soft); }
.dgesp-category-list li.is-child a > span::before {
  content: "↳";
  display: inline-block;
  margin-inline-end: 5px;
  color: #b0b1ba;
  font-size: 10px;
}
.dgesp-category-list b {
  display: inline-grid;
  place-items: center;
  min-width: 25px;
  height: 25px;
  padding-inline: 6px;
  border-radius: 999px;
  background: var(--dgesp-soft);
  color: #989aa4;
  font-size: 9px;
  font-weight: 700;
}

.dgesp-mobile-toc { display: none; }

.dgesp-comments-section {
  margin-top: 40px;
  padding: 20px;
  border: 1px solid var(--dgesp-line);
  border-radius: 16px;
  background: #fff;
}
.dgesp-comments-head { margin-bottom: 16px; }

.dgesp-comment-list,
.dgesp-comment-list .children { list-style: none; margin: 0; padding: 0; }
.dgesp-comment-list { display: grid; gap: 10px; }
.dgesp-comment-list .children { display: grid; gap: 10px; margin: 10px 30px 0 0; }
.dgesp-comment-card { padding: 14px; border: 1px solid var(--dgesp-line); border-radius: 13px; background: var(--dgesp-soft); }
.dgesp-comment-head { display: flex; align-items: center; gap: 10px; }
.dgesp-comment-avatar img { display: block; width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.dgesp-comment-author-wrap { display: grid; gap: 2px; }
.dgesp-comment-author { font-size: 13px; }
.dgesp-comment-author-wrap time { color: #9a9ca5; font-size: 10px; }
.dgesp-comment-content { margin-top: 9px; color: #41434d; font-size: 13px; line-height: 1.95; }
.dgesp-comment-content p { margin: 0; }
.dgesp-comment-awaiting { margin-bottom: 5px !important; color: var(--dgesp-primary); font-weight: 700; }
.dgesp-comment-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 10px; }
.dgesp-vote-btn,
.dgesp-comment-actions .comment-reply-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 30px;
  padding: 5px 8px;
  border: 1px solid var(--dgesp-line);
  border-radius: 8px;
  background: #fff;
  color: #747680;
  text-decoration: none;
  font: inherit;
  font-size: 10px;
  cursor: pointer;
}
.dgesp-vote-btn svg { width: 13px; height: 13px; fill: currentColor; }
.dgesp-vote-btn.is-active { color: var(--dgesp-primary); border-color: var(--dgesp-primary-border); background: var(--dgesp-primary-soft); }
.dgesp-vote-btn:disabled { opacity: .55; cursor: wait; }

.dgesp-comment-form-wrap { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--dgesp-line); }
.dgesp-comment-form-title { margin: 0 0 13px; font-size: 17px; }
.dgesp-comment-form-title small a { margin-inline-start: 8px; color: var(--dgesp-primary); font-size: 10px; text-decoration: none; }
.dgesp-comment-form { display: grid; gap: 10px; }
.dgesp-comment-user-row,
.dgesp-comment-message-row { display: grid; gap: 6px; }
.dgesp-comment-form label { color: #555762; font-size: 11px; font-weight: 700; }
.dgesp-comment-form input,
.dgesp-comment-form textarea {
  width: 100%;
  border: 1px solid var(--dgesp-line);
  border-radius: 11px;
  background: #fff;
  color: var(--dgesp-text);
  font: inherit;
  outline: none;
}
.dgesp-comment-form input { height: 42px; padding: 0 12px; background: var(--dgesp-soft); color: #777985; }
.dgesp-comment-form textarea { min-height: 118px; resize: vertical; padding: 11px 12px; line-height: 1.9; }
.dgesp-comment-form input:focus,
.dgesp-comment-form textarea:focus { border-color: rgba(83,58,232,.4); box-shadow: 0 0 0 3px var(--dgesp-primary-soft); }
.dgesp-comment-submit-row { display: flex; align-items: center; justify-content: flex-start; gap: 10px; }
.dgesp-comment-form-status {
  color: #72747e;
  font-size: 10.5px;
  line-height: 1.7;
}
.dgesp-comment-form-status.is-success { color: #18864b; }
.dgesp-comment-form-status.is-error { color: #c53939; }
.dgesp-submit-comment,
.dgesp-login-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 8px 16px;
  border: 0;
  border-radius: 10px;
  background: var(--dgesp-primary);
  color: #fff;
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}
.dgesp-page a.dgesp-login-btn,
.dgesp-page a.dgesp-login-btn:visited {
  color: #fff !important;
  background: var(--dgesp-primary) !important;
  text-decoration: none !important;
  box-shadow: 0 8px 20px rgba(83, 58, 232, .16);
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.dgesp-page a.dgesp-login-btn:hover,
.dgesp-page a.dgesp-login-btn:focus-visible {
  color: #fff !important;
  background: #4630d4 !important;
  transform: translateY(-1px);
  box-shadow: 0 11px 26px rgba(83, 58, 232, .24);
}
.dgesp-page a.dgesp-login-btn:active { transform: translateY(0); }
.dgesp-login-note { padding-top: 4px; }

.dgesp-toast {
  position: fixed;
  right: 50%;
  bottom: 24px;
  z-index: 100000;
  transform: translate(50%, 16px);
  opacity: 0;
  visibility: hidden;
  padding: 9px 13px;
  border-radius: 10px;
  background: #17171d;
  color: #fff;
  font-family: inherit;
  font-size: 11px;
  transition: .18s ease;
}
.dgesp-toast.is-visible { transform: translate(50%, 0); opacity: 1; visibility: visible; }

.dgesp-deferred-section { content-visibility: auto; contain-intrinsic-size: 500px; }

@media (max-width: 1120px) {
  .dgesp-layout { grid-template-columns: minmax(0, 1fr) 260px; gap: 26px; }
  .dgesp-title { font-size: clamp(33px, 3.6vw, 44px); }
  .dgesp-card-grid-4,
  .dgesp-author-posts-track { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .dgesp-container { width: min(100% - 28px, 820px); }
  .dgesp-layout { display: block; padding-top: 18px; }
  .dgesp-sidebar { display: none; }
  .dgesp-mobile-toc {
    display: block;
    margin: 0 0 14px;
    border: 1px solid var(--dgesp-line);
    border-radius: 13px;
    background: #fff;
  }
  .dgesp-mobile-toc summary { cursor: pointer; list-style: none; padding: 12px 14px; font-size: 12px; font-weight: 700; }
  .dgesp-mobile-toc summary::-webkit-details-marker { display: none; }
  .dgesp-mobile-toc[open] summary { border-bottom: 1px solid var(--dgesp-line); }
  .dgesp-toc-mobile-list { padding: 8px; }
}

@media (max-width: 680px) {
  .dgesp-container { width: min(100% - 22px, 650px); }
  .dgesp-layout { padding-bottom: 48px; }
  .dgesp-breadcrumb { margin-bottom: 18px; font-size: 10px; }
  .dgesp-hero { margin-bottom: 18px; }
  .dgesp-kicker-row { margin-bottom: 11px; }
  .dgesp-title { font-size: clamp(28px, 8vw, 36px); line-height: 1.5; }
  .dgesp-excerpt { margin-top: 11px; font-size: 14px; line-height: 2; }
  .dgesp-date-row { margin-top: 11px; font-size: 10px; }
  .dgesp-featured { margin-bottom: 12px; border-radius: 15px; }
  .dgesp-share-strip { align-items: stretch; flex-direction: column; padding: 10px; margin-bottom: 22px; }
  .dgesp-share-buttons { display: grid; grid-template-columns: repeat(3, 1fr); }
  .dgesp-icon-btn { min-width: 0; padding-inline: 6px; }
  .dgesp-shortlink-inline { display: grid; grid-template-columns: auto minmax(0,1fr) auto; padding-top: 9px; border-top: 1px solid var(--dgesp-line); }
  .dgesp-shortlink-inline code { max-width: none; }
  .dgesp-content { font-size: 16px; line-height: 2.08; }
  .dgesp-content h2 { font-size: 25px; }
  .dgesp-content h3 { font-size: 21px; }
  .dgesp-author-card { grid-template-columns: 62px minmax(0, 1fr); gap: 13px; padding: 15px; border-radius: 16px; }
  .dgesp-author-avatar { width: 62px; height: 62px; padding: 3px; border-radius: 17px; }
  .dgesp-author-avatar img { border-radius: 13px; }
  .dgesp-author-info h2 { font-size: 17px; }
  .dgesp-author-count { width: 100%; }
  .dgesp-card-grid-4 { grid-template-columns: 1fr; }

  .dgesp-author-posts-section {
    width: 100%;
    overflow: hidden;
  }

  .dgesp-author-posts-section .dgesp-section-head {
    width: 100%;
  }

  .dgesp-author-posts-track {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 11px;
    padding: 2px 11px 12px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .dgesp-author-posts-track::-webkit-scrollbar { display: none; }

  .dgesp-blog-card {
    flex: 0 0 min(82vw, 330px);
    scroll-snap-align: start;
    border-radius: 17px;
  }

  .dgesp-blog-card-body { min-height: 146px; padding: 14px 14px 13px; }
  .dgesp-blog-card-body h3 { font-size: 14px; line-height: 1.9; }
  .dgesp-related-grid { grid-template-columns: 1fr; }
  .dgesp-related-card { grid-template-columns: 104px minmax(0,1fr); }
  .dgesp-comments-section { margin-top: 34px; padding: 15px; }
  .dgesp-comment-list .children { margin-inline-start: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .dgesp-page *,
  .dgesp-toast { scroll-behavior: auto !important; transition: none !important; }
}

/* 2.2.2: desktop square featured images only */
@media (min-width: 1025px) { .dgesp-featured-square { max-width: 650px; margin-inline: auto; } }
.dgesp-post-media { border:1px solid #e5e3f5; border-radius:20px; padding:22px; margin:26px 0; background:#fff; direction:ltr; }
.dgesp-post-media h2 { font-size:21px; margin:0 0 17px; }
.dgesp-download-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.dgesp-download-link { display:flex;align-items:center;gap:12px;padding:15px;border:1px solid #ece9ff;border-radius:15px;text-decoration:none!important;background:#faf9ff;transition:.2s; }
.dgesp-download-link:hover { border-color:#533ae8; transform:translateY(-2px); }
.dgesp-download-icon { flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#533ae8;color:#fff;font-size:22px; }
.dgesp-download-title {color:#252139;font-weight:700;overflow-wrap:anywhere;}
.dgesp-video-item {margin:0 auto 20px;text-align:center;max-width:100%;}
.dgesp-video-item h3 {font-size:16px;margin:0 0 12px;text-align:left;}
.dgesp-video-item video {display:block;width:auto;height:auto;max-width:100%;max-height:min(78vh,750px);margin:auto;border-radius:14px;background:#131321;}
.dgesp-video-item iframe {width:100%;aspect-ratio:16/9;height:auto;border:0;border-radius:14px;}
@media(max-width:640px) {.dgesp-download-grid{grid-template-columns:1fr}.dgesp-post-media{padding:15px}.dgesp-video-item video{max-height:72vh}}

/* 2.2.3: Download details and native-resolution video sizing */
.dgesp-download-link{min-width:0;gap:14px;flex-wrap:wrap}
.dgesp-download-info{display:flex;flex:1 1 140px;min-width:0;flex-direction:column;gap:5px}
.dgesp-download-title{font-size:14px;line-height:1.8}
.dgesp-download-description{font-size:12px;color:#77758b;line-height:1.7}
.dgesp-download-meta{display:flex;flex-wrap:wrap;gap:7px;font-size:11px;color:#6550c3}
.dgesp-download-meta span{background:#efebff;border-radius:7px;padding:3px 9px;direction:ltr;unicode-bidi:plaintext}
.dgesp-download-action{font-size:12px;font-weight:700;color:#533ae8;margin-inline-start:auto;white-space:nowrap}
.dgesp-video-item video.dgesp-adaptive-video{display:block;width:auto!important;height:auto!important;max-width:100%!important;max-height:min(78vh,760px)!important;aspect-ratio:auto!important;object-fit:contain!important;margin:0 auto;border-radius:14px;background:#151524}
.dgesp-video-item iframe{display:block;max-width:100%;margin:auto}
@media(max-width:640px){.dgesp-video-item video.dgesp-adaptive-video{max-height:72vh!important}.dgesp-download-action{margin-inline-start:0}}

/* 2.2.4: full-width standalone download cards */
.dgesp-post-media .dgesp-download-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;width:100%}
.dgesp-post-media .dgesp-download-link{display:flex;width:100%;min-width:0;align-items:center;flex-wrap:nowrap;gap:18px;min-height:110px;padding:20px 22px;border:1px solid #e6dfff;border-radius:17px;background:linear-gradient(110deg,#fff 0%,#faf9ff 100%);box-shadow:0 8px 28px rgba(46,32,97,.035);text-decoration:none!important;transition:border-color .2s,box-shadow .2s,transform .2s}
.dgesp-post-media .dgesp-download-link:hover,.dgesp-post-media .dgesp-download-link:focus-visible{border-color:#a393ff;box-shadow:0 12px 30px rgba(83,58,232,.09);transform:translateY(-2px)}
.dgesp-post-media .dgesp-download-icon{height:56px;width:56px;border-radius:15px;font-size:28px;flex:none;background:#533ae8;color:#fff}
.dgesp-post-media .dgesp-download-info{flex:1 1 auto;min-width:0;gap:7px}
.dgesp-post-media .dgesp-download-title{font-size:16px;color:#29233f}
.dgesp-post-media .dgesp-download-description{font-size:13px}
.dgesp-post-media .dgesp-download-meta span{padding:5px 10px;border-radius:8px}
.dgesp-post-media .dgesp-download-action{flex:none;padding:12px 16px;border-radius:11px;background:#f0ecff;color:#533ae8;font-size:13px;font-weight:700;margin-inline-start:auto}
/* Video width is determined from the video's own intrinsic dimensions by JS. */
.dgesp-post-media .dgesp-video-item video.dgesp-adaptive-video{display:block!important;max-width:100%!important;max-height:76vh!important;object-fit:contain!important;background:#151524;border-radius:14px;margin:0 auto!important}
@media(max-width:640px){.dgesp-post-media .dgesp-download-link{gap:12px;padding:14px;flex-wrap:wrap}.dgesp-post-media .dgesp-download-icon{height:46px;width:46px}.dgesp-post-media .dgesp-download-action{width:100%;text-align:center;margin:0}.dgesp-post-media .dgesp-video-item video.dgesp-adaptive-video{max-height:70vh!important}}

/* DrGraphic 2.2.6 - isolated video frame prevents global theme player stretching */
.dgesp-post-media .dgesp-video-item .dgesp-video-frame{display:block!important;position:relative!important;width:100%;max-width:100%!important;height:auto;margin:0 auto 12px!important;overflow:hidden;border-radius:14px;background:#151524;box-sizing:border-box!important}
.dgesp-post-media .dgesp-video-item .dgesp-video-frame video.dgesp-adaptive-video{display:block!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;aspect-ratio:auto!important;object-fit:contain!important;margin:0!important;border-radius:0!important;background:#151524!important}
.dgesp-post-media .dgesp-video-item .dgesp-video-frame:not([style*="height"]){aspect-ratio:16/9!important;height:auto!important}

/* 2.2.7: MediaElement.js must honor the computed natural-aspect frame, not the source pixel size. */
.dgesp-post-media .dgesp-video-frame > .mejs-container,
.dgesp-post-media .dgesp-video-frame .mejs-inner,
.dgesp-post-media .dgesp-video-frame .mejs-mediaelement,
.dgesp-post-media .dgesp-video-frame .mejs-layers {max-width:100%!important;box-sizing:border-box!important;}
.dgesp-post-media .dgesp-video-frame .mejs-mediaelement video {object-fit:contain!important;max-width:100%!important;max-height:100%!important;}
.dgesp-post-media .dgesp-video-frame .mejs-controls {width:100%!important;}

/* 2.2.8 - Single-post back-to-top button */
.dgesp-back-to-top{position:fixed;right:24px;bottom:24px;z-index:9999;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:0;border-radius:14px;background:#533ae8;color:#fff;box-shadow:0 8px 25px rgba(83,58,232,.24);cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px);transition:opacity .2s ease,transform .2s ease,visibility .2s ease,background-color .2s ease}
.dgesp-back-to-top.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.dgesp-back-to-top:hover{background:#432cc7;transform:translateY(-3px)}
.dgesp-back-to-top:focus-visible{outline:3px solid #b6aaff;outline-offset:3px}
@media(max-width:640px){.dgesp-back-to-top{right:16px;bottom:20px;width:44px;height:44px;border-radius:12px}}
@media(prefers-reduced-motion:reduce){.dgesp-back-to-top{transition:none}}

/* DGESP 2.4.2: native/classic and Gutenberg text highlights, article content only.
 * Inline background colors selected in the editor override the default color. */
.dgesp-page .dgesp-content mark,
.dgesp-page .dgesp-content .dgesp-highlight {
  background-color: #ffdf7d;
  color: inherit;
  padding: 0 .09em;
  border-radius: 3px;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.dgesp-page .dgesp-content span[style*="background-color"] {
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/* DGESP 2.4.3 — keep article H2/H3 typography independent from theme,
 * Gutenberg heading style attributes and global heading rules.
 * No change to unrelated headings in the single-post layout. */
.dgesp-page .dgesp-main-column .dgesp-content.entry-content h2 {
  font-size: 30px !important;
}
.dgesp-page .dgesp-main-column .dgesp-content.entry-content h3 {
  font-size: 24px !important;
}
@media (max-width: 680px) {
  .dgesp-page .dgesp-main-column .dgesp-content.entry-content h2 {
    font-size: 25px !important;
  }
  .dgesp-page .dgesp-main-column .dgesp-content.entry-content h3 {
    font-size: 21px !important;
  }
}

/* Isolate the copy control from Hello Elementor button styles. */
.dgesp-page .dgesp-share-strip button.dgesp-copy-shortlink[type="button"] {
  appearance:none;display:inline-flex;align-items:center;justify-content:center;
  flex:0 0 auto;gap:6px;min-height:36px;width:auto;margin:0;padding:7px 10px;
  border:1px solid var(--dgesp-line);border-radius:10px;
  background:var(--dgesp-soft);color:#4d505b;font:inherit;font-size:11px;
  font-weight:700;line-height:1.4;text-transform:none;letter-spacing:normal;
  box-shadow:none;cursor:pointer;
}
.dgesp-page .dgesp-share-strip button.dgesp-copy-shortlink[type="button"]:hover {
  border-color:var(--dgesp-primary-border);background:var(--dgesp-primary-soft);color:var(--dgesp-primary);
}
.dgesp-page .dgesp-share-strip button.dgesp-copy-shortlink[type="button"]:focus-visible {
  outline:2px solid var(--dgesp-primary);outline-offset:3px;
}
.dgesp-page .dgesp-comments-note {margin:12px 0;color:var(--dgesp-muted);font-size:13px;line-height:1.8;}

/* Keep the article comment form consistent under Hello Elementor controls. */
.dgesp-page .dgesp-comments-section form.dgesp-comment-form {gap:16px;min-width:0;}
.dgesp-page .dgesp-comment-form .dgesp-comment-user-row,
.dgesp-page .dgesp-comment-form .dgesp-comment-message-row {gap:8px;min-width:0;}
.dgesp-page .dgesp-comment-form label {margin:0;font-size:12px;line-height:1.5;}
.dgesp-page .dgesp-comment-form input[type="text"],
.dgesp-page .dgesp-comment-form textarea {
  appearance:none;box-sizing:border-box;width:100%;max-width:100%;min-width:0;margin:0;
  border:1px solid var(--dgesp-line);border-radius:11px;outline:none;box-shadow:none;
  background:#fff;color:var(--dgesp-text);font:inherit;font-size:14px;text-align:left;
}
.dgesp-page .dgesp-comment-form input[type="text"] {height:44px;padding:0 13px;}
.dgesp-page .dgesp-comment-form input[type="text"][readonly] {background:var(--dgesp-soft);color:#777985;}
.dgesp-page .dgesp-comment-form textarea {min-height:140px;padding:12px 13px;line-height:1.7;resize:vertical;}
.dgesp-page .dgesp-comment-form input[type="text"]:focus,
.dgesp-page .dgesp-comment-form textarea:focus {outline:none;border-color:var(--dgesp-primary);box-shadow:0 0 0 3px var(--dgesp-primary-soft);}
.dgesp-page .dgesp-comment-form button.dgesp-submit-comment[type="submit"] {
  appearance:none;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  width:auto;min-height:42px;margin:0;padding:10px 18px;border:1px solid var(--dgesp-primary);
  border-radius:10px;background:var(--dgesp-primary);color:#fff;font:inherit;font-size:13px;
  font-weight:600;line-height:1.5;text-transform:none;letter-spacing:normal;box-shadow:none;cursor:pointer;
}
.dgesp-page .dgesp-comment-form button.dgesp-submit-comment[type="submit"]:hover {background:#4630d4;border-color:#4630d4;color:#fff;}
.dgesp-page .dgesp-comment-form button.dgesp-submit-comment[type="submit"]:focus-visible {outline:2px solid var(--dgesp-primary);outline-offset:3px;}
.dgesp-page .dgesp-comment-form button.dgesp-submit-comment[type="submit"]:disabled {opacity:.65;cursor:wait;}
.dgesp-page .dgesp-comment-submit-row {flex-wrap:wrap;}

/* Preserve the article scroll control under Hello Elementor button rules. */
.dgesp-page button.dgesp-back-to-top[type="button"] {
  appearance:none;display:flex;align-items:center;justify-content:center;
  width:48px;height:48px;min-width:0;min-height:0;margin:0;padding:0;
  border:0;border-radius:14px;background:#533ae8;color:#fff;
  line-height:1;box-shadow:0 8px 25px rgba(83,58,232,.24);text-decoration:none;
}
.dgesp-page button.dgesp-back-to-top[type="button"] svg {
  display:block;width:22px;height:22px;flex:0 0 22px;fill:none;
  stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
}
.dgesp-page button.dgesp-back-to-top[type="button"]:hover {background:#432cc7;color:#fff;}
.dgesp-page button.dgesp-back-to-top[type="button"]:focus-visible {outline:3px solid #b6aaff;outline-offset:3px;}
@media(max-width:640px){.dgesp-page button.dgesp-back-to-top[type="button"]{width:44px;height:44px;border-radius:12px;}}

/* Isolate user comment cards and actions from theme button styles. */
.dgesp-page .dgesp-comment-list .dgesp-comment-card {min-width:0;padding:16px;border:1px solid var(--dgesp-line);border-radius:13px;background:var(--dgesp-soft);}
.dgesp-page .dgesp-comment-list .dgesp-comment-head {gap:10px;}
.dgesp-page .dgesp-comment-list .dgesp-comment-author-wrap {min-width:0;overflow-wrap:anywhere;}
.dgesp-page .dgesp-comment-list .dgesp-comment-content {overflow-wrap:anywhere;}
.dgesp-page .dgesp-comment-list .children {margin:12px 0 0 20px;padding:0;min-width:0;}
.dgesp-page .dgesp-comment-actions button.dgesp-vote-btn[type="button"],
.dgesp-page .dgesp-comment-actions a.comment-reply-link {
  appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;
  width:auto;min-width:40px;min-height:32px;height:auto;margin:0;padding:6px 10px;
  border:1px solid var(--dgesp-line);border-radius:9px;background:#fff;color:#747680;
  font:inherit;font-size:12px;font-weight:500;line-height:1.4;letter-spacing:normal;
  text-transform:none;text-decoration:none;box-shadow:none;cursor:pointer;
}
.dgesp-page .dgesp-comment-actions button.dgesp-vote-btn[type="button"] svg {display:block;flex:0 0 14px;width:14px;height:14px;fill:currentColor;}
.dgesp-page .dgesp-comment-actions button.dgesp-vote-btn[type="button"]:hover,
.dgesp-page .dgesp-comment-actions button.dgesp-vote-btn[type="button"].is-active,
.dgesp-page .dgesp-comment-actions a.comment-reply-link:hover {
  background:var(--dgesp-primary-soft);border-color:var(--dgesp-primary-border);color:var(--dgesp-primary);
}
.dgesp-page .dgesp-comment-actions button.dgesp-vote-btn[type="button"]:focus-visible,
.dgesp-page .dgesp-comment-actions a.comment-reply-link:focus-visible {outline:2px solid var(--dgesp-primary);outline-offset:2px;}
.dgesp-page .dgesp-comment-actions button.dgesp-vote-btn[type="button"]:disabled {opacity:.55;cursor:wait;}
@media(max-width:640px){.dgesp-page .dgesp-comment-list .dgesp-comment-card{padding:13px}.dgesp-page .dgesp-comment-list .children{margin-left:10px}}
