/**
 * Author Personal Blog - Sidebar & Widgets Stylesheet
 * File: assets/css/sidebar.css
 * 
 * Scope: Sidebar Architecture, Classic WordPress Core Widgets (Monster Widget Support),
 *        and Author-Focused Custom Dynamic Widgets (Author Mini Bio, Upcoming Book,
 *        Mini Newsletter, Popular Posts, Category Pill Badges).
 */

/* ==========================================================================
   1. Sidebar Base & Widget Wrappers (.apb-sidebar, .widget-area, #secondary)
   ========================================================================== */
.apb-sidebar,
.widget-area,
#secondary {
  display: flex;
  flex-direction: column;
  gap: var(--apb-space-8);
  width: 100%;
  min-width: 0;
}

.apb-widget,
.apb-sidebar .widget,
.widget-area .widget,
#secondary .widget {
  background-color: var(--apb-color-bg-card);
  border: 1px solid var(--apb-color-border);
  border-radius: var(--apb-radius-md);
  padding: clamp(1.25rem, 3vw, 1.5rem);
  box-shadow: var(--apb-shadow-sm);
  transition: border-color var(--apb-transition-fast), box-shadow var(--apb-transition-fast);
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
}

.apb-widget:hover,
.apb-sidebar .widget:hover,
.widget-area .widget:hover,
#secondary .widget:hover {
  border-color: var(--apb-color-border-dark);
}

/* Universal Widget Titles (Classic & Theme) */
.apb-widget-title,
.apb-sidebar .widget-title,
.apb-sidebar .widgettitle,
.apb-sidebar h2.widget-title,
.apb-sidebar h3.widget-title,
.apb-sidebar h4.widget-title,
.widget-area .widget-title,
.widget-area .widgettitle,
#secondary .widget-title,
#secondary .widgettitle {
  font-size: var(--apb-font-size-md);
  font-family: var(--apb-font-serif);
  font-weight: var(--apb-font-weight-bold);
  color: var(--apb-color-heading);
  margin-top: 0;
  margin-bottom: var(--apb-space-5);
  padding-bottom: var(--apb-space-3);
  border-bottom: 2px solid var(--apb-color-bg-alt);
  position: relative;
  letter-spacing: 0.02em;
  line-height: var(--apb-line-height-h4);
}

.apb-widget-title::after,
.apb-sidebar .widget-title::after,
.apb-sidebar .widgettitle::after,
.apb-sidebar h2.widget-title::after,
.apb-sidebar h3.widget-title::after,
.apb-sidebar h4.widget-title::after,
.widget-area .widget-title::after,
.widget-area .widgettitle::after,
#secondary .widget-title::after,
#secondary .widgettitle::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 36px;
  height: 2px;
  background-color: var(--apb-color-accent);
}

/* ==========================================================================
   2. Universal Classic WordPress Core Widgets
   ========================================================================== */

/* --- General List Reset for Classic Widgets --- */
.apb-sidebar .widget ul:not([class*="wp-block-"]),
.widget-area .widget ul:not([class*="wp-block-"]),
#secondary .widget ul:not([class*="wp-block-"]) {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
}

.apb-sidebar .widget ul:not([class*="wp-block-"]) li,
.widget-area .widget ul:not([class*="wp-block-"]) li,
#secondary .widget ul:not([class*="wp-block-"]) li {
  padding: 0.625rem 0;
  border-bottom: 1px solid var(--apb-color-bg-alt);
  font-size: var(--apb-font-size-sm);
  color: var(--apb-color-text);
  line-height: var(--apb-line-height-base);
  transition: color var(--apb-transition-fast);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--apb-space-2);
}

.apb-sidebar .widget ul:not([class*="wp-block-"]) li:first-child,
.widget-area .widget ul:not([class*="wp-block-"]) li:first-child,
#secondary .widget ul:not([class*="wp-block-"]) li:first-child {
  padding-top: 0;
}

.apb-sidebar .widget ul:not([class*="wp-block-"]) li:last-child,
.widget-area .widget ul:not([class*="wp-block-"]) li:last-child,
#secondary .widget ul:not([class*="wp-block-"]) li:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.apb-sidebar .widget ul:not([class*="wp-block-"]) li a,
.widget-area .widget ul:not([class*="wp-block-"]) li a,
#secondary .widget ul:not([class*="wp-block-"]) li a {
  color: var(--apb-color-heading);
  text-decoration: none;
  transition: color var(--apb-transition-fast);
  flex: 1 1 auto;
}

.apb-sidebar .widget ul:not([class*="wp-block-"]) li a:hover,
.widget-area .widget ul:not([class*="wp-block-"]) li a:hover,
#secondary .widget ul:not([class*="wp-block-"]) li a:hover {
  color: var(--apb-color-primary);
}

/* Nested Hierarchical Sub-Lists (Categories, Pages, Nav Menus) */
.apb-sidebar .widget ul:not([class*="wp-block-"]) .children,
.apb-sidebar .widget ul:not([class*="wp-block-"]) .sub-menu,
.apb-sidebar .widget ul:not([class*="wp-block-"]) ul,
.widget-area .widget ul:not([class*="wp-block-"]) .children,
.widget-area .widget ul:not([class*="wp-block-"]) .sub-menu,
.widget-area .widget ul:not([class*="wp-block-"]) ul,
#secondary .widget ul:not([class*="wp-block-"]) .children,
#secondary .widget ul:not([class*="wp-block-"]) .sub-menu,
#secondary .widget ul:not([class*="wp-block-"]) ul {
  width: 100%;
  flex-basis: 100%;
  display: flex;
  flex-direction: column;
  padding-left: var(--apb-space-3);
  margin-top: 0.5rem;
  border-left: 2px solid var(--apb-color-border);
  box-sizing: border-box;
}

.apb-sidebar .widget ul:not([class*="wp-block-"]) .children li,
.apb-sidebar .widget ul:not([class*="wp-block-"]) .sub-menu li,
.apb-sidebar .widget ul:not([class*="wp-block-"]) ul li,
.widget-area .widget ul:not([class*="wp-block-"]) .children li,
.widget-area .widget ul:not([class*="wp-block-"]) .sub-menu li,
.widget-area .widget ul:not([class*="wp-block-"]) ul li,
#secondary .widget ul:not([class*="wp-block-"]) .children li,
#secondary .widget ul:not([class*="wp-block-"]) .sub-menu li,
#secondary .widget ul:not([class*="wp-block-"]) ul li {
  padding: 0.45rem 0;
  width: 100%;
  box-sizing: border-box;
}

.apb-sidebar .widget ul:not([class*="wp-block-"]) .children li:last-child,
.apb-sidebar .widget ul:not([class*="wp-block-"]) .sub-menu li:last-child,
.apb-sidebar .widget ul:not([class*="wp-block-"]) ul li:last-child,
.widget-area .widget ul:not([class*="wp-block-"]) .children li:last-child,
.widget-area .widget ul:not([class*="wp-block-"]) .sub-menu li:last-child,
.widget-area .widget ul:not([class*="wp-block-"]) ul li:last-child,
#secondary .widget ul:not([class*="wp-block-"]) .children li:last-child,
#secondary .widget ul:not([class*="wp-block-"]) .sub-menu li:last-child,
#secondary .widget ul:not([class*="wp-block-"]) ul li:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

/* --- Search Widget (.widget_search) --- */
.apb-sidebar .widget_search form,
.apb-sidebar .widget_search .search-form,
.apb-sidebar .widget_search #searchform,
.widget-area .widget_search form,
.widget-area .widget_search .search-form,
#secondary .widget_search form,
#secondary .widget_search .search-form {
  display: flex;
  gap: var(--apb-space-2);
  align-items: stretch;
  width: 100%;
}

.apb-sidebar .widget_search form label,
.apb-sidebar .widget_search .search-form label,
.widget-area .widget_search form label,
.widget-area .widget_search .search-form label,
#secondary .widget_search form label,
#secondary .widget_search .search-form label {
  flex: 1 1 auto;
  margin: 0;
  display: flex;
  width: 100%;
}

.apb-sidebar .widget_search input[type="search"],
.apb-sidebar .widget_search input[type="text"],
.apb-sidebar .widget_search .search-field,
.widget-area .widget_search input[type="search"],
.widget-area .widget_search input[type="text"],
.widget-area .widget_search .search-field,
#secondary .widget_search input[type="search"],
#secondary .widget_search input[type="text"],
#secondary .widget_search .search-field {
  width: 100%;
  padding: 0.65rem 1rem;
  border: 1px solid var(--apb-color-border-dark);
  border-radius: var(--apb-radius-sm);
  background-color: #ffffff;
  color: var(--apb-color-heading);
  font-size: var(--apb-font-size-sm);
  font-family: var(--apb-font-sans);
  transition: border-color var(--apb-transition-fast), box-shadow var(--apb-transition-fast);
  box-sizing: border-box;
}

.apb-sidebar .widget_search input[type="search"]:focus,
.apb-sidebar .widget_search input[type="text"]:focus,
.apb-sidebar .widget_search .search-field:focus,
.widget-area .widget_search input[type="search"]:focus,
.widget-area .widget_search input[type="text"]:focus,
.widget-area .widget_search .search-field:focus,
#secondary .widget_search input[type="search"]:focus,
#secondary .widget_search input[type="text"]:focus,
#secondary .widget_search .search-field:focus {
  outline: none;
  border-color: var(--apb-color-primary);
  box-shadow: 0 0 0 3px rgba(13, 92, 99, 0.2);
}

.apb-sidebar .widget_search input[type="submit"],
.apb-sidebar .widget_search button[type="submit"],
.apb-sidebar .widget_search .search-submit,
.widget-area .widget_search input[type="submit"],
.widget-area .widget_search button[type="submit"],
.widget-area .widget_search .search-submit,
#secondary .widget_search input[type="submit"],
#secondary .widget_search button[type="submit"],
#secondary .widget_search .search-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.65rem 1.25rem;
  background-color: var(--apb-color-primary);
  color: #ffffff;
  font-family: var(--apb-font-sans);
  font-size: var(--apb-font-size-sm);
  font-weight: var(--apb-font-weight-semibold);
  border-radius: var(--apb-radius-sm);
  border: 1px solid var(--apb-color-primary);
  cursor: pointer;
  transition: all var(--apb-transition-fast);
  white-space: nowrap;
  flex-shrink: 0;
}

.apb-sidebar .widget_search input[type="submit"]:hover,
.apb-sidebar .widget_search button[type="submit"]:hover,
.apb-sidebar .widget_search .search-submit:hover,
.widget-area .widget_search input[type="submit"]:hover,
.widget-area .widget_search button[type="submit"]:hover,
.widget-area .widget_search .search-submit:hover,
#secondary .widget_search input[type="submit"]:hover,
#secondary .widget_search button[type="submit"]:hover,
#secondary .widget_search .search-submit:hover {
  background-color: var(--apb-color-primary-hover);
  border-color: var(--apb-color-primary-hover);
  transform: translateY(-1px);
}

/* --- Categories & Archives Widgets (.widget_categories, .widget_archive) --- */
.apb-sidebar .widget_categories ul:not([class*="wp-block-"]) li,
.apb-sidebar .widget_archive ul:not([class*="wp-block-"]) li,
.widget-area .widget_categories ul:not([class*="wp-block-"]) li,
.widget-area .widget_archive ul:not([class*="wp-block-"]) li,
#secondary .widget_categories ul:not([class*="wp-block-"]) li,
#secondary .widget_archive ul:not([class*="wp-block-"]) li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--apb-space-2);
}

.apb-sidebar .widget_categories ul:not([class*="wp-block-"]) li a,
.apb-sidebar .widget_archive ul:not([class*="wp-block-"]) li a,
.widget-area .widget_categories ul:not([class*="wp-block-"]) li a,
.widget-area .widget_archive ul:not([class*="wp-block-"]) li a,
#secondary .widget_categories ul:not([class*="wp-block-"]) li a,
#secondary .widget_archive ul:not([class*="wp-block-"]) li a {
  flex: 1 1 auto;
}

.apb-sidebar .widget_categories .children,
.apb-sidebar .widget_archive .children,
.apb-sidebar .widget_pages .children,
.apb-sidebar .widget_nav_menu .sub-menu,
.widget-area .widget_categories .children,
.widget-area .widget_archive .children,
.widget-area .widget_pages .children,
.widget-area .widget_nav_menu .sub-menu,
#secondary .widget_categories .children,
#secondary .widget_archive .children,
#secondary .widget_pages .children,
#secondary .widget_nav_menu .sub-menu {
  width: 100%;
  flex-basis: 100%;
  display: flex;
  flex-direction: column;
}

/* Post Counts (e.g. span.count or badges) */
.apb-sidebar .widget_categories .count,
.apb-sidebar .widget_archive .count,
.widget-area .widget_categories .count,
.widget-area .widget_archive .count,
#secondary .widget_categories .count,
#secondary .widget_archive .count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.15rem 0.55rem;
  font-size: var(--apb-font-size-xs);
  font-weight: var(--apb-font-weight-semibold);
  background-color: var(--apb-color-bg-alt);
  color: var(--apb-color-text-muted);
  border-radius: var(--apb-radius-full);
  border: 1px solid var(--apb-color-border);
  margin-left: auto;
  line-height: 1.3;
  flex: 0 0 auto;
}

/* --- Dropdowns / Select Fallbacks in Widgets --- */
.apb-sidebar .widget select,
.widget-area .widget select,
#secondary .widget select {
  width: 100%;
  padding: 0.65rem 1rem;
  font-size: var(--apb-font-size-sm);
  font-family: var(--apb-font-sans);
  color: var(--apb-color-heading);
  background-color: #ffffff;
  border: 1px solid var(--apb-color-border-dark);
  border-radius: var(--apb-radius-sm);
  cursor: pointer;
  transition: border-color var(--apb-transition-fast), box-shadow var(--apb-transition-fast);
  box-sizing: border-box;
}

.apb-sidebar .widget select:focus,
.widget-area .widget select:focus,
#secondary .widget select:focus {
  outline: none;
  border-color: var(--apb-color-primary);
  box-shadow: 0 0 0 3px rgba(13, 92, 99, 0.2);
}

/* --- Recent Posts Widget (.widget_recent_entries) --- */
.apb-sidebar .widget_recent_entries ul:not([class*="wp-block-"]) li,
.widget-area .widget_recent_entries ul:not([class*="wp-block-"]) li,
#secondary .widget_recent_entries ul:not([class*="wp-block-"]) li {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.apb-sidebar .widget_recent_entries ul:not([class*="wp-block-"]) li a,
.widget-area .widget_recent_entries ul:not([class*="wp-block-"]) li a,
#secondary .widget_recent_entries ul:not([class*="wp-block-"]) li a {
  font-weight: var(--apb-font-weight-semibold);
  font-family: var(--apb-font-serif);
  font-size: 0.9375rem;
  line-height: 1.35;
}

.apb-sidebar .widget_recent_entries .post-date,
.widget-area .widget_recent_entries .post-date,
#secondary .widget_recent_entries .post-date {
  font-size: var(--apb-font-size-xs);
  color: var(--apb-color-text-muted);
  display: block;
}

/* --- Recent Comments Widget (.widget_recent_comments) --- */
.apb-sidebar .widget_recent_comments ul:not([class*="wp-block-"]) li,
.widget-area .widget_recent_comments ul:not([class*="wp-block-"]) li,
#secondary .widget_recent_comments ul:not([class*="wp-block-"]) li {
  font-size: var(--apb-font-size-sm);
  color: var(--apb-color-text-muted);
  line-height: var(--apb-line-height-base);
}

.apb-sidebar .widget_recent_comments .comment-author-link,
.widget-area .widget_recent_comments .comment-author-link,
#secondary .widget_recent_comments .comment-author-link {
  font-weight: var(--apb-font-weight-bold);
  color: var(--apb-color-heading);
}

.apb-sidebar .widget_recent_comments .comment-author-link a,
.widget-area .widget_recent_comments .comment-author-link a,
#secondary .widget_recent_comments .comment-author-link a {
  color: var(--apb-color-heading);
}

.apb-sidebar .widget_recent_comments .comment-author-link a:hover,
.widget-area .widget_recent_comments .comment-author-link a:hover,
#secondary .widget_recent_comments .comment-author-link a:hover {
  color: var(--apb-color-primary);
}

/* --- Tag Cloud Widget (.widget_tag_cloud) --- */
.apb-sidebar .tagcloud,
.apb-sidebar .widget_tag_cloud .wp-block-tag-cloud,
.widget-area .tagcloud,
#secondary .tagcloud {
  display: flex;
  flex-wrap: wrap;
  gap: var(--apb-space-2);
  width: 100%;
}

.apb-sidebar .tagcloud a,
.apb-sidebar .widget_tag_cloud .tag-cloud-link,
.widget-area .tagcloud a,
.widget-area .widget_tag_cloud .tag-cloud-link,
#secondary .tagcloud a,
#secondary .widget_tag_cloud .tag-cloud-link {
  display: inline-flex;
  align-items: center;
  gap: var(--apb-space-1);
  padding: 0.35rem 0.75rem;
  background-color: var(--apb-color-bg-alt);
  color: var(--apb-color-heading);
  font-size: var(--apb-font-size-xs);
  font-family: var(--apb-font-sans);
  font-weight: var(--apb-font-weight-medium);
  border-radius: var(--apb-radius-full);
  border: 1px solid var(--apb-color-border);
  text-decoration: none;
  transition: all var(--apb-transition-fast);
  line-height: 1.3;
}

.apb-sidebar .tagcloud a:hover,
.apb-sidebar .widget_tag_cloud .tag-cloud-link:hover,
.widget-area .tagcloud a:hover,
.widget-area .widget_tag_cloud .tag-cloud-link:hover,
#secondary .tagcloud a:hover,
#secondary .widget_tag_cloud .tag-cloud-link:hover {
  background-color: var(--apb-color-primary);
  color: #ffffff;
  border-color: var(--apb-color-primary);
  transform: translateY(-2px);
  box-shadow: var(--apb-shadow-sm);
}

.apb-sidebar .tagcloud a .tag-link-count,
.apb-sidebar .widget_tag_cloud .tag-link-count,
.widget-area .tagcloud a .tag-link-count,
#secondary .tagcloud a .tag-link-count {
  font-size: 0.6875rem;
  color: var(--apb-color-text-muted);
  margin-left: 2px;
}

.apb-sidebar .tagcloud a:hover .tag-link-count,
.widget-area .tagcloud a:hover .tag-link-count,
#secondary .tagcloud a:hover .tag-link-count {
  color: rgba(255, 255, 255, 0.85);
}

/* --- RSS Widget (.widget_rss) --- */
.apb-sidebar .widget_rss .widget-title .rsswidget,
.widget-area .widget_rss .widget-title .rsswidget,
#secondary .widget_rss .widget-title .rsswidget {
  color: var(--apb-color-accent);
}

.apb-sidebar .widget_rss .widget-title .rsswidget:hover,
.widget-area .widget_rss .widget-title .rsswidget:hover,
#secondary .widget_rss .widget-title .rsswidget:hover {
  color: var(--apb-color-accent-hover);
}

.apb-sidebar .widget_rss .rss-widget-icon,
.widget-area .widget_rss .rss-widget-icon,
#secondary .widget_rss .rss-widget-icon {
  margin-right: 6px;
  vertical-align: middle;
}

.apb-sidebar .widget_rss ul:not([class*="wp-block-"]) li,
.widget-area .widget_rss ul:not([class*="wp-block-"]) li,
#secondary .widget_rss ul:not([class*="wp-block-"]) li {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.apb-sidebar .widget_rss .rsswidget,
.widget-area .widget_rss .rsswidget,
#secondary .widget_rss .rsswidget {
  font-family: var(--apb-font-serif);
  font-weight: var(--apb-font-weight-semibold);
  color: var(--apb-color-heading);
}

.apb-sidebar .widget_rss .rsswidget:hover,
.widget-area .widget_rss .rsswidget:hover,
#secondary .widget_rss .rsswidget:hover {
  color: var(--apb-color-primary);
}

.apb-sidebar .widget_rss .rss-date,
.widget-area .widget_rss .rss-date,
#secondary .widget_rss .rss-date {
  font-size: var(--apb-font-size-xs);
  color: var(--apb-color-text-muted);
}

.apb-sidebar .widget_rss .rssSummary,
.widget-area .widget_rss .rssSummary,
#secondary .widget_rss .rssSummary {
  font-size: var(--apb-font-size-sm);
  color: var(--apb-color-text);
  line-height: var(--apb-line-height-relaxed);
  margin-top: 4px;
}

.apb-sidebar .widget_rss cite,
.widget-area .widget_rss cite,
#secondary .widget_rss cite {
  font-size: var(--apb-font-size-xs);
  font-style: italic;
  color: var(--apb-color-text-muted);
  margin-top: 2px;
}

/* --- Calendar Widget (.widget_calendar) --- */
.apb-sidebar .widget_calendar table#wp-calendar,
.widget-area .widget_calendar table#wp-calendar,
#secondary .widget_calendar table#wp-calendar {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--apb-font-size-sm);
  text-align: center;
  background-color: transparent;
}

.apb-sidebar .widget_calendar caption,
.widget-area .widget_calendar caption,
#secondary .widget_calendar caption {
  font-family: var(--apb-font-serif);
  font-weight: var(--apb-font-weight-bold);
  color: var(--apb-color-heading);
  padding: 0.5rem 0;
  margin-bottom: 0.5rem;
  caption-side: top;
  text-align: center;
}

.apb-sidebar .widget_calendar th,
.widget-area .widget_calendar th,
#secondary .widget_calendar th {
  font-weight: var(--apb-font-weight-bold);
  color: var(--apb-color-heading);
  padding: 0.4rem 0.2rem;
  border-bottom: 1px solid var(--apb-color-border);
  font-size: var(--apb-font-size-xs);
}

.apb-sidebar .widget_calendar td,
.widget-area .widget_calendar td,
#secondary .widget_calendar td {
  padding: 0.45rem 0.2rem;
  color: var(--apb-color-text);
  border: 1px solid var(--apb-color-bg-alt);
}

.apb-sidebar .widget_calendar td#today,
.widget-area .widget_calendar td#today,
#secondary .widget_calendar td#today {
  background-color: var(--apb-color-primary-light);
  color: var(--apb-color-primary);
  font-weight: var(--apb-font-weight-bold);
  border-radius: var(--apb-radius-sm);
}

.apb-sidebar .widget_calendar td a,
.widget-area .widget_calendar td a,
#secondary .widget_calendar td a {
  font-weight: var(--apb-font-weight-bold);
  color: var(--apb-color-primary);
  text-decoration: underline;
}

.apb-sidebar .widget_calendar tfoot td,
.widget-area .widget_calendar tfoot td,
#secondary .widget_calendar tfoot td {
  padding-top: 0.6rem;
  border: none;
  font-size: var(--apb-font-size-xs);
}

.apb-sidebar .widget_calendar #prev,
.widget-area .widget_calendar #prev,
#secondary .widget_calendar #prev {
  text-align: left;
}

.apb-sidebar .widget_calendar #next,
.widget-area .widget_calendar #next,
#secondary .widget_calendar #next {
  text-align: right;
}

/* --- Text, Custom HTML & Media Widgets --- */
.apb-sidebar .widget_text .textwidget,
.apb-sidebar .widget_custom_html .custom-html-widget,
.widget-area .widget_text .textwidget,
.widget-area .widget_custom_html .custom-html-widget,
#secondary .widget_text .textwidget,
#secondary .widget_custom_html .custom-html-widget {
  font-size: var(--apb-font-size-sm);
  color: var(--apb-color-text);
  line-height: var(--apb-line-height-relaxed);
}

.apb-sidebar .widget_text .textwidget p:last-child,
.widget-area .widget_text .textwidget p:last-child,
#secondary .widget_text .textwidget p:last-child {
  margin-bottom: 0;
}

.apb-sidebar .widget_media_image img,
.apb-sidebar .widget_media_gallery img,
.widget-area .widget_media_image img,
.widget-area .widget_media_gallery img,
#secondary .widget_media_image img,
#secondary .widget_media_gallery img {
  max-width: 100%;
  height: auto;
  border-radius: var(--apb-radius-sm);
}

.apb-sidebar .widget_media_video iframe,
.apb-sidebar .widget_media_video video,
.widget-area .widget_media_video iframe,
.widget-area .widget_media_video video,
#secondary .widget_media_video iframe,
#secondary .widget_media_video video {
  max-width: 100%;
  border-radius: var(--apb-radius-sm);
}

.apb-sidebar .widget_media_audio audio,
.widget-area .widget_media_audio audio,
#secondary .widget_media_audio audio {
  width: 100%;
}

/* ==========================================================================
   3. Author-Focused Custom Widgets (Theme Components)
   ========================================================================== */

/* --- Widget 1: Author Mini Bio (.apb-widget-about) --- */
.apb-widget-about .apb-author-widget-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  min-width: 0;
}

.apb-author-widget-avatar-wrap {
  position: relative;
  width: 90px;
  height: 90px;
  margin-bottom: var(--apb-space-4);
}

.apb-author-widget-avatar {
  width: 100%;
  height: 100%;
  border-radius: var(--apb-radius-full);
  object-fit: cover;
  border: 3px solid var(--apb-color-primary-light);
  box-shadow: var(--apb-shadow-md);
}

.apb-author-widget-name {
  font-family: var(--apb-font-serif);
  font-size: var(--apb-font-size-md);
  font-weight: var(--apb-font-weight-bold);
  color: var(--apb-color-heading);
  margin-bottom: var(--apb-space-2);
}

.apb-author-widget-bio {
  font-size: var(--apb-font-size-sm);
  color: var(--apb-color-text);
  line-height: var(--apb-line-height-base);
  margin-bottom: var(--apb-space-4);
}

.apb-author-signature-wrap {
  margin-bottom: var(--apb-space-4);
}

.apb-author-signature {
  font-family: 'Playfair Display', cursive, serif;
  font-style: italic;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--apb-color-primary);
  opacity: 0.85;
  letter-spacing: 1px;
}

.apb-author-widget-link {
  display: inline-flex;
  align-items: center;
  gap: var(--apb-space-1);
  font-size: var(--apb-font-size-sm);
  font-weight: var(--apb-font-weight-semibold);
  color: var(--apb-color-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--apb-transition-fast);
}

.apb-author-widget-link:hover {
  color: var(--apb-color-accent);
}

/* --- Widget 2: Upcoming Book (.apb-widget-upcoming-book) --- */
.apb-widget-upcoming-book {
  border-top: 4px solid var(--apb-color-accent);
}

.apb-upcoming-widget-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  min-width: 0;
}

.apb-upcoming-release-badge {
  display: inline-block;
  padding: 0.2rem 0.65rem;
  background-color: var(--apb-color-accent-light);
  color: var(--apb-color-accent);
  font-size: var(--apb-font-size-xs);
  font-weight: var(--apb-font-weight-bold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-radius: var(--apb-radius-full);
  margin-bottom: var(--apb-space-4);
}

.apb-upcoming-cover-wrap {
  width: min(200px, 70%);
  aspect-ratio: 2 / 3;
  margin-bottom: var(--apb-space-4);
  border-radius: var(--apb-radius-sm);
  overflow: hidden;
  box-shadow: var(--apb-shadow-lg);
  transition: transform var(--apb-transition-smooth);
}

.apb-upcoming-cover-wrap:hover {
  transform: scale(1.03);
}

.apb-upcoming-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.apb-upcoming-title {
  font-family: var(--apb-font-serif);
  font-size: var(--apb-font-size-md);
  font-weight: var(--apb-font-weight-bold);
  color: var(--apb-color-heading);
  margin-bottom: var(--apb-space-1);
}

.apb-upcoming-author {
  font-size: var(--apb-font-size-xs);
  color: var(--apb-color-text-muted);
  margin-bottom: var(--apb-space-4);
}

/* --- Widget 3: Mini Newsletter (.apb-widget-newsletter) --- */
.apb-widget-newsletter {
  background-color: var(--apb-color-primary-light);
  border-color: rgba(13, 92, 99, 0.15);
}

.apb-widget-newsletter .apb-widget-title::after,
.apb-widget-newsletter .widget-title::after {
  background-color: var(--apb-color-primary);
}

.apb-newsletter-widget-text {
  font-size: var(--apb-font-size-sm);
  color: var(--apb-color-text);
  line-height: var(--apb-line-height-base);
  margin-bottom: var(--apb-space-4);
}

.apb-newsletter-widget-form {
  display: flex;
  flex-direction: column;
  gap: var(--apb-space-3);
  width: 100%;
}

.apb-newsletter-widget-input {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid var(--apb-color-border-dark);
  border-radius: var(--apb-radius-sm);
  background-color: #ffffff;
  color: var(--apb-color-heading);
  font-size: var(--apb-font-size-sm);
  transition: border-color var(--apb-transition-fast), box-shadow var(--apb-transition-fast);
  box-sizing: border-box;
}

.apb-newsletter-widget-input:focus {
  outline: none;
  border-color: var(--apb-color-primary);
  box-shadow: 0 0 0 3px rgba(13, 92, 99, 0.2);
}

/* --- Widget 4: Popular Articles (.apb-widget-popular-posts) --- */
.apb-popular-posts-list {
  display: flex;
  flex-direction: column;
  gap: var(--apb-space-4);
  width: 100%;
}

.apb-popular-post-item {
  display: flex;
  align-items: center;
  gap: var(--apb-space-3);
  padding-bottom: var(--apb-space-3);
  border-bottom: 1px solid var(--apb-color-bg-alt);
  min-width: 0;
}

.apb-popular-post-item:last-child {
  padding-bottom: 0;
  border-bottom: none;
}

.apb-popular-post-thumb-link {
  flex-shrink: 0;
  width: 60px;
  height: 60px;
  border-radius: var(--apb-radius-sm);
  overflow: hidden;
  background-color: var(--apb-color-bg-alt);
}

.apb-popular-post-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--apb-transition-smooth);
}

.apb-popular-post-thumb-link:hover .apb-popular-post-thumb {
  transform: scale(1.08);
}

.apb-popular-post-content {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.apb-popular-post-title {
  font-family: var(--apb-font-serif);
  font-size: 0.9375rem;
  font-weight: var(--apb-font-weight-semibold);
  line-height: 1.35;
  color: var(--apb-color-heading);
  overflow-wrap: break-word;
  margin: 0;
}

.apb-popular-post-title a {
  color: inherit;
  text-decoration: none;
}

.apb-popular-post-title a:hover {
  color: var(--apb-color-primary);
}

.apb-popular-post-meta {
  font-size: var(--apb-font-size-xs);
  color: var(--apb-color-text-muted);
}

/* --- Widget 5: Category Pill Badges (.apb-widget-categories) --- */
.apb-category-pills {
  width: 100%;
}

.apb-category-pill {
  padding: 0.35rem 0.75rem;
}

.apb-category-pill .apb-count {
  font-size: 0.6875rem;
  color: var(--apb-color-text-muted);
  font-weight: var(--apb-font-weight-semibold);
  transition: color var(--apb-transition-fast);
}

.apb-category-pill:hover .apb-count {
  color: rgba(255, 255, 255, 0.85);
}

/* ==========================================================================
   4. Sidebar Responsive Adjustments
   ========================================================================== */
@media (min-width: 768px) and (max-width: 1024px) {
  .apb-sidebar,
  .widget-area,
  #secondary {
    gap: var(--apb-space-6);
  }

  .apb-widget,
  .apb-sidebar .widget,
  .widget-area .widget,
  #secondary .widget {
    padding: clamp(1rem, 2vw, 1.25rem);
  }
}

@media (max-width: 480px) {
  .apb-author-widget-avatar-wrap {
    width: 80px;
    height: 80px;
  }
}
