/**
* Template Name: Comply Ark Base (Iteration 6)
* Updated: [Date]
* Author: [Your Name/AI Assistant]
* Description: Font changes (Poppins), logo integration, unified button hover, form styling, removed pricing, colored step numbers, refined hovers & bg variation.
*/

/*--------------------------------------------------------------
# Font & Color Variables
--------------------------------------------------------------*/
/* Fonts */
:root {
  /* === FONT UPDATED === */
  --default-font: "Poppins", system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --heading-font: "Poppins", sans-serif;
  --nav-font: "Poppins", sans-serif; /* Keeping Poppins for Nav/Buttons as well */
}

/* --- COLOR PALETTE (Unchanged from Iteration 5) --- */
/* Light Mode Colors */
:root {
  --bg-color: #ffffff;
  --text-color: #212529;
  --heading-color: #051d2e;
  --accent-color: #1d5c9e; /* Medium Blue - Primary */
  --accent-color-rgb: 29, 92, 158; /* RGB for Medium Blue */
  --accent-color-hover: #2779c9; /* Slightly Lighter Medium Blue for hover */
  --secondary-accent-color: #2d12b1; /* Vibrant Purple - Highlights */
  --subtle-accent-color: #60c0e7; /* Light Blue - Hovers / Subtle */
  --muted-accent-color: #4c3694; /* Muted Purple - Alt Highlights / Icons */
  --surface-color: #ffffff;
  --subtle-text-color: #6c757d;
  --border-color: rgba(33, 37, 41, 0.15);
  --contrast-color: #ffffff;

  /* Nav specific adjustments */
  --nav-color: var(--text-color);
  --nav-hover-color: var(--accent-color);
  --nav-mobile-background-color: var(--surface-color);
  --nav-dropdown-background-color: var(--surface-color);
  --nav-dropdown-color: var(--text-color);
  --nav-dropdown-hover-color: var(--accent-color);
}

/* Dark Mode Colors */
body.dark-mode {
  --bg-color: #0a101f;
  --text-color: #e9ecef;
  --heading-color: #ffffff;
  --accent-color: #60c0e7; /* Light Blue */
  --accent-color-rgb: 96, 192, 231; /* RGB for the light blue accent */
  --accent-color-hover: #7dcff2; /* Slightly lighter blue for hover */
  --secondary-accent-color: #5b40b3; /* Adjusted Purple for dark mode */
  --subtle-accent-color: #1d5c9e; /* Darker blue for subtle dark accents */
  --muted-accent-color: #7a6cc7; /* Lighter Purple for muted dark accents */
  --surface-color: #1a2033;
  --subtle-text-color: #adb5bd;
  --border-color: rgba(233, 236, 239, 0.15);
  --contrast-color: #ffffff; /* White text on dark backgrounds */
  --text-light: #adb5bd; /* For placeholder-like text in dark mode */

  /* Nav specific adjustments */
  --nav-color: var(--text-color);
  --nav-hover-color: var(--accent-color);
  --nav-mobile-background-color: var(--surface-color);
  --nav-dropdown-background-color: var(--surface-color);
  --nav-dropdown-color: var(--text-color);
  --nav-dropdown-hover-color: var(--accent-color);
}

/* Smooth scroll */
:root {
  scroll-behavior: smooth;
}

/*--------------------------------------------------------------
# General Styling & Shared Classes
--------------------------------------------------------------*/
body {
  color: var(--text-color);
  background-color: var(--bg-color);
  font-family: var(--default-font); /* Updated Font */
  transition: background-color 0.3s ease, color 0.3s ease;
}

a {
  color: var(--accent-color);
  text-decoration: none;
  transition: 0.3s;
}

a:hover {
  color: var(--subtle-accent-color);
  text-decoration: none;
}
body.dark-mode a:hover {
   color: color-mix(in srgb, var(--accent-color), white 20%);
}


h1, h2, h3, h4, h5, h6 {
  color: var(--heading-color);
  font-family: var(--heading-font);
  font-weight: 700;
}

h1 { font-size: 2.5rem; margin-bottom: 1rem;}
h2 { font-size: 2rem; margin-bottom: 1rem; }
h3 { font-size: 1.75rem; margin-bottom: 0.75rem; }
h4 { font-size: 1.25rem; margin-bottom: 0.5rem; }
p { line-height: 1.7; font-family: var(--default-font); } /* Ensure body font */
p.lead {
    font-size: 1.15rem;
    font-weight: 400;
    color: color-mix(in srgb, var(--text-color), transparent 30%);
}


/* Buttons */
.btn-primary {
  background-color: var(--accent-color);
  border-color: var(--accent-color);
  color: var(--contrast-color);
  padding: 0.75rem 1.5rem;
  font-family: var(--nav-font);
  font-weight: 500;
  border-radius: 50px;
  transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.btn-primary:hover {
  background-color: var(--subtle-accent-color);
  border-color: var(--subtle-accent-color);
  color: var(--contrast-color);
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}
body.dark-mode .btn-primary {
    background-color: var(--accent-color);
    border-color: var(--accent-color);
    color: #000000; /* Black text on light blue for contrast */
}
body.dark-mode .btn-primary:hover {
    background-color: color-mix(in srgb, var(--accent-color), white 45%);
    border-color: color-mix(in srgb, var(--accent-color), white 45%);
    color: #000000;
    box-shadow: 0 4px 15px rgba(255,255,255,0.05);
}


.btn-outline-primary {
  color: var(--accent-color);
  border-color: var(--accent-color);
   padding: 0.75rem 1.5rem;
  font-family: var(--nav-font);
  font-weight: 500;
  border-radius: 50px;
   transition: background-color 0.3s ease, color 0.3s ease, transform 0.2s ease;
}
.btn-outline-primary:hover {
   background-color: var(--accent-color);
   color: var(--contrast-color);
   transform: translateY(-2px);
}
body.dark-mode .btn-outline-primary {
    color: var(--accent-color);
    border-color: var(--accent-color);
}
body.dark-mode .btn-outline-primary:hover {
   background-color: var(--accent-color);
   color: #000000;
}


/* Sections General */
section, .section {
  padding: 80px 0;
  overflow: hidden;
  position: relative;
  background-color: var(--bg-color);
  color: var(--text-color);
  scroll-margin-top: 70px; /* Adjust if header height changes */
}

/* === SUBTLE BACKGROUND VARIATION === */
.subtle-bg {
   background-color: color-mix(in srgb, var(--bg-color), var(--border-color) 4%);
}
body.dark-mode .subtle-bg {
    /* Slightly mix dark bg with a touch of white for subtle difference */
    background-color: color-mix(in srgb, var(--bg-color), var(--contrast-color) 3%);
}
/* === END SUBTLE BACKGROUND === */


/* Section Title */
.section-title {
  padding-bottom: 40px;
  position: relative;
  text-align: center;
}
.section-title h2 {
  font-size: 2.25rem;
  font-weight: 800;
  margin-bottom: 15px;
  padding-bottom: 15px;
  position: relative;
  color: var(--heading-color);
}
.section-title h2::after {
  content: "";
  position: absolute;
  display: block;
  width: 60px;
  height: 3px;
  background: var(--secondary-accent-color);
  bottom: 0;
  left: calc(50% - 30px);
}
.section-title p {
  margin-bottom: 0;
  color: var(--subtle-text-color);
  font-size: 1rem;
}


/* PHP Email Form Messages */
.php-email-form .error-message { display: none; color: #fff; background: #dc3545; text-align: center; padding: 15px; margin-top: 15px; font-weight: 500; border-radius: 8px; } /* Slightly rounded */
.php-email-form .sent-message { display: none; color: #fff; background: #198754; text-align: center; padding: 15px; margin-top: 15px; font-weight: 500; border-radius: 8px; } /* Slightly rounded */
.php-email-form .loading { display: none; background: var(--surface-color); text-align: center; padding: 15px; margin-top: 15px; border-radius: 8px; } /* Slightly rounded */
.php-email-form .loading:before { content: ""; display: inline-block; border-radius: 50%; width: 24px; height: 24px; margin: 0 10px -6px 0; border: 3px solid var(--accent-color); border-top-color: var(--surface-color); animation: php-email-form-loading 1s linear infinite; }
@keyframes php-email-form-loading { to { transform: rotate(360deg); } }

/* === MODERNIZED FORM STYLING === */
.php-email-form input[type=text],
.php-email-form input[type=email],
.php-email-form input[type=tel],
.php-email-form textarea {
  border-radius: 8px; /* Rounded corners */
  box-shadow: none;
  font-size: 1rem; /* Slightly larger */
  padding: 12px 18px; /* More padding */
  border: 1px solid var(--border-color);
  background-color: color-mix(in srgb, var(--bg-color), var(--border-color) 10%); /* Subtle background */
  color: var(--text-color);
  transition: border-color 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
}
body.dark-mode .php-email-form input[type=text],
body.dark-mode .php-email-form input[type=email],
body.dark-mode .php-email-form input[type=tel],
body.dark-mode .php-email-form textarea {
    background-color: color-mix(in srgb, var(--bg-color), var(--contrast-color) 5%); /* Subtle dark background */
}

.php-email-form input[type=text]:focus,
.php-email-form input[type=email]:focus,
.php-email-form input[type=tel]:focus,
.php-email-form textarea:focus {
  border-color: var(--accent-color);
  outline: none;
  box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--accent-color), transparent 75%);
  background-color: var(--surface-color); /* Return to surface color on focus */
}

.php-email-form textarea { min-height: 140px; } /* Slightly taller */
.php-email-form button[type=submit] { /* Uses .btn-primary styles */ }
.form-info { min-height: 50px; }

/* === NEW: Dark Mode Placeholder Styling === */
body.dark-mode .php-email-form input[type=text]::placeholder,
body.dark-mode .php-email-form input[type=email]::placeholder,
body.dark-mode .php-email-form input[type=tel]::placeholder,
body.dark-mode .php-email-form textarea::placeholder {
  color: var(--subtle-text-color);
  opacity: 0.7;
}

/* === NEW: Dark Mode Placeholder Styling === */
body.dark-mode .php-email-form input[type=text]::placeholder,
body.dark-mode .php-email-form input[type=email]::placeholder,
body.dark-mode .php-email-form input[type=tel]::placeholder,
body.dark-mode .php-email-form textarea::placeholder {
  color: var(--subtle-text-color); /* Use the subtle grey text color */
  opacity: 0.7; /* Make it slightly less prominent */
}
/* === END NEW PLACEHOLDER STYLING === */
/* === END MODERNIZED FORM STYLING === */

/* Apply floating label specific styles to .php-email-form if it uses them */
.php-email-form.needs-validation .form-floating > .form-control,
.php-email-form.needs-validation .form-floating > .form-select {
  padding-top: 1.625rem; /* Match Book Demo form padding */
  height: auto;
}

.php-email-form.needs-validation .form-floating > label {
  padding: 1rem 0.75rem; /* Match Book Demo form label padding */
  color: var(--text-light); /* Lighter placeholder text initially */
}

.php-email-form.needs-validation .form-floating > .form-control:focus ~ label,
.php-email-form.needs-validation .form-floating > .form-control:not(:placeholder-shown) ~ label,
.php-email-form.needs-validation .form-floating > .form-select:focus ~ label,
.php-email-form.needs-validation .form-floating > .form-select:not([value=""]) ~ label {
  opacity: 0.65;
  transform: scale(0.80) translateY(-0.65rem) translateX(0.15rem); /* Match Book Demo label transform */
  color: var(--accent-color);
}

/* Dark mode specific styling for .php-email-form with floating labels */
[data-bs-theme="dark"] .php-email-form.needs-validation .form-floating > label {
  color: var(--subtle-text-color);
}

[data-bs-theme="dark"] .php-email-form.needs-validation .form-floating > .form-control:focus ~ label,
[data-bs-theme="dark"] .php-email-form.needs-validation .form-floating > .form-control:not(:placeholder-shown) ~ label {
  color: var(--accent-color);
}

/* Style the submit button for .php-email-form to match .book-demo-form-section button */
.php-email-form button[type=submit] {
  padding: 0.75rem 1.5rem;
  font-size: 1.1rem;
  font-weight: 600;
  border-radius: 50px; /* Pill shape */
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(var(--accent-color-rgb), 0.2);
  background-color: var(--accent-color); /* Ensure it uses accent color */
  border-color: var(--accent-color);
  color: var(--contrast-color);
}

.php-email-form button[type=submit]:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(var(--accent-color-rgb), 0.3);
  background-color: var(--accent-color-hover);
  border-color: var(--accent-color-hover);
  color: var(--contrast-color);
}

[data-bs-theme="dark"] .php-email-form button[type=submit] {
    background-color: var(--accent-color);
    border-color: var(--accent-color);
    color: #000000; /* Black text for button in dark mode */
    box-shadow: 0 4px 15px rgba(var(--accent-color-rgb), 0.15);
}

[data-bs-theme="dark"] .php-email-form button[type=submit]:hover {
    background-color: var(--accent-color-hover);
    border-color: var(--accent-color-hover);
    color: #000000; /* Consistent black text on hover in dark mode */
    box-shadow: 0 6px 20px rgba(var(--accent-color-rgb), 0.25);
}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
.header {
  height: 70px;
  transition: all 0.5s;
  z-index: 997;
  background-color: color-mix(in srgb, var(--bg-color), transparent 10%);
  backdrop-filter: blur(5px);
  border-bottom: 1px solid var(--border-color);
  box-shadow: none;
}
/* Header Logo Text Styling */
.header .logo .header-logo-text {
  font-size: 1.3rem; /* Adjust size as needed */
  font-weight: 700;
  color: var(--heading-color); /* Use heading color variable */
  font-family: var(--heading-font); /* Use heading font */
  margin-left: 10px; /* Space between logo image and text */
  line-height: 1; /* Ensure consistent line height */
  transition: color 0.3s ease; /* Smooth color transition for dark mode */
}

/* Ensure vertical alignment with image (already handled by d-flex on parent) */
/* === LOGO IMAGE STYLING === */
.header .logo img {
  max-height: 50px; /* Adjust as needed */
  width: auto;
}
/* Ensure logo link centers the image */
.header .logo {
  line-height: 1; /* Reset line height */
  padding-top: 5px; /* Adjust vertical alignment if needed */
  padding-bottom: 5px;
}
/* === END LOGO IMAGE STYLING === */

.header .btn-getstarted { padding: 0.5rem 1.25rem; font-size: 0.9rem; }

.header.scrolled {
  height: 70px;
  box-shadow: 0px 2px 15px color-mix(in srgb, var(--heading-color), transparent 90%);
}


/* Dark Mode Toggle Button */
.btn-toggle-mode {
  background: none; padding: 8px 12px; border: 1px solid var(--border-color);
  color: var(--text-color); border-radius: 50px; cursor: pointer; transition: all 0.3s ease;
  display: inline-flex; align-items: center; line-height: 1;
}
.btn-toggle-mode:hover, .btn-toggle-mode:focus {
  border-color: var(--accent-color); color: var(--accent-color);
  background-color: color-mix(in srgb, var(--accent-color), transparent 95%);
  outline: none;
}
.btn-toggle-mode i { font-size: 1.1rem; }
.btn-toggle-mode .icon-sun { display: none; }
.btn-toggle-mode .icon-moon { display: inline-block; }
body.dark-mode .btn-toggle-mode .icon-sun { display: inline-block; }
body.dark-mode .btn-toggle-mode .icon-moon { display: none; }

/*--------------------------------------------------------------
# Navigation Menu (Desktop - Keep as is)
--------------------------------------------------------------*/
/* Desktop Navigation */
.navmenu { padding: 0; }
.navmenu ul { margin: 0; padding: 0; display: flex; list-style: none; align-items: center; }
.navmenu li { position: relative; }
.navmenu a, .navmenu a:focus {
  color: var(--nav-color); padding: 10px 15px; margin: 0 5px;
  font-size: 1rem; font-family: var(--nav-font); /* Updated Font */
  font-weight: 500; display: flex;
  align-items: center; justify-content: space-between; white-space: nowrap;
  transition: 0.3s; border-radius: 4px;
}
.navmenu a:hover, .navmenu .active, .navmenu .active:focus {
  color: var(--nav-hover-color);
  background-color: color-mix(in srgb, var(--accent-color), transparent 90%);
}
/* Style for external link icon */
.navmenu a .bi-box-arrow-up-right {
    font-size: 0.75em; /* Make icon smaller */
    opacity: 0.7;
    vertical-align: baseline; /* Align better with text */
}

/*--------------------------------------------------------------
# Mobile Navigation (Completely Rewritten)
--------------------------------------------------------------*/

/* Mobile toggle button */
.mobile-nav-toggle {
  display: none;
  background: none;
  border: none;
  font-size: 24px;
  color: var(--nav-color);
  cursor: pointer;
  padding: 5px;
  line-height: 1;
}

.mobile-nav-toggle:hover {
  color: var(--accent-color);
}

/* Mobile navigation overlay */
.mobile-nav-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 9998;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.mobile-nav-overlay.show {
  opacity: 1;
  visibility: visible;
}

/* Mobile navigation menu */
.mobile-nav-menu {
  position: fixed;
  top: 0;
  right: -300px;
  width: 300px;
  height: 100vh;
  background: var(--surface-color);
  z-index: 9999;
  transition: right 0.3s ease;
  padding: 80px 0 20px 0;
  overflow-y: auto;
  box-shadow: -2px 0 10px rgba(0, 0, 0, 0.1);
}

.mobile-nav-menu.show {
  right: 0;
}

/* Mobile navigation list */
.mobile-nav-menu ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.mobile-nav-menu li {
  border-bottom: 1px solid var(--border-color);
}

.mobile-nav-menu a {
  display: block;
  padding: 15px 25px;
  color: var(--text-color);
  text-decoration: none;
  font-size: 16px;
  font-weight: 500;
  transition: all 0.3s ease;
}

.mobile-nav-menu a:hover,
.mobile-nav-menu a.active {
  background: var(--accent-color);
  color: white;
}

.mobile-nav-menu a .bi-box-arrow-up-right {
  font-size: 0.75em;
  opacity: 0.7;
  margin-left: 5px;
}

/* Close button in mobile menu */
.mobile-nav-close {
  position: absolute;
  top: 15px;
  right: 15px;
  background: none;
  border: none;
  font-size: 24px;
  color: var(--text-color);
  cursor: pointer;
  padding: 5px;
  line-height: 1;
}

.mobile-nav-close:hover {
  color: var(--accent-color);
}

/* Media queries */
@media (max-width: 1199px) {
  /* Hide desktop navigation */
  .navmenu {
    display: none !important;
  }
  
  /* Show mobile toggle */
  .mobile-nav-toggle {
    display: block !important;
  }
}

@media (min-width: 1200px) {
  /* Hide mobile elements on desktop */
  .mobile-nav-toggle,
  .mobile-nav-overlay,
  .mobile-nav-menu {
    display: none !important;
  }
  
  /* Ensure desktop nav is visible */
  .navmenu {
    display: block !important;
  }
}

/* Additional Mobile Navigation Improvements */
@media (max-width: 991px) {
  /* Ensure header actions are properly spaced on smaller screens */
  .header-actions {
    gap: 0.5rem;
  }
  
  .header-actions .btn-getstarted {
    padding: 0.4rem 1rem;
    font-size: 0.85rem;
  }
  
  .mobile-nav-toggle {
    font-size: 24px;
  }
}

@media (max-width: 767px) {
  /* Further adjustments for very small screens */
  .header-actions .btn-getstarted {
    padding: 0.3rem 0.8rem;
    font-size: 0.8rem;
  }
  
  .header .logo .header-logo-text {
    font-size: 1.3rem;
  }
  
  .header .logo img {
    height: 35px;
  }
  
  .navmenu-mobile {
    width: 280px; /* Slightly smaller on very small screens */
  }
  
  .navmenu-mobile a {
    padding: 12px 15px;
    font-size: 1rem;
  }
}

@media (max-width: 480px) {
  /* Extra small screens */
  .header-actions .btn-getstarted {
    display: none; /* Hide book demo button on very small screens to save space */
  }
  
  .navmenu-mobile {
    width: 260px;
  }
  
  .header .logo .header-logo-text {
    font-size: 1.2rem;
  }
  
  .header .logo img {
    height: 30px;
  }
}

/* Ensure mobile nav toggle is always visible when needed */
.mobile-nav-toggle {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  outline: none;
}

.mobile-nav-toggle:hover {
  color: var(--accent-color);
}

/* Improve mobile nav link styling */
.navmenu-mobile li:last-child a {
  border-bottom: none;
}

.navmenu-mobile a.active {
  background-color: color-mix(in srgb, var(--accent-color), transparent 85%);
  color: var(--accent-color);
  font-weight: 600;
}

/* Ensure proper z-index stacking */
.header {
  z-index: 1000;
}

.mobile-nav-active .header {
  z-index: 10000;
}

/*--------------------------------------------------------------
# Hero Section
--------------------------------------------------------------*/
.hero { width: 100%; min-height: 80vh; padding: 120px 0 60px 0; display: flex; align-items: center; }
.hero h1 { margin: 0 0 20px 0; font-size: 3rem; font-weight: 800; line-height: 1.2; }
.hero .lead { color: color-mix(in srgb, var(--text-color), transparent 30%); margin-bottom: 30px; font-size: 1.25rem; }
.hero .btn-lg { padding: 1rem 2rem; font-size: 1.1rem; }
.hero .animated { animation: up-down 2s ease-in-out infinite alternate-reverse both; }
@keyframes up-down { 0% { transform: translateY(10px); } 100% { transform: translateY(-10px); } }
.hero .hero-img img { max-width: 90%; height: auto; }
@media (max-width: 991px) { .hero { min-height: auto; padding: 80px 0 40px 0; text-align: center; } .hero h1 { font-size: 2.5rem; } .hero .lead { font-size: 1.1rem; } .hero .hero-img { margin-top: 40px; } }

/*--------------------------------------------------------------
# Why Comply Ark Section
--------------------------------------------------------------*/
.why-complyark-section .why-box { padding: 30px; text-align: center; border: 1px solid var(--border-color); border-radius: 8px; transition: all 0.3s ease-in-out; height: 100%; background-color: var(--surface-color); }
/* === REFINED BOX HOVER === */
.why-complyark-section .why-box:hover {
  transform: translateY(-8px); /* More lift */
  box-shadow: 0 6px 20px color-mix(in srgb, var(--heading-color), transparent 92%); /* Slightly stronger shadow */
  border-color: var(--accent-color);
}
/* === END REFINED HOVER === */
.why-complyark-section .why-box i { font-size: 3rem; color: var(--accent-color); margin-bottom: 20px; display: block; }
.why-complyark-section .why-box h4 { font-size: 1.25rem; font-weight: 700; margin-bottom: 15px; color: var(--heading-color); }
.why-complyark-section .why-box p { font-size: 0.95rem; color: var(--text-color); }

/*--------------------------------------------------------------
# How It Works Section
--------------------------------------------------------------*/
/* === STEP NUMBER COLOR UPDATED === */
.how-it-works-section .step-item .step-number {
  width: 40px; height: 40px; border-radius: 50%;
  background-color: var(--accent-color); /* Changed to Primary Accent Blue */
  color: var(--contrast-color); /* White Text */
  font-weight: 700; font-size: 1.1rem; display: flex;
  align-items: center; justify-content: center;
}
/* === END STEP NUMBER COLOR UPDATE === */
.how-it-works-section .step-item h4 { font-size: 1.2rem; font-weight: 600; color: var(--heading-color); margin-bottom: 5px; }
.how-it-works-section .step-item p { font-size: 0.95rem; color: var(--text-color); margin-bottom: 0; }
.how-it-works-section img { max-width: 85%; height: auto; }

/*--------------------------------------------------------------
# Platform Capabilities Section
--------------------------------------------------------------*/
.platform-section .feature-box { padding: 25px; border: 1px solid var(--border-color); border-radius: 8px; background-color: var(--surface-color); height: 100%; transition: all 0.3s ease; }
/* === REFINED BOX HOVER === */
.platform-section .feature-box:hover {
  transform: translateY(-5px); /* Subtle lift */
  box-shadow: 0 6px 20px color-mix(in srgb, var(--heading-color), transparent 92%); /* Match why-box shadow */
  border-color: var(--accent-color);
}
body.dark-mode .platform-section .feature-box {
  background-color: color-mix(in srgb, var(--surface-color), var(--contrast-color) 3%); /* Slightly lighter surface on dark */
}
body.dark-mode .platform-section .feature-box:hover {
   background-color: color-mix(in srgb, var(--surface-color), var(--contrast-color) 6%);
}
/* === END REFINED HOVER === */
.platform-section .feature-box .icon { font-size: 2.5rem; color: var(--muted-accent-color); margin-right: 20px; line-height: 1; }
.platform-section .feature-box h4 { font-size: 1.2rem; font-weight: 700; margin-bottom: 10px; color: var(--heading-color); }
.platform-section .feature-box p { font-size: 0.95rem; color: var(--text-color); line-height: 1.6; margin-bottom: 0; }

/*--------------------------------------------------------------
# Features Section
--------------------------------------------------------------*/
.features .features-item {
  background-color: var(--surface-color); display: flex; align-items: center;
  padding: 20px; transition: 0.3s; border: 1px solid var(--border-color);
  position: relative; border-radius: 4px; height: 100%;
}
.features .features-item i {
  font-size: 28px; padding-right: 15px; line-height: 1;
  /* Default color (overridden below) */
  color: var(--muted-accent-color);
}
.features .features-item h3 {
  font-weight: 600; margin: 0; padding: 0; line-height: 1.2;
  font-size: 0.95rem; font-family: var(--nav-font); /* Poppins for consistency */
}
.features .features-item h3 a { color: var(--heading-color); transition: 0.3s; }
.features .features-item h3 a:hover { color: var(--accent-color); }
.features .features-item:hover { border-color: var(--accent-color); box-shadow: 0 2px 8px color-mix(in srgb, var(--heading-color), transparent 96%); }

/* Specific color overrides for Features section icons (Unchanged from Iteration 5) */
.features .features-item .bi-envelope-paper { color: #ffbb2c; }
.features .features-item .bi-person-lines-fill { color: #5578ff; }
.features .features-item .bi-exclamation-circle { color: #e80368; }
.features .features-item .bi-translate { color: #e361ff; }
.features .features-item .bi-shield-exclamation { color: #47aeff; }
.features .features-item .bi-diagram-3 { color: #ffa76e; }
.features .features-item .bi-journal-text { color: #11dbcf; }
.features .features-item .bi-shield-lock { color: #4233ff; }
.features .features-item .bi-command { color: #b2904f; }
.features .features-item .bi-speedometer2 { color: #b20969; }
.features .features-item .bi-clock-history { color: #ff5828; }
.features .features-item .bi-building-check { color: #29cc61; }


/*--------------------------------------------------------------
# Pricing Section (REMOVED)
--------------------------------------------------------------*/
/* Styles related to .pricing-section can be deleted */


/*--------------------------------------------------------------
# FAQ Section
--------------------------------------------------------------*/
.faq-section .accordion-button { font-family: var(--nav-font); /* Poppins */ font-weight: 600; font-size: 1.1rem; color: var(--heading-color); background-color: var(--surface-color); padding: 1.25rem 1.5rem; border: none; box-shadow: none; text-align: left; }
.faq-section .accordion-button:not(.collapsed) { color: var(--secondary-accent-color); background-color: color-mix(in srgb, var(--secondary-accent-color), transparent 95%); box-shadow: none; }
.faq-section .accordion-button:focus { box-shadow: none; border: none; }
.faq-section .accordion-button::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%231d5c9e'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
  transition: transform .2s ease-in-out;
}
body.dark-mode .faq-section .accordion-button::after {
     background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23e9ecef'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}
.faq-section .accordion-button:not(.collapsed)::after { transform: rotate(-180deg); }
.faq-section .accordion-body { padding: 1.5rem; background-color: var(--surface-color); color: var(--text-color); font-size: 0.95rem; line-height: 1.7; }
.faq-section .accordion-item { border: 1px solid var(--border-color); margin-bottom: 10px; border-radius: 4px; overflow: hidden; background-color: var(--surface-color); } /* Ensure bg color for item */
.faq-section .accordion-body a { font-weight: 500; text-decoration: underline; }


/*--------------------------------------------------------------
# Register Interest Section
--------------------------------------------------------------*/
.register-section {
    background-color: color-mix(in srgb, var(--secondary-accent-color), transparent 92%);
    padding: 60px 0;
}
body.dark-mode .register-section {
     background-color: color-mix(in srgb, var(--secondary-accent-color), black 85%);
}

.register-section h2 { color: var(--heading-color); margin-bottom: 15px; }
.register-section .lead { color: color-mix(in srgb, var(--heading-color), transparent 10%); margin-bottom: 30px; }
body.dark-mode .register-section .lead { color: color-mix(in srgb, var(--text-color), transparent 10%); }
.register-form input { text-align: center; }
.register-form .form-control-lg { padding: 0.8rem 1rem; font-size: 1.1rem; }
.register-form button { padding: 0.8rem 1rem; /* Uses .btn-primary styles */ }
.privacy-note { color: var(--subtle-text-color); }
.privacy-note a { color: var(--heading-color); text-decoration: underline; }
body.dark-mode .privacy-note a { color: var(--contrast-color); }
.privacy-note a:hover { color: color-mix(in srgb, var(--heading-color), black 15%); }
body.dark-mode .privacy-note a:hover { color: color-mix(in srgb, var(--contrast-color), transparent 15%); }


/*--------------------------------------------------------------
# Contact Section
--------------------------------------------------------------*/
.contact-section .contact-info { margin-top: 30px; }
.contact-section .contact-info i { color: var(--accent-color); }
.contact-section .contact-info a { color: var(--text-color); }
.contact-section .contact-info a:hover { color: var(--accent-color); }

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
.footer { font-size: 0.9rem; background-color: var(--surface-color); padding: 60px 0 30px 0; color: var(--text-color); border-top: 1px solid var(--border-color); }
.footer .footer-info .logo span { font-size: 2rem; font-weight: 700; color: var(--heading-color); font-family: var(--heading-font); /* Match header logo style if needed */ }
.footer .footer-info p { margin-top: 15px; font-size: 0.9rem; color: color-mix(in srgb, var(--text-color), transparent 20%); }
.footer .social-links a { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--border-color); font-size: 1rem; color: color-mix(in srgb, var(--text-color), transparent 30%); margin-right: 10px; transition: 0.3s; }
.footer .social-links a:hover { color: var(--accent-color); border-color: var(--accent-color); }
.footer h4 { font-size: 1rem; font-weight: bold; color: var(--heading-color); position: relative; padding-bottom: 10px; margin-bottom: 15px; }
.footer h4::after { content: ''; position: absolute; left: 0; bottom: 0; width: 30px; height: 2px; background: var(--accent-color); }
@media(max-width: 767px) { .footer .footer-contact.text-md-start, .footer .footer-info { text-align: center !important; } .footer h4::after { left: calc(50% - 15px); } .footer .social-links { justify-content: center; } }
.footer .footer-links ul { list-style: none; padding: 0; margin: 0; }
.footer .footer-links ul li { padding: 8px 0; display: flex; align-items: center; }
.footer .footer-links ul li:first-child { padding-top: 0; }
.footer .footer-links ul a { color: color-mix(in srgb, var(--text-color), transparent 15%); transition: 0.3s; display: inline-block; line-height: 1; }
.footer .footer-links ul a:hover { color: var(--accent-color); }
.footer .footer-contact p { margin-bottom: 5px; }
.footer .copyright { border-top: 1px solid var(--border-color); padding-top: 30px; margin-top: 30px; color: var(--subtle-text-color); }
.footer .copyright strong { color: var(--heading-color); }

/*--------------------------------------------------------------
# Scroll Top Button
--------------------------------------------------------------*/
.scroll-top { position: fixed; visibility: hidden; opacity: 0; right: 15px; bottom: 15px; z-index: 9999; background: var(--accent-color); width: 40px; height: 40px; border-radius: 4px; transition: all 0.4s; }
.scroll-top i { font-size: 24px; color: var(--contrast-color); line-height: 0; }
.scroll-top:hover { background: var(--subtle-accent-color); }
body.dark-mode .scroll-top:hover { background: color-mix(in srgb, var(--accent-color), white 15%); }
.scroll-top.active { visibility: visible; opacity: 1; }

/*--------------------------------------------------------------
# Preloader
--------------------------------------------------------------*/
#preloader { position: fixed; inset: 0; z-index: 99999; overflow: hidden; background: var(--bg-color); transition: all 0.6s ease-out; display: flex; align-items: center; justify-content: center; }
#preloader:before { content: ""; border: 6px solid var(--surface-color); border-color: var(--accent-color) transparent var(--accent-color) transparent; border-radius: 50%; width: 60px; height: 60px; animation: animate-preloader 1.2s linear infinite; }
@keyframes animate-preloader { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/*--------------------------------------------------------------
# Disable aos animation delay on mobile devices
--------------------------------------------------------------*/
@media screen and (max-width: 768px) { [data-aos-delay] { transition-delay: 0 !important; } }

.book-demo-form-section .form-control {
  border-radius: 0.5rem; /* Slightly more rounded corners */
  padding: 0.75rem 1rem; /* More padding */
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  border: 1px solid var(--border-color); /* Use theme variable */
}

.book-demo-form-section .form-control:focus {
  border-color: var(--accent-color);
  box-shadow: 0 0 0 0.25rem rgba(var(--accent-color-rgb), 0.25);
}

.book-demo-form-section .form-label {
  margin-bottom: 0.5rem;
  font-weight: 500; /* Slightly bolder labels */
}

/* Floating labels for a modern touch - requires specific HTML structure */
.book-demo-form-section .form-floating > .form-control,
.book-demo-form-section .form-floating > .form-select {
  padding: 1rem 0.75rem;
  padding-top: 1.625rem; /* Added more top padding to prevent overlap */
  height: auto; /* Adjust height for floating label */
}

.book-demo-form-section .form-floating > label {
  padding: 1rem 0.75rem;
  color: var(--text-light); /* Lighter placeholder text */
}

/* Dark mode specific styling for floating label initial state */
[data-bs-theme="dark"] .book-demo-form-section .form-floating > label {
  color: var(--subtle-text-color); /* Use subtle-text-color for dark mode initial label */
}

.book-demo-form-section .form-floating > .form-control:focus ~ label,
.book-demo-form-section .form-floating > .form-control:not(:placeholder-shown) ~ label,
.book-demo-form-section .form-floating > .form-select:focus ~ label,
.book-demo-form-section .form-floating > .form-select:not([value=""]) ~ label { /* Adjust for select if used */
  opacity: 0.65;
  transform: scale(0.80) translateY(-0.65rem) translateX(0.15rem); /* Adjusted scale and Y translation */
  color: var(--accent-color); /* Label color on focus/filled */
}


.book-demo-form-section .btn-primary {
  padding: 0.75rem 1.5rem;
  font-size: 1.1rem;
  font-weight: 600;
  border-radius: 50px; /* Pill shape */
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(var(--accent-color-rgb), 0.2);
  border-color: var(--accent-color-hover);
}

.book-demo-form-section .btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(var(--accent-color-rgb), 0.3);
  background-color: var(--accent-color-hover);
  border-color: var(--accent-color-hover);
}

.book-demo-form-section .invalid-feedback {
  font-size: 0.875em;
  margin-top: 0.25rem;
}

/* Dark mode specific styling for book demo form inputs */
[data-bs-theme="dark"] .book-demo-form-section .form-control {
  background-color: color-mix(in srgb, var(--surface-color), var(--contrast-color) 5%);
  border-color: var(--border-color);
  color: var(--text-color);
}

[data-bs-theme="dark"] .book-demo-form-section .form-control:focus {
  background-color: var(--surface-color);
  border-color: var(--accent-color);
  box-shadow: 0 0 0 0.25rem rgba(var(--accent-color-rgb), 0.35); /* Slightly more visible shadow in dark */
}

[data-bs-theme="dark"] .book-demo-form-section .form-control::placeholder {
  color: var(--subtle-text-color);
  opacity: 0.7;
}

/* Hero CTA Button Enhancements -- REVISED */

/* Base style for hero buttons (remove specific sizing, radius, text-transform from generic rule) */
.hero .btn {
  transition: all 0.3s ease-in-out;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05); /* Softer shadow */
  padding: 10px 25px; /* Default padding, can be overridden by .btn-lg etc. */
  font-weight: 500; /* Standard weight */
}

/* Book Demo Button (Primary) in Hero */
.hero .btn-primary {
  background-color: var(--accent-color); /* Default primary background */
  border-color: var(--accent-color);
  color: var(--contrast-color);
}

.hero .btn-primary:hover {
  background-color: var(--accent-color-hover);
  border-color: var(--accent-color-hover);
  color: var(--contrast-color); /* Text color for light mode hover */
  transform: translateY(-2px);
  box-shadow: 0 6px 12px rgba(var(--accent-color-rgb), 0.2);
}

/* Read DPDPA Guide Button (Outline Secondary) in Hero */
.hero .btn-outline-secondary {
  color: var(--accent-color);
  border-color: var(--accent-color);
  background-color: transparent;
}

.hero .btn-outline-secondary:hover {
  color: var(--contrast-color);
  background-color: var(--accent-color);
  border-color: var(--accent-color);
  transform: translateY(-2px);
  box-shadow: 0 6px 12px rgba(var(--accent-color-rgb), 0.15);
}

/* Dark mode specifics for hero buttons */
[data-bs-theme="dark"] .hero .btn-primary {
  background-color: var(--accent-color); /* Dark mode accent */
  border-color: var(--accent-color);
  color: #000000; /* Black text for contrast on light blue */
}

[data-bs-theme="dark"] .hero .btn-primary:hover {
  background-color: var(--accent-color-hover);
  border-color: var(--accent-color-hover);
  color: #000000; /* Consistent black text on hover */
}

[data-bs-theme="dark"] .hero .btn-outline-secondary {
  color: var(--accent-color);
  border-color: var(--accent-color);
}

[data-bs-theme="dark"] .hero .btn-outline-secondary:hover {
  color: #000000; /* Black text for contrast */
  background-color: var(--accent-color-hover); /* Use hover accent color for BG */
  border-color: var(--accent-color-hover);
}


/* Styles for Book Demo Form Section */
.book-demo-form-section .form-control {
  border-radius: 0.5rem; /* Slightly more rounded corners */
  padding: 0.75rem 1rem; /* More padding */
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  border: 1px solid var(--border-color); /* Use theme variable */
}

/* Dark mode specific styling for book demo form inputs and labels */
[data-bs-theme="dark"] .book-demo-form-section .form-control {
  background-color: var(--surface-color); /* Use surface color for inputs */
  border-color: var(--border-color); /* Standard border */
  color: var(--text-color);
}

[data-bs-theme="dark"] .book-demo-form-section .form-control:focus {
  background-color: color-mix(in srgb, var(--surface-color), var(--contrast-color) 5%); /* Slightly lighter on focus */
  border-color: var(--accent-color);
  box-shadow: 0 0 0 0.25rem rgba(var(--accent-color-rgb), 0.35);
}

[data-bs-theme="dark"] .book-demo-form-section .form-control::placeholder {
  color: var(--subtle-text-color);
  opacity: 0.7;
}

[data-bs-theme="dark"] .book-demo-form-section .form-floating > label {
  color: var(--subtle-text-color); /* Initial state of floating label */
}

[data-bs-theme="dark"] .book-demo-form-section .form-floating > .form-control:focus ~ label,
[data-bs-theme="dark"] .book-demo-form-section .form-floating > .form-control:not(:placeholder-shown) ~ label {
  color: var(--accent-color); /* Active state of floating label */
}

[data-bs-theme="dark"] .book-demo-form-section .btn-primary {
    background-color: var(--accent-color);
    border-color: var(--accent-color);
    color: #000000; /* Black text for button */
    box-shadow: 0 4px 15px rgba(var(--accent-color-rgb), 0.15);
}

[data-bs-theme="dark"] .book-demo-form-section .btn-primary:hover {
    background-color: var(--accent-color-hover);
    border-color: var(--accent-color-hover);
    color: #000000; /* Consistent black text */
    box-shadow: 0 6px 20px rgba(var(--accent-color-rgb), 0.25);
}