body {
  font-family: 'Segoe UI', Roboto, sans-serif;
  background-color: #FDF6F0; /* Light Sandstone Beige */
  color: #3B2F2F; /* Earthy Dark Brown for contrast */
}

h2, h3, h4, h5 {
    color: #A82222; /* Deep Terracotta Red for headings */
    font-weight: 700;
    letter-spacing: 0.5px;
}

section {
  padding: 40px 0;
}
section h2 {
  text-align: center;
  margin-bottom: 30px;
  font-size: 28px;
  position: relative;
}

section h2::after {
  content: "";
  width: 80px;
  height: 3px;
  background: #f4a100; /* saffron accent */
  display: block;
  margin: 10px auto 0;
}

.citizen-services .card,
.citizen-services img {
  border-radius: 6px;
  border: 1px solid #e0d7c3;
  background: #ffffff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.citizen-services .card:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 14px rgba(0,0,0,0.15);
}



/* Hero Section */
#mapSection {
    background: #fff8f2; /* Off-white background */
    border: 2px solid #C94C4C; /* Soft red border */
    box-shadow: 0 4px 12px rgba(168,34,34,0.2); /* Soft red shadow */
}

#mapSection h3 {
    color: #A82222; /* Deep Terracotta Red title */
    border-bottom: 3px solid #FFC107; /* Saffron Underline */
}

/* Scrollable Facilities */
.scroll-wrapper {
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.nearby-link {
    color: #3B2F2F; /* Dark Brown default text */
}

.nearby-link:hover {
    color: #A82222; /* Deep Terracotta Red on hover */
}

.nearby-thumb {
    border: 2px solid #FFC107; /* Saffron border for images */
} 

/* Ensure the floor plans title uses the saffron underline */


/* Style for the ACTIVE button (The selected floor) */

.facility-card {
  background: #fff;
  border: 1px solid #e2dac6;
  border-radius: 8px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.1);
  overflow: hidden;
}

.facility-card h3 {
  color: #1f2937;
  font-size: 20px;
}

.facility-card p {
  color: #555;
}

button,
.btn {
  border-radius: 4px;
  font-weight: 500;
}

.btn-primary {
  background-color: #0056b3;
  border-color: #0056b3;
}

.btn-primary:hover {
  background-color: #003d82;
}

.btn-outline-primary {
  border-color: #0056b3;
  color: #0056b3;
}

.btn-outline-primary:hover {
  background: #0056b3;
  color: #fff;
}

.find-us, .nearby-landmarks {
  background: #fffdf5;
  border-top: 1px solid #e5dcc7;
}

.find-us p,
.nearby-landmarks li {
  font-size: 15px;
  color: #333;
}

.nearby-landmarks li {
  margin-bottom: 8px;
}

a:focus,
button:focus {
  outline: 3px solid #f4a100;
  outline-offset: 2px;
}


.scroll-track {
  display: flex;
  gap: 20px;
  padding-bottom: 10px;
}
.facility-card {
  flex: 0 0 100%;
  max-width: 500px;
  margin: auto;
  scroll-snap-align: start;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  transition: transform 0.3s ease;
}
.facility-card:hover {
  transform: scale(1.02);
}

/* Card Styling */
.card,
.card-img-top {
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.card-img-top {
  height: 180px;
  object-fit: cover;
}
.card {
    transition: transform 0.3s ease, box-shadow 0.3s ease; /* For smooth animation */
}



/* ====================================
   CARD BASE STYLING (Applies to all cards)
   ==================================== */
/* ====================================
   CARD BASE STYLING (Applies to all cards)
   ==================================== */

.card-bg {
    /* Critical: Set position relative for absolute children */
    position: relative;
    /* Ensure the card has a fixed height so the image is visible */
    min-height: 250px; 
    overflow: hidden;
    border: none;
    background-size: cover;
    background-position: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* ::before will act as the darkening OVERLAY */
.card-bg::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* Start fully transparent (bright image) */
    background-color: rgba(0,0,0,0); 
    z-index: 0;
    transition: background-color 0.4s ease;
}

/* Card Body Content - Absolute Positioned and Hidden */
/* This element holds the text, icon, and button */
.card-bg .card-body {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    
    /* Center the content */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    
    /* Start fully transparent (hidden content) */
    opacity: 0; 
    transition: opacity 0.4s ease;
    
    /* Ensure content text is readable */
    color: white; 
    background-color: transparent; /* No need for a background color here */
    z-index: 1; /* Above the overlay (0) */
}

/* --- HOVER EFFECTS --- */

/* 1. Darken the image (via the ::before overlay) on hover */
.card-bg:hover::before {
    /* CRITICAL: The image darkens */
    background-color: rgba(0,0,0,0.6); 
}

/* 2. Reveal the content (via the .card-body) on hover */
.card-bg:hover .card-body {
    opacity: 1;
}

/* 3. Optional lift effect */
.card-bg:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.5);
}

/* Ensure all text and icons are white in the revealed state */
.card-bg .card-body * {
    color: white !important;
}

/* Ensure the yellow button is correctly placed and visible */
.card-bg .card-body .btn {
    position: relative; 
    z-index: 2;
    color: #212529 !important; /* Dark text on the yellow button */
}

/* ====================================
   INDIVIDUAL CARD BACKGROUNDS 
   (Keep the same)
   ==================================== */

/* 1. FORMS CARD */
.forms-bg {
 background-image: url('/images/forms-bg.png'); 
}

/* 2. NOTICES CARD */
.notices-bg {
 background-image: url('/images/notices-bg.png'); 
}

/* 3. FEEDBACK CARD */
.feedback-bg {
 background-image: url('/images/feedback-bg.png'); 
}


/* Carousel Controls */
.carousel-control-prev,
.carousel-control-next {
  position: static !important;
  width: 40px;
  height: 40px;
  background-color: rgba(0, 0, 0, 0.55);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 10px;
}

/* Container for arrows + dots */
.carousel-controls-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 15px;
  gap: 20px;
}

/* Dots */
.carousel-indicators {
  position: static !important;
  margin: 0;
  display: flex;
  gap: 10px;
}
.carousel-indicators [data-bs-target] {
  background-color: #007bff;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: none;
}
.carousel-indicators .active {
  background-color: #0056b3;
}

.modal-content .bi {
  color: #ffc107;
}
#copyPhoneBtn {
  line-height: 1;
  padding: 4px 6px;
}

#aboutSection h5 {
  font-weight: 600;
  margin-bottom: 10px;
}
#aboutSection p {
  font-size: 15px;
}

/* Smooth Scroll */
html {
  scroll-behavior: smooth;
}

/* --- AGGRESSIVE GOOGLE TRANSLATE BAR HIDING --- */
/* Hide Google top bar */
/* --- AGGRESSIVE CSS FOR GENERAL CLEANUP --- */
.goog-te-gadget,
.goog-te-gadget-simple,
.goog-te-menu-value,
.goog-te-combo {
    display: none !important;
}

/* Hide Google Toolbar (top banner) */
.goog-te-banner-frame.skiptranslate {
    display: none !important;
}
body {
    top: 0 !important;
}

/* Hide the floating Google Translate icon */
.goog-te-balloon-frame {
    display: none !important;
}

/* Hide popup menus */
.goog-te-menu-frame {
    display: none !important;
}
.skiptranslate {
    display: none !important;
}

/* ------------------------------------------- */
/* Prevent button from being translated */
#langToggleBtn {
    transform: none !important;
}
#langToggleBtn * {
    transform: none !important;
}

/* --- GIGW 2.0 Contrast Mode --- */
.gigw-contrast {
  background-color: #000 !important;
  color: #ff0 !important; /* yellow text */
}
.gigw-contrast a,
.gigw-contrast button {
  color: #0ff !important; /* cyan for links/buttons */
}
.gigw-contrast .card,
.gigw-contrast .navbar {
  background-color: #000 !important;
  border-color: #ff0 !important;
}

.gigw-topbar {
  background: #fff8e1; /* soft govt cream */
  border-bottom: 1px solid #e0d7b8;
  font-size: 14px;
}

.gigw-topbar a {
  color: #0d6efd;
  font-weight: 500;
}

.gigw-topbar a:hover {
  text-decoration: underline;
}

.gigw-btn {
  background: #ffffff;
  border: 1px solid #000;
  padding: 4px 10px;
  font-size: 13px;
  font-weight: 500;
}

.gigw-btn:hover {
  background: #000;
  color: #fff;
}



/* LIST ITEM */
.nearby-list li {
  position: relative;        /* Needed for absolute image */
  display: flex;
  align-items: center;
  gap: 10px; 
  margin-bottom: 8px;       /* Tight spacing */
}

/* ICON */
.nearby-icon {
  font-size: 1.1rem;
  margin-top: 0;
}

/* LINK TEXT */
.nearby-link {
  flex: 1;
  max-width: 60%;
  font-size: 1rem;
  color: #333;
  text-decoration: none;
  line-height: 1.3;

  /* allow wrapping */
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
}


.nearby-link:hover {
  color: #007bff;
  font-weight: 500;
}

/* IMAGE (hidden but does NOT take space) */
.nearby-thumb {
  position: absolute;       /* prevent spacing */
  left: 250px;              /* adjust where it appears */
  top: 0;
  width: 200px;
  opacity: 0;
  pointer-events: none;
  transform: scale(0.95);
  transition: 0.25s ease;
  border-radius: 8px;
  border: 2px solid #007bff;
}

/* SHOW IMAGE */
.nearby-thumb.is-hovered {
  opacity: 1;
  transform: scale(1);
}

/* --- Styles for Department List beside Floor Map --- */

/* Container for the department list */
.department-list-overlay {
    background-color: #f8f8f8; /* Light background for contrast */
    padding: 15px;
    border-radius: 8px;
    height: 100%; /* Take up vertical space */
    border: 1px solid #e0e0e0;
}

/* Department List Title */
.department-list-overlay h6 {
    color: #333; /* Dark color for title */
    border-bottom: 1px solid #ddd;
    padding-bottom: 8px;
    margin-bottom: 10px;
    font-size: 1.1rem;
}

/* Scrollable area for the department list */
.dept-scroll {
    max-height: 450px; /* Limits the height so it fits next to the map */
    overflow-y: auto; /* Adds a scrollbar when content overflows */
    padding-right: 15px; /* Adds space for the scrollbar */
    list-style: none; /* Removes default bullet points */
    padding-left: 0;
}

/* Individual list item styling */
.dept-scroll li {
    padding: 4px 0;
}

/* Link styling */
.department-link {
    color: #007bff !important; /* Blue for links */
    display: block;
    text-decoration: none;
    transition: color 0.2s;
}

.department-link:hover {
    color: #0056b3 !important; /* Darker blue on hover */
    text-decoration: underline;
}

/* optional visual for focus */

/* Rajasthani Color Palette (For reference and use in your existing styles) */
/* Deep Terracotta Red: #A82222 */
/* Saffron/Turmeric Yellow: #FFC107 */
/* Light Sandstone Beige: #FDF6F0 */
/* Earthy Dark Brown Text: #3B2F2F */


/* Custom styling for the new services directory (Add this section to styles.css) */

/* General Accordion Styling */
#dynamic-services-directory .card {
    border-radius: 8px;
    margin-bottom: 10px;
}

/* Department Card Header (Terracotta Red) */
/* Custom styling for the new services directory (Add this section to styles.css) */


/* Basic styling for the Department Buttons */
.dept-button {
    /* Set a minimum width for uniform look */
    min-width: 250px; 
    text-align: left;
    white-space: normal; /* Allows text to wrap */
    height: 100%; /* Important for equal height in the grid */
}
/* public/css/style.css */
/* Basic styling for the Department Buttons */
.dept-button {
    min-width: 250px; 
    text-align: left;
    white-space: normal;
    height: 100%; 
}

/* Ensure the directory container uses flex for wrap and spacing */
#serviceDirectory {
    /* Use Bootstrap's gap for spacing between buttons */
    --bs-gutter-x: 1.5rem; 
    --bs-gutter-y: 1.5rem; 
}

/* Style for the cards/buttons */
.dept-card-container, .branch-card-container {
    padding: 0.75rem; 
}

/* Custom styles for the header (optional) */
.services-header {
    border-bottom: 5px solid #ffc107; /* Yellow accent */
}

/* --- Global Styles --- */

/* Use a background image or rich gradient for the header */
.services-header {
    background: linear-gradient(135deg, #a73737 0%, #7a2828 100%); /* Deep Red/Maroon Gradient */
    border-bottom: 8px solid #ffc107; /* Strong Gold/Yellow Accent */
}

/* Ensure the buttons flow nicely in the grid */
#serviceDirectory {
    --bs-gutter-x: 2rem; 
    --bs-gutter-y: 2rem; 
}

/* --- Button/Card Styles --- */

/* --- Global Styles --- */

/* Use a background image or rich gradient for the header */
.services-header {
    background: linear-gradient(135deg, #a73737 0%, #7a2828 100%); /* Deep Red/Maroon Gradient */
    border-bottom: 8px solid #ffc107; /* Strong Gold/Yellow Accent */
}

/* Ensure the buttons flow nicely in the grid */
#serviceDirectory {
    --bs-gutter-x: 2rem; 
    --bs-gutter-y: 2rem; 
}

/* --- Button/Card Styles --- */


/* In public/css/styles.css */

/* Work buttons */
/* --- Button/Card Styles (Updated for Stability) --- */

/* Department buttons as clear cards */
.dept-button {
    min-height: 120px;
    font-size: 1.1rem;
    padding: 1.5rem;
    text-align: left;
    white-space: normal;
    
    /* ⬇️ CRITICAL: Remove transform properties */
    transition: box-shadow 0.2s ease, background-color 0.2s ease; 
    border: 2px solid var(--bs-primary);
    background-color: #fff;
    color: var(--bs-primary);
    
    /* Initial subtle shadow */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); 
}

/* --- Button/Card Styles (Final Stable Hover) --- */

/* Department & Branch Button Base Style */
.dept-button {
    min-height: 120px;
    font-size: 1.1rem;
    padding: 1.5rem;
    text-align: left;
    white-space: normal;
    color: var(--bs-primary); /* Base text color is primary blue */
    
    /* Ensure only transition and initial shadow are set */
    transition: box-shadow 0.2s ease, background-color 0.2s ease; 
    border: 2px solid var(--bs-primary);
    background-color: #fff;
    color: var(--bs-primary);
    
    /* Initial subtle shadow (always present) */
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1); 
}

/* 🎯 CRITICAL: Hover effect applied via parent container for stability */
.hover-container:hover .dept-button {
    /* Apply a stronger shadow ONLY, no vertical movement */
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.25) !important; /* Strong, clean lift */
    background-color: #f8f9fa; 
    
    /* ✅ FIX: Explicitly set the text color to a dark color on hover */
    color: #212529 !important; /* Forces the text to be black/dark gray for readability */
    /* The position is stable, fixing the flicker/disappear issue */
}

/* In public/css/styles.css (Add to bottom) */

/* CRITICAL: Force the View Person Incharge button (inside detail view) to be a centered block */
#viewPersonBtn {
    display: block;
    margin: 0 auto;
}

/* Work buttons (Less aggressive hover) */
.work-button {
    min-height: 80px;
    background-color: #e9ecef;
    border: 1px solid #ced4da;
    color: #212529;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    transition: box-shadow 0.2s ease, background-color 0.1s;
}

.work-button:hover {
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15); 
    background-color: #dee2e6;
}

/* In public/css/styles.css */

/* Center a block element with a limited max-width */
.centered-content-block {
    max-width: 450px; /* Adjust this width if needed */
    margin-left: auto;
    margin-right: auto;
    text-align: left; /* Keep text readable within the block */
}

/* In public/css/styles.css */

/* Add vertical margin to congested list items */


/* --- Utility/Animation --- */

/* Simple pulse effect for the Explore button */
.pulse {
    animation: pulse 1.5s infinite;
}

@keyframes pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(25, 135, 84, 0.4);
    }
    70% {
        box-shadow: 0 0 0 15px rgba(25, 135, 84, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(25, 135, 84, 0);
    }
}

/* --- RAJASTHANI THEME COLORS --- */
:root {
    --rajasthani-saffron: #FF9933; /* For primary highlights, like buttons */
    --rajasthani-royal-blue: #004D99; /* For dark text, background accents */
    --rajasthani-desert-gold: #FFD700; /* For secondary accents/borders */
    --rajasthani-light-bg: #FFF8E1; /* Light cream background for contrast */
}

/* --- GENERAL PAGE STYLING --- */
body {
    background-color: var(--rajasthani-light-bg);
}

/* --- FORMS PAGE STYLING --- */

/* Title and Search Container */
.rajasthani-container {
    background-color: white;
    border: 1px solid var(--rajasthani-desert-gold);
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}


/* Download Button (Saffron Accent) */
.btn-rajasthani-download {
    background-color: var(--rajasthani-saffron);
    color: white;
    border: none;
    font-weight: bold;
    transition: background-color 0.3s;
}
.btn-rajasthani-download:hover {
    background-color: #E68A2E; /* Darker saffron */
    color: white;
}

/* Page layout */
.notices-page {
  background-color: #f8fafc; /* very light, clean background */
  border-radius: 12px;
  padding: 2rem 1.25rem;
}

/* Header */
.page-title {
  font-weight: 700;
  letter-spacing: 0.2px;
  color: #0d3b66; /* deep, trustworthy blue */
  margin-bottom: 0.25rem;
}

.page-subtitle {
  color: #6c757d; /* muted gray */
  font-size: 0.95rem;
}

/* Cards */
.notice-card {
  border: 1px solid #e9ecef;
  border-radius: 12px;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
  background: #ffffff;
}

.notice-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(13, 59, 102, 0.08);
  border-color: #dbe7f3;
}

.notice-title {
  color: #12355b;
  font-weight: 600;
}

.notice-dept {
  font-size: 0.75rem;
  padding: 6px 10px;
  background: #e6f4ff;
  color: #0b5ed7; /* bootstrap primary tone */
  border: 1px solid #cfe5ff;
}

.notice-date {
  font-size: 0.9rem;
}

/* Content */
.notice-content {
  line-height: 1.6;
  color: #334155; /* slate-ish readable text */
  white-space: pre-wrap; /* preserve intentional line breaks */
  word-wrap: break-word; /* avoid overflow on long words/URLs */
  margin-bottom: 0.75rem;
}

/* Attachment button */
.notice-attachment {
  border-radius: 999px; /* pill */
  padding: 0.35rem 0.8rem;
}

/* Responsive tweaks */
@media (max-width: 576px) {
  .notices-page {
    padding: 1.25rem 0.75rem;
  }
  .notice-header {
    gap: 0.5rem;
  }
  .notice-title {
    font-size: 1rem;
  }
}


#formsTable td span.text-muted {
  font-size: 0.9rem;
  font-style: italic;
}










