/* CSS Variables */
:root {
   --primary-colour: rgb(0, 235, 129);
   --text-white: rgb(255, 255, 255);
   --primary-green: rgb(0, 234, 128);
   --standard-fonts: "Exo 2", Sans-serif;
   --cta-button-colour: rgb(0, 232, 127);
   --cta-pressed-green: rgb(0, 190, 104);
   --primary-blue: rgb(0, 212, 255);
}

:root {
   --primary-bg: #ffffff;
   --secondary-bg: #111111;
   --card-bg: #222222;
   --primary-text: #111111;
   --secondary-text: #cccccc;
   --accent-color: #4CAF50;
   /* Green accent */
   --button-color: #4CAF50;
   --button-hover: #419444;
   --shadow-color: rgba(0, 0, 0, 0.3);
   --border-radius: 8px;
   --transition-speed: 0.3s;
   --max-content-width: 1200px;
}

@font-face {
   font-family: var(--standard-fonts);
   font-optical-sizing: auto;
   font-style: normal;
   src: local('Sans-serif'), url('https://fonts.googleapis.com/css2?family=Exo+2:ital,wght@0,100..900;1,100..900&display=swap');
   font-display: swap;
}

/* Remove Default Styles */
html {
   width: 100%;
   margin: 0px;
   padding: 0px;
}

body {
   padding: 0px;
   margin: 0px;
   background-color: black;
}

/* Setting Font Style */

h1,
h2,
h3,
h4,
h5,
h6,
p,
a,
label,
input,
textarea,
button,
span,
li {
   font-family: var(--standard-fonts);
   font-display: swap;
   color: white;
}

h1 {
   font-weight: 600;
   font-size: 50px;
   text-align: center;
}

/* Header */

header {
   display: flex;
   width: 100%;
   min-height: 130px;
   flex-wrap: wrap;
   justify-content: space-evenly;
   padding: 0px;
   margin: 0px;
   background-color: black;
   align-items: center;
   border-bottom: 5px solid var(--primary-colour);
}

header>div {
   padding-top: 5px;
   padding-bottom: 5px;
}

/* Navigation */

nav {
   align-items: center;
   display: flex;
}

nav>ul {
   flex-direction: row;
   display: flex;
   width: 100%;
   justify-content: space-between;
   list-style-type: none;
}

.nav-link {
   color: white;
   font-weight: 600;
   font-size: 1.7em !important;
   cursor: pointer;
   text-align: center;
   text-decoration: none;
   padding: 20px;
}

.nav-link:hover {
   color: var(--cta-pressed-green);
   border-bottom: 2px solid var(--primary-colour);
}

.dropdown-menu {
   display: none;
   flex-direction: column;
   overflow: hidden;
   z-index: 9999;
}

.dropdown-menu:hover {
   border-bottom: 2px solid var(--primary-colour);
}

.dropdown-toggle {
   color: white;
   font-weight: 600;
   font-size: 1.7em;
   height: 100%;
   border-width: 0px;
   background-color: rgba(0, 0, 0, 0);
   text-underline-offset: 2px;
   text-decoration: none;
   padding: 0px;
   display: flex;
   justify-content: center;
   align-items: center;
}

.dropdown-toggle::after {
   font-family: "Material Icons";
   content: 'arrow_drop_down';
   width: 28px;
   height: 27px;
}

/* Footer */

.contact-footer-list {
   width: 100%;
   display: flex;
   flex-direction: row;
}

.address {
   display: flex;
}

.footer-nav-section>ul>li {
   display: flex;
}

.footer-links {
   display: flex;
   flex-wrap: wrap;
   justify-content: start;
}

.footer-nav-section {
   width: 40%;
   padding: 40px;
}

.footer-nav-section>h3 {
   font-size: 2em;
}

.footer-nav-section>div>span,
.footer-nav-section>div>a {
   font-size: 2em;
}

.company-logo {
   height: auto;
}

.partner-badge {
   display: flex;
   padding: 20px;
   justify-content: end;
}

.footer-branding {
   display: flex;
   flex-direction: row;
   width: 100%;
}

.footer-branding>div {
   width: 50%;
}

.amazon-badge {
   height: auto;
   float: right;
}

section>ul {
   list-style-type: none;
}

/* CTA Buttons */

.cta-holder {
   display: flex;
   flex-direction: row;
   justify-content: center;
   padding: 20px;
   flex-wrap: wrap;
}

.big-button {
   padding: 15px 30px;
   border-radius: 30px;
   font-size: 20px;
   font-weight: 600;
   min-width: 200px;
   min-height: 23px;
   margin: 10px;
   cursor: pointer;
}

.big-button:hover {
   transition: 0.5s;
}

.audit {
   background: var(--primary-green);
   border: 3px solid var(--primary-green);
}

.audit:hover {
   color: white;
   background-color: var(--cta-pressed-green);
   border-color: var(--cta-pressed-green);
}

.start {
   border: 3px solid var(--primary-blue);
   background: white;
   color: var(--primary-blue);
}

.start:hover {
   color: white;
   background-color: var(--primary-blue);
}

/* Base Styles */

* {
   box-sizing: border-box;
   margin: 0;
   padding: 0;
}

body {
   font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
   color: var(--primary-text);
   line-height: 1.6;
   margin: 0;
   padding: 0;
}

/* Skip Link for Accessibility */
.skip-link {
   position: absolute;
   top: -40px;
   left: 0;
   background: var(--button-color);
   color: white;
   padding: 8px;
   z-index: 100;
   transition: top 0.3s;
}

.skip-link:focus {
   top: 0;
}

.visually-hidden {
   border: 0;
   clip: rect(0 0 0 0);
   height: 1px;
   margin: -1px;
   overflow: hidden;
   padding: 0;
   position: absolute;
   width: 1px;
}

/* Main Content Styles */
main {
   margin: 0 auto;
   padding: 0px 20px;
}

article>section,
article>nav,
article>div {
   background-color: var(--secondary-bg);
   padding: 20px;
   border-radius: var(--border-radius);
   margin: 40px 30px;
}

.blog-post {
   background-color: var(--primary-bg);
   overflow: hidden;
   margin-bottom: 40px;
   box-shadow: 0 5px 15px var(--shadow-color);
}

.title-split-div {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
}

.title-split-div>div {
   flex: 1;
   min-width: 300px;
}

.title-split-div h1 {
   margin-top: 0;
   font-size: 2.5rem;
   line-height: 1.2;
}

.title-split-div h1 span {
   display: block;
   color: var(--accent-color);
   font-size: 1.8rem;
   margin-bottom: 10px;
}

.sub-heading {
   font-size: 1.2rem;
   color: var(--secondary-text);
   margin-bottom: 25px;
}

.big-button {
   background-color: var(--button-color);
   color: white;
   border: none;
   padding: 15px 30px;
   border-radius: var(--border-radius);
   font-size: 1.1rem;
   font-weight: bold;
   cursor: pointer;
   transition: background-color var(--transition-speed), transform var(--transition-speed);
}

.big-button:hover {
   background-color: var(--button-hover);
   transform: translateY(-2px);
}

.shadow {
   box-shadow: 0 5px 15px var(--shadow-color);
}

.image img {
   max-width: 100%;
   width: 100%;
   height: auto;
   border-radius: var(--border-radius);
}

/* Article Meta */
.article-meta {
   padding: 15px 30px;
   color: var(--secondary-text);
   border-bottom: 1px solid rgba(255, 255, 255, 0.1);
   font-size: 0.9rem;
   text-align: center;
}

/* Table of Contents */
.blog-toc {
   background-color: var(--card-bg);
   border-radius: var(--border-radius);
   padding: 20px 30px;
   margin: 30px;
   display: flex;
   flex-direction: column;
}

.blog-toc h2 {
   margin-top: 0;
   padding-bottom: 10px;
   border-bottom: 1px solid rgba(255, 255, 255, 0.1);
   text-align: center;
}

.blog-toc ul {
   columns: 2;
   list-style-type: none;
   padding-left: 0;
}

.blog-toc li {
   margin-bottom: 8px;
   text-align: center;
}

.blog-toc a {
   color: var(--accent-color);
   text-decoration: none;
   transition: color var(--transition-speed);
}

.blog-toc a:hover {
   text-decoration: underline;
}

/* Content Sections */
.image-text-div {
   margin: 40px 30px;
   border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.image-text-div h2 {
   text-align: center;
   margin-top: 0;
   margin-bottom: 30px;
   color: var(--accent-color);
}

.image-text-div>div {
   display: flex;
   flex-wrap: wrap;
   gap: 30px;
}

.image-text-div .image {
   flex: 1;
   min-width: 300px;
   text-align: center;
}

figure {
   margin: 0;
}

figcaption {
   margin-top: 10px;
   font-style: italic;
   color: var(--secondary-text);
   font-size: 0.9rem;
   text-align: center;
}

.text-div {
   flex: 1;
   min-width: 300px;
}

.full-width {
   flex: 1 1 100%;
}

.text-div h3 {
   color: var(--accent-color);
   margin-top: 0;
   margin-bottom: 15px;
}

.text-div ul {
   padding-left: 20px;
   margin-bottom: 20px;
}

.text-div li {
   margin-bottom: 5px;
}

.text-div section {
   margin-bottom: 25px;
}

.text-div p {
   margin-bottom: 15px;
}

/* Cards */
.vertical-card {
   padding: 40px 30px;
   border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.vertical-card h2 {
   text-align: center;
   margin-top: 0;
   margin-bottom: 30px;
   color: var(--accent-color);
}

.vertical-card-holder {
   display: flex;
   flex-wrap: wrap;
   gap: 25px;
   justify-content: center;
}

.card {
   background-color: var(--card-bg);
   border-radius: var(--border-radius);
   padding: 25px;
   flex: 1;
   min-width: 280px;
   max-width: 350px;
   transition: transform var(--transition-speed);
}

.card:hover {
   transform: translateY(-5px);
}

.card i {
   font-size: 2rem;
   color: var(--accent-color);
   margin-bottom: 15px;
}

.card h3 {
   margin-top: 0;
   margin-bottom: 15px;
}

.card a {
   color: var(--accent-color);
   text-decoration: none;
}

.card a:hover {
   text-decoration: underline;
}

.read-more {
   display: inline-block;
   margin-top: 15px;
   font-weight: bold;
}

/* CTA Holder */
.cta-holder {
   display: flex;
   justify-content: center;
   gap: 20px;
   flex-wrap: wrap;
   padding: 40px 30px;
   background-color: var(--card-bg);
   margin: 30px;
   border-radius: var(--border-radius);
}

/* Author Info */
.author-info {
   display: flex;
   align-items: center;
   gap: 20px;
   background-color: var(--card-bg);
   border-radius: var(--border-radius);
   padding: 25px;
   margin: 30px;
}

.author-image img {
   border-radius: 50%;
}

.author-details h3 {
   margin-top: 0;
   margin-bottom: 5px;
}

.author-title {
   color: var(--accent-color);
   font-weight: bold;
   margin-top: 0;
   margin-bottom: 10px;
}

.author-bio {
   margin-bottom: 0;
   color: var(--secondary-text);
}

/* Social Sharing */
.social-sharing {
   text-align: center;
   padding: 30px;
}

.social-icons {
   display: flex;
   justify-content: center;
   gap: 15px;
}

.social-icons a {
   display: inline-block;
   color: var(--text-white);
   background-color: var(--card-bg);
   width: 40px;
   height: 40px;
   border-radius: 50%;
   line-height: 40px;
   transition: background-color var(--transition-speed), transform var(--transition-speed);
}

.social-icons a:hover {
   background-color: var(--accent-color);
   transform: translateY(-3px);
}

/* Chat Widget */
.overlay {
   position: fixed;
   bottom: 30px;
   right: 30px;
   z-index: 100;
}

.chat-icon {
   width: 60px;
   height: 60px;
   border-radius: 50%;
   background-color: var(--accent-color);
   display: flex;
   justify-content: center;
   align-items: center;
   cursor: pointer;
   border: none;
   padding: 0;
   overflow: hidden;
}

.chat-icon img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.cross-icon {
   display: none;
   color: white;
   font-size: 24px;
}

.chat-box {
   position: absolute;
   bottom: 80px;
   right: 0;
   width: 300px;
   background-color: var(--secondary-bg);
   border-radius: var(--border-radius);
   overflow: hidden;
}

.no-display {
   display: none;
}

.profile {
   display: flex;
   align-items: center;
   gap: 10px;
   padding: 15px;
   background-color: var(--card-bg);
}

.profile img {
   border-radius: 50%;
}

.chat-holder {
   display: flex;
   flex-direction: column;
   height: 350px;
}

.chat-area {
   flex-grow: 1;
   padding: 15px;
   overflow-y: auto;
}

.message {
   padding: 10px 15px;
   border-radius: 18px;
   margin-bottom: 10px;
   max-width: 80%;
}

.sent {
   background-color: var(--accent-color);
   color: white;
   margin-left: auto;
   border-bottom-right-radius: 5px;
}

.recieved {
   background-color: var(--card-bg);
   border-bottom-left-radius: 5px;
}

.time-span {
   display: block;
   font-size: 0.7rem;
   text-align: right;
   margin-top: 5px;
   opacity: 0.7;
}

.chat-form {
   display: flex;
   padding: 10px;
   border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.chat-form input {
   flex-grow: 1;
   padding: 10px;
   border: none;
   border-radius: var(--border-radius);
   background-color: var(--card-bg);
   color: var(--primary-text);
}

.chat-form button {
   background-color: var(--accent-color);
   color: white;
   border: none;
   padding: 0 15px;
   border-radius: var(--border-radius);
   margin-left: 10px;
   cursor: pointer;
}

/* Responsive Styles */
@media (max-width: 768px) {
   .site-header {
      padding: 15px;
   }

   .menu-div {
      display: none;
      width: 100%;
      order: 3;
   }

   .mobile-menu {
      display: block;
   }

   .nav-bar {
      flex-direction: column;
      gap: 10px;
   }

   .blog-toc ul {
      columns: 1;
   }

   .image-text-div {
      padding: 30px 20px;
   }

   .author-info {
      flex-direction: column;
      text-align: center;
   }

   .card {
      min-width: 100%;
   }
}