/* Shared UK / India / USA single-post layout. Theme Builder modules remain editable. */
body.single-post .et-l--body :is(#postcontent, .postcontent) > .et_pb_row,
body.single-post .et-l--body .et_pb_section_2_tb_body > .et_pb_row {
  width: 90% !important;
  max-width: none !important;
  margin-inline: auto !important;
}

/* Ordinary stories need their own reading rail; project posts already have a
   support column, so discovery sits below that donation panel. */
body.single-post .et-l--body .postcontent > .et_pb_row > .et_pb_column {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(270px, 21%);
  align-items: start;
  gap: clamp(28px, 3vw, 56px);
  width: 100% !important;
  max-width: none !important;
}
body.single-post .et-l--body .postcontent .et_pb_post_content { min-width: 0; }
body.single-post .et-l--body .postcontent .et_pb_post_content :is(p, li) { max-width: 84ch; }
body.single-post .et-l--body #postcontent > .et_pb_row > .et_pb_column { min-width: 0; }
body.single-post .et-l--body #postcontent .ns-article-aside { width: 100%; max-width: 560px; margin: 28px auto 0; }
body.single-post .et-l--body #postcontent .ns-article-aside { gap: 0; }
body.single-post .et-l--body #postcontent .ns-article-aside__card {
  padding: 26px 0;
  border: 0;
  border-top: 1px solid var(--gcid-ns-line, #EEDCCF);
  border-radius: 0;
  background: transparent;
}

.ns-article-aside { display: grid; gap: 18px; min-width: 0; font-family: "Figtree", system-ui, sans-serif; }
.ns-article-aside__card {
  padding: clamp(22px, 2vw, 30px);
  border: 1px solid var(--gcid-ns-line, #EEDCCF);
  border-radius: 14px;
  background: var(--gcid-ns-panel, #FFF3EC);
}
.ns-article-aside h2 {
  margin: 0 0 18px !important;
  padding: 0 !important;
  font-family: "Newsreader", Georgia, serif !important;
  font-size: clamp(1.45rem, 1.8vw, 1.8rem) !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  color: var(--gcid-ns-ink, #1F2945) !important;
}
.ns-article-aside ul { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.ns-article-aside li { margin: 0 !important; padding: 0 !important; }
.ns-article-aside__posts li + li { margin-top: 16px !important; padding-top: 16px !important; border-top: 1px solid var(--gcid-ns-line, #EEDCCF); }
.ns-article-aside a { color: var(--gcid-ns-action-dark, #9E4230) !important; text-decoration: none !important; }
.ns-article-aside a:hover { text-decoration: underline !important; text-underline-offset: .2em; }
.ns-article-aside a:focus-visible,
.ns-article-aside :is(input, button):focus-visible { outline: 3px solid var(--gcid-ns-ink, #1F2945) !important; outline-offset: 3px; }
.ns-article-aside__posts a { display: block; font-weight: 700; line-height: 1.35; }
.ns-article-aside__posts span { display: block; margin-top: 3px; color: #665A56; font-size: .84rem; }
.ns-article-aside__all { display: inline-block; margin-top: 20px; font-weight: 700; }
.ns-article-aside__topics { display: flex; flex-wrap: wrap; gap: 8px !important; }
.ns-article-aside__topics a { display: inline-flex; align-items: center; min-height: 38px; padding: 7px 11px; border: 1px solid var(--gcid-ns-line, #EEDCCF); border-radius: 7px; background: #FFFCF8; font-size: .9rem; line-height: 1.2; }
.ns-article-aside form { display: grid; gap: 10px; }
.ns-article-aside input[type="search"] { width: 100%; min-width: 0; min-height: 48px; padding: 11px 13px; border: 1px solid #A87C6D; border-radius: 8px; background: #FFFCF8; color: var(--gcid-ns-ink, #1F2945); font: inherit; font-size: 16px; }
.ns-article-aside button { min-height: 44px; padding: 9px 16px; border: 1px solid var(--gcid-ns-action, #B4533A); border-radius: 8px; background: var(--gcid-ns-action, #B4533A); color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.ns-article-aside button:hover { background: var(--gcid-ns-action-dark, #9E4230); }

@media (max-width: 980px) {
  body.single-post .et-l--body .postcontent > .et_pb_row > .et_pb_column { grid-template-columns: minmax(0, 1fr); }
  body.single-post .et-l--body :is(#postcontent, .postcontent) > .et_pb_row > .et_pb_column { width: 100% !important; }
  body.single-post .et-l--body #postcontent .ns-article-aside { margin-top: 22px; }
}
@media (max-width: 600px) {
  .ns-article-aside { gap: 14px; }
  .ns-article-aside__card { padding: 20px; }
}
