/*
 * Custom Styles for GST Solution (gstsolution.in)
 * Supplements Tailwind CSS - Standard CSS Version
 */

/* Optional: Import font using CSS */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

/* Apply base font family and smoothing */
body {
    font-family: 'Inter', sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    counter-reset: section;
    background-color: #f9fafb; /* Tailwind bg-gray-50 */
    color: #1f2937; /* Tailwind text-gray-800 */
}

/* Custom Scrollbar Styles (Optional) */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 4px; }
::-webkit-scrollbar-thumb { background-color: #aab2c0; border-radius: 4px; border: 2px solid #f1f1f1; }
::-webkit-scrollbar-thumb:hover { background-color: #959db0; }

/* Prevent body scroll when mobile menu is open */
@media (max-width: 767px) {
    body.mobile-menu-open { overflow: hidden; }
}

#mobile-menu > div { max-height: 100vh; overflow-y: auto; }

label span.text-red-500 { margin-left: 2px; color: #ef4444; }


/* --- START: Styles for Privacy Policy Page (Standard CSS) --- */

.policy-content {
    color: #374151; /* text-gray-700 */
    line-height: 1.8;
}

.policy-content h2 {
    font-size: 1.875rem; /* text-3xl */ line-height: 2.25rem;
    font-weight: 700; /* font-bold */
    color: #1e3a8a; /* text-blue-800 */
    margin-top: 3rem; /* mt-12 */
    margin-bottom: 1.5rem; /* mb-6 */
    padding-top: 1rem; /* pt-4 */
    position: relative;
    padding-bottom: 0.5rem; /* pb-2 */
    border-bottom-width: 1px;
    border-color: #d1d5db; /* border-gray-300 */
    scroll-margin-top: 100px;
    counter-reset: subsection;
}

.policy-content h2:after {
    content: '';
    display: block;
    width: 4rem; /* w-16 */
    height: 0.25rem; /* h-1 */
    background-color: #2563eb; /* bg-blue-600 */
    margin-top: 0.5rem; /* mt-2 */
    margin-bottom: 1rem; /* mb-4 */
}

.policy-content h2:before {
    content: counter(section) ". ";
    counter-increment: section;
    font-weight: 700; /* font-bold */
    margin-right: 0.25rem; /* mr-1 */
}

.policy-content h3 {
    font-size: 1.5rem; /* text-2xl */ line-height: 2rem;
    font-weight: 600; /* font-semibold */
    color: #1f2937; /* text-gray-800 */
    margin-top: 2.5rem; /* mt-10 */
    margin-bottom: 1rem; /* mb-4 */
    padding-top: 1rem; /* pt-4 */
    scroll-margin-top: 100px;
}

 .policy-content h3:before {
     content: counter(section) "." counter(subsection) " ";
     counter-increment: subsection;
     font-weight: 600; /* font-semibold */
     margin-right: 0.25rem; /* mr-1 */
     color: #4b5563; /* text-gray-600 */
 }

.policy-content p {
    margin-bottom: 1.5rem; /* mb-6 */
    font-size: 1rem; /* text-base */
    line-height: 1.75rem; /* Adjust if needed, Tailwind default for text-base */
}

.policy-content ul, .policy-content ol {
    margin-bottom: 1.5rem; /* mb-6 */
    font-size: 1rem; /* text-base */
    line-height: 1.75rem;
    list-style-position: inside;
    padding-left: 1.25rem; /* pl-5 */
}
.policy-content ul > li + li, .policy-content ol > li + li { margin-top: 0.5rem; } /* space-y-2 */
.policy-content li { margin-bottom: 0.75rem; } /* mb-3 */

.policy-content ul { list-style-type: disc; }
.policy-content ol { list-style-type: decimal; }

.policy-content ul ul, .policy-content ol ol {
    margin-top: 0.5rem; /* mt-2 */
    margin-bottom: 0.75rem; /* mb-3 */
}

.policy-content a {
    color: #2563eb; /* text-blue-600 */
    transition-property: color;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
    text-decoration: none; /* Usually default, but be explicit */
}
.policy-content a:hover {
    color: #1e40af; /* hover:text-blue-800 */
    text-decoration-line: underline;
}

.policy-content strong {
    font-weight: 600; /* font-semibold */
    color: #111827; /* text-gray-800 */
}

.policy-content blockquote {
    border-left-width: 4px;
    border-color: #93c5fd; /* border-blue-300 */
    padding-left: 1rem; /* pl-4 */
    padding-top: 0.5rem; /* py-2 */ padding-bottom: 0.5rem;
    margin-top: 1.5rem; /* my-6 */ margin-bottom: 1.5rem;
    font-style: italic;
    color: #4b5563; /* text-gray-600 */
    background-color: #eff6ff; /* bg-blue-50 */
    border-top-right-radius: 0.375rem; /* rounded-r-md */
    border-bottom-right-radius: 0.375rem;
}

 /* Table of Contents specific styling */
 .toc {
     background-color: #eff6ff; /* bg-blue-50 */
     border-radius: 0.5rem; /* rounded-lg */
     padding: 1.5rem; /* p-6 */
     margin-bottom: 3rem; /* mb-12 */
     border-width: 1px;
     border-color: #bfdbfe; /* border-blue-200 */
     box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1); /* shadow-sm */
 }

 /* Override h3 styles just for TOC */
 .toc h3 {
      font-size: 1.25rem; /* text-xl */ line-height: 1.75rem;
      font-weight: 600; /* font-semibold */
      color: #1e3a8a; /* text-blue-800 */
      margin-top: 0;
      margin-bottom: 1rem; /* mb-4 */
      text-align: center;
      counter-increment: none;
      padding-bottom: 0;
      padding-top: 0;
      border-bottom: none;
      scroll-margin-top: 0;
 }
 @media (min-width: 640px) { /* sm breakpoint */
      .toc h3 { text-align: left; }
 }
  .toc h3:after { content: none; }
 .toc h3:before { content: none; }

 .toc ol {
     list-style-type: decimal;
     list-style-position: inside;
     padding-left: 1rem; /* pl-4 */
     margin-bottom: 0;
     display: grid; grid-template-columns: repeat(1, minmax(0, 1fr));
     gap: 0.25rem 1rem; /* gap-y-1 gap-x-4 */
 }
 @media (min-width: 640px) { /* sm breakpoint */
     .toc ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 }

 .toc li { margin-bottom: 0.25rem;} /* mb-1 */
 .toc a {
     color: #1d4ed8; /* text-blue-700 */
     font-weight: 500; /* font-medium */
 }
  .toc a:hover { color: #1e3a8a; } /* hover:text-blue-900 */

/* Main container for the policy text area */
 .policy-container {
     background-color: #ffffff; /* bg-white */
     padding: 1.5rem; /* p-6 */
     border-radius: 0.5rem; /* rounded-lg */
     box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1); /* shadow-lg */
 }
 @media (min-width: 768px) { /* md breakpoint */
     .policy-container { padding: 2rem; } /* p-8 */
 }
 @media (min-width: 1024px) { /* lg breakpoint */
     .policy-container { padding: 2.5rem; } /* p-10 */
 }


/* Responsive adjustments */
@media (max-width: 768px) {
    .policy-content h2 { font-size: 1.5rem; line-height: 2rem; } /* text-2xl */
    .policy-content h3 { font-size: 1.25rem; line-height: 1.75rem; } /* text-xl */
}

/* --- END: Styles for Privacy Policy Page --- */


/* --- START: Styles for Form Submit Button Loading Spinner --- */
.button-loading {
    position: relative;
    pointer-events: none; /* Disable clicks while loading */
    color: transparent !important; /* Hide original text of the button span */
}
.button-loading::after {
    content: '';
    position: absolute;
    width: 1.2em; /* Size of the spinner */
    height: 1.2em; /* Size of the spinner */
    top: 50%;
    left: 50%;
    margin-top: -0.6em; /* Half of height */
    margin-left: -0.6em; /* Half of width */
    border: 2px solid white; /* Spinner color - adjust if button text isn't white */
    border-right-color: transparent; /* Makes one side of the circle 'open' */
    border-radius: 50%;
    animation: spin 0.6s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}
/* --- END: Styles for Form Submit Button Loading Spinner --- */