/*
Theme Name: FansPaysite
Theme URI: https://fanspaysite.com/theme
Author: videowhisper
Author URI: https://videowhisper.com
Contributors: videowhisper
Description: FansPaysite is a theme designed for digital content creators. Features: vertical hierarchical menus with configurable icons on left side, dark/light mode, vertically scrollable content area, right sidebar and widgets only on wide screens, responsive, optimized for mobile screens.
Version: 1.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: fanspaysite
Tags: custom-logo, custom-menu, theme-options, translation-ready, three-columns, left-sidebar, right-sidebar
Requires PHP: 7.3
Requires at least: 5.0
Tested up to: 6.4

FansPaysite WordPress Theme, Copyright 2024 VideoWhisper.com .
FansPaysite is distributed under the terms of the GNU GPL.

*/

/* Layout */
/* Reset default margins and paddings */

body, html {
  margin: 0;
  padding: 0;
  height: 100%; /* Ensures the full height of the viewport */

  color: var(--text-color, #000);
  background-color: var(
    --background-color,
    #ffffff) 
}

a,
a:visited,
{
  color: var(--link-color, #173e2a); /* Use the link color defined in the Customizer */
  transition: opacity 0.3s ease; /* Smooth transition for the opacity change */
}

a:hover,
a:focus, 
{
  opacity: 0.8; /* Slightly reduce the opacity on hover/focus */
}


.site-wrapper { 
  display: flex;
  flex-direction: row; /* Keeps the layout horizontal */
  height: 100vh; /* Ensures the site wrapper is full viewport height */
  color: var(--text-color, #000);
  background-color: var(
    --background-color,
    #ffffff) 
}

.site-sidebar {
  /* Site sidebar contains menu and site-sidebar-left */
  overflow-y: auto; /* Allows scrolling within the sidebar if content overflows */  
  display: flex; /* Establishes a flex container */
  flex-direction: column; /* Stacks flex items vertically */
  align-items: center; /* Centers flex items horizontally in the container */
  min-width: 200px; /* Minimum width for the sidebar */
  width: 5%;
}

.site-content {
  flex-grow: 1; /* Allows content area to grow and fill available space */
  overflow-y: auto; /* Enables vertical scrolling for site-content */
  background: no-repeat center center;
  background-size: cover; /* Ensure the background covers the entire content area */
  margin-bottom: 50px; /* Scroll space */
  padding-bottom: 50px; /* Space below the content */
}

.site-sidebar-left {
  padding: 8px; /* Padding around the content inside the sidebar */
  width: 200px; /* Example fixed width for sidebars */
}


.site-sidebar-right {
  display: none; /* Hide the sidebar on small screens */
  width: 200px;
  padding: 8px; /* Padding around the content inside the sidebar */
  overflow-y: auto; /* Makes the sidebar scrollable vertically if content overflows */
}

@media (min-width: 1210px) {
  .site-sidebar-right {
    display: block; /* Show the sidebar on screens wider than 992px */
    flex: 1; /* Allows the sidebar to grow and fill available space */
    order: 2; /* Position the sidebar to the right of the content if using flexbox layout */
  }
}

.site-footer {
   /* Footer styles */
   width: 100%; /* Ensures footer spans the entire width of the viewport */
   padding: 10px;
   text-align: center; /* Center the text in the footer */
  }

  /* Left sidebar adjustments for narrow screens */
@media (max-width: 768px) {
  /* Make sidebar narrower */
  .site-sidebar {
    min-width: 70px; /* Adjust the sidebar's width */
  }

  /* Make logo smaller */
  .custom-logo-link img {
    max-width: 65px; /* Adjust the logo's height */
    padding: 4px;
  }

  /*Hide menu text */
  .menu-item-title {
    display: none;
  }

  .site-sidebar-left {
    display: none; /* Hide the left sidebar on small screens */
  }

 #primary-menu i, #primary-menu .menu-item-icon-letter
 {
  font-size: 24px;
  width: 32px;
  height: 32px;
 }

}

/*Title & Logo*/

.site-title {
  font-size: clamp(
    6px,
    3vw,
    32px
  ); /* Adjust min, value, and max sizes as needed */
  padding: 6px;
}

.custom-logo-link img {
  /* Logo shows inside side-sidebar */
  padding: 8px;
  max-height: 80px; /* Adjust the logo's height */
  width: auto;
  /* Add any additional styling you need */
}

.site-header,
.site-footer {
  color: var(--text-color, #000);
  background-color: var(
    --background-color,
    #ffffff
  ); /* Fallback for light mode */
}


/*  Sidebar Widget Styling */

.site-sidebar-left .widget,
.site-sidebar-right .widget {
  display: block; /* Stacks widgets vertically */
  font-size: 10px; /* Size of the widget content */
  margin-bottom: 8px; /* Space between widgets */
}

.site-sidebar-left .widget .widget-title,
.site-sidebar-right .widget .widget-title {
  display: block;
  font-size: 12px; /* Size of the widget title */
  margin-bottom: 8px; /* Space below the widget title */
}

/* Targeting ul within widget_block class specifically */
.site-sidebar-left .widget_block ul,
.site-sidebar-right .widget_block ul,
.site-sidebar-left .wp-block-archives-list,
.site-sidebar-right .wp-block-archives-list {
  display: block; /* Stacks lists vertically */
  list-style-type: none; /* Removes bullets from lists */
  padding-left: 0; /* Removes indentation/padding from lists */
  margin-left: 0; /* Ensures lists start from the very edge */
}

/* Targeting li within wp-block-archives-list specifically */
.site-sidebar-left .wp-block-archives-list li,
.site-sidebar-right .wp-block-archives-list li {
  padding-left: 0; /* Removes indentation/padding from list items */
}

/* Ensure sections within sidebar widgets are displayed as blocks and not inline */
.site-sidebar-right section,
.site-sidebar-left section {
  display: block; /* This will stack sections vertically */
  padding-bottom: 8px; /* Space below each section */
}

/* Target the widget area and remove padding from the list */
.widget_recent_comments .wp-block-latest-comments {
  padding-left: 0; /* Removes indentation for the list */
}

/* If the <article> elements or other inner elements have margins/paddings causing indentation */
.widget_recent_comments .wp-block-latest-comments__comment article,
.widget_recent_comments .wp-block-latest-comments__comment footer,
.widget_recent_comments .wp-block-latest-comments__comment div {
  padding-left: 0;
  margin-left: 0; /* Adjust as needed to ensure there's no unwanted space */
}

/* Primary (Left) Menu */

/* General Styles for the Menu */
#primary-menu {
  list-style-type: none;
  padding: 0;
  margin: 0;
  width: 100%;
}

#primary-menu li {
  list-style-type: none;
}

/* Base styling for the primary menu and dropdown links */
#primary-menu a,
.dropdown-menu a {
  text-decoration: none;
  display: block;
  padding: 4px;
  margin : 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  transition: background-color 0.3s ease, color 0.3s ease;
  color: var(--menu-text-color, #333); /* Fallback color */
}

/* Specifically style open submenus to use the distinct open background color */

.dropdown-menu a {
  background-color: var(--menu-open-bg-color, #ffffff); /* Default background for submenu items */
}

/* Hover and Active Link Styles */
#primary-menu a:hover,
#primary-menu a:active,
.dropdown-menu a:hover,
.dropdown-menu a:active {
  text-decoration: none;
  color: var(--menu-hover-text-color, #003366); /* Fallback color */
  background-color: var(--menu-hover-bg-color, #d9e6f2); /* Fallback color */
}

/* Additional styling */
.menu-item-icon-letter {
  display: inline-block;
  width: 24px;
  height: 24px;
  color: #ffffff;
  background-color: var(--menu-icon-bg-color, #686868); /* Fallback color */
  text-align: center;
  line-height: 24px;
  border-radius: 50%;
  font-size: 16px;
  margin-right: 8px;
}

.dropdown-menu {
  display: none;
}


/* Directly nested submenus of a hovered item will be shown */
.menu-item-has-children:hover > .dropdown-menu,
.menu-item-has-children.show > .dropdown-menu {
  display: block;
  padding: 0;
  margin: 0;
  margin-left: 20px;
}

/* Styles to indicate a link is clickable */
.dropdown-toggle[aria-expanded="true"] {
  cursor: pointer;
}

/* Specific hover styles for dropdown toggles */
@media (hover: hover) {
  .dropdown-toggle:hover {
    background-color: var(--menu-hover-bg-color, #d9e6f2);
    color: var(--menu-hover-text-color, #003366);
  }
}

/* Styles for dropdown menus that are shown/open */
.dropdown-menu.show {
  background-color: var(--menu-open-bg-color, #ccc); /* Use --menu-open-bg-color for opened submenus */
}

/* Ensuring direct child links in open submenus have appropriate styles */
.menu-item-has-children.show > a {
  background-color: var(--menu-open-bg-color, #ccc); /* Same background as the open submenu for consistency */
  color: var(--menu-hover-text-color, #003366); /* Ensure readability against the open submenu background */
}

/* Themes */

/* Default styles (can be considered light theme) */
:root {
  --background-color: #fff;
  --text-color: #333;

  --link-color: #173e2a; /* Adjust the color to fit your theme */

  --menu-text-color: #333; /* Light text color for dark mode */
  
  --menu-bg-color: #fff; /* Dark background color for dark mode */
  --menu-open-bg-color: #f0f0f0; /* Dark background color for dark mode */

  --menu-hover-bg-color: #d9e6f2; /* Slightly lighter bg color on hover in dark mode */
  --menu-hover-text-color: #173e2a; /* Light text color for hover state in dark mode */
  --menu-icon-bg-color: #686868; /* Background color for icons in dark mode */
  --menu-current-item-bg-color: #d9e6f2; /* Background color for the current menu item */

  --caption-bg-color: #f3f3f3;
  --caption-text-color: #666;
  --highlight-bg-color: #f9f9f9;
  --highlight-border-color: #ccc;
}

/* Light theme styles */
[data-theme="light"] {
  --background-color: #fff;
  --text-color: #333;

  --link-color: #173e2a; /* Adjust the color to fit your theme */

  --menu-text-color: #333; /* Light text color for dark mode */
  
  --menu-bg-color: #fff; /* Dark background color for dark mode */
  --menu-open-bg-color: #f0f0f0; /* Dark background color for dark mode */

  --menu-hover-bg-color: #d9e6f2; /* Slightly lighter bg color on hover in dark mode */
  --menu-hover-text-color: #173e2a; /* Light text color for hover state in dark mode */
  --menu-icon-bg-color: #686868; /* Background color for icons in dark mode */
  --menu-current-item-bg-color: #d9e6f2; /* Background color for the current menu item */

  --caption-bg-color: #f3f3f3;
  --caption-text-color: #666;
  --highlight-bg-color: #f9f9f9;
  --highlight-border-color: #ccc;
}

/* Dark theme styles */
[data-theme="dark"] {
  --background-color: #333333;
  --text-color: #ffffff;

  --link-color: #77c09a; /* Adjust the color to fit your theme */

  --menu-text-color: #ffffff; /* Light text color for dark mode */

  --menu-bg-color: #333333; /* Dark background color for dark mode */
  --menu-open-bg-color: #3c3c3c; /* Dark background color for dark mode */

  --menu-hover-bg-color: #555555; /* Slightly lighter bg color on hover in dark mode */
  --menu-hover-text-color: #dddddd; /* Light text color for hover state in dark mode */
  --menu-icon-bg-color: #555555; /* Background color for icons in dark mode */
  --menu-current-item-bg-color: #555555; /* Background color for the current menu item */

  --caption-bg-color: #2c2c2c;
  --caption-text-color: #ccc;
  --highlight-bg-color: #424242;
  --highlight-border-color: #666;
}


.btn-group {
  margin-top: 20px; /* Adds some space above the button group */
  display: flex; /* Use Flexbox for the button group */
  justify-content: center; /* Center buttons horizontally */
}

/* Listing Styling */
.row.mb-3:not(:last-child) {
  border-bottom: 1px solid #eee;
  padding-bottom: 20px;
  margin-bottom: 20px;
}

.col-9 h2 a {
  color: #003366; /* Adjust the color to fit your theme */
  text-decoration: none; /* Optional: removes underline from links */
}

.col-9 p {
  margin-bottom: 0.5rem;
}

.badge.bg-secondary {
  margin-right: 5px; /* Space between tags */
}

/* Sticky Post */
.sticky {
  background-color: var(--menu-current-item-bg-color, #f0f0f0);
  color: var(--text-color, #000);
  border-left: 4px solid #003366; /* Blue border on the left */
  padding: 12px;
  margin-bottom: 16px;
  border-radius: 4px;
}

.sticky h2 {
  color: #003366; /* Blue text for titles */
}



/* Blocks */
.mode-text-block {
  background-color: var(--background-color);
  color: var(--text-color);
  padding: 20px;
  border-radius: 5px;
}

/* Handle wide and full alignments */
.alignwide {
  margin-left: auto;
  margin-right: auto;
  max-width: 1200px; /* Adjust as needed */
}

.alignfull {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

/* Make embeds responsive */
.wp-embed-responsive iframe,
.wp-embed-responsive video,
.wp-embed-responsive embed,
.wp-embed-responsive object {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.wp-embed-responsive {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 Aspect Ratio */
    height: 0;
    overflow: hidden;
    max-width: 100%;
}


/* Ensure nav-links flex container is properly styled for inline display */
.nav-links {
  display: flex; /* This ensures flex display */
  justify-content: space-between; /* This spreads the items apart */
  width: 100%; /* Ensure the container takes full width */
}

/* Optional: If items still stack, force them to inline-block */
.nav-links a.btn {
  display: inline-block; /* Forces buttons to display inline */
}

/* Caption styles */
.wp-caption {
  padding: 4px;
  margin-bottom: 20px;
  background-color: var(--caption-bg-color);
  max-width: 100%;
  text-align: center;
  box-shadow: 0px 1px 5px rgba(0, 0, 0, 0.2);
}

.wp-caption-text,
.gallery-caption {
  font-size: 14px;
  line-height: 1.6;
  color: var(--caption-text-color);
  margin: 0;
}

/* Styles to highlight comments by the post author */
.bypostauthor {
  background-color: var(--highlight-bg-color);
  border-left: 4px solid var(--highlight-border-color);
  padding-left: 16px;
}

/* Alignment classes */
.alignright {
  float: right;
  margin: 0 0 20px 20px;
}

.alignleft {
  float: left;
  margin: 0 20px 20px 0;
}

.aligncenter {
  display: block;
  margin: 0 auto 20px auto;
}

/* Clearfix for floated elements */
.alignright:after,
.alignleft:after,
.aligncenter:after {
  content: "";
  display: table;
  clear: both;
}

.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}

.screen-reader-text:focus {
  background-color: #f1f1f1;
  clip: auto !important;
  clip-path: none;
  color: #21759b;
  display: block;
  font-size: 1em;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000; /* Above most things */
}
