/* Pagination is a footer of the content surface, not a second raised card.
   This sheet is shared by public pages and the component editor canvas. */
.v4-body {
  --v4-pagination-surface:#fff;
  --v4-pagination-border:#efdfd8;
  --v4-pagination-divider:#eee5e8;
  --v4-pagination-gap:36px;
  --v4-pagination-inset:24px;
}
.v4-body .v4-pagination {
  flex-wrap:wrap; gap:16px 24px; margin:0; padding:0;
  border:0; border-radius:0; background:transparent; box-shadow:none;
  color:#817479; font:14px/1.5 var(--v4-ui-font);
}
.v4-body .v4-module--pagination:has(>.v4-pagination) {
  padding:var(--v4-pagination-inset);
  border:1px solid var(--v4-pagination-border); border-radius:12px;
  background:var(--v4-pagination-surface); box-shadow:none;
}
.v4-body .v4-pagination>div { flex-wrap:wrap; justify-content:center; gap:8px; }
.v4-body .v4-pagination :is(a,div>span) {
  width:36px; height:36px; background:transparent; border:0; border-radius:50%;
}
.v4-body .v4-pagination a:hover { color:var(--red); background:#fff4f6; }
.v4-body .v4-pagination a[aria-current="page"] { color:#fff; background:var(--red); font-weight:600; }
.v4-body .v4-pagination>div>span { color:#c8bfc2; }
.v4-body .v4-pagination form { flex-wrap:wrap; justify-content:center; gap:10px; }
.v4-body .v4-pagination label { white-space:nowrap; }
.v4-body .v4-pagination input {
  width:48px; height:36px; margin-left:10px; padding:4px;
  border:1px solid #e7e0e2; border-radius:6px; background:transparent; color:#62565b;
}
.v4-body .v4-pagination button {
  min-height:36px; padding:6px 12px; border:1px solid #e7e0e2;
  border-radius:6px; background:transparent; color:#62565b; font-size:13px;
}
.v4-body .v4-pagination button:hover { color:var(--red); border-color:var(--red); background:#fff4f6; }
.v4-body .v4-pagination :is(a,button,input):focus-visible { outline:2px solid var(--red); outline-offset:3px; }

/* Existing directory tables already contain their pagination. Their final row
   supplies the divider, so only spacing is needed here. */
.v4-body .v4-directory-results>.v4-pagination { margin:0; padding:24px 0 0; }
.v4-body .v4-panel>.v4-pagination { margin:0 var(--v4-pagination-inset); padding:24px 0; border-top:1px solid var(--v4-pagination-divider); }

/* Join adjacent full-width list modules only. Narrow, rearranged, or hidden
   mobile modules retain a complete standalone footer and their editor layout. */
.v4-body :where(.v4-layout,.v4-module-grid):not(:has(>[style*="--v4-mobile-order:"],>[style*="--v4-mobile-span:"],>[style*="--v4-mobile-hidden:1;"]))>
:is(.v4-module--articles,.v4-module--documents,.v4-module--donors)[data-module-span="12"]:has(+.v4-module--pagination[data-module-span="12"]>.v4-pagination)>.v4-panel {
  border-color:var(--v4-pagination-border); border-bottom:0;
  border-bottom-left-radius:0; border-bottom-right-radius:0;
  background:var(--v4-pagination-surface); box-shadow:none;
}
.v4-body :where(.v4-layout,.v4-module-grid):not(:has(>[style*="--v4-mobile-order:"],>[style*="--v4-mobile-span:"],>[style*="--v4-mobile-hidden:1;"]))>
:is(.v4-module--articles,.v4-module--documents,.v4-module--donors)[data-module-span="12"]:has(>.v4-panel)+.v4-module--pagination[data-module-span="12"]:has(>.v4-pagination) {
  margin-top:calc(-1 * var(--v4-pagination-gap));
  padding:0 var(--v4-pagination-inset) var(--v4-pagination-inset);
  border-top:0; border-top-left-radius:0; border-top-right-radius:0;
}
.v4-body :where(.v4-layout,.v4-module-grid):not(:has(>[style*="--v4-mobile-order:"],>[style*="--v4-mobile-span:"],>[style*="--v4-mobile-hidden:1;"]))>
:is(.v4-module--articles,.v4-module--documents,.v4-module--donors)[data-module-span="12"]:has(>.v4-panel)+.v4-module--pagination[data-module-span="12"]:has(>.v4-pagination)>.v4-pagination {
  padding-top:24px; border-top:1px solid var(--v4-pagination-divider);
}

.v4-body .v4-module-appearance--sections>.v4-module-grid { --v4-pagination-gap:0px; }
@media(max-width:1199px), (pointer:coarse) {
  .v4-body { --v4-pagination-gap:24px; }
  .v4-body [style*="--v4-mobile-gap:"]>.v4-module-grid { --v4-pagination-gap:var(--v4-mobile-gap); }
}
@media(max-width:760px) {
  .v4-body { --v4-pagination-inset:18px; }
  .v4-body .v4-pagination { font-size:13px; gap:14px; }
  .v4-body .v4-pagination>div { gap:6px; }
  .v4-body .v4-pagination :is(a,div>span) { width:32px; height:32px; }
  .v4-body .v4-directory-results>.v4-pagination { padding-top:20px; }
}
