/* ==========================================================================
   DailyFinancial Viral - viral magazine style layer
   Loaded after the MoreNews stylesheet and its Customizer CSS. Every MoreNews
   section, widget and option keeps working; this file only changes the look:
     - red top bar, white header with the logo on the left
     - flat white page (no boxed panels, no shadows), 1300px container
     - Jost headlines in capitalised case, Poppins body text
     - section titles in uppercase followed by a long 3px black rule
     - small black uppercase category tags on the images
     - square slider arrows and pagination, red accent on hover
     - dark footer
   The Customizer "Viral accent colour" control rewrites --dfv-accent.
   ========================================================================== */

:root {
  --dfv-accent: #cf0701;
  --dfv-ink: #0e0e0e;
  --dfv-heading: #444444;
  --dfv-heading-strong: #222222;
  --dfv-text: #444444;
  --dfv-muted: #888888;
  --dfv-surface: #ffffff;
  --dfv-surface-alt: #f6f6f6;
  --dfv-border: #e9e9e9;
  --dfv-rule: #000000;
  --dfv-tag-bg: #0e0e0e;
  --dfv-tag-fg: #f0f0f0;
  --dfv-footer-bg: #111111;
  --dfv-footer-bottom: #000000;
  --dfv-footer-text: #bdbdbd;
  --dfv-footer-heading: #ffffff;

  --dfv-font-heading: 'Jost', 'Segoe UI', Helvetica, Arial, sans-serif;
  --dfv-font-body: 'Poppins', 'Segoe UI', Helvetica, Arial, sans-serif;

  --dfv-container: 1300px;
  --dfv-gap: 40px;
  --dfv-transition: 0.25s ease;
}

body.dfv-viral.aft-dark-mode {
  --dfv-ink: #f2f2f2;
  --dfv-heading: #e6e6e6;
  --dfv-heading-strong: #ffffff;
  --dfv-text: #cfcfcf;
  --dfv-muted: #9a9a9a;
  --dfv-surface: #121212;
  --dfv-surface-alt: #1c1c1c;
  --dfv-border: #2a2a2a;
  --dfv-rule: #ffffff;
  --dfv-tag-bg: #000000;
}

/* ================================================================ Base */

html body.dfv-viral {
  background: var(--dfv-surface);
  color: var(--dfv-text);
  font-family: var(--dfv-font-body);
  font-size: 15px;
  line-height: 1.75;
}

body.dfv-viral h1,
body.dfv-viral h2,
body.dfv-viral h3,
body.dfv-viral h4,
body.dfv-viral h5,
body.dfv-viral h6,
body.dfv-viral .read-title,
body.dfv-viral .read-title a,
body.dfv-viral .entry-title,
body.dfv-viral .site-title,
body.dfv-viral .widget-title {
  font-family: var(--dfv-font-heading);
}

body.dfv-viral .container-wrapper {
  max-width: var(--dfv-container);
  padding-left: 30px;
  padding-right: 30px;
}

/* ============================================================== Header */

/* Red top bar with the date and social icons in white. */
html body.dfv-viral .top-header {
  background: var(--dfv-accent) !important;
  color: #fff;
  border: 0;
}

html body.dfv-viral .top-header,
html body.dfv-viral .top-header a,
html body.dfv-viral .top-header .topbar-date,
html body.dfv-viral .top-header .date-bar-left,
html body.dfv-viral .top-header .aft-small-social-menu a,
html body.dfv-viral .top-header .top-navigation ul li a {
  color: #fff !important;
  font-family: var(--dfv-font-body);
  font-size: 13.5px;
  font-weight: 500;
}

html body.dfv-viral .top-header .aft-small-social-menu ul li a {
  background: transparent !important;
}

html body.dfv-viral .top-header .aft-small-social-menu ul li a:hover {
  opacity: 0.75;
}

/* White masthead, logo left. */
html body.dfv-viral .morenews-header,
html body.dfv-viral .af-middle-header {
  background: var(--dfv-surface) !important;
  box-shadow: none;
}

html body.dfv-viral .af-middle-header {
  padding: 22px 0;
}

html body.dfv-viral .site-branding .site-title {
  font-size: 40px;
  line-height: 1.1;
  font-weight: 500;
  letter-spacing: 3px;
  text-transform: uppercase;
  margin: 0;
}

html body.dfv-viral .site-branding .site-title a {
  color: var(--dfv-ink) !important;
}

html body.dfv-viral .site-branding .site-title a:hover {
  color: var(--dfv-accent) !important;
}

html body.dfv-viral .site-branding .site-description {
  color: var(--dfv-muted) !important;
  font-family: var(--dfv-font-body);
  font-size: 13px;
  letter-spacing: 0.5px;
  margin-top: 6px;
}

/* Navigation: white bar with thin rules, Jost uppercase links. */
html body.dfv-viral .af-bottom-header,
html body.dfv-viral #main-navigation-bar {
  background: var(--dfv-surface) !important;
  border-top: 1px solid var(--dfv-border);
  border-bottom: 1px solid var(--dfv-border);
}

html body.dfv-viral .main-navigation .menu-desktop > li > a,
html body.dfv-viral .main-navigation .menu-desktop > ul > li > a,
html body.dfv-viral #main-navigation-bar .main-navigation .menu-desktop > li > a {
  color: var(--dfv-heading-strong) !important;
  font-family: var(--dfv-font-heading);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  padding-left: 13px;
  padding-right: 13px;
}

html body.dfv-viral .main-navigation .menu-desktop > li > a:hover,
html body.dfv-viral .main-navigation .menu-desktop > li.current-menu-item > a,
html body.dfv-viral .main-navigation .menu-desktop > li.current_page_item > a,
html body.dfv-viral #main-navigation-bar .main-navigation .menu-desktop > li > a:hover {
  color: var(--dfv-accent) !important;
}

html body.dfv-viral .main-navigation .menu-desktop > li::after,
html body.dfv-viral .main-navigation .menu-desktop > ul > li::after,
html body.dfv-viral .main-navigation .menu-desktop > li > a::before,
html body.dfv-viral .morenews-header .main-navigation .menu-desktop > ul > li > a::before {
  background-color: var(--dfv-accent) !important;
}

/* Drop-downs: white panel, red top edge, square corners. */
html body.dfv-viral .main-navigation ul ul,
html body.dfv-viral .main-navigation .sub-menu {
  background: var(--dfv-surface) !important;
  border-top: 3px solid var(--dfv-accent);
  border-radius: 0;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

html body.dfv-viral .main-navigation ul ul a,
html body.dfv-viral .main-navigation .sub-menu a {
  color: var(--dfv-heading) !important;
  font-family: var(--dfv-font-body);
  font-size: 14px;
  font-weight: 500;
  text-transform: none;
}

html body.dfv-viral .main-navigation ul ul a:hover,
html body.dfv-viral .main-navigation .sub-menu a:hover {
  color: var(--dfv-accent) !important;
}

html body.dfv-viral #main-navigation-bar .ham,
html body.dfv-viral #main-navigation-bar .ham::before,
html body.dfv-viral #main-navigation-bar .ham::after,
html body.dfv-viral #main-navigation-bar .offcanvas-menu span {
  background-color: var(--dfv-heading-strong) !important;
}

/* Square outlined icon buttons (search / off-canvas), red on hover. */
html body.dfv-viral .search-watch .search-icon,
html body.dfv-viral .af-search-wrap .search-icon,
html body.dfv-viral .offcanvas-menu a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 1px solid var(--dfv-accent);
  border-radius: 0;
  background: transparent;
  color: var(--dfv-heading-strong) !important;
}

html body.dfv-viral .search-watch .search-icon:hover,
html body.dfv-viral .af-search-wrap .search-icon:hover,
html body.dfv-viral .offcanvas-menu a:hover {
  background: var(--dfv-accent);
  color: #fff !important;
}

html body.dfv-viral .af-search-form {
  border-top: 3px solid var(--dfv-accent);
  border-radius: 0;
}

/* Breaking-news ticker. */
html body.dfv-viral .exclusive-posts .exclusive-now {
  background: var(--dfv-accent) !important;
  color: #fff;
  font-family: var(--dfv-font-heading);
  font-weight: 600;
  text-transform: uppercase;
  border-radius: 0;
}

html body.dfv-viral .exclusive-posts .marquee a {
  color: var(--dfv-heading-strong);
  font-family: var(--dfv-font-heading);
  font-weight: 500;
}

/* ====================================================== Section titles */

/* "TITLE ———————" : uppercase Jost followed by a 3px rule to the edge. */
html body.dfv-viral .widget-title,
html body.dfv-viral .af-title-subtitle-wrap .widget-title {
  display: flex;
  align-items: center;
  gap: 18px;
  border: 0 !important;
  padding: 0;
  margin: 0 0 24px;
  background: transparent !important;
}

html body.dfv-viral .widget-title .heading-line {
  font-family: var(--dfv-font-heading);
  font-size: 26px;
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--dfv-heading) !important;
  background: transparent !important;
  padding: 0 !important;
  white-space: nowrap;
}

html body.dfv-viral .widget-title .heading-line::before,
html body.dfv-viral .widget-title .heading-line::after,
html body.dfv-viral .widget-title .heading-line-before {
  display: none !important;
}

html body.dfv-viral .widget-title .heading-line-after {
  display: block !important;
  flex: 1 1 auto;
  height: 3px;
  min-width: 30px;
  background: var(--dfv-rule) !important;
  border: 0 !important;
  margin: 0;
}

/* Block-editor headings used as widget titles get the same treatment. */
html body.dfv-viral #secondary .wp-block-heading,
html body.dfv-viral .widget > .wp-block-heading {
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--dfv-font-heading);
  font-size: 20px;
  line-height: 1.2;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--dfv-heading);
  margin: 0 0 18px;
}

html body.dfv-viral #secondary .wp-block-heading::after,
html body.dfv-viral .widget > .wp-block-heading::after {
  content: '';
  flex: 1 1 auto;
  height: 3px;
  min-width: 20px;
  background: var(--dfv-rule);
}

html body.dfv-viral #secondary .wp-block-heading a {
  color: inherit;
}

/* Sidebar titles are a little smaller than the main section titles. */
html body.dfv-viral #secondary .widget-title .heading-line,
html body.dfv-viral .sidebar-area .widget-title .heading-line {
  font-size: 21px;
}

/* ======================================== Flat sections (no panels) */

html body.dfv-viral .aft-main-banner-section,
html body.dfv-viral .aft-frontpage-feature-section-wrapper,
html body.dfv-viral .section-block-upper,
html body.dfv-viral .above-footer-widget-section,
html body.dfv-viral .aft-blocks .morenews-customizer,
html body.dfv-viral .aft-blocks .section-wrapper,
html body.dfv-viral .aft-blocks .container-wrapper,
html body.dfv-viral .aft-blocks .widget-title-section,
html body.dfv-viral .aft-blocks .af-container-row,
html body.dfv-viral .aft-blocks .af-slick-navcontrols,
html body.dfv-viral .aft-main-banner-wrapper,
html body.dfv-viral #main.site-main,
html body.dfv-viral .content-area .site-main,
html body.dfv-viral .morenews-widget,
html body.dfv-viral .widget-area,
html body.dfv-viral #secondary .widget {
  background-color: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

html body.dfv-viral #secondary .widget,
html body.dfv-viral .sidebar-area .widget {
  padding: 0;
  margin-bottom: 40px;
}

html body.dfv-viral .aft-blocks {
  margin-top: 36px;
}

/* ======================================================= Article cards */

html body.dfv-viral .read-img,
html body.dfv-viral .read-bg-img,
html body.dfv-viral .read-img img,
html body.dfv-viral .data-bg,
html body.dfv-viral .read-single {
  border-radius: 0 !important;
}

html body.dfv-viral .read-img {
  overflow: hidden;
}

html body.dfv-viral .read-img img {
  transition: transform 0.6s ease;
}

html body.dfv-viral .read-single:hover .read-img img {
  transform: scale(1.05);
}

/* Headlines: Jost, capitalised, dark grey, red on hover. */
html body.dfv-viral .read-title,
html body.dfv-viral .read-title a {
  font-weight: 600;
  text-transform: capitalize;
  letter-spacing: 0;
}

html body.dfv-viral .read-details .read-title a,
html body.dfv-viral .list-style .read-title a,
html body.dfv-viral .af-double-column .read-title a,
html body.dfv-viral .archive-list-post .read-title a {
  color: var(--dfv-heading) !important;
}

html body.dfv-viral .read-details .read-title a:hover,
html body.dfv-viral .list-style .read-title a:hover,
html body.dfv-viral .archive-list-post .read-title a:hover {
  color: var(--dfv-accent) !important;
}

/* Titles printed over a photo stay white. */
html body.dfv-viral .grid-design-texts-over-image .read-title a,
html body.dfv-viral .af-banner-carousel .read-title a,
html body.dfv-viral .grid-design-texts-over-image .entry-meta,
html body.dfv-viral .grid-design-texts-over-image .entry-meta a,
html body.dfv-viral .af-banner-carousel .entry-meta a {
  color: #fff !important;
}

html body.dfv-viral .grid-design-texts-over-image .read-details,
html body.dfv-viral .af-banner-carousel .read-details {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.35) 55%, rgba(0, 0, 0, 0) 100%);
}

/* Category tags: small solid black labels. */
html body.dfv-viral .morenews-categories,
html body.dfv-viral .cat-links a.morenews-categories {
  display: inline-block;
  font-family: var(--dfv-font-body);
  font-size: 10px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  padding: 4px 7px;
  border: 0;
  border-radius: 0;
  background: var(--dfv-tag-bg) !important;
  color: var(--dfv-tag-fg) !important;
}

html body.dfv-viral .morenews-categories:hover {
  background: var(--dfv-accent) !important;
  color: #fff !important;
}

/* Reading-time badge matches the tags. */
html body.dfv-viral .min-read,
html body.dfv-viral .read-img .min-read {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  background: var(--dfv-accent);
  color: #fff;
  border-radius: 0;
  padding: 3px 7px;
}

/* Meta line: small grey with icons. */
html body.dfv-viral .entry-meta,
html body.dfv-viral .entry-meta a,
html body.dfv-viral .posts-author a,
html body.dfv-viral .posts-date,
html body.dfv-viral .aft-comment-view-share a {
  color: var(--dfv-muted);
  font-family: var(--dfv-font-body);
  font-size: 12.5px;
  font-weight: 400;
}

html body.dfv-viral .entry-meta a:hover,
html body.dfv-viral .posts-author a:hover {
  color: var(--dfv-accent);
}

/* Numbered trending list: red square numbers. */
html body.dfv-viral .trending-posts-vertical .trending-no,
html body.dfv-viral .af-trending-posts .trending-no,
html body.dfv-viral .aft-trending-posts .trending-no {
  background: var(--dfv-accent) !important;
  color: #fff !important;
  border-radius: 0;
  font-family: var(--dfv-font-heading);
}

/* Tabbed widget headers. */
html body.dfv-viral .aft-posts-tabs-panel .nav-tabs {
  border-bottom: 3px solid var(--dfv-rule);
}

html body.dfv-viral .aft-posts-tabs-panel .nav-tabs li a,
html body.dfv-viral .aft-posts-tabs-panel .nav-tabs > li > a {
  background: transparent !important;
  color: var(--dfv-muted) !important;
  font-family: var(--dfv-font-heading);
  font-size: 15px;
  font-weight: 600;
  text-transform: uppercase;
  white-space: nowrap;
  border: 0 !important;
  border-radius: 0;
  padding: 8px 12px;
}

html body.dfv-viral .aft-posts-tabs-panel .nav-tabs li a.active,
html body.dfv-viral .aft-posts-tabs-panel .nav-tabs > li.active > a {
  background: var(--dfv-ink) !important;
  color: #fff !important;
}

/* Slider arrows and dots: square, black, red on hover. */
html body.dfv-viral .af-slick-navcontrols .slide-icon,
html body.dfv-viral .slick-arrow.slide-icon {
  width: 34px;
  height: 34px;
  border-radius: 0;
  border: 0;
  background: var(--dfv-ink) !important;
  color: #fff !important;
}

html body.dfv-viral .af-slick-navcontrols .slide-icon:hover,
html body.dfv-viral .slick-arrow.slide-icon:hover {
  background: var(--dfv-accent) !important;
}

html body.dfv-viral .slick-dots li button {
  background: rgba(0, 0, 0, 0.3);
  border-radius: 50%;
}

html body.dfv-viral .slick-dots li.slick-active button {
  background: var(--dfv-accent);
}

/* ======================================== Post lists (home + archives) */

html body.dfv-viral .aft-archive-wrapper .archive-list-post,
html body.dfv-viral .aft-archive-wrapper .archive-grid-post {
  background: transparent !important;
  box-shadow: none;
  border-bottom: 1px solid var(--dfv-border);
  padding: 0 0 26px;
  margin-bottom: 26px;
}

html body.dfv-viral .aft-archive-wrapper .read-single,
html body.dfv-viral .aft-archive-wrapper .af-double-column {
  background: transparent !important;
}

html body.dfv-viral .archive-list-post .read-title a,
html body.dfv-viral .archive-grid-post .read-title a {
  font-size: 24px;
  line-height: 1.3;
}

html body.dfv-viral .read-descprition,
html body.dfv-viral .read-description,
html body.dfv-viral .post-description {
  color: var(--dfv-text);
  font-size: 15px;
  line-height: 1.75;
}

html body.dfv-viral .aft-readmore,
html body.dfv-viral a.aft-readmore {
  font-family: var(--dfv-font-heading);
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 7px 16px;
  border: 0;
  border-radius: 0;
  background: var(--dfv-ink);
  color: #fff !important;
}

html body.dfv-viral .aft-readmore:hover {
  background: var(--dfv-accent);
}

/* Pagination: squares, current page red. */
html body.dfv-viral .morenews-pagination .nav-links,
html body.dfv-viral .navigation.pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

html body.dfv-viral .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  border: 1px solid var(--dfv-border) !important;
  border-radius: 0 !important;
  background: var(--dfv-surface) !important;
  color: var(--dfv-heading) !important;
  font-family: var(--dfv-font-heading);
  font-weight: 600;
}

html body.dfv-viral .page-numbers.current,
html body.dfv-viral a.page-numbers:hover {
  background: var(--dfv-accent) !important;
  border-color: var(--dfv-accent) !important;
  color: #fff !important;
}

/* ============================================================= Sidebar */

html body.dfv-viral #secondary .widget ul li {
  border-color: var(--dfv-border);
}

html body.dfv-viral #secondary .widget ul li a,
html body.dfv-viral .widget .wp-block-latest-posts a {
  color: var(--dfv-heading);
  font-family: var(--dfv-font-heading);
  font-weight: 500;
}

html body.dfv-viral #secondary .widget ul li a:hover,
html body.dfv-viral .widget .wp-block-latest-posts a:hover {
  color: var(--dfv-accent);
}

html body.dfv-viral .tagcloud a,
html body.dfv-viral .wp-block-tag-cloud a {
  font-size: 11px !important;
  text-transform: uppercase;
  padding: 5px 9px;
  border: 0;
  border-radius: 0;
  background: var(--dfv-ink);
  color: #fff;
}

html body.dfv-viral .tagcloud a:hover,
html body.dfv-viral .wp-block-tag-cloud a:hover {
  background: var(--dfv-accent);
}

/* ========================================================= Single post */

html body.dfv-viral .af-single-article,
html body.dfv-viral .single .entry-content-wrap,
html body.dfv-viral .page .entry-content-wrap,
html body.dfv-viral .comments-area,
html body.dfv-viral .af-reated-posts {
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0;
}

html body.dfv-viral .entry-header .entry-title {
  font-size: clamp(28px, 3.2vw, 42px);
  line-height: 1.2;
  font-weight: 600;
  text-transform: capitalize;
  color: var(--dfv-heading-strong);
}

html body.dfv-viral .entry-content {
  font-size: 16.5px;
  line-height: 1.85;
  color: var(--dfv-text);
}

html body.dfv-viral .entry-content h2,
html body.dfv-viral .entry-content h3 {
  color: var(--dfv-heading-strong);
  font-weight: 600;
}

html body.dfv-viral .entry-content > p a,
html body.dfv-viral .entry-content > ul a,
html body.dfv-viral .entry-content > ol a {
  color: var(--dfv-accent) !important;
  border-color: var(--dfv-accent) !important;
}

html body.dfv-viral .entry-content blockquote,
html body.dfv-viral .wp-block-quote {
  border-left: 4px solid var(--dfv-accent);
  background: var(--dfv-surface-alt);
  font-family: var(--dfv-font-heading);
  font-size: 20px;
  padding: 18px 22px;
}

html body.dfv-viral .morenews-breadcrumbs,
html body.dfv-viral .af-breadcrumbs {
  font-size: 13px;
  color: var(--dfv-muted);
}

html body.dfv-viral .morenews-breadcrumbs a,
html body.dfv-viral .af-breadcrumbs a {
  color: var(--dfv-heading);
}

/* Archive / search heading uses the rule style too. */
html body.dfv-viral .page-header .page-title {
  display: flex;
  align-items: center;
  gap: 18px;
  font-family: var(--dfv-font-heading);
  font-weight: 600;
  text-transform: uppercase;
  color: var(--dfv-heading);
}

html body.dfv-viral .page-header .page-title::after {
  content: '';
  flex: 1 1 auto;
  height: 3px;
  background: var(--dfv-rule);
}

/* Forms and buttons */
html body.dfv-viral input[type='text'],
html body.dfv-viral input[type='email'],
html body.dfv-viral input[type='search'],
html body.dfv-viral input[type='url'],
html body.dfv-viral textarea {
  border: 1px solid var(--dfv-border);
  border-radius: 0;
}

html body.dfv-viral input[type='submit'],
html body.dfv-viral button[type='submit'],
html body.dfv-viral input.search-submit,
html body.dfv-viral .wp-block-search__button,
html body.dfv-viral .wp-block-button__link {
  background: var(--dfv-accent) !important;
  border-color: var(--dfv-accent) !important;
  color: #fff !important;
  border-radius: 0;
  font-family: var(--dfv-font-heading);
  text-transform: uppercase;
}

/* ============================================================== Footer */

html body.dfv-viral .site-footer,
html body.dfv-viral .site-footer .primary-footer,
html body.dfv-viral .site-footer .secondary-footer {
  background: var(--dfv-footer-bg) !important;
  color: var(--dfv-footer-text) !important;
}

html body.dfv-viral .site-footer {
  margin-top: 50px;
}

html body.dfv-viral .site-footer a,
html body.dfv-viral .site-footer .widget a,
html body.dfv-viral .site-footer .footer-nav-wrapper a {
  color: var(--dfv-footer-text) !important;
}

html body.dfv-viral .site-footer a:hover {
  color: #fff !important;
}

html body.dfv-viral .site-footer .widget-title .heading-line {
  color: var(--dfv-footer-heading) !important;
  font-size: 20px;
}

html body.dfv-viral .site-footer .widget-title .heading-line-after {
  background: var(--dfv-accent) !important;
}

html body.dfv-viral .site-info {
  background: var(--dfv-footer-bottom) !important;
  color: var(--dfv-footer-text);
  font-size: 13.5px;
}

html body.dfv-viral #scroll-up {
  background: var(--dfv-accent);
  border-radius: 0;
}

/* ========================================================== Responsive */

@media (min-width: 993px) {
  html body.dfv-viral .main-navigation .menu-desktop > li > a {
    line-height: 54px;
  }
}

@media (max-width: 991px) {
  html body.dfv-viral .site-branding .site-title {
    font-size: 32px;
  }
}

@media (max-width: 767px) {
  body.dfv-viral .container-wrapper {
    padding-left: 16px;
    padding-right: 16px;
  }

  html body.dfv-viral .site-branding .site-title {
    font-size: 26px;
    letter-spacing: 2px;
  }

  html body.dfv-viral .widget-title .heading-line {
    font-size: 21px;
  }

  html body.dfv-viral .archive-list-post .read-title a {
    font-size: 19px;
  }
}

/* ==========================================================================
   Compressed header (default for this theme): logo, menu and search on one
   white row under the red top bar.
   ========================================================================== */

html body.dfv-viral .header-layout-compressed-full #main-navigation-bar,
html body.dfv-viral .header-layout-compressed-full .bottom-header {
  border-top: 0;
  border-bottom: 1px solid var(--dfv-border);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
}

html body.dfv-viral .header-layout-compressed-full .bottom-bar-flex {
  min-height: 92px;
  align-items: center;
  gap: 24px;
}

html body.dfv-viral .header-layout-compressed-full .logo {
  flex: 0 0 auto;
  width: auto;
  max-width: 34%;
}

html body.dfv-viral .header-layout-compressed-full .logo .site-title {
  font-size: 30px;
  white-space: nowrap;
}

/* The reference shows the logo alone in this row; the tagline is hidden here. */
html body.dfv-viral .header-layout-compressed-full .logo .site-description {
  display: none;
}

html body.dfv-viral .header-layout-compressed-full .logo .custom-logo {
  max-height: 64px;
  width: auto;
}

html body.dfv-viral .header-layout-compressed-full .bottom-nav {
  flex: 1 1 auto;
  display: flex;
  justify-content: center;
}

html body.dfv-viral .header-layout-compressed-full .main-navigation .menu-desktop > li > a {
  line-height: 46px;
  font-size: 13.5px;
  padding-left: 9px;
  padding-right: 9px;
}

@media (max-width: 1280px) {
  html body.dfv-viral .header-layout-compressed-full .main-navigation .menu-desktop > li > a {
    font-size: 12.5px;
    padding-left: 7px;
    padding-right: 7px;
  }
}

/* ==========================================================================
   Viral magazine homepage (template-parts/viral-home.php)
   ========================================================================== */

body.dfv-home-layout #content.container-wrapper {
  padding-top: 34px;
}

.dfv-home a {
  text-decoration: none;
}

.dfv-home .dfv-block {
  margin-bottom: 44px;
}

/* Block titles: "TITLE ————" with a 3px rule. */
.dfv-home .dfv-block-title {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 24px;
  font-family: var(--dfv-font-heading);
  font-size: 26px;
  line-height: 1.2;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--dfv-heading);
}

.dfv-home .dfv-block-title::after {
  content: '';
  flex: 1 1 auto;
  min-width: 30px;
  height: 3px;
  background: var(--dfv-rule);
}

.dfv-home .dfv-block-title span,
.dfv-home .dfv-block-title a {
  color: inherit;
  white-space: nowrap;
}

.dfv-home .dfv-block-title a:hover {
  color: var(--dfv-accent);
}

/* Shared item parts */
.dfv-home .dfv-item {
  position: relative;
}

.dfv-home .dfv-media {
  position: relative;
}

.dfv-home .dfv-thumb {
  display: block;
  position: relative;
  overflow: hidden;
  background: var(--dfv-surface-alt);
}

.dfv-home .dfv-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}

.dfv-home .dfv-item:hover .dfv-thumb img {
  transform: scale(1.06);
}

.dfv-home .dfv-thumb--square {
  aspect-ratio: 1 / 1;
}

.dfv-home .dfv-thumb--card {
  aspect-ratio: 3 / 2;
}

.dfv-home .dfv-thumb--big {
  aspect-ratio: 16 / 11;
}

.dfv-home .dfv-thumb-tag {
  position: absolute;
  left: 12px;
  bottom: 12px;
  z-index: 2;
}

.dfv-home .dfv-tag {
  display: inline-block;
  background: var(--dfv-tag-bg);
  color: var(--dfv-tag-fg) !important;
  font-family: var(--dfv-font-body);
  font-size: 10px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  padding: 4px 7px;
}

.dfv-home .dfv-tag:hover {
  background: var(--dfv-accent);
}

.dfv-home .dfv-title {
  margin: 0;
  font-family: var(--dfv-font-heading);
  font-weight: 600;
  text-transform: capitalize;
  letter-spacing: 0;
}

.dfv-home .dfv-title a {
  color: var(--dfv-heading);
  transition: color var(--dfv-transition);
}

.dfv-home .dfv-title a:hover {
  color: var(--dfv-accent);
}

.dfv-home .dfv-title--sm {
  font-size: 15.5px;
  line-height: 1.35;
}

.dfv-home .dfv-title--md {
  font-size: 17px;
  line-height: 1.35;
  margin-top: 14px;
}

.dfv-home .dfv-title--lg {
  font-size: 27px;
  line-height: 1.3;
  margin-top: 18px;
}

.dfv-home .dfv-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  margin-top: 8px;
  font-family: var(--dfv-font-body);
  font-size: 12px;
  color: var(--dfv-muted);
}

.dfv-home .dfv-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.dfv-home .dfv-icon {
  flex: none;
  opacity: 0.85;
}

.dfv-home .dfv-excerpt {
  margin: 14px 0 0;
  font-size: 15px;
  line-height: 1.75;
  color: var(--dfv-text);
}

/* List item: square thumb + text */
.dfv-home .dfv-list {
  display: grid;
  gap: 22px;
}

.dfv-home .dfv-item--list {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.dfv-home .dfv-item--list .dfv-meta {
  margin-top: 10px;
}

/* Timeline */
.dfv-home .dfv-timeline {
  position: relative;
  padding-left: 30px;
}

.dfv-home .dfv-timeline::before {
  content: '';
  position: absolute;
  left: 6px;
  top: 6px;
  bottom: 6px;
  width: 4px;
  background: var(--dfv-surface-alt);
}

.dfv-home .dfv-item--timeline {
  padding-bottom: 24px;
}

.dfv-home .dfv-item--timeline::before {
  content: '';
  position: absolute;
  left: -30px;
  top: 4px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--dfv-surface-alt);
  border: 3px solid var(--dfv-surface);
  box-shadow: 0 0 0 1px var(--dfv-border);
}

.dfv-home .dfv-item--timeline:hover::before {
  background: var(--dfv-accent);
}

.dfv-home .dfv-item--timeline .dfv-meta {
  margin: 0 0 6px;
}

/* Grids */
.dfv-home .dfv-grid {
  display: grid;
  gap: 30px;
}

.dfv-home .dfv-grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dfv-home .dfv-grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dfv-home .dfv-grid--4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.dfv-home .dfv-item--big + .dfv-grid {
  margin-top: 34px;
}

/* Overlay items: title printed on the photo */
.dfv-home .dfv-item--overlay {
  overflow: hidden;
  background: #111;
}

.dfv-home .dfv-item--overlay .dfv-thumb {
  position: absolute;
  inset: 0;
}

.dfv-home .dfv-item--overlay::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.88) 0%, rgba(0, 0, 0, 0.35) 55%, rgba(0, 0, 0, 0.05) 100%);
  pointer-events: none;
}

.dfv-home .dfv-overlay-body {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: 20px;
}

.dfv-home .dfv-overlay-body .dfv-title {
  margin-top: 10px;
  font-size: 17px;
  line-height: 1.3;
}

.dfv-home .dfv-overlay-body .dfv-title a,
.dfv-home .dfv-overlay-body .dfv-meta {
  color: #fff;
}

.dfv-home .dfv-overlay-body .dfv-title a:hover {
  color: #ffd2d0;
}

.dfv-home .dfv-item--hero {
  aspect-ratio: 16 / 9;
}

.dfv-home .dfv-item--hero .dfv-overlay-body {
  padding: 28px;
}

.dfv-home .dfv-item--hero .dfv-title {
  font-size: 30px;
}

.dfv-home .dfv-item--hero + .dfv-grid {
  margin-top: 30px;
}

.dfv-home .dfv-item--tile {
  aspect-ratio: 1 / 1;
}

.dfv-home .dfv-item--tall {
  height: 100%;
  min-height: 480px;
}

.dfv-home .dfv-item--tall .dfv-title {
  font-size: 26px;
}

.dfv-home .dfv-item--side {
  aspect-ratio: 4 / 3;
  margin-bottom: 26px;
}

.dfv-home .dfv-item--side .dfv-title {
  font-size: 19px;
}

/* Split blocks: big story / tall overlay + 2x2 grid */
.dfv-home .dfv-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 30px;
  align-items: stretch;
}

.dfv-home .dfv-split .dfv-title--lg {
  font-size: 23px;
}

.dfv-home .dfv-split--tall {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.dfv-home .dfv-item--centered {
  text-align: center;
  margin-bottom: 26px;
}

.dfv-home .dfv-item--centered .dfv-meta {
  justify-content: center;
}

/* Top area: 25% | 43% | 27% like the reference */
.dfv-home .dfv-top {
  display: grid;
  grid-template-columns: minmax(0, 25fr) minmax(0, 43fr) minmax(0, 27fr);
  gap: 30px;
  align-items: start;
}

/* Dark panel */
.dfv-home .dfv-dark-panel {
  background: #000;
  color: #fff;
  padding: 26px 24px;
  margin-bottom: 30px;
}

.dfv-home .dfv-dark-panel .dfv-block-title {
  color: #fff;
  font-size: 19px;
}

.dfv-home .dfv-dark-panel .dfv-block-title::after {
  background: #fff;
}

.dfv-home .dfv-item--dark .dfv-tag {
  background: var(--dfv-accent);
  margin-bottom: 8px;
}

.dfv-home .dfv-item--dark .dfv-title a {
  color: #fff;
}

.dfv-home .dfv-item--dark .dfv-title a:hover {
  color: #ffd2d0;
}

.dfv-home .dfv-item--dark .dfv-meta {
  color: #b9b9b9;
}

.dfv-home .dfv-item--dark {
  padding-bottom: 22px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.dfv-home .dfv-item--dark:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.dfv-home .dfv-ad-slot .widget,
.dfv-home .dfv-ad-wide .widget {
  background: transparent;
  padding: 0;
  margin: 0;
  box-shadow: none;
}

.dfv-home .dfv-ad-slot img,
.dfv-home .dfv-ad-wide img {
  display: block;
  width: 100%;
  height: auto;
}

.dfv-home .dfv-ad-wide {
  margin: 0 0 44px;
  text-align: center;
}

.dfv-home .dfv-ad-title {
  display: none;
}

/* Category area: 70 / 30 */
.dfv-home .dfv-cats {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 3fr);
  gap: 40px;
  align-items: start;
}

.dfv-home .dfv-cats-side .dfv-block-title {
  font-size: 23px;
}

@media (min-width: 993px) {
  .dfv-home .dfv-cats-side {
    position: sticky;
    top: 20px;
  }
}

/* Dark mode */
body.aft-dark-mode .dfv-home .dfv-dark-panel {
  background: #1a1a1a;
}

/* Responsive */
@media (max-width: 1200px) {
  .dfv-home .dfv-top {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
  }

  .dfv-home .dfv-top-right {
    grid-column: 1 / -1;
  }

  .dfv-home .dfv-top-right .dfv-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dfv-home .dfv-item--dark:nth-last-child(2) {
    border-bottom: 0;
  }
}

@media (max-width: 991px) {
  .dfv-home .dfv-top,
  .dfv-home .dfv-cats {
    grid-template-columns: minmax(0, 1fr);
  }

  .dfv-home .dfv-top-center {
    order: -1;
  }

  .dfv-home .dfv-grid--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  html body.dfv-viral .header-layout-compressed-full .bottom-bar-flex {
    min-height: 70px;
  }
}

@media (max-width: 767px) {
  .dfv-home .dfv-block-title {
    font-size: 21px;
  }

  .dfv-home .dfv-grid--3,
  .dfv-home .dfv-split,
  .dfv-home .dfv-split--tall,
  .dfv-home .dfv-top-right .dfv-list {
    grid-template-columns: minmax(0, 1fr);
  }

  .dfv-home .dfv-item--dark:nth-last-child(2) {
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  }

  .dfv-home .dfv-item--tile {
    aspect-ratio: 16 / 10;
  }

  .dfv-home .dfv-item--tall {
    min-height: 360px;
  }

  .dfv-home .dfv-item--hero {
    aspect-ratio: 4 / 3;
  }

  .dfv-home .dfv-item--hero .dfv-title {
    font-size: 22px;
  }

  .dfv-home .dfv-title--lg {
    font-size: 22px;
  }
}

@media (max-width: 480px) {
  .dfv-home .dfv-grid--2,
  .dfv-home .dfv-grid--4 {
    grid-template-columns: minmax(0, 1fr);
  }

  .dfv-home .dfv-item--list {
    grid-template-columns: 88px minmax(0, 1fr);
  }
}
