/**
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/

label:has(+ input:required)::after,
label:has(+ textarea:required)::after,
label:has(+ select:required)::after {
  content: " *";
  /* Adds an asterisk after the label */
  color: red;
  /* Makes the asterisk red */
  margin-left: 4px;
  /* Adds a small space between label and asterisk */
}

.form-group {
  margin-bottom: 10px;
  font-size: small;
  /* Adds space between form groups */
}

.form-group label {
  display: block;
  /* Makes the label take its own line */
  margin-bottom: 0px;
  /* Adds space between label and input */
  font-weight: bold;
  /* Makes the label text bold */
  color: #333;
  /* Sets the label text color */
}

.form-group input {
  width: 100%;
  /* Makes the input take full width */
  padding: 2px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: small;
}

.form-group input:disabled {
  background-color: lightgray;
}

.form-group select {
  width: 100%;
  /* Makes the input take full width */
  padding: 4px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: small;
}


.form-group label.error {
  color: red;
  /* Change label color to red */
  font-weight: 400;
}

.form-group input.error {
  border-color: red;
  /* Highlight input border */
}

.form-group select.error {
  border-color: red;
  /* Highlight input border */
}

.form-group-readonly {
  display: flex;
  vertical-align: middle;
  font-size: small;
  /* Adds space between form groups */
}

.form-group-readonly label {
  display: inline-block;
  /* Makes the label take its own line */
  margin-bottom: 5px;
  /* Adds space between label and input */
  font-weight: bold;
  /* Makes the label text bold */
  color: #333;
  /* Sets the label text color */
}

.form-group-readonly input {
  width: auto;
  border: none;
  font-size: small;
  background-color: transparent;
  color: inherit;
  /* Inherit text color from parent */
  padding: 0;
  pointer-events: none;
  /* Disables mouse interaction */
}



.no-border-table {
  border-collapse: collapse;
  /* Ensures borders between cells are also removed */
}

.no-border-table,
.no-border-table th,
.no-border-table td {
  border: none;
  font-size: small;
  padding: .2em .2em;
}


.box-3d {
  border: 2px solid #ccc;
  /* A visible border for the div */
  box-shadow:
    5px 5px 10px rgba(0, 0, 0, 0.3),
    /* Main shadow for depth */
    -2px -2px 5px rgba(255, 255, 255, 0.5) inset;
  /* Lighter inset shadow for highlight effect */
  padding: 20px;
  background-color: #f0f0f0;
  border-radius: 8px;
  width: 100%;
  height: 100%;
  /* Optional: for rounded corners */
}

.box-3d td {
  font-size: small;
}

.box-3d thead {
  font-weight: bold;
  text-align: center;
}

.text-divider {
  display: flex;
  /* Enables flexbox layout */
  align-items: center;
  /* Vertically centers the text within the divider */
  text-align: center;
  /* Centers the text horizontally */
  font-size: 1em;
  /* Adjust font size as needed */
  color: #555;
  /* Adjust text color */
}

.text-divider::before,
.text-divider::after {
  content: '';
  /* Required for pseudo-elements */
  flex: 1;
  /* Allows the lines to expand and fill available space */
  border-bottom: 3px solid #ccc;
  /* Creates the horizontal line */
}

.text-divider::before {
  margin-right: 15px;
  /* Adds space between the left line and the text */
}

.text-divider::after {
  margin-left: 15px;
  /* Adds space between the right line and the text */
}

.flex-container1 {
  display: flex;
}

.payment-container {
  display: flex;
  justify-content: center;
  /* Centers the content and divider horizontally */
  align-items: stretch;
  /* Makes all flex items the same height */
  gap: 20px;
  /* Adds space between sections and divider */
}

.left-section,
.right-section {
  flex: 1;
  /* Allows sections to take up equal space */
  padding: 15px;
  border: none;
}

.vertical-divider {
  width: 1px;
  /* Thickness of the divider */
  background-color: #000;
  /* Color of the divider */
}

.button-3 {
  appearance: none;
  background-color: #2ea44f;
  border: 1px solid rgba(27, 31, 35, .15);
  border-radius: 6px;
  box-shadow: rgba(27, 31, 35, .1) 0 1px 0;
  box-sizing: border-box;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-family: -apple-system, system-ui, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  padding: 6px 16px;
  position: relative;
  text-align: center;
  text-decoration: none;
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
  vertical-align: middle;
  white-space: nowrap;
}

.button-3:focus:not(:focus-visible):not(.focus-visible) {
  box-shadow: none;
  outline: none;
}

.button-3:hover {
  background-color: #2c974b;
}

.button-3:focus {
  box-shadow: rgba(46, 164, 79, .4) 0 0 0 3px;
  outline: none;
}

.button-3:disabled {
  background-color: #94d3a2;
  border-color: rgba(27, 31, 35, .1);
  color: rgba(255, 255, 255, .8);
  cursor: default;
}

.button-3:active {
  background-color: #298e46;
  box-shadow: rgba(20, 70, 32, .2) 0 1px 0 inset;
}


.table-container {
  overflow-x: auto;
  /* Enables horizontal scrolling for the table on small screens */
}

.table-container table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
  font-family: Arial, sans-serif;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.table-container caption {
  font-size: 1.5em;
  font-weight: bold;
  margin-bottom: 10px;
  text-align: left;
  padding: 10px 0;
}

.table-container th,
td {
  /* padding: 12px 15px; */
  text-align: left;
  border-bottom: 1px solid #ddd;
}

.table-container th {
  background-color: #9eb6d9;
  color: white;
  font-weight: bold;
  font-size: small;
}

.table-container tbody tr:nth-child(even) {
  background-color: #f2f2f2;
}

.table-container tbody tr:hover {
  background-color: #e0e0e0;
}

.registration-instructions ol {
  padding-left: 20px;
}

.registration-instructions li {
  margin-bottom: 15px;
}

.custom-contact-form {
  max-width: 500px;
  margin: 20px 0;
}

.custom-contact-form input[type="text"],
.custom-contact-form input[type="email"],
.custom-contact-form textarea {
  width: 100%;
  padding: 10px;
  margin-bottom: 15px;
}

.custom-contact-form input[type="submit"] {
  padding: 10px 20px;
  background: #0073aa;
  color: #fff;
  border: none;
  cursor: pointer;
}

.contact-form-success {
  color: green;
  margin-top: 15px;
}

.contact-form-error {
  color: red;
  margin-top: 15px;
}

a.action-link {
  color: #007bff;
  /* A common blue for links */
  text-decoration: underline;
  /* Standard link underline */
  cursor: pointer;
  /* Indicates interactivity */
}

a.action-link:hover {
  color: #0056b3;
  /* Darker blue on hover */
  text-decoration: none;
  /* Remove underline on hover for a cleaner look */
}

a.action-link:active {
  color: #003087;
  /* Even darker blue when clicked */
}

table.dataTable thead th {
  white-space: nowrap
}

table.dataTable tbody tr td {
  white-space: nowrap;
  font-size: small;
}

tfoot input {
  width: 100%;
  padding: 3px;
  box-sizing: border-box;
  font-size: small;
}

.tooltip {
  position: relative;
  display: inline-block;
  border-bottom: 1px dotted black; /* If you want dots under the hoverable text */
}

/* Tooltip text */
.tooltip .tooltiptext {
  visibility: hidden;
  width: 400px;
  background-color: rgb(64, 40, 153);
  color: #fff;
  text-align: center;
  padding: 5px 0;
  border-radius: 6px;
 
  /* Position the tooltip text - see examples below! */
  position: absolute;
  z-index: 1;
}

/* Show the tooltip text when you mouse over the tooltip container */
.tooltip:hover .tooltiptext {
  visibility: visible;
}


/* Media query for small screens */
@media screen and (max-width: 600px) {

  table,
  thead,
  tbody,
  th,
  td,
  tr {
    display: block;
    /* Changes table elements to block-level for vertical stacking */
  }

  thead tr {
    position: absolute;
    /* Hides table headers visually */
    top: -9999px;
    left: -9999px;
  }

  tr {
    margin-bottom: 15px;
    /* Adds space between stacked rows */
  }

  td {
    border: none;
    /* Removes individual cell borders */
    border-bottom: 1px solid #eee;
    /* Adds subtle border between stacked cells */
    position: relative;
    width: auto !important;
  }

  td:before {
    position: absolute;
    top: 6px;
    left: 6px;
    width: 45%;
    padding-right: 10px;
    white-space: nowrap;
    content: attr(data-label);
    /* Displays content of data-label attribute */
    font-weight: bold;
  }

  .table-container table,
  thead,
  tbody,
  th,
  td,
  tr {
    display: block;
    /* Stacks table elements vertically */
  }

  .table-container thead tr {
    position: absolute;
    top: -9999px;
    left: -9999px;
    /* Hides the original table header */
  }

  .table-container td {
    border: none;
    border-bottom: 1px solid #eee;
    position: relative;
    padding-left: 50%;
    /* Creates space for data-label */
    text-align: right;
  }

  .table-container td:before {
    content: attr(data-label);
    /* Displays the data-label as a pseudo-element */
    position: absolute;
    left: 6px;
    width: 45%;
    padding-right: 10px;
    white-space: nowrap;
    font-weight: bold;
    text-align: left;
  }

}