rx-widgets.css

I’ll build this as a production-style rx-widgets.css for your RX Theme: global widget foundations, WordPress core widgets, sidebar widgets, cards, medical/info widgets, accessibility, responsive rules, dark mode, and print-safe styles.

Dear friend, create this file:

rx-theme/assets/css/rx-widgets.css

Then paste this full advanced widget CSS.

/*!
Theme Name: RX Theme
File: assets/css/rx-widgets.css
Purpose: Advanced widget styling system for RX Theme
Author: RxHarun
*/

/* =========================================================
   RX WIDGETS CSS
   ---------------------------------------------------------
   This file controls:
   - Sidebar widgets
   - Footer widgets
   - WordPress default widgets
   - Search widget
   - Category widget
   - Tag cloud widget
   - Recent posts widget
   - Author box widget
   - Medical info widgets
   - CTA widgets
   - Newsletter widgets
   - Table of contents widget
   - Related posts widget
   - Sticky sidebar widgets
   - Dark mode support
   - Responsive widget layout
   ========================================================= */


/* =========================================================
   01. ROOT WIDGET VARIABLES
   ========================================================= */

:root {
  --rx-widget-bg: #ffffff;
  --rx-widget-bg-soft: #f8fafc;
  --rx-widget-bg-muted: #f1f5f9;
  --rx-widget-bg-hover: #eef6ff;

  --rx-widget-text: #1e293b;
  --rx-widget-text-soft: #475569;
  --rx-widget-text-muted: #64748b;
  --rx-widget-heading: #0f172a;

  --rx-widget-primary: #0477bf;
  --rx-widget-primary-hover: #035f99;
  --rx-widget-primary-soft: #e5f4ff;

  --rx-widget-success: #15803d;
  --rx-widget-success-soft: #e9f9ef;

  --rx-widget-warning: #b45309;
  --rx-widget-warning-soft: #fff7ed;

  --rx-widget-danger: #b91c1c;
  --rx-widget-danger-soft: #fef2f2;

  --rx-widget-info: #0369a1;
  --rx-widget-info-soft: #e0f2fe;

  --rx-widget-border: #e2e8f0;
  --rx-widget-border-strong: #cbd5e1;

  --rx-widget-radius-xs: 4px;
  --rx-widget-radius-sm: 8px;
  --rx-widget-radius-md: 12px;
  --rx-widget-radius-lg: 18px;
  --rx-widget-radius-xl: 24px;
  --rx-widget-radius-pill: 999px;

  --rx-widget-shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.05);
  --rx-widget-shadow-sm: 0 4px 12px rgba(15, 23, 42, 0.07);
  --rx-widget-shadow-md: 0 10px 25px rgba(15, 23, 42, 0.10);
  --rx-widget-shadow-lg: 0 18px 45px rgba(15, 23, 42, 0.14);

  --rx-widget-space-2xs: 0.25rem;
  --rx-widget-space-xs: 0.5rem;
  --rx-widget-space-sm: 0.75rem;
  --rx-widget-space-md: 1rem;
  --rx-widget-space-lg: 1.5rem;
  --rx-widget-space-xl: 2rem;
  --rx-widget-space-2xl: 3rem;

  --rx-widget-font-size-xs: 0.75rem;
  --rx-widget-font-size-sm: 0.875rem;
  --rx-widget-font-size-md: 1rem;
  --rx-widget-font-size-lg: 1.125rem;
  --rx-widget-font-size-xl: 1.25rem;

  --rx-widget-line-height: 1.7;
  --rx-widget-transition: 180ms ease;
}


/* =========================================================
   02. BASE WIDGET RESET
   ========================================================= */

.widget,
.rx-widget {
  position: relative;
  width: 100%;
  margin: 0 0 var(--rx-widget-space-xl);
  padding: var(--rx-widget-space-lg);
  background: var(--rx-widget-bg);
  color: var(--rx-widget-text);
  border: 1px solid var(--rx-widget-border);
  border-radius: var(--rx-widget-radius-lg);
  box-shadow: var(--rx-widget-shadow-xs);
  overflow-wrap: break-word;
  word-break: normal;
}

.widget:last-child,
.rx-widget:last-child {
  margin-bottom: 0;
}

.widget *,
.rx-widget * {
  box-sizing: border-box;
}

.widget :where(p, ul, ol, dl, figure),
.rx-widget :where(p, ul, ol, dl, figure) {
  margin-top: 0;
}

.widget :where(p, ul, ol),
.rx-widget :where(p, ul, ol) {
  line-height: var(--rx-widget-line-height);
}

.widget a,
.rx-widget a {
  color: var(--rx-widget-primary);
  text-decoration: none;
  transition:
    color var(--rx-widget-transition),
    background-color var(--rx-widget-transition),
    border-color var(--rx-widget-transition),
    box-shadow var(--rx-widget-transition);
}

.widget a:hover,
.widget a:focus-visible,
.rx-widget a:hover,
.rx-widget a:focus-visible {
  color: var(--rx-widget-primary-hover);
  text-decoration: underline;
}

.widget img,
.rx-widget img {
  max-width: 100%;
  height: auto;
  border-radius: var(--rx-widget-radius-md);
}

.widget iframe,
.widget video,
.rx-widget iframe,
.rx-widget video {
  max-width: 100%;
  border-radius: var(--rx-widget-radius-md);
}

.widget input,
.widget textarea,
.widget select,
.rx-widget input,
.rx-widget textarea,
.rx-widget select {
  max-width: 100%;
}


/* =========================================================
   03. WIDGET TITLE SYSTEM
   ========================================================= */

.widget-title,
.widget .widgettitle,
.rx-widget-title,
.rx-widget__title {
  position: relative;
  margin: 0 0 var(--rx-widget-space-md);
  padding-bottom: var(--rx-widget-space-sm);
  color: var(--rx-widget-heading);
  font-size: var(--rx-widget-font-size-lg);
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: -0.015em;
}

.widget-title::after,
.widget .widgettitle::after,
.rx-widget-title::after,
.rx-widget__title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 52px;
  height: 3px;
  background: linear-gradient(90deg, var(--rx-widget-primary), transparent);
  border-radius: var(--rx-widget-radius-pill);
}

.rx-widget-title-center {
  text-align: center;
}

.rx-widget-title-center::after {
  left: 50%;
  transform: translateX(-50%);
}

.rx-widget-subtitle,
.rx-widget__subtitle {
  margin-top: calc(var(--rx-widget-space-sm) * -1);
  margin-bottom: var(--rx-widget-space-md);
  color: var(--rx-widget-text-muted);
  font-size: var(--rx-widget-font-size-sm);
  line-height: 1.6;
}


/* =========================================================
   04. WIDGET VARIANTS
   ========================================================= */

.rx-widget--flat {
  box-shadow: none;
}

.rx-widget--soft {
  background: var(--rx-widget-bg-soft);
}

.rx-widget--primary {
  background: var(--rx-widget-primary-soft);
  border-color: rgba(4, 119, 191, 0.22);
}

.rx-widget--success {
  background: var(--rx-widget-success-soft);
  border-color: rgba(21, 128, 61, 0.22);
}

.rx-widget--warning {
  background: var(--rx-widget-warning-soft);
  border-color: rgba(180, 83, 9, 0.25);
}

.rx-widget--danger {
  background: var(--rx-widget-danger-soft);
  border-color: rgba(185, 28, 28, 0.24);
}

.rx-widget--info {
  background: var(--rx-widget-info-soft);
  border-color: rgba(3, 105, 161, 0.22);
}

.rx-widget--borderless {
  border: 0;
}

.rx-widget--shadow {
  box-shadow: var(--rx-widget-shadow-md);
}

.rx-widget--compact {
  padding: var(--rx-widget-space-md);
}

.rx-widget--large {
  padding: var(--rx-widget-space-xl);
}

.rx-widget--rounded {
  border-radius: var(--rx-widget-radius-xl);
}

.rx-widget--glass {
  background: rgba(255, 255, 255, 0.78);
  backdrop-filter: blur(16px);
  border-color: rgba(255, 255, 255, 0.35);
}


/* =========================================================
   05. SIDEBAR WIDGET AREA
   ========================================================= */

.rx-sidebar,
.widget-area,
.sidebar {
  width: 100%;
}

.rx-sidebar .widget,
.widget-area .widget,
.sidebar .widget {
  margin-bottom: var(--rx-widget-space-lg);
}

.rx-sidebar--sticky {
  position: sticky;
  top: 96px;
  align-self: flex-start;
}

.admin-bar .rx-sidebar--sticky {
  top: 128px;
}

.rx-sidebar-section {
  display: grid;
  gap: var(--rx-widget-space-lg);
}

.rx-sidebar-separator {
  height: 1px;
  margin: var(--rx-widget-space-lg) 0;
  background: var(--rx-widget-border);
}


/* =========================================================
   06. FOOTER WIDGET AREA
   ========================================================= */

.rx-footer-widgets {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--rx-widget-space-xl);
}

.rx-footer-widgets .widget,
.rx-footer-widgets .rx-widget {
  margin-bottom: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  color: inherit;
}

.rx-footer-widgets .widget-title,
.rx-footer-widgets .rx-widget-title {
  color: inherit;
}

.rx-footer-widgets a {
  color: inherit;
  opacity: 0.86;
}

.rx-footer-widgets a:hover {
  opacity: 1;
}


/* =========================================================
   07. WORDPRESS LIST WIDGETS
   ========================================================= */

.widget ul,
.rx-widget ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.widget ul li,
.rx-widget ul li {
  position: relative;
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--rx-widget-border);
  color: var(--rx-widget-text-soft);
}

.widget ul li:last-child,
.rx-widget ul li:last-child {
  border-bottom: 0;
}

.widget ul li a,
.rx-widget ul li a {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--rx-widget-text);
  font-weight: 600;
}

.widget ul li a:hover,
.rx-widget ul li a:hover {
  color: var(--rx-widget-primary);
}

.widget ul.children,
.widget ul.sub-menu,
.rx-widget ul.children,
.rx-widget ul.sub-menu {
  margin-top: var(--rx-widget-space-xs);
  padding-left: var(--rx-widget-space-md);
  border-left: 2px solid var(--rx-widget-border);
}

.widget ul.children li,
.widget ul.sub-menu li,
.rx-widget ul.children li,
.rx-widget ul.sub-menu li {
  font-size: var(--rx-widget-font-size-sm);
}


/* =========================================================
   08. CATEGORY WIDGET
   ========================================================= */

.widget_categories ul li,
.rx-widget-categories li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--rx-widget-space-sm);
}

.widget_categories ul li a,
.rx-widget-categories li a {
  flex: 1;
}

.widget_categories ul li::before,
.rx-widget-categories li::before {
  content: "›";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  margin-right: 0.35rem;
  color: var(--rx-widget-primary);
  background: var(--rx-widget-primary-soft);
  border-radius: 50%;
  font-weight: 800;
}

.widget_categories select {
  width: 100%;
}


/* =========================================================
   09. ARCHIVE WIDGET
   ========================================================= */

.widget_archive ul li,
.rx-widget-archive li {
  display: flex;
  justify-content: space-between;
  gap: var(--rx-widget-space-sm);
}

.widget_archive ul li a::before,
.rx-widget-archive li a::before {
  content: "📅";
  margin-right: 0.45rem;
  font-size: 0.9em;
}


/* =========================================================
   10. RECENT POSTS WIDGET
   ========================================================= */

.widget_recent_entries ul li,
.rx-widget-recent-posts li {
  padding: var(--rx-widget-space-sm) 0;
}

.widget_recent_entries a,
.rx-recent-post-title {
  display: block;
  color: var(--rx-widget-heading);
  font-weight: 700;
  line-height: 1.45;
}

.widget_recent_entries .post-date,
.rx-recent-post-date {
  display: block;
  margin-top: 0.25rem;
  color: var(--rx-widget-text-muted);
  font-size: var(--rx-widget-font-size-xs);
}

.rx-widget-recent-posts--card li {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  gap: var(--rx-widget-space-sm);
  padding: var(--rx-widget-space-sm);
  background: var(--rx-widget-bg-soft);
  border: 1px solid var(--rx-widget-border);
  border-radius: var(--rx-widget-radius-md);
  margin-bottom: var(--rx-widget-space-sm);
}

.rx-recent-post-thumb {
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: var(--rx-widget-radius-sm);
  background: var(--rx-widget-bg-muted);
}

.rx-recent-post-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.rx-recent-post-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.65rem;
  margin-top: 0.35rem;
  color: var(--rx-widget-text-muted);
  font-size: var(--rx-widget-font-size-xs);
}


/* =========================================================
   11. RECENT COMMENTS WIDGET
   ========================================================= */

.widget_recent_comments li {
  color: var(--rx-widget-text-muted);
  font-size: var(--rx-widget-font-size-sm);
}

.widget_recent_comments .comment-author-link {
  color: var(--rx-widget-heading);
  font-weight: 700;
}

.widget_recent_comments a {
  font-weight: 700;
}


/* =========================================================
   12. SEARCH WIDGET
   ========================================================= */

.widget_search form,
.search-form,
.rx-widget-search form {
  position: relative;
  display: flex;
  gap: var(--rx-widget-space-xs);
  width: 100%;
}

.widget_search label,
.search-form label,
.rx-widget-search label {
  flex: 1;
  margin: 0;
}

.widget_search .search-field,
.search-form .search-field,
.rx-widget-search input[type="search"] {
  width: 100%;
  min-height: 46px;
  padding: 0.75rem 1rem;
  color: var(--rx-widget-text);
  background: var(--rx-widget-bg);
  border: 1px solid var(--rx-widget-border-strong);
  border-radius: var(--rx-widget-radius-md);
  outline: none;
  transition:
    border-color var(--rx-widget-transition),
    box-shadow var(--rx-widget-transition);
}

.widget_search .search-field:focus,
.search-form .search-field:focus,
.rx-widget-search input[type="search"]:focus {
  border-color: var(--rx-widget-primary);
  box-shadow: 0 0 0 4px rgba(4, 119, 191, 0.12);
}

.widget_search .search-submit,
.search-form .search-submit,
.rx-widget-search button {
  min-height: 46px;
  padding: 0.75rem 1rem;
  color: #ffffff;
  background: var(--rx-widget-primary);
  border: 1px solid var(--rx-widget-primary);
  border-radius: var(--rx-widget-radius-md);
  font-weight: 800;
  cursor: pointer;
  transition:
    background-color var(--rx-widget-transition),
    border-color var(--rx-widget-transition),
    transform var(--rx-widget-transition);
}

.widget_search .search-submit:hover,
.search-form .search-submit:hover,
.rx-widget-search button:hover {
  background: var(--rx-widget-primary-hover);
  border-color: var(--rx-widget-primary-hover);
  transform: translateY(-1px);
}


/* =========================================================
   13. TAG CLOUD WIDGET
   ========================================================= */

.tagcloud,
.rx-tag-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rx-widget-space-xs);
}

.tagcloud a,
.rx-tag-cloud a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0.4rem 0.7rem;
  color: var(--rx-widget-text-soft);
  background: var(--rx-widget-bg-soft);
  border: 1px solid var(--rx-widget-border);
  border-radius: var(--rx-widget-radius-pill);
  font-size: var(--rx-widget-font-size-sm) !important;
  font-weight: 700;
  line-height: 1;
}

.tagcloud a:hover,
.tagcloud a:focus-visible,
.rx-tag-cloud a:hover,
.rx-tag-cloud a:focus-visible {
  color: #ffffff;
  background: var(--rx-widget-primary);
  border-color: var(--rx-widget-primary);
  text-decoration: none;
}


/* =========================================================
   14. CALENDAR WIDGET
   ========================================================= */

.widget_calendar table,
.wp-calendar-table {
  width: 100%;
  border-collapse: collapse;
  text-align: center;
  font-size: var(--rx-widget-font-size-sm);
}

.widget_calendar caption {
  margin-bottom: var(--rx-widget-space-sm);
  color: var(--rx-widget-heading);
  font-weight: 800;
}

.widget_calendar th,
.widget_calendar td,
.wp-calendar-table th,
.wp-calendar-table td {
  padding: 0.5rem 0.35rem;
  border: 1px solid var(--rx-widget-border);
}

.widget_calendar th,
.wp-calendar-table th {
  color: var(--rx-widget-heading);
  background: var(--rx-widget-bg-soft);
  font-weight: 800;
}

.widget_calendar td a,
.wp-calendar-table td a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  min-height: 28px;
  color: #ffffff;
  background: var(--rx-widget-primary);
  border-radius: 50%;
  font-weight: 800;
  text-decoration: none;
}

.wp-calendar-nav {
  display: flex;
  justify-content: space-between;
  gap: var(--rx-widget-space-sm);
  margin-top: var(--rx-widget-space-sm);
  font-size: var(--rx-widget-font-size-sm);
  font-weight: 700;
}


/* =========================================================
   15. RSS WIDGET
   ========================================================= */

.widget_rss .rsswidget {
  color: var(--rx-widget-heading);
  font-weight: 800;
}

.widget_rss .rss-date {
  display: block;
  margin: 0.25rem 0;
  color: var(--rx-widget-text-muted);
  font-size: var(--rx-widget-font-size-xs);
}

.widget_rss cite {
  display: block;
  margin-top: var(--rx-widget-space-xs);
  color: var(--rx-widget-primary);
  font-style: normal;
  font-weight: 700;
}


/* =========================================================
   16. NAV MENU WIDGET
   ========================================================= */

.widget_nav_menu ul li a,
.rx-widget-menu a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.45rem 0;
}

.widget_nav_menu ul li a::after,
.rx-widget-menu a::after {
  content: "→";
  opacity: 0;
  transform: translateX(-4px);
  transition:
    opacity var(--rx-widget-transition),
    transform var(--rx-widget-transition);
}

.widget_nav_menu ul li a:hover::after,
.rx-widget-menu a:hover::after {
  opacity: 1;
  transform: translateX(0);
}


/* =========================================================
   17. TEXT / CUSTOM HTML WIDGET
   ========================================================= */

.widget_text,
.widget_custom_html {
  line-height: var(--rx-widget-line-height);
}

.widget_text p:last-child,
.widget_custom_html p:last-child {
  margin-bottom: 0;
}

.textwidget strong,
.custom-html-widget strong {
  color: var(--rx-widget-heading);
}

.textwidget blockquote,
.custom-html-widget blockquote {
  margin: var(--rx-widget-space-md) 0;
  padding: var(--rx-widget-space-md);
  background: var(--rx-widget-bg-soft);
  border-left: 4px solid var(--rx-widget-primary);
  border-radius: var(--rx-widget-radius-md);
}


/* =========================================================
   18. IMAGE WIDGET
   ========================================================= */

.widget_media_image img,
.rx-widget-image img {
  display: block;
  width: 100%;
  border-radius: var(--rx-widget-radius-lg);
}

.rx-widget-image-caption,
.widget_media_image .wp-caption-text {
  margin-top: var(--rx-widget-space-xs);
  color: var(--rx-widget-text-muted);
  font-size: var(--rx-widget-font-size-sm);
  text-align: center;
}


/* =========================================================
   19. VIDEO / AUDIO WIDGET
   ========================================================= */

.widget_media_video video,
.widget_media_audio audio {
  width: 100%;
}

.widget_media_video .wp-video,
.widget_media_audio .wp-audio-shortcode {
  width: 100% !important;
}


/* =========================================================
   20. BUTTON SYSTEM FOR WIDGETS
   ========================================================= */

.rx-widget-btn,
.widget .button,
.widget button,
.rx-widget button,
.rx-widget input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 42px;
  padding: 0.65rem 1rem;
  color: #ffffff;
  background: var(--rx-widget-primary);
  border: 1px solid var(--rx-widget-primary);
  border-radius: var(--rx-widget-radius-md);
  font-size: var(--rx-widget-font-size-sm);
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition:
    background-color var(--rx-widget-transition),
    border-color var(--rx-widget-transition),
    color var(--rx-widget-transition),
    transform var(--rx-widget-transition),
    box-shadow var(--rx-widget-transition);
}

.rx-widget-btn:hover,
.widget .button:hover,
.widget button:hover,
.rx-widget button:hover,
.rx-widget input[type="submit"]:hover {
  color: #ffffff;
  background: var(--rx-widget-primary-hover);
  border-color: var(--rx-widget-primary-hover);
  text-decoration: none;
  transform: translateY(-1px);
  box-shadow: var(--rx-widget-shadow-sm);
}

.rx-widget-btn--outline {
  color: var(--rx-widget-primary);
  background: transparent;
  border-color: var(--rx-widget-primary);
}

.rx-widget-btn--outline:hover {
  color: #ffffff;
  background: var(--rx-widget-primary);
}

.rx-widget-btn--soft {
  color: var(--rx-widget-primary);
  background: var(--rx-widget-primary-soft);
  border-color: transparent;
}

.rx-widget-btn--block {
  width: 100%;
}

.rx-widget-btn--sm {
  min-height: 34px;
  padding: 0.45rem 0.75rem;
  font-size: var(--rx-widget-font-size-xs);
}

.rx-widget-btn--lg {
  min-height: 52px;
  padding: 0.85rem 1.25rem;
  font-size: var(--rx-widget-font-size-md);
}


/* =========================================================
   21. FORM WIDGETS
   ========================================================= */

.rx-widget-form {
  display: grid;
  gap: var(--rx-widget-space-sm);
}

.rx-widget-form label {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--rx-widget-heading);
  font-size: var(--rx-widget-font-size-sm);
  font-weight: 700;
}

.rx-widget-form input,
.rx-widget-form textarea,
.rx-widget-form select,
.widget input[type="text"],
.widget input[type="email"],
.widget input[type="url"],
.widget input[type="password"],
.widget input[type="search"],
.widget input[type="number"],
.widget textarea,
.widget select {
  width: 100%;
  min-height: 44px;
  padding: 0.7rem 0.85rem;
  color: var(--rx-widget-text);
  background: var(--rx-widget-bg);
  border: 1px solid var(--rx-widget-border-strong);
  border-radius: var(--rx-widget-radius-md);
  outline: none;
  transition:
    border-color var(--rx-widget-transition),
    box-shadow var(--rx-widget-transition);
}

.rx-widget-form textarea,
.widget textarea {
  min-height: 120px;
  resize: vertical;
}

.rx-widget-form input:focus,
.rx-widget-form textarea:focus,
.rx-widget-form select:focus,
.widget input[type="text"]:focus,
.widget input[type="email"]:focus,
.widget input[type="url"]:focus,
.widget input[type="password"]:focus,
.widget input[type="search"]:focus,
.widget input[type="number"]:focus,
.widget textarea:focus,
.widget select:focus {
  border-color: var(--rx-widget-primary);
  box-shadow: 0 0 0 4px rgba(4, 119, 191, 0.12);
}

.rx-widget-form-help {
  margin-top: 0.25rem;
  color: var(--rx-widget-text-muted);
  font-size: var(--rx-widget-font-size-xs);
}


/* =========================================================
   22. NEWSLETTER WIDGET
   ========================================================= */

.rx-newsletter-widget {
  overflow: hidden;
  background:
    radial-gradient(circle at top right, rgba(4, 119, 191, 0.14), transparent 34%),
    var(--rx-widget-bg);
}

.rx-newsletter-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  margin-bottom: var(--rx-widget-space-sm);
  color: var(--rx-widget-primary);
  background: var(--rx-widget-primary-soft);
  border-radius: 50%;
  font-size: 1.4rem;
}

.rx-newsletter-form {
  display: grid;
  gap: var(--rx-widget-space-sm);
  margin-top: var(--rx-widget-space-md);
}

.rx-newsletter-form input[type="email"] {
  min-height: 48px;
}

.rx-newsletter-note {
  margin: var(--rx-widget-space-xs) 0 0;
  color: var(--rx-widget-text-muted);
  font-size: var(--rx-widget-font-size-xs);
}


/* =========================================================
   23. AUTHOR WIDGET
   ========================================================= */

.rx-author-widget {
  text-align: center;
}

.rx-author-avatar {
  width: 96px;
  height: 96px;
  margin: 0 auto var(--rx-widget-space-md);
  border-radius: 50%;
  overflow: hidden;
  border: 4px solid var(--rx-widget-primary-soft);
}

.rx-author-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

.rx-author-name {
  margin: 0 0 0.25rem;
  color: var(--rx-widget-heading);
  font-size: var(--rx-widget-font-size-lg);
  font-weight: 900;
}

.rx-author-role {
  margin: 0 0 var(--rx-widget-space-sm);
  color: var(--rx-widget-primary);
  font-size: var(--rx-widget-font-size-sm);
  font-weight: 800;
}

.rx-author-bio {
  margin: 0 0 var(--rx-widget-space-md);
  color: var(--rx-widget-text-soft);
  font-size: var(--rx-widget-font-size-sm);
  line-height: 1.7;
}

.rx-author-social {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--rx-widget-space-xs);
}

.rx-author-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  color: var(--rx-widget-primary);
  background: var(--rx-widget-primary-soft);
  border-radius: 50%;
  text-decoration: none;
}

.rx-author-social a:hover {
  color: #ffffff;
  background: var(--rx-widget-primary);
}


/* =========================================================
   24. MEDICAL ALERT / HEALTH INFO WIDGET
   ========================================================= */

.rx-medical-alert {
  display: grid;
  gap: var(--rx-widget-space-sm);
  padding: var(--rx-widget-space-lg);
  background: var(--rx-widget-danger-soft);
  border: 1px solid rgba(185, 28, 28, 0.25);
  border-left: 5px solid var(--rx-widget-danger);
  border-radius: var(--rx-widget-radius-lg);
}

.rx-medical-alert__title {
  margin: 0;
  color: var(--rx-widget-danger);
  font-size: var(--rx-widget-font-size-lg);
  font-weight: 900;
}

.rx-medical-alert__text {
  margin: 0;
  color: var(--rx-widget-text);
  line-height: 1.7;
}

.rx-medical-alert--warning {
  background: var(--rx-widget-warning-soft);
  border-color: rgba(180, 83, 9, 0.25);
  border-left-color: var(--rx-widget-warning);
}

.rx-medical-alert--warning .rx-medical-alert__title {
  color: var(--rx-widget-warning);
}

.rx-medical-alert--info {
  background: var(--rx-widget-info-soft);
  border-color: rgba(3, 105, 161, 0.22);
  border-left-color: var(--rx-widget-info);
}

.rx-medical-alert--info .rx-medical-alert__title {
  color: var(--rx-widget-info);
}

.rx-medical-disclaimer {
  padding: var(--rx-widget-space-md);
  color: var(--rx-widget-text-soft);
  background: var(--rx-widget-bg-soft);
  border: 1px dashed var(--rx-widget-border-strong);
  border-radius: var(--rx-widget-radius-md);
  font-size: var(--rx-widget-font-size-sm);
  line-height: 1.7;
}

.rx-medical-disclaimer strong {
  color: var(--rx-widget-heading);
}


/* =========================================================
   25. TABLE OF CONTENTS WIDGET
   ========================================================= */

.rx-toc-widget {
  max-height: calc(100vh - 140px);
  overflow: auto;
  scrollbar-width: thin;
}

.rx-toc-widget ol,
.rx-toc-widget ul {
  counter-reset: rx-toc;
}

.rx-toc-widget li {
  border: 0;
  padding: 0;
}

.rx-toc-widget a {
  display: flex;
  gap: 0.55rem;
  padding: 0.55rem 0.7rem;
  color: var(--rx-widget-text-soft);
  border-radius: var(--rx-widget-radius-sm);
  font-size: var(--rx-widget-font-size-sm);
  font-weight: 700;
  line-height: 1.45;
}

.rx-toc-widget a::before {
  counter-increment: rx-toc;
  content: counter(rx-toc, decimal-leading-zero);
  color: var(--rx-widget-primary);
  font-size: var(--rx-widget-font-size-xs);
  font-weight: 900;
}

.rx-toc-widget a:hover,
.rx-toc-widget a:focus-visible,
.rx-toc-widget a.is-active {
  color: var(--rx-widget-primary);
  background: var(--rx-widget-primary-soft);
  text-decoration: none;
}


/* =========================================================
   26. CTA WIDGET
   ========================================================= */

.rx-cta-widget {
  overflow: hidden;
  text-align: center;
  background:
    linear-gradient(135deg, rgba(4, 119, 191, 0.95), rgba(3, 95, 153, 0.96)),
    var(--rx-widget-primary);
  color: #ffffff;
  border: 0;
}

.rx-cta-widget::before {
  content: "";
  position: absolute;
  inset: -35%;
  background:
    radial-gradient(circle, rgba(255,255,255,0.22), transparent 35%);
  pointer-events: none;
}

.rx-cta-widget > * {
  position: relative;
  z-index: 1;
}

.rx-cta-widget .rx-widget-title,
.rx-cta-title {
  color: #ffffff;
}

.rx-cta-widget .rx-widget-title::after,
.rx-cta-title::after {
  background: rgba(255,255,255,0.75);
}

.rx-cta-text {
  margin-bottom: var(--rx-widget-space-md);
  color: rgba(255, 255, 255, 0.88);
}

.rx-cta-widget .rx-widget-btn {
  color: var(--rx-widget-primary);
  background: #ffffff;
  border-color: #ffffff;
}

.rx-cta-widget .rx-widget-btn:hover {
  color: #ffffff;
  background: transparent;
  border-color: rgba(255, 255, 255, 0.75);
}


/* =========================================================
   27. STATS WIDGET
   ========================================================= */

.rx-stats-widget {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--rx-widget-space-sm);
}

.rx-stat-item {
  padding: var(--rx-widget-space-md);
  text-align: center;
  background: var(--rx-widget-bg-soft);
  border: 1px solid var(--rx-widget-border);
  border-radius: var(--rx-widget-radius-md);
}

.rx-stat-number {
  display: block;
  color: var(--rx-widget-primary);
  font-size: 1.6rem;
  font-weight: 900;
  line-height: 1.1;
}

.rx-stat-label {
  display: block;
  margin-top: 0.35rem;
  color: var(--rx-widget-text-muted);
  font-size: var(--rx-widget-font-size-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}


/* =========================================================
   28. CONTACT INFO WIDGET
   ========================================================= */

.rx-contact-widget {
  display: grid;
  gap: var(--rx-widget-space-sm);
}

.rx-contact-item {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: var(--rx-widget-space-sm);
  align-items: start;
}

.rx-contact-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: var(--rx-widget-primary);
  background: var(--rx-widget-primary-soft);
  border-radius: 50%;
}

.rx-contact-label {
  display: block;
  color: var(--rx-widget-heading);
  font-weight: 800;
}

.rx-contact-text {
  display: block;
  color: var(--rx-widget-text-soft);
  font-size: var(--rx-widget-font-size-sm);
  line-height: 1.6;
}


/* =========================================================
   29. OPENING HOURS WIDGET
   ========================================================= */

.rx-hours-widget {
  display: grid;
  gap: var(--rx-widget-space-xs);
}

.rx-hours-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--rx-widget-space-md);
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--rx-widget-border);
}

.rx-hours-row:last-child {
  border-bottom: 0;
}

.rx-hours-day {
  color: var(--rx-widget-heading);
  font-weight: 800;
}

.rx-hours-time {
  color: var(--rx-widget-text-soft);
  font-size: var(--rx-widget-font-size-sm);
}

.rx-hours-row.is-closed .rx-hours-time {
  color: var(--rx-widget-danger);
  font-weight: 800;
}


/* =========================================================
   30. RELATED POSTS WIDGET
   ========================================================= */

.rx-related-widget {
  display: grid;
  gap: var(--rx-widget-space-sm);
}

.rx-related-item {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: var(--rx-widget-space-sm);
  padding-bottom: var(--rx-widget-space-sm);
  border-bottom: 1px solid var(--rx-widget-border);
}

.rx-related-item:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.rx-related-thumb {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--rx-widget-bg-muted);
  border-radius: var(--rx-widget-radius-md);
}

.rx-related-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.rx-related-title {
  margin: 0;
  font-size: var(--rx-widget-font-size-sm);
  font-weight: 800;
  line-height: 1.45;
}

.rx-related-title a {
  color: var(--rx-widget-heading);
}

.rx-related-title a:hover {
  color: var(--rx-widget-primary);
}

.rx-related-meta {
  margin-top: 0.35rem;
  color: var(--rx-widget-text-muted);
  font-size: var(--rx-widget-font-size-xs);
}


/* =========================================================
   31. POPULAR POSTS / TRENDING WIDGET
   ========================================================= */

.rx-popular-list {
  counter-reset: rx-popular;
}

.rx-popular-item {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: var(--rx-widget-space-sm);
  align-items: start;
  padding: var(--rx-widget-space-sm) 0;
  border-bottom: 1px solid var(--rx-widget-border);
}

.rx-popular-item:last-child {
  border-bottom: 0;
}

.rx-popular-item::before {
  counter-increment: rx-popular;
  content: counter(rx-popular);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  color: #ffffff;
  background: var(--rx-widget-primary);
  border-radius: 50%;
  font-weight: 900;
}

.rx-popular-title {
  margin: 0;
  color: var(--rx-widget-heading);
  font-size: var(--rx-widget-font-size-sm);
  font-weight: 800;
  line-height: 1.5;
}


/* =========================================================
   32. SOCIAL FOLLOW WIDGET
   ========================================================= */

.rx-social-widget {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rx-widget-space-xs);
}

.rx-social-widget a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-width: 42px;
  min-height: 42px;
  padding: 0.55rem 0.75rem;
  color: var(--rx-widget-text);
  background: var(--rx-widget-bg-soft);
  border: 1px solid var(--rx-widget-border);
  border-radius: var(--rx-widget-radius-md);
  font-size: var(--rx-widget-font-size-sm);
  font-weight: 800;
  text-decoration: none;
}

.rx-social-widget a:hover {
  color: #ffffff;
  background: var(--rx-widget-primary);
  border-color: var(--rx-widget-primary);
}


/* =========================================================
   33. BADGES / PILLS
   ========================================================= */

.rx-widget-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 26px;
  padding: 0.25rem 0.6rem;
  color: var(--rx-widget-primary);
  background: var(--rx-widget-primary-soft);
  border-radius: var(--rx-widget-radius-pill);
  font-size: var(--rx-widget-font-size-xs);
  font-weight: 900;
  line-height: 1;
}

.rx-widget-badge--success {
  color: var(--rx-widget-success);
  background: var(--rx-widget-success-soft);
}

.rx-widget-badge--warning {
  color: var(--rx-widget-warning);
  background: var(--rx-widget-warning-soft);
}

.rx-widget-badge--danger {
  color: var(--rx-widget-danger);
  background: var(--rx-widget-danger-soft);
}


/* =========================================================
   34. PRICE / SERVICE WIDGET
   ========================================================= */

.rx-service-widget {
  display: grid;
  gap: var(--rx-widget-space-md);
}

.rx-service-item {
  padding: var(--rx-widget-space-md);
  background: var(--rx-widget-bg-soft);
  border: 1px solid var(--rx-widget-border);
  border-radius: var(--rx-widget-radius-md);
}

.rx-service-title {
  margin: 0 0 0.35rem;
  color: var(--rx-widget-heading);
  font-weight: 900;
}

.rx-service-desc {
  margin: 0;
  color: var(--rx-widget-text-soft);
  font-size: var(--rx-widget-font-size-sm);
}

.rx-service-price {
  margin-top: var(--rx-widget-space-sm);
  color: var(--rx-widget-primary);
  font-weight: 900;
}


/* =========================================================
   35. DOWNLOAD / RESOURCE WIDGET
   ========================================================= */

.rx-download-widget {
  display: grid;
  gap: var(--rx-widget-space-sm);
}

.rx-download-item {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: var(--rx-widget-space-sm);
  align-items: center;
  padding: var(--rx-widget-space-sm);
  background: var(--rx-widget-bg-soft);
  border: 1px solid var(--rx-widget-border);
  border-radius: var(--rx-widget-radius-md);
}

.rx-download-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  color: var(--rx-widget-primary);
  background: var(--rx-widget-primary-soft);
  border-radius: var(--rx-widget-radius-sm);
}

.rx-download-title {
  color: var(--rx-widget-heading);
  font-weight: 800;
}

.rx-download-meta {
  color: var(--rx-widget-text-muted);
  font-size: var(--rx-widget-font-size-xs);
}


/* =========================================================
   36. FAQ WIDGET
   ========================================================= */

.rx-faq-widget {
  display: grid;
  gap: var(--rx-widget-space-sm);
}

.rx-faq-item {
  border: 1px solid var(--rx-widget-border);
  border-radius: var(--rx-widget-radius-md);
  overflow: hidden;
}

.rx-faq-question {
  width: 100%;
  padding: var(--rx-widget-space-md);
  color: var(--rx-widget-heading);
  background: var(--rx-widget-bg-soft);
  border: 0;
  text-align: left;
  font-weight: 900;
  cursor: pointer;
}

.rx-faq-answer {
  padding: var(--rx-widget-space-md);
  color: var(--rx-widget-text-soft);
  line-height: 1.7;
}

.rx-faq-answer p:last-child {
  margin-bottom: 0;
}


/* =========================================================
   37. MINI CARD GRID WIDGET
   ========================================================= */

.rx-widget-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--rx-widget-space-sm);
}

.rx-widget-mini-card {
  padding: var(--rx-widget-space-md);
  background: var(--rx-widget-bg-soft);
  border: 1px solid var(--rx-widget-border);
  border-radius: var(--rx-widget-radius-md);
  transition:
    transform var(--rx-widget-transition),
    box-shadow var(--rx-widget-transition),
    border-color var(--rx-widget-transition);
}

.rx-widget-mini-card:hover {
  transform: translateY(-2px);
  border-color: rgba(4, 119, 191, 0.35);
  box-shadow: var(--rx-widget-shadow-sm);
}

.rx-widget-mini-card__title {
  margin: 0 0 0.35rem;
  color: var(--rx-widget-heading);
  font-size: var(--rx-widget-font-size-sm);
  font-weight: 900;
}

.rx-widget-mini-card__text {
  margin: 0;
  color: var(--rx-widget-text-muted);
  font-size: var(--rx-widget-font-size-xs);
  line-height: 1.6;
}


/* =========================================================
   38. RATING WIDGET
   ========================================================= */

.rx-rating-widget {
  display: grid;
  gap: var(--rx-widget-space-sm);
}

.rx-rating-score {
  display: flex;
  align-items: baseline;
  gap: var(--rx-widget-space-xs);
}

.rx-rating-number {
  color: var(--rx-widget-heading);
  font-size: 2.4rem;
  font-weight: 900;
  line-height: 1;
}

.rx-rating-outof {
  color: var(--rx-widget-text-muted);
  font-size: var(--rx-widget-font-size-sm);
}

.rx-rating-stars {
  color: #f59e0b;
  letter-spacing: 0.08em;
}

.rx-rating-text {
  margin: 0;
  color: var(--rx-widget-text-soft);
  font-size: var(--rx-widget-font-size-sm);
}


/* =========================================================
   39. PROGRESS BAR WIDGET
   ========================================================= */

.rx-progress-widget {
  display: grid;
  gap: var(--rx-widget-space-md);
}

.rx-progress-item {
  display: grid;
  gap: var(--rx-widget-space-xs);
}

.rx-progress-label {
  display: flex;
  justify-content: space-between;
  gap: var(--rx-widget-space-sm);
  color: var(--rx-widget-heading);
  font-size: var(--rx-widget-font-size-sm);
  font-weight: 800;
}

.rx-progress-track {
  height: 10px;
  overflow: hidden;
  background: var(--rx-widget-bg-muted);
  border-radius: var(--rx-widget-radius-pill);
}

.rx-progress-bar {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--rx-widget-primary), #38bdf8);
  border-radius: inherit;
}


/* =========================================================
   40. WIDGET TABLE
   ========================================================= */

.rx-widget table,
.widget table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--rx-widget-font-size-sm);
}

.rx-widget table th,
.rx-widget table td,
.widget table th,
.widget table td {
  padding: 0.75rem;
  border: 1px solid var(--rx-widget-border);
  text-align: left;
  vertical-align: top;
}

.rx-widget table th,
.widget table th {
  color: var(--rx-widget-heading);
  background: var(--rx-widget-bg-soft);
  font-weight: 900;
}

.rx-widget table tr:nth-child(even) td,
.widget table tr:nth-child(even) td {
  background: rgba(248, 250, 252, 0.65);
}


/* =========================================================
   41. ACCESSIBILITY
   ========================================================= */

.widget :focus-visible,
.rx-widget :focus-visible {
  outline: 3px solid rgba(4, 119, 191, 0.35);
  outline-offset: 3px;
}

.rx-widget .screen-reader-text,
.widget .screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.rx-widget .screen-reader-text:focus,
.widget .screen-reader-text:focus {
  z-index: 100000;
  width: auto;
  height: auto;
  padding: 0.75rem 1rem;
  clip-path: none;
  color: #ffffff;
  background: var(--rx-widget-primary);
  border-radius: var(--rx-widget-radius-sm);
}


/* =========================================================
   42. ANIMATION UTILITIES
   ========================================================= */

.rx-widget-hover-lift {
  transition:
    transform var(--rx-widget-transition),
    box-shadow var(--rx-widget-transition);
}

.rx-widget-hover-lift:hover {
  transform: translateY(-3px);
  box-shadow: var(--rx-widget-shadow-md);
}

.rx-widget-fade-in {
  animation: rxWidgetFadeIn 320ms ease both;
}

@keyframes rxWidgetFadeIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/* =========================================================
   43. DARK MODE SUPPORT
   ========================================================= */

@media (prefers-color-scheme: dark) {
  :root {
    --rx-widget-bg: #0f172a;
    --rx-widget-bg-soft: #111c31;
    --rx-widget-bg-muted: #1e293b;
    --rx-widget-bg-hover: #10243a;

    --rx-widget-text: #e2e8f0;
    --rx-widget-text-soft: #cbd5e1;
    --rx-widget-text-muted: #94a3b8;
    --rx-widget-heading: #f8fafc;

    --rx-widget-border: #263449;
    --rx-widget-border-strong: #334155;

    --rx-widget-primary-soft: rgba(56, 189, 248, 0.12);
    --rx-widget-success-soft: rgba(34, 197, 94, 0.12);
    --rx-widget-warning-soft: rgba(245, 158, 11, 0.13);
    --rx-widget-danger-soft: rgba(239, 68, 68, 0.13);
    --rx-widget-info-soft: rgba(14, 165, 233, 0.13);
  }

  .rx-widget--glass {
    background: rgba(15, 23, 42, 0.78);
    border-color: rgba(148, 163, 184, 0.18);
  }

  .rx-cta-widget {
    background:
      linear-gradient(135deg, rgba(3, 105, 161, 0.95), rgba(2, 74, 112, 0.96)),
      var(--rx-widget-primary);
  }

  .rx-widget table tr:nth-child(even) td,
  .widget table tr:nth-child(even) td {
    background: rgba(30, 41, 59, 0.65);
  }
}


/* Manual dark mode class support */
.rx-dark .widget,
.rx-dark .rx-widget {
  --rx-widget-bg: #0f172a;
  --rx-widget-bg-soft: #111c31;
  --rx-widget-bg-muted: #1e293b;
  --rx-widget-bg-hover: #10243a;
  --rx-widget-text: #e2e8f0;
  --rx-widget-text-soft: #cbd5e1;
  --rx-widget-text-muted: #94a3b8;
  --rx-widget-heading: #f8fafc;
  --rx-widget-border: #263449;
  --rx-widget-border-strong: #334155;
}


/* =========================================================
   44. RESPONSIVE DESIGN
   ========================================================= */

@media (max-width: 1200px) {
  .rx-footer-widgets {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 991px) {
  .rx-sidebar--sticky {
    position: static;
  }

  .rx-toc-widget {
    max-height: none;
  }
}

@media (max-width: 767px) {
  .widget,
  .rx-widget {
    padding: var(--rx-widget-space-md);
    border-radius: var(--rx-widget-radius-md);
  }

  .rx-footer-widgets {
    grid-template-columns: 1fr;
    gap: var(--rx-widget-space-lg);
  }

  .widget_search form,
  .search-form,
  .rx-widget-search form {
    flex-direction: column;
  }

  .widget_search .search-submit,
  .search-form .search-submit,
  .rx-widget-search button {
    width: 100%;
  }

  .rx-widget-recent-posts--card li,
  .rx-related-item {
    grid-template-columns: 68px minmax(0, 1fr);
  }

  .rx-stats-widget,
  .rx-widget-card-grid {
    grid-template-columns: 1fr;
  }

  .rx-download-item {
    grid-template-columns: 38px minmax(0, 1fr);
  }

  .rx-download-item .rx-widget-btn {
    grid-column: 1 / -1;
    width: 100%;
  }
}

@media (max-width: 480px) {
  .rx-contact-item {
    grid-template-columns: 1fr;
  }

  .rx-contact-icon {
    margin-bottom: 0.25rem;
  }

  .rx-hours-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.15rem;
  }

  .rx-rating-number {
    font-size: 2rem;
  }
}


/* =========================================================
   45. REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
  .widget *,
  .rx-widget *,
  .widget,
  .rx-widget {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
  }
}


/* =========================================================
   46. PRINT SUPPORT
   ========================================================= */

@media print {
  .widget,
  .rx-widget {
    break-inside: avoid;
    box-shadow: none !important;
    border-color: #cccccc !important;
    background: #ffffff !important;
    color: #000000 !important;
  }

  .rx-widget-btn,
  .widget button,
  .widget input[type="submit"],
  .rx-newsletter-form,
  .rx-social-widget {
    display: none !important;
  }

  .widget a,
  .rx-widget a {
    color: #000000 !important;
    text-decoration: underline;
  }
}


/* =========================================================
   47. WORDPRESS BLOCK WIDGET COMPATIBILITY
   ========================================================= */

.wp-block-group.rx-widget,
.wp-block-latest-posts,
.wp-block-categories,
.wp-block-archives,
.wp-block-page-list {
  box-sizing: border-box;
}

.widget_block .wp-block-heading {
  position: relative;
  margin: 0 0 var(--rx-widget-space-md);
  padding-bottom: var(--rx-widget-space-sm);
  color: var(--rx-widget-heading);
  font-size: var(--rx-widget-font-size-lg);
  font-weight: 800;
}

.widget_block .wp-block-heading::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 52px;
  height: 3px;
  background: linear-gradient(90deg, var(--rx-widget-primary), transparent);
  border-radius: var(--rx-widget-radius-pill);
}

.widget_block .wp-block-latest-posts__post-title {
  color: var(--rx-widget-heading);
  font-weight: 800;
}

.widget_block .wp-block-latest-posts__post-date,
.widget_block .wp-block-latest-posts__post-author {
  color: var(--rx-widget-text-muted);
  font-size: var(--rx-widget-font-size-xs);
}

.widget_block .wp-block-search__inside-wrapper {
  display: flex;
  gap: var(--rx-widget-space-xs);
}

.widget_block .wp-block-search__input {
  min-height: 46px;
  padding: 0.75rem 1rem;
  border: 1px solid var(--rx-widget-border-strong);
  border-radius: var(--rx-widget-radius-md);
}

.widget_block .wp-block-search__button {
  min-height: 46px;
  padding: 0.75rem 1rem;
  color: #ffffff;
  background: var(--rx-widget-primary);
  border: 1px solid var(--rx-widget-primary);
  border-radius: var(--rx-widget-radius-md);
  font-weight: 800;
}

.widget_block .wp-block-tag-cloud a {
  display: inline-flex;
  margin: 0.2rem;
  padding: 0.4rem 0.7rem;
  background: var(--rx-widget-bg-soft);
  border: 1px solid var(--rx-widget-border);
  border-radius: var(--rx-widget-radius-pill);
  font-size: var(--rx-widget-font-size-sm) !important;
  font-weight: 700;
}


/* =========================================================
   48. WOOCOMMERCE WIDGET BASIC SUPPORT
   ========================================================= */

.widget_product_categories li,
.widget_layered_nav li,
.widget_rating_filter li {
  display: flex;
  justify-content: space-between;
  gap: var(--rx-widget-space-sm);
}

.widget_price_filter .price_slider_wrapper {
  margin-top: var(--rx-widget-space-md);
}

.widget_price_filter .ui-slider {
  position: relative;
  height: 6px;
  background: var(--rx-widget-bg-muted);
  border-radius: var(--rx-widget-radius-pill);
}

.widget_price_filter .ui-slider-range {
  position: absolute;
  height: 6px;
  background: var(--rx-widget-primary);
  border-radius: var(--rx-widget-radius-pill);
}

.widget_price_filter .ui-slider-handle {
  position: absolute;
  top: 50%;
  width: 18px;
  height: 18px;
  background: var(--rx-widget-primary);
  border-radius: 50%;
  transform: translateY(-50%);
}

.widget_price_filter .price_slider_amount {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--rx-widget-space-sm);
  margin-top: var(--rx-widget-space-md);
  font-size: var(--rx-widget-font-size-sm);
}


/* =========================================================
   49. UTILITY CLASSES
   ========================================================= */

.rx-widget-mt-0 { margin-top: 0 !important; }
.rx-widget-mb-0 { margin-bottom: 0 !important; }
.rx-widget-mb-sm { margin-bottom: var(--rx-widget-space-sm) !important; }
.rx-widget-mb-md { margin-bottom: var(--rx-widget-space-md) !important; }
.rx-widget-mb-lg { margin-bottom: var(--rx-widget-space-lg) !important; }

.rx-widget-p-0 { padding: 0 !important; }
.rx-widget-p-sm { padding: var(--rx-widget-space-sm) !important; }
.rx-widget-p-md { padding: var(--rx-widget-space-md) !important; }
.rx-widget-p-lg { padding: var(--rx-widget-space-lg) !important; }

.rx-widget-text-center { text-align: center !important; }
.rx-widget-text-left { text-align: left !important; }
.rx-widget-text-right { text-align: right !important; }

.rx-widget-hidden { display: none !important; }

.rx-widget-divider {
  height: 1px;
  margin: var(--rx-widget-space-md) 0;
  background: var(--rx-widget-border);
}


/* =========================================================
   50. END OF RX WIDGETS CSS
   ========================================================= */

Also enqueue it in your theme.

In functions.php or your enqueue file:

function rx_theme_enqueue_widget_styles() {
    wp_enqueue_style(
        'rx-widgets',
        get_template_directory_uri() . '/assets/css/rx-widgets.css',
        array(),
        wp_get_theme()->get( 'Version' )
    );
}
add_action( 'wp_enqueue_scripts', 'rx_theme_enqueue_widget_styles' );

Best folder position:

rx-theme/
└── assets/
    └── css/
        ├── rx-main.css
        ├── rx-header.css
        ├── rx-footer.css
        ├── rx-layout.css
        ├── rx-content.css
        ├── rx-widgets.css
        └── rx-responsive.css

For RX Theme, this rx-widgets.css should stay only for widget, sidebar, footer widget, WordPress widget block, medical sidebar card, CTA, author box, recent posts, tag cloud, search, category, archive, and related post widget styling.

Leave a Reply

Your email address will not be published. Required fields are marked *