/*
Theme Name: Gujarat Haj House
Theme URI: https://gujarathajihouse.gov.in
Author: Gujarat State Haj Committee
Author URI: https://gujarathajihouse.gov.in
Description: Official WordPress theme for Gujarat Haj House - A professional government portal theme for the Gujarat State Haj Committee. Features include pilgrimage services, announcements, cover inquiry, quick services, and multimedia sections.
Version: 16.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: gujarat-haj
Tags: government, islamic, green, gold, pilgrimage, services, portal
*/

/* ── Google Fonts — Loaded non-blocking via header.php preload ────── */
/* Removed @import to prevent render-blocking. Fonts are loaded in header.php
   using <link rel="preload"> for performance and incognito-mode safety.
   System font stack serves as graceful fallback when fonts are unavailable. */


/* ============================================================
   CSS VARIABLES & RESET
   ============================================================ */
/* Google Fonts are loaded non-blocking from header.php.
   System font fallbacks ensure styles work even if fonts are blocked. */
:root {
  --primary:       #1b4332;
  --primary-dark:  #0f2d1e;
  --primary-mid:   #2d6a4f;
  --primary-light: #40916c;
  --accent:        #d4a017;
  --accent-light:  #f4c431;
  --accent-dark:   #b8860b;
  --white:         #ffffff;
  --off-white:     #f8f9f4;
  --gray-100:      #f1f5f0;
  --gray-200:      #e2e8df;
  --gray-400:      #9aab95;
  --gray-600:      #5a6b57;
  --gray-800:      #2c3e2a;
  --text:          #1a2e18;
  --text-muted:    #5a6b57;
  --shadow-sm:     0 2px 8px rgba(27,67,50,.10);
  --shadow-md:     0 4px 20px rgba(27,67,50,.15);
  --shadow-lg:     0 8px 40px rgba(27,67,50,.20);
  --radius-sm:     6px;
  --radius-md:     12px;
  --radius-lg:     20px;
  --transition:    all .25s ease;
}

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

html { scroll-behavior: smooth; font-size: var(--site-font-size, 17px); }

body {
  font-family: 'Hind', 'Segoe UI', 'Helvetica Neue', Arial, 'Noto Sans', sans-serif;
  font-size: var(--site-font-size, 17px);
  color: var(--text);
  background: var(--white);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--primary); text-decoration: none; transition: var(--transition); }
a:hover { color: var(--accent); }
ul { list-style: none; }

.container {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px;
}

.section-title {
  font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--primary-dark);
  border-left: 4px solid var(--accent);
  padding-left: 14px;
}

.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  border-radius: var(--radius-sm);
  font-size: .9rem;
  font-weight: 600;
  cursor: pointer;
  border: 2px solid transparent;
  transition: var(--transition);
  text-decoration: none;
}

.btn-primary {
  background: var(--accent);
  color: var(--primary-dark);
  border-color: var(--accent);
}
.btn-primary:hover {
  background: var(--accent-dark);
  border-color: var(--accent-dark);
  color: var(--white);
}

.btn-outline {
  background: transparent;
  color: var(--white);
  border-color: rgba(255,255,255,.5);
}
.btn-outline:hover {
  background: rgba(255,255,255,.1);
  border-color: var(--white);
  color: var(--white);
}

.btn-green {
  background: var(--primary);
  color: var(--white);
  border-color: var(--primary);
}
.btn-green:hover {
  background: var(--primary-dark);
  border-color: var(--primary-dark);
}

/* ============================================================
   TOP BAR
   ============================================================ */
.topbar {
  background: var(--primary-dark);
  color: rgba(255,255,255,.8);
  font-size: .78rem;
  padding: 6px 0;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.topbar .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}
.topbar-left {
  display: flex;
  gap: 20px;
  align-items: center;
}
.topbar-right {
  display: flex;
  gap: 16px;
  align-items: center;
}
.topbar a { color: rgba(255,255,255,.8); }
.topbar a:hover { color: var(--accent-light); }
.topbar span { display: flex; align-items: center; gap: 5px; }

/* ── FONT SIZE CONTROLS ── */
.font-size-controls {
  display: flex;
  align-items: center;
  gap: 2px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 5px;
  padding: 2px 4px;
}
.fs-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 26px;
  height: 22px;
  padding: 0 4px;
  background: #40916c;          /* --primary-light green */
  color: #fff;
  font-family: inherit;
  font-size: .75rem;
  font-weight: 700;
  line-height: 1;
  border: 1px solid #2d6a4f;   /* --primary-mid */
  border-radius: 3px;
  cursor: pointer;
  transition: background .18s, transform .12s;
  letter-spacing: .02em;
  user-select: none;
  -webkit-user-select: none;
}
.fs-btn sup {
  font-size: .6em;
  line-height: 1;
  vertical-align: super;
}
.fs-btn:hover {
  background: #2d6a4f;          /* --primary-mid */
  border-color: #1b4332;
  transform: translateY(-1px);
}
.fs-btn:active { transform: scale(.94); }
.fs-btn.fs-btn-reset {
  background: #52b788;          /* lighter green for default/reset */
  border-color: #40916c;
  color: #fff;
}
.fs-btn.fs-btn-reset:hover {
  background: #40916c;
  border-color: #2d6a4f;
}
.fs-btn:disabled,
.fs-btn[aria-disabled="true"] {
  opacity: .38;
  cursor: not-allowed;
  transform: none;
}
@media(max-width:480px){
  .font-size-controls { padding: 2px 3px; gap: 1px; }
  .fs-btn { min-width: 22px; height: 20px; font-size: .7rem; }
}

/* ============================================================
   HEADER
   ============================================================ */
.site-header {
  background: var(--white);
  box-shadow: var(--shadow-sm);
  position: sticky;
  top: 0;
  z-index: 1000;
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  gap: 20px;
}
.site-branding {
  display: flex;
  align-items: center;
  gap: 14px;
}
.site-branding img {
  width: 56px;
  height: 56px;
  object-fit: contain;
}
.site-name {
  font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--primary-dark);
  line-height: 1.2;
}
.site-tagline {
  font-size: .72rem;
  color: var(--text-muted);
}
.header-right {
  display: flex;
  align-items: center;
  gap: 12px;
}
.lang-switcher {
  display: flex;
  gap: 4px;
}
.lang-switcher a {
  padding: 4px 8px;
  font-size: .75rem;
  font-weight: 600;
  border-radius: 4px;
  border: 1px solid var(--gray-200);
  color: var(--text-muted);
}
.lang-switcher a.active,
.lang-switcher a:hover {
  background: var(--primary);
  color: var(--white);
  border-color: var(--primary);
}
.header-search {
  display: flex;
  align-items: center;
  background: var(--gray-100);
  border-radius: 20px;
  padding: 6px 14px;
  gap: 8px;
  border: 1px solid var(--gray-200);
}
.header-search input {
  border: none;
  background: transparent;
  font-size: .84rem;
  color: var(--text);
  outline: none;
  width: 150px;
}
.header-search button {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text-muted);
}

/* ============================================================
   NAVIGATION  — colours & spacing driven by plugin CSS variables
   ============================================================ */
.main-nav {
  background: var(--nav-bg, var(--primary));
}
.nav-inner {
  display: flex;
  align-items: center;
}
.nav-menu {
  display: flex;
  align-items: center;
}
.nav-menu > li > a {
  display: block;
  color: var(--nav-text, rgba(255,255,255,.9));
  font-size: var(--nav-font-size, .88rem);
  font-weight: var(--nav-font-weight, 500);
  padding: var(--nav-pad-v, 14px) var(--nav-pad-h, 18px);
  transition: var(--transition);
  position: relative;
}
.nav-menu > li > a:hover,
.nav-menu > li.current-menu-item > a {
  color: var(--nav-hover-text, var(--accent-light));
  background: var(--nav-hover-bg, rgba(255,255,255,.07));
}
.nav-menu > li.current-menu-item > a::after {
  content: '';
  position: absolute;
  bottom: 0; left: 50%;
  transform: translateX(-50%);
  width: 30px; height: 3px;
  background: var(--nav-active-indicator, var(--accent));
  border-radius: 2px;
}

/* Dropdown */
.nav-menu .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  background: var(--nav-dropdown-bg, var(--white));
  min-width: 200px;
  box-shadow: var(--shadow-md);
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  border-top: 3px solid var(--nav-dropdown-border, var(--accent));
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: var(--transition);
  z-index: 999;
}
.nav-menu li:hover .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.nav-menu .sub-menu li a {
  display: block;
  padding: 10px 18px;
  font-size: .84rem;
  color: var(--nav-dropdown-text, var(--text));
  border-bottom: 1px solid var(--gray-100);
}
.nav-menu .sub-menu li a:hover {
  background: var(--gray-100);
  color: var(--primary);
  padding-left: 24px;
}
.nav-menu li { position: relative; }

/* Ticker */
.news-ticker {
  background: var(--primary-dark);
  border-top: 1px solid rgba(255,255,255,.08);
  padding: 8px 0;
  overflow: hidden;
}
.ticker-inner {
  display: flex;
  align-items: center;
  gap: 0;
}
.ticker-label {
  background: var(--accent);
  color: var(--primary-dark);
  font-size: .72rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 3px;
  white-space: nowrap;
  flex-shrink: 0;
  margin-right: 16px;
  text-transform: uppercase;
  letter-spacing: .5px;
}
.ticker-scroll {
  flex: 1;
  overflow: hidden;
  position: relative;
}
.ticker-track {
  display: flex;
  gap: 60px;
  animation: ticker-move 30s linear infinite;
  white-space: nowrap;
}
.ticker-item {
  color: rgba(255,255,255,.85);
  font-size: .8rem;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.ticker-item::before {
  content: '🌙';
  font-size: .7rem;
}
@keyframes ticker-move {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ============================================================
   HERO SECTION
   ============================================================ */
.hero-section {
  background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 50%, var(--primary-mid) 100%);
  position: relative;
  overflow: hidden;
  padding: 60px 0 70px;
}
.hero-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 20% 50%, rgba(212,160,23,.08) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 20%, rgba(255,255,255,.04) 0%, transparent 50%);
}
.hero-section::after {
  content: '';
  position: absolute;
  bottom: -1px; left: 0; right: 0;
  height: 60px;
  background: var(--white);
  clip-path: ellipse(55% 100% at 50% 100%);
}

/* Islamic pattern overlay */
.hero-pattern {
  position: absolute;
  inset: 0;
  opacity: .04;
  background-image:
    repeating-linear-gradient(45deg, var(--accent) 0, var(--accent) 1px, transparent 0, transparent 50%),
    repeating-linear-gradient(-45deg, var(--accent) 0, var(--accent) 1px, transparent 0, transparent 50%);
  background-size: 20px 20px;
}

.hero-grid {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 40px;
  align-items: center;
  position: relative;
  z-index: 1;
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 20px;
  padding: 6px 14px;
  color: var(--accent-light);
  font-size: .78rem;
  font-weight: 600;
  margin-bottom: 20px;
}
.hero-title {
  font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
  font-size: 3rem;
  font-weight: 800;
  color: var(--white);
  line-height: 1.15;
  margin-bottom: 16px;
}
.hero-title span { color: var(--accent-light); }
.hero-desc {
  color: rgba(255,255,255,.75);
  font-size: 1rem;
  line-height: 1.7;
  margin-bottom: 30px;
  max-width: 480px;
}
.hero-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 40px;
}
.hero-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(255,255,255,.12);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.stat-item {
  background: rgba(255,255,255,.06);
  padding: 16px 12px;
  text-align: center;
}
.stat-number {
  font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--accent-light);
  display: block;
}
.stat-label {
  font-size: .72rem;
  color: rgba(255,255,255,.6);
  text-transform: uppercase;
  letter-spacing: .5px;
}

/* Inquiry Card */
.inquiry-card {
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: 30px;
  box-shadow: var(--shadow-lg);
}
.inquiry-card h3 {
  font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
  font-size: 1.15rem;
  color: var(--primary-dark);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.inquiry-card h3::before {
  content: '🔍';
}
.form-group {
  margin-bottom: 16px;
}
.form-group label {
  display: block;
  font-size: .8rem;
  font-weight: 600;
  color: var(--text-muted);
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: .3px;
}
.form-group input {
  width: 100%;
  padding: 11px 14px;
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-sm);
  font-size: .88rem;
  color: var(--text);
  background: var(--gray-100);
  transition: var(--transition);
  outline: none;
}
.form-group input:focus {
  border-color: var(--primary);
  background: var(--white);
  box-shadow: 0 0 0 3px rgba(27,67,50,.1);
}
.form-group input::placeholder { color: var(--gray-400); }
.btn-search {
  width: 100%;
  background: var(--primary);
  color: var(--white);
  border: none;
  padding: 13px;
  border-radius: var(--radius-sm);
  font-size: .92rem;
  font-weight: 700;
  cursor: pointer;
  transition: var(--transition);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.btn-search:hover { background: var(--primary-dark); }
.quick-links {
  margin-top: 20px;
  border-top: 1px solid var(--gray-200);
  padding-top: 16px;
}
.quick-links h4 {
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--text-muted);
  margin-bottom: 10px;
}
.quick-links ul li a {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .84rem;
  color: var(--primary);
  padding: 5px 0;
  font-weight: 500;
}
.quick-links ul li a::before {
  content: '›';
  color: var(--accent);
  font-weight: 700;
  font-size: 1rem;
}
.quick-links ul li a:hover { color: var(--accent-dark); }

/* ============================================================
   QUICK SERVICES
   ============================================================ */
.quick-services {
  padding: 70px 0;
  background: var(--white);
}
.section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 36px;
}
.view-all {
  font-size: .84rem;
  font-weight: 600;
  color: var(--primary);
  display: flex;
  align-items: center;
  gap: 5px;
}
.view-all:hover { color: var(--accent-dark); }
.services-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.service-card {
  background: var(--white);
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-md);
  padding: 24px 20px;
  transition: var(--transition);
  position: relative;
  overflow: hidden;
}
.service-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--primary), var(--accent));
  transform: scaleX(0);
  transition: var(--transition);
}
.service-card:hover {
  border-color: var(--primary-light);
  box-shadow: var(--shadow-md);
  transform: translateY(-4px);
}
.service-card:hover::before { transform: scaleX(1); }
.service-icon {
  width: 52px;
  height: 52px;
  background: var(--gray-100);
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  margin-bottom: 16px;
  transition: var(--transition);
}
.service-card:hover .service-icon {
  background: var(--primary);
  transform: scale(1.05);
}
.service-card h3 {
  font-size: .95rem;
  font-weight: 700;
  color: var(--primary-dark);
  margin-bottom: 8px;
}
.service-card p {
  font-size: .8rem;
  color: var(--text-muted);
  line-height: 1.5;
  margin-bottom: 14px;
}
.service-link {
  font-size: .8rem;
  font-weight: 600;
  color: var(--primary);
  display: flex;
  align-items: center;
  gap: 4px;
}
.service-link:hover { color: var(--accent-dark); gap: 8px; }

/* ============================================================
   NEWS SECTION
   ============================================================ */
/* Latest News section removed in v8 */

/* ============================================================
   DOWNLOADS
   ============================================================ */
.downloads-section { padding: 70px 0; background: var(--gray-100); }
.downloads-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
  margin-top: 28px;
}
.download-card {
  background: var(--white);
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-md);
  padding: 20px 14px;
  text-align: center;
  transition: var(--transition);
}
.download-card:hover {
  border-color: var(--primary-light);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}
.download-icon { font-size: 1.8rem; margin-bottom: 10px; }
.download-card h4 {
  font-size: .8rem;
  font-weight: 700;
  color: var(--primary-dark);
  margin-bottom: 4px;
}
.download-card span {
  font-size: .7rem;
  color: var(--text-muted);
}
.download-card a {
  display: block;
  margin-top: 10px;
  font-size: .72rem;
  font-weight: 600;
  color: var(--primary);
}
.download-card a:hover { color: var(--accent-dark); }

/* ============================================================
   VIDEO GALLERY
   ============================================================ */
.videos-section { padding: 70px 0; background: var(--white); }
.videos-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-top: 28px;
}
.video-card {
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: var(--transition);
}
.video-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.video-thumb {
  position: relative;
  aspect-ratio: 16/9;
  background: var(--primary);
  overflow: hidden;
}
.video-thumb img { width: 100%; height: 100%; object-fit: cover; }
.video-thumb .play-btn {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.35);
  transition: var(--transition);
}
.video-card:hover .play-btn { background: rgba(0,0,0,.5); }
.play-circle {
  width: 44px; height: 44px;
  background: rgba(255,255,255,.9);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  transition: var(--transition);
}
.video-card:hover .play-circle {
  background: var(--accent);
  transform: scale(1.1);
}
.video-info {
  padding: 14px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-top: none;
}
.video-info h4 { font-size: .85rem; font-weight: 700; color: var(--primary-dark); margin-bottom: 4px; }
.video-info p  { font-size: .75rem; color: var(--text-muted); }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer {
  background: var(--primary-dark);
  color: rgba(255,255,255,.75);
  padding: 60px 0 0;
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: 40px;
  padding-bottom: 40px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.footer-brand .site-name { color: var(--white); font-size: 1.1rem; margin-top: 12px; }
.footer-brand .tagline   { color: var(--accent-light); font-size: .8rem; margin-bottom: 16px; }
.footer-desc { font-size: .82rem; line-height: 1.7; margin-bottom: 20px; }
.footer-social { display: flex; gap: 10px; }
.footer-social a {
  width: 34px; height: 34px;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  display: flex; align-items: center; justify-content: center;
  font-size: .85rem;
  color: rgba(255,255,255,.7);
  transition: var(--transition);
}
.footer-social a:hover { background: var(--accent); color: var(--primary-dark); }
.footer-col h4 {
  font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
  font-size: .95rem;
  font-weight: 700;
  color: var(--white);
  margin-bottom: 16px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.footer-col ul li { margin-bottom: 8px; }
.footer-col ul li a {
  font-size: .82rem;
  color: rgba(255,255,255,.6);
  display: flex; align-items: center; gap: 6px;
}
.footer-col ul li a::before { content: '›'; color: var(--accent); font-weight: 700; }
.footer-col ul li a:hover  { color: var(--accent-light); }
.footer-contact li {
  display: flex; gap: 10px;
  font-size: .82rem;
  color: rgba(255,255,255,.6);
  margin-bottom: 12px;
}
.footer-contact li span { color: var(--accent); flex-shrink: 0; margin-top: 1px; }
.footer-bottom {
  padding: 16px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.footer-bottom p, .footer-bottom a {
  font-size: .78rem;
  color: rgba(255,255,255,.4);
}
.visitor-count {
  font-size: .78rem;
  color: rgba(255,255,255,.4);
  display: flex; align-items: center; gap: 5px;
}
.visitor-count span { color: var(--accent-light); font-weight: 600; }

/* ============================================================
   MOBILE MENU
   ============================================================ */
.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
}
.hamburger span {
  display: block;
  width: 24px; height: 2px;
  background: var(--white);
  border-radius: 2px;
  transition: var(--transition);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
  .services-grid   { grid-template-columns: repeat(2, 1fr); }
  .downloads-grid  { grid-template-columns: repeat(3, 1fr); }
  .videos-grid     { grid-template-columns: repeat(2, 1fr); }
  .hero-grid       { grid-template-columns: 1fr; }
  .inquiry-card    { max-width: 420px; }
  .news-grid       { grid-template-columns: 1fr; }
  .footer-grid     { grid-template-columns: 1fr 1fr; }
  .hero-title      { font-size: 2.2rem; }
}

@media (max-width: 768px) {
  .topbar-left  { display: none; }
  .hamburger    { display: flex; }
  .nav-inner    { justify-content: space-between; padding: 10px 20px; }
  /* Note: nav-menu visibility is now controlled by .nav-menu-wrapper.nav-menu-open
     in the ── MOBILE NAV FIXES ── block below. The .nav-menu.is-open rule is
     removed to prevent CSS conflicts with the JS-driven open/close system. */
  .nav-menu .sub-menu {
    position: static;
    box-shadow: none;
    border-top: none;
    border-left: 2px solid var(--accent);
    margin-left: 20px;
    background: rgba(255,255,255,.04);
    opacity: 1;
    visibility: visible;
    transform: none;
    display: none;
  }
  .nav-menu li.open .sub-menu { display: block; }
  .services-grid   { grid-template-columns: 1fr 1fr; }
  .downloads-grid  { grid-template-columns: repeat(2, 1fr); }
  .footer-grid     { grid-template-columns: 1fr; }
  .hero-stats      { grid-template-columns: repeat(2, 1fr); }
  .hero-title      { font-size: 1.8rem; }
}

@media (max-width: 480px) {
  .services-grid   { grid-template-columns: 1fr; }
  .downloads-grid  { grid-template-columns: repeat(2, 1fr); }
  .videos-grid     { grid-template-columns: 1fr; }
  .hero-actions    { flex-direction: column; }
  .header-search   { display: none; }
}

/* ============================================================
   UTILITY / WP CORE
   ============================================================ */
.wp-block-image img { border-radius: var(--radius-sm); }
.aligncenter { text-align: center; margin: 20px auto; }
.screen-reader-text {
  border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
  height: 1px; margin: -1px; overflow: hidden; padding: 0;
  position: absolute; width: 1px; word-wrap: normal !important;
}

/* ============================================================
   v4.0 ADDITIONS — All new & modified feature styles
   ============================================================ */

/* ---- TOPBAR SOCIAL ICONS ---- */
.topbar-social {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: 10px;
}
.topbar-social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  color: rgba(255,255,255,.85);
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
  transition: all .2s ease;
  text-decoration: none;
}
.topbar-social-link:hover { transform: translateY(-2px); color: #fff; }
.topbar-social-facebook:hover { background: #1877f2; border-color: #1877f2; }
.topbar-social-twitter:hover  { background: #000; border-color: #333; }
.topbar-social-youtube:hover  { background: #ff0000; border-color: #ff0000; }
.topbar-social-instagram:hover{ background: linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); border-color: transparent; }
@media(max-width:600px){.topbar-hide-sm{display:none;}}

/* ---- ENHANCED SITE BRANDING / LOGO ---- */
.site-logo-wrapper { flex-shrink: 0; }
.site-logo-wrapper img { height: 72px !important; width: auto !important; max-width: 260px !important; object-fit: contain; }
.site-logo-fallback {
  width: 64px; height: 64px; background: var(--primary);
  border-radius: 50%; display: flex; align-items: center;
  justify-content: center; font-size: 1.8rem;
  color: var(--accent); flex-shrink: 0;
}
.site-title-group { display: flex; flex-direction: column; justify-content: center; }
.site-name-stylized {
  display: flex; align-items: baseline; gap: 6px;
  font-family: 'Cinzel', 'Playfair Display', Georgia, serif;
  font-size: clamp(1.3rem, 3vw, 2rem);
  font-weight: 700;
  letter-spacing: -.5px;
  line-height: 1.1;
}
.site-name-gujarat { color: var(--primary-dark); }
.site-name-haj     { color: var(--primary-mid); }
.site-name-house   { color: var(--accent-dark); }
.site-tagline {
  font-size: .72rem;
  color: var(--text-muted);
  letter-spacing: .5px;
  text-transform: uppercase;
  margin-top: 4px;
}
@media(max-width:480px){
  .site-name-stylized { font-size: 1.2rem; }
  .site-tagline { display: none; }
}

/* ---- LANGUAGE SWITCHER ---- */
.lang-switcher {
  display: flex;
  align-items: center;
  gap: 2px;
  background: var(--gray-100);
  border-radius: var(--radius-sm);
  padding: 3px 4px;
}
.lang-switcher a {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: .72rem;
  font-weight: 600;
  color: var(--text-muted);
  text-decoration: none;
  letter-spacing: .5px;
  transition: all .15s;
}
.lang-switcher a:hover,
.lang-switcher a.active {
  background: var(--primary);
  color: var(--white);
}

/* ---- STICKY NAV ---- */
.nav-sticky-sentinel { height: 0; transition: height .25s; }
.nav-sticky-sentinel.nav-sentinel-active { height: 52px; }

.main-nav {
  position: relative;
  z-index: 999;
  transition: box-shadow .3s;
}
.main-nav.nav-fixed {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 9999;
  /* Shadow controlled by plugin setting — default shown; plugin may override */
  box-shadow: 0 2px 20px rgba(0,0,0,.25);
  animation: slideDown .3s ease;
}
@keyframes slideDown {
  from { transform: translateY(-100%); opacity: 0; }
  to   { transform: translateY(0);     opacity: 1; }
}

/* ---- MOBILE OVERLAY ---- */
.ghh-nav-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  z-index: 9998;
  cursor: pointer;
  transition: opacity .3s;
  opacity: 0;
}
.ghh-nav-overlay.is-visible {
  display: block;
  opacity: 1;
}

/* ---- MOBILE NAV FIXES ---- */
.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  padding: 8px;
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 6px;
  transition: background .2s;
}
.hamburger:hover { background: rgba(255,255,255,.1); }
.ham-line {
  display: block;
  width: 24px; height: 2.5px;
  background: var(--nav-hamburger-color, var(--white));
  border-radius: 2px;
  transition: transform .25s, opacity .25s;
}
.hamburger.is-active .ham-line:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.hamburger.is-active .ham-line:nth-child(2) { opacity: 0; transform: scaleX(0); }
.hamburger.is-active .ham-line:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

/* focus-within: keyboard accessibility for dropdowns */
.nav-menu li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* ============================================================
   MEGA MENU — desktop
   Uses display:none / display:block as the canonical show/hide
   mechanism so JS slideToggle works correctly on mobile too.
   The opacity/transform transition is layered on top for desktop.
   ============================================================ */
.nav-menu > li.ghh-mega-parent {
  /* position:static so the mega panel escapes the li and aligns to the nav bar */
  position: static;
}

.ghh-mega-panel {
  display: none;            /* hidden by default on all screen sizes */
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  width: 100%;
  background: var(--nav-mega-bg, var(--nav-dropdown-bg, #fff));
  box-shadow: 0 8px 32px rgba(0,0,0,.15);
  border-top: 3px solid var(--nav-dropdown-border, var(--accent));
  border-radius: 0 0 var(--nav-dd-radius, 4px) var(--nav-dd-radius, 4px);
  padding: 24px 32px;
  z-index: 1000;
  /* Smooth fade-in on desktop via animation (works with display:none toggle) */
  animation: ghh-mega-fadein .2s ease forwards;
}
@keyframes ghh-mega-fadein {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0);   }
}

/* Desktop hover/focus → show panel */
.nav-menu > li.ghh-mega-parent:hover > .ghh-mega-panel,
.nav-menu > li.ghh-mega-parent:focus-within > .ghh-mega-panel {
  display: block;
}

/* Constrain content inside a container-width wrapper */
.ghh-mega-panel > .ghh-mega-grid {
  max-width: 1100px;
  margin: 0 auto;
}

.ghh-mega-grid {
  display: grid;
  grid-template-columns: repeat(var(--nav-mega-cols, 3), 1fr);
  gap: 28px;
}

.ghh-mega-col-title {
  display: block;
  font-size: .73rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--nav-mega-heading, var(--accent));
  margin-bottom: 10px;
  padding-bottom: 7px;
  border-bottom: 2px solid var(--nav-dropdown-border, var(--accent));
}

.ghh-mega-col > ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ghh-mega-col > ul > li > a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 0;
  font-size: .84rem;
  color: var(--nav-dropdown-text, var(--text));
  border-bottom: 1px solid rgba(0,0,0,.05);
  transition: color .18s ease, padding-left .18s ease;
  text-decoration: none;
}
.ghh-mega-col > ul > li > a:hover {
  color: var(--primary);
  padding-left: 6px;
}

/* Caret indicator on mega-parent top-level links */
.nav-menu > li.ghh-mega-parent > a::after {
  content: " ▾";
  font-size: .7em;
  opacity: .75;
  display: inline-block;
}

.nav-menu-wrapper { display: flex; align-items: center; }

/*
 * Mobile nav — the breakpoint media query in style.css uses the static 768px
 * default. The plugin injects a precise @media block (ghh_comp_dynamic_css())
 * which overrides this with the admin-configured pixel value.
 * CSS custom properties cannot be used in @media queries.
 */
@media (max-width: 768px) {
  .hamburger { display: flex; }

  .nav-menu-wrapper {
    display: none;
    position: absolute;
    top: 100%; left: 0; right: 0;
    background: var(--nav-mobile-bg, var(--nav-bg, var(--primary-dark)));
    border-top: 2px solid var(--nav-active-indicator, var(--accent));
    flex-direction: column;
    align-items: stretch;
    padding: 0;
    z-index: 9999;
  }
  .nav-menu-wrapper.nav-menu-open {
    display: flex;
    padding: 8px 0;
  }
  .nav-menu-wrapper .nav-menu,
  .nav-menu-wrapper.nav-menu-open .nav-menu {
    display: flex !important;
    flex-direction: column;
    width: 100%;
  }

  /* Top-level items */
  .nav-menu > li { border-bottom: 1px solid rgba(255,255,255,.1); }
  .nav-menu > li > a {
    padding: 14px 20px;
    display: block;
    font-size: .95rem;
    color: var(--nav-mobile-text, var(--nav-text, rgba(255,255,255,.9))) !important;
  }

  /* Standard dropdowns */
  .nav-menu li ul.sub-menu {
    display: none;
    background: rgba(0,0,0,.18);
    padding: 4px 0;
  }
  .nav-menu li.sub-open > ul.sub-menu { display: block; }
  .nav-menu li ul.sub-menu li a { padding-left: 36px; }

  /* ── Mega panel on mobile ──
     Re-positioned to static flow, single column, toggled by JS slideToggle.
     animation is removed so slideToggle controls display cleanly. */
  .nav-menu > li.ghh-mega-parent { position: relative !important; }
  .ghh-mega-panel {
    position: static !important;
    display: none;                  /* JS slideToggle controls this */
    width: 100% !important;
    box-shadow: none !important;
    border-top-width: 2px !important;
    padding: 10px 16px !important;
    animation: none !important;     /* disable desktop fade-in */
    background: rgba(0,0,0,.15) !important;
  }
  /* When mega-parent gets .sub-open, do NOT use display:block here —
     slideToggle already sets inline display:block. Only ensure it's
     not display:none from a hover rule at this breakpoint. */
  .nav-menu > li.ghh-mega-parent:hover > .ghh-mega-panel,
  .nav-menu > li.ghh-mega-parent:focus-within > .ghh-mega-panel {
    display: none;  /* cancel desktop hover rule on mobile */
  }
  .nav-menu > li.ghh-mega-parent.sub-open > .ghh-mega-panel {
    display: block !important;  /* keep open when JS adds .sub-open */
  }

  /* Single-column grid on mobile */
  .ghh-mega-grid {
    grid-template-columns: 1fr !important;
    gap: 4px !important;
  }
  .ghh-mega-panel > .ghh-mega-grid { max-width: 100%; }
  .ghh-mega-col { margin-bottom: 8px; }
  .ghh-mega-col-title {
    font-size: .7rem;
    margin-bottom: 6px;
    padding-bottom: 4px;
  }
  .ghh-mega-col > ul > li > a {
    padding: 10px 4px;
    font-size: .9rem;
    color: var(--nav-mobile-text, #fff) !important;
    border-bottom-color: rgba(255,255,255,.08);
  }

  .nav-inner { position: relative; flex-direction: row; flex-wrap: nowrap; }
}



/* ---- NEWS TICKER (Updated — below hero, clickable) ---- */
.news-ticker {
  background: var(--primary-dark);
  border-bottom: 2px solid var(--accent);
  padding: 10px 0;
  overflow: hidden;
}
.ticker-inner {
  display: flex;
  align-items: center;
  gap: 16px;
  overflow: hidden;
}
.ticker-label {
  background: var(--accent);
  color: var(--primary-dark);
  font-weight: 700;
  font-size: .72rem;
  padding: 3px 10px;
  border-radius: 3px;
  white-space: nowrap;
  letter-spacing: .5px;
  flex-shrink: 0;
}
.ticker-scroll { flex: 1; overflow: hidden; }
.ticker-track {
  display: flex;
  gap: 60px;
  white-space: nowrap;
  animation: tickerScroll 30s linear infinite;
}
.ticker-track:hover { animation-play-state: paused; }
.ticker-item {
  color: rgba(255,255,255,.9);
  font-size: .84rem;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.ticker-item::before { content: '◆'; color: var(--accent); font-size: .5rem; }
.ticker-item a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px dotted rgba(255,255,255,.4);
  transition: color .2s, border-color .2s;
}
.ticker-item a:hover { color: var(--accent); border-color: var(--accent); }
@keyframes tickerScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* News slider CSS removed in v8 */

.slider-dot.active { width: 20px; border-radius: 4px; background: var(--accent); }

@media(max-width:768px){
  .news-slide { flex: 0 0 calc(50% - 10px); }
}
@media(max-width:540px){
  .news-slide { flex: 0 0 100%; }
}

/* ---- MEDIA GALLERY — Photos + Videos ---- */
.media-gallery-section { padding: 60px 0; background: var(--off-white); }
.media-tabs { display: flex; gap: 8px; }
.media-tab {
  padding: 7px 18px;
  border-radius: 20px;
  border: 2px solid var(--gray-200);
  background: white;
  color: var(--text-muted);
  font-size: .82rem;
  font-weight: 600;
  cursor: pointer;
  transition: all .2s;
}
.media-tab.active, .media-tab:hover {
  background: var(--primary);
  border-color: var(--primary);
  color: white;
}
.media-tab-content { display: none; padding-top: 24px; }
.media-tab-content.active { display: block; }

/* Video/Media Grid */
.media-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 20px;
}
.media-card { background: white; border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-sm); transition: transform .2s, box-shadow .2s; cursor: pointer; }
.media-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.media-thumb { position: relative; aspect-ratio: 16/9; background: var(--primary-dark); overflow: hidden; }
.media-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.media-card:hover .media-thumb img { transform: scale(1.05); }
.media-thumb-placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, var(--primary-dark), var(--primary-mid)); }
.media-play-btn { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.play-circle {
  width: 52px; height: 52px;
  background: rgba(255,255,255,.9);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem;
  color: var(--primary-dark);
  transition: transform .2s, background .2s;
  padding-left: 4px;
}
.media-card:hover .play-circle { transform: scale(1.12); background: var(--accent); color: var(--primary-dark); }
.media-info { padding: 14px 16px; }
.media-info h4 { font-size: .88rem; font-weight: 600; color: var(--primary-dark); margin-bottom: 4px; }
.media-info p  { font-size: .76rem; color: var(--text-muted); }
.media-view-all { text-align: center; margin-top: 28px; }

/* Photo Grid */
.photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
}
.photo-card {
  position: relative;
  aspect-ratio: 4/3;
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
  background: var(--gray-100);
}
.photo-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.photo-card:hover img { transform: scale(1.08); }
.photo-overlay {
  position: absolute;
  inset: 0;
  background: rgba(27,67,50,0);
  display: flex; align-items: center; justify-content: center;
  transition: background .2s;
}
.photo-card:hover .photo-overlay { background: rgba(27,67,50,.5); }
.photo-zoom { color: white; font-size: 1.5rem; opacity: 0; transform: scale(.5); transition: all .2s; }
.photo-card:hover .photo-zoom { opacity: 1; transform: scale(1); }
.photo-album-badge {
  position: absolute; bottom: 6px; left: 6px;
  background: rgba(0,0,0,.6); color: white;
  font-size: .64rem; padding: 2px 8px;
  border-radius: 3px; font-weight: 600;
}
.photo-placeholder { display: flex; align-items: center; justify-content: center; height: 100%; font-size: 2.5rem; color: var(--gray-400); }

/* ---- VIDEO LIGHTBOX ---- */
.video-modal, .photo-modal {
  position: fixed; inset: 0; z-index: 99999;
  display: flex; align-items: center; justify-content: center;
}
.video-modal-overlay, .photo-modal-overlay {
  position: absolute; inset: 0;
  background: rgba(0,0,0,.88);
}
.video-modal-inner {
  position: relative; z-index: 1;
  width: min(900px, 92vw);
  aspect-ratio: 16/9;
  background: #000;
  border-radius: 10px;
  overflow: hidden;
}
.video-modal-embed { width: 100%; height: 100%; }
.video-modal-embed iframe { width: 100%; height: 100%; border: none; }
.video-modal-close, .photo-modal-close {
  position: absolute; top: -40px; right: 0;
  background: none; border: none;
  color: white; font-size: 1.8rem;
  cursor: pointer; z-index: 2;
  line-height: 1;
  transition: transform .15s;
}
.video-modal-close:hover, .photo-modal-close:hover { transform: scale(1.2); }

/* Photo lightbox */
.photo-modal-inner {
  position: relative; z-index: 1;
  display: flex; flex-direction: column; align-items: center;
}
.photo-modal-close { position: fixed; top: 16px; right: 20px; font-size: 2rem; }
.photo-modal-caption { color: rgba(255,255,255,.8); margin-top: 12px; font-size: .9rem; text-align: center; }
.photo-nav {
  position: fixed;
  top: 50%; transform: translateY(-50%);
  background: rgba(255,255,255,.15);
  border: none; border-radius: 50%;
  color: white; font-size: 1.5rem;
  width: 46px; height: 46px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s;
}
.photo-nav:hover { background: rgba(255,255,255,.3); }
.photo-nav-prev { left: 16px; }
.photo-nav-next { right: 16px; }
body.modal-open { overflow: hidden; }





/* ====================================================================
   GUJARAT HAJ COMMITTEE — COVER INQUIRY v11
   Compact, justified, fully responsive & print-friendly card design.
   ==================================================================== */

/* ── Base font – reduced for justified fit on all devices ─────── */
.ghc-page {
  font-family: 'Poppins', 'Hind', 'Segoe UI', sans-serif;
  font-size: 13px;
  min-height: 100vh;
  background: linear-gradient(150deg, #e8f5f5 0%, #f5fafa 40%, #fff 100%);
  padding-bottom: 48px;
}

/* CSS custom properties */
.ghc-page {
  --gc-teal:        #006b6b;
  --gc-teal-d:      #004d4d;
  --gc-teal-mid:    #008080;
  --gc-teal-lt:     #b0dede;
  --gc-teal-pale:   #eef7f7;
  --gc-gold:        #c9a227;
  --gc-gold-lt:     #f0d980;
  --gc-green:       #1a5c36;
  --gc-green-bg:    #eaf5ef;
  --gc-blue:        #1255a8;
  --gc-blue-bg:     #e8f0fe;
  --gc-amber:       #c85000;
  --gc-amber-bg:    #fff3e8;
  --gc-red:         #c62828;
  --gc-gray-50:     #fafafa;
  --gc-gray-100:    #f2f2f2;
  --gc-gray-200:    #e4e4e4;
  --gc-gray-400:    #aaa;
  --gc-text:        #111827;
  --gc-text-mid:    #374151;
  --gc-text-muted:  #6b7280;
  --gc-border:      #d0d0d0;
  --gc-radius:      16px;
  --gc-radius-sm:   10px;
  --gc-radius-xs:   6px;
  --gc-shadow:      0 4px 24px rgba(0,107,107,.12);
  --gc-shadow-lg:   0 10px 48px rgba(0,107,107,.18);
  --gc-shadow-card: 0 4px 20px rgba(0,0,0,.09);
}

/* ── Hero ──────────────────────────────────────────────────────── */
.ghc-hero {
  background: linear-gradient(135deg, #002b2b 0%, #005555 55%, #007a7a 100%);
  padding: 52px 0 48px;
  color: #fff;
  position: relative;
  overflow: hidden;
  text-align: center;
}
.ghc-hero__pattern {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(60deg,
    rgba(255,255,255,.025) 0, rgba(255,255,255,.025) 1px,
    transparent 1px, transparent 30px);
  pointer-events: none;
}
.ghc-hero__crescent {
  position: absolute; right: 4%; top: 50%;
  transform: translateY(-50%);
  font-size: 10rem; opacity: .06; line-height: 1;
  pointer-events: none;
}
.ghc-hero__inner { position: relative; z-index: 1; }
.ghc-hero__pre   { font-size: .82rem; opacity: .6; letter-spacing: .8px; margin-bottom: 8px; font-weight: 500; }
.ghc-hero__title {
  font-family: 'Cinzel', 'Playfair Display', Georgia, serif;
  font-size: clamp(1.6rem, 4.5vw, 2.6rem);
  font-weight: 900; letter-spacing: 2px;
  margin: 0 0 8px;
  text-shadow: 0 2px 12px rgba(0,0,0,.3);
}
.ghc-hero__sub   { font-size: 1rem; opacity: .78; letter-spacing: .4px; margin-bottom: 5px; font-weight: 500; }
.ghc-hero__year  {
  display: inline-block;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.25);
  padding: 4px 18px; border-radius: 20px;
  font-size: .82rem; letter-spacing: 2px; opacity: .75;
  margin-top: 6px;
}

/* ── Page wrap ─────────────────────────────────────────────────── */
.ghc-wrap { padding: 32px 20px 0; max-width: 1320px; margin: 0 auto; }

/* ── Search card ───────────────────────────────────────────────── */
.ghc-search-card {
  background: #fff;
  border-radius: var(--gc-radius);
  box-shadow: var(--gc-shadow);
  border: 1px solid var(--gc-gray-200);
  padding: 24px 28px;
  margin-bottom: 30px;
  display: flex; align-items: flex-end; gap: 16px; flex-wrap: wrap;
}
.ghc-search-form {
  display: flex; align-items: flex-end; gap: 14px;
  flex: 1; flex-wrap: wrap;
}
.ghc-search-group  { display: flex; flex-direction: column; gap: 6px; }
.ghc-search-group--grow { flex: 1; min-width: 200px; }
.ghc-search-label  { font-size: .8rem; font-weight: 700; color: var(--gc-text-mid); letter-spacing: .4px; text-transform: uppercase; }
.ghc-select, .ghc-input {
  padding: 13px 16px;
  border: 2px solid var(--gc-gray-200);
  border-radius: var(--gc-radius-sm);
  font-family: 'Poppins', 'Hind', sans-serif;
  font-size: 1rem;
  color: var(--gc-text);
  background: #fafafa;
  outline: none;
  transition: border-color .2s, box-shadow .2s;
}
.ghc-select:focus, .ghc-input:focus {
  border-color: var(--gc-teal);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(0,107,107,.10);
}
.ghc-select { min-width: 185px; }
.ghc-input  { width: 100%; }
.ghc-btn-search {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 13px 32px;
  background: linear-gradient(135deg, #004d4d, #008080);
  color: #fff; border: none;
  border-radius: var(--gc-radius-sm);
  font-family: 'Poppins', sans-serif;
  font-size: 1rem; font-weight: 700;
  cursor: pointer; white-space: nowrap;
  box-shadow: 0 5px 18px rgba(0,107,107,.35);
  transition: transform .15s, box-shadow .2s;
  align-self: flex-end;
  letter-spacing: .3px;
}
.ghc-btn-search:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(0,107,107,.42); }
.ghc-back-link { font-size: .9rem; color: var(--gc-teal); font-weight: 600; text-decoration: none; opacity: .75; white-space: nowrap; align-self: center; transition: opacity .2s; }
.ghc-back-link:hover { opacity: 1; text-decoration: underline; }

/* ── State boxes ───────────────────────────────────────────────── */
.ghc-state {
  background: #fff; border-radius: var(--gc-radius);
  padding: 72px 40px; text-align: center;
  box-shadow: var(--gc-shadow);
  border: 1px solid var(--gc-gray-200);
}
.ghc-state__icon  { font-size: 4rem; display: block; margin-bottom: 20px; }
.ghc-state__title { font-family: 'Poppins', sans-serif; font-size: 1.5rem; font-weight: 700; color: var(--gc-teal); margin: 0 0 12px; }
.ghc-state__msg   { font-size: 1.05rem; color: var(--gc-text-muted); margin: 0 0 10px; }
.ghc-state__help  { font-size: .95rem; color: var(--gc-text-muted); margin: 0; }
.ghc-state--error .ghc-state__title,
.ghc-state--notfound .ghc-state__title { color: var(--gc-red); }
.ghc-code { background: var(--gc-gray-100); padding: 3px 10px; border-radius: 4px; font-family: 'Source Code Pro', monospace; font-size: .95em; }
.ghc-helpline-link { color: var(--gc-teal); font-weight: 700; font-size: 1.15rem; }

/* ====================================================================
   RESULT DOCUMENT
   ==================================================================== */
.ghc-doc {
  background: #fff;
  border-radius: var(--gc-radius);
  box-shadow: var(--gc-shadow-lg);
  overflow: hidden;
  border: 1px solid var(--gc-border);
  animation: ghcSlideUp .4s ease both;
}
@keyframes ghcSlideUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Doc header ────────────────────────────────────────────────── */
.ghc-doc-header {
  background: linear-gradient(135deg, #002b2b 0%, #005555 55%, #007a7a 100%);
  padding: 28px 32px 24px;
  text-align: center; color: #fff;
  position: relative;
}
.ghc-doc-header::after {
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, transparent 0%, var(--gc-gold) 30%, var(--gc-gold-lt) 50%, var(--gc-gold) 70%, transparent 100%);
}
.ghc-doc-header__org {
  font-family: 'Cinzel', 'Playfair Display', serif;
  font-size: clamp(1.1rem, 3vw, 1.8rem);
  font-weight: 900; letter-spacing: 2.5px; text-transform: uppercase;
  text-shadow: 0 2px 8px rgba(0,0,0,.2);
}
.ghc-doc-header__year {
  font-size: .88rem; opacity: .65; margin-top: 5px; letter-spacing: 2.5px;
  font-weight: 500;
}

/* ── Cover meta strip ──────────────────────────────────────────── */
.ghc-meta {
  display: flex; flex-wrap: wrap; gap: 0;
  border-bottom: 3px solid var(--gc-teal-lt);
  background: linear-gradient(90deg, #f0fafa, #fff);
}
.ghc-meta__item {
  display: flex; align-items: center; gap: 16px;
  padding: 16px 24px;
  border-right: 1px solid var(--gc-gray-200);
  flex: 1 1 220px; min-width: 0;
}
.ghc-meta__item:last-child { border-right: none; }
.ghc-meta__item--hl { background: rgba(0,107,107,.05); }
.ghc-meta__item--hl .ghc-meta__key,
.ghc-meta__item--hl .ghc-meta__val { color: var(--gc-teal); }
.ghc-meta__key {
  font-size: .82rem; font-weight: 700; color: var(--gc-text-mid);
  white-space: nowrap; flex-shrink: 0; text-transform: uppercase; letter-spacing: .4px;
}
.ghc-meta__val {
  font-family: 'Source Code Pro', monospace;
  font-size: 1rem; font-weight: 700; color: var(--gc-teal);
  word-break: break-all;
}

/* ====================================================================
   SECTION HEADERS
   ==================================================================== */
.ghc-sec-hd {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  padding: 16px 24px;
  font-family: 'Poppins', 'Playfair Display', serif;
  font-size: 1.05rem; font-weight: 800;
  letter-spacing: 1.8px; text-transform: uppercase;
  position: relative;
}
.ghc-sec-hd--info    { background: linear-gradient(90deg, #d5eef2, #e8f7f7); color: #003d3d; border-top: 3px solid #7fc8c8; border-bottom: 3px solid #7fc8c8; }
.ghc-sec-hd--flight  { background: linear-gradient(90deg, #dce8fc, #eaf1ff); color: #0b3676; border-top: 3px solid #7aaef0; border-bottom: 3px solid #7aaef0; }
.ghc-sec-hd--accom   { background: linear-gradient(90deg, #d4eddf, #e5f5eb); color: #133d23; border-top: 3px solid #7bbf97; border-bottom: 3px solid #7bbf97; }
.ghc-sec-hd--payment { background: linear-gradient(90deg, #fde8d8, #fff0e6); color: #7a2e00; border-top: 3px solid #f0a070; border-bottom: 3px solid #f0a070; }

/* ====================================================================
   PILGRIM CARD GRID
   Uses CSS Grid auto-fit: 1 col mobile, 2-3 tablet, up to 5 desktop.
   ==================================================================== */
.ghc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  gap: 12px;
  padding: 16px 14px;
  background: linear-gradient(135deg, #e0f2f2, #f0fafa);
  box-sizing: border-box;
}

/* Individual card */
.ghc-card {
  background: #fff;
  border-radius: var(--gc-radius-sm);
  border: 1.5px solid var(--gc-teal-lt);
  box-shadow: var(--gc-shadow-card);
  display: flex; flex-direction: column;
  overflow: hidden;
  transition: box-shadow .22s, transform .2s;
}
.ghc-card:hover {
  box-shadow: 0 8px 36px rgba(0,107,107,.18);
  transform: translateY(-2px);
}

/* ── Card header ─────────────────────────────────────────────── */
.ghc-card__hd {
  background: linear-gradient(135deg, #002b2b 0%, #006060 55%, #008888 100%);
  padding: 10px 12px;
  display: flex; align-items: center; gap: 10px;
  color: #fff; flex-shrink: 0;
  position: relative; overflow: hidden;
}
.ghc-card__hd::after {
  content: '';
  position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
  width: 40px; height: 40px;
  background-image: url('data:image/png;base64,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');
  background-size: contain; background-repeat: no-repeat; background-position: center;
  opacity: .35;
  pointer-events: none;
}
.ghc-card__hd--flight { background: linear-gradient(135deg, #0c2e6e, #1a4fa8, #2565c0); }
.ghc-card__hd--accom  { background: linear-gradient(135deg, #0e3320, #1a5c38, #23764a); }

/* ── Photo ────────────────────────────────────────────────────── */
.ghc-card__photo-wrap {
  width: 48px; height: 58px; flex-shrink: 0;
  border-radius: 6px;
  overflow: hidden;
  border: 2px solid rgba(255,255,255,.5);
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  background: rgba(255,255,255,.12);
}
.ghc-card__photo { width: 100%; height: 100%; object-fit: cover; display: block; }
.ghc-card__photo-ph {
  width: 48px; height: 58px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.6rem;
  background: rgba(255,255,255,.12);
  border-radius: 6px;
  border: 2px dashed rgba(255,255,255,.4);
}

/* ── Card name block ────────────────────────────────────────── */
.ghc-card__seq {
  font-size: .6rem; opacity: .72; letter-spacing: 1px;
  text-transform: uppercase; margin-bottom: 3px; font-weight: 600;
  background: rgba(255,255,255,.15); display: inline-block;
  padding: 1px 6px; border-radius: 8px;
}
.ghc-card__name {
  font-family: 'Poppins', 'Playfair Display', serif;
  font-size: .82rem; font-weight: 700; line-height: 1.2;
  word-break: break-word;
  text-shadow: 0 1px 4px rgba(0,0,0,.15);
}

/* ── Card body: dl rows ─────────────────────────────────────── */
.ghc-card__body { flex: 1; }

/* Info row */
.ghc-row {
  display: flex; align-items: flex-start; gap: 6px;
  padding: 5px 10px;
  border-bottom: 1px solid #efefef;
  font-size: .78rem; line-height: 1.35;
}
.ghc-row:last-child { border-bottom: none; }
.ghc-row:nth-child(odd) { background: #fff; }
.ghc-row:nth-child(even) { background: #f8fafa; }
.ghc-row--ret { background: #eff6ff !important; }

.ghc-row__lbl {
  flex: 0 0 auto; width: 110px; min-width: 95px;
  font-size: .68rem; font-weight: 700;
  color: var(--gc-text-mid); line-height: 1.35;
  text-transform: uppercase; letter-spacing: .2px;
  padding-top: 1px;
}
.ghc-row__val {
  flex: 1; min-width: 0;
  color: var(--gc-text);
  word-break: break-word;
  font-size: .78rem; font-weight: 500;
}

/* Sub-section rows */
.ghc-row--subhd {
  padding: 5px 10px;
  background: linear-gradient(90deg, #e4f2f2, #f0fafa);
  border-top: 1px solid #c0e0e0;
  border-bottom: 1px solid #c0e0e0;
  font-size: .65rem; font-weight: 800;
  color: var(--gc-teal-d);
  letter-spacing: .6px; text-transform: uppercase;
}
.ghc-row--subhd-ret { background: linear-gradient(90deg, #e8f0fe, #f0f4ff); color: var(--gc-blue); border-color: #b0ccf5; }

/* ── Status badges ──────────────────────────────────────────── */
.ghc-badge {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 9px; border-radius: 20px;
  font-size: .7rem; font-weight: 700; letter-spacing: .2px;
  line-height: 1.3; white-space: nowrap;
}
.ghc-badge--confirmed { background: #d0f0da; color: #0f4a22; border: 1px solid #a3d9b5; }
.ghc-badge--confirmed::before { content: '✓ '; }
.ghc-badge--pending   { background: #fff4c2; color: #7a4d00; border: 1px solid #f0d060; }
.ghc-badge--pending::before   { content: '⏳ '; }
.ghc-badge--cancelled { background: #fde8e8; color: #8b1414; border: 1px solid #f5a0a0; }
.ghc-badge--cancelled::before { content: '✕ '; }
.ghc-dash { color: var(--gc-gray-400); font-style: italic; font-size: .85rem; }

/* ====================================================================
   PAYMENT BLOCK
   ==================================================================== */
.ghc-payment { padding: 28px 24px 14px; }

.ghc-pay-chips {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(195px, 1fr));
  gap: 16px;
  margin-bottom: 28px;
}
.ghc-pay-chip {
  border-radius: var(--gc-radius-sm);
  padding: 20px 22px;
  display: flex; flex-direction: column; gap: 8px;
  border-left: 6px solid var(--gc-teal-lt);
  background: var(--gc-gray-50);
  box-shadow: 0 2px 10px rgba(0,0,0,.05);
  transition: transform .18s;
}
.ghc-pay-chip:hover { transform: translateY(-2px); }
.ghc-pay-chip--total   { border-left-color: var(--gc-teal); background: #f0fafa; }
.ghc-pay-chip--paid    { border-left-color: var(--gc-green); background: #f0faf3; }
.ghc-pay-chip--balance { border-left-color: var(--gc-amber); background: #fff7f0; }
.ghc-pay-chip--refund  { border-left-color: var(--gc-blue);  background: #f0f4ff; }

.ghc-pay-chip__lbl {
  font-size: .78rem; font-weight: 700; color: var(--gc-text-muted);
  text-transform: uppercase; letter-spacing: .5px;
}
.ghc-pay-chip__val {
  font-family: 'Source Code Pro', monospace;
  font-size: 1.35rem; font-weight: 800; color: var(--gc-text);
}
.ghc-pay-chip--total   .ghc-pay-chip__val { color: var(--gc-teal); }
.ghc-pay-chip--paid    .ghc-pay-chip__val { color: var(--gc-green); }
.ghc-pay-chip--balance .ghc-pay-chip__val { color: var(--gc-amber); }
.ghc-pay-chip--refund  .ghc-pay-chip__val { color: var(--gc-blue); }

/* Transaction history */
.ghc-txn__title {
  font-family: 'Poppins', sans-serif;
  font-size: 1.05rem; font-weight: 700; color: var(--gc-text-mid);
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--gc-gray-200);
}
.ghc-txn__scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: var(--gc-radius-sm);
  border: 1px solid var(--gc-gray-200);
}
.ghc-txn__table {
  width: 100%;
  border-collapse: collapse;
  font-size: .92rem;
  min-width: 440px;
}
.ghc-txn__table thead tr { background: linear-gradient(135deg, var(--gc-teal-d), var(--gc-teal)); color: #fff; }
.ghc-txn__table th { padding: 12px 16px; text-align: center; font-weight: 700; font-size: .82rem; white-space: nowrap; }
.ghc-txn__table td { padding: 11px 16px; text-align: center; border-bottom: 1px solid #f0f0f0; font-size: .9rem; }
.ghc-txn__table tr:nth-child(even) td { background: #f8fafa; }
.ghc-txn__table tr:last-child td { border-bottom: none; }
.ghc-txn__id  { font-family: 'Source Code Pro', monospace; font-size: .8rem; word-break: break-all; text-align: left; }
.ghc-txn__amt { font-family: 'Source Code Pro', monospace; font-weight: 800; text-align: right; color: var(--gc-green); }

/* ====================================================================
   DOC FOOTER
   ==================================================================== */
.ghc-doc-footer {
  padding: 20px 28px;
  background: linear-gradient(90deg, #e4f2f2, #f5fafa);
  border-top: 3px solid var(--gc-teal-lt);
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 16px;
  margin-top: 8px;
}
.ghc-doc-footer__note { font-size: .85rem; color: var(--gc-text-muted); margin: 0; font-weight: 500; }
.ghc-print-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 34px;
  background: linear-gradient(135deg, #002b2b, var(--gc-teal));
  color: #fff; border: none; border-radius: var(--gc-radius-sm);
  font-family: 'Poppins', sans-serif;
  font-size: 1rem; font-weight: 700;
  cursor: pointer;
  box-shadow: 0 5px 18px rgba(0,107,107,.28);
  transition: transform .15s, box-shadow .2s;
  letter-spacing: .4px;
}
.ghc-print-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(0,107,107,.38); }

/* ====================================================================
   RESPONSIVE
   ==================================================================== */
@media (max-width: 480px) {
  .ghc-page { font-size: 13px; }
  .ghc-hero { padding: 28px 0 24px; }
  .ghc-hero__crescent { display: none; }
  .ghc-wrap { padding: 10px 8px 0; }

  .ghc-search-card { flex-direction: column; align-items: stretch; gap: 10px; padding: 14px; }
  .ghc-search-form { flex-direction: column; gap: 8px; }
  .ghc-select { min-width: unset; }
  .ghc-btn-search { width: 100%; justify-content: center; }
  .ghc-back-link { text-align: center; }

  .ghc-meta { flex-direction: column; }
  .ghc-meta__item { border-right: none; border-bottom: 1px solid var(--gc-gray-200); }
  .ghc-meta__item:last-child { border-bottom: none; }

  .ghc-grid { padding: 10px 8px; gap: 10px;
    grid-template-columns: 1fr !important;
  }
  .ghc-row__lbl { width: 95px; min-width: 80px; }
  .ghc-doc-footer { flex-direction: column; text-align: center; }
  .ghc-print-btn  { width: 100%; justify-content: center; }
  .ghc-pay-chips  { grid-template-columns: 1fr 1fr; gap: 8px; }
}

@media (min-width: 481px) and (max-width: 900px) {
  .ghc-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .ghc-row__lbl { width: 100px; min-width: 85px; }
}

@media (min-width: 901px) {
  .ghc-grid { grid-template-columns: repeat(var(--col-count, 3), 1fr); }
}

/* ====================================================================
   PRINT — A4 portrait, pilgrim cards rendered correctly
   ==================================================================== */
@media print {
  * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }

  @page { margin: 0.8cm 0.6cm; size: A4 portrait; }

  html, body {
    background: #fff !important;
    margin: 0 !important; padding: 0 !important;
    font-size: 9pt !important;
    font-family: Arial, 'Helvetica Neue', sans-serif !important;
    -webkit-font-smoothing: antialiased !important;
  }

  /* Hide everything except the document */
  #wpadminbar, .site-header, .topbar, .main-nav,
  .news-ticker, .announcement-ticker,
  .site-footer, footer,
  .ghc-hero, .ghc-search-card, .ghc-state,
  .ghc-back-link, .ghc-print-btn { display: none !important; }

  .ghc-page, .ghc-wrap { padding: 0 !important; margin: 0 !important; background: #fff !important; }
  .container { max-width: 100% !important; padding: 0 !important; }
  .ghc-wrap > *:not(.ghc-doc) { display: none !important; }

  /* ── Document shell ─────────────────────────────────────── */
  .ghc-doc {
    box-shadow: none !important; border: none !important;
    border-radius: 0 !important; margin: 0 !important; background: #fff !important;
  }

  /* ── Doc header compact ─────────────────────────────────── */
  .ghc-doc-header {
    text-align: center; padding: 6pt 0 4pt !important;
    border-bottom: 2pt solid #006060 !important;
    margin-bottom: 6pt !important;
  }
  .ghc-doc-header__org { font-size: 13pt !important; font-weight: 800 !important; color: #002b2b !important; letter-spacing: 0.5pt !important; }
  .ghc-doc-header__year { font-size: 8pt !important; color: #444 !important; margin-top: 2pt !important; }

  /* ── Cover meta ─────────────────────────────────────────── */
  .ghc-meta {
    display: flex !important; gap: 12pt !important;
    padding: 4pt 0 !important; margin-bottom: 6pt !important;
    border-bottom: 1pt solid #ccc !important;
  }
  .ghc-meta__key { font-size: 7pt !important; color: #666 !important; text-transform: uppercase !important; letter-spacing: 0.3pt !important; }
  .ghc-meta__val { font-size: 9pt !important; font-weight: 700 !important; color: #000 !important; }

  /* ── Section headings ─────────────────────────────────── */
  .ghc-sec-hd {
    font-size: 9pt !important; font-weight: 800 !important;
    padding: 4pt 8pt !important; margin: 8pt 0 0 !important;
    break-after: avoid !important;
  }

  /* ── Card grid — side-by-side layout ─────────── */
  .ghc-grid {
    display: grid !important;
    gap: 3pt !important;
    padding: 3pt 0 !important;
    background: #f0f0f0 !important;
    break-inside: avoid !important;
    align-items: start !important;
  }

  /* Column count rules based on data-cols attribute */
  .ghc-grid[data-cols="1"] { grid-template-columns: 1fr !important; max-width: 55% !important; margin: 0 auto !important; }
  .ghc-grid[data-cols="2"] { grid-template-columns: repeat(2, 1fr) !important; max-width: 75% !important; margin: 0 auto !important; }
  .ghc-grid[data-cols="3"] { grid-template-columns: repeat(3, 1fr) !important; }
  .ghc-grid[data-cols="4"] { grid-template-columns: repeat(4, 1fr) !important; }
  .ghc-grid[data-cols="5"] { grid-template-columns: repeat(5, 1fr) !important; }
  .ghc-grid[data-cols="6"],
  .ghc-grid[data-cols="7"] { grid-template-columns: repeat(5, 1fr) !important; }
  /* Fallback */
  .ghc-grid:not([data-cols]) { grid-template-columns: repeat(var(--col-count, 3), 1fr) !important; }

  /* ── Individual card ─────────────────────────────────── */
  .ghc-card {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    box-shadow: none !important;
    border: 1pt solid #aacece !important;
    border-radius: 0 !important;
    background: #fff !important;
    overflow: hidden !important;
  }
  .ghc-card:hover { transform: none !important; }

  /* ── Card header ─────────────────────────────────────── */
  .ghc-card__hd {
    padding: 4pt 5pt !important;
    gap: 4pt !important;
    background: #003030 !important;
    flex-wrap: nowrap !important;
  }
  .ghc-card__hd--flight { background: #0c2e6e !important; }
  .ghc-card__hd--accom  { background: #0e3320 !important; }

  .ghc-card__photo-wrap { width: 32pt !important; height: 40pt !important; flex-shrink: 0 !important; }
  .ghc-card__photo-ph {
    width: 32pt !important; height: 40pt !important;
    font-size: 10pt !important;
  }
  .ghc-card__seq { font-size: 5pt !important; padding: 1pt 3pt !important; white-space: nowrap !important; }
  .ghc-card__name { font-size: 6.5pt !important; line-height: 1.25 !important; word-break: break-word !important; }

  /* ── Data rows ─────────────────────────────────────── */
  .ghc-row {
    display: flex !important;
    padding: 2pt 4pt !important;
    font-size: 6.5pt !important;
    gap: 3pt !important;
    border-bottom: 0.5pt solid #e0e0e0 !important;
    align-items: flex-start !important;
  }
  .ghc-row__lbl {
    font-size: 5.5pt !important;
    width: 60pt !important; min-width: 52pt !important;
    flex-shrink: 0 !important;
    line-height: 1.3 !important;
    color: #555 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.2pt !important;
  }
  .ghc-row__val {
    flex: 1 !important; min-width: 0 !important;
    font-size: 6.5pt !important;
    font-weight: 600 !important;
    color: #000 !important;
    line-height: 1.3 !important;
    word-break: break-word !important;
  }
  .ghc-row--subhd {
    padding: 2pt 4pt !important;
    font-size: 5.5pt !important;
    letter-spacing: .3pt !important;
    background: #d8ecec !important;
    color: #003030 !important;
    text-transform: uppercase !important;
  }

  /* ── Badges in print ────────────────────────────────── */
  .ghc-badge {
    display: inline-flex !important; align-items: center !important;
    font-size: 5.5pt !important; padding: 1pt 4pt !important;
    border-radius: 2pt !important; gap: 1pt !important;
    font-weight: 700 !important; white-space: nowrap !important;
    border: 0.5pt solid currentColor !important;
  }
  .ghc-badge--confirmed { background: #d0f0da !important; color: #0f4a22 !important; }
  .ghc-badge--pending   { background: #fff4c2 !important; color: #7a4d00 !important; }
  .ghc-badge--cancelled { background: #fde8e8 !important; color: #8b1414 !important; }

  /* ── Payment section ────────────────────────────────── */
  .ghc-payment { padding: 6pt 0 !important; }
  .ghc-pay-chips {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 4pt !important;
    margin-bottom: 8pt !important;
  }
  .ghc-pay-chip { padding: 5pt 7pt !important; }
  .ghc-pay-chip__lbl { font-size: 6pt !important; }
  .ghc-pay-chip__val { font-size: 9pt !important; }
  .ghc-txn__table { min-width: 0 !important; font-size: 7pt !important; }
  .ghc-txn__table th, .ghc-txn__table td { padding: 3pt 5pt !important; }

  /* ── Doc footer — keep print button hidden but show note ─ */
  .ghc-doc-footer {
    display: flex !important;
    padding: 5pt 0 0 !important;
    background: none !important;
    border-top: 1pt solid #ccc !important;
    margin-top: 6pt !important;
  }
  .ghc-doc-footer__note { font-size: 6pt !important; color: #555 !important; }
  .ghc-print-btn { display: none !important; }
}



/* ================================================================
   v7 ADDITIONS — Announcements responsive
================================================================ */

/* ── Announcement Section ── */
.announcements-section {
  padding: 60px 0;
  background: linear-gradient(135deg, #f8faf8 0%, #eef5ee 100%);
  position: relative;
  overflow: hidden;
}
.announcements-section::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--primary), var(--accent), var(--primary));
}

.announcements-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 32px;
  align-items: start;
}

/* ── Left/header column ── */
.ann-header-col {
  position: sticky;
  top: 100px;
}
.ann-header-inner {
  background: var(--white);
  border-radius: var(--radius-md);
  padding: 28px 24px;
  box-shadow: var(--shadow-sm);
  border-top: 4px solid var(--primary);
}
.ann-live-dot {
  width: 10px; height: 10px;
  background: #22c55e;
  border-radius: 50%;
  display: inline-block;
  margin-bottom: 12px;
  box-shadow: 0 0 0 3px rgba(34,197,94,.25);
  animation: annPulse 2s ease-in-out infinite;
}
@keyframes annPulse {
  0%,100% { box-shadow: 0 0 0 3px rgba(34,197,94,.25); }
  50%      { box-shadow: 0 0 0 8px rgba(34,197,94,.08); }
}
.ann-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--primary-dark);
  margin-bottom: 6px;
  line-height: 1.2;
}
.ann-subtitle {
  font-size: .83rem;
  color: var(--text-muted);
  margin-bottom: 20px;
  line-height: 1.4;
}
.ann-tag-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 20px;
}
.ann-legend-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .2px;
}
.ann-view-all {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .84rem;
  font-weight: 700;
  color: var(--primary);
  border: 2px solid var(--primary);
  padding: 8px 16px;
  border-radius: var(--radius-sm);
  transition: var(--transition);
  text-decoration: none;
}
.ann-view-all:hover {
  background: var(--primary);
  color: var(--white);
}

/* ── Right/scroll column ── */
.ann-scroll-col {
  height: 460px;
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-md);
}
.ann-scroll-col::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 60px;
  background: linear-gradient(transparent, #eef5ee);
  pointer-events: none;
  z-index: 2;
}

.ann-scroll-outer {
  height: 100%;
  overflow: hidden;
}
.ann-scroll-inner {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 4px 2px;
  animation: annScrollUp 28s linear infinite;
  will-change: transform;
}
.ann-scroll-inner:hover {
  animation-play-state: paused;
}
@keyframes annScrollUp {
  0%   { transform: translateY(0); }
  100% { transform: translateY(-50%); }
}

/* ── Announcement card ── */
.ann-card {
  background: var(--white);
  border-radius: var(--radius-md);
  padding: 16px 18px;
  box-shadow: var(--shadow-sm);
  border-left: 4px solid var(--primary-light);
  transition: transform .2s, box-shadow .2s;
  display: flex;
  flex-direction: column;
  gap: 6px;
  cursor: default;
}
.ann-card:hover {
  transform: translateX(4px);
  box-shadow: var(--shadow-md);
}
.ann-tag-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 10px;
  border-radius: 20px;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .3px;
  align-self: flex-start;
}
.ann-card-title {
  font-size: .9rem;
  font-weight: 600;
  color: var(--primary-dark);
  text-decoration: none;
  line-height: 1.4;
  transition: color .2s;
}
.ann-card-title:hover { color: var(--accent-dark); }
.ann-card-excerpt {
  font-size: .78rem;
  color: var(--text-muted);
  line-height: 1.5;
  margin: 0;
}
.ann-card-date {
  font-size: .72rem;
  color: var(--gray-400);
  font-weight: 500;
}

/* ── Responsive ── */
@media (max-width: 900px) {
  .announcements-layout {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .ann-header-col {
    position: static;
  }
  .ann-header-inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 16px;
    align-items: start;
  }
  .ann-scroll-col { height: 380px; }
}
@media (max-width: 600px) {
  .announcements-section { padding: 40px 0; }
  .ann-scroll-col { height: 320px; }
  .ann-card { padding: 12px 14px; }
  .ann-header-inner { grid-template-columns: 1fr; }
  .ann-title { font-size: 1.25rem; }
}

/* ============================================================
   GUJARAT DISTRICT DIRECTORY — Table View — v4.0
   ============================================================ */

/* ── Section shell ── */
/* ════════════════════════════════════════════════════════
   DISTRICT WISE DETAILS — Section wrapper
════════════════════════════════════════════════════════ */
.district-map-section {
  background: linear-gradient(160deg, #f2f6f2 0%, #e8f2e8 100%);
  padding: 56px 0 72px;
}
.district-map-title {
  font-size: 1.85rem; font-weight: 800; color: var(--primary-dark); margin-bottom: 6px;
}
.district-map-subtitle { color: #666; font-size: .95rem; margin-bottom: 0; }
.district-count-badge {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--primary-dark); color: var(--accent);
  font-size: .78rem; font-weight: 700; letter-spacing: .4px;
  padding: 4px 12px; border-radius: 20px; margin-bottom: 12px;
}

/* ════════════════════════════════════════════════════════
   DISTRICT WISE DETAILS — Main wrap
════════════════════════════════════════════════════════ */
.ghh-dwd-wrap {
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 6px 40px rgba(27,67,50,.11);
  border: 1px solid rgba(27,67,50,.09);
  overflow: hidden;
}

/* ── Zone filter pills bar ── */
.ghh-dwd-zones {
  display: flex; align-items: center; gap: 0;
  background: var(--primary-dark);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 0 4px;
}
.ghh-dwd-zones::-webkit-scrollbar { display: none; }

.ghh-dwd-zone {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 12px 16px;
  background: transparent; border: none;
  border-bottom: 3px solid transparent;
  color: rgba(255,255,255,.55);
  font-size: .78rem; font-weight: 700;
  cursor: pointer; white-space: nowrap;
  transition: color .15s, background .15s;
  font-family: inherit;
  flex-shrink: 0;
}
.ghh-dwd-zone:hover { color: rgba(255,255,255,.88); background: rgba(255,255,255,.07); }
.ghh-dwd-zone.active {
  color: var(--accent);
  border-bottom-color: var(--accent);
}
.ghh-dwd-zone-count {
  background: rgba(255,255,255,.15); color: rgba(255,255,255,.7);
  font-size: .65rem; font-weight: 800;
  padding: 1px 6px; border-radius: 10px; min-width: 18px; text-align: center;
}
.ghh-dwd-zone.active .ghh-dwd-zone-count { background: var(--accent); color: var(--primary-dark); }

/* ── Two-column layout ── */
.ghh-dwd-layout {
  display: grid;
  grid-template-columns: 300px 1fr;
  min-height: 520px;
}

/* ── Sidebar ── */
.ghh-dwd-sidebar {
  border-right: 1px solid #eef2ee;
  display: flex; flex-direction: column;
  background: #fafcfa;
}

.ghh-dwd-search-wrap {
  display: flex; align-items: center; gap: 8px;
  padding: 12px 14px;
  border-bottom: 1px solid #eef2ee;
  background: #fff;
}
.ghh-dwd-search-ico { color: #aaa; font-size: .9rem; flex-shrink: 0; }
.ghh-dwd-search {
  flex: 1; border: none; outline: none;
  font-size: .85rem; color: #333; font-family: inherit;
  background: transparent;
}
.ghh-dwd-search::placeholder { color: #bbb; }

.ghh-dwd-list {
  flex: 1; overflow-y: auto;
  max-height: 480px;
  padding: 6px 0;
}
.ghh-dwd-list::-webkit-scrollbar { width: 4px; }
.ghh-dwd-list::-webkit-scrollbar-track { background: #f5f5f5; }
.ghh-dwd-list::-webkit-scrollbar-thumb { background: #ccc; border-radius: 4px; }

.ghh-dwd-item {
  display: flex; align-items: center; gap: 9px;
  width: 100%; padding: 9px 14px;
  background: transparent; border: none;
  text-align: left; cursor: pointer;
  transition: background .12s;
  font-family: inherit; font-size: .855rem;
  color: #333;
}
.ghh-dwd-item:hover { background: #f0f8f0; }
.ghh-dwd-item.ghh-dwd-item--hidden { display: none; }
.ghh-dwd-item.ghh-dwd-item--active {
  background: linear-gradient(to right, #e8f5e9, #f0f9f0);
  font-weight: 700; color: var(--primary-dark);
}
.ghh-dwd-item-dot {
  width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0;
}
.ghh-dwd-item-name { flex: 1; }
.ghh-dwd-item-zone {
  font-size: .62rem; font-weight: 700; padding: 2px 7px; border-radius: 8px;
  white-space: nowrap; flex-shrink: 0;
}

.ghh-dwd-no-results {
  padding: 24px; text-align: center; color: #aaa; font-size: .85rem;
}

/* ── Right panel ── */
.ghh-dwd-panel {
  padding: 0;
  display: flex; flex-direction: column;
}

/* Prompt (before selection) */
.ghh-dwd-prompt {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  height: 100%; min-height: 420px;
  padding: 40px 30px; text-align: center; color: #aaa;
}
.ghh-dwd-prompt-icon { font-size: 3.5rem; margin-bottom: 16px; opacity: .35; }
.ghh-dwd-prompt h3 { font-size: 1.1rem; font-weight: 700; color: #999; margin-bottom: 8px; }
.ghh-dwd-prompt p  { font-size: .875rem; line-height: 1.6; max-width: 340px; }

/* ── Detail card ── */
.ghh-dwd-card { display: block; height: 100%; }
.ghh-dwd-card-inner {
  --card-accent: var(--primary-dark);
  display: flex; flex-direction: column;
  height: 100%;
}

/* Card header */
.ghh-dwd-card-head {
  padding: 18px 22px 14px;
  border-left: 5px solid var(--card-accent);
  background: linear-gradient(to right, rgba(27,67,50,.06) 0%, transparent 60%);
}
.ghh-dwd-card-name {
  font-size: 1.2rem; font-weight: 900; color: var(--primary-dark); margin: 0 0 8px;
}
.ghh-dwd-card-pills { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.ghh-dwd-pill {
  font-size: .72rem; font-weight: 800; padding: 3px 10px; border-radius: 12px;
}
.ghh-dwd-pill--pilgrims { background: #dcfce7; color: #166534; }

/* Card body: two columns */
.ghh-dwd-card-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border-top: 1px solid #edf2ed;
  flex: 1;
}

/* Trainers column */
.ghh-dwd-trainers-col {
  padding: 18px 20px;
  border-right: 1px solid #edf2ed;
  background: #fafcfa;
}
.ghh-dwd-sched-col { padding: 18px 20px; }

.ghh-dwd-col-title {
  font-size: .68rem; font-weight: 800; text-transform: uppercase;
  letter-spacing: .6px; color: #888; margin-bottom: 14px;
}
.ghh-dwd-trainer-grp { margin-bottom: 16px; }
.ghh-dwd-trainer-grp:last-child { margin-bottom: 0; }
.ghh-dwd-grp-lbl {
  font-size: .65rem; font-weight: 800; text-transform: uppercase;
  letter-spacing: .5px; color: #bbb; margin-bottom: 8px;
}
.ghh-dwd-no-data { font-size: .82rem; color: #ccc; font-style: italic; margin: 0; }

/* Trainer card */
.ghh-tr-card {
  display: flex; align-items: center; gap: 11px;
  padding: 9px 10px;
  background: #fff;
  border: 1px solid #eaf0ea;
  border-radius: 10px;
  margin-bottom: 8px;
  transition: box-shadow .15s, transform .12s;
}
.ghh-tr-card:hover {
  box-shadow: 0 3px 12px rgba(27,67,50,.10);
  transform: translateY(-1px);
}
.ghh-tr-photo-wrap { flex-shrink: 0; }
.ghh-tr-photo {
  width: 48px; height: 48px; border-radius: 50%;
  object-fit: cover; object-position: top;
  border: 2px solid #e8f0e8;
}
.ghh-tr-avatar {
  width: 48px; height: 48px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: .9rem; font-weight: 800; color: #fff; flex-shrink: 0;
}
.ghh-tr-avatar--ft  { background: linear-gradient(135deg, #1b4332, #2d6a4f); }
.ghh-tr-avatar--aft { background: linear-gradient(135deg, #0369a1, #0ea5e9); }
.ghh-tr-info { flex: 1; min-width: 0; }
.ghh-tr-name {
  font-size: .855rem; font-weight: 700; color: #1a1a1a;
  display: flex; align-items: center; gap: 5px; flex-wrap: wrap;
  margin-bottom: 4px;
}
.ghh-tr-badge {
  font-size: .6rem; font-weight: 900; padding: 1px 5px; border-radius: 4px;
  letter-spacing: .3px; white-space: nowrap; flex-shrink: 0;
}
.ghh-tr-badge--ft  { background: #dcfce7; color: #166534; }
.ghh-tr-badge--aft { background: #dbeafe; color: #1d4ed8; }
.ghh-tr-phone {
  font-size: .78rem; color: #16a34a; text-decoration: none;
  display: flex; align-items: center; gap: 4px;
}
.ghh-tr-phone:hover { text-decoration: underline; }

/* Info blocks (training / vaccination) */
.ghh-info-block {
  margin-bottom: 22px;
  padding-bottom: 20px;
  border-bottom: 1px dashed #edf2ed;
}
.ghh-info-block:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.ghh-info-title {
  font-size: .68rem; font-weight: 800; text-transform: uppercase;
  letter-spacing: .6px; color: #888; margin-bottom: 10px;
}
.ghh-info-date { margin-bottom: 6px; }
.ghh-info-date-badge {
  display: inline-flex; align-items: center; gap: 4px;
  background: #dcfce7; color: #166534;
  font-size: .78rem; font-weight: 700;
  padding: 4px 10px; border-radius: 8px;
}
.ghh-info-tba { font-size: .8rem; color: #ccc; font-style: italic; margin-bottom: 6px; }
.ghh-info-time { font-size: .8rem; color: #555; margin-bottom: 6px; }
.ghh-info-addr { font-size: .8rem; color: #666; line-height: 1.55; margin-bottom: 8px; }
.ghh-info-map-btn {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: .75rem; font-weight: 700;
  padding: 6px 14px; border-radius: 7px;
  text-decoration: none !important;
  transition: background .18s, transform .12s; margin-top: 2px;
}
.ghh-info-map-btn:hover { transform: translateY(-1px); }
.ghh-info-map-btn--green { background: #16a34a; color: #fff !important; }
.ghh-info-map-btn--green:hover { background: #15803d; }
.ghh-info-map-btn--blue  { background: #0369a1; color: #fff !important; }
.ghh-info-map-btn--blue:hover  { background: #075985; }

/* Card footer */
.ghh-dwd-card-footer {
  display: flex; gap: 10px; flex-wrap: wrap; align-items: center;
  padding: 14px 22px;
  background: #f8fbf8;
  border-top: 1px solid #edf2ed;
}
.ghh-dwd-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 9px 20px;
  background: var(--primary-dark); color: #fff !important;
  border-radius: 8px; font-size: .84rem; font-weight: 700;
  text-decoration: none !important;
  transition: background .17s, transform .13s;
  border: 2px solid transparent;
}
.ghh-dwd-btn:hover { background: var(--accent-dark); transform: translateY(-1px); }
.ghh-dwd-btn--outline {
  background: transparent; color: var(--primary-dark) !important;
  border-color: var(--primary-dark);
}
.ghh-dwd-btn--outline:hover { background: var(--primary-dark); color: #fff !important; }

/* ════════════════════════════════════════════════════════
   RESPONSIVE — District Wise Details
════════════════════════════════════════════════════════ */
@media (max-width: 1050px) {
  .ghh-dwd-layout { grid-template-columns: 260px 1fr; }
}
@media (max-width: 860px) {
  .ghh-dwd-layout { grid-template-columns: 1fr; }
  .ghh-dwd-sidebar {
    border-right: none;
    border-bottom: 1px solid #eef2ee;
    max-height: none;
  }
  .ghh-dwd-list { max-height: 240px; }
  .ghh-dwd-card-body { grid-template-columns: 1fr; }
  .ghh-dwd-trainers-col { border-right: none; border-bottom: 1px solid #edf2ed; }
  .ghh-dwd-prompt { min-height: 220px; }
}
@media (max-width: 560px) {
  .district-map-section { padding: 36px 0 52px; }
  .district-map-title { font-size: 1.5rem; }
  .ghh-dwd-zones { padding: 0; }
  .ghh-dwd-zone { padding: 10px 11px; font-size: .72rem; }
  .ghh-dwd-card-head { padding: 14px 16px 12px; }
  .ghh-dwd-card-name { font-size: 1.05rem; }
  .ghh-dwd-trainers-col, .ghh-dwd-sched-col { padding: 14px 16px; }
  .ghh-tr-card { padding: 8px; }
  .ghh-tr-photo, .ghh-tr-avatar { width: 40px; height: 40px; }
  .ghh-dwd-card-footer { padding: 12px 16px; }
  .ghh-dwd-btn { padding: 8px 14px; font-size: .8rem; }
}

   DISTRICT DETAIL PAGE (single-ghh_district.php)
════════════════════════════════════════════════════════ */
.district-page-wrap { max-width: 1100px; margin: 0 auto; padding: 48px 20px 80px; }
.district-page-hero {
  background: linear-gradient(135deg, var(--primary-dark) 0%, #1a5c2e 100%);
  border-radius: 20px; padding: 48px 40px; color: white;
  margin-bottom: 40px; position: relative; overflow: hidden;
}
.district-page-hero::after { content:'🕌'; position:absolute; right:40px; top:50%; transform:translateY(-50%); font-size:5rem; opacity:.12; }
.district-page-hero .district-badge { font-size:.8rem; font-weight:700; color:var(--accent); text-transform:uppercase; letter-spacing:.1em; margin-bottom:8px; }
.district-page-hero h1 { font-size:2.4rem; font-weight:900; margin-bottom:12px; color:#fff; }
.district-page-hero p  { font-size:1rem; opacity:.8; max-width:600px; }
.district-info-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:24px; margin-bottom:32px; }
.dist-info-card { background:#fff; border-radius:16px; box-shadow:0 4px 20px rgba(0,0,0,.07); padding:24px; border-left:4px solid var(--primary-dark); }
.dist-info-card.accent-border { border-left-color:var(--accent); }
.dist-info-card h3 { font-size:1rem; font-weight:700; color:var(--primary-dark); margin-bottom:14px; display:flex; align-items:center; gap:8px; }
.dist-info-card h3 .card-icon { font-size:1.3rem; }
.dist-info-card p, .dist-info-card .dist-content { font-size:.9rem; color:#555; line-height:1.7; white-space:pre-wrap; }
.dist-info-card .empty-val { color:#bbb; font-style:italic; font-size:.85rem; }
.dist-schedule-table { width:100%; border-collapse:collapse; font-size:.88rem; }
.dist-schedule-table th { background:var(--primary-dark); color:#fff; padding:10px 14px; text-align:left; font-weight:600; }
.dist-schedule-table td { padding:10px 14px; border-bottom:1px solid #eee; color:#444; }
.dist-schedule-table tr:hover td { background:#f9fef9; }
.district-back-link { display:inline-flex; align-items:center; gap:6px; color:var(--primary-dark); font-weight:600; font-size:.9rem; text-decoration:none; margin-bottom:24px; }
.district-back-link:hover { color:var(--accent); }
.dist-map-embed { width:100%; height:280px; border:0; border-radius:10px; margin-top:12px; }
.district-maps-btn { display:inline-flex; align-items:center; gap:6px; background:#4285f4; color:#fff !important; text-decoration:none; padding:7px 14px; border-radius:6px; font-size:.8rem; font-weight:600; margin:4px 0 10px; transition:background .2s; }
.district-maps-btn:hover { background:#3367d6; color:#fff !important; }
@media(max-width:600px) {
  .district-page-wrap { padding:24px 16px 60px; }
  .district-page-hero { padding:28px 20px; border-radius:12px; }
  .district-page-hero h1 { font-size:1.5rem; }
  .district-page-hero::after { display:none; }
  .district-info-cards { grid-template-columns:1fr; }
  .dist-info-card { padding:16px; }
  .dist-map-embed { height:220px; }
}

/* ============================================================
   ADMIN: DISTRICT MAP SECTION
   ============================================================ */
.ghh-district-admin-wrap { max-width: 900px; }
.ghh-district-admin-wrap .form-table th { width: 180px; }

/* Responsive map */
@media(max-width:960px) {
  .district-map-layout {
    grid-template-columns: 1fr;
  }
  .district-info-panel {
    order: -1;
    min-height: auto;
  }
  .gujarat-map-wrap { padding: 12px; }
}
@media(max-width:600px) {
  .district-map-title { font-size: 1.5rem; }
  .district-page-hero { padding: 32px 24px; }
  .district-page-hero h1 { font-size: 1.8rem; }
  .district-page-hero::after { display: none; }
}

/* Interactive map layout — two-column on front page */
.district-map-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 32px;
  align-items: start;
}

/* Keep static-img class for backwards compatibility if still used elsewhere */
.district-map-static-wrap {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding: 16px 0 8px;
}
.district-map-static-img {
  max-width: 640px;
  width: 100%;
  height: auto;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  display: block;
}
@media(max-width:680px) {
  .district-map-static-img { border-radius: var(--radius-sm); }
}


/* =============================================================
   DISTRICT MAP — Google Maps button & mobile improvements
============================================================= */
.district-maps-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #4285f4;
  color: #fff !important;
  text-decoration: none;
  padding: 8px 14px;
  border-radius: 6px;
  font-size: .82rem;
  font-weight: 600;
  margin: 8px 0 12px;
  transition: background .2s;
}
.district-maps-btn:hover { background: #3367d6; color: #fff !important; }

/* Google Maps embed iframe in district page */
.dist-map-embed {
  width: 100%;
  height: 280px;
  border: 0;
  border-radius: 10px;
  margin-top: 12px;
}

/* =============================================================
   COMPREHENSIVE MOBILE RESPONSIVENESS — v14
   Fix all sections for mobile phones & tablets
============================================================= */

/* ---- GLOBAL ---- */
* { box-sizing: border-box; }
img, svg, video { max-width: 100%; height: auto; }

/* ---- TOP BAR ---- */
@media(max-width:480px) {
  .topbar { font-size: .75rem; }
  .topbar .container { flex-wrap: wrap; gap: 4px; }
  .topbar-left, .topbar-right { width: 100%; justify-content: center; }
  .topbar-social { gap: 6px; }
}

/* ---- HEADER ---- */
@media(max-width:768px) {
  .site-header { padding: 10px 0; }
  .header-inner { flex-wrap: wrap; gap: 10px; }
  .header-search { width: 100%; }
  .header-search input[type="search"] { width: 100%; }
  .site-name-stylized { font-size: 1.2rem; }
  .site-tagline { font-size: .72rem; }
}
@media(max-width:480px) {
  .header-inner { flex-direction: column; align-items: flex-start; gap: 8px; }
  .site-logo-wrapper img, .site-logo-fallback { width: 48px; height: 48px; }
}

/* ---- NAV ---- */
@media(max-width:768px) {
  .main-nav { position: relative; }
  .main-nav .container { padding: 0 16px; }
  .nav-inner { padding: 8px 0; min-height: 50px; }
  /* Hamburger must have touch-action for mobile */
  .hamburger { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
}

/* ---- HERO SECTION ---- */
@media(max-width:900px) {
  .hero-grid { grid-template-columns: 1fr; gap: 24px; }
  .hero-content { text-align: center; }
  .hero-title { font-size: 1.8rem; }
  .hero-desc { font-size: .9rem; }
  .hero-stats { justify-content: center; flex-wrap: wrap; gap: 12px; }
  .hero-actions { justify-content: center; flex-wrap: wrap; }
  .inquiry-card { max-width: 100%; }
}
@media(max-width:480px) {
  .hero-section { padding: 40px 0 30px; }
  .hero-title { font-size: 1.5rem; }
  .hero-badge { font-size: .8rem; }
  .hero-stats { gap: 8px; }
  .stat-item { min-width: 80px; padding: 10px; }
  .stat-number { font-size: 1.4rem; }
  .stat-label { font-size: .65rem; }
  .hero-actions .btn { padding: 10px 18px; font-size: .85rem; width: 100%; text-align: center; }
}

/* ---- NEWS TICKER ---- */
@media(max-width:480px) {
  .news-ticker { font-size: .8rem; }
  .ticker-label { font-size: .75rem; padding: 4px 8px; }
}

/* ---- ANNOUNCEMENTS ---- */
@media(max-width:900px) {
  .announcements-layout { grid-template-columns: 1fr; }
  .ann-header-col { text-align: center; padding-bottom: 16px; }
  .ann-tag-legend { justify-content: center; }
}
@media(max-width:480px) {
  .announcements-section { padding: 40px 0; }
  .ann-title { font-size: 1.5rem; }
  .ann-scroll-col { max-height: 360px; }
}

/* ---- DISTRICT MAP ---- */
@media(max-width:480px) {
  .district-map-section { padding: 40px 0; }
  .district-map-title { font-size: 1.4rem; }
  .district-info-panel { padding: 16px; }
  .district-info-name { font-size: 1.1rem; }
  .district-info-row { font-size: .82rem; }
}

/* ---- SERVICES / DOWNLOADS ---- */
@media(max-width:768px) {
  .services-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .downloads-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
}
@media(max-width:480px) {
  .services-grid { grid-template-columns: 1fr; }
  .downloads-grid { grid-template-columns: 1fr; }
  .service-card { padding: 18px 14px; }
  .download-card { padding: 14px; }
}

/* ---- MEDIA GALLERY ---- */
@media(max-width:768px) {
  .media-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .photo-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .media-tabs { flex-wrap: wrap; gap: 6px; }
  .media-tab { padding: 6px 14px; font-size: .85rem; }
}
@media(max-width:480px) {
  .media-grid { grid-template-columns: 1fr; }
  .media-gallery-section { padding: 40px 0; }
  .section-header { flex-direction: column; gap: 12px; text-align: center; }
  .section-title { font-size: 1.4rem; }
}

/* ---- FOOTER ---- */
@media(max-width:768px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 24px; }
  .footer-bottom { flex-direction: column; gap: 8px; text-align: center; }
}
@media(max-width:480px) {
  .footer-grid { grid-template-columns: 1fr; }
  .footer-widget { text-align: center; }
  .footer-social { justify-content: center; }
}

/* ---- INQUIRY CARD ---- */
@media(max-width:480px) {
  .inquiry-card { padding: 20px 16px; border-radius: 12px; }
  .inquiry-card h3 { font-size: 1.1rem; }
  .form-group input, .form-group select { font-size: 1rem; padding: 10px 12px; }
  .btn-search { font-size: .95rem; padding: 12px 18px; }
  .quick-links ul { columns: 1; }
}

/* ---- DISTRICT PAGE ---- */
@media(max-width:600px) {
  .district-page-wrap { padding: 24px 16px 60px; }
  .district-page-hero { padding: 28px 20px; border-radius: 12px; }
  .district-page-hero h1 { font-size: 1.5rem; }
  .district-page-hero::after { display: none; }
  .district-info-cards { grid-template-columns: 1fr; }
  .dist-info-card { padding: 16px; }
  .dist-map-embed { height: 220px; }
}

/* ---- GENERAL CONTAINER ---- */
@media(max-width:480px) {
  .container { padding: 0 14px; }
  .section-header .btn { width: 100%; text-align: center; }
}

/* ---- VIDEO / PHOTO MODALS ---- */
@media(max-width:480px) {
  .video-modal-inner { width: 95vw; }
  .video-modal-embed { height: 52vw; }
  .photo-modal-inner { width: 95vw; }
  #photo-modal-img { max-height: 65vh; }
}

/* ---- SEARCH FORM ---- */
@media(max-width:480px) {
  .search-form { display: flex; gap: 6px; }
  .search-field { flex: 1; min-width: 0; font-size: .9rem; }
  .search-submit { padding: 8px 12px; }
}

/* ---- OVERFLOW PROTECTION ---- */
@media(max-width:768px) {
  .hero-pattern { display: none; }
  .district-map-section::before { display: none; }
}


/* ============================================================
   PAGE LAYOUT — Content + Sidebar Grid (v18 Mobile Fixes)
   ============================================================ */

.page-main-content {
  padding: 60px 0;
}

/* Desktop: 2-column content + sidebar */
.page-content-sidebar-grid {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 40px;
  align-items: start;
}

/* Main content column */
.page-main-col .entry-content {
  font-size: .95rem;
  line-height: 1.8;
  color: var(--text);
}
.page-main-col .entry-content p   { margin-bottom: 1.2em; }
.page-main-col .entry-content img { max-width: 100%; height: auto; border-radius: var(--radius-sm); }
.page-main-col .entry-content h2,
.page-main-col .entry-content h3,
.page-main-col .entry-content h4  { color: var(--primary-dark); margin: 1.4em 0 .6em; }

/* Sidebar widgets */
.sidebar-widget-box { margin-bottom: 20px; }
.sidebar-widget-title {
  font-size: .95rem;
  font-weight: 700;
  color: var(--primary-dark);
  margin-bottom: 14px;
}
.sidebar-ql-item { margin-bottom: 8px; }
.sidebar-ql-link {
  font-size: .84rem;
  color: var(--primary);
  display: flex;
  align-items: center;
  gap: 6px;
}
.sidebar-ql-arrow { color: var(--accent); font-weight: 700; }

/* Helpline card in sidebar */
.sidebar-helpline-card {
  background: var(--primary);
  border-radius: var(--radius-md);
  padding: 20px;
  color: var(--white);
}
.sidebar-helpline-title {
  font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
  font-size: 1rem;
  margin-bottom: 10px;
  color: var(--accent-light);
}
.sidebar-helpline-desc {
  font-size: .82rem;
  color: rgba(255,255,255,.7);
  margin-bottom: 12px;
  line-height: 1.5;
}
.sidebar-helpline-btn {
  font-size: .82rem;
  width: 100%;
  justify-content: center;
  text-align: center;
  white-space: normal;
  word-break: break-word;
}

/* Tablet: stack sidebar below content */
@media (max-width: 900px) {
  .page-content-sidebar-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .page-sidebar-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    align-items: start;
  }
}

/* Mobile: full single column */
@media (max-width: 600px) {
  .page-main-content { padding: 30px 0 40px; }
  .page-content-sidebar-grid { gap: 24px; }
  .page-sidebar-col {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .sidebar-helpline-btn { font-size: .9rem; padding: 12px 16px; }
}

/* WP form fields inside page content — full width on mobile */
@media (max-width: 768px) {
  .page-main-col .entry-content input[type="text"],
  .page-main-col .entry-content input[type="email"],
  .page-main-col .entry-content input[type="tel"],
  .page-main-col .entry-content input[type="number"],
  .page-main-col .entry-content input[type="date"],
  .page-main-col .entry-content input[type="url"],
  .page-main-col .entry-content input[type="password"],
  .page-main-col .entry-content select,
  .page-main-col .entry-content textarea {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
    font-size: 1rem;
  }

  /* Gravity Forms & CF7 full-width on mobile */
  .gfield, .gfield input, .gfield select, .gfield textarea,
  .wpcf7-form-control-wrap, .wpcf7 input[type="text"],
  .wpcf7 input[type="email"], .wpcf7 select, .wpcf7 textarea {
    width: 100% !important;
    max-width: 100% !important;
  }
  .gform_wrapper .gform_fields { grid-template-columns: 1fr !important; }
}


/* ============================================================
   TOPBAR — Mobile Helpline Number Fix (v18)
   ============================================================ */

/* Force topbar to wrap items properly on small screens */
@media (max-width: 600px) {
  .topbar .container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px 12px;
    padding: 6px 14px;
  }
  .topbar-right {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px 12px;
    width: 100%;
  }
  .topbar-contact {
    white-space: nowrap;
    font-size: .78rem;
  }
  .topbar-contact a {
    color: rgba(255,255,255,.9);
    text-decoration: none;
  }
  .topbar-social {
    display: flex;
    align-items: center;
    gap: 6px;
    justify-content: center;
  }
  /* Show helpline on mobile but hide email */
  .topbar-contact:not(.topbar-hide-sm) { display: inline-flex; align-items: center; gap: 4px; }
}

/* Extra small phones */
@media (max-width: 380px) {
  .topbar-contact { font-size: .72rem; }
  .topbar-social-link { width: 24px; height: 24px; }
}


/* ============================================================
   HERO SECTION + COVER INQUIRY — Mobile (v18)
   ============================================================ */

@media (max-width: 768px) {
  .hero-section { padding: 36px 0 28px; }

  /* Stack hero grid: content on top, inquiry card below */
  .hero-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .hero-content { text-align: center; }
  .hero-badge { display: inline-block; margin: 0 auto 12px; }
  .hero-title { font-size: 1.7rem; }
  .hero-desc  { font-size: .9rem; }
  .hero-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
  }
  .hero-actions .btn { width: 100%; max-width: 320px; justify-content: center; }

  /* Inquiry card: full width, clean on mobile */
  .inquiry-card {
    max-width: 100%;
    border-radius: var(--radius-md);
    padding: 20px 16px;
  }
  .inquiry-card h3 { font-size: 1.05rem; }
  .inquiry-card .form-group label  { font-size: .78rem; }
  .inquiry-card .form-group select,
  .inquiry-card .form-group input  {
    width: 100%;
    font-size: 1rem;
    padding: 10px 12px;
  }
  .btn-search {
    width: 100%;
    font-size: .95rem;
    padding: 12px 16px;
    text-align: center;
    justify-content: center;
  }
  .quick-links ul { columns: 1; }
  .quick-links li { margin-bottom: 6px; }

  /* Hero stats: 2x2 grid */
  .hero-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    justify-items: center;
  }
  .stat-item { min-width: unset; width: 100%; }
}

@media (max-width: 480px) {
  .hero-title { font-size: 1.45rem; }
  .hero-desc  { font-size: .85rem; }
  .stat-number { font-size: 1.3rem; }
  .stat-label  { font-size: .62rem; }
}


/* ============================================================
   PWA INSTALL PROMPT MODAL (v18)
   ============================================================ */

#ghh-pwa-prompt {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 99999;
  padding: 0 0 env(safe-area-inset-bottom, 0);
  animation: pwaSlideUp .35s ease;
}
#ghh-pwa-prompt.pwa-visible { display: block; }

@keyframes pwaSlideUp {
  from { transform: translateY(100%); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}

.pwa-prompt-inner {
  background: #fff;
  border-radius: 20px 20px 0 0;
  box-shadow: 0 -4px 32px rgba(0,0,0,.18);
  padding: 24px 20px 28px;
  max-width: 520px;
  margin: 0 auto;
  position: relative;
}

.pwa-prompt-close {
  position: absolute;
  top: 14px;
  right: 16px;
  background: none;
  border: none;
  font-size: 1.3rem;
  color: #999;
  cursor: pointer;
  padding: 4px;
  line-height: 1;
}
.pwa-prompt-close:hover { color: #333; }

.pwa-prompt-header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 14px;
}
.pwa-prompt-icon {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  flex-shrink: 0;
}
.pwa-prompt-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--primary-dark);
  margin-bottom: 2px;
}
.pwa-prompt-subtitle {
  font-size: .8rem;
  color: var(--gray-600);
}

.pwa-prompt-body {
  background: #f0faf5;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 18px;
  font-size: .88rem;
  color: var(--text);
  line-height: 1.55;
  border-left: 3px solid var(--primary-light);
}

.pwa-prompt-actions {
  display: flex;
  gap: 12px;
}
.pwa-btn-later {
  flex: 1;
  padding: 12px 16px;
  border-radius: 10px;
  border: 2px solid var(--gray-200);
  background: #fff;
  color: var(--text-muted);
  font-size: .92rem;
  font-weight: 600;
  cursor: pointer;
  transition: all .2s;
}
.pwa-btn-later:hover { border-color: var(--gray-400); color: var(--text); }
.pwa-btn-install {
  flex: 2;
  padding: 12px 16px;
  border-radius: 10px;
  border: none;
  background: var(--primary);
  color: #fff;
  font-size: .92rem;
  font-weight: 700;
  cursor: pointer;
  transition: background .2s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.pwa-btn-install:hover { background: var(--primary-dark); }

/* Overlay behind prompt */
#ghh-pwa-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.35);
  z-index: 99998;
}
#ghh-pwa-overlay.pwa-visible { display: block; }

/* Desktop: show as centered modal instead */
@media (min-width: 600px) {
  #ghh-pwa-prompt {
    bottom: auto;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 460px;
    padding: 0;
    animation: pwaFadeIn .3s ease;
  }
  #ghh-pwa-prompt.pwa-visible { display: block; }
  .pwa-prompt-inner {
    border-radius: 20px;
    padding: 28px 28px 32px;
  }

  @keyframes pwaFadeIn {
    from { opacity: 0; transform: translate(-50%, -48%); }
    to   { opacity: 1; transform: translate(-50%, -50%); }
  }
}

