/* =========================================================================
   PERFECT MARRY v2.3 — Master Stylesheet (refined palette)
   Palette:  Red #D61F26  ·  Gold #C68A3A  ·  Navy #2F4A7D
   Fonts:    Fraunces (display) · Poppins (body) · Kalam (script)
   Notes:    Mobile-first. Light theme only. Sticky header on all breakpoints.
             Curved bottom-nav on mobile. Dashboard sidebar visible on desktop,
             overlay drawer on mobile. 
   -------------------------------------------------------------------------
   TABLE OF CONTENTS
   Part 1 · Foundation
      1. Design tokens (CSS variables)
      2. Reset & base
      3. Utility classes
      4. Buttons
   Part 2 · Global chrome
      5. Top strip (dark bar above header)
      6. Header (sticky on all breakpoints)
      7. Side drawer (mobile menu)
      8. Hero carousel (home banner)
      9. News ticker
   Part 3 · Home page sections
     10. Why choose us (image + icon rows)
     11. Metrics
     12. Mandala + toran dividers
     13. Sections + category tabs / cards
     14. Metrics section (gradient strip)
   Part 4 · Profile cards & lists
     15. Profile card + compat score + premium ribbon
     16. Profile swiper (horizontal scroll-snap)
     17. Diet badges (veg / nonveg / vegan)
     18. Mobile compact featured
   Part 5 · CMS content
     19. Story cards
     20. Blog cards
     21. Events / pricing / FAQ / timeline
     22. Forms · wizard · OTP
     23. CTA banner
     24. Get-the-app
   Part 6 · Footer & nav chrome
     25. Site footer
     26. Bottom nav (mobile only, curved)
     27. Floating action button
     28. Toast notifications
   Part 7 · App pages
     29. Search results (filter sidebar + grid)
     30. Profile page (detail view)
     31. Dashboard (desktop sidebar + mobile drawer)
     32. Chat / messages
     33. Page hero (CMS pages)
     34. Scroll-reveal animation
     35. Responsive breakpoints
     36. Scrollbar
     37. Legacy compatibility (older class names)
   Part 8 · Page-specific (38.1 – 38.17)
     38.1  Auth pages (login / register / forgot)
     38.2  Register wizard
     38.3  Dashboard (main page — old structure)
     38.4  Profile page (profile.html)
     38.5  Search results
     38.6  Messages / chat (messages.html)
     38.7  Diet labels (standalone .veg / .non-veg)
     38.8  FAQ & blog categories
     38.9  Events page
     38.10 About page timeline
     38.11 Pricing / feature lists
     38.12 Coming soon (notify form)
     38.13 Careers job list
     38.14 Legal pages (privacy / terms / refund)
     38.15 Hero variants (.hero / .has-hero)
     38.16 Misc utility / fixes
     38.17 Final coverage (remaining classes)
   Part 9 · Layout patches (39.x, 40.x, 41.x)
     39.1  Register wizard step visibility
     39.2  Login social buttons
     39.3  Search-results row/col layout
     39.4  Profile-hero card-styling removal
     39.5  Hero section wrapper
     39.7  Messages dash-main flex
     39.8  Link underline cleanup
     40.x  Hero two-column · auth buttons · gallery · contact gate · lightbox · completion-ring · chat compose · sidebar auto-scroll · hero responsive
     41.x  Bottom-nav middle circle · hero mobile · metrics · scan-to-download · page-hero heading · interests/shortlist grids · safety-tips · dashboard · form-section headings · messages gap · NRI grid · payment coupon · search-results accordion · manage photos · video-profile · contact · report-misuse · cat-panel · legacy alias
   Part 10 · Brand mark & polish (42.x – 50.x)
     42.x  Image logo · hero carousel red backdrop · sticky mobile header · bottom-nav · page-hero contrast · footer profiles-by · view-all rows · directory pages · profile meta · blog-post banner · astrology · search-results grid · mobile filter modal · logout modal · payment · report-misuse · mobile hero gap · typography tweaks
     43.x  Grid-view mobile 2-per-row
     44.x  Mobile filter modal slide-in · desktop filter sidebar · desktop list-view innovative cards · body scroll-lock
     45.x  Filter modal drawer · sidebar buttons · view-toggle · 4-corner card badges · list-view overrides
     46.x  Mobile filter drawer · badge 4-corner layout · list-view overrides
     47.x  Premium ribbon clipping · filter sidebar scroll
     48.x  Stat tile grid · tile · icon · color rotation · label · value · tap feedback · neutralize old rules
     49.x  Mobile filter drawer · header gradient · body+foot layout · desktop sidebar buttons · grid/list pill toggle · mobile toolbar · 4-corner badge · reduced-motion · scroll-lock
     50.x  Sticky header · bottom nav curved notch · content padding · reduced-motion
   Part 11 · List-card system & profile variants (53.x – 57.x)
     53.x  List card container · header bar · body · photo · data grid · badges · action bar · responsive
     54.x  Tier ribbon · tier card · tier badge · field-label icons · header icons · grid-view ribbons
     55.x  Grid member-id · list header · chat-now blink · last-login · mobile list view
     56.x  Profile variants (shared, A Story, B Timeline, C Orbits, D Magazine, mobile, "My Profile" cards)
     57.x  Partner profile view (profile-view.html) — demo bar, hero, photo states, thumbs, match bar, name col, stat cards, details divider, section cards, horoscope yantra, similar profiles, lightbox, mobile

   Patches at file end (appended over time):
   · Press media tabs · advertise.html · upload-id.html ·
     Login button styling · Desktop nav centering ·
     Filter sidebar tinted sections · Toggle-hide rules
   ========================================================================= */


/* ---------- 1. DESIGN TOKENS ---------- */
:root {
  /* ===== Brand colors (Perfect Marry refined palette) ===== */
  /* Legacy variable names (kept for backwards compatibility — values match new brand) */
  --green:         #D61F26;   /* maps to Royal Red */
  --green-dark:    #B71C22;
  --green-light:   #fde9ea;
  --orange:        #C68A3A;   /* maps to Warm Gold */
  --orange-dark:   #A8742A;
  --orange-light:  #f5e8d4;
  --gold:          #C68A3A;
  --gold-dark:     #A8742A;
  --gold-light:    #f5e8d4;
  --rose:          #D61F26;
  --navy:          #2F4A7D;
  --navy-dark:     #1f3257;

  /* ===== Brand-name aliases (prefer these going forward) ===== */
  --brand-red:        #D61F26;   /* Royal Red — primary CTAs, logo */
  --brand-red-hover:  #B71C22;   /* Darker Red — hover state */
  --brand-gold:       #C68A3A;   /* Warm Gold — premium feel, icons */
  --brand-gold-dark:  #A8742A;   /* Dark Gold Accent — dividers, hover */
  --brand-blue:       #2F4A7D;   /* Deep Blue — taglines, links */

  /* ===== Gradients (premium look — hero, buttons, app headers) ===== */
  --grad-red:     linear-gradient(135deg, #D61F26 0%, #F04A50 100%);
  --grad-gold:    linear-gradient(135deg, #C68A3A 0%, #E5B76E 100%);
  --grad-luxury:  linear-gradient(135deg, #D61F26 0%, #C68A3A 100%);

  /* ===== Neutrals (per UI spec) ===== */
  --ink:           #333333;   /* Headings */
  --slate:         #666666;   /* Subtext */
  --muted:         #8a94a6;
  --line:          #DDDDDD;   /* Light Grey borders */
  --line-soft:     #f0f1f4;

  /* ===== Surfaces ===== */
  --bg-page:       #FFFFFF;   /* Pure White */
  --bg-card:       #FFFFFF;
  --bg-soft:       #F2F2F2;   /* Soft White (sections) */

  /* ===== Semantic ===== */
  --danger:        #d32f2f;
  --warning:       #f9a825;
  --info:          #1976d2;
  --success:       #2e7d32;

  /* ===== Typography ===== */
  --font-display:  'Fraunces', Georgia, serif;
  --font-body:     'Poppins', system-ui, -apple-system, sans-serif;
  --font-script:   'Kalam', cursive;

  /* ===== Radius ===== */
  --r-sm:          8px;
  --r-md:          14px;
  --r-lg:          20px;
  --r-xl:          28px;

  /* ===== Shadows ===== */
  --sh-sm:         0 2px 6px rgba(0, 0, 0, 0.06);
  --sh-md:         0 6px 18px rgba(0, 0, 0, 0.08);
  --sh-lg:         0 12px 32px rgba(0, 0, 0, 0.12);
  --sh-green:      0 6px 20px rgba(214, 31, 38, 0.28);   /* red shadow */
  --sh-orange:     0 6px 20px rgba(198, 138, 58, 0.28);  /* gold shadow */
  --sh-red:        0 6px 20px rgba(214, 31, 38, 0.28);
  --sh-gold:       0 6px 20px rgba(198, 138, 58, 0.28);
  --sh-blue:       0 6px 20px rgba(47, 74, 125, 0.28);

  /* ===== Motion ===== */
  --t-fast:        0.2s ease;
  --t-med:         0.35s ease;
  --ease:          cubic-bezier(0.4, 0, 0.2, 1);
}


/* ---------- 2. RESET & BASE ---------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  /* `overflow-x: clip` prevents horizontal scroll WITHOUT killing position:sticky on descendants.
     Previous value `hidden` was silently downgrading .site-header from sticky to static. */
  overflow-x: clip;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--ink);
  background: var(--bg-page);
  line-height: 1.6;
  /* Same as html — use clip, not hidden, so descendant sticky elements work */
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.22;
  color: var(--ink);
  margin: 0 0 10px;
}

a {
  /* Per brand spec: links use Deep Blue for trust/balance */
  color: var(--brand-blue);
  text-decoration: none;
  transition: color var(--t-fast);
}
a:hover {
  color: var(--brand-red);
}

img {
  max-width: 100%;
  display: block;
}

button {
  font-family: inherit;
  cursor: pointer;
}


/* ---------- 3. UTILITY CLASSES ---------- */
.text-green   { color: var(--green-dark) !important; }
.text-orange  { color: var(--orange-dark) !important; }
.text-gold    { color: var(--gold-dark) !important; }
.bg-soft      { background: var(--bg-soft) !important; }

.script-text {
  font-family: var(--font-script);
  font-weight: 700;
  color: var(--orange);
}

.section-title {
  text-align: center;
  margin-bottom: 34px;
  position: relative;
  z-index: 2;
  padding: 0 16px;
}
.section-title .hl-green  { color: var(--green-dark); font-style: italic; }
.section-title .hl-orange { color: var(--orange);     font-style: italic; }

.section {
  padding: 56px 0;
  position: relative;
}

.mandala-bg {
  position: relative;
  overflow: hidden;
}
.mandala-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 10% 20%, rgba(198, 138, 58, 0.08) 0, transparent 35%),
    radial-gradient(circle at 90% 80%, rgba(214, 31, 38, 0.08) 0, transparent 40%);
  pointer-events: none;
  z-index: 0;
}
.mandala-bg > * {
  position: relative;
  z-index: 1;
}

.toran-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 12px 0 28px;
  color: var(--gold);
}
.toran-divider::before,
.toran-divider::after {
  content: '';
  flex: 0 0 50px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
.toran-divider i {
  font-size: 18px;
  color: var(--orange);
}


/* ---------- 4. BUTTONS ---------- */
.btn {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 14px;
  border-radius: var(--r-sm);
  border: none;
  padding: 11px 22px;
  transition: all var(--t-fast);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
}

.btn-green {
  background: var(--green);
  color: #fff;
  box-shadow: var(--sh-green);
}
.btn-green:hover {
  background: var(--green-dark);
  color: #fff;
  transform: translateY(-2px);
}

.btn-orange {
  background: var(--orange);
  color: #fff;
  box-shadow: var(--sh-orange);
}
.btn-orange:hover {
  background: var(--orange-dark);
  color: #fff;
  transform: translateY(-2px);
}

.btn-gold {
  background: linear-gradient(135deg, var(--gold) 0%, var(--gold-dark) 100%);
  color: #fff;
  box-shadow: 0 6px 16px rgba(198, 138, 58, 0.35);
}
.btn-gold:hover {
  color: #fff;
  filter: brightness(1.06);
  transform: translateY(-2px);
}

/* Perfect Marry brand-name aliases — prefer these in new markup.
   Old .btn-green / .btn-orange continue to work (they map to the same colors). */
.btn-red,
.btn-primary-brand {
  background: var(--brand-red);
  color: #fff;
  box-shadow: var(--sh-red);
}
.btn-red:hover,
.btn-primary-brand:hover {
  background: var(--brand-red-hover);
  color: #fff;
  transform: translateY(-2px);
}
.btn-navy,
.btn-blue {
  background: var(--brand-blue);
  color: #fff;
  box-shadow: var(--sh-blue);
}
.btn-navy:hover,
.btn-blue:hover {
  background: var(--navy-dark);
  color: #fff;
  transform: translateY(-2px);
}

/* ===== Gradient buttons (premium feel — hero, CTAs) ===== */
.btn-grad-red {
  background: var(--grad-red);
  color: #fff;
  box-shadow: var(--sh-red);
  border: none;
}
.btn-grad-red:hover {
  filter: brightness(1.06);
  color: #fff;
  transform: translateY(-2px);
}
.btn-grad-gold {
  background: var(--grad-gold);
  color: #fff;
  box-shadow: var(--sh-gold);
  border: none;
}
.btn-grad-gold:hover {
  filter: brightness(1.06);
  color: #fff;
  transform: translateY(-2px);
}
.btn-grad-luxury {
  background: var(--grad-luxury);
  color: #fff;
  box-shadow: 0 6px 20px rgba(214, 31, 38, 0.20);
  border: none;
}
.btn-grad-luxury:hover {
  filter: brightness(1.06);
  color: #fff;
  transform: translateY(-2px);
}

/* ===== Background utilities (per UI Usage Guide) ===== */
.bg-soft-white  { background: var(--bg-soft) !important; }
.bg-pure-white  { background: #FFFFFF !important; }
.bg-grad-red    { background: var(--grad-red) !important; }
.bg-grad-gold   { background: var(--grad-gold) !important; }
.bg-grad-luxury { background: var(--grad-luxury) !important; }

/* ===== Text utilities ===== */
.text-brand-red  { color: var(--brand-red) !important; }
.text-brand-gold { color: var(--brand-gold) !important; }
.text-brand-blue { color: var(--brand-blue) !important; }
.text-heading    { color: var(--ink) !important; }    /* #333333 */
.text-subtext    { color: var(--slate) !important; }  /* #666666 */

.btn-outline-green {
  background: transparent;
  color: var(--green-dark);
  border: 1.5px solid var(--green);
}
.btn-outline-green:hover {
  background: var(--green);
  color: #fff;
}

.btn-outline-orange {
  background: transparent;
  color: var(--orange-dark);
  border: 1.5px solid var(--orange);
}
.btn-outline-orange:hover {
  background: var(--orange);
  color: #fff;
}

.btn-ghost {
  background: transparent;
  color: var(--ink);
}
.btn-ghost:hover {
  background: var(--bg-soft);
  color: var(--green-dark);
}

/* ---------- 5. TOP STRIP (dark bar above header) ---------- */
.scroll-ticker{overflow:hidden;background:linear-gradient(90deg,#c79a3f,#e0c074,#c79a3f);border-top:1px solid rgba(255,255,255,.25);border-bottom:1px solid rgba(0,0,0,.06);position:relative}
.scroll-ticker-track{display:flex;width:max-content;animation:pmTicker 32s linear infinite}
.scroll-ticker:hover .scroll-ticker-track{animation-play-state:paused}
.scroll-ticker-group{display:flex;flex-shrink:0}
.scroll-ticker-item{display:inline-flex;align-items:center;gap:7px;padding:9px 26px;font-size:13.5px;font-weight:600;color:#fff;white-space:nowrap;letter-spacing:.01em}
.scroll-ticker-item::after{content:"";width:6px;height:6px;margin-left:26px;border-radius:2px;transform:rotate(45deg);background:rgba(255,255,255,.65)}
.scroll-ticker-item i{font-size:14px}
@keyframes pmTicker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){.scroll-ticker-track{animation:none}.scroll-ticker{overflow-x:auto}}
.top-strip {
  background: var(--ink);
  color: #dfe2e8;
  font-size: 12px;
  padding: 7px 0;
  letter-spacing: 0.03em;
}
/* Apply flex to the container-fluid the HTML actually uses */
.top-strip .container-fluid,
.top-strip .strip-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.top-strip i { color: var(--gold); margin-right: 4px; }
.top-strip a {
  color: #dfe2e8;
  margin-left: 14px;
  font-size: 12px;
  transition: color var(--t-fast);
}
.top-strip a:first-of-type { margin-left: 0; }
.top-strip a:hover { color: var(--gold); }


/* ---------- 6. HEADER (sticky on ALL breakpoints) ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: #ffffff;
  border-bottom: 1px solid var(--line);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  transition: box-shadow var(--t-fast);
}
.site-header.scrolled {
  box-shadow: var(--sh-md);
}

.site-header .navbar {
  min-height: 70px;
  padding: 10px 0;
}

.brand-logo {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 700;
  color: var(--green-dark) !important;
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}
.brand-logo .logo-mark {
  width: 40px;
  height: 40px;
  background: linear-gradient(135deg, var(--orange) 0%, var(--green) 100%);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 700;
  box-shadow: var(--sh-orange);
  flex-shrink: 0;
}
.brand-logo small {
  font-family: var(--font-body);
  font-size: 10px;
  letter-spacing: 0.22em;
  color: var(--gold-dark);
  display: block;
  line-height: 1;
  margin-top: 3px;
  font-weight: 500;
  text-transform: uppercase;
}

.navbar .nav-link {
  color: var(--ink) !important;
  font-weight: 500;
  font-size: 14px;
  padding: 8px 14px !important;
  position: relative;
  transition: color var(--t-fast);
}
.navbar .nav-link:hover {
  color: var(--green-dark) !important;
}
.navbar .nav-link.active::after {
  content: '';
  position: absolute;
  bottom: 2px;
  left: 14px;
  right: 14px;
  height: 2px;
  background: var(--orange);
  border-radius: 2px;
}

.icon-btn {
  background: transparent;
  border: 1px solid var(--line);
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink);
  transition: all var(--t-fast);
  position: relative;
  flex-shrink: 0;
}
.icon-btn:hover {
  background: var(--green-light);
  border-color: var(--green);
  color: var(--green-dark);
}
.icon-btn .dot {
  position: absolute;
  top: 7px;
  right: 9px;
  width: 8px;
  height: 8px;
  background: var(--orange);
  border-radius: 50%;
  border: 2px solid #fff;
}

.hamburger-btn {
  background: transparent;
  border: none;
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink);
  font-size: 24px;
}


/* ---------- 7. SIDE DRAWER (mobile menu) ---------- */
.drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  visibility: hidden;
  transition: all var(--t-med);
  z-index: 1998;
}
.drawer-backdrop.open {
  opacity: 1;
  visibility: visible;
}

.side-drawer {
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  width: min(320px, 85vw);
  background: #fff;
  z-index: 1999;
  transform: translateX(-100%);
  transition: transform var(--t-med);
  display: flex;
  flex-direction: column;
  box-shadow: var(--sh-lg);
}
.side-drawer.open {
  transform: translateX(0);
}

.drawer-head {
  background: linear-gradient(135deg, var(--green) 0%, var(--green-dark) 100%);
  color: #fff;
  padding: 26px 22px;
  position: relative;
}
.drawer-head h5 {
  color: #fff;
  font-size: 17px;
  margin-bottom: 4px;
}
.drawer-head p {
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  margin: 0;
}
.drawer-close {
  position: absolute;
  top: 12px;
  right: 12px;
  background: rgba(255, 255, 255, 0.2);
  border: none;
  color: #fff;
  width: 34px;
  height: 34px;
  border-radius: 50%;
}

.drawer-body {
  flex: 1;
  overflow-y: auto;
  padding: 10px 0;
}
.drawer-section-label {
  padding: 14px 22px 6px;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
}
.drawer-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 22px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 500;
  transition: all var(--t-fast);
  border-left: 3px solid transparent;
}
.drawer-item:hover {
  background: var(--green-light);
  border-left-color: var(--green);
  color: var(--green-dark);
  padding-left: 26px;
}
.drawer-item i {
  width: 20px;
  color: var(--orange);
  font-size: 18px;
}


/* ---------- 8. HERO CAROUSEL (home banner) ---------- */
.hero-carousel {
  position: relative;
  overflow: hidden;
  /* Solid dark navy — matches the .hero-slide dark overlay so during slide
     transitions any momentarily-revealed area blends seamlessly with the
     slide images and overlay (no red flash, no white gap). */
  background: #141826;
}

.hero-slide {
  position: relative;
  min-height: 520px;
  color: #fff;
  display: flex;
  align-items: center;
  padding: 40px 6%;
  background-size: cover;
  background-position: center;
}
.hero-slide::before {
  content: '';
  position: absolute;
  inset: 0;
  /* Dark overlay (left dark for text readability → right transparent for image visibility).
     Neutral dark works with any photo — no color tint conflict with slide images. */
  background: linear-gradient(100deg,
    rgba(20, 24, 38, 0.78) 0%,
    rgba(20, 24, 38, 0.55) 45%,
    rgba(20, 24, 38, 0.15) 100%);
}
.hero-slide .container,
.hero-slide .hero-content {
  position: relative;
  z-index: 2;
  max-width: 1100px;
  width: 100%;
  margin: 0 auto;
}
/* Hero search form inside the hero — wrap gracefully on smaller viewports */
.hero-slide .hero-form {
  margin-top: 18px;
  max-width: 900px;
}
@media (max-width: 991px) {
  .hero-slide { padding: 36px 24px; }
  .hero-slide .hero-form {
    grid-template-columns: 1fr 1fr;
  }
  .hero-slide .hero-form > button { grid-column: span 2; }
}
@media (max-width: 575px) {
  .hero-slide { padding: 28px 18px; }
  .hero-slide .hero-form { grid-template-columns: 1fr; }
  .hero-slide .hero-form > button { grid-column: 1; }
}

.hero-tagline {
  font-family: var(--font-script);
  color: var(--gold);
  font-size: 26px;
  margin-bottom: 4px;
}
.hero-title {
  font-size: clamp(32px, 5.5vw, 54px);
  font-weight: 700;
  color: #fff;
  line-height: 1.1;
  margin-bottom: 16px;
  max-width: 640px;
}
.hero-title em {
  font-style: italic;
  color: var(--gold);
}
.hero-sub {
  color: rgba(255, 255, 255, 0.92);
  font-size: 16px;
  max-width: 520px;
  margin-bottom: 22px;
}

.hero-stats {
  display: flex;
  gap: 28px;
  margin-top: 24px;
  flex-wrap: wrap;
}
.hero-stats .stat strong {
  display: block;
  font-family: var(--font-display);
  font-size: 26px;
  color: var(--gold);
  font-weight: 700;
}
.hero-stats .stat span {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.82);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.hero-register-card {
  background: #fff;
  border-radius: var(--r-lg);
  padding: 22px;
  box-shadow: var(--sh-lg);
  position: relative;
  overflow: hidden;
  color: var(--ink);
}
.hero-register-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--green), var(--orange), var(--gold));
}
.hero-register-card h3 {
  font-size: 19px;
  margin-bottom: 4px;
  color: var(--ink);
}
.hero-register-card .tag-line {
  color: var(--slate);
  font-size: 13px;
  margin-bottom: 16px;
}
.hero-register-card .form-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--slate);
  margin-bottom: 5px;
}
.hero-register-card .form-select,
.hero-register-card .form-control {
  background: var(--bg-soft);
  border: 1px solid var(--line);
  font-size: 14px;
  padding: 10px 14px;
  color: var(--ink);
  border-radius: var(--r-sm);
}
.hero-register-card .form-select:focus,
.hero-register-card .form-control:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(214, 31, 38, 0.15);
  outline: none;
}

.hero-carousel .carousel-control-prev,
.hero-carousel .carousel-control-next {
  width: 48px;
  height: 48px;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.95);
  border-radius: 50%;
  margin: 0 16px;
  opacity: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  transition: all var(--t-fast);
}
.hero-carousel .carousel-control-prev:hover,
.hero-carousel .carousel-control-next:hover {
  background: #fff;
  transform: translateY(-50%) scale(1.08);
}
.hero-carousel .carousel-control-prev { left: 0; }
.hero-carousel .carousel-control-next { right: 0; }

.hero-carousel .carousel-control-prev-icon,
.hero-carousel .carousel-control-next-icon {
  width: 20px;
  height: 20px;
  background: none;
  position: relative;
}
.hero-carousel .carousel-control-prev-icon::before,
.hero-carousel .carousel-control-next-icon::before {
  content: '\F284';
  font-family: 'bootstrap-icons';
  color: var(--green-dark);
  font-size: 22px;
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
}
.hero-carousel .carousel-control-next-icon::before {
  content: '\F285';
}

.hero-carousel .carousel-indicators {
  bottom: 16px;
  margin: 0 auto;
}
.hero-carousel .carousel-indicators button {
  width: 10px !important;
  height: 10px !important;
  border-radius: 50%;
  margin: 0 4px;
  border: 2px solid #fff;
  background: rgba(255, 255, 255, 0.4);
  opacity: 1;
}
.hero-carousel .carousel-indicators .active {
  background: #fff;
  width: 28px !important;
  border-radius: 5px;
}


/* ---------- 9. NEWS TICKER ---------- */
.news-ticker {
  background: var(--ink);
  color: #fff;
  padding: 10px 0;
  overflow: hidden;
}
.news-ticker .ticker-inner {
  display: flex;
  align-items: center;
}
.news-ticker .ticker-label {
  background: var(--orange);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.15em;
  padding: 5px 12px;
  border-radius: var(--r-sm);
  margin-right: 16px;
  text-transform: uppercase;
  flex-shrink: 0;
}
.ticker-wrap {
  flex: 1;
  overflow: hidden;
}
.ticker-track {
  display: flex;
  gap: 50px;
  white-space: nowrap;
  animation: ticker 40s linear infinite;
  font-size: 14px;
}
.ticker-track span::before {
  content: '◆';
  color: var(--gold);
  margin-right: 10px;
}
.news-ticker:hover .ticker-track {
  animation-play-state: paused;
}
@keyframes ticker {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}


/* ---------- 10. WHY CHOOSE US (image + icon rows) ---------- */
.why-img {
  position: relative;
  isolation: isolate;
  padding: 18px;
}
.why-img::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 90px;
  height: 90px;
  border: 2px solid var(--gold);
  border-radius: var(--r-md);
  z-index: 0;
}
.why-img::after {
  content: '';
  position: absolute;
  bottom: 0;
  right: 0;
  width: 120px;
  height: 120px;
  border: 2px solid var(--orange);
  border-radius: var(--r-md);
  z-index: 0;
}
.why-img img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: var(--r-lg);
  box-shadow: var(--sh-lg);
  position: relative;
  z-index: 1;
}
.why-img .why-badge {
  position: absolute;
  bottom: 36px;
  left: 36px;
  background: #fff;
  padding: 10px 16px;
  border-radius: var(--r-md);
  box-shadow: var(--sh-md);
  display: flex;
  align-items: center;
  gap: 10px;
  z-index: 2;
}
.why-img .why-badge i {
  font-size: 22px;
  color: var(--green);
}
.why-img .why-badge strong {
  display: block;
  font-size: 14px;
  color: var(--ink);
}
.why-img .why-badge span {
  font-size: 12px;
  color: var(--slate);
}

.why-point {
  display: flex;
  gap: 16px;
  margin-bottom: 22px;
  align-items: flex-start;
}
.why-point .wp-icon {
  flex-shrink: 0;
  width: 52px;
  height: 52px;
  border-radius: var(--r-md);
  background: var(--green-light);
  color: var(--green-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  transition: all var(--t-fast);
}
.why-point:nth-child(even) .wp-icon {
  background: var(--orange-light);
  color: var(--orange-dark);
}
.why-point:hover .wp-icon {
  transform: rotate(-6deg) scale(1.06);
}
.why-point h5 {
  font-size: 17px;
  margin-bottom: 4px;
  color: var(--ink);
}
.why-point p {
  font-size: 14px;
  color: var(--slate);
  margin: 0;
}

.why-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 26px 22px;
  text-align: center;
  height: 100%;
  transition: all var(--t-fast);
}
.why-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-md);
  border-color: var(--green);
}
.why-card .why-icon {
  width: 62px;
  height: 62px;
  border-radius: 50%;
  background: var(--green-light);
  color: var(--green-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  margin-bottom: 14px;
}
.why-card h5 {
  font-size: 17px;
  margin-bottom: 8px;
}


/* ---------- 11. METRICS ---------- */
.metric-card {
  text-align: center;
  padding: 24px 12px;
}
.metric-card .metric-num {
  font-family: var(--font-display);
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 700;
  color: var(--green-dark);
  line-height: 1;
  margin-bottom: 4px;
}
.metric-card .metric-label {
  font-size: 12px;
  color: var(--slate);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 500;
}


/* ---------- 12. MANDALA + TORAN DIVIDERS ---------- */
.mandala-bg {
  position: relative;
  overflow: hidden;
}
.mandala-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 10% 20%, rgba(198, 138, 58, 0.08) 0, transparent 35%),
    radial-gradient(circle at 90% 80%, rgba(214, 31, 38, 0.08) 0, transparent 40%),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'><g fill='none' stroke='%23C68A3A' stroke-width='0.6' opacity='0.18'><circle cx='90' cy='90' r='60'/><circle cx='90' cy='90' r='40'/><circle cx='90' cy='90' r='20'/><path d='M90 30 L90 150 M30 90 L150 90 M48 48 L132 132 M132 48 L48 132'/><circle cx='90' cy='30' r='4'/><circle cx='90' cy='150' r='4'/><circle cx='30' cy='90' r='4'/><circle cx='150' cy='90' r='4'/></g></svg>");
  background-size: auto, auto, 180px 180px;
  background-repeat: no-repeat, no-repeat, repeat;
  pointer-events: none;
  z-index: 0;
}
.mandala-bg > * { position: relative; z-index: 1; }

.toran-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 10px 0 26px;
}
.toran-divider::before,
.toran-divider::after {
  content: '';
  flex: 0 0 60px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
.toran-divider i { font-size: 20px; color: var(--orange); }

/* Decorative divider (gradient bar under section titles) */
.divider {
  display: block;
  width: 80px;
  height: 3px;
  margin: 10px auto 14px;
  background: linear-gradient(90deg, var(--green), var(--orange), var(--gold));
  border-radius: 3px;
}

/* Section title highlight spans */
.hl-green  { color: var(--green-dark); }
.hl-orange { color: var(--orange); }
.hl-gold   { color: var(--gold-dark); }


/* ---------- 13. SECTIONS + CATEGORY TABS/CARDS ---------- */
.cat-tabs {
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 28px;
}
.cat-tab {
  background: #fff;
  border: 1px solid var(--line);
  padding: 9px 18px;
  border-radius: 50px;
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  cursor: pointer;
  transition: all var(--t-fast);
}
.cat-tab:hover { border-color: var(--green); color: var(--green-dark); }
.cat-tab.active {
  background: var(--green);
  color: #fff;
  border-color: var(--green);
  box-shadow: var(--sh-green);
}

.cat-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
@media (min-width: 576px) { .cat-grid { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 992px) { .cat-grid { grid-template-columns: repeat(8, 1fr); } }

.cat-item {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 20px 10px;
  text-align: center;
  text-decoration: none;
  color: var(--ink);
  transition: all var(--t-fast);
  position: relative;
  display: block;
}
.cat-item:hover {
  transform: translateY(-4px);
  border-color: var(--green);
  box-shadow: var(--sh-md);
  color: var(--ink);
}
.cat-item i {
  font-size: 28px;
  color: var(--orange);
  display: block;
  margin-bottom: 8px;
}
.cat-item .cat-name  { font-weight: 600; font-size: 14px; margin-bottom: 2px; }
.cat-item .cat-count { font-size: 12px; color: var(--muted); }


/* ---------- 14. METRICS SECTION (gradient strip) ---------- */
/* =========================================================
   METRICS SECTION — Variant A "Hero Numbers"
   Big serif numbers · floating glass icon orb above ·
   uppercase tracked label · accent bar
   ========================================================= */
.metrics-section {
  background:
    radial-gradient(800px 400px at 80% 0%, rgba(255, 255, 255, 0.08), transparent 60%),
    radial-gradient(600px 300px at 10% 100%, rgba(255, 255, 255, 0.06), transparent 60%),
    linear-gradient(135deg, var(--brand-red) 0%, var(--brand-gold-dark) 60%, var(--brand-gold) 100%);
  color: #fff;
  padding: 80px 0 90px;
  position: relative;
  overflow: hidden;
}
.metrics-section::before {
  content: '';
  position: absolute;
  top: -120px; right: -120px;
  width: 420px; height: 420px;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.08), transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.metrics-section::after {
  content: '';
  position: absolute;
  bottom: -160px; left: -120px;
  width: 420px; height: 420px;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.06), transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

/* Card layout */
.metrics-section .metric-card {
  text-align: center;
  color: #fff;
  position: relative;
  padding: 14px 8px;
}

/* Floating glass-morphism icon orb */
.metrics-section .m-icon {
  width: 60px;
  height: 60px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1.5px solid rgba(255, 255, 255, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  transition: transform 0.4s var(--ease), background 0.4s ease;
}
.metrics-section .m-icon svg {
  width: 30px;
  height: 30px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.metrics-section .metric-card:hover .m-icon {
  transform: translateY(-4px) scale(1.05);
  background: rgba(255, 255, 255, 0.22);
}

/* Hero serif numbers */
.metrics-section .m-num {
  font-family: var(--font-display);
  font-size: clamp(40px, 5vw, 64px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.04em;
  color: #fff;
  text-shadow: 0 4px 24px rgba(0, 0, 0, 0.18);
}

/* Uppercase label */
.metrics-section .m-label {
  font-size: 14px;
  margin-top: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.92);
  font-family: var(--font-body);
}

/* White accent bar below label */
.metrics-section .m-bar {
  width: 32px;
  height: 3px;
  background: rgba(255, 255, 255, 0.65);
  border-radius: 3px;
  margin: 14px auto 0;
  transition: width 0.4s var(--ease), background 0.4s ease;
}
.metrics-section .metric-card:hover .m-bar {
  width: 56px;
  background: #fff;
}

/* Heading block */
.metrics-section .metrics-heading {
  text-align: center;
  color: #fff;
  margin-bottom: 50px;
}
.metrics-section .metrics-heading .script-text {
  color: var(--gold-light);
  display: block;
  font-size: 18px;
  margin-bottom: 8px;
  font-style: italic;
  letter-spacing: 0.04em;
}
.metrics-section .metrics-heading h2 {
  color: #fff;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(24px, 4vw, 36px);
  margin-bottom: 8px;
  letter-spacing: -0.02em;
}
.metrics-section .metrics-heading p {
  color: rgba(255, 255, 255, 0.88);
  font-size: 15px;
  margin: 0;
}

/* Mobile tweaks */
@media (max-width: 767.98px) {
  .metrics-section { padding: 60px 0 70px; }
  .metrics-section .metrics-heading { margin-bottom: 36px; }
  .metrics-section .m-icon { width: 52px; height: 52px; margin-bottom: 12px; }
  .metrics-section .m-icon svg { width: 26px; height: 26px; }
  .metrics-section .m-num { font-size: 38px; }
  .metrics-section .m-label { font-size: 12px; letter-spacing: 0.1em; }
  .metrics-section .m-bar { width: 26px; margin-top: 10px; }
}


/* ---------- 15. PROFILE CARD + COMPAT SCORE + PREMIUM RIBBON ---------- */
.profile-card {
  background: #fff;
  border-radius: var(--r-md);
  overflow: hidden;
  box-shadow: var(--sh-sm);
  border: 1px solid var(--line);
  transition: all var(--t-med);
  height: 100%;
  display: flex;
  flex-direction: column;
  position: relative;
  text-decoration: none;
  color: inherit;
}
.profile-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--sh-lg);
  color: inherit;
  text-decoration: none;
}
.profile-card.premium {
  border: 1.5px solid var(--gold);
  box-shadow: 0 4px 16px rgba(198, 138, 58, 0.18);
}

.profile-card .pc-img {
  position: relative;
  aspect-ratio: 1 / 1.08;
  overflow: hidden;
  background: var(--bg-soft);
}
.profile-card .pc-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--t-med);
}
.profile-card:hover .pc-img img { transform: scale(1.06); }
/* No-photo placeholder for profile cards (initials on a soft gradient) so a
   card never shows a stock face for a member who hasn't uploaded a photo. */
.profile-card .pc-img.no-photo {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--green-light, #eef8fb), var(--bg-soft, #fff7f0));
}
.profile-card .pc-img.no-photo .pc-ph-avatar {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 46px;
  font-weight: 700;
  color: var(--muted, #8a94a6);
  opacity: 0.55;
}
/* Plan profile-view quota note on the profile-view page. */
.pv-quota-note {
  margin: 14px 0 4px;
  padding: 8px 14px;
  background: var(--bg-soft, #fff7f0);
  border: 1px solid #e4d3b6;
  border-radius: 10px;
  font-size: 13px;
  color: #6b5b3e;
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.pv-quota-note a { color: var(--pm-red, #D61F26); font-weight: 600; text-decoration: none; }
/* Empty state for the search results grid. */
.sr-empty {
  text-align: center;
  padding: 48px 20px;
  background: var(--bg-soft, #fff7f0);
  border: 1px dashed #e4d3b6;
  border-radius: 14px;
}
.sr-empty > i { font-size: 40px; color: var(--muted, #8a94a6); opacity: 0.6; }
.sr-empty h5 { margin: 14px 0 6px; font-weight: 700; }
.sr-empty p { color: var(--muted, #8a94a6); margin-bottom: 18px; }

.verified-badge {
  position: absolute;
  top: 10px;
  right: 10px;
  background: var(--info);
  color: #fff;
  font-size: 10px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 20px;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  z-index: 2;
}
.online-dot {
  position: absolute;
  top: 12px;
  left: 12px;
  width: 10px;
  height: 10px;
  background: var(--green);
  border-radius: 50%;
  border: 2px solid #fff;
  box-shadow: 0 0 0 3px rgba(214, 31, 38, 0.25);
  z-index: 2;
}
.compat-score {
  position: absolute;
  bottom: 10px;
  right: 10px;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(6px);
  color: var(--green-dark);
  font-size: 11px;
  font-weight: 700;
  padding: 4px 9px;
  border-radius: 20px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 3px;
}
.compat-score i { color: var(--orange); }

.premium-ribbon {
  position: absolute;
  top: 12px;
  left: -30px;
  background: linear-gradient(135deg, var(--gold), var(--gold-dark));
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.15em;
  padding: 4px 32px;
  transform: rotate(-45deg);
  z-index: 3;
  box-shadow: var(--sh-sm);
}

.profile-card .pc-body {
  padding: 14px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.profile-card .pc-name {
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 2px;
}
.profile-card .pc-meta {
  font-size: 12.5px;
  color: var(--slate);
  margin-bottom: 8px;
}
.profile-card .pc-detail {
  font-size: 12.5px;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 3px;
}
.profile-card .pc-detail i {
  color: var(--orange);
  width: 12px;
  font-size: 11px;
}

.profile-card .pc-actions {
  display: flex;
  gap: 6px;
  padding: 0 14px 14px;
  margin-top: auto;
}
.pc-action {
  flex: 1;
  background: var(--bg-soft);
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  padding: 9px 6px;
  color: var(--slate);
  transition: all var(--t-fast);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
}
.pc-action:hover {
  background: var(--green);
  border-color: var(--green);
  color: #fff;
}
.pc-action.shortlist        { color: var(--orange); border-color: var(--orange-light); }
.pc-action.shortlist:hover,
.pc-action.shortlist.active { background: var(--orange); border-color: var(--orange); color: #fff; }
.pc-action.primary          { background: var(--green); border-color: var(--green); color: #fff; }
.pc-action.primary:hover    { background: var(--green-dark); }

a.profile-card,
a.profile-card:hover { text-decoration: none; color: inherit; }

/* .pc-action is normally a <button>, which centres its label and has no
   underline for free. As an <a> (e.g. "View Profile") it would otherwise render
   underlined and left-aligned, looking unstyled next to its sibling button. */
a.pc-action,
a.pc-action:hover {
  text-decoration: none;
}
a.pc-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  text-align: center;
}


/* ---------- 16. PROFILE SWIPER (horizontal scroll-snap) ---------- */
.profile-swiper { overflow: hidden; position: relative; }
.profile-swiper .swiper-track {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 4px 0 18px;
  scrollbar-width: none;
}
.profile-swiper .swiper-track::-webkit-scrollbar { display: none; }
.profile-swiper .swiper-slide {
  flex: 0 0 78%;
  scroll-snap-align: start;
}
@media (min-width: 576px) { .profile-swiper .swiper-slide { flex: 0 0 48%; } }
@media (min-width: 768px) { .profile-swiper .swiper-slide { flex: 0 0 32%; } }
@media (min-width: 992px) { .profile-swiper .swiper-slide { flex: 0 0 24%; } }


/* ---------- 17. DIET BADGES (veg / nonveg / vegan) ---------- */
.diet-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  background: #fff;
  border-radius: 3px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
  padding: 2px;
}
/* If online-dot is present (also top-left), shift diet-badge down */
.pc-img .online-dot ~ .diet-badge { top: 40px; }

.diet-dot {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
  border: 1.5px solid var(--green);
  border-radius: 2px;
}
.diet-dot::after {
  content: '';
  position: absolute;
  inset: 2px;
  background: var(--green);
  border-radius: 50%;
}
.diet-dot.nonveg { border-color: var(--danger); }
.diet-dot.nonveg::after {
  background: var(--danger);
  border-radius: 0;
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  inset: 1px;
}
.diet-dot.vegan { border-color: var(--green-dark); }
.diet-dot.vegan::after {
  background: var(--green-dark);
  border-radius: 0;
  clip-path: polygon(50% 0%, 100% 50%, 85% 100%, 15% 100%, 0 50%);
  inset: 1px;
}


/* ---------- 18. MOBILE COMPACT FEATURED ---------- */
@media (max-width: 767px) {
  .featured-compact-mobile {
    overflow-x: auto;
    scrollbar-width: none;
  }
  .featured-compact-mobile::-webkit-scrollbar { display: none; }
  .featured-compact-mobile .row {
    flex-wrap: nowrap;
    padding: 4px;
  }
  .featured-compact-mobile .row > [class*="col-"] {
    flex: 0 0 72%;
    max-width: 72%;
  }
}


/* ---------- 19. STORY CARDS ---------- */
.story-card {
  background: #fff;
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--sh-md);
  transition: all var(--t-med);
  height: 100%;
  border: 1px solid var(--line);
}
.story-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--sh-lg);
}
.story-card .story-img {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}
.story-card .story-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--t-med);
}
.story-card:hover .story-img img { transform: scale(1.05); }
.story-card .story-body { padding: 22px; }
.story-card .couple-names {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 20px;
  color: var(--ink);
  margin-bottom: 4px;
}
.story-card .couple-names .and {
  color: var(--orange);
  font-style: italic;
  padding: 0 4px;
}
.story-card .wed-date {
  font-size: 12.5px;
  color: var(--orange-dark);
  font-weight: 600;
  margin-bottom: 10px;
}
.story-card .story-text {
  color: var(--slate);
  font-size: 14px;
  font-style: italic;
  line-height: 1.7;
  position: relative;
  padding-left: 14px;
  border-left: 3px solid var(--gold-light);
}


/* ---------- 20. BLOG CARDS ---------- */
.blog-card {
  background: #fff;
  border-radius: var(--r-md);
  overflow: hidden;
  box-shadow: var(--sh-sm);
  border: 1px solid var(--line);
  height: 100%;
  transition: all var(--t-med);
  display: flex;
  flex-direction: column;
}
.blog-card:hover { transform: translateY(-5px); box-shadow: var(--sh-md); }
.blog-card .blog-img { aspect-ratio: 16 / 10; overflow: hidden; }
.blog-card .blog-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--t-med);
}
.blog-card:hover .blog-img img { transform: scale(1.06); }
.blog-card .blog-body {
  padding: 18px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.blog-card .blog-tag,
.tag-chip {
  display: inline-block;
  background: var(--green-light);
  color: var(--green-dark);
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 20px;
  margin-bottom: 10px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  align-self: flex-start;
}
.tag-chip { text-transform: none; letter-spacing: 0; font-weight: 500; }
.tag-chip.orange { background: var(--orange-light); color: var(--orange-dark); }
.tag-chip.gold   { background: var(--gold-light); color: var(--gold-dark); }
.blog-card h5 { font-size: 17px; line-height: 1.35; margin-bottom: 8px; }
.blog-card .blog-meta { font-size: 12px; color: var(--muted); margin-bottom: 12px; }
.blog-card .blog-readmore {
  font-size: 13px;
  font-weight: 600;
  color: var(--orange);
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.blog-card .blog-readmore:hover { gap: 10px; }


/* ---------- 21. EVENTS / PRICING / FAQ / TIMELINE ---------- */
.event-card {
  display: flex;
  gap: 16px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 16px;
}
.event-card .event-date {
  flex-shrink: 0;
  background: var(--green-light);
  color: var(--green-dark);
  padding: 10px 14px;
  border-radius: var(--r-sm);
  text-align: center;
  font-weight: 600;
  min-width: 70px;
}
.event-card .event-date small { display: block; font-size: 11px; letter-spacing: 0.05em; }
.event-card .event-date strong { font-size: 22px; font-family: var(--font-display); display: block; }

.pricing-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 24px;
  position: relative;
  height: 100%;
}
.pricing-card.featured { border: 2px solid var(--gold); box-shadow: var(--sh-md); }

.faq-item {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  margin-bottom: 10px;
  overflow: hidden;
}
.faq-item .faq-q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  font-weight: 500;
  cursor: pointer;
}
/* Legacy class-based FAQ (used on faq.html). Scoped to <div> so it doesn't
   conflict with the homepage <details>-based version. */
div.faq-item .faq-a { display: none; padding: 0 18px 14px; color: var(--slate); font-size: 14px; }
div.faq-item.open .faq-a { display: block; }
div.faq-item.open .faq-q i { transform: rotate(180deg); }


/* ---------- 22. FORMS · WIZARD · OTP ---------- */
.form-control, .form-select {
  display: block;
  width: 100%;
  border-radius: var(--r-sm);
  border: 1px solid var(--line);
  padding: 10px 14px;
  font-size: 14.5px;
  color: var(--ink);
  background-color: #fff;
  font-family: var(--font-body);
}
.form-control:focus, .form-select:focus {
  outline: none;
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(214, 31, 38, 0.12);
}
.form-label {
  font-size: 13px;
  font-weight: 500;
  color: var(--slate);
  margin-bottom: 6px;
}

.auth-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 30px;
  box-shadow: var(--sh-md);
  max-width: 460px;
  margin: 0 auto;
}
.auth-card h2 { font-size: 24px; text-align: center; margin-bottom: 6px; }

.wizard-steps {
  display: flex;
  justify-content: space-between;
  margin-bottom: 24px;
  position: relative;
}
.wizard-steps::before {
  content: '';
  position: absolute;
  top: 18px;
  left: 10%;
  right: 10%;
  height: 2px;
  background: var(--line);
  z-index: 0;
}
.wizard-step {
  flex: 1;
  text-align: center;
  position: relative;
  z-index: 1;
}
.wizard-step .num {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--line);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  color: var(--slate);
  margin-bottom: 4px;
}
.wizard-step.active .num   { background: var(--green); color: #fff; border-color: var(--green); }
.wizard-step.done .num     { background: var(--green-dark); color: #fff; border-color: var(--green-dark); }
.wizard-step .label { font-size: 11px; color: var(--muted); }
.wizard-step.active .label { color: var(--green-dark); font-weight: 600; }
.wizard-panel { display: none; }
.wizard-panel.active { display: block; animation: fadeInUp 0.35s var(--ease); }

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

.otp-row {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin: 14px 0 20px;
}
.otp-input {
  width: 48px;
  height: 56px;
  border-radius: var(--r-sm);
  border: 1.5px solid var(--line);
  background: #fff;
  text-align: center;
  font-size: 22px;
  font-weight: 700;
  color: var(--ink);
}
.otp-input:focus {
  outline: none;
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(214, 31, 38, 0.12);
}

.photo-upload {
  border: 2px dashed var(--line);
  border-radius: var(--r-md);
  padding: 30px;
  text-align: center;
  background: var(--bg-soft);
  cursor: pointer;
}
.photo-upload:hover { border-color: var(--green); background: var(--green-light); }
.photo-upload i { font-size: 36px; color: var(--orange); }

.plan-option {
  border: 2px solid var(--line);
  border-radius: var(--r-md);
  padding: 16px;
  cursor: pointer;
  transition: all var(--t-fast);
}
.plan-option.selected { border-color: var(--green); background: var(--green-light); }


/* ---------- 23. CTA BANNER ---------- */
.cta-banner {
  background: linear-gradient(135deg, var(--green) 0%, var(--green-dark) 100%);
  color: #fff;
  padding: 60px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cta-banner::before,
.cta-banner::after {
  content: '';
  position: absolute;
  border-radius: 50%;
}
.cta-banner::before {
  top: -100px; left: -100px;
  width: 350px; height: 350px;
  background: radial-gradient(circle, rgba(198, 138, 58, 0.3) 0%, transparent 70%);
}
.cta-banner::after {
  bottom: -100px; right: -100px;
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(198, 138, 58, 0.25) 0%, transparent 70%);
}
.cta-banner > .container { position: relative; z-index: 2; }
.cta-banner h2 {
  color: #fff;
  font-size: clamp(28px, 5vw, 44px);
  margin-bottom: 12px;
}
.cta-banner h2 em { color: var(--gold-light); font-style: italic; }


/* ---------- 24. GET-THE-APP ---------- */
.get-the-app {
  background: linear-gradient(135deg, var(--green-dark), var(--orange-dark));
  color: #fff;
  padding: 50px 0;
  position: relative;
  overflow: hidden;
}
.get-the-app::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 20% 30%, rgba(198, 138, 58, 0.15) 0, transparent 40%),
                    radial-gradient(circle at 80% 70%, rgba(214, 31, 38, 0.10) 0, transparent 40%);
  pointer-events: none;
}
.get-the-app > .container { position: relative; z-index: 1; }
.get-the-app h2 {
  color: #fff;
  font-size: clamp(26px, 4vw, 38px);
  margin-bottom: 10px;
}
.get-the-app h2 em { color: var(--gold-light); font-style: italic; }
.get-the-app p { color: rgba(255, 255, 255, 0.92); margin-bottom: 18px; }

.app-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 20px 0 24px;
  /* On mobile: 2 cards in row 1, 3rd card in row 2 column 1 (left-aligned) */
}
@media (min-width: 768px) {
  .app-stats {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    justify-content: center;
  }
}
@media (min-width: 992px) { .app-stats { justify-content: flex-start; } }
.app-stat {
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(6px);
  padding: 14px 16px;
  border-radius: var(--r-sm);
  text-align: center;
  min-width: 0;
}
@media (min-width: 768px) {
  .app-stat { padding: 10px 18px; min-width: 110px; }
}
.app-stat .stars { font-size: 12px; color: var(--gold-light); letter-spacing: 2px; }
.app-stat .n     { font-family: var(--font-display); font-weight: 700; font-size: 22px; color: #fff; }
.app-stat .l     { font-size: 11px; color: rgba(255, 255, 255, 0.8); }

.store-badges {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
}
@media (min-width: 992px) { .store-badges { justify-content: flex-start; } }

.store-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #000;
  color: #fff;
  padding: 10px 18px;
  border-radius: var(--r-sm);
  text-decoration: none;
}
.store-badge:hover { color: #fff; background: #222; transform: translateY(-2px); }
.store-badge i { font-size: 24px; }
.store-badge .sb-small { display: block; font-size: 10px; opacity: 0.75; line-height: 1.1; }
.store-badge .sb-big   { display: block; font-size: 14px; font-weight: 600; line-height: 1.1; }

.phone-mockup {
  width: 200px;
  height: 400px;
  background: linear-gradient(135deg, #222, #000);
  border-radius: 34px;
  padding: 8px;
  margin: 0 auto;
  box-shadow: var(--sh-lg);
  animation: float 4s ease-in-out infinite;
  position: relative;
}
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}
.phone-screen {
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, var(--green-light) 0%, #fff 100%);
  border-radius: 28px;
  overflow: hidden;
  position: relative;
  padding: 18px 10px 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.phone-screen .ph-logo {
  font-family: 'Kalam', cursive;
  color: var(--green-dark);
  text-align: center;
  font-weight: 700;
  font-size: 16px;
  margin-bottom: 6px;
}
.phone-screen .ph-card {
  display: flex;
  gap: 8px;
  align-items: center;
  background: #fff;
  padding: 6px 10px;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  font-size: 11px;
}
.phone-screen .ph-card img {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
.phone-screen .ph-card b     { display: block; color: var(--ink); font-size: 12px; }
.phone-screen .ph-card small { color: var(--orange); font-size: 10px; }

.qr-code svg {
  width: 140px;
  height: 140px;
  background: #fff;
  padding: 8px;
  border-radius: var(--r-sm);
  box-shadow: var(--sh-md);
}


/* ---------- 25. SITE FOOTER ---------- */
.site-footer {
  background: var(--ink);
  color: #b9c0cc;
  padding: 60px 0 30px;
  margin-top: 0;
}
.site-footer h6 {
  color: #fff;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 16px;
  position: relative;
  padding-bottom: 10px;
}
.site-footer h6::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 30px;
  height: 2px;
  background: var(--orange);
}
.site-footer a {
  color: #b9c0cc;
  display: block;
  padding: 4px 0;
  font-size: 13.5px;
  transition: color var(--t-fast);
}
.site-footer a:hover { color: var(--gold); }
.site-footer .brand-logo { color: #fff; margin-bottom: 12px; }
.site-footer .brand-logo small { color: var(--gold-light); }
.site-footer .foot-desc {
  color: #8a94a6;
  line-height: 1.7;
  margin-bottom: 18px;
  font-size: 14px;
}

.social-icons { display: flex; gap: 10px; }
.social-icons a {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  padding: 0;
}
.social-icons a:hover {
  background: var(--orange);
  transform: translateY(-3px);
}

.foot-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 18px;
  margin-top: 30px;
  text-align: center;
  font-size: 12.5px;
  color: #7a8596;
}


/* ---------- 26. BOTTOM NAV (mobile only, curved) ---------- */
.bottom-nav {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 999;
  padding: 6px 0 max(6px, env(safe-area-inset-bottom));
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 72' preserveAspectRatio='none'><path fill='%23ffffff' d='M0,14 L150,14 C158,14 160,0 172,0 L228,0 C240,0 242,14 250,14 L400,14 L400,72 L0,72 Z'/></svg>") center bottom / 100% 100% no-repeat;
  filter: drop-shadow(0 -4px 14px rgba(0, 0, 0, 0.08));
}
.bottom-nav .items {
  display: flex;
  justify-content: space-around;
  align-items: flex-end;
  max-width: 500px;
  margin: 0 auto;
  padding-top: 18px;
}
.bottom-nav a {
  color: var(--muted);
  text-align: center;
  font-size: 10px;
  font-weight: 600;
  padding: 4px 8px;
  flex: 1;
  letter-spacing: 0.02em;
  position: relative;
  text-decoration: none;
}
.bottom-nav a i {
  font-size: 20px;
  display: block;
  margin-bottom: 2px;
}
.bottom-nav a.active   { color: var(--green-dark); }
.bottom-nav a.active i { color: var(--green); }

.bottom-nav a.center-btn,
.bottom-nav a.center-highlight {
  margin-top: -28px;
  color: var(--orange-dark);
}
.bottom-nav a.center-btn i,
.bottom-nav a.center-highlight i {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--orange), var(--orange-dark));
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  margin: 0 auto 4px;
  box-shadow: 0 6px 16px rgba(198, 138, 58, 0.45);
}

.bottom-nav .count-badge,
.bottom-nav .shortlist-count {
  position: relative;
}
.bottom-nav .count-badge::after,
.bottom-nav .shortlist-count::after {
  content: attr(data-count);
  position: absolute;
  top: 0;
  right: 22%;
  background: var(--orange);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}


/* ---------- 27. FLOATING ACTION BUTTON ---------- */
.fab {
  display: none;
  position: fixed;
  bottom: 82px;
  right: 18px;
  background: var(--orange);
  color: #fff;
  height: 52px;
  padding: 0 20px 0 18px;
  border-radius: 26px;
  box-shadow: 0 8px 24px rgba(198, 138, 58, 0.5);
  z-index: 998;
  font-size: 14px;
  font-weight: 600;
  align-items: center;
  gap: 8px;
  animation: fabPulse 2.4s ease-in-out infinite;
  text-decoration: none;
  transition: transform var(--t-fast), opacity var(--t-fast);
}
.fab:hover { color: #fff; background: var(--orange-dark); }
.fab i { font-size: 18px; }
@keyframes fabPulse {
  0%, 100% { box-shadow: 0 8px 24px rgba(198, 138, 58, 0.5); }
  50%      { box-shadow: 0 8px 24px rgba(198, 138, 58, 0.5), 0 0 0 12px rgba(198, 138, 58, 0); }
}


/* ---------- 28. TOAST NOTIFICATIONS ---------- */
.toast-container-custom {
  position: fixed;
  top: 80px;
  right: 16px;
  left: 16px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 10px;
  pointer-events: none;
}
@media (min-width: 576px) {
  .toast-container-custom { left: auto; max-width: 340px; }
}
.c-toast {
  background: #fff;
  border-left: 4px solid var(--green);
  padding: 13px 18px;
  border-radius: var(--r-sm);
  box-shadow: var(--sh-lg);
  min-width: 260px;
  font-size: 14px;
  animation: slideIn 0.3s var(--ease);
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: 10px;
}
.c-toast.success { border-left-color: var(--success); }
.c-toast.error { border-left-color: var(--danger); }
.c-toast.info  { border-left-color: var(--info); }
.c-toast i     { font-size: 18px; color: var(--green); flex-shrink: 0; }
.c-toast.success i { color: var(--success); }
.c-toast.error i { color: var(--danger); }
.c-toast.info  i { color: var(--info); }
@keyframes slideIn {
  from { transform: translateX(110%); opacity: 0; }
  to   { transform: translateX(0); opacity: 1; }
}


/* ---------- 29. SEARCH RESULTS (filter sidebar + grid) ---------- */
.search-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}
@media (min-width: 992px) {
  .search-layout { grid-template-columns: 280px 1fr; }
}
.filter-sidebar {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 18px;
}
@media (min-width: 992px) {
  .filter-sidebar {
    position: sticky;
    top: 100px;
    max-height: calc(100vh - 120px);
    overflow-y: auto;
  }
}
.filter-group {
  border-bottom: 1px solid var(--line-soft);
  padding: 12px 0;
}
.filter-group:last-child { border-bottom: none; }
.filter-group .filter-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  font-weight: 600;
  font-size: 14px;
}
.filter-group .filter-body { display: none; padding-top: 12px; }
.filter-group.open .filter-body { display: block; }
.filter-group.open .filter-head i { transform: rotate(180deg); }

.results-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 18px;
  padding: 12px 16px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
}
.view-toggle button {
  background: transparent;
  border: 1px solid var(--line);
  color: var(--slate);
  padding: 6px 10px;
  border-radius: var(--r-sm);
}
.view-toggle button.active {
  background: var(--green);
  color: #fff;
  border-color: var(--green);
}

.pagination-custom {
  display: flex;
  gap: 6px;
  justify-content: center;
  margin-top: 24px;
}
.pagination-custom a {
  width: 38px;
  height: 38px;
  border-radius: var(--r-sm);
  border: 1px solid var(--line);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink);
  font-weight: 500;
  background: #fff;
}
.pagination-custom a.active,
.pagination-custom a:hover {
  background: var(--green);
  color: #fff;
  border-color: var(--green);
}


/* ---------- 30. PROFILE PAGE (detail view) ---------- */
.profile-hero {
  position: relative;
  border-radius: var(--r-lg);
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: var(--sh-sm);
}
.profile-gallery {
  position: relative;
  aspect-ratio: 4 / 3;
  background: var(--bg-soft);
}
.profile-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.gallery-thumbs {
  display: flex;
  gap: 8px;
  padding: 10px;
  overflow-x: auto;
  scrollbar-width: none;
}
.gallery-thumbs::-webkit-scrollbar { display: none; }
.gallery-thumbs img {
  width: 60px;
  height: 60px;
  border-radius: var(--r-sm);
  object-fit: cover;
  cursor: pointer;
  opacity: 0.7;
  transition: all var(--t-fast);
  border: 2px solid transparent;
  flex-shrink: 0;
}
.gallery-thumbs img.active,
.gallery-thumbs img:hover {
  opacity: 1;
  border-color: var(--green);
}

/* Meta-grid: responsive grid of profile stat cards (icon + label + value).
   Individual .meta-item styling is in Section 42.9 below (centered column). */
.meta-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  padding: 8px 0 16px;
}
@media (min-width: 576px) {
  .meta-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; }
}
@media (min-width: 768px) {
  .meta-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 1200px) {
  .meta-grid { grid-template-columns: repeat(5, 1fr); }
}

.detail-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}
@media (min-width: 768px) {
  .detail-grid { grid-template-columns: repeat(2, 1fr); }
}
.detail-grid .d-row {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 10px 0;
  border-bottom: 1px solid var(--line-soft);
}
.detail-grid .d-row i {
  color: var(--orange);
  width: 20px;
  font-size: 16px;
  flex-shrink: 0;
  margin-top: 3px;
}
.detail-grid .d-row .d-lbl {
  font-size: 12px;
  color: var(--muted);
  display: block;
  margin-bottom: 2px;
}
.detail-grid .d-row .d-val {
  font-size: 14.5px;
  color: var(--ink);
  font-weight: 500;
}

.profile-tabs {
  display: flex;
  gap: 4px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 22px;
  overflow-x: auto;
  scrollbar-width: none;
}
.profile-tabs::-webkit-scrollbar { display: none; }
.profile-tabs a {
  padding: 12px 18px;
  font-size: 14px;
  font-weight: 500;
  color: var(--slate);
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}
.profile-tabs a.active {
  color: var(--green-dark);
  border-bottom-color: var(--orange);
}

.sticky-mobile-bar {
  display: none;
  position: fixed;
  bottom: 74px;
  left: 12px;
  right: 12px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 50px;
  padding: 8px 12px;
  box-shadow: var(--sh-lg);
  z-index: 997;
  gap: 6px;
  align-items: center;
}


/* ---------- 31. DASHBOARD (desktop sidebar + mobile drawer) ---------- */
.dash-wrap {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  padding-top: 18px;
}
@media (min-width: 992px) {
  .dash-wrap {
    grid-template-columns: 280px 1fr;
    gap: 28px;
    padding-top: 24px;
  }
}

.dash-menu-trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  font-weight: 500;
  font-size: 14px;
  margin-bottom: 12px;
  cursor: pointer;
}
@media (min-width: 992px) {
  .dash-menu-trigger { display: none; }
}

/* Sidebar: overlay drawer on mobile, inline sticky panel on desktop */
.dash-sidebar {
  position: fixed;
  top: 0;
  left: 0;
  height: 100dvh;
  width: min(300px, 85vw);
  background: #fff;
  z-index: 2000;
  padding: 20px 16px;
  transform: translateX(-100%);
  transition: transform var(--t-med);
  overflow-y: auto;
  box-shadow: 0 0 40px rgba(0, 0, 0, 0.2);
}
.dash-sidebar.open { transform: translateX(0); }

@media (min-width: 992px) {
  .dash-sidebar {
    position: sticky;
    top: 90px;
    left: auto;
    width: auto;
    height: fit-content;
    max-height: calc(100vh - 110px);
    transform: none;
    background: #fff;
    box-shadow: var(--sh-sm);
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    z-index: 1;
    overflow-y: auto;
  }
  .dash-backdrop,
  .dash-sidebar .dash-close,
  .dash-sidebar .close-btn { display: none !important; }
}

.dash-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1999;
  opacity: 0;
  visibility: hidden;
  transition: all var(--t-med);
}
.dash-backdrop.open { opacity: 1; visibility: visible; }

.dash-sidebar .dash-close {
  position: absolute;
  top: 10px;
  right: 10px;
  background: #fff;
  border: 1px solid var(--line);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  color: var(--brand-red);
  cursor: pointer;
  z-index: 2;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.dash-sidebar .dash-close:hover { background: var(--brand-red); color: #fff; border-color: var(--brand-red); }

.dash-sidebar .user-card {
  text-align: center;
  padding: 16px 8px 18px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 12px;
}
.dash-sidebar .user-card img {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  margin: 0 auto 10px;
  border: 3px solid var(--gold);
}
.dash-sidebar .user-card h5 { font-size: 16px; margin-bottom: 2px; }
.dash-sidebar .user-card small { color: var(--muted); font-size: 12px; }

.dash-nav-label {
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 12px 14px 6px;
  font-weight: 600;
}
.dash-nav a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  color: var(--ink);
  border-radius: var(--r-sm);
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 2px;
  text-decoration: none;
}
.dash-nav a:hover,
.dash-nav a.active {
  background: var(--green-light);
  color: var(--green-dark);
}
.dash-nav a.active { font-weight: 600; }
.dash-nav a i {
  color: var(--orange);
  font-size: 17px;
  width: 20px;
}
.dash-nav a .count {
  margin-left: auto;
  background: var(--orange);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 20px;
}

.dash-stat-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 18px;
  display: flex;
  gap: 14px;
  align-items: center;
}
.dash-stat-card .ds-icon {
  width: 48px;
  height: 48px;
  border-radius: var(--r-sm);
  background: var(--green-light);
  color: var(--green-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
}
.dash-stat-card.orange .ds-icon { background: var(--orange-light); color: var(--orange-dark); }
.dash-stat-card.gold   .ds-icon { background: var(--gold-light);   color: var(--gold-dark); }
.dash-stat-card.info   .ds-icon { background: #e3eefa;              color: var(--info); }
.dash-stat-card .val {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
}
.dash-stat-card .lbl { font-size: 12.5px; color: var(--muted); }

.completion-ring {
  width: 120px;
  height: 120px;
  position: relative;
  margin: 0 auto;
}
.completion-ring svg { transform: rotate(-90deg); }
.completion-ring svg circle {
  fill: none;
  stroke-width: 8;
  stroke-linecap: round;
}
.completion-ring svg circle.bg { stroke: var(--line); }
.completion-ring svg circle.fg {
  stroke: var(--green);
  stroke-dasharray: 326;
  stroke-dashoffset: 326;
  transition: stroke-dashoffset 1s ease;
}
.completion-ring .pct {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 700;
  color: var(--green-dark);
}

.plan-card {
  background: linear-gradient(135deg, var(--gold), var(--gold-dark));
  color: #fff;
  padding: 18px;
  border-radius: var(--r-md);
}
.plan-card h5 { color: #fff; font-size: 16px; margin-bottom: 4px; }
.plan-card small { opacity: 0.9; display: block; margin-bottom: 10px; }

.nudge {
  background: var(--orange-light);
  border: 1px solid var(--orange);
  color: var(--orange-dark);
  padding: 12px 14px;
  border-radius: var(--r-sm);
  display: flex;
  gap: 10px;
  align-items: center;
  font-size: 13px;
}
.nudge.green {
  background: var(--green-light);
  border-color: var(--green);
  color: var(--green-dark);
}


/* ---------- 32. CHAT / MESSAGES ---------- */
.chat-container {
  display: grid;
  grid-template-columns: 1fr;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  overflow: hidden;
  background: #fff;
  min-height: 520px;
}
@media (min-width: 768px) {
  .chat-container { grid-template-columns: 300px 1fr; }
}
.chat-list { border-right: 1px solid var(--line); overflow-y: auto; }
.chat-list-item {
  display: flex;
  gap: 10px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line-soft);
  cursor: pointer;
}
.chat-list-item:hover,
.chat-list-item.active { background: var(--green-light); }
.chat-list-item img {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
}
.chat-messages { padding: 18px; overflow-y: auto; }
.chat-msg {
  max-width: 70%;
  padding: 8px 12px;
  border-radius: var(--r-md);
  margin-bottom: 6px;
  font-size: 14px;
  line-height: 1.4;
}
.chat-msg.me   { background: var(--green); color: #fff; margin-left: auto; }
.chat-msg.them { background: var(--bg-soft); color: var(--ink); }


/* ---------- 33. PAGE HERO (CMS pages) ---------- */
.page-hero {
  background: linear-gradient(135deg, var(--green), var(--green-dark));
  color: #fff;
  padding: 60px 0 50px;
  text-align: center;
}
.page-hero h1 {
  color: #fff;
  font-size: clamp(30px, 5vw, 46px);
  margin-bottom: 10px;
}
.page-hero p {
  color: rgba(255, 255, 255, 0.92);
  max-width: 640px;
  margin: 0 auto;
  font-size: 16px;
}
.cms-content {
  font-size: 15px;
  line-height: 1.8;
  color: var(--slate);
}
.cms-content h2 { margin-top: 28px; margin-bottom: 12px; color: var(--ink); font-size: 22px; }
.cms-content h3 { margin-top: 22px; margin-bottom: 10px; color: var(--ink); font-size: 18px; }
.cms-content ul { padding-left: 20px; }
.cms-content li { margin-bottom: 8px; }


/* ---------- 34. SCROLL-REVEAL ANIMATION ----------
   Progressive enhancement: elements are fully visible by
   default. Only if JS sets `.js-ready` on <html> do we hide
   .reveal until the IntersectionObserver adds .is-visible.
   This guarantees content is never permanently hidden if JS
   fails, ad-blockers break, etc.
   --------------------------------------------------- */
.reveal {
  transition: opacity 0.6s var(--ease), transform 0.6s var(--ease);
}
html.js-ready .reveal {
  opacity: 0;
  transform: translateY(20px);
}
html.js-ready .reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}


/* ---------- 35. RESPONSIVE BREAKPOINTS ---------- */
@media (max-width: 991px) {
  .section { padding: 40px 0; }
  .hero-slide { padding: 28px 0; }
}

@media (max-width: 767px) {
  /* Hide top-strip on mobile */
  .scroll-ticker{overflow:hidden;background:linear-gradient(90deg,#c79a3f,#e0c074,#c79a3f);border-top:1px solid rgba(255,255,255,.25);border-bottom:1px solid rgba(0,0,0,.06);position:relative}
.scroll-ticker-track{display:flex;width:max-content;animation:pmTicker 32s linear infinite}
.scroll-ticker:hover .scroll-ticker-track{animation-play-state:paused}
.scroll-ticker-group{display:flex;flex-shrink:0}
.scroll-ticker-item{display:inline-flex;align-items:center;gap:7px;padding:9px 26px;font-size:13.5px;font-weight:600;color:#fff;white-space:nowrap;letter-spacing:.01em}
.scroll-ticker-item::after{content:"";width:6px;height:6px;margin-left:26px;border-radius:2px;transform:rotate(45deg);background:rgba(255,255,255,.65)}
.scroll-ticker-item i{font-size:14px}
@keyframes pmTicker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){.scroll-ticker-track{animation:none}.scroll-ticker{overflow-x:auto}}
.top-strip { display: none !important; }

  /* Reserve space for fixed bottom nav so footer isn't hidden */
  body {
    padding-bottom: 74px;
    overflow-x: clip;
  }

  .bottom-nav { display: block; }
  .fab        { display: inline-flex; }

  .hero-slide { padding: 24px 0; }
  .hero-stats { gap: 14px; }
  .hero-stats .stat strong { font-size: 20px; }
  .hero-stats .stat span   { font-size: 10px; }

  .section { padding: 36px 0; }

  /* Footer: extra bottom spacing so copyright sits above the curved nav */
  .site-footer  { padding-bottom: 20px; }
  .foot-bottom  { margin-top: 24px; padding-top: 14px; padding-bottom: 4px; }
}

@media (max-width: 575px) {
  .hero-register-card { padding: 18px; }
  .hero-title         { font-size: 28px; }
  .hero-tagline       { font-size: 20px; }
  .hero-stats .stat strong { font-size: 18px; }
}


/* ---------- 36. SCROLLBAR ---------- */
::-webkit-scrollbar             { width: 10px; height: 10px; }
::-webkit-scrollbar-track       { background: var(--bg-soft); }
::-webkit-scrollbar-thumb       { background: var(--green); border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: var(--green-dark); }


/* ---------- 37. LEGACY COMPATIBILITY (older class names) ---------- */
.bg-green-light   { background: var(--green-light) !important; }
.bg-orange-light  { background: var(--orange-light) !important; }
.bg-gold-light    { background: var(--gold-light) !important; }
.text-green       { color: var(--green-dark) !important; }
.text-orange      { color: var(--orange) !important; }
.text-gold        { color: var(--gold-dark) !important; }

/* Some pages use hero-form inline */
.hero-form {
  background: #fff;
  padding: 18px;
  border-radius: var(--r-md);
  box-shadow: var(--sh-md);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)) auto;
  gap: 10px;
  align-items: end;
  max-width: 780px;
}
.hero-form label {
  font-size: 11px;
  color: var(--slate);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 4px;
  display: block;
}
.hero-form select,
.hero-form input {
  width: 100%;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  background: #fff;
  color: var(--ink);
  font-size: 13.5px;
}
.hero-form select:focus,
.hero-form input:focus {
  outline: none;
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(214, 31, 38, 0.12);
}

.script-text {
  font-family: var(--font-script);
  color: var(--orange);
  font-weight: 700;
}

.section-title .script-text {
  display: block;
  font-size: 22px;
  margin-bottom: 2px;
}
.section-title h2 {
  font-size: clamp(26px, 4vw, 38px);
  margin-bottom: 6px;
}
.section-title p {
  color: var(--slate);
  max-width: 600px;
  margin: 0 auto;
}

.slide-bg {
  position: absolute;
  inset: 0;
  object-fit: cover;
  width: 100%;
  height: 100%;
  z-index: 0;
}

/* Tag chip variants used on blog/content pages */
.tag-chip.green   { background: var(--green-light);  color: var(--green-dark); }
.tag-chip.info    { background: #e3eefa;              color: var(--info); }


/* =========================================================
   38. PAGE-SPECIFIC LAYOUTS (completing coverage)
   Every class used in the 46 built HTML pages that wasn't
   already styled. Added as an appendix so no HTML change is
   needed — every page now renders correctly.
   ========================================================= */


/* ---------- 38.1  AUTH PAGES (login / register / forgot) ---------- */
.auth-wrap {
  min-height: calc(100vh - 200px);
  padding: 30px 0;
  background: linear-gradient(180deg, var(--green-light) 0%, var(--bg-soft) 100%);
}
.auth-wrap .auth-card {
  max-width: 980px;
  padding: 0;
  overflow: hidden;
  background: #fff;
}

.auth-side {
  background:
    radial-gradient(circle at 80% 20%, rgba(255,255,255,0.12), transparent 50%),
    radial-gradient(circle at 20% 80%, rgba(255,255,255,0.08), transparent 50%),
    linear-gradient(135deg, var(--brand-red) 0%, var(--brand-red-hover) 50%, var(--brand-gold-dark) 100%);
  color: #fff;
  padding: 44px 36px;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.auth-side::before {
  content: '';
  position: absolute;
  top: -60px;
  right: -60px;
  width: 220px;
  height: 220px;
  background: radial-gradient(circle, rgba(198, 138, 58, 0.25) 0%, transparent 70%);
  border-radius: 50%;
}
.auth-side h2 {
  color: #fff;
  font-size: 28px;
  margin: 8px 0 12px;
  line-height: 1.2;
  position: relative;
  z-index: 1;
}
.auth-side h2 em {
  color: var(--gold-light);
  font-style: italic;
}
.auth-side p {
  color: rgba(255, 255, 255, 0.92);
  font-size: 14px;
  margin-bottom: 22px;
  position: relative;
  z-index: 1;
}
.auth-feature {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
  padding: 10px 0;
  color: rgba(255, 255, 255, 0.95);
  position: relative;
  z-index: 1;
}
.auth-feature i {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  color: var(--gold-light);
  flex-shrink: 0;
}

.auth-body {
  padding: 36px 32px;
}
.auth-title {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 4px;
  color: var(--ink);
}
.auth-title em {
  font-style: italic;
  color: var(--orange);
}
.auth-subtitle {
  color: var(--slate);
  font-size: 14px;
  margin-bottom: 24px;
}
.auth-form .form-group {
  margin-bottom: 16px;
}

/* Input-icon wrap: icon on the left, optional toggle on the right */
.input-icon {
  position: relative;
}
.input-icon .icon-prefix {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  pointer-events: none;
  font-size: 15px;
}
.input-icon .form-control,
.input-icon .form-select {
  padding-left: 42px;
}
.input-icon .toggle-pw {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: none;
  color: var(--muted);
  cursor: pointer;
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.input-icon .toggle-pw:hover { color: var(--green-dark); }

.required { color: var(--danger); font-weight: 600; }

.divider-or {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 18px 0;
  color: var(--muted);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.divider-or::before,
.divider-or::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--line);
}


/* ---------- 38.2  REGISTER WIZARD ---------- */
.register-wizard .form-progress {
  display: flex;
  justify-content: space-between;
  margin-bottom: 26px;
  gap: 6px;
  overflow-x: auto;
  scrollbar-width: none;
}
.register-wizard .form-progress::-webkit-scrollbar { display: none; }
.register-wizard .form-progress-step {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-size: 11px;
  color: var(--muted);
  gap: 4px;
  min-width: 64px;
  position: relative;
}
.register-wizard .form-progress-step.active { color: var(--green-dark); font-weight: 600; }
.register-wizard .form-progress-step.done   { color: var(--green-dark); }

.step-dot {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--line);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  color: var(--muted);
  font-size: 13px;
  transition: all var(--t-fast);
}
.form-progress-step.active .step-dot {
  background: var(--green);
  color: #fff;
  border-color: var(--green);
  box-shadow: 0 0 0 4px rgba(214, 31, 38, 0.15);
}
.form-progress-step.done .step-dot {
  background: var(--green-dark);
  color: #fff;
  border-color: var(--green-dark);
}
.step-subtitle {
  font-size: 13px;
  color: var(--slate);
  margin-bottom: 16px;
}

/* OTP group (when not using .otp-row) */
.otp-group {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin: 14px 0 8px;
}
.otp-group input {
  width: 46px;
  height: 54px;
  border-radius: var(--r-sm);
  border: 1.5px solid var(--line);
  background: #fff;
  text-align: center;
  font-size: 20px;
  font-weight: 700;
}
.otp-group input:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(214, 31, 38, 0.15);
  outline: none;
}

/* Photo preview tiles in register step */
.photo-preview-wrap {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.photo-preview-wrap .photo-tile,
.photo-preview-wrap img {
  aspect-ratio: 1 / 1;
  border-radius: var(--r-sm);
  object-fit: cover;
  border: 1px solid var(--line);
  position: relative;
}
.remove-photo {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  border: none;
  font-size: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* Plan choice tiles in wizard step */
.plan-choice {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px;
  margin: 14px 0 10px;
}
.plan-choice .plan-option {
  text-align: center;
  padding: 18px 10px;
}
.plan-choice .plan-option.selected .plan-price { color: var(--green-dark); }
.plan-name  { font-weight: 700; font-size: 14px; color: var(--ink); }
.plan-price { font-family: var(--font-display); font-size: 20px; font-weight: 700; color: var(--orange); margin: 4px 0; }
.plan-desc  { font-size: 12px; color: var(--muted); }


/* ---------- 38.3  DASHBOARD (main page — old structure) ----------
   dashboard.html places <aside class="dash-sidebar"> as a sibling
   of <section class="dash-wrap">. Style for this legacy layout
   without touching the HTML.
   ---------------------------------------------------------- */

/* Old sidebar inner classes → alias to new equivalents */
.dash-user-card {
  text-align: center;
  padding: 18px 12px 18px;
  margin-bottom: 12px;
  background:
    radial-gradient(circle at 50% 0%, rgba(214, 31, 38, 0.08), transparent 60%),
    radial-gradient(circle at 50% 100%, rgba(198, 138, 58, 0.08), transparent 60%),
    linear-gradient(180deg, #FFFBF5 0%, #FFF7EE 100%);
  border-radius: 14px;
  border: 1px solid #F3E0CB;
  position: relative;
  overflow: hidden;
}
.dash-user-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--brand-red), var(--brand-gold), var(--brand-red));
  background-size: 200% 100%;
  animation: filterShimmer 4s linear infinite;
}
.dash-user-card img {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  object-fit: cover;
  margin: 0 auto 10px;
  border: 3px solid #fff;
  box-shadow: 0 0 0 2px var(--gold), 0 4px 12px rgba(198, 138, 58, 0.25);
  display: block;
  position: relative;
  z-index: 1;
}
/* No uploaded photo yet — same circle treatment as the img, initials instead. */
.dash-user-card .dsh-card-avatar-initials {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  margin: 0 auto 10px;
  border: 3px solid #fff;
  box-shadow: 0 0 0 2px var(--gold), 0 4px 12px rgba(198, 138, 58, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1;
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
}
/* Drawer + navbar avatars: same treatment when a real photo is available. */
.duh-avatar-photo, .user-avatar-photo {
  object-fit: cover;
}
.dash-user-card h6 {
  font-family: var(--font-display);
  font-size: 16px;
  margin-bottom: 2px;
  font-weight: 700;
  position: relative;
  z-index: 1;
}
.dash-user-card .text-muted {
  position: relative;
  z-index: 1;
}
.badge-premium {
  display: inline-block;
  margin-top: 8px;
  background: linear-gradient(135deg, var(--gold), var(--gold-dark));
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 12px;
  border-radius: 20px;
  letter-spacing: 0.05em;
}

.dash-nav-list {
  display: flex;
  flex-direction: column;
}
.dash-nav-section-label {
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 12px 14px 6px;
  font-weight: 600;
}
.dash-nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  color: var(--ink);
  border-radius: var(--r-sm);
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 2px;
  text-decoration: none;
  position: relative;
}
.dash-nav-item:hover,
.dash-nav-item.active {
  background: var(--green-light);
  color: var(--green-dark);
}
.dash-nav-item.active { font-weight: 600; }
.dash-nav-item i {
  color: var(--orange);
  font-size: 17px;
  width: 20px;
  flex-shrink: 0;
}
.dash-nav-item .count-badge {
  margin-left: auto;
  background: var(--orange);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 20px;
  min-width: 22px;
  text-align: center;
}

/* (The agent profile-view header badge was removed  the pending count now
   lives on the agent sidebar's "Mobile Requests" item; see .agent-nav-item
   .count-badge below.) */

/* .close-btn inside .dash-sidebar (mobile only) */
.dash-sidebar .close-btn {
  position: absolute;
  top: 10px;
  right: 10px;
  background: var(--bg-soft);
  border: none;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 18px;
  color: var(--slate);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
@media (min-width: 992px) {
  .dash-sidebar .close-btn { display: none; }
}

/* Dashboard stat cards — HTML uses .stat-icon/.stat-body/.stat-num/.stat-label */
.dash-stat-card .stat-icon {
  width: 48px;
  height: 48px;
  border-radius: var(--r-sm);
  background: var(--green-light);
  color: var(--green-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  flex-shrink: 0;
}
.dash-stat-card.orange .stat-icon { background: var(--orange-light); color: var(--orange-dark); }
.dash-stat-card.gold   .stat-icon { background: var(--gold-light);   color: var(--gold-dark); }
.dash-stat-card.info   .stat-icon { background: #e3eefa;              color: var(--info); }
.dash-stat-card .stat-body {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}
.stat-num {
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 700;
  color: var(--ink);
}
.stat-label {
  font-size: 12.5px;
  color: var(--muted);
}

/* Completion-card (profile completion widget) */
.completion-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 22px;
  display: flex;
  gap: 22px;
  align-items: center;
  flex-wrap: wrap;
}
.completion-card .completion-ring + div { flex: 1; min-width: 200px; }
.ring-text {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 700;
  color: var(--green-dark);
}

/* Nudge: HTML splits into .nudge-icon + .nudge-body */
.nudge {
  align-items: flex-start;
}
.nudge-icon {
  width: 40px;
  height: 40px;
  border-radius: var(--r-sm);
  background: rgba(198, 138, 58, 0.15);
  color: var(--orange-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}
.nudge.info .nudge-icon,
.nudge.green .nudge-icon {
  background: rgba(214, 31, 38, 0.15);
  color: var(--green-dark);
}
.nudge-body h6 {
  margin: 0 0 2px;
  font-size: 14px;
  color: var(--ink);
  font-weight: 600;
}
.nudge-body p {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.5;
}


/* ---------- 38.4  PROFILE PAGE (profile.html) ---------- */
body.profile-page {
  background: var(--bg-soft);
}

.profile-page .container,
body.profile-page > section > .container {
  padding-top: 18px;
}

.main-img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--r-lg);
  box-shadow: var(--sh-md);
  background: var(--bg-soft);
  display: block;
}

/* Quick-facts row under profile name */
.profile-quickfacts {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  margin: 12px 0 18px;
}
.qf {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--slate);
}
.qf i { color: var(--orange); font-size: 14px; }

/* Tagline under profile name (e.g. "Seeking my partner …") */
.profile-page .tagline {
  font-family: var(--font-script);
  color: var(--orange);
  font-size: 18px;
  font-weight: 500;
  margin-bottom: 8px;
}

.verified-tick {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--info);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 10px;
  border-radius: 20px;
  vertical-align: middle;
  margin-left: 8px;
}

/* Profile meta grid (alternate name to .meta-grid) */
.profile-meta-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin: 16px 0 22px;
}
@media (min-width: 768px) { .profile-meta-grid { grid-template-columns: repeat(4, 1fr); } }
.profile-meta-grid > div {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 10px 14px;
}
.profile-meta-grid .dl {
  font-size: 10.5px;
  color: var(--muted);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  display: block;
  margin-bottom: 2px;
}
.profile-meta-grid .dv {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
}

/* Profile actions row */
.profile-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}
.profile-actions .btn { flex: 1; min-width: 120px; }

.profile-info {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 20px;
  margin-bottom: 16px;
}

/* Profile tab buttons (HTML uses .profile-tab not `a`) */
.profile-tabs .profile-tab {
  background: transparent;
  border: none;
  padding: 12px 18px;
  font-size: 14px;
  font-weight: 500;
  color: var(--slate);
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.profile-tabs .profile-tab.active {
  color: var(--green-dark);
  border-bottom-color: var(--orange);
}
.profile-tabs .profile-tab i { font-size: 14px; }

/* Profile section panels (about / family / horoscope etc.) */
.profile-section {
  display: none;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 22px;
  margin-bottom: 14px;
  animation: fadeInUp 0.3s var(--ease);
}
.profile-section.active { display: block; }
.profile-section h5 {
  color: var(--ink);
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line-soft);
  font-size: 17px;
}

/* Generic block used inside profile + safety-tips */
.about-block {
  background: var(--bg-soft);
  border-left: 3px solid var(--gold);
  padding: 14px 16px;
  border-radius: var(--r-sm);
  color: var(--slate);
  font-size: 14.5px;
  line-height: 1.7;
  margin-bottom: 14px;
}

/* Sticky bar at bottom of profile page on mobile */
.profile-sticky-bar {
  display: none;
  position: fixed;
  bottom: 74px;
  left: 10px;
  right: 10px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 50px;
  padding: 8px 10px;
  box-shadow: var(--sh-lg);
  z-index: 997;
  gap: 6px;
  align-items: center;
  justify-content: space-around;
}
.profile-sticky-bar .btn { flex: 1; }
@media (max-width: 767px) {
  .profile-sticky-bar { display: flex; }
}


/* ---------- 38.5  SEARCH RESULTS ---------- */
.search-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 18px;
  padding: 12px 16px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
}
.result-count {
  font-size: 14px;
  color: var(--slate);
}
.result-count strong { color: var(--ink); font-weight: 600; }

.toolbar-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

.results-grid { /* wrap for the results */ }

.filter-btn-mobile {
  background: var(--green);
  color: #fff;
  border: none;
  padding: 8px 14px;
  border-radius: var(--r-sm);
  font-size: 13px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}
.filter-btn-mobile:hover { background: var(--green-dark); }
@media (min-width: 992px) { .filter-btn-mobile { display: none; } }

/* Filter sidebar inner: fg-head (toggle) + fg-body (content) */
/* Desktop filter sidebar heading — icon + gradient background */
.filter-sidebar-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  margin-bottom: 14px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--brand-red, #D61F26), var(--brand-gold, #C68A3A));
  color: #fff;
  box-shadow: 0 4px 14px rgba(214, 31, 38, 0.18);
}
.filter-sidebar-head i {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.22);
  color: #fff;
  font-size: 16px;
  flex-shrink: 0;
}
.filter-sidebar-head h5 {
  margin: 0;
  font-family: var(--font-display, Fraunces, serif);
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.02em;
}

/* Filter section heading layout (icon + title + chevron) */
.fg-head {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.04em;
  padding: 10px 12px 10px 4px;
  background: transparent;
  transition: background var(--t-fast);
}
.fg-head .head-icon {
  font-size: 16px;
  width: 20px;
  text-align: center;
  flex-shrink: 0;
}
.fg-head .fg-title { flex: 1; }
.fg-head > i:last-child { margin-left: auto; transition: transform var(--t-fast); font-size: 12px; opacity: 0.7; }
.filter-group.open .fg-head > i:last-child { transform: rotate(180deg); }

/* Tinted section wrapper — background spans the whole group (head + body)
   with a colored left border. Each variant overrides the palette below.
   Specificity bumped via .filter-group + .filter-group-XXX so per-section
   colours win over the base rule. */
.filter-group.filter-group-age,
.filter-group.filter-group-religion,
.filter-group.filter-group-community,
.filter-group.filter-group-tongue,
.filter-group.filter-group-city,
.filter-group.filter-group-education,
.filter-group.filter-group-diet,
.filter-group.filter-group-status {
  border-bottom: none !important;
  border-radius: 10px;
  padding: 8px 12px 10px 14px !important;
  margin-bottom: 12px;
  border-left: 3px solid transparent;
}

/* Extra breathing room on the left in desktop so the icon doesn't kiss the border */
@media (min-width: 992px) {
  .filter-group.filter-group-age,
  .filter-group.filter-group-religion,
  .filter-group.filter-group-community,
  .filter-group.filter-group-tongue,
  .filter-group.filter-group-city,
  .filter-group.filter-group-education,
  .filter-group.filter-group-diet,
  .filter-group.filter-group-status { padding-left: 22px !important; }
}

/* Per-section colour tints — background on whole wrapper, accent on text/icon */
.filter-group.filter-group-age           { background:#FFF7F0; border-left-color:var(--brand-red,#D61F26); }
.filter-group.filter-group-age           .fg-head,
.filter-group.filter-group-age           .fg-head .head-icon,
.filter-group.filter-group-age           .fg-head .fg-title { color:var(--brand-red,#D61F26); }

.filter-group.filter-group-religion      { background:#FFF7EC; border-left-color:var(--brand-gold,#C68A3A); }
.filter-group.filter-group-religion      .fg-head,
.filter-group.filter-group-religion      .fg-head .head-icon,
.filter-group.filter-group-religion      .fg-head .fg-title { color:var(--brand-gold-dark,#8a5e1f); }

.filter-group.filter-group-community     { background:#FFF0F3; border-left-color:#E91E63; }
.filter-group.filter-group-community     .fg-head,
.filter-group.filter-group-community     .fg-head .head-icon,
.filter-group.filter-group-community     .fg-head .fg-title { color:#C2185B; }

.filter-group.filter-group-tongue        { background:#E6F8F8; border-left-color:#0E9594; }
.filter-group.filter-group-tongue        .fg-head,
.filter-group.filter-group-tongue        .fg-head .head-icon,
.filter-group.filter-group-tongue        .fg-head .fg-title { color:#086B6A; }

.filter-group.filter-group-city          { background:#F0F6FF; border-left-color:var(--brand-blue,#2F4A7D); }
.filter-group.filter-group-city          .fg-head,
.filter-group.filter-group-city          .fg-head .head-icon,
.filter-group.filter-group-city          .fg-head .fg-title { color:var(--brand-blue,#2F4A7D); }

.filter-group.filter-group-education     { background:#F5EBFF; border-left-color:#6A2F9F; }
.filter-group.filter-group-education     .fg-head,
.filter-group.filter-group-education     .fg-head .head-icon,
.filter-group.filter-group-education     .fg-head .fg-title { color:#6A2F9F; }

.filter-group.filter-group-diet          { background:#E8F7EE; border-left-color:#1E8E3E; }
.filter-group.filter-group-diet          .fg-head,
.filter-group.filter-group-diet          .fg-head .head-icon,
.filter-group.filter-group-diet          .fg-head .fg-title { color:#1E8E3E; }

.filter-group.filter-group-status        { background:#FFF7E6; border-left-color:#B45309; }
.filter-group.filter-group-status        .fg-head,
.filter-group.filter-group-status        .fg-head .head-icon,
.filter-group.filter-group-status        .fg-head .fg-title { color:#8B4513; }
.fg-body {
  display: none;
  padding-top: 12px;
  max-height: 240px;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 4px;
}
.filter-group.open .fg-body { display: block; }
.fg-body label {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  font-size: 13px;
  color: var(--slate);
  cursor: pointer;
}
.fg-body label input { margin: 0; }

.clear-all {
  background: transparent;
  border: none;
  color: var(--orange);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  padding: 4px 0;
  margin-bottom: 10px;
}
.clear-all:hover { text-decoration: underline; }

/* Range slider for age / income */
.range-slider {
  padding: 6px 0;
}
.range-values {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  color: var(--ink);
  font-weight: 600;
  margin-bottom: 6px;
}
.range-slider input[type="range"] {
  width: 100%;
  margin: 2px 0;
  accent-color: var(--green);
}

/* Mobile filter modal (bottom-sheet style) */
/* [neutralized — see Section 45] .filter-modal { */
/*   position: fixed; */
/*   inset: 0; */
/*   background: #fff; */
/*   z-index: 2100; */
/*   display: none; */
/*   flex-direction: column; */
/* } */
/* [neutralized — see Section 45] .filter-modal.open { display: flex; } */
/* [neutralized — see Section 45] .filter-modal-head { */
/*   display: flex; */
/*   justify-content: space-between; */
/*   align-items: center; */
/*   padding: 16px 18px; */
/*   border-bottom: 1px solid var(--line); */
/* } */
/* [neutralized — see Section 45] .filter-modal-head h5 { margin: 0; font-size: 18px; } */
/* [neutralized — see Section 45] .filter-modal-body { */
/*   flex: 1; */
/*   overflow-y: auto; */
/*   padding: 16px 18px; */
/* } */
/* [neutralized — see Section 45] .filter-modal-foot { */
/*   padding: 14px 18px; */
/*   border-top: 1px solid var(--line); */
/*   display: flex; */
/*   gap: 10px; */
/*   background: #fff; */
/*   box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.06); */
/* } */
/* [neutralized — see Section 45] .filter-modal-foot .btn { flex: 1; } */

/* Breadcrumb trail (search-results, blog-post) */
.breadcrumb-custom {
  display: flex;
  gap: 6px;
  align-items: center;
  padding: 12px 0;
  font-size: 13px;
  color: var(--muted);
  flex-wrap: wrap;
}
.breadcrumb-custom a { color: var(--green-dark); }
.breadcrumb-custom a:hover { text-decoration: underline; }
.breadcrumb-custom .sep { color: var(--muted); }
.careers-apply-page .page-hero .breadcrumb-current {
  color: var(--gold-light);
  font-weight: 700;
}


/* ---------- 38.6  MESSAGES / CHAT (messages.html) ---------- */
.chat-list-head {
  padding: 14px 14px 10px;
  border-bottom: 1px solid var(--line-soft);
  position: sticky;
  top: 0;
  background: #fff;
  z-index: 2;
}

/* Chat-list-item inner classes used in messages.html */
.chat-list-item { align-items: center; }
.chat-list-item > div:last-child {
  text-align: right;
  flex-shrink: 0;
  margin-left: auto;
}
.cl-body { flex: 1; min-width: 0; }
.cl-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cl-preview {
  font-size: 12.5px;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 180px;
}
.cl-time {
  font-size: 11px;
  color: var(--muted);
  margin-bottom: 2px;
}
.cl-badge {
  background: var(--orange);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: auto;
}

.chat-main {
  display: flex;
  flex-direction: column;
  min-height: 520px;
}
.chat-main-head {
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--bg-soft);
}
.chat-main-head img {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
}
.chat-main-head h6 {
  margin: 0;
  font-size: 15px;
  font-family: var(--font-display);
}
.chat-main-head small {
  color: var(--green);
  font-size: 11px;
}
.chat-back-btn { margin-right: 4px; }

.chat-compose {
  display: flex;
  gap: 8px;
  align-items: center;
  padding: 12px 14px;
  border-top: 1px solid var(--line);
  background: #fff;
}
.chat-compose .form-control { flex: 1; }

/* Mobile: hide chat list when chat-main is open (simplified — both visible by default) */
@media (max-width: 767px) {
  .chat-container { grid-template-columns: 1fr; }
}


/* ---------- 38.7  DIET LABELS (standalone .veg / .non-veg / .diet-veg) ---------- */
/* Some pages use just `<span class="veg">Vegetarian</span>` as a text label */
.veg {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12.5px;
  color: var(--green-dark);
  font-weight: 500;
}
.veg::before {
  content: '';
  display: inline-block;
  width: 12px;
  height: 12px;
  border: 1.5px solid var(--green);
  background: #fff;
  border-radius: 2px;
  position: relative;
}
.non-veg {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12.5px;
  color: var(--danger);
  font-weight: 500;
}
.non-veg::before {
  content: '';
  display: inline-block;
  width: 12px;
  height: 12px;
  border: 1.5px solid var(--danger);
  background: #fff;
  border-radius: 2px;
}
.diet-veg {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--green-dark);
  font-weight: 500;
}


/* ---------- 38.8  FAQ & BLOG CATEGORIES ---------- */
.faq-cat-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
  margin: 0 auto 28px;
  overflow-x: auto;
  padding-bottom: 4px;
  scrollbar-width: none;
}
.faq-cat-tabs::-webkit-scrollbar { display: none; }
.faq-cat {
  background: #fff;
  border: 1px solid var(--line);
  padding: 8px 16px;
  border-radius: 50px;
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  cursor: pointer;
  white-space: nowrap;
  transition: all var(--t-fast);
}
.faq-cat:hover { border-color: var(--green); color: var(--green-dark); }
.faq-cat.active {
  background: var(--green);
  color: #fff;
  border-color: var(--green);
}

.faq-search {
  margin-bottom: 22px;
}

.blog-cat {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 20px;
  overflow-x: auto;
  scrollbar-width: none;
}
.blog-cat::-webkit-scrollbar { display: none; }
.blog-cat a,
.blog-cat button {
  background: #fff;
  border: 1px solid var(--line);
  padding: 8px 16px;
  border-radius: 50px;
  font-size: 13px;
  color: var(--ink);
  text-decoration: none;
  white-space: nowrap;
  transition: all var(--t-fast);
}
.blog-cat a.active,
.blog-cat button.active,
.blog-cat a:hover {
  background: var(--green);
  color: #fff;
  border-color: var(--green);
}


/* ---------- 38.9  EVENTS PAGE ---------- */
.event-card .event-date .day,
.event-card .event-date strong {
  font-family: var(--font-display);
  font-size: 22px;
  display: block;
  font-weight: 700;
}
.event-card .event-date .month,
.event-card .event-date small {
  font-size: 11px;
  letter-spacing: 0.1em;
  display: block;
}
.event-body { flex: 1; }
.event-body h6 {
  margin: 0 0 4px;
  font-size: 15px;
  color: var(--ink);
  font-weight: 600;
}
.event-meta {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  font-size: 12px;
  color: var(--muted);
  margin-top: 4px;
}
.event-meta i { color: var(--orange); margin-right: 4px; }


/* ---------- 38.10  ABOUT PAGE TIMELINE ---------- */
.timeline {
  position: relative;
  padding-left: 24px;
  margin-top: 16px;
}
.timeline::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 6px;
  width: 2px;
  background: linear-gradient(180deg, var(--green), var(--orange), var(--gold));
}
.timeline-item {
  position: relative;
  padding-bottom: 22px;
}
.timeline-item::before {
  content: '';
  position: absolute;
  left: -24px;
  top: 6px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid var(--orange);
  box-shadow: 0 0 0 3px rgba(198, 138, 58, 0.15);
}
.timeline-item:last-child { padding-bottom: 0; }
.ti-year {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 700;
  color: var(--orange);
  letter-spacing: 0.08em;
  margin-bottom: 4px;
}
.timeline-item h5 {
  font-size: 16px;
  color: var(--ink);
  margin-bottom: 6px;
}


/* ---------- 38.11  PRICING / FEATURE LISTS ---------- */
.feature-list {
  list-style: none;
  padding: 0;
  margin: 16px 0;
}
.feature-list li {
  padding: 8px 0;
  font-size: 13.5px;
  color: var(--slate);
  display: flex;
  align-items: flex-start;
  gap: 8px;
  border-bottom: 1px dashed var(--line-soft);
}
.feature-list li:last-child { border-bottom: none; }
.feature-list li i {
  color: var(--green);
  font-size: 16px;
  flex-shrink: 0;
  margin-top: 2px;
}
.feature-list li i.bi-x-circle,
.feature-list li i.bi-x { color: var(--muted); }


/* ---------- 38.12  COMING SOON (notify form) ---------- */
.notify-form {
  display: block;
}
.notify-done {
  text-align: center;
  background: var(--green-light);
  color: var(--green-dark);
  border: 1px solid var(--green);
  padding: 16px;
  border-radius: var(--r-md);
}


/* ---------- 38.13  CAREERS JOB LIST ---------- */
.job-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 18px;
}
.job-list > div,
.job-list .job-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 18px;
  transition: all var(--t-fast);
}
.job-list > div:hover {
  border-color: var(--green);
  box-shadow: var(--sh-sm);
  transform: translateY(-2px);
}


/* ---------- 38.14  LEGAL PAGES (privacy / terms / refund) ---------- */
.last-updated {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--bg-soft);
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 12.5px;
  color: var(--slate);
  margin-bottom: 18px;
}
.last-updated i { color: var(--orange); }

.toc {
  background: var(--bg-soft);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 18px 22px;
  margin-bottom: 26px;
}
.toc strong {
  display: block;
  margin-bottom: 10px;
  font-family: var(--font-display);
  font-size: 15px;
  color: var(--ink);
}
.toc ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 4px 20px;
}
.toc li { padding: 4px 0; }
.toc a {
  color: var(--green-dark);
  font-size: 13.5px;
  text-decoration: none;
  display: block;
  padding: 2px 0;
}
.toc a:hover { color: var(--orange); text-decoration: underline; }


/* ---------- 38.15  HERO VARIANTS (.hero on index, .has-hero elsewhere) ---------- */
.hero-content {
  max-width: 640px;
  position: relative;
  z-index: 1;
}
.hero-content .script-text,
.hero-content .tagline {
  font-family: var(--font-script);
  color: var(--gold-light);
  font-size: 22px;
  display: block;
  margin-bottom: 6px;
}
.hero-content h1,
.hero-content h2 {
  color: #fff;
  font-size: clamp(28px, 5vw, 48px);
  line-height: 1.15;
  margin-bottom: 10px;
}
.hero-content h1 em,
.hero-content h2 em { color: var(--gold-light); font-style: italic; }
.hero-content .sub {
  color: rgba(255, 255, 255, 0.95);
  font-size: clamp(15px, 2vw, 17px);
  margin-bottom: 22px;
}

/* .has-hero just signals body class — ensure no top padding under sticky header */
body.has-hero { /* no-op; .page-hero already handles layout */ }


/* ---------- 38.16  MISC UTILITY / FIXES ---------- */

/* Generic `.sub` paragraph under titles */
.sub {
  color: rgba(255, 255, 255, 0.92);
  font-size: 15px;
}
/* In CMS / non-hero context, keep .sub readable */
.cms-content .sub,
.section .sub,
.auth-body .sub {
  color: var(--slate);
}

/* Profile page needs some breathing room below sticky header */
body.profile-page .page-hero + .container,
body.profile-page .container:first-of-type { padding-top: 24px; }

/* Make sure icons inside icon-wrap (legacy alias) render in circles */
.icon-wrap {
  width: 62px;
  height: 62px;
  border-radius: 50%;
  background: var(--green-light);
  color: var(--green-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  margin-bottom: 14px;
}
.why-card.orange .icon-wrap { background: var(--orange-light); color: var(--orange-dark); }
.why-card.gold   .icon-wrap { background: var(--gold-light);   color: var(--gold-dark); }
.why-card.info   .icon-wrap { background: #e3eefa;              color: var(--info); }

/* "Why Choose Us" card icons (Home) are self-contained SVGs that already
   draw their own circular background + glyph — the shared .icon-wrap's own
   background is dropped here (kept for the icon-font cards elsewhere, e.g.
   Pages\about.php's Values section, which still needs it) so the icon isn't
   rendered as a small nested circle-in-circle. */
.why-card .icon-wrap.why-card-icon-wrap {
  background: transparent;
  width: 68px;
  height: 68px;
}
.why-card .icon-wrap.why-card-icon-wrap img {
  width: 100%;
  height: 100%;
  display: block;
}

/* Contact form section card */
.search-form-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 22px;
  box-shadow: var(--sh-sm);
}
.search-form-section {
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--line-soft);
}
.search-form-section:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: none;
}
.search-form-section-title {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.search-form-section-title i { color: var(--orange); font-size: 18px; }


/* ---------- 38.17  FINAL COVERAGE (remaining classes) ---------- */

/* <main class="dash-main"> — sub-page content column in dashboard */
.dash-main {
  display: block;
  min-width: 0; /* prevent grid overflow */
}

/* Pricing card price / period */
.pricing-card .price {
  font-family: var(--font-display);
  font-size: 36px;
  font-weight: 700;
  color: var(--green-dark);
  line-height: 1;
  margin: 10px 0 4px;
}
.pricing-card .price small {
  font-size: 14px;
  color: var(--slate);
  font-weight: 500;
  font-family: var(--font-body);
}
.pricing-card.featured .price { color: var(--gold-dark); }
.pricing-card .period {
  font-size: 12.5px;
  color: var(--muted);
  margin-bottom: 12px;
}

/* Feature-list 'off' (unavailable) items */
.feature-list li.off {
  color: var(--muted);
  text-decoration: line-through;
  text-decoration-color: var(--line);
}
.feature-list li.off i { color: var(--muted); }


/* =========================================================
   39. COMPLETING PAGE COVERAGE (final fixes)
   Targeted fixes for register wizard, login social buttons,
   search-results layout conflict, profile-hero card conflict,
   dashboard structure, hero wrapper.
   ========================================================= */

/* ---------- 39.1 REGISTER WIZARD (critical: hide inactive steps) ---------- */
.form-progress-wrap {
  margin-bottom: 26px;
}
.form-progress-steps {
  display: flex;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 12px;
  overflow-x: auto;
  scrollbar-width: none;
}
.form-progress-steps::-webkit-scrollbar { display: none; }

/* override for form-progress-step which is direct child of .form-progress-steps */
.form-progress-steps .form-progress-step {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-size: 11px;
  color: var(--muted);
  gap: 4px;
  min-width: 68px;
  text-align: center;
  position: relative;
}
.form-progress-steps .form-progress-step.active { color: var(--green-dark); font-weight: 600; }
.form-progress-steps .form-progress-step.done   { color: var(--green-dark); }

/* Step-dot needs centered number inside */
.step-dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.step-dot span {
  line-height: 1;
}

/* Progress bar underneath the steps */
.form-progress-bar-wrap {
  background: var(--line);
  height: 4px;
  border-radius: 4px;
  overflow: hidden;
  position: relative;
}
.form-progress-bar {
  background: linear-gradient(90deg, var(--green), var(--orange));
  height: 100%;
  width: 14%;          /* step 1 of 7 */
  border-radius: 4px;
  transition: width 0.4s var(--ease);
}

/* CRITICAL: form-step visibility — only the active one shows */
.form-step {
  display: none;
}
.form-step.active {
  display: block;
  animation: fadeInUp 0.35s var(--ease);
}

.form-step > h4 {
  font-size: 20px;
  color: var(--ink);
  margin-bottom: 4px;
}

/* Back / Next footer row */
.form-nav-buttons {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--line-soft);
}
.form-nav-buttons .btn-prev { margin-right: auto; }
/* When only .btn-next is present, push it to the right via .ms-auto Bootstrap class */


/* ---------- 39.2 LOGIN SOCIAL BUTTONS ---------- */
.btn-social {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: var(--r-sm);
  font-size: 14px;
  font-weight: 500;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  text-decoration: none;
  transition: all var(--t-fast);
}
.btn-social:hover {
  transform: translateY(-1px);
  box-shadow: var(--sh-sm);
}
.btn-social.google {
  color: #db4437;
  border-color: #db4437;
}
.btn-social.google:hover {
  background: #db4437;
  color: #fff;
}
.btn-social.facebook {
  color: #1877f2;
  border-color: #1877f2;
}
.btn-social.facebook:hover {
  background: #1877f2;
  color: #fff;
}
.btn-social i {
  font-size: 18px;
}


/* ---------- 39.3 SEARCH-RESULTS (fix Bootstrap row/col layout) ---------- */
.search-layout {
  display: block;              /* was grid, breaking .row inside */
  padding: 24px 0;
}

/* Scope .diet-dot to card context ONLY. Inside filter labels,
   use a neutral inline chip instead. */
.filter-sidebar .fg-body label .diet-dot,
.filter-group label .diet-dot {
  display: inline-block;
  width: 12px;
  height: 12px;
  border: 1.5px solid var(--green);
  border-radius: 2px;
  position: relative;
  background: #fff;
  flex-shrink: 0;
  vertical-align: middle;
}
.filter-sidebar .fg-body label .diet-dot::after,
.filter-group label .diet-dot::after {
  content: '';
  position: absolute;
  inset: 2px;
  background: var(--green);
  border-radius: 50%;
}
.filter-sidebar .fg-body label .diet-dot.nonveg,
.filter-group label .diet-dot.nonveg { border-color: var(--danger); }
.filter-sidebar .fg-body label .diet-dot.nonveg::after,
.filter-group label .diet-dot.nonveg::after {
  background: var(--danger);
  border-radius: 0;
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  inset: 1px;
}
.filter-sidebar .fg-body label .diet-dot.vegan,
.filter-group label .diet-dot.vegan { border-color: var(--green-dark); }
.filter-sidebar .fg-body label .diet-dot.vegan::after,
.filter-group label .diet-dot.vegan::after {
  background: var(--green-dark);
  border-radius: 0;
  clip-path: polygon(50% 0%, 100% 50%, 85% 100%, 15% 100%, 0 50%);
  inset: 1px;
}

.close-filter {
  background: var(--bg-soft);
  border: none;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: var(--slate);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}


/* ---------- 39.4 PROFILE-HERO (remove card styling from section) ---------- */
/* The <section class="profile-hero"> is just a wrapper, not a card.
   Override the earlier rule that gave it border/background. */
section.profile-hero {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
  padding: 24px 0;
}
/* If .profile-info exists, it becomes the card */
.profile-info {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 22px;
  box-shadow: var(--sh-sm);
  margin-bottom: 16px;
}


/* ---------- 39.5 HERO section wrapper ---------- */
.hero {
  position: relative;
  background: transparent;
}


/* ---------- 39.7 MESSAGES (.dash-main flex for chat fill) ---------- */
.dash-main {
  min-width: 0;       /* prevent grid blowout */
  flex: 1;
  max-width: 100%;
}


/* ---------- 39.8 LINK UNDERLINE CLEANUP ---------- */
/* Social buttons, chat links, filter anchors — make sure they don't underline */
.btn-social,
.chat-list-item,
.filter-group,
.dash-nav-item {
  text-decoration: none;
}


/* =========================================================
   40. NEW COMPONENTS (hero rebuild, profile innovation,
       lightbox, contact gate, auth rows, chat compose)
   ========================================================= */

/* ---------- 40.1 HERO — two-column (copy + register card) ---------- */
.hero-two-col {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  align-items: center;
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
}
@media (min-width: 992px) {
  .hero-two-col { grid-template-columns: 1.05fr 0.95fr; gap: 40px; }
}
.hero-copy h1 {
  color: #fff;
  font-size: clamp(28px, 4.8vw, 48px);
  line-height: 1.1;
  margin-bottom: 14px;
  font-weight: 700;
}
.hero-copy h1 em { color: var(--gold-light); font-style: italic; }
.hero-copy .sub {
  color: rgba(255, 255, 255, 0.95);
  font-size: 15.5px;
  margin-bottom: 16px;
  max-width: 520px;
}
.hero-trust {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.hero-trust span {
  color: #fff;
  font-size: 12.5px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255, 255, 255, 0.16);
  backdrop-filter: blur(6px);
  padding: 6px 12px;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.hero-trust i { color: var(--gold-light); }

/* Hero register form card */
.hero-register-card {
  max-width: 440px;
  margin: 0 auto;
  width: 100%;
  padding: 22px;
}
.hero-register-card h3 {
  font-size: 19px;
  margin-bottom: 4px;
  color: var(--ink);
}
.hero-register-card .tag-line {
  color: var(--slate);
  font-size: 13px;
  margin-bottom: 16px;
}
.hero-form-v { display: flex; flex-direction: column; gap: 10px; }
.hf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.hf-field label {
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--slate);
  margin-bottom: 4px;
  display: block;
}
.hf-field select {
  width: 100%;
  background: var(--bg-soft);
  border: 1px solid var(--line);
  font-size: 13.5px;
  padding: 9px 10px;
  color: var(--ink);
  border-radius: var(--r-sm);
}
.hf-field select:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(214, 31, 38, 0.15);
  outline: none;
}
.hf-submit {
  width: 100%;
  margin-top: 8px;
  font-size: 15px;
  padding: 12px;
  justify-content: center;
}
.hf-foot {
  text-align: center;
  font-size: 13px;
  color: var(--slate);
  margin-top: 8px;
}
.hf-foot a { font-weight: 600; color: var(--orange); }

@media (max-width: 991px) {
  .hero-register-card { margin-top: 8px; padding: 18px; }
  .hero-copy h1 { font-size: 28px; }
  .hero-trust span { font-size: 11.5px; padding: 5px 10px; }
}


/* ---------- 40.2 AUTH BUTTON LAYOUTS ---------- */
.auth-btn-row {
  display: flex;
  gap: 10px;
  margin-top: 18px;
  flex-wrap: wrap;
}
.auth-btn-row > .btn {
  flex: 1 1 180px;
  justify-content: center;
}
.auth-btn-stack {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
  margin-top: 18px;
}
.auth-btn-stack > .btn {
  min-width: 260px;
  justify-content: center;
}
.auth-btn-center {
  display: flex;
  justify-content: center;
  margin-top: 18px;
}
.auth-btn-center > .btn {
  min-width: 260px;
  justify-content: center;
}


/* ---------- 40.3 PROFILE PAGE — innovative gallery ---------- */
.main-img-wrap {
  position: relative;
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--sh-md);
  cursor: zoom-in;
  aspect-ratio: 4 / 5;
  background: var(--bg-soft);
}
.main-img-wrap .main-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease);
  display: block;
}
.main-img-wrap:hover .main-img { transform: scale(1.04); }
.main-img-wrap .img-overlay {
  position: absolute;
  bottom: 14px;
  left: 14px;
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  padding: 6px 14px;
  border-radius: 20px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  opacity: 0;
  transform: translateY(6px);
  transition: all var(--t-fast);
}
.main-img-wrap:hover .img-overlay { opacity: 1; transform: translateY(0); }

.img-badge {
  position: absolute;
  font-size: 11px;
  font-weight: 700;
  padding: 5px 11px;
  border-radius: 20px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  letter-spacing: 0.03em;
  box-shadow: var(--sh-sm);
}
.img-badge.premium {
  top: 14px;
  left: 14px;
  background: linear-gradient(135deg, var(--gold), var(--gold-dark));
  color: #fff;
}
.img-badge.online {
  top: 14px;
  right: 14px;
  background: rgba(255, 255, 255, 0.95);
  color: var(--green-dark);
}
.img-badge.online i { color: var(--green); font-size: 8px; animation: pulse 1.5s infinite; }
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.4; }
}

.profile-compat {
  margin-top: 14px;
  background: linear-gradient(135deg, var(--green), var(--green-dark));
  color: #fff;
  padding: 16px 18px;
  border-radius: var(--r-md);
  display: flex;
  align-items: center;
  gap: 16px;
  box-shadow: var(--sh-md);
}
.compat-big {
  font-family: var(--font-display);
  font-size: 36px;
  font-weight: 700;
  color: var(--gold-light);
  line-height: 1;
  flex-shrink: 0;
}
.compat-label {
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  margin-bottom: 2px;
}
.compat-sub {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.85);
}


/* ---------- 40.4 CONTACT DETAILS — blurred + premium gate ---------- */
.contact-locked {
  position: relative;
  min-height: 280px;
  border-radius: var(--r-md);
  overflow: hidden;
}
.contact-blur {
  filter: blur(6px);
  pointer-events: none;
  user-select: none;
  opacity: 0.6;
}
.unlock-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.8) 0%, rgba(255, 255, 255, 0.95) 60%);
  backdrop-filter: blur(2px);
}
.unlock-box {
  text-align: center;
  max-width: 400px;
  padding: 24px;
}
.unlock-box > i {
  font-size: 44px;
  color: var(--gold-dark);
  display: block;
  margin-bottom: 12px;
}
.unlock-box h5 {
  font-size: 20px;
  color: var(--ink);
  margin-bottom: 8px;
}
.unlock-box p {
  color: var(--slate);
  font-size: 14px;
  margin-bottom: 18px;
}
.unlock-benefits {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 16px;
  text-align: left;
  padding: 14px 18px;
  background: var(--gold-light);
  border-radius: var(--r-sm);
  border: 1px solid var(--gold);
}
.unlock-benefits span {
  font-size: 13px;
  color: var(--gold-dark);
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.unlock-benefits i { color: var(--green); }

.lock-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  background: var(--gold);
  color: #fff;
  border-radius: 50%;
  font-size: 9px;
  margin-left: 4px;
}


/* ---------- 40.5 LIGHTBOX ---------- */
.lightbox {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.92);
  z-index: 3000;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  animation: lbFade 0.2s var(--ease);
}
.lightbox.open { display: flex; }
@keyframes lbFade {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.lightbox-img {
  max-width: 92vw;
  max-height: 85vh;
  border-radius: var(--r-md);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
  user-select: none;
  transition: transform var(--t-med);
}
.lightbox-close,
.lightbox-nav {
  position: absolute;
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #fff;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  font-size: 20px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background var(--t-fast);
}
.lightbox-close:hover,
.lightbox-nav:hover { background: rgba(255, 255, 255, 0.3); }
.lightbox-close { top: 20px; right: 20px; }
.lightbox-nav.prev { left: 20px; top: 50%; transform: translateY(-50%); }
.lightbox-nav.next { right: 20px; top: 50%; transform: translateY(-50%); }
.lightbox-counter {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  background: rgba(0, 0, 0, 0.6);
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 13px;
  letter-spacing: 0.05em;
}


/* ---------- 40.6 COMPLETION RING — FIX CENTER ALIGNMENT ----------
   SVG is 90×90 viewBox. Container must match for text to center.
   Override the earlier 120×120 rule from Section 31.
   ---------------------------------------------------------- */
.completion-ring {
  width: 90px;
  height: 90px;
  position: relative;
  margin: 0 auto;
  flex-shrink: 0;
}
.completion-ring svg {
  width: 90px;
  height: 90px;
  display: block;
  transform: rotate(-90deg);
}
.completion-ring .ring-text,
.completion-ring .pct {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 700;
  color: var(--green-dark);
  line-height: 1;
  text-align: center;
}

/* Ring inside coloured completion-cards (verify-profile uses gold gradient bg) */
.completion-card[style*="gold"] .ring-text,
.completion-card[style*="linear-gradient"] .ring-text {
  color: #fff;
}


/* ---------- 40.7 CHAT COMPOSE — beautified ---------- */
.chat-compose {
  gap: 8px;
  align-items: center;
  padding: 14px 16px;
  background: var(--bg-soft);
}
/* Composer locked by the plan-tier rule — the member can read the thread but
   not reply until they upgrade. */
.chat-locked-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  background: #fdf5e9;
  border-top: 1px solid rgba(224, 145, 58, .35);
  color: #9A5B12;
  font-size: 12.5px;
  font-weight: 600;
}
.chat-locked-notice[hidden] { display: none; }
.chat-locked-cta {
  margin-left: auto;
  flex-shrink: 0;
  background: linear-gradient(100deg, #D6362A 0%, #E0913A 100%);
  color: #fff;
  border-radius: 999px;
  padding: 4px 14px;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}
.chat-locked-cta:hover { color: #fff; text-decoration: none; filter: brightness(1.05); }
.chat-compose.is-locked { opacity: .55; }
.chat-compose.is-locked input,
.chat-compose.is-locked button { cursor: not-allowed; }
.chat-compose .icon-btn {
  width: 38px;
  height: 38px;
  border: none;
  background: transparent;
  color: var(--slate);
}
.chat-compose .icon-btn:hover {
  background: rgba(214, 31, 38, 0.1);
  color: var(--green-dark);
  border: none;
}
.chat-compose input[type="text"],
.chat-compose .form-control {
  flex: 1;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 24px;
  padding: 10px 18px;
  font-size: 14px;
  transition: all var(--t-fast);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
.chat-compose input[type="text"]:focus,
.chat-compose .form-control:focus {
  outline: none;
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(214, 31, 38, 0.12);
}
.chat-compose button[type="submit"] {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: none;
  background: linear-gradient(135deg, var(--green), var(--green-dark));
  color: #fff;
  font-size: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: var(--sh-green);
  transition: transform var(--t-fast);
  flex-shrink: 0;
}
.chat-compose button[type="submit"]:hover {
  transform: scale(1.08);
}
.chat-compose button[type="submit"] i { margin: 0; }


/* ---------- 40.8 DASHBOARD SIDEBAR AUTO-SCROLL INDICATOR ---------- */
.dash-sidebar {
  scroll-behavior: smooth;
}


/* ---------- 40.9 HERO RESPONSIVE REFINE ---------- */
@media (max-width: 575px) {
  .hero-slide { padding: 24px 16px; }
  .hero-register-card { padding: 16px; }
  .hf-row { grid-template-columns: 1fr 1fr; gap: 8px; }
  .hero-trust { gap: 6px; }
}



/* =========================================================
   41. ROUND 5 FIXES — comprehensive visual + layout polish
   ========================================================= */

/* ---------- 41.1 BOTTOM-NAV middle circle — positioning + keyframes
   (the actual circle styling lives in Section 42.4 to avoid conflicts) ---------- */
.bottom-nav a.center-btn,
.bottom-nav a.center-highlight {
  position: relative;
  margin-top: -30px;
}
@keyframes centerPulse {
  0%, 100% {
    box-shadow: 0 6px 18px rgba(198, 138, 58, 0.45),
                0 0 0 0 rgba(198, 138, 58, 0.55);
  }
  50% {
    box-shadow: 0 6px 18px rgba(198, 138, 58, 0.45),
                0 0 0 14px rgba(198, 138, 58, 0);
  }
}


/* ---------- 41.2 HERO MOBILE — eliminate overlap / make all clickable ---------- */
@media (max-width: 767px) {
  .hero { padding: 0; }
  .hero-slide {
    min-height: auto;
    padding: 26px 18px 32px;
  }
  .hero-two-col {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .hero-copy { max-width: 100%; }
  .hero-copy h1 {
    font-size: 24px;
    line-height: 1.15;
    margin-bottom: 10px;
  }
  .hero-copy .sub { font-size: 13.5px; margin-bottom: 12px; }
  .hero-trust { display: none; }   /* save space on mobile */
  .hero-register-card {
    padding: 16px;
    max-width: 100%;
    position: relative;
    z-index: 2;               /* above slide overlay */
  }
  /* Stack register card firmly BELOW copy, no overlap */
  .hero-slide .hero-content {
    position: relative;
    z-index: 3;
  }
  /* Carousel arrows get out of the way on mobile */
  .hero-carousel .carousel-control-prev,
  .hero-carousel .carousel-control-next {
    width: 36px;
    height: 36px;
    margin: 0 4px;
    opacity: 0.7;
  }
  .hero-carousel .carousel-indicators { bottom: 6px; }
}


/* ---------- 41.3 METRICS SECTION — proper heading ---------- */
/* ---------- 41.4 SCAN-TO-DOWNLOAD — mobile left gap ---------- */
@media (max-width: 767px) {
  .get-the-app {
    padding: 36px 0;
  }
  .get-the-app > .container {
    padding-left: 18px;
    padding-right: 18px;
  }
  .get-the-app .app-stats,
  .get-the-app .store-badges {
    justify-content: flex-start;
  }
  .get-the-app .store-badges { flex-wrap: nowrap; gap: 8px; }
  .get-the-app .store-badge { flex: 1 1 0; min-width: 0; justify-content: center; padding: 8px 10px; gap: 6px; }
  .get-the-app .store-badge .sb-big { font-size: 13px; }
  .get-the-app .store-badge .sb-small { font-size: 8.5px; }
  .get-the-app .qr-code,
  .get-the-app .qr-block {
    margin-top: 20px;
    padding-left: 4px;
  }
}


/* ---------- 41.5 PAGE-HERO "Perfect Marry" orange heading ---------- */
.page-hero h1 .brand-accent,
.page-hero h1 span.brand,
.page-hero h1 em {
  color: var(--gold-light);
  font-style: italic;
}
/* When the heading literally contains "Perfect Marry", colour via JS adding .brand-accent */


/* ---------- 41.6 INTERESTS / SHORTLISTED / VISITORS GRIDS 4→3 ---------- */
/* Override Bootstrap col classes for these specific pages only */
body.dash-page-list .row .col-lg-3 {
  flex: 0 0 auto;
  width: 33.333%;
}
@media (max-width: 991px) {
  body.dash-page-list .row .col-lg-3 {
    width: 50%;
  }
}
@media (max-width: 575px) {
  body.dash-page-list .row .col-lg-3 {
    width: 100%;
  }
}


/* ---------- 41.7 SAFETY-TIPS / PREMIUM-PLANS feature cards center ---------- */
.feature-center-card,
.safety-card,
.plan-feature-card {
  text-align: center;
  padding: 24px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  height: 100%;
  transition: all var(--t-fast);
}
.feature-center-card:hover,
.safety-card:hover,
.plan-feature-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-md);
  border-color: var(--green);
}
.feature-center-card .fc-icon,
.safety-card .fc-icon,
.plan-feature-card .fc-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--green-light);
  color: var(--green-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  margin: 0 auto 14px;
}
.feature-center-card.orange .fc-icon,
.safety-card.orange .fc-icon,
.plan-feature-card.orange .fc-icon { background: var(--orange-light); color: var(--orange-dark); }
.feature-center-card.gold .fc-icon,
.safety-card.gold .fc-icon,
.plan-feature-card.gold .fc-icon { background: var(--gold-light); color: var(--gold-dark); }
.feature-center-card h5,
.safety-card h5,
.plan-feature-card h5 {
  font-size: 17px;
  margin-bottom: 8px;
}
.feature-center-card p,
.safety-card p,
.plan-feature-card p {
  color: var(--slate);
  font-size: 14px;
  margin: 0;
}


/* ---------- 41.8 DASHBOARD — 4th stat card fix + gaps + matches 3-col ---------- */
@media (max-width: 767px) {
  .dash-stat-card {
    padding: 14px;
    gap: 10px;
  }
  .dash-stat-card .stat-num,
  .dash-stat-card .val { font-size: 18px; }
  .dash-stat-card .stat-label,
  .dash-stat-card .lbl { font-size: 11px; }
  .dash-stat-card .ds-icon,
  .dash-stat-card .stat-icon { width: 40px; height: 40px; font-size: 18px; }
}
/* Nudge cards: visible gap */
.nudge + .nudge {
  margin-top: 14px;
}
/* See all matches button: bottom margin */
.matches-cta-row {
  margin: 28px 0 20px;
  text-align: center;
}


/* ---------- 41.9 FORM SECTION BACKGROUND HEADINGS (edit-profile, search, partner-preferences) ---------- */
.form-section,
.pref-section {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 22px;
  margin-bottom: 20px;
  box-shadow: var(--sh-sm);
}
.form-section-heading,
.pref-section-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  margin: -22px -22px 16px -22px;
  background: linear-gradient(135deg, var(--green-light), var(--gold-light));
  border-bottom: 1px solid var(--line);
  border-radius: var(--r-md) var(--r-md) 0 0;
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 600;
  color: var(--ink);
}
.form-section-heading i,
.pref-section-heading i {
  color: var(--orange);
  font-size: 20px;
}


/* ---------- 41.10 MESSAGES mobile right-side gap ---------- */
@media (max-width: 767px) {
  .chat-main-head {
    padding: 10px 14px;
    border-radius: var(--r-md) var(--r-md) 0 0;
  }
  .chat-messages { padding: 14px 12px 12px; }
  .chat-compose {
    padding: 12px;
    border-radius: 0 0 var(--r-md) var(--r-md);
  }
  .dash-main > .chat-container {
    margin-right: 0;
    margin-left: 0;
  }
}


/* ---------- 41.11 NRI Featured Profiles grid tweaks ---------- */
.nri-featured-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-top: 20px;
}
@media (min-width: 576px) { .nri-featured-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .nri-featured-grid { grid-template-columns: repeat(4, 1fr); } }


/* ---------- 41.12 PAYMENT coupon layout ---------- */
.coupon-wrap { margin-bottom: 20px; }
.coupon-input-row {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
}
.coupon-input-row input {
  flex: 1;
  padding: 11px 14px;
  border: 1px dashed var(--green);
  border-radius: var(--r-sm);
  background: var(--green-light);
  color: var(--ink);
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 600;
}
.coupon-input-row input::placeholder {
  color: var(--slate);
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}
/* Applied-coupon state — code in a dashed green box + a Remove link + a note. */
.coupon-applied .coupon-input-row { align-items: center; margin-bottom: 8px; }
.coupon-code-box {
  flex: 1;
  padding: 11px 14px;
  border: 1px dashed var(--green);
  border-radius: var(--r-sm);
  background: var(--green-light);
  color: var(--ink);
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
}
.btn-coupon-remove {
  border: none;
  background: transparent;
  color: #c0392b;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  padding: 6px 10px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.btn-coupon-remove:hover { color: #a02622; }
.coupon-applied-note { color: #1f7a3f; font-size: 13px; margin-bottom: 14px; }
.coupon-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.coupon-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: #fff;
  border: 1px dashed var(--line);
  border-radius: var(--r-md);
  transition: all var(--t-fast);
  cursor: pointer;
}
.coupon-card:hover {
  border-color: var(--green);
  background: var(--green-light);
}
.coupon-card .coupon-code {
  background: var(--green-light);
  color: var(--green-dark);
  padding: 6px 12px;
  border-radius: var(--r-sm);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.08em;
  border: 1px dashed var(--green);
  flex-shrink: 0;
}
.coupon-card .coupon-body { flex: 1; min-width: 0; }
.coupon-card .coupon-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 2px;
}
.coupon-card .coupon-desc {
  font-size: 12.5px;
  color: var(--slate);
}
.coupon-card .btn { flex-shrink: 0; }

/* ---------- Contact form reCAPTCHA wrapper ---------- */
.recaptcha-wrap { display: flex; flex-direction: column; align-items: flex-start; margin-top: 4px; }
.recaptcha-wrap .g-recaptcha { transform-origin: 0 0; }
@media (max-width: 360px) {
  /* Slightly scale down the widget on very narrow viewports so it doesn't overflow */
  .recaptcha-wrap .g-recaptcha { transform: scale(0.88); }
}

/* ---------- Inbox filter: Conversation-type chips ---------- */
.conv-type-filter {
  background: linear-gradient(135deg, rgba(255,255,255,0.7), rgba(255,255,255,0.55));
  border: 1px solid rgba(243,224,203,0.6);
  border-radius: 14px;
  padding: 16px 14px 14px;
  margin: 16px 16px 0;
}
.conv-type-filter > .form-label {
  font-weight: 600;
  color: var(--ink);
  margin: 0 0 10px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
}
.conv-type-filter > .form-label i { color: var(--orange-dark); }
.conv-type-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.conv-chip {
  background: #fff;
  border: 1.5px solid var(--line);
  color: var(--ink);
  font-weight: 500;
  font-size: 13px;
  padding: 7px 14px;
  border-radius: 50px;
  cursor: pointer;
  transition: all 0.18s;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: inherit;
  line-height: 1.2;
}
.conv-chip:hover {
  border-color: var(--orange);
  color: var(--orange-dark);
}
.conv-chip.active {
  background: linear-gradient(135deg, var(--green) 0%, var(--orange) 100%);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 3px 10px rgba(214,31,38,0.2);
}
.conv-chip .chip-check { display: none; font-size: 12px; }
.conv-chip.active .chip-check { display: inline; }

/* Mobile: stack coupon controls vertically so nothing overflows the card */
@media (max-width: 575.98px) {
  .coupon-input-row { flex-direction: column; gap: 10px; }
  .coupon-input-row input { width: 100%; }
  .coupon-input-row .btn { width: 100%; }

  .coupon-card {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    padding: 12px 14px;
  }
  .coupon-card .coupon-code { align-self: flex-start; }
  .coupon-card .btn { width: 100%; }
  .coupon-card .coupon-title,
  .coupon-card .coupon-desc { word-break: normal; overflow-wrap: anywhere; }
}


/* ---------- 41.13 SEARCH-RESULTS — filter accordion + list view ---------- */
/* Ensure filter-sidebar uses proper cursor + click area on desktop + mobile */
.filter-sidebar .filter-group {
  padding: 14px 4px;
  border-bottom: 1px solid var(--line-soft);
}
.filter-sidebar .filter-group:last-child { border-bottom: none; }
.filter-sidebar .fg-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  font-weight: 600;
  font-size: 14px;
  color: var(--ink);
  padding: 2px 0;
  user-select: none;
}
.filter-sidebar .fg-head::after {
  content: '\F282';          /* bootstrap chevron-down */
  font-family: 'bootstrap-icons';
  color: var(--slate);
  transition: transform var(--t-fast);
  font-size: 12px;
}
.filter-sidebar .filter-group.open .fg-head::after { transform: rotate(180deg); }
.filter-sidebar .fg-body {
  display: none;
  padding-top: 12px;
}
.filter-sidebar .filter-group.open .fg-body { display: block; }

/* Mobile: 2 per row for search results */
@media (max-width: 575px) {
  .results-grid:not([data-view="list"]) > .col-6,
  .results-grid:not([data-view="list"]) > [class*="col-"] {
    flex: 0 0 50%;
    max-width: 50%;
    padding: 0 6px;
  }
  .results-grid { margin-left: -6px; margin-right: -6px; }
}

/* View toggle: icons properly aligned */
.view-toggle {
  display: inline-flex;
  gap: 0;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  overflow: hidden;
}
.view-toggle button {
  border: none;
  border-radius: 0;
  padding: 8px 12px;
  background: #fff;
  color: var(--slate);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  cursor: pointer;
  transition: all var(--t-fast);
}
.view-toggle button + button { border-left: 1px solid var(--line); }
.view-toggle button:hover { color: var(--green-dark); }
.view-toggle button.active {
  background: var(--green);
  color: #fff;
}

/* Mobile filter modal full-screen */
/* [neutralized — see Section 45] .filter-modal { */
/*   display: none; */
/*   position: fixed; */
/*   inset: 0; */
/*   background: #fff; */
/*   z-index: 2100; */
/*   flex-direction: column; */
/* } */
/* [neutralized — see Section 45] .filter-modal.open { display: flex; } */
body.filter-open { overflow: hidden; }


/* ---------- 41.14 MANAGE PHOTOS — uploader more attractive ---------- */
.photo-upload-zone {
  border: 2px dashed var(--green);
  background: linear-gradient(135deg, var(--green-light), #fff);
  border-radius: var(--r-md);
  padding: 32px 20px;
  text-align: center;
  transition: all var(--t-fast);
  cursor: pointer;
  position: relative;
}
.photo-upload-zone:hover {
  border-color: var(--green-dark);
  background: var(--green-light);
  transform: translateY(-2px);
  box-shadow: var(--sh-md);
}
.photo-upload-zone .pz-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 12px;
  border-radius: 50%;
  background: #fff;
  color: var(--green);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  box-shadow: var(--sh-sm);
}
.photo-upload-zone h5 {
  font-size: 18px;
  color: var(--ink);
  margin-bottom: 4px;
}
.photo-upload-zone p {
  color: var(--slate);
  font-size: 13px;
  margin-bottom: 14px;
}
.photo-upload-zone .browse-btn {
  background: linear-gradient(135deg, var(--green), var(--green-dark));
  color: #fff;
  border: none;
  padding: 11px 28px;
  font-weight: 600;
  font-size: 14px;
  border-radius: 26px;
  box-shadow: var(--sh-green);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: transform var(--t-fast);
}
.photo-upload-zone .browse-btn:hover { transform: scale(1.04); }

@media (max-width: 767px) {
  .boost-visibility-card { margin-bottom: 22px; }
}


/* ---------- 41.15 VIDEO-PROFILE youtube embed ---------- */
.video-player-wrap {
  position: relative;
  aspect-ratio: 16 / 9;
  background: #000;
  border-radius: var(--r-md);
  overflow: hidden;
  cursor: pointer;
}
.video-player-wrap img,
.video-player-wrap iframe {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: none;
}
.video-player-wrap .play-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.3);
  transition: background var(--t-fast);
}
.video-player-wrap:hover .play-overlay { background: rgba(0, 0, 0, 0.15); }
.video-player-wrap .play-overlay i {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(198, 138, 58, 0.95);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
  padding-left: 4px;
}


/* ---------- 41.16 CONTACT page — center align + button ---------- */
.contact-info-card {
  text-align: center;
  padding: 26px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  height: 100%;
  transition: all var(--t-fast);
}
.contact-info-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-md);
  border-color: var(--green);
}
.contact-info-card .ci-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--green-light);
  color: var(--green-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  margin: 0 auto 12px;
}
.contact-info-card.orange .ci-icon { background: var(--orange-light); color: var(--orange-dark); }
.contact-info-card.gold .ci-icon { background: var(--gold-light); color: var(--gold-dark); }
.contact-info-card h6 {
  font-size: 16px;
  margin-bottom: 6px;
  color: var(--ink);
  font-family: var(--font-display);
}
.contact-info-card p,
.contact-info-card a {
  font-size: 13.5px;
  color: var(--slate);
  margin: 0;
  display: block;
}
.contact-info-card a { color: var(--green-dark); font-weight: 500; margin-top: 2px; }

.contact-send-row {
  display: flex;
  justify-content: center;
  margin-top: 24px;
}


/* ---------- 41.17 REPORT-MISUSE + SETTINGS gap/align ---------- */
.settings-group,
.report-group {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 22px;
  margin-bottom: 18px;
  box-shadow: var(--sh-sm);
}
.settings-group h5,
.report-group h5 {
  font-size: 16px;
  color: var(--ink);
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line-soft);
  display: flex;
  align-items: center;
  gap: 8px;
}
.settings-group h5 i,
.report-group h5 i { color: var(--orange); font-size: 18px; }

.action-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--line-soft);
}
@media (max-width: 575px) {
  .action-row {
    justify-content: center;
  }
  .action-row > .btn { flex: 1 1 140px; }
}


/* ---------- 41.18 CAT-PANEL visibility (only active shows) ---------- */
.cat-panel {
  display: none;
}
.cat-panel.active {
  display: block;
  animation: fadeInUp 0.3s var(--ease);
}

/* ---------- 41.19 LEGACY CLASS ALIAS — search-form-section → form-section look ---------- */
.search-form-section {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 22px;
  margin-bottom: 20px;
  box-shadow: var(--sh-sm);
  position: relative;
}
.search-form-section-title {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  margin: -22px -22px 16px -22px;
  background: linear-gradient(135deg, var(--green-light), var(--gold-light));
  border-bottom: 1px solid var(--line);
  border-radius: var(--r-md) var(--r-md) 0 0;
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 600;
  color: var(--ink);
}
.search-form-section-title i {
  color: var(--orange);
  font-size: 20px;
}

/* When search-form-section is nested inside a search-form-card, remove the card border */
.search-form-card > .search-form-section:first-child {
  margin-top: 0;
}


/* =========================================================
   42. ROUND 6 FIXES — image logo, mobile fixes, new pages,
       profile meta polish, page-hero contrast, logout modal
   ========================================================= */

/* ---------- 42.1 IMAGE LOGO (Perfect Marry brand mark) ---------- */
.brand-logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: inherit;
}
.brand-logo-img {
  /* New logo aspect ~ 1.5:1 (RM monogram + Perfect Marry.com text) */
  height: 50px;
  width: auto;
  display: block;
  object-fit: contain;
}
@media (min-width: 992px) {
  .brand-logo-img { height: 60px; }
}
@media (max-width: 575px) {
  .brand-logo-img { height: 44px; }
}

/* Footer variant — uses full logo with tagline */
.foot-brand-logo {
  display: inline-block;
  margin-bottom: 12px;
}
.foot-brand-logo img,
.foot-brand-logo svg {
  height: 88px;
  width: auto;
  display: block;
  /* Slight white background pill so logo reads on dark footer */
  background: #fff;
  padding: 8px 14px;
  border-radius: 12px;
}

/* Keep legacy .logo-mark rule working if any page still uses it */
.logo-mark {
  width: 40px; height: 40px;
  background: linear-gradient(135deg, var(--green), var(--orange));
  color: #fff;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-script);
  font-size: 22px;
  flex-shrink: 0;
}


/* ---------- 42.2 HERO CAROUSEL — solid red backdrop matches hero-slide ---------- */
.hero {
  position: relative;
  background: transparent;
  padding: 0;
}
.hero-carousel {
  background: #141826;
  border-radius: 0;
}
.hero-carousel .carousel-inner {
  /* No background here — let it be transparent so only the outer .hero-carousel
     gradient shows through if any layer is empty. Adding a background here
     would cause it to be visible as a band during slide transitions. */
  background: transparent;
}
.hero-slide {
  background-color: #141826;
}
.hero-slide .slide-bg {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  object-fit: cover;
  z-index: 0;
}

/* Ensure controls sit ABOVE the slide-bg + overlay, are always tappable */
.hero-carousel .carousel-control-prev,
.hero-carousel .carousel-control-next {
  z-index: 15;
  pointer-events: auto;
}

/* Mobile: carousel controls inside the slide area (not floating off-screen) */
@media (max-width: 767px) {
  .hero-carousel .carousel-control-prev {
    left: 6px;
    margin: 0;
    width: 36px;
    height: 36px;
  }
  .hero-carousel .carousel-control-next {
    right: 6px;
    margin: 0;
    width: 36px;
    height: 36px;
  }
  .hero-carousel .carousel-control-prev-icon::before,
  .hero-carousel .carousel-control-next-icon::before {
    font-size: 18px;
  }
}


/* ---------- 42.3 MAIN HEADER sticky on mobile too
   (already set in Section 6 — re-enforce with higher specificity) ---------- */
header.site-header,
.site-header {
  position: sticky !important;
  top: 0;
  z-index: 1000;
}


/* ---------- 42.4 BOTTOM-NAV middle circle: solid background ---------- */
/* Already handled in 41.1 — enforce clean background so SVG mask notch shows properly */
.bottom-nav a.center-btn,
.bottom-nav a.center-highlight {
  color: var(--orange-dark);
}
.bottom-nav a.center-btn i,
.bottom-nav a.center-highlight i {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  margin: 0 auto 2px;
  color: #fff;
  background: linear-gradient(135deg, var(--orange), var(--orange-dark)) !important;
  border: 3px solid #fff;
  box-sizing: content-box;
  box-shadow: 0 6px 18px rgba(198, 138, 58, 0.45),
              0 0 0 0 rgba(198, 138, 58, 0.55);
  animation: centerPulse 2.2s ease-in-out infinite;
  position: relative;
  z-index: 1;
}


/* ---------- 42.5 PAGE-HERO text contrast fix ----------
   .page-hero uses green gradient bg. Any h1/p/em in it must be light. ---------- */
.page-hero h1,
.page-hero h1 * {
  color: #fff;
}
.page-hero h1 em,
.page-hero h1 span[style*="color:var(--green-dark)"],
.page-hero h1 span[style*="color:var(--orange)"] {
  color: var(--gold-light) !important;
}
.page-hero .hero-sub,
.page-hero p.hero-sub,
.page-hero p {
  color: rgba(255, 255, 255, 0.95) !important;
}
.page-hero span[style*="color:var(--orange)"] {
  color: var(--gold-light) !important;
}
.page-hero a {
  color: var(--gold-light);
  text-decoration: underline;
}
.page-hero a:hover { color: #fff; }


/* ---------- 42.6 FOOTER Profiles-by section ---------- */
.profiles-by-wrap {
  padding-bottom: 34px;
  margin-bottom: 34px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.profiles-by-heading {
  color: var(--gold-light) !important;
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 22px;
  padding-bottom: 0;
  letter-spacing: 0.02em;
  text-transform: none;
}
.profiles-by-heading::after { display: none; }

.profiles-by-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px 28px;
}
@media (min-width: 768px) {
  .profiles-by-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 992px) {
  .profiles-by-grid { grid-template-columns: repeat(5, 1fr); }
}

.profiles-by-col h6 {
  color: #fff;
  font-size: 13px;
  font-family: var(--font-body);
  font-weight: 600;
  letter-spacing: 0.04em;
  margin-bottom: 10px;
  padding-bottom: 6px;
  display: flex;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.profiles-by-col h6::after { display: none; }
.profiles-by-col a {
  color: #b9c0cc;
  display: block;
  padding: 3px 0;
  font-size: 13px;
  transition: color var(--t-fast);
}
.profiles-by-col a:hover { color: var(--gold); }
.profiles-by-col .view-all-link {
  color: var(--orange);
  font-weight: 600;
  margin-top: 6px;
}
.profiles-by-col .view-all-link:hover { color: var(--gold-light); }


/* ---------- 42.7 BROWSE BY "View All" row under each panel ---------- */
.cat-view-all-row {
  text-align: center;
  margin-top: 22px;
}
.cat-view-all-row .btn {
  gap: 8px;
}


/* ---------- 42.8 CATEGORY DIRECTORY PAGES (religions/cities/etc) ---------- */
.cat-dir-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
@media (min-width: 576px) { .cat-dir-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 768px) { .cat-dir-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1200px) { .cat-dir-grid { grid-template-columns: repeat(4, 1fr); } }

.cat-dir-card {
  display: flex;
  align-items: center;
  gap: 14px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 16px 18px;
  text-decoration: none;
  color: var(--ink);
  transition: all var(--t-fast);
  position: relative;
  overflow: hidden;
}
.cat-dir-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--green), var(--orange));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--t-med);
}
.cat-dir-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--sh-md);
  border-color: var(--green);
  color: var(--ink);
}
.cat-dir-card:hover::before { transform: scaleX(1); }

.cat-dir-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: var(--green-light);
  color: var(--green-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  flex-shrink: 0;
  transition: all var(--t-fast);
}
.cat-dir-card:hover .cat-dir-icon {
  background: linear-gradient(135deg, var(--green), var(--orange));
  color: #fff;
  transform: rotate(-6deg);
}
.cat-dir-name {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 15px;
  color: var(--ink);
  line-height: 1.2;
  margin-bottom: 2px;
}
.cat-dir-count {
  font-size: 12px;
  color: var(--orange);
  font-weight: 500;
}
.cat-dir-arrow {
  margin-left: auto;
  color: var(--muted);
  font-size: 16px;
  transition: all var(--t-fast);
  flex-shrink: 0;
}
.cat-dir-card:hover .cat-dir-arrow {
  color: var(--green-dark);
  transform: translateX(4px);
}


/* ---------- 42.9 PROFILE meta-item — colored centered icons ---------- */
.meta-grid .meta-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 14px 10px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  transition: all var(--t-fast);
}
.meta-grid .meta-item:hover {
  border-color: var(--orange);
  box-shadow: var(--sh-sm);
  transform: translateY(-2px);
}
.meta-grid .meta-item > i {
  font-size: 22px;
  color: var(--orange);
  margin-bottom: 6px;
  line-height: 1;
}
.meta-grid .meta-item .lbl {
  font-size: 10.5px;
  color: var(--muted);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 2px;
}
.meta-grid .meta-item .val {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  font-family: var(--font-display);
}

/* Alternating icon colors for visual rhythm */
.meta-grid .meta-item:nth-child(3n+1) > i { color: var(--green-dark); }
.meta-grid .meta-item:nth-child(3n+2) > i { color: var(--orange); }
.meta-grid .meta-item:nth-child(3n+3) > i { color: var(--gold-dark); }


/* ---------- 42.10 BLOG-POST — reduce banner, full-width carousel ---------- */
body.blog-post-page .page-hero,
.blog-post-page .page-hero {
  padding: 24px 0 20px !important;
}
.blog-post-page .page-hero h1 {
  font-size: clamp(22px, 3.5vw, 32px) !important;
  margin-bottom: 6px;
}
.blog-post-page .page-hero .breadcrumb-custom { margin-bottom: 8px; }

/* Full-width carousel override on blog post */
#blogPostCarousel {
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  border-radius: 0 !important;
}
#blogPostCarousel .carousel-inner { border-radius: 0 !important; }
#blogPostCarousel .carousel-item img {
  max-height: 360px;
  width: 100%;
  object-fit: cover;
}
@media (max-width: 767px) {
  #blogPostCarousel .carousel-item img { max-height: 220px; }
}


/* ---------- 42.11 ASTROLOGY — center tool cards ---------- */
.astro-tool-card {
  text-align: center;
  padding: 26px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  height: 100%;
  transition: all var(--t-fast);
}
.astro-tool-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-md);
  border-color: var(--gold);
}
.astro-tool-card .at-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--gold-light);
  color: var(--gold-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  margin: 0 auto 14px;
}
.astro-tool-card h5 { font-size: 17px; margin-bottom: 8px; }
.astro-tool-card p { font-size: 13.5px; color: var(--slate); margin: 0 0 14px; }


/* ---------- 42.12 SEARCH-RESULTS — grid view polish + filter accordion ---------- */
/* Default grid view — ensure cards are properly sized */
.results-grid:not([data-view="list"]) {
  display: flex;
  flex-wrap: wrap;
  margin-left: -6px;
  margin-right: -6px;
}
.results-grid:not([data-view="list"]) > [class*="col-"] {
  padding: 6px;
}
@media (min-width: 576px) {
  .results-grid:not([data-view="list"]) { margin-left: -8px; margin-right: -8px; }
  .results-grid:not([data-view="list"]) > [class*="col-"] { padding: 8px; }
}

/* Filter group accordion arrow: reliable click target */
.filter-sidebar .fg-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  user-select: none;
  font-weight: 600;
  padding: 10px 0;
  margin: 0;
}
.filter-sidebar .fg-head i.bi-chevron-down {
  transition: transform var(--t-fast);
  color: var(--slate);
  font-size: 12px;
}
.filter-sidebar .filter-group.open .fg-head i.bi-chevron-down {
  transform: rotate(180deg);
}
.filter-sidebar .fg-body {
  display: none;
  padding-top: 8px;
}
.filter-sidebar .filter-group.open .fg-body { display: block; }
/* Remove the duplicate pseudo-arrow from Section 41.13 that was also being added */
.filter-sidebar .fg-head::after { content: none; }


/* ---------- 42.13 MOBILE FILTER MODAL — polish buttons ---------- */
/* [neutralized — see Section 45] .filter-modal-foot { */
/*   display: flex; */
/*   gap: 10px; */
/*   padding: 16px; */
/*   border-top: 1px solid var(--line); */
/*   background: #fff; */
/*   box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.06); */
/* } */
/* [neutralized — see Section 45] .filter-modal-foot .btn { */
/*   flex: 1; */
/*   justify-content: center; */
/*   padding: 12px; */
/*   font-weight: 600; */
/*   font-size: 14px; */
/* } */
/* [neutralized — see Section 45] .filter-modal-foot .btn-cancel { */
/*   background: #fff; */
/*   color: var(--slate); */
/*   border: 1px solid var(--line); */
/* } */
/* [neutralized — see Section 45] .filter-modal-foot .btn-cancel:hover { */
/*   background: var(--bg-soft); */
/* } */
/* [neutralized — see Section 45] .filter-modal-foot .btn-apply { */
/*   background: linear-gradient(135deg, var(--green), var(--green-dark)); */
/*   color: #fff; */
/*   border: none; */
/*   box-shadow: var(--sh-green); */
/* } */
/* [neutralized — see Section 45] .filter-modal-foot .btn-apply:hover { transform: translateY(-1px); } */


/* ---------- 42.14 LOGOUT MODAL ---------- */
.logout-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 4000;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.logout-modal.open { display: flex; }
.logout-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(4px);
}
.logout-dialog {
  position: relative;
  z-index: 1;
  max-width: 420px;
  width: 100%;
  background: #fff;
  border-radius: var(--r-lg);
  padding: 28px 24px;
  text-align: center;
  box-shadow: var(--sh-lg);
  animation: lbFade 0.22s var(--ease);
}
.logout-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--orange-light);
  color: var(--orange-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  margin: 0 auto 14px;
}
.logout-dialog h4 {
  font-size: 22px;
  margin-bottom: 8px;
  color: var(--ink);
}
.logout-dialog p {
  color: var(--slate);
  font-size: 14px;
  margin-bottom: 22px;
}
.logout-actions {
  display: flex;
  gap: 10px;
  justify-content: center;
}
.logout-actions .btn {
  flex: 1;
  justify-content: center;
}


/* ---------- 42.15 PAYMENT — remove Payment Method card section ---------- */
/* Handled by removing HTML */


/* ---------- 42.16 REPORT-MISUSE "Also see:" buttons ---------- */
.also-see-box {
  margin-top: 18px;
  background: var(--bg-soft);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 20px;
}
.also-see-box h5 {
  font-size: 15px;
  margin-bottom: 14px;
  color: var(--ink);
}
.also-see-btns {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.also-see-btns .btn {
  width: 100%;
  justify-content: center;
  padding: 10px 14px;
  font-size: 14px;
}


/* ---------- 42.17 MOBILE HERO no side black gap ---------- */
@media (max-width: 767px) {
  .hero,
  .hero-carousel,
  .hero-carousel .carousel-inner {
    margin: 0;
    padding: 0;
    border-radius: 0;
  }
  .hero-slide {
    padding-left: 18px;
    padding-right: 18px;
  }
}


/* ---------- 42.18 TYPOGRAPHY TWEAKS (align mentions) ---------- */
.contact-info-card p,
.contact-info-card a {
  text-align: center;
}
.dash-sidebar .user-card,
.dash-sidebar .dash-user-card {
  text-align: center;
}

/* Ensure desktop sign-in row in drawer head (mobile) stays center */
.drawer-head .d-flex.gap-2 > .btn {
  justify-content: center;
}


/* =========================================================
   43. SEARCH-RESULTS filter + list-view FIX
   - HTML uses <div class="col"> (not col-X-N) inside .results-grid
   - .profile-card is an <a> element, needs to flex in list view
   ========================================================= */

/* Grid view: Bootstrap's row-cols-* utility handles the columns.
   Nothing to do here — default grid works.
   List view rendering (real .list-card component + visibility toggling)
   lives in Section 53 — this section previously also flexed the grid
   .profile-card into a row for list view, but that's superseded now
   that a real .list-card partial is rendered server-side. */


/* ---------- 43.2 Grid-view mobile: 2 per row ---------- */
@media (max-width: 575px) {
  .results-grid:not([data-view="list"]) > .col {
    flex: 0 0 50% !important;
    max-width: 50% !important;
  }
}


/* =========================================================
   44. FILTER MODAL slide-in animation + desktop actions +
       innovative list-view card design
   ========================================================= */

/* ---------- 44.1 MOBILE FILTER MODAL — right slide-in panel ---------- */
/* [neutralized — see Section 45] .filter-modal { */
/*   display: none; */
/*   position: fixed; */
/*   inset: 0; */
/*   z-index: 2100; */
/*   background: rgba(0, 0, 0, 0.5); */
/*   flex-direction: column; */
/*   opacity: 0; */
/*   transition: opacity 0.22s ease; */
/* } */
/* [neutralized — see Section 45] .filter-modal.open { */
/*   display: flex; */
/*   opacity: 0;  /* starts transparent, .entering fades in */ */
/* } */
/* [neutralized — see Section 45] .filter-modal.open.entering { */
/*   opacity: 1; */
/* } */
/* Inner panel slides in from the right */
.filter-modal > .filter-modal-head,
.filter-modal > .filter-modal-body,
/* [neutralized — see Section 45] .filter-modal > .filter-modal-foot { */
/*   background: #fff; */
/*   transform: translateX(40px); */
/*   opacity: 0; */
/*   transition: transform 0.28s cubic-bezier(0.2, 0.8, 0.2, 1), opacity 0.28s ease; */
/* } */
.filter-modal.open.entering > .filter-modal-head,
.filter-modal.open.entering > .filter-modal-body,
/* [neutralized — see Section 45] .filter-modal.open.entering > .filter-modal-foot { */
/*   transform: translateX(0); */
/*   opacity: 1; */
/* } */
/* [neutralized — see Section 45] .filter-modal > .filter-modal-head { transition-delay: 0s; } */
/* [neutralized — see Section 45] .filter-modal > .filter-modal-body { transition-delay: 0.05s; } */
/* [neutralized — see Section 45] .filter-modal > .filter-modal-foot { transition-delay: 0.1s; } */

/* [neutralized — see Section 45] .filter-modal-head { */
/*   padding: 16px 18px; */
/*   border-bottom: 1px solid var(--line); */
/*   display: flex; */
/*   justify-content: space-between; */
/*   align-items: center; */
/* } */
/* [neutralized — see Section 45] .filter-modal-head h5 { */
/*   margin: 0; */
/*   font-size: 18px; */
/*   font-family: var(--font-display); */
/* } */
/* [neutralized — see Section 45] .filter-modal-body { */
/*   flex: 1; */
/*   overflow-y: auto; */
/*   padding: 16px 18px; */
/* } */
/* Foot buttons (Cancel + Apply) — clean pill design */
/* [neutralized — see Section 45] .filter-modal-foot { */
/*   display: flex; */
/*   gap: 10px; */
/*   padding: 14px 16px; */
/*   border-top: 1px solid var(--line); */
/*   background: #fff; */
/*   box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.08); */
/* } */
/* [neutralized — see Section 45] .filter-modal-foot .btn { */
/*   flex: 1; */
/*   justify-content: center; */
/*   padding: 12px 16px; */
/*   font-weight: 600; */
/*   font-size: 14px; */
/*   border-radius: 26px; */
/* } */
/* [neutralized — see Section 45] .filter-modal-foot .btn.btn-ghost { */
/*   background: #fff; */
/*   color: var(--slate); */
/*   border: 1.5px solid var(--line); */
/* } */
/* [neutralized — see Section 45] .filter-modal-foot .btn.btn-ghost:hover { */
/*   background: var(--bg-soft); */
/*   border-color: var(--slate); */
/* } */
/* [neutralized — see Section 45] .filter-modal-foot .btn.btn-green { */
/*   background: linear-gradient(135deg, var(--green), var(--green-dark)); */
/*   color: #fff; */
/*   border: none; */
/*   box-shadow: var(--sh-green); */
/* } */


/* ---------- 44.2 DESKTOP FILTER SIDEBAR — action row at bottom ---------- */
.filter-sidebar-foot {
  display: flex;
  gap: 10px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  position: sticky;
  bottom: 0;
  background: #fff;
}
.filter-sidebar-foot .btn {
  flex: 1;
  justify-content: center;
  padding: 10px 14px;
  font-weight: 600;
  font-size: 13px;
  border-radius: 24px;
}
.filter-sidebar-foot .btn.btn-ghost {
  background: #fff;
  color: var(--slate);
  border: 1.5px solid var(--line);
}
.filter-sidebar-foot .btn.btn-ghost:hover {
  background: var(--bg-soft);
  border-color: var(--slate);
}
.filter-sidebar-foot .btn.btn-green {
  background: linear-gradient(135deg, var(--green), var(--green-dark));
  color: #fff;
  border: none;
  box-shadow: var(--sh-green);
}
.filter-sidebar-foot .btn.btn-green:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(214, 31, 38, 0.3);
}


/* ---------- 44.3 DESKTOP LIST-VIEW — INNOVATIVE CARD DESIGN ----------
   Larger photo on left with overlay, gradient accents,
   rich mid-section with multiple data chips, vertical
   action rail on right with circular avatars/actions.
   ----------------------------------------------------------- */
@media (min-width: 768px) {
  .results-grid[data-view="list"] > .col {
    margin-bottom: 18px;
  }

  .results-grid[data-view="list"] .profile-card {
    display: flex !important;
    flex-direction: row;
    align-items: stretch;
    min-height: 230px;
    max-height: 260px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
    transition: all 0.25s ease;
    position: relative;
  }
  .results-grid[data-view="list"] .profile-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 4px;
    height: 100%;
    background: linear-gradient(180deg, var(--green), var(--orange));
    opacity: 0;
    transition: opacity 0.2s ease;
    z-index: 2;
  }
  .results-grid[data-view="list"] .profile-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.1);
    border-color: var(--green);
  }
  .results-grid[data-view="list"] .profile-card:hover::before {
    opacity: 1;
  }

  /* LEFT — Photo column with rich overlay */
  .results-grid[data-view="list"] .profile-card .pc-img {
    flex: 0 0 240px;
    aspect-ratio: auto;
    height: auto;
    min-height: 230px;
    position: relative;
    overflow: hidden;
  }
  .results-grid[data-view="list"] .profile-card .pc-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
  }
  .results-grid[data-view="list"] .profile-card:hover .pc-img img {
    transform: scale(1.05);
  }
  /* Dark gradient overlay at bottom of photo for readability */
  .results-grid[data-view="list"] .profile-card .pc-img::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 45%;
    background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.7) 100%);
    pointer-events: none;
  }
  /* Compat score floats as big badge bottom-left of photo */
  .results-grid[data-view="list"] .profile-card .compat-score {
    bottom: 14px;
    left: 14px;
    top: auto;
    right: auto;
    font-size: 13px;
    padding: 6px 12px;
    background: linear-gradient(135deg, var(--green), var(--green-dark));
    color: #fff;
    border-radius: 20px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    z-index: 2;
  }
  .results-grid[data-view="list"] .profile-card .verified-badge {
    top: 14px;
    left: 14px;
    right: auto;
    background: rgba(255, 255, 255, 0.95);
    color: var(--green-dark);
    font-weight: 700;
  }
  .results-grid[data-view="list"] .profile-card .online-dot {
    top: 14px;
    right: 14px;
    bottom: auto;
    left: auto;
    width: 12px;
    height: 12px;
    border: 2px solid #fff;
    box-shadow: 0 0 0 3px var(--green);
  }
  .results-grid[data-view="list"] .profile-card .diet-badge {
    bottom: 14px;
    right: 14px;
    top: auto;
    z-index: 2;
  }
  .results-grid[data-view="list"] .profile-card .premium-ribbon {
    position: absolute;
    top: 12px;
    right: 12px;
    left: auto;
    transform: none;
    font-size: 10px;
    padding: 4px 12px;
    background: linear-gradient(135deg, var(--gold), var(--gold-dark));
    color: #fff;
    border-radius: 20px;
    font-weight: 700;
    letter-spacing: 0.05em;
    box-shadow: 0 4px 10px rgba(198, 138, 58, 0.4);
    z-index: 3;
  }

  /* MIDDLE — rich content column with chips */
  .results-grid[data-view="list"] .profile-card .pc-body {
    flex: 1;
    padding: 22px 26px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    min-width: 0;
    background:
      radial-gradient(ellipse at top left, rgba(214, 31, 38, 0.04) 0%, transparent 50%),
      radial-gradient(ellipse at bottom right, rgba(198, 138, 58, 0.04) 0%, transparent 50%),
      #fff;
  }
  .results-grid[data-view="list"] .profile-card .pc-name {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: 4px;
    line-height: 1.2;
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .results-grid[data-view="list"] .profile-card .pc-name::after {
    content: '';
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, var(--line) 0%, transparent 100%);
    margin-left: 8px;
  }
  .results-grid[data-view="list"] .profile-card .pc-meta {
    font-size: 13px;
    color: var(--orange);
    font-weight: 600;
    margin-bottom: 10px;
    letter-spacing: 0.02em;
  }
  .results-grid[data-view="list"] .profile-card .pc-detail {
    font-size: 13.5px;
    color: var(--slate);
    margin-bottom: 6px;
    display: flex;
    align-items: center;
    gap: 8px;
    line-height: 1.4;
  }
  .results-grid[data-view="list"] .profile-card .pc-detail i {
    width: 26px;
    height: 26px;
    background: var(--green-light);
    color: var(--green-dark);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    flex-shrink: 0;
  }
  .results-grid[data-view="list"] .profile-card .pc-detail:nth-of-type(2) i {
    background: var(--orange-light);
    color: var(--orange-dark);
  }

  /* RIGHT — vertical action rail */
  .results-grid[data-view="list"] .profile-card .pc-actions {
    flex: 0 0 160px;
    flex-direction: column;
    padding: 22px 18px;
    gap: 10px;
    background: linear-gradient(180deg, var(--bg-soft) 0%, #fff 100%);
    border-left: 1px solid var(--line);
    justify-content: center;
    align-items: stretch;
  }
  .results-grid[data-view="list"] .profile-card .pc-actions .pc-action {
    width: 100%;
    justify-content: center;
    font-size: 13px;
    padding: 10px 12px;
    border-radius: 22px;
    font-weight: 600;
    transition: all var(--t-fast);
  }
  .results-grid[data-view="list"] .profile-card .pc-actions .pc-action.shortlist {
    background: #fff;
    border: 1.5px solid var(--line);
    color: var(--slate);
    padding: 10px;
    aspect-ratio: 1;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    margin: 0 auto 6px;
    font-size: 17px;
  }
  .results-grid[data-view="list"] .profile-card .pc-actions .pc-action.shortlist:hover,
  .results-grid[data-view="list"] .profile-card .pc-actions .pc-action.shortlist.active {
    background: var(--orange-light);
    color: var(--orange-dark);
    border-color: var(--orange);
    transform: scale(1.08);
  }
  .results-grid[data-view="list"] .profile-card .pc-actions .pc-action.primary {
    background: linear-gradient(135deg, var(--green), var(--green-dark));
    color: #fff;
    border: none;
    box-shadow: var(--sh-green);
  }
  .results-grid[data-view="list"] .profile-card .pc-actions .pc-action.primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(214, 31, 38, 0.4);
  }
  /* Extra "View Profile" ghost button */
  .results-grid[data-view="list"] .profile-card .pc-actions::after {
    content: 'View Profile →';
    text-align: center;
    font-size: 11px;
    color: var(--slate);
    text-decoration: none;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-top: 4px;
    opacity: 0.7;
    transition: opacity var(--t-fast);
  }
  .results-grid[data-view="list"] .profile-card:hover .pc-actions::after {
    opacity: 1;
    color: var(--green-dark);
  }
}


/* ---------- 44.4 BODY scroll-lock when filter modal open ---------- */
body.filter-open {
  overflow: hidden;
}


/* =========================================================
   45. FINAL POLISH — filter modal drawer animation,
       button color pairing, view-toggle mobile, badge layout
   ========================================================= */

/* ---------- 45.1 FILTER MODAL — smooth drawer slide from right
   Matches Dashboard Menu drawer pattern: fixed panel that
   translates in from off-screen with easing. ---------- */

/* Cancel the previous Section 44.1 inner-cascade animation */
.filter-modal > .filter-modal-head,
.filter-modal > .filter-modal-body,
.filter-modal > .filter-modal-foot {
  transform: none;
  opacity: 1;
  transition: none;
  transition-delay: 0s;
}

/* Backdrop (the outer .filter-modal element) */
.filter-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 2100;
  background: rgba(0, 0, 0, 0);
  flex-direction: row;
  justify-content: flex-end;
  opacity: 1;
  transition: background 0.3s ease;
  padding: 0;
}
.filter-modal.open { display: flex; }
.filter-modal.open.entering {
  background: rgba(0, 0, 0, 0.5);
}

/* The modal body becomes a drawer panel (right-side slide-in) */
.filter-modal::before {
  content: '';
  position: absolute;
  inset: 0;
  cursor: pointer;
}
/* Wrap all three sections as one drawer panel */
.filter-modal > .filter-modal-head,
.filter-modal > .filter-modal-body,
.filter-modal > .filter-modal-foot {
  position: relative;
  z-index: 1;
  width: min(420px, 92vw);
  margin-left: auto;
  background: #fff;
  transform: translateX(100%);
  transition: transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.filter-modal.open.entering > .filter-modal-head,
.filter-modal.open.entering > .filter-modal-body,
.filter-modal.open.entering > .filter-modal-foot {
  transform: translateX(0);
}

/* Filter modal head: orange gradient with white icon + "Filters" label */
.filter-modal-head {
  padding: 16px 20px;
  border-bottom: none;
  background: linear-gradient(135deg, var(--orange), var(--orange-dark));
  color: #fff;
  align-items: center;
}
.filter-modal-head h5 {
  color: #fff;
  font-size: 18px;
  font-family: var(--font-display);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}
.filter-modal-head h5::before {
  content: '\F3FE';    /* bootstrap-icons funnel-fill */
  font-family: 'bootstrap-icons';
  font-size: 20px;
  width: 34px;
  height: 34px;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(4px);
}
.filter-modal-head .icon-btn,
.filter-modal-head .close-filter {
  background: rgba(255, 255, 255, 0.18);
  border: none;
  color: #fff;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  transition: background var(--t-fast);
}
.filter-modal-head .icon-btn:hover,
.filter-modal-head .close-filter:hover {
  background: rgba(255, 255, 255, 0.3);
}

/* Body (unchanged layout) */
.filter-modal-body {
  flex: 1;
  overflow-y: auto;
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
}

/* FOOT: Cancel = RED outline, Apply = GREEN, both with icons */
.filter-modal-foot {
  display: flex;
  gap: 10px;
  padding: 14px 16px;
  border-top: 1px solid var(--line);
  background: #fff;
  box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.08);
}
.filter-modal-foot .btn {
  flex: 1;
  justify-content: center;
  padding: 12px 16px;
  font-weight: 600;
  font-size: 14px;
  border-radius: 26px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.filter-modal-foot .btn.btn-ghost,
.filter-modal-foot .btn-filter-cancel {
  background: #fff;
  color: var(--danger);
  border: 1.5px solid var(--danger);
}
.filter-modal-foot .btn.btn-ghost:hover,
.filter-modal-foot .btn-filter-cancel:hover {
  background: var(--danger);
  color: #fff;
}
.filter-modal-foot .btn.btn-green,
.filter-modal-foot .btn-filter-apply {
  background: linear-gradient(135deg, var(--green), var(--green-dark));
  color: #fff;
  border: none;
  box-shadow: var(--sh-green);
}


/* ---------- 45.2 DESKTOP FILTER SIDEBAR — same button color pairing ---------- */
.filter-sidebar-foot .btn.btn-ghost,
.filter-sidebar-foot .btn-filter-cancel {
  background: #fff;
  color: var(--danger);
  border: 1.5px solid var(--danger);
}
.filter-sidebar-foot .btn.btn-ghost:hover,
.filter-sidebar-foot .btn-filter-cancel:hover {
  background: var(--danger);
  color: #fff;
}


/* ---------- 45.3 VIEW-TOGGLE — mobile polish ---------- */
.view-toggle {
  display: inline-flex;
  border: 1px solid var(--line);
  border-radius: 22px;
  overflow: hidden;
  background: #fff;
  flex-shrink: 0;
}
.view-toggle button {
  border: none;
  border-radius: 0;
  padding: 8px 12px;
  background: transparent;
  color: var(--slate);
  font-size: 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all var(--t-fast);
  min-width: 40px;
  min-height: 36px;
}
.view-toggle button + button {
  border-left: 1px solid var(--line);
}
.view-toggle button.active {
  background: linear-gradient(135deg, var(--green), var(--green-dark));
  color: #fff;
  border-color: transparent;
}
.view-toggle button:hover:not(.active) {
  background: var(--bg-soft);
  color: var(--green-dark);
}

/* Mobile toolbar row: make view-toggle fit nicely */
@media (max-width: 767px) {
  .search-toolbar {
    flex-wrap: wrap;
    gap: 10px;
  }
  .search-toolbar .toolbar-actions {
    gap: 8px;
    flex-wrap: wrap;
    width: 100%;
    justify-content: space-between;
  }
  .search-toolbar .filter-btn-mobile {
    flex: 0 0 auto;
    padding: 8px 16px;
  }
  .search-toolbar select.form-select-sm {
    flex: 1;
    min-width: 120px;
    max-width: 170px;
  }
  .view-toggle {
    flex: 0 0 auto;
  }
  .view-toggle button {
    padding: 8px 14px;
    min-width: 44px;
  }
}


/* ---------- 45.4 CARD BADGE LAYOUT — no overlap, clear 4-corners ----------
   4 corners for 4 badges:
     TOP-LEFT    → premium ribbon (diagonal)  OR  diet-badge (no premium)
     TOP-RIGHT   → verified badge
     BOTTOM-LEFT → online dot
     BOTTOM-RIGHT → compat-score
   When BOTH premium + diet exist, move diet to bottom-left corner shifted above online-dot.
   ---------------------------------------------------------- */

/* Base — force unique corners, higher z-index stacking */
.profile-card .pc-img {
  position: relative;
  overflow: hidden;
}

/* Diet badge: relocate to BOTTOM-LEFT by default */
.profile-card .pc-img .diet-badge {
  top: auto;
  left: 10px;
  bottom: 10px;
  right: auto;
  z-index: 3;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(4px);
  padding: 4px 8px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
  font-size: 11px;
  font-weight: 600;
}

/* Premium ribbon: clearly diagonal corner — top-left only */
.profile-card .pc-img .premium-ribbon,
.profile-card > .premium-ribbon {
  z-index: 5;
}

/* When card has .premium class, push diet badge to the RIGHT side, mid-bottom */
.profile-card.premium .pc-img .diet-badge {
  left: auto;
  right: 10px;
  bottom: 46px;   /* clears compat-score below */
}

/* Online dot: bottom-left; if diet is also bottom-left (non-premium), nudge online dot up */
.profile-card .pc-img .online-dot {
  bottom: 10px;
  left: 10px;
  z-index: 4;
}
.profile-card:not(.premium) .pc-img .online-dot {
  /* When diet-badge sits bottom-left, move online-dot to top-left corner instead */
  bottom: auto;
  top: 10px;
  left: 10px;
}

/* Verified badge: always top-right */
.profile-card .pc-img .verified-badge {
  top: 10px;
  right: 10px;
  left: auto;
  bottom: auto;
  z-index: 3;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(4px);
  color: var(--green-dark);
  font-size: 10.5px;
  padding: 3px 8px;
  border-radius: 12px;
  font-weight: 600;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
  display: inline-flex;
  align-items: center;
  gap: 3px;
}

/* Compat score: always bottom-right */
.profile-card .pc-img .compat-score {
  bottom: 10px;
  right: 10px;
  top: auto;
  left: auto;
  z-index: 4;
  background: linear-gradient(135deg, var(--green), var(--green-dark));
  color: #fff;
  padding: 4px 10px;
  border-radius: 14px;
  font-size: 11px;
  font-weight: 700;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.profile-card .pc-img .compat-score i {
  color: #fff !important;
  font-size: 10px;
}


/* ---------- 45.5 LIST-VIEW specific overrides for same badge layout ---------- */
@media (min-width: 768px) {
  /* In list view, photo is taller — keep same 4-corners but bigger badges */
  .results-grid[data-view="list"] .profile-card .pc-img .premium-ribbon {
    top: 12px;
    right: 12px;
    left: auto;
    position: absolute;
    transform: none;
    background: linear-gradient(135deg, var(--gold), var(--gold-dark));
    color: #fff;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    box-shadow: 0 4px 10px rgba(198, 138, 58, 0.5);
    z-index: 5;
  }
  .results-grid[data-view="list"] .profile-card .pc-img .verified-badge {
    top: 12px;
    left: 12px;
    right: auto;
  }
  .results-grid[data-view="list"] .profile-card .pc-img .online-dot {
    top: 12px;
    left: 12px;
    bottom: auto;
    right: auto;
    /* nudge below verified badge if both present */
  }
  .results-grid[data-view="list"] .profile-card .pc-img .verified-badge ~ .online-dot {
    top: 44px;
  }
  .results-grid[data-view="list"] .profile-card .pc-img .compat-score {
    bottom: 14px;
    left: 14px;
    right: auto;
    font-size: 13px;
    padding: 6px 12px;
    border-radius: 20px;
    z-index: 4;
  }
  .results-grid[data-view="list"] .profile-card.premium .pc-img .compat-score {
    /* premium + compat: compat stays bottom-left, diet needs elsewhere */
  }
  .results-grid[data-view="list"] .profile-card .pc-img .diet-badge {
    bottom: 14px;
    right: 14px;
    left: auto;
    top: auto;
    z-index: 4;
  }
}


/* =========================================================
   46. DEFINITIVE filter-modal + badge layout rewrite
   (all prior .filter-modal rules neutralized — this is the
    only version in effect)
   ========================================================= */

/* ---------- 46.1 MOBILE FILTER MODAL — drawer slide from right ---------- */

/* Outer backdrop container */
.filter-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 2100;
  background: rgba(0, 0, 0, 0);
  transition: background 0.3s ease;
}
.filter-modal.open {
  display: block;   /* use block, not flex, to avoid children being stretched */
}
.filter-modal.open.entering {
  background: rgba(0, 0, 0, 0.5);
}

/* The drawer panel: fixed-width, full-height, slides from right */
.filter-modal > .filter-modal-head,
.filter-modal > .filter-modal-body,
.filter-modal > .filter-modal-foot {
  position: fixed;
  right: 0;
  width: min(380px, 88vw);
  background: #fff;
  transform: translateX(100%);
  transition: transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1);
  margin: 0;
  z-index: 1;
}
.filter-modal.open.entering > .filter-modal-head,
.filter-modal.open.entering > .filter-modal-body,
.filter-modal.open.entering > .filter-modal-foot {
  transform: translateX(0);
}

/* Head sits at top of drawer */
.filter-modal-head {
  top: 0;
  height: 60px;
  padding: 0 18px;
  background: linear-gradient(135deg, var(--orange), var(--orange-dark));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.filter-modal-head h5 {
  color: #fff;
  font-size: 17px;
  font-family: var(--font-display);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
}
.filter-modal-head h5::before {
  content: '\F3FE';         /* bootstrap-icons funnel-fill */
  font-family: 'bootstrap-icons';
  font-size: 16px;
  width: 32px;
  height: 32px;
  background: rgba(255, 255, 255, 0.22);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.filter-modal-head .icon-btn,
.filter-modal-head .close-filter {
  background: rgba(255, 255, 255, 0.2);
  border: none;
  color: #fff;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  padding: 0;
  cursor: pointer;
}
.filter-modal-head .icon-btn:hover,
.filter-modal-head .close-filter:hover {
  background: rgba(255, 255, 255, 0.35);
}

/* Body fills middle space, scrolls internally */
.filter-modal-body {
  top: 60px;
  bottom: 72px;
  overflow-y: auto;
  padding: 16px 18px;
  display: block;
}

/* Foot stays pinned at bottom of drawer */
.filter-modal-foot {
  bottom: 0;
  height: 72px;
  padding: 14px 16px;
  border-top: 1px solid var(--line);
  display: flex;
  gap: 10px;
  align-items: center;
  box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.08);
}
.filter-modal-foot .btn {
  flex: 1;
  justify-content: center;
  padding: 11px 16px;
  font-weight: 600;
  font-size: 14px;
  border-radius: 24px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
}
/* Cancel: ORANGE outline pill */
.filter-modal-foot .btn.btn-ghost,
.filter-modal-foot .btn-filter-cancel {
  background: #fff;
  color: var(--orange);
  border: 1.5px solid var(--orange);
}
.filter-modal-foot .btn.btn-ghost:hover,
.filter-modal-foot .btn-filter-cancel:hover {
  background: var(--orange-light);
  color: var(--orange-dark);
  border-color: var(--orange-dark);
}
/* Apply: GREEN gradient */
.filter-modal-foot .btn.btn-green,
.filter-modal-foot .btn-filter-apply {
  background: linear-gradient(135deg, var(--green), var(--green-dark));
  color: #fff;
  border: none;
  box-shadow: var(--sh-green);
}

/* Desktop sidebar: same orange-cancel styling */
.filter-sidebar-foot .btn.btn-ghost,
.filter-sidebar-foot .btn-filter-cancel {
  background: #fff;
  color: var(--orange);
  border: 1.5px solid var(--orange);
}
.filter-sidebar-foot .btn.btn-ghost:hover,
.filter-sidebar-foot .btn-filter-cancel:hover {
  background: var(--orange-light);
  color: var(--orange-dark);
}


/* ---------- 46.2 BADGE LAYOUT — 4-corner clean positioning ---------- */
/* Nuclear override: force positions with high specificity.
   Grid view photo is ~280px tall, list view photo is ~230px tall.

   4 CORNER MAP:
   - TOP-LEFT     → Premium ribbon (when present) OR Verified badge
   - TOP-RIGHT    → Verified badge (when no premium) OR Online dot
   - BOTTOM-LEFT  → Compat score
   - BOTTOM-RIGHT → Diet badge

   Online dot only shows when user is actively online (small 10px dot
   separate from other badges — we park it to TOP-RIGHT area above
   other badges, OR hide when premium+verified already occupies corners).
   ---------------------------------------------------------- */

/* Reset + force positions for ALL profile cards everywhere */
.profile-card .pc-img {
  position: relative;
  overflow: hidden;
}

/* PREMIUM RIBBON — diagonal top-left corner */
.profile-card .premium-ribbon,
.profile-card > .premium-ribbon {
  position: absolute;
  top: 14px;
  left: -32px;
  transform: rotate(-45deg);
  background: linear-gradient(135deg, var(--gold), var(--gold-dark));
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 4px 34px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  z-index: 5;
}

/* VERIFIED BADGE — top-right always */
.profile-card .pc-img .verified-badge {
  position: absolute;
  top: 10px;
  right: 10px;
  left: auto;
  bottom: auto;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(4px);
  color: var(--green-dark);
  font-size: 10.5px;
  padding: 4px 9px;
  border-radius: 12px;
  font-weight: 700;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  z-index: 4;
}
.profile-card .pc-img .verified-badge i {
  color: var(--green);
}

/* ONLINE DOT — just a small pulsing green dot, placed top-left
   Hidden on premium cards (premium ribbon takes top-left) */
.profile-card .pc-img .online-dot {
  position: absolute;
  top: 12px;
  left: 12px;
  right: auto;
  bottom: auto;
  width: 12px;
  height: 12px;
  background: var(--green);
  border: 2px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 2px rgba(214, 31, 38, 0.4),
              0 2px 4px rgba(0, 0, 0, 0.2);
  z-index: 4;
  animation: onlinePulse 2s ease-in-out infinite;
}
@keyframes onlinePulse {
  0%, 100% { box-shadow: 0 0 0 2px rgba(214, 31, 38, 0.4), 0 2px 4px rgba(0, 0, 0, 0.2); }
  50%      { box-shadow: 0 0 0 6px rgba(214, 31, 38, 0), 0 2px 4px rgba(0, 0, 0, 0.2); }
}
/* On premium cards, the ribbon owns top-left: tuck online-dot just inside verified badge row */
.profile-card.premium .pc-img .online-dot {
  top: 14px;
  left: auto;
  right: 80px;   /* clears verified-badge ~ 70px wide */
}
/* If no verified badge present on premium card, fall back nicely */
.profile-card.premium .pc-img .online-dot {
  right: 80px;
}

/* COMPAT SCORE — bottom-left always */
.profile-card .pc-img .compat-score {
  position: absolute;
  bottom: 10px;
  left: 10px;
  top: auto;
  right: auto;
  background: linear-gradient(135deg, var(--green), var(--green-dark));
  color: #fff;
  padding: 4px 10px;
  border-radius: 14px;
  font-size: 11px;
  font-weight: 700;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25);
  display: inline-flex;
  align-items: center;
  gap: 5px;
  z-index: 4;
}
.profile-card .pc-img .compat-score i {
  color: #fff !important;
  font-size: 10px;
}

/* DIET BADGE — bottom-right always */
.profile-card .pc-img .diet-badge {
  position: absolute;
  bottom: 10px;
  right: 10px;
  top: auto;
  left: auto;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(4px);
  padding: 4px 6px;
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
  z-index: 4;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.profile-card .pc-img .diet-badge .diet-dot {
  width: 12px;
  height: 12px;
  border-radius: 2px;
  border: 1.5px solid var(--green);
  position: relative;
  display: inline-block;
}
.profile-card .pc-img .diet-badge .diet-dot::after {
  content: '';
  position: absolute;
  inset: 2px;
  background: var(--green);
  border-radius: 50%;
}
.profile-card .pc-img .diet-badge .diet-dot.nonveg {
  border-color: var(--danger);
}
.profile-card .pc-img .diet-badge .diet-dot.nonveg::after {
  background: var(--danger);
  border-radius: 0;
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  inset: 1px;
}
.profile-card .pc-img .diet-badge .diet-dot.vegan {
  border-color: var(--green-dark);
}
.profile-card .pc-img .diet-badge .diet-dot.vegan::after {
  background: var(--green-dark);
  border-radius: 0;
  clip-path: polygon(50% 0%, 100% 50%, 85% 100%, 15% 100%, 0 50%);
  inset: 1px;
}


/* ---------- 46.3 LIST-VIEW — desktop badge positions override ---------- */
@media (min-width: 768px) {
  /* In list view, photo is ~240px wide × 230px tall — same 4-corner layout applies cleanly */
  .results-grid[data-view="list"] .profile-card .premium-ribbon {
    top: 16px;
    left: -34px;
    padding: 4px 36px;
    font-size: 10px;
  }
  .results-grid[data-view="list"] .profile-card .pc-img .verified-badge {
    top: 14px;
    right: 14px;
    font-size: 11px;
    padding: 5px 10px;
  }
  .results-grid[data-view="list"] .profile-card .pc-img .online-dot {
    top: 16px;
    left: 16px;
    width: 14px;
    height: 14px;
  }
  .results-grid[data-view="list"] .profile-card.premium .pc-img .online-dot {
    top: 16px;
    left: auto;
    right: 90px;
  }
  .results-grid[data-view="list"] .profile-card .pc-img .compat-score {
    bottom: 14px;
    left: 14px;
    font-size: 13px;
    padding: 6px 12px;
    border-radius: 20px;
  }
  .results-grid[data-view="list"] .profile-card .pc-img .diet-badge {
    bottom: 14px;
    right: 14px;
    padding: 5px 8px;
  }
}


/* =========================================================
   47. CRITICAL FIXES — premium ribbon clip + filter sidebar
       action buttons always visible
   ========================================================= */

/* ---------- 47.1 PREMIUM RIBBON — clip inside .pc-img only ----------
   HTML places <span.premium-ribbon> as DIRECT CHILD of .profile-card,
   which in list view stretches across the full card width. Fix: move
   it visually into the photo corner via absolute positioning
   constrained to a fixed width, with z-index high enough.
   The rotation pivot must be at the origin of the ribbon itself.
   ---------------------------------------------------------- */

/* Reset all previous premium-ribbon rules */
.profile-card .premium-ribbon,
.profile-card > .premium-ribbon,
.profile-card .pc-img .premium-ribbon {
  position: absolute !important;
  top: 14px !important;
  left: -34px !important;
  right: auto !important;
  bottom: auto !important;
  width: 120px !important;
  max-width: 120px !important;
  text-align: center;
  transform: rotate(-45deg) !important;
  transform-origin: center !important;
  background: linear-gradient(135deg, var(--gold), var(--gold-dark)) !important;
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  padding: 4px 0 !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
  z-index: 10;
  pointer-events: none;
}

/* List view: tuck ribbon into the photo column specifically so overflow:hidden on pc-img clips it */
@media (min-width: 768px) {
  .results-grid[data-view="list"] .profile-card .premium-ribbon {
    top: 16px !important;
    left: -36px !important;
    width: 130px !important;
    max-width: 130px !important;
  }
  /* The ribbon is child of .profile-card, but .pc-img is 240px wide.
     Constrain the ribbon to appear only in the leftmost 130px zone
     (which overlaps the photo area). Overflow:hidden on .profile-card
     already clips the diagonal corners beyond the card bounds. */
}

/* Mobile (non-list): ribbon smaller still */
@media (max-width: 767px) {
  .profile-card .premium-ribbon,
  .profile-card .pc-img .premium-ribbon {
    top: 10px !important;
    left: -30px !important;
    width: 110px !important;
    max-width: 110px !important;
    font-size: 9px !important;
    padding: 3px 0 !important;
  }
}


/* ---------- 47.2 FILTER SIDEBAR — scroll inside, buttons always visible ---------- */
@media (min-width: 992px) {
  .filter-sidebar {
    position: sticky;
    top: 90px;
    max-height: calc(100vh - 110px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 18px 16px 0;
    background: #fff;
    border-radius: var(--r-md);
    border: 1px solid var(--line);
    box-shadow: var(--sh-sm);
  }
  /* The filter groups area scrolls internally; foot stays fixed at bottom */
  .filter-sidebar > h5,
  .filter-sidebar > .d-flex:first-of-type,
  .filter-sidebar > .clear-all {
    flex: 0 0 auto;
  }
  /* Make all filter-groups area scroll between the header and the footer */
  .filter-sidebar {
    /* Target the wrapper holding the filter groups */
  }
  .filter-sidebar-foot {
    position: sticky;
    bottom: 0;
    background: #fff;
    margin: 0 -16px -18px;   /* bleed to the sidebar edges */
    padding: 14px 16px;
    border-top: 1px solid var(--line);
    box-shadow: 0 -8px 18px rgba(0, 0, 0, 0.06);
    flex: 0 0 auto;
    z-index: 2;
  }
}

/* Mid-section (filter-groups) scrolls independently */
@media (min-width: 992px) {
  .filter-sidebar {
    /* Use implicit flex column: heading row + scrollable groups + sticky foot */
  }
  /* Wrap everything between heading and foot as a scrolling region.
     Since HTML structure is flat, scope via adjacency: everything between
     the first .d-flex (heading) and .filter-sidebar-foot scrolls. */
  .filter-sidebar > .filter-group,
  .filter-sidebar > .clear-all {
    flex-shrink: 0;
  }
  /* Allow the content area (filter groups + clear-all) to scroll as one.
     Simplest way: let everything scroll with the sidebar, but keep the
     sidebar itself max-height bounded + overflow-y auto. */
  .filter-sidebar {
    overflow-y: auto;
  }
  /* The .filter-sidebar-foot position:sticky with overflow-y:auto on parent
     keeps the buttons pinned at the bottom of the visible sidebar viewport. */
}


/* =========================================================
   48. PROFILE META-GRID — FINAL DEFINITIVE REWRITE
   --------------------------------------------------------
   Purpose: The 12-tile quick-stats block at the top of
   profile.html showing Age/Height/Religion/Caste/Language/
   Education/Profession/Income/City/Marital/Diet/Gothra.

   Design logic:
   - Each tile has centered icon-in-circle + centered
     uppercase label + centered display-font value
   - Icons use cycling green/orange/gold pattern for visual
     rhythm (nth-child 3n+1/2/3)
   - Pale background + colored glyph (soft, not loud)
   - Responsive grid: 2 col mobile → 3 col tablet → 4 col desktop
   - Subtle hover lift for interactivity
   - Keyboard focus outline for accessibility

   HTML structure (actual, verified from _p3_core.py):
   <div class="profile-meta-grid">
     <div class="meta-item">
       <i class="bi bi-calendar-heart"></i>
       <div class="lbl">Age</div>
       <div class="val">26 yrs</div>
     </div>
     ... (12 items)
   </div>

   Future modifications:
   - Change palette: edit the 3 nth-child color blocks below
   - Add more tiles: HTML only, CSS cycles colors automatically
   - Adjust breakpoints: edit the 4 media queries
   - Change icon size: edit one number in `.meta-item > i`
   ========================================================= */

/* ---------- 48.1 GRID CONTAINER — responsive column counts ---------- */
.profile-meta-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));    /* mobile default: 2-col */
  gap: 10px;
  margin: 18px 0 22px;
}
@media (min-width: 576px) {
  .profile-meta-grid { gap: 12px; }
}
@media (min-width: 768px) {
  .profile-meta-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)); /* tablet: 3-col */
    gap: 12px;
  }
}
@media (min-width: 992px) {
  .profile-meta-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)); /* desktop: 4-col */
    gap: 14px;
  }
}

/* ---------- 48.2 TILE — single stat card ----------
   Elevated white card, centered content, subtle hover.
   Uses !important to override conflicting Section 30 rule
   at line 3244 which had left-aligned plain styling.
   ---------------------------------------------------------- */
.profile-meta-grid .meta-item {
  background: #fff !important;
  border: 1px solid var(--line) !important;
  border-radius: 14px !important;
  padding: 16px 12px !important;

  /* Center the 3 children (icon / label / value) as a vertical stack */
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  gap: 6px;

  /* Remove any min-width / horizontal flex from earlier sections */
  min-width: 0 !important;
  flex: unset !important;

  /* Smooth state transitions */
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  cursor: default;
  position: relative;
  overflow: hidden;
}

@media (min-width: 768px) {
  .profile-meta-grid .meta-item {
    padding: 18px 14px !important;
    border-radius: 16px !important;
  }
}

/* Accent underline reveal on hover — very subtle brand touch */
.profile-meta-grid .meta-item::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--green), var(--orange));
  transition: width 0.25s ease, left 0.25s ease;
}
.profile-meta-grid .meta-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
  border-color: rgba(214, 31, 38, 0.35);
}
.profile-meta-grid .meta-item:hover::after {
  width: 40%;
  left: 30%;
}

/* Keyboard focus for accessibility */
.profile-meta-grid .meta-item:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 2px;
}


/* ---------- 48.3 ICON — centered circle with colored glyph ----------
   The <i> tag gets turned into a 40×40 pale-bg circle with a colored
   icon centered inside. Margin-bottom gives breathing room before the
   label. On hover the circle scales slightly for subtle feedback.
   ---------------------------------------------------------- */
.profile-meta-grid .meta-item > i {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  line-height: 1;
  margin: 0 0 4px 0 !important;
  transition: transform 0.2s ease, background 0.2s ease;
  flex-shrink: 0;
}
@media (max-width: 575px) {
  .profile-meta-grid .meta-item > i {
    width: 36px;
    height: 36px;
    font-size: 16px;
  }
}
.profile-meta-grid .meta-item:hover > i {
  transform: scale(1.08);
}


/* ---------- 48.4 COLOR ROTATION — green / orange / gold cycle ----------
   Uses nth-child so adding more tiles keeps rhythm automatically.
   Green = trust (tiles 1, 4, 7, 10)
   Orange = warmth (tiles 2, 5, 8, 11)
   Gold = premium/tradition (tiles 3, 6, 9, 12)
   ---------------------------------------------------------- */

/* Green set */
.profile-meta-grid .meta-item:nth-child(3n+1) > i {
  background: var(--green-light);
  color: var(--green-dark);
}
.profile-meta-grid .meta-item:nth-child(3n+1):hover > i {
  background: var(--green);
  color: #fff;
}

/* Orange set */
.profile-meta-grid .meta-item:nth-child(3n+2) > i {
  background: var(--orange-light);
  color: var(--orange-dark);
}
.profile-meta-grid .meta-item:nth-child(3n+2):hover > i {
  background: var(--orange);
  color: #fff;
}

/* Gold set */
.profile-meta-grid .meta-item:nth-child(3n+3) > i {
  background: var(--gold-light);
  color: var(--gold-dark);
}
.profile-meta-grid .meta-item:nth-child(3n+3):hover > i {
  background: var(--gold);
  color: #fff;
}


/* ---------- 48.5 LABEL (uppercase small caps) ---------- */
.profile-meta-grid .meta-item .lbl {
  font-family: var(--font-body);
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--muted) !important;
  line-height: 1.2;
  margin: 0 !important;
  display: block;
}


/* ---------- 48.6 VALUE (display font, bold) ---------- */
.profile-meta-grid .meta-item .val {
  font-family: var(--font-display) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--ink) !important;
  line-height: 1.25;
  margin: 0 !important;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
@media (min-width: 992px) {
  .profile-meta-grid .meta-item .val {
    font-size: 16px !important;
  }
}


/* ---------- 48.7 TAP FEEDBACK on mobile (no hover there) ---------- */
@media (hover: none) {
  .profile-meta-grid .meta-item:active {
    transform: scale(0.98);
  }
}


/* ---------- 48.8 NEUTRALIZE OLD .profile-meta-grid RULES from Section 30
   The earlier rule at ~line 3244 targets `.dl` / `.dv` (wrong class names)
   and gives plain left-aligned padding. We override with !important above;
   these child selectors won't match our HTML anyway since HTML uses .lbl / .val.
   No further action needed — kept here for documentation.
   ---------------------------------------------------------- */


/* =========================================================
   49. SEARCH-RESULTS — DEFINITIVE FINAL DESIGN (Round 10)
   --------------------------------------------------------
   Consolidates all prior filter-modal / toggle / badge work.
   Uses `!important` and high-specificity selectors where
   cascade battles with older sections would otherwise win.
   Written in order:
     49.1  Mobile filter drawer (smooth slide-in-from-right)
     49.2  Orange gradient header with funnel icon
     49.3  Cancel (orange) + Apply (green) buttons, both icons
     49.4  Desktop filter sidebar — matching button styling
     49.5  Grid/List view toggle — pill design + mobile polish
     49.6  Mobile toolbar reflow
     49.7  Card badge 4-corner enforcement (no overlaps)
     49.8  Reduced-motion accessibility
   ========================================================= */


/* ---------- 49.1 MOBILE FILTER DRAWER — single sliding unit ----------
   Architecture:
     .filter-modal = full-screen FIXED backdrop layer (fades 0 → 0.5 alpha)
     .filter-drawer = fixed-position panel, translateX(100%) → 0
   Both animations run simultaneously with matching easing.
   Closing reverses: drawer slides out, backdrop fades, then display:none.
   ---------------------------------------------------------- */

.filter-modal {
  display: none !important;
  position: fixed !important;
  inset: 0 !important;
  z-index: 2100 !important;
  background: rgba(0, 0, 0, 0) !important;
  transition: background 0.32s cubic-bezier(0.22, 0.61, 0.36, 1) !important;
  padding: 0 !important;
  margin: 0 !important;
}
.filter-modal.open { display: block !important; }
.filter-modal.open.entering { background: rgba(0, 0, 0, 0.55) !important; }

/* The sliding panel */
.filter-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(380px, 88vw);
  background: #fff;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1);
  box-shadow: -8px 0 32px rgba(0, 0, 0, 0.22);
  will-change: transform;
  overflow: hidden;        /* clip head shadow spillover */
}
.filter-modal.open.entering .filter-drawer {
  transform: translateX(0);
}

/* When the modal starts closing (losing .entering), panel slides out again */
.filter-modal:not(.entering) .filter-drawer {
  transform: translateX(100%);
}


/* ---------- 49.2 HEADER — orange gradient with funnel icon ---------- */
.filter-drawer > .filter-modal-head {
  flex: 0 0 60px !important;
  height: 60px !important;
  padding: 0 18px !important;
  background: linear-gradient(135deg, var(--orange), var(--orange-dark)) !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
  border-bottom: none !important;
  transform: none !important;
  opacity: 1 !important;
  position: static !important;
  z-index: 2;
}
.filter-drawer > .filter-modal-head h5 {
  color: #fff !important;
  font-family: var(--font-display) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  line-height: 1 !important;
}
/* Funnel icon circle - rendered via ::before on the h5 */
.filter-drawer > .filter-modal-head h5::before {
  content: '\F3FE' !important;           /* bootstrap-icons funnel-fill */
  font-family: 'bootstrap-icons' !important;
  font-size: 16px !important;
  width: 34px !important;
  height: 34px !important;
  background: rgba(255, 255, 255, 0.22) !important;
  border-radius: 50% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0;
}
/* Close × button in header */
.filter-drawer > .filter-modal-head .close-filter,
.filter-drawer > .filter-modal-head .icon-btn {
  background: rgba(255, 255, 255, 0.2) !important;
  border: none !important;
  color: #fff !important;
  width: 34px !important;
  height: 34px !important;
  border-radius: 50% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 16px !important;
  padding: 0 !important;
  cursor: pointer;
  transition: background 0.2s ease !important;
}
.filter-drawer > .filter-modal-head .close-filter:hover {
  background: rgba(255, 255, 255, 0.35) !important;
}


/* ---------- 49.3 BODY + FOOT layout inside drawer ---------- */
.filter-drawer > .filter-modal-body {
  flex: 1 1 auto !important;
  overflow-y: auto !important;
  padding: 16px 18px !important;
  transform: none !important;
  opacity: 1 !important;
  position: static !important;
  top: auto !important;
  bottom: auto !important;
  width: auto !important;
  background: #fff !important;
  border: none !important;
}

.filter-drawer > .filter-modal-foot {
  flex: 0 0 72px !important;
  height: 72px !important;
  padding: 14px 16px !important;
  border-top: 1px solid var(--line) !important;
  background: #fff !important;
  display: flex !important;
  gap: 10px !important;
  align-items: center !important;
  box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.08) !important;
  transform: none !important;
  opacity: 1 !important;
  position: static !important;
  bottom: auto !important;
  width: auto !important;
}

/* Cancel + Apply buttons in drawer foot */
.filter-drawer > .filter-modal-foot .btn {
  flex: 1 !important;
  justify-content: center !important;
  padding: 11px 16px !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  border-radius: 24px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  min-height: 44px !important;
}
.filter-drawer > .filter-modal-foot .btn.btn-ghost,
.filter-drawer > .filter-modal-foot .btn-filter-cancel {
  background: #fff !important;
  color: var(--orange) !important;
  border: 1.5px solid var(--orange) !important;
}
.filter-drawer > .filter-modal-foot .btn.btn-ghost:hover,
.filter-drawer > .filter-modal-foot .btn-filter-cancel:hover {
  background: var(--orange-light) !important;
  color: var(--orange-dark) !important;
  border-color: var(--orange-dark) !important;
}
.filter-drawer > .filter-modal-foot .btn.btn-green,
.filter-drawer > .filter-modal-foot .btn-filter-apply {
  background: linear-gradient(135deg, var(--green), var(--green-dark)) !important;
  color: #fff !important;
  border: none !important;
  box-shadow: var(--sh-green) !important;
}
.filter-drawer > .filter-modal-foot .btn.btn-green:hover,
.filter-drawer > .filter-modal-foot .btn-filter-apply:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 10px 22px rgba(214, 31, 38, 0.35) !important;
}


/* ---------- 49.4 DESKTOP FILTER SIDEBAR — matching Cancel/Apply buttons ---------- */
.filter-sidebar-foot {
  display: flex !important;
  gap: 10px !important;
  margin-top: 16px !important;
  padding: 14px 0 0 !important;
  border-top: 1px solid var(--line) !important;
  position: sticky !important;
  bottom: 0 !important;
  background: #fff !important;
}
.filter-sidebar-foot .btn {
  flex: 1 !important;
  justify-content: center !important;
  padding: 10px 14px !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
  border-radius: 22px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  min-height: 40px !important;
}
.filter-sidebar-foot .btn.btn-ghost,
.filter-sidebar-foot .btn-filter-cancel {
  background: #fff !important;
  color: var(--orange) !important;
  border: 1.5px solid var(--orange) !important;
}
.filter-sidebar-foot .btn.btn-ghost:hover,
.filter-sidebar-foot .btn-filter-cancel:hover {
  background: var(--orange-light) !important;
  color: var(--orange-dark) !important;
  border-color: var(--orange-dark) !important;
}
.filter-sidebar-foot .btn.btn-green,
.filter-sidebar-foot .btn-filter-apply {
  background: linear-gradient(135deg, var(--green), var(--green-dark)) !important;
  color: #fff !important;
  border: none !important;
  box-shadow: var(--sh-green) !important;
}


/* ---------- 49.5 GRID/LIST VIEW TOGGLE — pill design ---------- */
.view-toggle {
  display: inline-flex !important;
  border: 1px solid var(--line) !important;
  border-radius: 22px !important;
  overflow: hidden !important;
  background: #fff !important;
  flex-shrink: 0;
}
.view-toggle button {
  border: none !important;
  border-radius: 0 !important;
  padding: 8px 14px !important;
  background: transparent !important;
  color: var(--slate) !important;
  font-size: 15px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  min-width: 44px !important;
  min-height: 36px !important;
}
.view-toggle button + button {
  border-left: 1px solid var(--line) !important;
}
.view-toggle button.active {
  background: linear-gradient(135deg, var(--green), var(--green-dark)) !important;
  color: #fff !important;
  border-left-color: transparent !important;
}
.view-toggle button:hover:not(.active) {
  background: var(--bg-soft) !important;
  color: var(--green-dark) !important;
}


/* ---------- 49.6 MOBILE TOOLBAR reflow ---------- */
@media (max-width: 767px) {
  .view-toggle button {
    min-height: 40px !important;
    min-width: 46px !important;
    padding: 8px 15px !important;
  }
  .search-toolbar {
    flex-wrap: wrap !important;
    gap: 10px !important;
    padding: 12px !important;
  }
  .search-toolbar .result-count {
    flex: 1 0 100% !important;
    order: 1;
  }
  .search-toolbar .toolbar-actions {
    order: 2;
    gap: 8px !important;
    flex-wrap: wrap !important;
    width: 100% !important;
    justify-content: space-between !important;
    align-items: center;
  }
  .search-toolbar .filter-btn-mobile {
    flex: 0 0 auto !important;
    padding: 9px 16px !important;
    font-size: 13.5px !important;
  }
  .search-toolbar select.form-select-sm {
    flex: 1 !important;
    min-width: 110px !important;
    max-width: 170px !important;
  }
}


/* ---------- 49.7 CARD BADGE 4-CORNER ENFORCEMENT ---------- */
/*
   Guaranteed corners:
     TOP-LEFT diagonal:  .premium-ribbon (only when card has .premium)
     TOP-RIGHT pill:     .verified-badge
     TOP-RIGHT small dot: .online-dot (only when not colliding with above)
     BOTTOM-LEFT pill:   .compat-score
     BOTTOM-RIGHT pill:  .diet-badge

   Key fix: premium ribbon has FIXED WIDTH via !important to prevent
   the full-card stretch that happened in list view.
*/

/* Premium ribbon — lock width, diagonal corner clip */
.profile-card .premium-ribbon,
.profile-card > .premium-ribbon {
  position: absolute !important;
  top: 14px !important;
  left: -34px !important;
  right: auto !important;
  bottom: auto !important;
  width: 120px !important;
  max-width: 120px !important;
  text-align: center !important;
  transform: rotate(-45deg) !important;
  transform-origin: center !important;
  background: linear-gradient(135deg, var(--gold), var(--gold-dark)) !important;
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  padding: 4px 0 !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25) !important;
  z-index: 10 !important;
  pointer-events: none;
}

/* Verified badge — top-right pill */
.profile-card .pc-img .verified-badge {
  position: absolute !important;
  top: 10px !important;
  right: 10px !important;
  left: auto !important;
  bottom: auto !important;
  background: rgba(255, 255, 255, 0.95) !important;
  backdrop-filter: blur(4px) !important;
  color: var(--green-dark) !important;
  font-size: 10.5px !important;
  padding: 4px 9px !important;
  border-radius: 12px !important;
  font-weight: 700 !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  z-index: 4 !important;
}
.profile-card .pc-img .verified-badge i {
  color: var(--green) !important;
}

/* Online dot — small green pulsing dot */
.profile-card .pc-img .online-dot {
  position: absolute !important;
  top: 12px !important;
  left: 12px !important;
  right: auto !important;
  bottom: auto !important;
  width: 12px !important;
  height: 12px !important;
  background: var(--green) !important;
  border: 2px solid #fff !important;
  border-radius: 50% !important;
  z-index: 4 !important;
  box-shadow: 0 0 0 2px rgba(214, 31, 38, 0.3), 0 2px 4px rgba(0, 0, 0, 0.15);
  animation: onlinePulseSR 2s ease-in-out infinite;
}
@keyframes onlinePulseSR {
  0%, 100% { box-shadow: 0 0 0 2px rgba(214, 31, 38, 0.3), 0 2px 4px rgba(0, 0, 0, 0.15); }
  50%      { box-shadow: 0 0 0 6px rgba(214, 31, 38, 0), 0 2px 4px rgba(0, 0, 0, 0.15); }
}
/* On premium cards, ribbon owns top-left — move online dot aside (right-of-verified) */
.profile-card.premium .pc-img .online-dot {
  top: 14px !important;
  left: auto !important;
  right: 82px !important;    /* clears verified-badge (~70px wide + 10px gap) */
}

/* Compat score — always bottom-left */
.profile-card .pc-img .compat-score {
  position: absolute !important;
  bottom: 10px !important;
  left: 10px !important;
  top: auto !important;
  right: auto !important;
  background: linear-gradient(135deg, var(--green), var(--green-dark)) !important;
  color: #fff !important;
  padding: 4px 10px !important;
  border-radius: 14px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25) !important;
  z-index: 4 !important;
}
.profile-card .pc-img .compat-score i {
  color: #fff !important;
  font-size: 10px !important;
}

/* Diet badge — always bottom-right pill */
.profile-card .pc-img .diet-badge {
  position: absolute !important;
  bottom: 10px !important;
  right: 10px !important;
  top: auto !important;
  left: auto !important;
  background: rgba(255, 255, 255, 0.95) !important;
  backdrop-filter: blur(4px) !important;
  padding: 5px 7px !important;
  border-radius: 12px !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18) !important;
  z-index: 4 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
}

/* List-view: slightly larger badges (bigger photo area) */
@media (min-width: 768px) {
  .results-grid[data-view="list"] .profile-card .premium-ribbon {
    top: 16px !important;
    left: -36px !important;
    width: 130px !important;
    max-width: 130px !important;
    padding: 4px 0 !important;
    font-size: 10px !important;
  }
  .results-grid[data-view="list"] .profile-card .pc-img .verified-badge {
    top: 14px !important;
    right: 14px !important;
    font-size: 11px !important;
    padding: 5px 10px !important;
  }
  .results-grid[data-view="list"] .profile-card .pc-img .online-dot {
    top: 16px !important;
    left: 16px !important;
    width: 14px !important;
    height: 14px !important;
  }
  .results-grid[data-view="list"] .profile-card.premium .pc-img .online-dot {
    top: 16px !important;
    left: auto !important;
    right: 90px !important;
  }
  .results-grid[data-view="list"] .profile-card .pc-img .compat-score {
    bottom: 14px !important;
    left: 14px !important;
    font-size: 13px !important;
    padding: 6px 12px !important;
    border-radius: 20px !important;
  }
  .results-grid[data-view="list"] .profile-card .pc-img .diet-badge {
    bottom: 14px !important;
    right: 14px !important;
    padding: 6px 8px !important;
  }
}


/* ---------- 49.8 REDUCED-MOTION accessibility ---------- */
@media (prefers-reduced-motion: reduce) {
  .filter-modal,
  .filter-drawer,
  .view-toggle button,
  .profile-card .pc-img .online-dot {
    transition: none !important;
    animation: none !important;
  }
}


/* ---------- 49.9 BODY scroll-lock when drawer open ---------- */
body.filter-open {
  overflow: hidden !important;
}


/* =========================================================
   50. STICKY HEADER (desktop + mobile) + CURVED BOTTOM NAV NOTCH
   --------------------------------------------------------
   Two independent chrome tweaks applied site-wide:
     50.1  Sticky header — root cause already fixed in
           html/body (overflow-x: hidden → clip). This block
           only adds polish (shadow, safe z-index).
     50.2  Bottom-nav curved notch — decorative SVG layer
           behind the nav items creates a concave scoop
           around the middle FAB button.
   ========================================================= */


/* ---------- 50.1 STICKY HEADER polish ---------- */
/*
   `position: sticky` is declared earlier in Sections 6 / 42.
   This block only reinforces the bottom shadow + z-index so
   the sticky state reads clearly when scrolling content passes
   underneath.
*/
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: #fff;
  box-shadow:
    0 1px 0 var(--line),                   /* hairline separator */
    0 4px 12px rgba(0, 0, 0, 0.04);        /* soft elevation when scrolled */
  transition: box-shadow 0.2s ease;
}

/* When user has scrolled, deepen the shadow slightly */
.site-header.scrolled,
html:not([data-scroll="0"]) .site-header {
  box-shadow:
    0 1px 0 var(--line),
    0 6px 18px rgba(0, 0, 0, 0.06);
}

/* Anchor-link offset so sticky header doesn't cover jumped-to sections */
:target,
section[id],
[id][data-anchor] {
  scroll-margin-top: 80px;
}


/* ---------- 50.2 BOTTOM NAV — curved notch via SVG ---------- */
/*
   HTML structure (from _build.py bottom_nav()):
     <nav class="bottom-nav">
       <svg class="bn-shape"> <path d="..."/> </svg>    ← decorative
       <div class="items">
         <a>Home</a> ... <a class="center-highlight">Matches</a> ... <a>Profile</a>
       </div>
     </nav>
*/

.bottom-nav {
  /* Transparent so the SVG shape becomes the visible "bar" */
  background: transparent !important;
  border-top: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 900;
  height: 72px;
}

/* SVG shape fills the entire nav area; path provides the notched outline.
   z-index: -1 puts it BEHIND the nav items but still inside the nav box. */
.bottom-nav .bn-shape {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  /* drop-shadow follows the non-rectangular path shape, unlike box-shadow */
  filter: drop-shadow(0 -2px 10px rgba(0, 0, 0, 0.08));
  pointer-events: none;
}

/* The shape path itself is white by default; theming-ready via custom property */
.bottom-nav .bn-shape path {
  fill: #fff;
}

/* Nav items sit ABOVE the SVG layer */
.bottom-nav .items {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  height: 100%;
  padding: 0 6px 6px;
  gap: 0;
}

.bottom-nav .items > a {
  flex: 1;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 2px;
  padding: 8px 4px 6px;
  font-size: 11px;
  font-weight: 500;
  color: var(--slate);
  text-decoration: none;
  line-height: 1;
  min-height: 58px;
  transition: color 0.2s ease;
}

.bottom-nav .items > a > i {
  font-size: 20px;
  line-height: 1;
}

.bottom-nav .items > a.active,
.bottom-nav .items > a:active {
  color: var(--green-dark);
}

/*
   Center FAB — "Matches" button.
   Sits UP and INTO the scoop thanks to negative margin.
   The 62px (56 icon + 3×2 border) button fits cleanly in the
   94-100px wide scoop with ~16px breathing room on each side.
*/
.bottom-nav .items > a.center-highlight {
  flex: 0 0 64px;
  min-width: 64px;
  margin-top: -30px;
  position: relative;
  z-index: 3;
  color: var(--orange-dark);
  font-weight: 600;
}


/* ---------- 50.3 Make sure content doesn't hide behind sticky bottom nav ---------- */
@media (max-width: 991px) {
  body {
    padding-bottom: 74px;  /* same as nav height + 2px safety */
  }
}

/* Desktop: bottom nav hidden, no padding needed */
@media (min-width: 992px) {
  .bottom-nav { display: none !important; }
  body { padding-bottom: 0 !important; }
}


/* ---------- 50.4 Reduced-motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .site-header { transition: none; }
}


/* =========================================================
   51. HERO BANNER — full-bleed edge-to-edge
   Remove all side padding/margin from hero carousel wrapper.
   Inner .hero-content keeps its own padding for content spacing.
   ========================================================= */
.hero,
.hero > .hero-carousel,
.hero-carousel,
.hero-carousel > .carousel-inner,
.hero-carousel .carousel-item {
  width: 100% !important;
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  border-radius: 0 !important;
}

/* Slide background + overlay fill full width */
.hero-slide {
  width: 100% !important;
  padding-left: 32px !important;
  padding-right: 32px !important;
}
@media (max-width: 767px) {
  .hero-slide {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
}

/* Inner content container: keep some max-width for readability
   but NO outer container forces gap on the slide itself */
.hero-slide .hero-content,
.hero-slide .hero-two-col {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}


/* =========================================================
   52. HERO CAROUSEL — equal slide height across all slides
   Uses fixed height (not min-height) to guarantee zero page jump
   regardless of slide content. Slide 1 has form (tall);
   slides 2/3 have only text + button — but ALL render at same height.
   ========================================================= */
.hero-carousel .carousel-inner,
.hero-carousel .carousel-item,
.hero-carousel .carousel-item > .hero-slide {
  height: 560px;
}

/* Tablet & mobile — height must accommodate slide-1 form (~700px content). */
@media (max-width: 991px) {
  .hero-carousel .carousel-inner,
  .hero-carousel .carousel-item,
  .hero-carousel .carousel-item > .hero-slide {
    height: 720px;
  }
}
@media (max-width: 575px) {
  .hero-carousel .carousel-inner,
  .hero-carousel .carousel-item,
  .hero-carousel .carousel-item > .hero-slide {
    height: 740px;
  }
}

/* Allow slide content to scroll internally if it ever overflows
   (preserves layout integrity instead of growing the slide). */
.hero-carousel .hero-slide {
  overflow: hidden;
}

/* On slides 2 & 3 (no form), center content vertically so the extra
   min-height doesn't leave them top-aligned with awkward whitespace. */
@media (max-width: 991px) {
  .hero-carousel .carousel-item .hero-slide {
    align-items: center;
  }
}

/* Hero carousel base — solid dark navy matches the .hero-slide overlay,
   so any area revealed during Bootstrap's slide transition blends
   seamlessly with the slide content. */
.hero-carousel {
  background: #141826;
}
/* NOTE: Do NOT add background to .carousel-item or .carousel-inner.
   Bootstrap moves both old + new items horizontally during a slide transition.
   If those layers had a gradient, you'd see it covering the slide images
   mid-slide. The gradient only needs to be on .hero-carousel (the outermost)
   so it shows behind any genuine empty space, not in front of slide content. */


/* =========================================================
   53. LIST VIEW — data-dense profile cards (search-results)
   --------------------------------------------------------
   Each card: horizontal strip with 5 zones:
     1. Header bar  (name / ID / status / icons)
     2. Photo col   (160px, last login below)
     3. Data grid   (8 fields label:value + bio)
     4. Badges col  (premium / match / verified)
     5. Action bar  (view / shortlist / interest)

   Visibility logic:
   - .list-view-only shown ONLY when results-grid[data-view="list"]
   - Grid cards (.col > .profile-card) shown in default grid view
   ========================================================= */

/* Default: hide list cards, show grid cards */
.list-view-only { display: none !important; }

/* When list view active: show list cards, hide grid cards */
.results-grid[data-view="list"] > .list-view-only {
  display: block !important;
  grid-column: 1 / -1 !important;
  flex: 0 0 100% !important;
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin-bottom: 14px;
}
.results-grid[data-view="list"] > .col:not(.list-view-only) {
  display: none !important;
}


/* ---------- 53.1 LIST CARD container ---------- */
.list-card {
  display: block;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  text-decoration: none;
  color: var(--ink);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  transition: all 0.22s ease;
  position: relative;
}
.list-card:hover {
  border-color: rgba(214, 31, 38, 0.4);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  transform: translateY(-2px);
}
.list-card.selected {
  background: #eef6ff;
  border-color: var(--info, #3b82f6);
}
/* Slide-out animation when × close is clicked */
.list-card.closing {
  opacity: 0;
  transform: translateX(30px);
  pointer-events: none;
}


/* ---------- 53.2 ZONE 1 — Header bar ---------- */
.list-card .lc-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 16px;
  background: linear-gradient(90deg, #f9faf7 0%, #fff 100%);
  border-bottom: 1px solid var(--line);
  gap: 12px;
  flex-wrap: wrap;
}
.list-card .lc-identity {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  min-width: 0;
}
.list-card .lc-name {
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 700;
  color: var(--green-dark);
  line-height: 1.2;
}
.list-card .lc-id {
  font-size: 11.5px;
  color: var(--muted);
  font-weight: 500;
  letter-spacing: 0.02em;
}
.list-card .lc-meta-actions {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.list-card .lc-status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 600;
  color: var(--ink);
}
.list-card .lc-status .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
}
.list-card .lc-status.online .dot {
  background: var(--green);
  box-shadow: 0 0 0 2px rgba(214, 31, 38, 0.25);
  animation: lcDotPulse 1.8s ease-in-out infinite;
}
.list-card .lc-status.offline .dot {
  background: #9ca3af;
}
.list-card .lc-status.online { color: var(--green-dark); }
.list-card .lc-status.offline { color: var(--muted); }
@keyframes lcDotPulse {
  0%, 100% { box-shadow: 0 0 0 2px rgba(214, 31, 38, 0.3); }
  50%      { box-shadow: 0 0 0 6px rgba(214, 31, 38, 0); }
}
.list-card .lc-chat {
  font-size: 12.5px;
  color: var(--slate);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-weight: 500;
  transition: color 0.2s ease;
}
.list-card .lc-chat:hover { color: var(--green-dark); }
.list-card .lc-chat i { font-size: 13px; }
.list-card .lc-chat.lc-chat-locked { color: var(--muted); }
.list-card .lc-chat.lc-chat-locked:hover { color: var(--orange); }

.list-card .lc-icons {
  display: inline-flex;
  gap: 6px;
}
.list-card .lc-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--line);
  color: var(--slate);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  transition: all 0.2s ease;
}
.list-card .lc-icon:hover {
  background: var(--bg-soft);
  color: var(--ink);
  transform: scale(1.08);
}
.list-card .lc-icon.gold {
  color: var(--gold-dark);
  border-color: var(--gold);
}
.list-card .lc-icon.gold:hover {
  background: var(--gold-light);
}
.list-card .lc-icon.danger {
  color: #dc2626;
  border-color: #fecaca;
}
.list-card .lc-icon.danger:hover {
  background: #dc2626;
  color: #fff;
  border-color: #dc2626;
}


/* ---------- 53.3 BODY — photo + mid + badges ---------- */
.list-card .lc-body {
  display: grid;
  grid-template-columns: 170px 1fr 180px;
  gap: 18px;
  padding: 16px;
  align-items: stretch;
}


/* ---------- 53.4 ZONE 2 — Photo column ---------- */
.list-card .lc-photo {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  background: var(--bg-soft);
  aspect-ratio: 4 / 5;
  height: fit-content;
}
.list-card .lc-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.list-card .lc-photo.no-photo {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--green-light), var(--bg-soft));
  min-height: 212px;
}
.list-card .lc-photo.no-photo .lc-ph-avatar {
  font-size: 64px;
  color: var(--muted);
  opacity: 0.5;
}
.list-card .lc-photo.blurred img {
  filter: blur(14px);
  transform: scale(1.1);
}
.list-card .lc-photo .lc-ph-overlay {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: rgba(0, 0, 0, 0.72);
  color: #fff;
  font-size: 11.5px;
  font-weight: 600;
  padding: 8px 12px;
  border-radius: 20px;
  text-align: center;
  white-space: nowrap;
  backdrop-filter: blur(4px);
  cursor: pointer;
}


/* ---------- 53.5 ZONE 3 — Data grid (middle) ---------- */
.list-card .lc-mid {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.list-card .lc-data {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 6px 14px;
}
.list-card .lc-row {
  display: contents;
}
.list-card .lc-lbl {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--muted);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  align-self: center;
  position: relative;
  padding-right: 10px;
}
.list-card .lc-lbl::after {
  content: ':';
  position: absolute;
  right: 0;
  color: var(--muted);
  opacity: 0.7;
}
.list-card .lc-val {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.3;
}

.list-card .lc-bio {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  padding: 10px 12px;
  background: var(--bg-soft);
  border-left: 3px solid var(--orange);
  border-radius: 0 8px 8px 0;
  font-size: 12.5px;
  font-style: italic;
  color: var(--slate);
  line-height: 1.4;
  margin-top: 6px;
}
.list-card .lc-bio i {
  color: var(--orange);
  font-size: 14px;
  flex-shrink: 0;
  margin-top: 1px;
}

.list-card .lc-last-login {
  font-size: 11.5px;
  color: var(--muted);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: auto;
}


/* ---------- 53.6 ZONE 4 — Badges column ---------- */
.list-card .lc-badges {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: stretch;
  justify-content: flex-start;
}
.list-card .lc-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 7px 12px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}
.list-card .lc-badge.premium {
  background: linear-gradient(135deg, var(--gold), var(--gold-dark));
  color: #fff;
  box-shadow: 0 3px 10px rgba(198, 138, 58, 0.35);
}
.list-card .lc-badge.match {
  background: linear-gradient(135deg, var(--green), var(--green-dark));
  color: #fff;
  box-shadow: 0 3px 10px rgba(214, 31, 38, 0.25);
}
.list-card .lc-badge.verified {
  background: var(--green-light);
  color: var(--green-dark);
  border: 1px solid var(--green);
}
.list-card .lc-badge i {
  font-size: 11px;
}


/* ---------- 53.7 ZONE 5 — Action bar ---------- */
.list-card .lc-actions {
  display: flex;
  gap: 10px;
  padding: 12px 16px;
  background: #fafafa;
  border-top: 1px solid var(--line);
  flex-wrap: wrap;
}
.list-card .lc-btn {
  flex: 1;
  min-width: 160px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 16px;
  border-radius: 24px;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease;
  border: 1.5px solid transparent;
  background: #fff;
  font-family: inherit;
}
.list-card .lc-btn i { font-size: 14px; }

/* View Profile — green filled */
.list-card .lc-btn.lc-view {
  background: linear-gradient(135deg, var(--green), var(--green-dark));
  color: #fff;
  border: none;
  box-shadow: 0 4px 12px rgba(214, 31, 38, 0.25);
}
.list-card .lc-btn.lc-view:hover {
  filter: brightness(1.08);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(214, 31, 38, 0.35);
}

/* Short List — gold outline, toggles to gold filled */
.list-card .lc-btn.lc-shortlist {
  background: #fff;
  color: var(--gold-dark);
  border-color: var(--gold);
}
.list-card .lc-btn.lc-shortlist:hover {
  background: var(--gold-light);
}
.list-card .lc-btn.lc-shortlist.active {
  background: linear-gradient(135deg, var(--gold), var(--gold-dark));
  color: #fff;
  border-color: transparent;
  box-shadow: 0 4px 12px rgba(198, 138, 58, 0.3);
}
.list-card .lc-btn.lc-shortlist.active i::before {
  content: '\F64D';     /* bi-bookmark-heart-fill */
}

/* Send Interest — orange outline, toggles to orange filled, then grey when sent */
.list-card .lc-btn.lc-interest {
  background: #fff;
  color: var(--orange-dark);
  border-color: var(--orange);
}
.list-card .lc-btn.lc-interest:hover {
  background: var(--orange-light);
}
.list-card .lc-btn.lc-interest.active {
  background: linear-gradient(135deg, var(--orange), var(--orange-dark));
  color: #fff;
  border-color: transparent;
  box-shadow: 0 4px 12px rgba(198, 138, 58, 0.3);
}
.list-card .lc-btn.lc-interest.sent {
  background: #f3f4f6;
  color: var(--muted);
  border-color: var(--line);
  cursor: default;
  box-shadow: none;
  pointer-events: none;
}
.list-card .lc-btn.lc-interest.sent i::before {
  content: '\F26E';     /* bi-check2 */
}


/* ---------- 53.8 RESPONSIVE — tablet + mobile ---------- */
@media (max-width: 991px) {
  .list-card .lc-body {
    grid-template-columns: 140px 1fr;
    gap: 14px;
    padding: 14px;
  }
  .list-card .lc-badges {
    grid-column: 1 / -1;
    flex-direction: row;
    flex-wrap: wrap;
    padding-top: 4px;
    border-top: 1px dashed var(--line);
  }
  .list-card .lc-badges .lc-badge {
    flex: 0 1 auto;
  }
}

@media (max-width: 575px) {
  .list-card .lc-header {
    padding: 10px 12px;
    gap: 8px;
  }
  .list-card .lc-meta-actions {
    gap: 8px;
    width: 100%;
    justify-content: space-between;
  }
  .list-card .lc-body {
    grid-template-columns: 1fr;
    padding: 12px;
  }
  .list-card .lc-photo {
    aspect-ratio: 16 / 9;
    width: 100%;
    min-height: 200px;
  }
  .list-card .lc-data {
    grid-template-columns: 100px 1fr;
    gap: 5px 10px;
  }
  .list-card .lc-lbl { font-size: 10.5px; }
  .list-card .lc-val { font-size: 13px; }
  .list-card .lc-actions {
    padding: 10px 12px;
    gap: 6px;
  }
  .list-card .lc-btn {
    min-width: 0;
    padding: 9px 8px;
    font-size: 12px;
  }
  .list-card .lc-btn span {
    display: inline-block;
    max-width: 100px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}


/* =========================================================
   54. TWO PREMIUM TIERS (Gold + Elite) + field icons +
       header icon states (viewed / block / ignore)
   ========================================================= */

/* ---------- 54.1 TIER RIBBON (top-right of list card) ---------- */
.list-card .lc-tier-ribbon {
  position: absolute;
  top: 12px;
  right: -38px;
  transform: rotate(45deg);
  padding: 3px 40px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: #fff;
  z-index: 10;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  pointer-events: none;
}
.list-card .lc-tier-ribbon i { font-size: 10px; }
.list-card .lc-tier-ribbon.gold {
  background: linear-gradient(135deg, var(--gold), var(--gold-dark));
}
.list-card .lc-tier-ribbon.elite {
  background: linear-gradient(135deg, #8b5cf6, #5b21b6);  /* purple — diamond elite */
}

/* ---------- 54.2 TIER CARD STYLING — distinct visual emphasis ---------- */
/* Gold Premium: subtle gold border + soft gold-tinted hover */
.list-card.premium-gold {
  border-color: var(--gold);
  box-shadow: 0 0 0 1px rgba(198, 138, 58, 0.15), 0 2px 10px rgba(0, 0, 0, 0.05);
}
.list-card.premium-gold .lc-header {
  background: linear-gradient(90deg, #fdf6e3 0%, #fff 100%);
  border-bottom-color: rgba(198, 138, 58, 0.3);
}
.list-card.premium-gold:hover {
  box-shadow: 0 0 0 1px var(--gold), 0 10px 26px rgba(198, 138, 58, 0.18);
}

/* Elite: purple glow + thicker border */
.list-card.premium-elite {
  border: 1.5px solid #8b5cf6;
  box-shadow: 0 0 0 2px rgba(139, 92, 246, 0.15), 0 4px 14px rgba(0, 0, 0, 0.07);
}
.list-card.premium-elite .lc-header {
  background: linear-gradient(90deg, #f3e8ff 0%, #fff 100%);
  border-bottom-color: rgba(139, 92, 246, 0.3);
}
.list-card.premium-elite .lc-name {
  color: #5b21b6;
}
.list-card.premium-elite:hover {
  box-shadow: 0 0 0 2px #8b5cf6, 0 14px 34px rgba(139, 92, 246, 0.22);
}

/* ---------- 54.3 TIER BADGE in right column ---------- */
.list-card .lc-badge.premium.gold {
  background: linear-gradient(135deg, var(--gold), var(--gold-dark));
  color: #fff;
  box-shadow: 0 3px 10px rgba(198, 138, 58, 0.35);
}
.list-card .lc-badge.premium.elite {
  background: linear-gradient(135deg, #8b5cf6, #5b21b6);
  color: #fff;
  box-shadow: 0 3px 10px rgba(139, 92, 246, 0.4);
}

/* ---------- 54.4 FIELD-LABEL ICONS — color-coded by field ---------- */
.list-card .lc-lbl i {
  width: 14px;
  display: inline-block;
  margin-right: 5px;
  font-size: 12px;
  vertical-align: -1px;
}
/* Color rotation by field position (using nth-of-type on .lc-row).
   Even though .lc-row uses display:contents, nth-of-type still works on it. */
.list-card .lc-data .lc-row:nth-of-type(3n+1) .lc-lbl i { color: var(--green-dark); }
.list-card .lc-data .lc-row:nth-of-type(3n+2) .lc-lbl i { color: var(--orange); }
.list-card .lc-data .lc-row:nth-of-type(3n+3) .lc-lbl i { color: var(--gold-dark); }

/* Remove the ":" after label — icon presence makes it redundant */
.list-card .lc-lbl::after {
  display: none;
}

/* ---------- 54.5 HEADER ICON STATES (eye / block / ignore) ---------- */

/* Eye — viewed (already marked as viewed = solid red, matches Block/Ignore's danger tone) */
.list-card .lc-icon.eye.viewed {
  color: #fff;
  border-color: #dc2626;
  background: #dc2626;
}
.list-card .lc-icon.eye.viewed:hover {
  background: #b91c1c;
  border-color: #b91c1c;
  color: #fff;
}

/* Block — already-blocked state (member/profiles_blocked) = solid red,
   matches Eye/Viewed's danger tone: "click to remove". */
.list-card .lc-icon.block {
  color: #fff;
  border-color: #dc2626;
  background: #dc2626;
}
.list-card .lc-icon.block:hover {
  background: #b91c1c;
  border-color: #b91c1c;
  color: #fff;
}
.list-card .lc-icon.block.unblocked {
  color: var(--green-dark);
  border-color: var(--green);
  background: var(--green-light);
}
.list-card .lc-icon.block.unblocked:hover {
  background: var(--green);
  color: #fff;
}

/* Ignore (×) — base ".danger" state in Section 53 is the "not yet ignored"
   default. The ".ignored" variant marks an already-ignored profile (reused on
   member/profiles_ignored) as solid red = "click to remove", matching Block. */
.list-card .lc-icon.danger.ignored {
  color: #fff;
  border-color: #dc2626;
  background: #dc2626;
}
.list-card .lc-icon.danger.ignored:hover {
  background: #b91c1c;
  border-color: #b91c1c;
  color: #fff;
}


/* ---------- 54.6 GRID VIEW — two-tier ribbons + field icons ---------- */
.profile-card .premium-ribbon.gold {
  background: linear-gradient(135deg, var(--gold), var(--gold-dark));
}
.profile-card .premium-ribbon.elite {
  background: linear-gradient(135deg, #8b5cf6, #5b21b6);
}
.profile-card .premium-ribbon i {
  font-size: 9px;
  margin-right: 2px;
}

/* Grid card tier accent */
.profile-card.premium-gold {
  border-color: var(--gold);
}
.profile-card.premium-gold:hover {
  box-shadow: 0 0 0 1px var(--gold), 0 8px 22px rgba(198, 138, 58, 0.2);
}
.profile-card.premium-elite {
  border: 1.5px solid #8b5cf6;
}
.profile-card.premium-elite:hover {
  box-shadow: 0 0 0 1px #8b5cf6, 0 10px 26px rgba(139, 92, 246, 0.25);
}
.profile-card.premium-elite .pc-name {
  color: #5b21b6;
}

/* Grid pc-detail + pc-meta — color the new -fill icons */
.profile-card .pc-meta i { color: var(--orange); font-size: 11px; margin-right: 4px; }
.profile-card .pc-detail i:first-child { color: var(--green-dark); }
.profile-card .pc-detail:nth-of-type(2) i:first-child { color: var(--gold-dark); }


/* =========================================================
   55. ROUND 12 FIXES — default list · grid member id ·
       header tier-ribbon clearance · online chat blink ·
       last-login under photo · mobile compact list view
   ========================================================= */

/* ---------- 55.1 GRID — Member ID below name ---------- */
.profile-card .pc-id {
  font-size: 11px;
  color: var(--muted);
  font-weight: 500;
  letter-spacing: 0.04em;
  margin-top: 2px;
  margin-bottom: 4px;
  display: block;
}
.profile-card.premium-elite .pc-id { color: #7c3aed; font-weight: 600; }
.profile-card.premium-gold .pc-id  { color: var(--gold-dark); font-weight: 600; }


/* ---------- 55.2 LIST HEADER — clear tier ribbon overlap ---------- */
/* When a tier ribbon exists, shift header-right actions leftward
   so the Ignore (×) icon isn't hidden under the diagonal ribbon. */
.list-card.premium-gold .lc-header,
.list-card.premium-elite .lc-header {
  padding-right: 90px;    /* reserve space for the corner ribbon */
}
/* Ribbon floats above header, won't push layout anymore */
.list-card .lc-tier-ribbon {
  pointer-events: none;
}


/* ---------- 55.3 CHAT NOW blink for online members ---------- */
/* Only blink when the status element carries .online class */
.list-card .lc-status.online ~ .lc-chat {
  animation: chatBlink 1.4s ease-in-out infinite;
  color: var(--green-dark);
  font-weight: 600;
}
.list-card .lc-status.online ~ .lc-chat i {
  color: var(--green-dark);
}
@keyframes chatBlink {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.55; transform: scale(0.97); }
}


/* ---------- 55.4 LAST-LOGIN repositioned under photo ---------- */
.list-card .lc-photo-col {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: stretch;
}
.list-card .lc-photo-col .lc-last-login {
  font-size: 11px;
  color: var(--muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  background: var(--bg-soft);
  padding: 5px 8px;
  border-radius: 6px;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin: 0;
}
.list-card .lc-photo-col .lc-last-login i {
  font-size: 11px;
  color: var(--orange);
}
/* Restructure grid so the new .lc-photo-col slots into column 1 */
.list-card .lc-body {
  grid-template-columns: 170px 1fr 180px;
}


/* ---------- 55.5 MOBILE LIST VIEW — compact ---------- */
@media (max-width: 767px) {
  .list-card .lc-header {
    padding: 8px 12px;
    gap: 6px;
  }
  .list-card .lc-name {
    font-size: 14px;
  }
  .list-card .lc-id {
    font-size: 10.5px;
  }
  .list-card .lc-meta-actions {
    gap: 6px;
  }
  .list-card .lc-status {
    font-size: 11px;
  }
  .list-card .lc-chat {
    font-size: 11.5px;
  }
  .list-card .lc-icon {
    width: 26px;
    height: 26px;
    font-size: 11px;
  }
  .list-card.premium-gold .lc-header,
  .list-card.premium-elite .lc-header {
    padding-right: 70px;  /* tighter on mobile */
  }

  /* Body stacks vertically on mobile */
  .list-card .lc-body {
    grid-template-columns: 1fr !important;
    padding: 10px;
    gap: 10px;
  }
  /* Mobile list: photo full-width stacked, last-login pill below */
  .list-card .lc-photo-col {
    flex-direction: column;
    gap: 8px;
    align-items: stretch;
  }
  .list-card .lc-photo {
    flex: none;
    width: 100%;
    min-height: 0;
    aspect-ratio: 16 / 10;
    max-height: 260px;
  }
  .list-card .lc-photo img {
    object-position: center 25%;
  }
  .list-card .lc-photo-col .lc-last-login {
    width: 100%;
    padding: 7px 12px;
    font-size: 11.5px;
  }

  .list-card .lc-data {
    grid-template-columns: 90px 1fr;
    gap: 4px 8px;
  }
  .list-card .lc-lbl {
    font-size: 10px;
    padding-right: 0;
  }
  .list-card .lc-lbl i {
    margin-right: 3px;
    font-size: 11px;
  }
  .list-card .lc-val {
    font-size: 12px;
  }
  .list-card .lc-bio {
    padding: 8px 10px;
    font-size: 11.5px;
  }

  .list-card .lc-badges {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 6px;
    padding-top: 4px;
    border-top: 1px dashed var(--line);
  }
  .list-card .lc-badge {
    font-size: 10px;
    padding: 5px 9px;
  }

  /* Compact action bar */
  .list-card .lc-actions {
    padding: 8px 10px;
    gap: 6px;
  }
  .list-card .lc-btn {
    min-width: 0;
    padding: 7px 8px;
    font-size: 11.5px;
    min-height: 34px;
    border-radius: 18px;
    gap: 4px;
  }
  .list-card .lc-btn i {
    font-size: 12px;
  }
  .list-card .lc-btn span {
    max-width: 80px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}


/* =========================================================
   56. PROFILE VARIANTS — profile1/2/3/4.html
   --------------------------------------------------------
   Four innovative profile page designs as preview pages.
   ALL classes prefixed with .p1- .p2- .p3- .p4- or .vp-
   so they cannot affect any existing page.
   --------------------------------------------------------
   Section structure:
     56.1  Shared (.vp-*) — hero card, form inputs, buttons
     56.2  Variant A (.p1-*) — Story Mode
     56.3  Variant B (.p2-*) — Timeline
     56.4  Variant C (.p3-*) — Orbits
     56.5  Variant D (.p4-*) — Magazine Chapters
     56.6  Mobile responsive
   ========================================================= */

/* ---------- 56.1 Shared (vp- prefix) ---------- */
.vp-page-wrap {
  padding: 24px 0 60px;
  background: #f5f7fa;
}
body.profile-page.p1-page,
body.profile-page.p2-page,
body.profile-page.p3-page,
body.profile-page.p4-page { background: #f5f7fa; }

/* Hero card (shared by all 4) */
.vp-hero {
  background: #fff;
  border-radius: 18px;
  border: 1px solid #e5e7eb;
  box-shadow: 0 2px 18px rgba(0,0,0,0.04);
  margin-bottom: 22px;
  overflow: hidden;
}
.vp-hero-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 22px;
  border-bottom: 1px solid #e5e7eb;
  background: linear-gradient(90deg, #fafbfd, #fff);
  flex-wrap: wrap;
  gap: 12px;
}
.vp-hero-h {
  margin: 0;
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 22px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.vp-hero-h i { color: var(--green-dark, #B71C22); }
.vp-hero-premium {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  background: linear-gradient(135deg, #C68A3A, #A8742A);
  color: #fff;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.vp-hero-body {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 24px;
  padding: 22px;
  align-items: start;
}
.vp-hero-photo-col { display: flex; flex-direction: column; gap: 10px; }
.vp-hero-main {
  width: 100%;
  aspect-ratio: 4/5;
  border-radius: 14px;
  overflow: hidden;
  background: #f1f5f9;
}
.vp-hero-main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vp-hero-thumbs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
}
.vp-thumb {
  width: 100%;
  aspect-ratio: 1;
  border-radius: 8px;
  object-fit: cover;
  cursor: pointer;
  border: 2px solid transparent;
  transition: all 0.2s ease;
}
.vp-thumb.active { border-color: #D61F26; }
.vp-thumb:hover { transform: translateY(-2px); }
.vp-hero-info { min-width: 0; }
.vp-hero-name-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}
.vp-hero-name {
  margin: 0;
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 28px;
  font-weight: 700;
}
.vp-hero-mid {
  font-size: 13px;
  font-weight: 700;
  color: #A8742A;
  background: #f5e8d4;
  padding: 3px 10px;
  border-radius: 12px;
}
.vp-hero-sub { color: #475569; font-size: 13.5px; margin: 0 0 16px; }
.vp-hero-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px 24px;
}
.vp-hero-stat { display: flex; flex-direction: column; gap: 2px; }
.vp-hero-lbl {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #94a3b8;
}
.vp-hero-lbl i { font-size: 12px; color: #D61F26; }
.vp-hero-val { font-size: 14px; font-weight: 500; color: #333333; }

/* Shared form/input styles (used by all 4 variants on edit) */
.vp-form { display: grid; gap: 14px; padding: 4px 0; }
.vp-form.vp-grid-2 { grid-template-columns: 1fr 1fr; }
.vp-form.vp-grid-1 { grid-template-columns: 1fr; }
.vp-row { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.vp-row-full { grid-column: 1 / -1; }
.vp-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #475569;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.vp-label i { font-size: 13px; color: #B71C22; }
.vp-input {
  width: 100%;
  padding: 10px 12px;
  font-size: 14px;
  font-family: inherit;
  color: #333333;
  background: #fff;
  border: 1.5px solid #e5e7eb;
  border-radius: 10px;
  outline: none;
  transition: all 0.18s ease;
  min-height: 42px;
}
.vp-input:focus {
  border-color: #D61F26;
  box-shadow: 0 0 0 3px rgba(22,167,81,0.14);
}
.vp-select {
  appearance: none;
  -webkit-appearance: none;
  background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%23475569' d='M6 8L0 0h12z'/></svg>") no-repeat right 14px center / 10px;
  padding-right: 36px;
  cursor: pointer;
}
.vp-textarea { min-height: 80px; resize: vertical; line-height: 1.5; }
.vp-radio-group { display: flex; flex-wrap: wrap; gap: 6px; }
.vp-radio {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 8px 12px;
  border: 1.5px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
  font-size: 12.5px;
  transition: all 0.18s ease;
  min-height: 38px;
}
.vp-radio input { accent-color: #D61F26; }
.vp-radio:hover { border-color: #D61F26; background: #fde9ea; }
.vp-radio:has(input:checked) {
  background: #fde9ea;
  color: #B71C22;
  border-color: #D61F26;
  font-weight: 600;
}
.vp-file-wrap { display: flex; flex-direction: column; gap: 4px; }
.vp-file {
  background: #f1f5f9;
  border-style: dashed;
  font-size: 13px;
  cursor: pointer;
  padding: 8px 10px;
}
.vp-file-hint { font-size: 11px; color: #94a3b8; }
.vp-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 14px 0 4px;
  margin-top: 8px;
  border-top: 1px solid #e5e7eb;
}
.vp-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 22px;
  border-radius: 22px;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  border: 1.5px solid;
  transition: all 0.2s ease;
  min-height: 42px;
}
.vp-cancel { background: #fff; color: #475569; border-color: #e5e7eb; }
.vp-cancel:hover { background: #f1f5f9; color: #333333; }
.vp-save {
  background: linear-gradient(135deg, #D61F26, #B71C22);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 4px 12px rgba(22,167,81,0.28);
}
.vp-save:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(22,167,81,0.4); }


/* ---------- 56.2 VARIANT A — Story Mode (.p1-*) ---------- */
.p1-wrap { padding-top: 18px; }
.p1-progress-bars {
  display: flex;
  gap: 4px;
  padding: 0 4px;
  margin-bottom: 14px;
}
.p1-bar {
  flex: 1;
  height: 4px;
  background: #e5e7eb;
  border-radius: 2px;
  transition: background 0.3s ease;
}
.p1-bar.active { background: linear-gradient(90deg, #D61F26, #C68A3A); }
.p1-bar.done { background: #D61F26; }
.p1-deck {
  position: relative;
  min-height: 580px;
}
.p1-card {
  display: none;
  background: #fff;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0,0,0,0.10);
  position: relative;
  perspective: 1500px;
}
.p1-card.active { display: block; animation: p1FadeIn 0.4s ease; }
@keyframes p1FadeIn {
  from { opacity: 0; transform: translateX(20px); }
  to { opacity: 1; transform: translateX(0); }
}
.p1-front {
  padding: 28px;
  color: #fff;
  min-height: 540px;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: opacity 0.5s ease;
}
.p1-card.editing .p1-front { display: none; }
.p1-front-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 22px;
}
.p1-chap {
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.85;
  font-weight: 600;
}
.p1-progress-ring {
  position: relative;
  width: 50px;
  height: 50px;
}
.p1-progress-ring svg { width: 50px; height: 50px; }
.p1-progress-ring span {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
}
.p1-front-mid { margin-bottom: 20px; }
.p1-icon-big {
  width: 72px;
  height: 72px;
  border-radius: 18px;
  background: rgba(255,255,255,0.25);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  margin-bottom: 16px;
  backdrop-filter: blur(10px);
}
.p1-title {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 32px;
  font-weight: 700;
  margin: 0 0 8px;
  line-height: 1.15;
}
.p1-summary { font-size: 15px; opacity: 0.92; margin: 0; line-height: 1.5; }
.p1-preview {
  flex: 1;
  background: rgba(255,255,255,0.12);
  border-radius: 14px;
  padding: 14px 18px;
  margin-bottom: 18px;
  backdrop-filter: blur(8px);
}
.p1-field-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 7px 0;
  border-bottom: 1px solid rgba(255,255,255,0.18);
  gap: 12px;
}
.p1-field-row:last-child { border-bottom: none; }
.p1-field-lbl {
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.85;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.p1-field-lbl i { font-size: 12px; }
.p1-field-val { font-size: 14px; font-weight: 600; text-align: right; }
.p1-front-bottom { margin-top: auto; }
.p1-edit-btn {
  width: 100%;
  background: #fff;
  color: #333333;
  border: none;
  padding: 13px 24px;
  border-radius: 28px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: all 0.2s ease;
  font-family: inherit;
}
.p1-edit-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0,0,0,0.18); }
.p1-back {
  display: none;
  padding: 24px 28px;
  min-height: 540px;
}
.p1-card.editing .p1-back { display: block; animation: p1FlipIn 0.4s ease; }
@keyframes p1FlipIn {
  from { opacity: 0; transform: rotateY(15deg); }
  to { opacity: 1; transform: rotateY(0); }
}
.p1-back-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 14px;
  border-bottom: 1px solid #e5e7eb;
  margin-bottom: 16px;
}
.p1-back-head h3 {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 20px;
  font-weight: 700;
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.p1-back-head h3 i { color: #B71C22; }
.p1-back-close {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #f1f5f9;
  border: 1.5px solid #e5e7eb;
  cursor: pointer;
  font-size: 14px;
  color: #475569;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}
.p1-back-close:hover { background: #C68A3A; color: #fff; border-color: #C68A3A; transform: rotate(90deg); }
.p1-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 18px;
  padding: 0 4px;
}
.p1-nav-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 20px;
  background: #fff;
  border: 1.5px solid #e5e7eb;
  border-radius: 24px;
  font-size: 13.5px;
  font-weight: 600;
  color: #333333;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
}
.p1-nav-btn:hover:not(:disabled) {
  background: #D61F26;
  color: #fff;
  border-color: #D61F26;
  transform: translateY(-1px);
}
.p1-nav-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.p1-nav-counter {
  font-size: 13px;
  color: #475569;
  font-weight: 600;
}
.p1-nav-counter span { color: #D61F26; font-weight: 700; }


/* ---------- 56.3 VARIANT B — Timeline (.p2-*) ---------- */
.p2-overall {
  background: #fff;
  border-radius: 16px;
  padding: 22px;
  margin-bottom: 22px;
  border: 1px solid #e5e7eb;
  box-shadow: 0 2px 14px rgba(0,0,0,0.04);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}
.p2-overall-text h2 {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 22px;
  margin: 0 0 4px;
}
.p2-overall-text p { color: #475569; font-size: 13.5px; margin: 0; }
.p2-overall-stats { display: flex; gap: 14px; }
.p2-stat {
  text-align: center;
  padding: 10px 18px;
  background: #f1f5f9;
  border-radius: 12px;
  min-width: 80px;
}
.p2-stat strong {
  display: block;
  font-size: 24px;
  font-family: var(--font-display, 'Fraunces', serif);
  font-weight: 700;
  color: #B71C22;
  line-height: 1;
}
.p2-stat span {
  font-size: 11px;
  color: #475569;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-weight: 600;
}
.p2-timeline {
  position: relative;
  padding-left: 36px;
}
.p2-timeline::before {
  content: '';
  position: absolute;
  left: 17px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: linear-gradient(180deg, #D61F26, #C68A3A, #C68A3A);
  border-radius: 2px;
}
.p2-item { position: relative; margin-bottom: 18px; }
.p2-dot {
  position: absolute;
  left: -36px;
  top: 16px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid #e5e7eb;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  z-index: 2;
  transition: all 0.3s ease;
}
.p2-item.p2-done .p2-dot { background: #D61F26; border-color: #B71C22; color: #fff; }
.p2-item.p2-progress .p2-dot { background: #f5e8d4; border-color: #C68A3A; color: #A8742A; }
.p2-item.p2-empty .p2-dot { border-style: dashed; color: #94a3b8; }
.p2-card {
  background: #fff;
  border-radius: 14px;
  border: 1px solid #e5e7eb;
  box-shadow: 0 2px 10px rgba(0,0,0,0.04);
  overflow: hidden;
  transition: all 0.3s ease;
}
.p2-item.p2-done .p2-card { border-left: 4px solid #D61F26; }
.p2-item.p2-progress .p2-card { border-left: 4px solid #C68A3A; }
.p2-card-head {
  padding: 16px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  transition: background 0.2s ease;
}
.p2-card-head:hover { background: #fafbfd; }
.p2-head-text { min-width: 0; flex: 1; }
.p2-card-title {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 17px;
  font-weight: 700;
  margin: 0 0 2px;
  color: #333333;
}
.p2-card-sub { font-size: 13px; color: #475569; margin: 0; }
.p2-head-right {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}
.p2-pct {
  font-size: 13px;
  font-weight: 700;
  font-family: var(--font-display, 'Fraunces', serif);
  color: #B71C22;
  background: #fde9ea;
  padding: 4px 10px;
  border-radius: 10px;
}
.p2-item.p2-progress .p2-pct { color: #A8742A; background: #f5e8d4; }
.p2-item.p2-empty .p2-pct { color: #94a3b8; background: #f1f5f9; }
.p2-toggle-btn {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1.5px solid #e5e7eb;
  background: #fff;
  cursor: pointer;
  font-size: 12px;
  color: #475569;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}
.p2-item.expanded .p2-toggle-btn { transform: rotate(180deg); background: #D61F26; color: #fff; border-color: #D61F26; }
.p2-card-body {
  display: none;
  padding: 0 20px 20px;
  border-top: 1px solid #f1f5f9;
}
.p2-item.expanded .p2-card-body { display: block; animation: p2SlideDown 0.3s ease; }
@keyframes p2SlideDown {
  from { opacity: 0; transform: translateY(-10px); }
  to { opacity: 1; transform: translateY(0); }
}
.p2-view, .p2-edit-mode { padding: 14px 0; }
.p2-edit-mode { display: none; }
.p2-item.editing .p2-view { display: none; }
.p2-item.editing .p2-edit-mode { display: block; }
/* Stat-card grid: like hero, 2-col on desktop, 1-col mobile */
.p2-view {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 28px;
}
.p2-view .p2-edit-btn { grid-column: 1 / -1; justify-self: start; }
.p2-field-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 6px 0;
  min-width: 0;
}
.p2-field-row:last-of-type { border-bottom: none; }
.p2-field-lbl {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.p2-field-lbl i { font-size: 12px; color: #D61F26; }
.p2-field-val {
  font-size: 14px;
  color: #333333;
  font-weight: 500;
  text-align: left;
  word-break: break-word;
}
.p2-edit-btn {
  margin-top: 14px;
  background: linear-gradient(135deg, #D61F26, #B71C22);
  color: #fff;
  border: none;
  padding: 10px 22px;
  border-radius: 22px;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: inherit;
  transition: all 0.2s ease;
}
.p2-edit-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(22,167,81,0.35); }


/* ---------- 56.4 VARIANT C — Orbits (.p3-*) ---------- */
.p3-galaxy {
  background: #fff;
  border-radius: 18px;
  border: 1px solid #e5e7eb;
  padding: 30px 20px;
  margin-bottom: 24px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.p3-stage {
  position: relative;
  width: 100%;
  max-width: 540px;
  aspect-ratio: 1;
  margin: 0 auto;
}
.p3-orbit-outer, .p3-orbit-inner {
  position: absolute;
  top: 50%;
  left: 50%;
  border: 1.5px dashed #cbd5e1;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}
.p3-orbit-inner { width: 50%; height: 50%; border-color: #94a3b8; }
.p3-orbit-outer { width: 90%; height: 90%; }
.p3-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 110px;
  height: 110px;
  border-radius: 50%;
  overflow: hidden;
  border: 4px solid #fff;
  box-shadow: 0 0 0 3px #D61F26, 0 8px 24px rgba(0,0,0,0.15);
  z-index: 5;
}
.p3-center img { width: 100%; height: 100%; object-fit: cover; }
.p3-center-name {
  position: absolute;
  bottom: 8px;
  left: 0;
  right: 0;
  text-align: center;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,0.5));
  padding: 14px 0 4px;
}
.p3-node {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(var(--angle)) translateY(calc(-1 * var(--orbit-r))) rotate(calc(-1 * var(--angle)));
  border: none;
  background: #fff;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-family: inherit;
  transition: all 0.3s ease;
  box-shadow: 0 4px 14px rgba(0,0,0,0.10);
  padding: 0;
}
.p3-node:hover { transform: translate(-50%, -50%) rotate(var(--angle)) translateY(calc(-1 * var(--orbit-r))) rotate(calc(-1 * var(--angle))) scale(1.12); box-shadow: 0 8px 24px rgba(0,0,0,0.20); }
.p3-inner {
  --orbit-r: 25%;
  width: 90px;
  height: 90px;
  border: 3px solid #D61F26;
  background: #fde9ea;
  color: #B71C22;
}
.p3-outer {
  --orbit-r: 45%;
  width: 64px;
  height: 64px;
  border: 2px solid #e5e7eb;
  background: #fff;
  color: #475569;
}
.p3-node i { font-size: 18px; }
.p3-inner i { font-size: 22px; }
.p3-node-lbl {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin-top: 2px;
  white-space: nowrap;
  max-width: 80px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.p3-outer .p3-node-lbl { display: none; }
.p3-outer:hover .p3-node-lbl {
  display: block;
  position: absolute;
  bottom: -22px;
  background: #333333;
  color: #fff;
  padding: 3px 8px;
  border-radius: 6px;
  font-size: 10px;
}
.p3-node-pct {
  font-size: 9px;
  color: #D61F26;
  font-weight: 700;
  background: #fff;
  padding: 1px 5px;
  border-radius: 6px;
  position: absolute;
  bottom: -8px;
}
.p3-hint {
  margin-top: 24px;
  font-size: 12.5px;
  color: #475569;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #f1f5f9;
  padding: 8px 16px;
  border-radius: 20px;
}
.p3-hint i { color: #C68A3A; }
.p3-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
  z-index: 998;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  backdrop-filter: blur(3px);
}
.p3-overlay.active { opacity: 1; pointer-events: all; }
.p3-drawer {
  position: fixed;
  top: 0;
  right: -100%;
  width: 100%;
  max-width: 480px;
  height: 100vh;
  background: #fff;
  z-index: 999;
  transition: right 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
  box-shadow: -8px 0 24px rgba(0,0,0,0.15);
}
.p3-drawer.active { right: 0; }
.p3-drawer-head {
  padding: 20px 24px;
  border-bottom: 1px solid #e5e7eb;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
}
.p3-drawer-title {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}
.p3-drawer-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: linear-gradient(135deg, #fde9ea, #f5e8d4);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  color: #B71C22;
  flex-shrink: 0;
}
.p3-drawer-title h3 {
  margin: 0;
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 19px;
  font-weight: 700;
}
.p3-drawer-title p { margin: 2px 0 0; font-size: 12.5px; color: #475569; }
.p3-drawer-close {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #f1f5f9;
  border: 1.5px solid #e5e7eb;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  color: #475569;
  transition: all 0.2s ease;
  flex-shrink: 0;
}
.p3-drawer-close:hover { background: #C68A3A; color: #fff; border-color: #C68A3A; transform: rotate(90deg); }
.p3-drawer-body {
  flex: 1;
  overflow-y: auto;
  padding: 20px 24px;
}
.p3-edit-mode { display: none; }
.p3-drawer.editing .p3-view-mode { display: none; }
.p3-drawer.editing .p3-edit-mode { display: block; }
.p3-field-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 9px 0;
  border-bottom: 1px dashed #f1f5f9;
  gap: 12px;
}
.p3-field-lbl {
  font-size: 12px;
  font-weight: 600;
  color: #475569;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.p3-field-lbl i { font-size: 12px; color: #B71C22; }
.p3-field-val { font-size: 13.5px; font-weight: 600; color: #333333; text-align: right; }
.p3-edit-btn {
  width: 100%;
  margin-top: 18px;
  background: linear-gradient(135deg, #D61F26, #B71C22);
  color: #fff;
  border: none;
  padding: 12px;
  border-radius: 22px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-family: inherit;
}


/* ---------- 56.5 VARIANT D — Magazine Chapters (.p4-*) ---------- */
.p4-wrap {
  font-family: var(--font-display, 'Fraunces', serif), serif;
}
.p4-masthead {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 30px 0 22px;
}
.p4-mast-line {
  flex: 1;
  height: 1px;
  background: #333333;
}
.p4-mast-text {
  font-style: italic;
  font-size: 13px;
  color: #475569;
  letter-spacing: 0.05em;
}
.p4-chapter {
  background: #fff;
  border-radius: 6px;
  padding: 36px 32px;
  margin-bottom: 28px;
  border: 1px solid #e5e7eb;
  position: relative;
  transition: all 0.3s ease;
}
.p4-chapter:hover {
  border-color: #333333;
  box-shadow: 0 4px 18px rgba(0,0,0,0.06);
}
.p4-chap-head {
  margin-bottom: 24px;
  text-align: center;
}
.p4-chap-num {
  font-family: var(--font-display, 'Fraunces', serif), serif;
  font-style: italic;
  font-size: 13px;
  color: #A8742A;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.p4-chap-title {
  font-family: var(--font-display, 'Fraunces', serif), serif;
  font-size: 36px;
  font-weight: 700;
  margin: 0 0 12px;
  line-height: 1.1;
  color: #333333;
  letter-spacing: -0.01em;
}
.p4-chap-rule {
  width: 60px;
  height: 2px;
  background: #C68A3A;
  margin: 12px auto 14px;
}
.p4-chap-lede {
  font-family: var(--font-display, 'Fraunces', serif), serif;
  font-style: italic;
  font-size: 16px;
  color: #475569;
  margin: 0;
  max-width: 480px;
  margin: 0 auto;
  line-height: 1.6;
}
.p4-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px 32px;
  padding: 24px 0;
  border-top: 1px solid #e5e7eb;
  border-bottom: 1px solid #e5e7eb;
  margin: 24px 0;
}
.p4-stat-lbl {
  font-family: 'Poppins', sans-serif;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #94a3b8;
  margin-bottom: 4px;
}
.p4-stat-val {
  font-family: var(--font-display, 'Fraunces', serif), serif;
  font-size: 18px;
  font-weight: 600;
  color: #333333;
  line-height: 1.3;
}
.p4-edit-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 24px;
  background: transparent;
  border: 1.5px solid #333333;
  color: #333333;
  border-radius: 0;
  font-family: 'Poppins', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.2s ease;
}
.p4-edit-btn:hover { background: #333333; color: #fff; }
.p4-edit-mode {
  display: none;
  border-top: 1px solid #e5e7eb;
  padding-top: 24px;
  margin-top: 24px;
}
.p4-chapter.editing .p4-view { display: none; }
.p4-chapter.editing .p4-edit-mode { display: block; }
.p4-footer {
  text-align: center;
  margin: 40px 0 20px;
  font-family: var(--font-display, 'Fraunces', serif), serif;
  font-style: italic;
  color: #475569;
}
.p4-footer-rule {
  width: 100px;
  height: 1px;
  background: #333333;
  margin: 0 auto 14px;
}
.p4-footer p { margin: 0; font-size: 13px; }


/* ---------- 56.6 Mobile responsive (all 4 variants) ---------- */
@media (max-width: 991px) {
  .vp-hero-body { grid-template-columns: 200px 1fr; gap: 18px; padding: 18px; }
  .p3-stage { max-width: 100%; }
}
@media (max-width: 767px) {
  .vp-hero-head { padding: 14px 16px; }
  .vp-hero-h { font-size: 18px; }
  .vp-hero-body { grid-template-columns: 1fr; gap: 16px; padding: 14px; }
  .vp-hero-photo-col { max-width: 280px; margin: 0 auto; }
  .vp-hero-name { font-size: 22px; }
  .vp-hero-grid { grid-template-columns: 1fr; gap: 10px; }
  .vp-form.vp-grid-2 { grid-template-columns: 1fr; }
  .vp-actions { flex-direction: row-reverse; }
  .vp-btn { flex: 1; justify-content: center; padding: 10px 14px; }

  /* p1 */
  .p1-front { padding: 20px; min-height: 480px; }
  .p1-title { font-size: 24px; }
  .p1-icon-big { width: 56px; height: 56px; font-size: 24px; }
  .p1-back { padding: 20px; }

  /* p2 */
  .p2-overall { flex-direction: column; align-items: stretch; }
  .p2-overall-stats { justify-content: space-around; }
  .p2-timeline { padding-left: 30px; }
  .p2-dot { left: -30px; width: 28px; height: 28px; font-size: 11px; }
  .p2-card-head { padding: 14px; }
  .p2-view { grid-template-columns: 1fr; gap: 12px; }
  .p2-card-title { font-size: 15px; }
  .p2-head-right { gap: 8px; }

  /* p3 */
  .p3-galaxy { padding: 20px 12px; }
  .p3-center { width: 80px; height: 80px; }
  .p3-inner { width: 64px; height: 64px; }
  .p3-inner i { font-size: 16px; }
  .p3-inner .p3-node-lbl { font-size: 9px; max-width: 56px; }
  .p3-outer { width: 44px; height: 44px; }
  .p3-outer i { font-size: 14px; }
  .p3-drawer { max-width: 100%; }

  /* p4 */
  .p4-chapter { padding: 24px 18px; }
  .p4-chap-title { font-size: 26px; }
  .p4-chap-lede { font-size: 14px; }
  .p4-stats { grid-template-columns: 1fr; gap: 14px; }
}


/* =========================================================
   56.7 PROFILE2.HTML "MY PROFILE" HERO (Option B)
   --------------------------------------------------------
   Premium hero for profile2.html only. All classes prefixed
   .p2my- so cannot affect anything else. Includes Profile
   Strength bar with red→yellow→green gradient that animates
   from 0% to target value on page load.
   ========================================================= */

/* ---- 56.7.1 Card shell ---- */
.p2my-hero {
  background: #fff;
  border-radius: 18px;
  border: 1px solid #e5e7eb;
  box-shadow: 0 2px 18px rgba(0, 0, 0, 0.05);
  margin-bottom: 24px;
  padding: 22px;
  overflow: hidden;
}
.p2my-grid {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) 1.5fr;
  gap: 26px;
  align-items: start;
}

/* ---- 56.7.2 Left column: photo + thumbs + strength bar ---- */
.p2my-photo-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 4/5;
  border-radius: 14px;
  overflow: hidden;
  background: linear-gradient(135deg, #5DCAA5, #1D9E75);
  cursor: zoom-in;
}
.p2my-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
/* Subtle hover lift on the image to hint it's clickable */
.p2my-photo-wrap:hover .p2my-photo { transform: scale(1.04); }

/* Overlay shown on hover — "Click to zoom" hint */
.p2my-photo-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.55));
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 18px;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
  z-index: 1;
}
.p2my-photo-overlay i {
  margin-right: 6px;
  font-size: 16px;
}
.p2my-photo-wrap:hover .p2my-photo-overlay { opacity: 1; }
.p2my-badge-prem {
  position: absolute;
  top: 12px;
  left: 12px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px;
  background: linear-gradient(135deg, #C68A3A, #A8742A);
  color: #fff;
  border-radius: 16px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  box-shadow: 0 3px 10px rgba(198, 138, 58, 0.4);
  pointer-events: none;     /* hover passes through to image for zoom */
  z-index: 2;
}
.p2my-photo-update {
  position: absolute;
  top: 12px;
  right: 12px;
  background: rgba(255, 255, 255, 0.95);
  border: none;
  padding: 6px 12px;
  border-radius: 14px;
  font-size: 11px;
  font-weight: 600;
  color: #333333;
  text-decoration: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: inherit;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  transition: all 0.2s ease;
  z-index: 3;
}
.p2my-photo-update:hover {
  background: #fff;
  color: #333333;
  text-decoration: none;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}
.p2my-photo-update i { color: #D61F26; }

/* Thumbs slider — left/right arrows + scrollable thumb track */
.p2my-thumbs-wrap {
  position: relative;
  margin-top: 10px;
}
.p2my-thumbs {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  padding: 4px 36px;     /* room for arrow buttons + focus ring */
}
.p2my-thumbs::-webkit-scrollbar { display: none; }
.p2my-thumbs { scrollbar-width: none; }
.p2my-thumb {
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
  border-radius: 8px;
  object-fit: cover;
  cursor: pointer;
  border: 2px solid transparent;
  transition: all 0.2s ease;
  scroll-snap-align: start;
}
.p2my-thumb:hover { transform: translateY(-2px); border-color: #C68A3A; }
.p2my-thumb.active { border-color: #D61F26; }

.p2my-thumb-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid #e5e7eb;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  color: #333333;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);
  transition: all 0.2s ease;
  z-index: 3;
  font-family: inherit;
}
.p2my-thumb-arrow:hover {
  background: #D61F26;
  color: #fff;
  border-color: #D61F26;
  transform: translateY(-50%) scale(1.1);
}
.p2my-thumb-arrow:disabled {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: none;
}
.p2my-thumb-prev { left: 2px; }
.p2my-thumb-next { right: 2px; }

/* ---- 56.7.3 Profile Strength bar (white fill on colored background) ---- */
/* Container background changes by % band: red (0-39), yellow (40-74), green (75-100).
   Fill bar itself is always solid white. JS sets the band class. */
.p2my-strength {
  margin-top: 14px;
  padding: 14px 16px;
  border-radius: 12px;
  color: #fff;
  transition: background 0.6s ease;
  background: linear-gradient(135deg, #475569, #1e293b);  /* default neutral until JS applies band */
}
.p2my-strength.p2my-band-low {
  background: linear-gradient(135deg, #dc2626, #991b1b);
}
.p2my-strength.p2my-band-mid {
  background: linear-gradient(135deg, #f59e0b, #b45309);
}
.p2my-strength.p2my-band-high {
  background: linear-gradient(135deg, #D61F26, #B71C22);
}
.p2my-strength-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}
.p2my-strength-pct {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
  flex-shrink: 0;
  min-width: 56px;
  color: #fff;
}
.p2my-strength-text { min-width: 0; }
.p2my-strength-title {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.p2my-strength-sub {
  font-size: 11px;
  opacity: 0.9;
  margin-top: 2px;
  line-height: 1.4;
}
.p2my-strength-bar {
  width: 100%;
  height: 10px;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 5px;
  overflow: hidden;
  position: relative;
}
/* Fill is solid WHITE — animates from 0 to target % */
.p2my-strength-fill {
  height: 100%;
  width: 0;
  background: #fff;
  border-radius: 5px;
  transition: width 1.4s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 0 8px rgba(255, 255, 255, 0.5);
}
.p2my-strength-fill .p2my-strength-grad { display: none; }


/* ---- 56.7.4 Right column: name, tagline, quickfacts, actions, stats ---- */
.p2my-right { min-width: 0; }
.p2my-name-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}
.p2my-name {
  margin: 0;
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.15;
  color: #333333;
}
.p2my-mid {
  font-size: 13px;
  font-weight: 700;
  color: #A8742A;
  background: #f5e8d4;
  padding: 3px 10px;
  border-radius: 12px;
  letter-spacing: 0.02em;
}
.p2my-tagline {
  font-family: var(--font-display, 'Fraunces', serif);
  font-style: italic;
  font-size: 15px;
  color: #A8742A;
  margin-bottom: 12px;
}

.p2my-quickfacts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin-bottom: 16px;
}
.p2my-qf {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: #475569;
  font-weight: 500;
}
.p2my-qf i { font-size: 13px; color: #D61F26; }

.p2my-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}
.p2my-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 18px;
  border-radius: 22px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  border: 1.5px solid;
  min-height: 40px;
}
.p2my-btn-edit {
  background: linear-gradient(135deg, #D61F26, #B71C22);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 4px 12px rgba(214, 31, 38, 0.28);
}
.p2my-btn-edit:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(214, 31, 38, 0.4);
}
.p2my-btn-preview {
  background: #fff;
  color: #185FA5;
  border-color: #185FA5;
}
.p2my-btn-preview:hover {
  background: #185FA5;
  color: #fff;
}
.p2my-btn-share {
  background: transparent;
  color: #475569;
  border-color: #cbd5e1;
}
.p2my-btn-share:hover {
  background: #f1f5f9;
  color: #333333;
  border-color: #94a3b8;
}

/* ---- 56.7.5 12 colored stat cards grid ---- */
.p2my-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.p2my-stat {
  padding: 12px 8px;
  border-radius: 12px;
  text-align: center;
  transition: all 0.2s ease;
  cursor: default;
  border: 1px solid transparent;
}
.p2my-stat:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.08);
}
.p2my-stat-ic {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #fff;
  margin: 0 auto 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
}
.p2my-stat-lbl {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 2px;
  opacity: 0.8;
}
.p2my-stat-val {
  font-size: 13px;
  font-weight: 700;
  color: #333333;
  word-break: break-word;
}

/* Color variants — pastel bg + dark icon color matching the ramp */
.p2my-stat-green  { background: #EAF3DE; }
.p2my-stat-green  .p2my-stat-ic { color: #3B6D11; }
.p2my-stat-green  .p2my-stat-lbl { color: #3B6D11; }

.p2my-stat-amber  { background: #FAEEDA; }
.p2my-stat-amber  .p2my-stat-ic { color: #854F0B; }
.p2my-stat-amber  .p2my-stat-lbl { color: #854F0B; }

.p2my-stat-teal   { background: #E1F5EE; }
.p2my-stat-teal   .p2my-stat-ic { color: #0F6E56; }
.p2my-stat-teal   .p2my-stat-lbl { color: #0F6E56; }

.p2my-stat-coral  { background: #FAECE7; }
.p2my-stat-coral  .p2my-stat-ic { color: #993C1D; }
.p2my-stat-coral  .p2my-stat-lbl { color: #993C1D; }

.p2my-stat-pink   { background: #FBEAF0; }
.p2my-stat-pink   .p2my-stat-ic { color: #993556; }
.p2my-stat-pink   .p2my-stat-lbl { color: #993556; }

.p2my-stat-purple { background: #EEEDFE; }
.p2my-stat-purple .p2my-stat-ic { color: #3C3489; }
.p2my-stat-purple .p2my-stat-lbl { color: #3C3489; }

.p2my-stat-blue   { background: #E6F1FB; }
.p2my-stat-blue   .p2my-stat-ic { color: #0C447C; }
.p2my-stat-blue   .p2my-stat-lbl { color: #0C447C; }

.p2my-stat-red    { background: #FCEBEB; }
.p2my-stat-red    .p2my-stat-ic { color: #791F1F; }
.p2my-stat-red    .p2my-stat-lbl { color: #791F1F; }


/* ---- 56.7.6 Mobile responsive ---- */
@media (max-width: 991px) {
  .p2my-grid {
    grid-template-columns: 240px 1fr;
    gap: 18px;
  }
  .p2my-name { font-size: 24px; }
  .p2my-stats-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 767px) {
  .p2my-hero { padding: 16px; }
  .p2my-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .p2my-photo-wrap { max-width: 320px; margin: 0 auto; }
  .p2my-thumbs { max-width: 320px; margin: 10px auto 0; }
  .p2my-name { font-size: 22px; }
  .p2my-tagline { font-size: 14px; }
  .p2my-actions { gap: 6px; }
  .p2my-btn { flex: 1; justify-content: center; padding: 9px 10px; font-size: 12px; }
  .p2my-stats-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .p2my-strength-pct { font-size: 24px; min-width: 48px; }
}
@media (max-width: 480px) {
  .p2my-stats-grid { grid-template-columns: repeat(2, 1fr); }
  .p2my-btn { font-size: 11.5px; padding: 8px; }
  .p2my-btn span { display: none; }
}


/* =========================================================
   56.8 PROFILE2.HTML — view-mode dividers + chip multiselect
   --------------------------------------------------------
   - Light divider line between each .p2-field-row in view mode
   - Multi-select chip group styling (used in Lifestyle section)
   ========================================================= */

/* Light divider line between view-mode rows in profile2 sections */
.p2-view .p2-field-row + .p2-field-row {
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  padding-top: 10px;
  margin-top: 4px;
}

/* Multi-select chip group (used by Lifestyle fields) */
.vp-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 4px 0;
}
.vp-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 14px;
  border: 1.5px solid #e5e7eb;
  border-radius: 18px;
  background: #fff;
  color: #475569;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.18s ease;
  user-select: none;
  position: relative;
}
.vp-chip:hover {
  border-color: #D61F26;
  background: #fde9ea;
  color: #B71C22;
  transform: translateY(-1px);
}
.vp-chip.selected {
  background: linear-gradient(135deg, #D61F26, #B71C22);
  color: #fff;
  border-color: transparent;
  font-weight: 600;
  padding-left: 28px;
  box-shadow: 0 3px 10px rgba(214, 31, 38, 0.28);
}
.vp-chip.selected::before {
  content: '';
  position: absolute;
  left: 10px;
  top: 50%;
  width: 12px;
  height: 12px;
  margin-top: -6px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16' fill='white'><path d='M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z'/></svg>");
  background-repeat: no-repeat;
}


/* =========================================================
   56.9 PROFILE2 LIGHTBOX — fullscreen image viewer
   --------------------------------------------------------
   Opens when user clicks the main photo. Shows all 8 photos
   with prev/next navigation and a counter.
   ========================================================= */
.p2my-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(10, 10, 12, 0.94);
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  animation: p2myLbFade 0.25s ease;
}
.p2my-lightbox.open { display: flex; }
@keyframes p2myLbFade {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.p2my-lightbox-img {
  max-width: 90vw;
  max-height: 88vh;
  object-fit: contain;
  border-radius: 10px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
  user-select: none;
  -webkit-user-drag: none;
}

.p2my-lightbox-close,
.p2my-lightbox-nav {
  position: absolute;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  border: 1.5px solid rgba(255, 255, 255, 0.25);
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  transition: all 0.2s ease;
  font-family: inherit;
  backdrop-filter: blur(4px);
}
.p2my-lightbox-close { top: 24px; right: 24px; }
.p2my-lightbox-nav.prev { left: 24px; top: 50%; transform: translateY(-50%); }
.p2my-lightbox-nav.next { right: 24px; top: 50%; transform: translateY(-50%); }

.p2my-lightbox-close:hover,
.p2my-lightbox-nav:hover {
  background: #fff;
  color: #333333;
  transform: scale(1.08);
}
.p2my-lightbox-nav.prev:hover { transform: translateY(-50%) scale(1.08); }
.p2my-lightbox-nav.next:hover { transform: translateY(-50%) scale(1.08); }

.p2my-lightbox-counter {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  padding: 7px 16px;
  border-radius: 14px;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  backdrop-filter: blur(4px);
}

@media (max-width: 575px) {
  .p2my-lightbox-close,
  .p2my-lightbox-nav { width: 38px; height: 38px; font-size: 14px; }
  .p2my-lightbox-close { top: 14px; right: 14px; }
  .p2my-lightbox-nav.prev { left: 10px; }
  .p2my-lightbox-nav.next { right: 10px; }
}


/* =========================================================
   57. PARTNER PROFILE VIEW — profile-view.html
   --------------------------------------------------------
   View-only partner profile page. Same hero shape as
   profile2.html but with: photo privacy states, action buttons
   (Send Interest/Shortlist/Ignore), Profile Match % bar,
   per-field match icons, horoscope section, similar profiles.
   All classes prefixed .pv- so cannot collide.
   ========================================================= */

body.pv-page-body { background: #f5f7fa; }

.pv-page { padding: 18px 0 60px; }

/* ---- 57.1 Demo toggle bar (lets you preview all 3 photo states) ---- */
.pv-demo-bar {
  position: absolute;
  top: 14px;
  right: 14px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(15, 23, 42, 0.85);
  color: #fff;
  padding: 6px 10px;
  border-radius: 14px;
  font-size: 11px;
  z-index: 5;
  backdrop-filter: blur(6px);
}
.pv-demo-lbl {
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.8;
}
.pv-demo-group {
  display: inline-flex;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  padding: 2px;
}
.pv-demo-btn {
  background: transparent;
  color: #fff;
  border: none;
  padding: 4px 10px;
  border-radius: 8px;
  font-size: 11px;
  font-family: inherit;
  cursor: pointer;
  transition: all 0.18s ease;
}
.pv-demo-btn.active {
  background: #D61F26;
  font-weight: 600;
}

/* ---- 57.2 Hero card shell ---- */
.pv-hero {
  position: relative;
  background: #fff;
  border-radius: 18px;
  border: 1px solid #e5e7eb;
  box-shadow: 0 2px 18px rgba(0, 0, 0, 0.05);
  margin-bottom: 24px;
  padding: 22px;
}
.pv-grid {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) 1.5fr;
  gap: 26px;
  align-items: start;
}

/* ---- 57.3 Photo wrapper + 3 states ---- */
.pv-photo-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 4/5;
  border-radius: 14px;
  overflow: hidden;
  background: #f1f5f9;
  cursor: zoom-in;
}
.pv-photo-state { display: none; }
.pv-photo-wrap[data-photo-state="visible"] .pv-photo-visible { display: block; }
.pv-photo-wrap[data-photo-state="blurred"] .pv-photo-blurred { display: block; cursor: default; }
.pv-photo-wrap[data-photo-state="none"]    .pv-photo-none    { display: block; cursor: default; }
.pv-photo-wrap[data-photo-state="blurred"] { cursor: default; }
.pv-photo-wrap[data-photo-state="none"]    { cursor: default; }

/* State A: visible */
.pv-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.pv-photo-wrap[data-photo-state="visible"]:hover .pv-photo { transform: scale(1.04); }
.pv-photo-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.55));
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 18px;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
  z-index: 1;
}
.pv-photo-overlay i { margin-right: 6px; font-size: 16px; }
.pv-photo-wrap[data-photo-state="visible"]:hover .pv-photo-overlay { opacity: 1; }

.pv-badge-online {
  position: absolute;
  top: 12px;
  left: 12px;
  background: rgba(255, 255, 255, 0.95);
  color: #B71C22;
  padding: 4px 10px;
  border-radius: 14px;
  font-size: 11px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  pointer-events: none;
  z-index: 2;
}
.pv-online-dot {
  width: 8px;
  height: 8px;
  background: #D61F26;
  border-radius: 50%;
  animation: pvPulse 1.5s ease infinite;
}
@keyframes pvPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(0.85); }
}

/* State B: blurred (locked photos) */
.pv-blur-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: blur(28px) brightness(0.7);
  transform: scale(1.1);
}
.pv-photo-locked {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-align: center;
  padding: 24px 18px;
  background: rgba(15, 23, 42, 0.55);
  backdrop-filter: blur(2px);
  z-index: 2;
}
.pv-photo-locked > i,
.pv-no-photo > i {
  font-size: 38px;
  margin-bottom: 12px;
  opacity: 0.95;
}
.pv-locked-title {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 6px;
}
.pv-locked-sub {
  font-size: 12.5px;
  opacity: 0.85;
  margin-bottom: 18px;
  max-width: 220px;
  line-height: 1.45;
}
.pv-locked-btn {
  background: linear-gradient(135deg, #C68A3A, #A8742A);
  color: #fff;
  border: none;
  padding: 10px 18px;
  border-radius: 22px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: inherit;
  box-shadow: 0 4px 14px rgba(198, 138, 58, 0.4);
  transition: all 0.2s ease;
}
.pv-locked-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(198, 138, 58, 0.5);
}

/* State C: no photos */
.pv-no-photo {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-align: center;
  padding: 24px 18px;
  background: linear-gradient(135deg, #475569, #1e293b);
  z-index: 2;
}

/* Hide thumbs when blurred / no photos */
.pv-photo-wrap[data-photo-state="blurred"] ~ .pv-thumbs-wrap,
.pv-photo-wrap[data-photo-state="none"]    ~ .pv-thumbs-wrap { display: none; }

/* ---- 57.4 Thumbs (same as profile2) ---- */
.pv-thumbs-wrap {
  position: relative;
  margin-top: 10px;
}
.pv-thumbs {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  padding: 4px 36px;
}
.pv-thumbs::-webkit-scrollbar { display: none; }
.pv-thumbs { scrollbar-width: none; }
.pv-thumb {
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
  border-radius: 8px;
  object-fit: cover;
  cursor: pointer;
  border: 2px solid transparent;
  transition: all 0.2s ease;
  scroll-snap-align: start;
}
.pv-thumb:hover { transform: translateY(-2px); border-color: #C68A3A; }
.pv-thumb.active { border-color: #D61F26; }
.pv-thumb-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid #e5e7eb;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #333333;
  box-shadow: 0 4px 10px rgba(0,0,0,0.12);
  transition: all 0.2s ease;
  z-index: 3;
  font-family: inherit;
}
.pv-thumb-arrow:hover {
  background: #D61F26;
  color: #fff;
  border-color: #D61F26;
  transform: translateY(-50%) scale(1.1);
}
.pv-thumb-arrow:disabled {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: none;
}
.pv-thumb-prev { left: 2px; }
.pv-thumb-next { right: 2px; }

/* ---- 57.5 Profile Match bar (red/yellow/green band) ---- */
.pv-match {
  margin-top: 14px;
  padding: 14px 16px;
  border-radius: 12px;
  color: #fff;
  background: linear-gradient(135deg, #475569, #1e293b);
  transition: background 0.6s ease;
}
.pv-match[data-match-band="low"]  { background: linear-gradient(135deg, #dc2626, #991b1b); }
.pv-match[data-match-band="mid"]  { background: linear-gradient(135deg, #f59e0b, #b45309); }
.pv-match[data-match-band="high"] { background: linear-gradient(135deg, #D61F26, #B71C22); }
.pv-match-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}
.pv-match-pct {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
  flex-shrink: 0;
  min-width: 56px;
}
.pv-match-title { font-size: 13px; font-weight: 700; }
.pv-match-sub { font-size: 11px; opacity: 0.9; margin-top: 2px; }
.pv-match-bar {
  width: 100%;
  height: 10px;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 5px;
  overflow: hidden;
}
.pv-match-fill {
  height: 100%;
  width: 0;
  background: #fff;
  border-radius: 5px;
  transition: width 1.4s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 0 8px rgba(255, 255, 255, 0.5);
}

/* ---- 57.6 Right column: name, tagline, quickfacts, action buttons ---- */
.pv-right { min-width: 0; }
.pv-name-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}
.pv-name {
  margin: 0;
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 28px;
  font-weight: 700;
  color: #333333;
}
.pv-mid {
  font-size: 13px;
  font-weight: 700;
  color: #A8742A;
  background: #f5e8d4;
  padding: 3px 10px;
  border-radius: 12px;
}
.pv-verified {
  display: inline-flex;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #185FA5;
  color: #fff;
  align-items: center;
  justify-content: center;
  font-size: 11px;
}
.pv-tagline {
  font-family: var(--font-display, 'Fraunces', serif);
  font-style: italic;
  font-size: 15px;
  color: #A8742A;
  margin-bottom: 12px;
}
.pv-quickfacts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin-bottom: 16px;
}
.pv-qf {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: #475569;
  font-weight: 500;
}
.pv-qf i { font-size: 13px; color: #D61F26; }

.pv-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}
.pv-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 18px;
  border-radius: 22px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  border: 1.5px solid;
  min-height: 40px;
}
.pv-btn-interest {
  background: linear-gradient(135deg, #D61F26, #B71C22);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 4px 12px rgba(214, 31, 38, 0.28);
}
.pv-btn-interest:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(214, 31, 38, 0.4); }
.pv-btn-interest.sent,
.pv-btn-interest:disabled {
  background: #f0fdf4;
  color: #16a34a;
  border-color: #bbf7d0;
  box-shadow: none;
  cursor: default;
  opacity: 1;
}
.pv-btn-shortlist {
  background: #fff;
  color: #C68A3A;
  border-color: #C68A3A;
}
.pv-btn-shortlist:hover,
.pv-btn-shortlist.active { background: #C68A3A; color: #fff; }
.pv-btn-message {
  background: #fff;
  color: #185FA5;
  border-color: #185FA5;
}
.pv-btn-message:hover { background: #185FA5; color: #fff; }
.pv-btn-ignore {
  background: transparent;
  color: #dc2626;
  border-color: #fca5a5;
}
.pv-btn-ignore:hover,
.pv-btn-ignore.ignored { background: #fee2e2; color: #991b1b; border-color: #dc2626; }
.pv-btn-block {
  background: transparent;
  color: #4b5563;
  border-color: #d1d5db;
}
.pv-btn-block:hover,
.pv-btn-block:not(.unblocked) { background: #1f2937; color: #fff; border-color: #1f2937; }

/* ---- 57.7 12 stat cards (same colors as p2my) ---- */
.pv-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.pv-stat {
  padding: 12px 8px;
  border-radius: 12px;
  text-align: center;
  transition: all 0.2s ease;
  cursor: default;
}
.pv-stat:hover { transform: translateY(-2px); box-shadow: 0 6px 14px rgba(0,0,0,0.08); }
.pv-stat-ic {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #fff;
  margin: 0 auto 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.06);
}
.pv-stat-lbl {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 2px;
  opacity: 0.8;
}
.pv-stat-val { font-size: 13px; font-weight: 700; color: #333333; word-break: break-word; }
.pv-stat-green  { background: #EAF3DE; }
.pv-stat-green  .pv-stat-ic { color: #3B6D11; }
.pv-stat-green  .pv-stat-lbl { color: #3B6D11; }
.pv-stat-amber  { background: #FAEEDA; }
.pv-stat-amber  .pv-stat-ic { color: #854F0B; }
.pv-stat-amber  .pv-stat-lbl { color: #854F0B; }
.pv-stat-teal   { background: #E1F5EE; }
.pv-stat-teal   .pv-stat-ic { color: #0F6E56; }
.pv-stat-teal   .pv-stat-lbl { color: #0F6E56; }
.pv-stat-coral  { background: #FAECE7; }
.pv-stat-coral  .pv-stat-ic { color: #993C1D; }
.pv-stat-coral  .pv-stat-lbl { color: #993C1D; }
.pv-stat-pink   { background: #FBEAF0; }
.pv-stat-pink   .pv-stat-ic { color: #993556; }
.pv-stat-pink   .pv-stat-lbl { color: #993556; }
.pv-stat-purple { background: #EEEDFE; }
.pv-stat-purple .pv-stat-ic { color: #3C3489; }
.pv-stat-purple .pv-stat-lbl { color: #3C3489; }
.pv-stat-blue   { background: #E6F1FB; }
.pv-stat-blue   .pv-stat-ic { color: #0C447C; }
.pv-stat-blue   .pv-stat-lbl { color: #0C447C; }
.pv-stat-red    { background: #FCEBEB; }
.pv-stat-red    .pv-stat-ic { color: #791F1F; }
.pv-stat-red    .pv-stat-lbl { color: #791F1F; }

/* ---- 57.8 Profile Details divider (green band REMOVED) ---- */
.pv-divider {
  text-align: center;
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 26px;
  font-weight: 700;
  margin: 30px 0 18px;
  color: #333333;
}
.pv-divider .pv-divider-accent { color: #C68A3A; }


/* ---- 57.9 Section cards — gradient heading + new field row layout ---- */
.pv-section {
  background: #fff;
  border-radius: 14px;
  border: 0.5px solid #e5e7eb;
  margin-bottom: 16px;
  overflow: hidden;
  transition: box-shadow 0.2s ease;
}
.pv-section:hover { box-shadow: 0 6px 22px rgba(0,0,0,0.05); }

.pv-sec-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px;
  border-bottom: 0.5px solid rgba(0,0,0,0.06);
}

/* Section gradient themes — soft pastels, distinct per section */
.pv-theme-purple .pv-sec-head { background: linear-gradient(135deg, #EEEDFE, #CECBF6); }
.pv-theme-purple .pv-sec-title { color: #26215C; }
.pv-theme-purple .pv-sec-icon  { background: rgba(255,255,255,0.7); color: #3C3489; }

.pv-theme-teal .pv-sec-head { background: linear-gradient(135deg, #E1F5EE, #9FE1CB); }
.pv-theme-teal .pv-sec-title { color: #04342C; }
.pv-theme-teal .pv-sec-icon  { background: rgba(255,255,255,0.7); color: #0F6E56; }

.pv-theme-pink .pv-sec-head { background: linear-gradient(135deg, #FBEAF0, #F4C0D1); }
.pv-theme-pink .pv-sec-title { color: #4B1528; }
.pv-theme-pink .pv-sec-icon  { background: rgba(255,255,255,0.7); color: #993556; }

.pv-theme-blue .pv-sec-head { background: linear-gradient(135deg, #E6F1FB, #B5D4F4); }
.pv-theme-blue .pv-sec-title { color: #042C53; }
.pv-theme-blue .pv-sec-icon  { background: rgba(255,255,255,0.7); color: #0C447C; }

.pv-theme-amber .pv-sec-head { background: linear-gradient(135deg, #FAEEDA, #FAC775); }
.pv-theme-amber .pv-sec-title { color: #412402; }
.pv-theme-amber .pv-sec-icon  { background: rgba(255,255,255,0.7); color: #854F0B; }

.pv-theme-green .pv-sec-head { background: linear-gradient(135deg, #EAF3DE, #C0DD97); }
.pv-theme-green .pv-sec-title { color: #173404; }
.pv-theme-green .pv-sec-icon  { background: rgba(255,255,255,0.7); color: #3B6D11; }

.pv-theme-coral .pv-sec-head { background: linear-gradient(135deg, #FAECE7, #F5C4B3); }
.pv-theme-coral .pv-sec-title { color: #4A1B0C; }
.pv-theme-coral .pv-sec-icon  { background: rgba(255,255,255,0.7); color: #993C1D; }

.pv-theme-grey .pv-sec-head { background: linear-gradient(135deg, #F1EFE8, #D3D1C7); }
.pv-theme-grey .pv-sec-title { color: #2C2C2A; }
.pv-theme-grey .pv-sec-icon  { background: rgba(255,255,255,0.7); color: #444441; }

.pv-sec-title-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.pv-sec-icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
}
.pv-sec-title {
  margin: 0;
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 17px;
  font-weight: 700;
}
.pv-sec-pct {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  padding: 4px 12px;
  border-radius: 14px;
  background: rgba(255,255,255,0.85);
  font-weight: 700;
  font-size: 13px;
  flex-shrink: 0;
}
.pv-sec-pct-num { font-family: var(--font-display, 'Fraunces', serif); font-size: 14px; }
.pv-sec-pct-lbl { font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; opacity: 0.8; }

/* % match band colors (used inside white pill) */
.pv-band-high { color: #B71C22; }
.pv-band-mid  { color: #A8742A; }
.pv-band-low  { color: #991b1b; }
/* Theme-tinted pct text — overrides band when theme is set */
.pv-theme-purple .pv-sec-pct { color: #3C3489; }
.pv-theme-teal   .pv-sec-pct { color: #0F6E56; }
.pv-theme-pink   .pv-sec-pct { color: #993556; }
.pv-theme-blue   .pv-sec-pct { color: #0C447C; }
.pv-theme-amber  .pv-sec-pct { color: #854F0B; }
.pv-theme-green  .pv-sec-pct { color: #3B6D11; }
.pv-theme-coral  .pv-sec-pct { color: #993C1D; }
.pv-theme-grey   .pv-sec-pct { color: #444441; }

.pv-sec-body {
  padding: 14px 18px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 24px;
}

/* NEW row layout: 44px icon | label+value | match-icon */
.pv-row {
  display: grid;
  grid-template-columns: 44px 1fr auto;
  column-gap: 12px;
  align-items: center;
  padding: 10px 0;
  border-bottom: 0.5px solid rgba(0,0,0,0.06);
}
.pv-sec-body .pv-row:last-child,
.pv-sec-body .pv-row:nth-last-child(2):nth-child(odd) { border-bottom: none; }

/* Big colored icon — spans both rows on the left */
.pv-row-ic {
  grid-row: 1 / 3;
  width: 44px;
  height: 44px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
}
.pv-ic-green  { background: #EAF3DE; color: #3B6D11; }
.pv-ic-amber  { background: #FAEEDA; color: #854F0B; }
.pv-ic-teal   { background: #E1F5EE; color: #0F6E56; }
.pv-ic-coral  { background: #FAECE7; color: #993C1D; }
.pv-ic-pink   { background: #FBEAF0; color: #993556; }
.pv-ic-purple { background: #EEEDFE; color: #3C3489; }
.pv-ic-blue   { background: #E6F1FB; color: #0C447C; }
.pv-ic-grey   { background: #F1EFE8; color: #444441; }

/* Label on top — uppercase small grey */
.pv-row-lbl {
  grid-column: 2;
  grid-row: 1;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #94a3b8;
  line-height: 1.2;
  align-self: end;
}
/* Value below — bigger ink */
.pv-row-val {
  grid-column: 2;
  grid-row: 2;
  font-size: 14px;
  font-weight: 500;
  color: #333333;
  line-height: 1.3;
  margin-top: 2px;
  align-self: start;
  word-break: break-word;
}
/* Match icon on right — spans both rows */
.pv-row-match {
  grid-column: 3;
  grid-row: 1 / 3;
  align-self: center;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  border-radius: 50%;
}
.pv-match-green { color: #D61F26; background: #EAF3DE; }
.pv-match-red   { color: #dc2626; background: #FCEBEB; }
.pv-match-grey  { color: #94a3b8; background: #F1EFE8; }

/* About Me — bio block (no match icon, no field layout) */
.pv-bio {
  font-family: var(--font-display, 'Fraunces', serif);
  font-style: italic;
  font-size: 15px;
  line-height: 1.7;
  color: #475569;
  padding: 8px 0;
  grid-column: 1 / -1;
}
.pv-row-no-icon { grid-template-columns: 44px 1fr; }
.pv-row-no-icon .pv-row-lbl,
.pv-row-no-icon .pv-row-val { grid-column: 2; }


/* ---- 57.10 HOROSCOPE — Sacred Geometry Yantra design ---- */
.pv-horoscope {
  position: relative;
  background: radial-gradient(ellipse at top, #2d1b69 0%, #1e1b4b 45%, #0f0a26 100%);
  color: #fff;
  border-radius: 24px;
  padding: 38px 28px;
  margin: 30px 0 20px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(46, 27, 105, 0.4);
}

/* Floating particles */
.pv-horo-particles {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 1;
}
.pv-particle {
  position: absolute;
  background: #fbbf24;
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(251, 191, 36, 0.8), 0 0 16px rgba(251, 191, 36, 0.4);
  animation: pvParticleDrift 5s ease-in-out infinite;
}
@keyframes pvParticleDrift {
  0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.6; }
  50%      { transform: translate(20px, -15px) scale(1.4); opacity: 1; }
}

/* Header */
.pv-horo-head {
  text-align: center;
  margin-bottom: 28px;
  position: relative;
  z-index: 3;
}
.pv-horo-title-wrap {
  display: inline-flex;
  align-items: center;
  gap: 14px;
}
.pv-horo-icon {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: linear-gradient(135deg, #fbbf24, #f59e0b);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  color: #fff;
  box-shadow: 0 4px 18px rgba(251, 191, 36, 0.5);
  animation: pvHoroIconPulse 3s ease infinite;
}
@keyframes pvHoroIconPulse {
  0%, 100% { box-shadow: 0 4px 18px rgba(251, 191, 36, 0.5); transform: scale(1); }
  50%      { box-shadow: 0 4px 28px rgba(251, 191, 36, 0.8); transform: scale(1.06); }
}
.pv-horo-title-text { text-align: left; }
.pv-horo-title {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 26px;
  font-weight: 700;
  margin: 0;
}
.pv-horo-desc {
  font-size: 12.5px;
  margin: 2px 0 0;
  opacity: 0.85;
  font-style: italic;
  font-family: var(--font-display, 'Fraunces', serif);
}

/* Yantra stage */
.pv-yantra-stage {
  position: relative;
  width: 100%;
  height: 480px;
  z-index: 2;
  margin: 0 auto 30px;
}

/* Outer dashed orbit */
.pv-yantra-orbit {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 380px;
  height: 380px;
  border-radius: 50%;
  border: 1px dashed rgba(251,191,36,0.35);
  transform: translate(-50%, -50%);
  z-index: 2;
  animation: pvOrbitGlow 4s ease infinite;
}
@keyframes pvOrbitGlow {
  0%, 100% { box-shadow: 0 0 24px rgba(251,191,36,0.05); }
  50%      { box-shadow: 0 0 40px rgba(251,191,36,0.18); }
}

/* Bride/Groom orbiting orbs */
.pv-yantra-orb {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 110px;
  height: 110px;
  margin: -55px 0 0 -55px;
  z-index: 4;
  transform-origin: center;
}
.pv-yantra-bride {
  animation: pvOrbitBride 30s linear infinite;
}
.pv-yantra-groom {
  animation: pvOrbitGroom 30s linear infinite;
}
@keyframes pvOrbitBride {
  from { transform: rotate(0deg)   translateX(190px) rotate(0deg); }
  to   { transform: rotate(360deg) translateX(190px) rotate(-360deg); }
}
@keyframes pvOrbitGroom {
  from { transform: rotate(180deg) translateX(190px) rotate(-180deg); }
  to   { transform: rotate(540deg) translateX(190px) rotate(-540deg); }
}

.pv-yantra-orb-inner {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, rgba(255,255,255,0.2), rgba(15,11,40,0.95));
  border: 2px solid rgba(251,191,36,0.5);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 24px rgba(251,191,36,0.5);
  padding: 6px 4px;
  gap: 2px;
}
.pv-yantra-groom .pv-yantra-orb-inner { border-color: rgba(167,139,250,0.5); box-shadow: 0 0 24px rgba(167,139,250,0.5); }
.pv-yantra-orb-name {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.02em;
  line-height: 1;
}
.pv-yantra-bride .pv-yantra-orb-name { color: #fbbf24; text-shadow: 0 0 10px rgba(251,191,36,0.6); }
.pv-yantra-groom .pv-yantra-orb-name { color: #c4b5fd; text-shadow: 0 0 10px rgba(167,139,250,0.6); }
.pv-yantra-orb-label {
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: rgba(255,255,255,0.7);
  text-transform: uppercase;
  line-height: 1;
}

/* Central rotating mandala */
.pv-yantra-mandala {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 5;
}
.pv-mandala-rotate     { transform-origin: 100px 100px; animation: pvRotate    60s linear infinite; }
.pv-mandala-rotate-rev { transform-origin: 100px 100px; animation: pvRotateRev 90s linear infinite; }
@keyframes pvRotate    { from { transform: rotate(0deg);   } to { transform: rotate(360deg);  } }
@keyframes pvRotateRev { from { transform: rotate(0deg);   } to { transform: rotate(-360deg); } }

.pv-yantra-score {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  gap: 2px;
}
.pv-yantra-score-tag {
  position: absolute;
  top: 25%;
  left: 0; right: 0;
  text-align: center;
  font-size: 10px;
  letter-spacing: 0.2em;
  font-weight: 700;
  color: rgba(255,255,255,0.75);
  margin: 0;
}
.pv-yantra-score-num {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 64px;
  font-weight: 700;
  line-height: 1;
  color: #fbbf24;
  text-shadow: 0 0 24px rgba(251,191,36,0.7);
}
.pv-yantra-score-max {
  position: absolute;
  top: 60%;
  left: 0; right: 0;
  text-align: center;
  font-size: 16px;
  margin: 0;
  opacity: 0.8;
  font-family: var(--font-display, 'Fraunces', serif);
}
.pv-yantra-score-lbl {
  position: absolute;
  bottom: 24%;
  left: 0; right: 0;
  text-align: center;
  font-size: 11px;
  letter-spacing: 0.2em;
  margin-top: 0;
  opacity: 0.9;
  font-weight: 700;
  color: #fbbf24;
}

/* 8 Ashtakoot spokes radiating outward */
.pv-yantra-spokes {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
}
.pv-yantra-spoke {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 130px;
  height: 0;
  transform-origin: left center;
  transform: rotate(var(--angle)) translateX(140px);
  pointer-events: none;
}
.pv-yantra-spoke-bar {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 4px;
  margin-top: -2px;
  background: rgba(255,255,255,0.1);
  border-radius: 2px;
  overflow: hidden;
  pointer-events: auto;
}
.pv-yantra-spoke-fill {
  height: 100%;
  width: 0;
  border-radius: 2px;
  transition: width 1.4s cubic-bezier(0.4,0,0.2,1) var(--delay);
  box-shadow: 0 0 10px currentColor;
}
.pv-yantra-spoke.pv-band-high .pv-yantra-spoke-fill { background: #D61F26; color: #D61F26; }
.pv-yantra-spoke.pv-band-mid  .pv-yantra-spoke-fill { background: #fbbf24; color: #fbbf24; }
.pv-yantra-spoke.pv-band-low  .pv-yantra-spoke-fill { background: #ef4444; color: #ef4444; }

.pv-yantra-spoke-info {
  position: absolute;
  left: calc(100% + 10px);
  top: 50%;
  transform: translateY(-50%);
  white-space: nowrap;
  pointer-events: auto;
  text-align: left;
  background: rgba(15,11,40,0.7);
  padding: 6px 10px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.1);
  backdrop-filter: blur(4px);
}
/* Spokes on the left half — flip text to be readable + on the other side */
.pv-yantra-spoke[style*="--angle: 135deg"] .pv-yantra-spoke-info,
.pv-yantra-spoke[style*="--angle: 180deg"] .pv-yantra-spoke-info,
.pv-yantra-spoke[style*="--angle: 225deg"] .pv-yantra-spoke-info {
  transform: translateY(-50%) rotate(180deg);
  left: auto;
  right: calc(100% + 10px);
  text-align: right;
}
.pv-yantra-spoke-name {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #fff;
}
.pv-yantra-spoke-score {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 11.5px;
  font-weight: 700;
  margin-top: 1px;
}
.pv-yantra-spoke.pv-band-high .pv-yantra-spoke-score { color: #5DCAA5; }
.pv-yantra-spoke.pv-band-mid  .pv-yantra-spoke-score { color: #fbbf24; }
.pv-yantra-spoke.pv-band-low  .pv-yantra-spoke-score { color: #f87171; }
.pv-yantra-spoke-desc {
  font-size: 9.5px;
  letter-spacing: 0.02em;
  opacity: 0.65;
  margin-top: 1px;
}

/* Bride / Groom info cards */
.pv-horo-cards {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 18px;
  align-items: center;
  margin-top: 6px;
  margin-bottom: 22px;
  position: relative;
  z-index: 3;
}
.pv-horo-card {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 16px;
  padding: 18px 20px;
  text-align: center;
  backdrop-filter: blur(8px);
}
.pv-horo-card-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  opacity: 0.7;
  margin-bottom: 8px;
}
.pv-horo-card-name {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin-bottom: 4px;
}
.pv-horo-card-bride .pv-horo-card-name { color: #fbbf24; text-shadow: 0 0 18px rgba(251,191,36,0.4); }
.pv-horo-card-groom .pv-horo-card-name { color: #c4b5fd; text-shadow: 0 0 18px rgba(167,139,250,0.4); }
.pv-horo-card-pada {
  font-family: var(--font-display, 'Fraunces', serif);
  font-style: italic;
  font-size: 14px;
  opacity: 0.85;
  margin-bottom: 12px;
}
.pv-horo-card-meta {
  display: flex;
  justify-content: center;
  gap: 14px;
  font-size: 11px;
  opacity: 0.7;
  flex-wrap: wrap;
}
.pv-horo-card-meta span { display: inline-flex; align-items: center; gap: 4px; }
.pv-horo-card-meta i { font-size: 12px; }

.pv-horo-card-divider {
  text-align: center;
}
.pv-horo-card-verdict {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 32px;
  font-weight: 700;
  padding: 10px 24px;
  border-radius: 50%;
  border: 2px solid;
  width: 80px;
  height: 80px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.pv-horo-card-verdict.pv-band-high { color: #5DCAA5; border-color: #5DCAA5; box-shadow: 0 0 20px rgba(93,202,165,0.4); }
.pv-horo-card-verdict.pv-band-mid  { color: #fbbf24; border-color: #fbbf24; box-shadow: 0 0 20px rgba(251,191,36,0.4); }
.pv-horo-card-verdict.pv-band-low  { color: #f87171; border-color: #f87171; box-shadow: 0 0 20px rgba(248,113,113,0.4); }
.pv-horo-card-verdict-lbl {
  font-size: 10px;
  letter-spacing: 0.18em;
  opacity: 0.75;
  margin-top: 8px;
  font-weight: 700;
}

/* Note */
.pv-horo-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: rgba(251, 191, 36, 0.1);
  border: 1px solid rgba(251, 191, 36, 0.4);
  border-radius: 12px;
  padding: 14px 18px;
  font-size: 12.5px;
  line-height: 1.6;
  position: relative;
  z-index: 3;
  box-shadow: 0 0 24px rgba(251,191,36,0.08);
}
.pv-horo-note i {
  color: #fbbf24;
  font-size: 18px;
  flex-shrink: 0;
  margin-top: 1px;
}
.pv-horo-note strong { color: #fbbf24; }

/* ---- 57.11 Similar profiles ---- */
.pv-similar {
  margin: 30px 0 0;
}
.pv-similar-head { text-align: center; margin-bottom: 22px; }
.pv-similar-title {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 24px;
  font-weight: 700;
  margin: 0 0 4px;
  color: #333333;
}
.pv-similar-desc { font-size: 13px; color: #475569; margin: 0; }
.pv-similar-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.pv-sim-card {
  background: #fff;
  border-radius: 14px;
  border: 1px solid #e5e7eb;
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  transition: all 0.25s ease;
  display: block;
}
.pv-sim-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(0,0,0,0.10);
  border-color: #D61F26;
}
.pv-sim-photo {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
}
.pv-sim-photo img { width: 100%; height: 100%; object-fit: cover; }
.pv-sim-match {
  position: absolute;
  top: 8px;
  right: 8px;
  padding: 3px 8px;
  border-radius: 10px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.pv-sim-body { padding: 12px 14px; }
.pv-sim-name {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 6px;
}
.pv-sim-detail {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #475569;
  padding: 3px 0;
}
.pv-sim-detail i { color: #D61F26; font-size: 12px; width: 14px; }

/* ---- 57.12 Lightbox (same as profile2) ---- */
.pv-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(10, 10, 12, 0.94);
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(6px);
}
.pv-lightbox.open { display: flex; }
.pv-lightbox-img { max-width: 90vw; max-height: 88vh; object-fit: contain; border-radius: 10px; }
.pv-lightbox-close, .pv-lightbox-nav {
  position: absolute;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255,255,255,0.12);
  border: 1.5px solid rgba(255,255,255,0.25);
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  transition: all 0.2s ease;
  font-family: inherit;
}
.pv-lightbox-close { top: 24px; right: 24px; }
.pv-lightbox-nav.prev { left: 24px; top: 50%; transform: translateY(-50%); }
.pv-lightbox-nav.next { right: 24px; top: 50%; transform: translateY(-50%); }
.pv-lightbox-close:hover, .pv-lightbox-nav:hover { background: #fff; color: #333333; transform: scale(1.08); }
.pv-lightbox-nav.prev:hover { transform: translateY(-50%) scale(1.08); }
.pv-lightbox-nav.next:hover { transform: translateY(-50%) scale(1.08); }
.pv-lightbox-counter {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(255,255,255,0.14);
  color: #fff;
  padding: 7px 16px;
  border-radius: 14px;
  font-size: 12.5px;
  font-weight: 600;
}

/* ---- 57.13 Mobile responsive ---- */
@media (max-width: 991px) {
  .pv-grid { grid-template-columns: 240px 1fr; gap: 18px; }
  .pv-name { font-size: 24px; }
  .pv-stats-grid { grid-template-columns: repeat(3, 1fr); }
  .pv-sec-body { grid-template-columns: 1fr; }
  .pv-similar-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .pv-hero { padding: 16px; }
  .pv-grid { grid-template-columns: 1fr; gap: 16px; }
  .pv-demo-bar { position: static; margin-bottom: 12px; }
  .pv-photo-wrap { max-width: 320px; margin: 0 auto; }
  .pv-thumbs-wrap { max-width: 320px; margin: 10px auto 0; }
  .pv-name { font-size: 22px; }
  .pv-actions { gap: 6px; }
  .pv-btn { flex: 1; justify-content: center; padding: 9px 10px; font-size: 12px; min-width: calc(50% - 3px); }
  .pv-stats-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .pv-horoscope { padding: 18px 10px; }
  .pv-yantra-stage { height: 360px; }
  .pv-yantra-orbit { width: 250px; height: 250px; }
  .pv-yantra-mandala svg { width: 220px; height: 220px; }
  .pv-yantra-orb { width: 84px; height: 84px; margin: -42px 0 0 -42px; }
  @keyframes pvOrbitBride {
    from { transform: rotate(0deg)   translateX(125px) rotate(0deg);    }
    to   { transform: rotate(360deg) translateX(125px) rotate(-360deg); }
  }
  @keyframes pvOrbitGroom {
    from { transform: rotate(180deg) translateX(125px) rotate(-180deg); }
    to   { transform: rotate(540deg) translateX(125px) rotate(-540deg); }
  }
  .pv-yantra-spoke { width: 100px; transform: rotate(var(--angle)) translateX(120px); }
  .pv-yantra-spoke-info { padding: 4px 6px; font-size: 10px; }
  .pv-yantra-spoke-name { font-size: 9.5px; }
  .pv-yantra-spoke-score { font-size: 10px; }
  .pv-yantra-spoke-desc { display: none; }
  .pv-horo-cards { grid-template-columns: 1fr; gap: 14px; }
  .pv-horo-title { font-size: 20px; }
  .pv-horo-card-name { font-size: 22px; }
  .pv-yantra-score-num { font-size: 44px; }
}
@media (max-width: 480px) {
  .pv-stats-grid { grid-template-columns: repeat(2, 1fr); }
  .pv-similar-grid { grid-template-columns: 1fr; }
  .pv-sec-body { padding: 12px; }
  .pv-row-ic { width: 40px; height: 40px; font-size: 18px; }
  .pv-row { grid-template-columns: 40px 1fr auto; column-gap: 10px; }
}


/* =========================================================
   57.14 HOROSCOPE POLISH — bigger fonts, help button + modal
   ========================================================= */

/* Header layout: better responsive */
.pv-horo-title-wrap {
  flex-wrap: wrap;
  justify-content: center;
  text-align: center;
  max-width: 100%;
}
.pv-horo-title-text {
  text-align: left;
  min-width: 0;
}

/* Help (?) button beside Horoscope title */
.pv-horo-help-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin-left: 10px;
  border-radius: 50%;
  background: rgba(251, 191, 36, 0.2);
  border: 1.5px solid rgba(251, 191, 36, 0.5);
  color: #fbbf24;
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.2s ease;
  vertical-align: middle;
}
.pv-horo-help-btn:hover {
  background: #fbbf24;
  color: #1e1b4b;
  transform: scale(1.1);
}

/* Bigger spoke fonts */
.pv-yantra-spoke-name { font-size: 12px !important; }
.pv-yantra-spoke-score { font-size: 13px !important; }
.pv-yantra-spoke-desc { font-size: 10.5px; }

/* Bigger Bride/Groom info card names */
.pv-horo-card-name { font-size: 32px; }
.pv-horo-card-pada { font-size: 15px; }
.pv-horo-card-verdict { font-size: 36px; width: 88px; height: 88px; }


/* Help modal — opens on (?) click */
.pv-horo-modal {
  position: fixed;
  inset: 0;
  background: rgba(15, 11, 40, 0.85);
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  animation: pvHoroModalFade 0.25s ease;
}
.pv-horo-modal.open { display: flex; }
@keyframes pvHoroModalFade {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.pv-horo-modal-card {
  background: #fff;
  color: #333333;
  border-radius: 18px;
  max-width: 640px;
  width: 100%;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(251, 191, 36, 0.3);
  animation: pvHoroModalSlide 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
@keyframes pvHoroModalSlide {
  from { opacity: 0; transform: translateY(20px) scale(0.96); }
  to   { opacity: 1; transform: translateY(0)    scale(1);    }
}

.pv-horo-modal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 24px;
  border-bottom: 1px solid #f1f5f9;
  background: linear-gradient(135deg, #fef3c7, #fed7aa);
  border-radius: 18px 18px 0 0;
  flex-shrink: 0;
}
.pv-horo-modal-title-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}
.pv-horo-modal-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, #fbbf24, #f59e0b);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
}
.pv-horo-modal-title {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 18px;
  font-weight: 700;
  margin: 0;
  color: #78350f;
}
.pv-horo-modal-close {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #fff;
  border: 1.5px solid #e5e7eb;
  color: #475569;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  transition: all 0.2s ease;
  flex-shrink: 0;
  font-family: inherit;
}
.pv-horo-modal-close:hover {
  background: #dc2626;
  color: #fff;
  border-color: #dc2626;
  transform: rotate(90deg);
}

.pv-horo-modal-body {
  padding: 24px;
  overflow-y: auto;
  flex: 1;
}

.pv-horo-modal-section {
  margin-bottom: 22px;
}
.pv-horo-modal-section:last-child { margin-bottom: 0; }
.pv-horo-modal-section h4 {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 8px;
  color: #333333;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.pv-horo-modal-section p {
  font-size: 13.5px;
  line-height: 1.65;
  color: #475569;
  margin: 0;
}

.pv-horo-modal-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.pv-horo-modal-list li {
  padding: 8px 0;
  font-size: 13px;
  line-height: 1.5;
  color: #475569;
  border-bottom: 0.5px solid #f1f5f9;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
}
.pv-horo-modal-list li:last-child { border-bottom: none; }
.pv-horo-modal-list strong { color: #333333; min-width: 110px; font-weight: 700; }
.pv-horo-modal-pts {
  background: #fef3c7;
  color: #78350f;
  padding: 1px 8px;
  border-radius: 8px;
  font-size: 11px;
  font-weight: 700;
}

.pv-horo-modal-bands {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
}
.pv-horo-modal-band {
  padding: 10px 12px;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.pv-horo-modal-band.pv-band-low  { background: #fee2e2; color: #991b1b; }
.pv-horo-modal-band.pv-band-mid  { background: #fef3c7; color: #92400e; }
.pv-horo-modal-band.pv-band-high { background: #dcfce7; color: #14532d; }
.pv-horo-modal-band-num {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
}
.pv-horo-modal-band span:not(.pv-horo-modal-band-num) {
  font-size: 11.5px;
  font-weight: 600;
}

.pv-horo-modal-warning {
  background: #fef3c7;
  border: 1px solid #fcd34d;
  border-radius: 10px;
  padding: 14px 16px;
}
.pv-horo-modal-warning h4 {
  color: #78350f;
  margin-bottom: 6px;
}
.pv-horo-modal-warning h4 i {
  color: #d97706;
  font-size: 14px;
}
.pv-horo-modal-warning p { color: #78350f; }


/* Mobile responsive for horoscope header + modal */
@media (max-width: 767px) {
  .pv-horo-head { margin-bottom: 22px; }
  .pv-horo-title-wrap { gap: 10px; }
  .pv-horo-icon { width: 42px; height: 42px; font-size: 18px; }
  .pv-horo-title { font-size: 18px; line-height: 1.3; }
  .pv-horo-desc { font-size: 11.5px; }
  .pv-horo-help-btn { width: 24px; height: 24px; font-size: 11px; margin-left: 6px; }

  .pv-horo-modal-card { max-height: 95vh; border-radius: 14px 14px 0 0; align-self: flex-end; }
  .pv-horo-modal { padding: 0; align-items: flex-end; }
  .pv-horo-modal-head { padding: 16px 18px; border-radius: 14px 14px 0 0; }
  .pv-horo-modal-title { font-size: 15px; }
  .pv-horo-modal-body { padding: 18px; }
  .pv-horo-modal-list strong { min-width: 90px; }

  /* Bigger orb on mobile too */
  .pv-yantra-orb { width: 96px; height: 96px; margin: -48px 0 0 -48px; }
  .pv-yantra-orb-name { font-size: 12px; }
  .pv-yantra-orb-label { font-size: 8.5px; }

  /* Bigger center score on mobile */
  .pv-yantra-score-tag { font-size: 9px; letter-spacing: 0.16em; }
  .pv-yantra-score-num { font-size: 48px !important; }
  .pv-yantra-score-max { font-size: 13px; }
  .pv-yantra-score-lbl { font-size: 10px; }
}
@media (max-width: 480px) {
  .pv-horo-title-wrap { flex-direction: column; }
  .pv-horo-title-text { text-align: center; }
  .pv-horo-title { font-size: 17px; }
  .pv-horo-card-name { font-size: 24px; }
}
/* =========================================================================
   PERFECTMARRY v2.4 — NEW SECTIONS
   - Our Process (numbered medallion timeline)
   - Our Services (premium service grid)
   - Watch our TVC (video promotional card)
   - Service details page (banner + content + enquiry modal)
   ========================================================================= */


/* =========================================================
   1) OUR PROCESS v2 — Innovative floating-cards design
   ========================================================= */
.process-v2-section {
  position: relative;
  background:
    radial-gradient(1200px 400px at 10% 0%, rgba(214, 31, 38, 0.06) 0%, transparent 60%),
    radial-gradient(800px 300px at 90% 100%, rgba(198, 138, 58, 0.06) 0%, transparent 60%),
    var(--bg-page);
  overflow: hidden;
  padding-top: 70px;
  padding-bottom: 90px;
}
.process-v2-section::before {
  content: '';
  position: absolute;
  top: 30px; left: -60px;
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(214, 31, 38, 0.08), transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.process-v2-section::after {
  content: '';
  position: absolute;
  bottom: 60px; right: -80px;
  width: 240px; height: 240px;
  background: radial-gradient(circle, rgba(47, 74, 125, 0.08), transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

/* Connector path - SVG dashed gradient between cards */
.pv2-path {
  position: absolute;
  top: 320px;
  left: 0;
  width: 100%;
  height: 120px;
  pointer-events: none;
  z-index: 0;
  opacity: 0.55;
  display: none;
}
@media (min-width: 992px) {
  .pv2-path { display: block; }
}

/* Grid layout */
.pv2-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  /* Vertical gap must be > orb-height (orbs float -38px above each card,
     so spacing of ~70px is needed for clean separation on mobile) */
  gap: 72px 14px;
  position: relative;
  z-index: 1;
  /* Generous top margin to clear the floating orbs (orbs sit -38px above cards) */
  margin-top: 80px;
}
@media (min-width: 576px) {
  .pv2-grid { grid-template-columns: repeat(2, 1fr); gap: 72px 28px; margin-top: 90px; }
}
@media (min-width: 992px) {
  .pv2-grid { grid-template-columns: repeat(4, 1fr); gap: 22px; margin-top: 100px; }
}

/* Floating card */
.pv2-card {
  position: relative;
  background: #fff;
  border-radius: 22px;
  padding: 70px 26px 32px;
  text-align: center;
  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.04),
    0 16px 40px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(0, 0, 0, 0.04);
  transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease);
  overflow: visible;
  isolation: isolate;
}
@media (min-width: 992px) {
  /* Staggered vertical offset for innovative wave layout */
  .pv2-card[data-pv2-step="2"] { transform: translateY(28px); }
  .pv2-card[data-pv2-step="4"] { transform: translateY(28px); }
}

.pv2-card:hover {
  transform: translateY(-8px);
  box-shadow:
    0 8px 18px rgba(0, 0, 0, 0.05),
    0 24px 60px rgba(0, 0, 0, 0.1);
}
@media (min-width: 992px) {
  .pv2-card[data-pv2-step="2"]:hover,
  .pv2-card[data-pv2-step="4"]:hover {
    transform: translateY(20px);
  }
}

/* Per-step accent themes via CSS vars */
.pv2-card--red    { --pv-c1: #D61F26; --pv-c2: #F04A50; }
.pv2-card--luxury { --pv-c1: #D61F26; --pv-c2: #C68A3A; }
.pv2-card--gold   { --pv-c1: #C68A3A; --pv-c2: #E5B76E; }
.pv2-card--blue   { --pv-c1: #2F4A7D; --pv-c2: #4A6BA0; }

/* Big number watermark inside card */
.pv2-num {
  position: absolute;
  top: 12px;
  right: 18px;
  font-family: var(--font-display);
  font-size: 64px;
  font-weight: 800;
  line-height: 1;
  background: linear-gradient(135deg, var(--pv-c1), var(--pv-c2));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  opacity: 0.18;
  letter-spacing: -0.04em;
  pointer-events: none;
  user-select: none;
}

/* Floating gradient orb with icon — sits half-above the card top */
.pv2-orb {
  position: absolute;
  top: -38px;
  left: 50%;
  transform: translateX(-50%);
  width: 86px;
  height: 86px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--pv-c1), var(--pv-c2));
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 34px;
  box-shadow:
    0 8px 24px rgba(0, 0, 0, 0.15),
    inset 0 -3px 10px rgba(0, 0, 0, 0.18),
    inset 0 3px 10px rgba(255, 255, 255, 0.25);
  z-index: 2;
  transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease);
}
.pv2-card:hover .pv2-orb {
  transform: translateX(-50%) translateY(-6px) rotate(-6deg) scale(1.05);
  box-shadow:
    0 14px 34px rgba(0, 0, 0, 0.2),
    inset 0 -3px 10px rgba(0, 0, 0, 0.18),
    inset 0 3px 10px rgba(255, 255, 255, 0.3);
}
/* PNG icon inside the gradient orb */
.pv2-orb-img {
  width: 50px;
  height: 50px;
  object-fit: contain;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.2));
  position: relative;
  z-index: 1;
}

/* Pulsing concentric ring around the orb */
.pv2-orb-ring {
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  border: 2px dashed var(--pv-c1);
  opacity: 0.4;
  animation: pv2RingSpin 14s linear infinite;
}
@keyframes pv2RingSpin {
  to { transform: rotate(360deg); }
}

/* Heading + tagline */
.pv2-heading {
  font-family: var(--font-display);
  font-size: 19px;
  font-weight: 700;
  margin: 4px 0 6px;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.pv2-tag {
  font-size: 13px;
  color: var(--slate);
  margin: 0 0 18px;
  letter-spacing: 0.02em;
}

/* Bottom accent bar - gradient that grows on hover */
.pv2-accent {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  height: 4px;
  width: 50px;
  background: linear-gradient(90deg, var(--pv-c1), var(--pv-c2));
  border-radius: 4px 4px 0 0;
  transition: width 0.5s var(--ease);
}
.pv2-card:hover .pv2-accent {
  width: 80%;
}

/* Reveal animation entry */
.pv2-card.reveal {
  opacity: 0;
  transform: translateY(40px);
}
.pv2-card.reveal.in-view,
.pv2-card.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
@media (min-width: 992px) {
  .pv2-card[data-pv2-step="2"].reveal.in-view,
  .pv2-card[data-pv2-step="2"].reveal.is-visible,
  .pv2-card[data-pv2-step="4"].reveal.in-view,
  .pv2-card[data-pv2-step="4"].reveal.is-visible {
    transform: translateY(28px);
  }
}
.pv2-card[data-pv2-step="1"] { transition-delay: 0s; }
.pv2-card[data-pv2-step="2"] { transition-delay: 0.12s; }
.pv2-card[data-pv2-step="3"] { transition-delay: 0.24s; }
.pv2-card[data-pv2-step="4"] { transition-delay: 0.36s; }

/* Mobile vertical timeline accent: thin vertical line behind cards */
@media (max-width: 575px) {
  .pv2-grid::before {
    content: none;
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 2px;
    background: linear-gradient(180deg, #D61F26, #C68A3A 50%, #2F4A7D);
    opacity: 0.18;
    transform: translateX(-50%);
    z-index: 0;
  }
}


/* Highlight color helper for h2 (red brand version) */
.hl-red {
  color: var(--brand-red);
  position: relative;
  display: inline-block;
}
.hl-red::after {
  content: '';
  position: absolute;
  left: 4%;
  right: 4%;
  bottom: -2px;
  height: 4px;
  background: var(--grad-gold);
  border-radius: 2px;
  opacity: 0.35;
}


/* =========================================================
   2) OUR SERVICES — INNOVATIVE v2 DESIGN
   Tilted glass cards · curved image clip · glass-morphism orbs
   3D perspective hover · per-card brand-color variants
   ========================================================= */
.services-section {
  background:
    radial-gradient(900px 400px at 50% 0%, rgba(214, 31, 38, 0.04) 0%, transparent 60%),
    radial-gradient(600px 300px at 100% 100%, rgba(198, 138, 58, 0.05) 0%, transparent 60%),
    #fff;
  position: relative;
  padding: 90px 0 100px;
  overflow: hidden;
}
.services-section::before {
  content: '';
  position: absolute;
  top: 80px; right: -100px;
  width: 280px; height: 280px;
  background: radial-gradient(circle, rgba(47, 74, 125, 0.06), transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

.services-grid { 
  margin-top: 50px;
  perspective: 1400px;
}

/* ===== Card: tilted glass-morphism container ===== */
.service-card {
  display: block;
  background: #fff;
  border-radius: 24px;
  overflow: hidden;
  text-decoration: none;
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.04),
    0 16px 36px rgba(0, 0, 0, 0.06);
  transition: transform 0.55s var(--ease), box-shadow 0.55s var(--ease), border-color 0.4s ease;
  position: relative;
  height: 100%;
  isolation: isolate;
  /* Per-card accent (overridden via nth-child below) */
  --svc-c1: #D61F26;
  --svc-c2: #F04A50;
}

/* 3D tilt on hover — premium feel */
.service-card:hover {
  transform: translateY(-10px) rotateX(2deg) rotateY(-1deg);
  box-shadow:
    0 8px 18px rgba(0, 0, 0, 0.06),
    0 30px 60px rgba(214, 31, 38, 0.18);
  border-color: rgba(214, 31, 38, 0.25);
  color: inherit;
}

/* Per-card accent variants — fixed per service (matches JPG background)
   Each service has its own permanent color identity via href targeting. */
.service-card                               { --svc-c1: #D61F26; --svc-c2: #F04A50; }   /* default Red */
.service-card[href*="matchmaker"]           { --svc-c1: #D61F26; --svc-c2: #F04A50; }   /* Red - love */
.service-card[href*="astrology"]            { --svc-c1: #D61F26; --svc-c2: #C68A3A; }   /* Luxury - mystical */
.service-card[href*="verification"]         { --svc-c1: #2F4A7D; --svc-c2: #4A6BA0; }   /* Blue - trust */
.service-card[href*="photoshoot"]           { --svc-c1: #C68A3A; --svc-c2: #E5B76E; }   /* Gold - glamour */
.service-card[href*="counseling"]           { --svc-c1: #D61F26; --svc-c2: #F04A50; }   /* Red - relationship */
.service-card[href*="cards"]                { --svc-c1: #C68A3A; --svc-c2: #E5B76E; }   /* Gold - elegant */
.service-card[href*="honeymoon"]            { --svc-c1: #2F4A7D; --svc-c2: #4A6BA0; }   /* Blue - travel/sky */
.service-card[href*="background-check"]     { --svc-c1: #D61F26; --svc-c2: #C68A3A; }   /* Luxury - premium */

/* ===== Image with curved-bottom clip + parallax ===== */
.service-img {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  /* JPG illustrations carry their own brand-color gradient background */
  background: var(--bg-soft);
  /* Curved bottom edge that flows into the body */
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 28px), 50% 100%, 0 calc(100% - 28px));
}
.service-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s var(--ease);
}
.service-card:hover .service-img img {
  transform: scale(1.12);
}

/* Color-tinted gradient overlay for brand consistency */
.service-img::after {
  /* Subtle dark fade at bottom for badge/icon legibility */
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(0, 0, 0, 0.18) 100%);
  pointer-events: none;
  transition: opacity 0.4s ease;
}
.service-card:hover .service-img::after {
  opacity: 0.7;
}

/* Decorative shine sweep on hover */
.service-img::before {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 60%; height: 100%;
  background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, 0.18) 50%, transparent 70%);
  pointer-events: none;
  z-index: 1;
  transition: left 0.8s ease;
}
.service-card:hover .service-img::before { left: 130%; }

/* ===== Floating badge - top-left, gradient pill ===== */
.service-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  background: linear-gradient(135deg, var(--svc-c1), var(--svc-c2));
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 6px 13px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  z-index: 3;
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(4px);
  border: 1px solid rgba(255, 255, 255, 0.3);
}
.service-badge i { font-size: 11px; }

/* ===== Body with floating glass-morphism icon orb ===== */
.service-body {
  padding: 38px 20px 22px;
  position: relative;
}

/* Glass-morphism icon orb — sits at curved boundary */
.service-icon-wrap {
  position: absolute;
  top: -32px;
  left: 50%;
  transform: translateX(-50%);
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--svc-c1), var(--svc-c2));
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 26px;
  box-shadow:
    0 10px 24px rgba(0, 0, 0, 0.22),
    inset 0 -3px 8px rgba(0, 0, 0, 0.18),
    inset 0 3px 8px rgba(255, 255, 255, 0.3);
  border: 4px solid #fff;
  z-index: 4;
  transition: transform 0.5s var(--ease);
}

/* Rotating dashed ring around the orb */
.service-icon-wrap::before {
  content: '';
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  border: 2px dashed var(--svc-c1);
  opacity: 0.4;
  animation: svcRingSpin 18s linear infinite;
  pointer-events: none;
}
@keyframes svcRingSpin {
  to { transform: rotate(360deg); }
}

.service-card:hover .service-icon-wrap {
  transform: translateX(-50%) translateY(-4px) rotate(-8deg) scale(1.08);
}

/* PNG icon inside service-icon-wrap */
.service-icon-img {
  width: 38px;
  height: 38px;
  object-fit: contain;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.18));
  position: relative;
  z-index: 1;
}
@media (max-width: 575.98px) {
  .service-icon-img { width: 28px; height: 28px; }
}

/* ===== Title and CTA ===== */
.service-body h5 {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 10px;
  font-size: 18px;
  line-height: 1.3;
  text-align: center;
  letter-spacing: -0.01em;
  position: relative;
}
/* Underline accent below title */
.service-body h5::after {
  content: '';
  display: block;
  width: 36px;
  height: 3px;
  background: linear-gradient(90deg, var(--svc-c1), var(--svc-c2));
  border-radius: 3px;
  margin: 8px auto 0;
  transition: width 0.5s var(--ease);
}
.service-card:hover .service-body h5::after { width: 60px; }

/* Pill-style CTA */
.service-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  margin-top: 12px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 600;
  color: var(--svc-c1);
  background: color-mix(in srgb, var(--svc-c1) 8%, transparent);
  border: 1px solid color-mix(in srgb, var(--svc-c1) 25%, transparent);
  border-radius: 999px;
  transition: all 0.4s var(--ease);
  letter-spacing: 0.02em;
}
.service-cta i {
  transition: transform 0.4s var(--ease);
}
.service-card:hover .service-cta {
  background: linear-gradient(135deg, var(--svc-c1), var(--svc-c2));
  color: #fff;
  border-color: transparent;
  box-shadow: 0 6px 14px color-mix(in srgb, var(--svc-c1) 35%, transparent);
}
.service-card:hover .service-cta i {
  transform: translateX(4px);
}

/* ===== Reveal animation for cards ===== */
.services-grid > [class*="col-"] { 
  transition-delay: calc(var(--svc-delay, 0) * 0.08s);
}
.services-grid > [class*="col-"]:nth-child(1) { --svc-delay: 0; }
.services-grid > [class*="col-"]:nth-child(2) { --svc-delay: 1; }
.services-grid > [class*="col-"]:nth-child(3) { --svc-delay: 2; }
.services-grid > [class*="col-"]:nth-child(4) { --svc-delay: 3; }
.services-grid > [class*="col-"]:nth-child(5) { --svc-delay: 4; }
.services-grid > [class*="col-"]:nth-child(6) { --svc-delay: 5; }
.services-grid > [class*="col-"]:nth-child(7) { --svc-delay: 6; }
.services-grid > [class*="col-"]:nth-child(8) { --svc-delay: 7; }

/* ===== Mobile tweaks ===== */
@media (max-width: 575.98px) {
  .services-section { padding: 60px 0 70px; }
  .services-grid { margin-top: 30px; }
  .service-body { padding: 32px 14px 18px; }
  .service-body h5 { font-size: 15px; }
  .service-icon-wrap { width: 52px; height: 52px; font-size: 22px; top: -26px; border-width: 3px; }
  .service-cta { font-size: 12px; padding: 7px 12px; }
}


/* =========================================================
   3) WATCH OUR LATEST TVC — video promotional card
   ========================================================= */
.tvc-section {
  background: linear-gradient(180deg, #fffbf2 0%, #fff5e0 100%);
  position: relative;
  overflow: hidden;
}
.tvc-heading { text-align: center; margin-bottom: 32px; }
.tvc-heading h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 36px;
  color: var(--ink);
  margin: 0;
}

.tvc-frame-wrap {
  position: relative;
  max-width: 980px;
  margin: 0 auto;
  padding: 0 32px;
}

/* Decorative dotted side patterns (like Bharat Matrimony) */
.tvc-dots {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 86px;
  height: 240px;
  background-image: radial-gradient(circle, rgba(198, 138, 58, 0.45) 1.5px, transparent 1.8px);
  background-size: 14px 14px;
  pointer-events: none;
  opacity: 0.7;
}
.tvc-dots-left { left: -10px; }
.tvc-dots-right { right: -10px; transform: translateY(-50%) scaleX(-1); }

.tvc-frame {
  position: relative;
  z-index: 2;
  border-radius: 22px;
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  padding: 4px;
  box-shadow: 0 30px 60px rgba(214, 31, 38, 0.18);
}
.tvc-card {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  cursor: pointer;
  background: #1a1a1a;
}

/* Background photo with strong overlay */
.tvc-bg-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.85);
  transition: transform 0.8s var(--ease);
}
.tvc-card:hover .tvc-bg-photo { transform: scale(1.05); }

/* Tri-color gradient overlay: red on left, dark in middle, gold on right
   evoking the Bharat Matrimony reference but in our brand colors */
.tvc-gradient-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg,
      rgba(214, 31, 38, 0.85) 0%,
      rgba(214, 31, 38, 0.55) 25%,
      rgba(20, 20, 25, 0.55) 50%,
      rgba(198, 138, 58, 0.55) 75%,
      rgba(198, 138, 58, 0.85) 100%);
}

/* Top-right corner action buttons */
.tvc-corners {
  position: absolute;
  top: 18px;
  right: 18px;
  display: flex;
  gap: 14px;
  z-index: 4;
}
.tvc-corner-btn {
  background: transparent;
  border: none;
  color: #fff;
  font-size: 11px;
  font-weight: 500;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  opacity: 0.92;
  transition: all 0.2s ease;
  padding: 4px 8px;
  text-shadow: 0 1px 3px rgba(0,0,0,0.5);
}
.tvc-corner-btn i { font-size: 18px; }
.tvc-corner-btn:hover { opacity: 1; transform: translateY(-2px); }

/* Content layout (left-aligned tagline + brand pill) */
.tvc-content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 30px 38px;
  z-index: 3;
  pointer-events: none;
}

.tvc-tagline-box {
  margin-top: 30px;
  max-width: 50%;
}
.tvc-tagline-line {
  font-family: var(--font-display);
  font-weight: 700;
  color: #fff;
  font-size: 38px;
  line-height: 1.05;
  letter-spacing: -0.01em;
  text-shadow: 0 3px 12px rgba(0,0,0,0.45);
  display: block;
}
.tvc-tagline-line:nth-child(1) { padding-left: 0; }
.tvc-tagline-line:nth-child(2) { padding-left: 12px; }
.tvc-tagline-line:nth-child(3) { padding-left: 24px; }

.tvc-brand-pill {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: rgba(255,255,255,0.95);
  border-radius: 12px;
  padding: 8px 16px 8px 10px;
  align-self: flex-start;
  box-shadow: 0 8px 22px rgba(0,0,0,0.25);
  pointer-events: auto;
}
.tvc-brand-pill img {
  height: 36px;
  width: auto;
  display: block;
}
.tvc-brand-tag {
  font-size: 11px;
  color: var(--ink);
  font-weight: 500;
  border-left: 1.5px solid var(--brand-gold);
  padding-left: 12px;
  line-height: 1.2;
}

/* Big play button (YouTube-style red) */
.tvc-play-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 88px;
  height: 60px;
  border-radius: 16px;
  border: none;
  background: var(--brand-red);
  color: #fff;
  font-size: 36px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 5;
  box-shadow: 0 12px 32px rgba(214, 31, 38, 0.5),
              0 0 0 0 rgba(214, 31, 38, 0.4);
  transition: all 0.3s var(--ease);
  animation: tvc-pulse 2.4s var(--ease) infinite;
}
.tvc-play-btn:hover {
  transform: translate(-50%, -50%) scale(1.08);
  background: var(--brand-red-hover);
  animation-play-state: paused;
}
@keyframes tvc-pulse {
  0%, 100% { box-shadow: 0 12px 32px rgba(214, 31, 38, 0.5), 0 0 0 0 rgba(214, 31, 38, 0.5); }
  50%      { box-shadow: 0 12px 32px rgba(214, 31, 38, 0.5), 0 0 0 18px rgba(214, 31, 38, 0); }
}

/* Mobile adjustments */
@media (max-width: 767.98px) {
  .tvc-heading h2 { font-size: 26px; }
  .tvc-frame-wrap { padding: 0 12px; }
  .tvc-dots { width: 50px; height: 140px; background-size: 10px 10px; }
  .tvc-content { padding: 18px 22px; }
  .tvc-tagline-box { margin-top: 14px; max-width: 60%; }
  .tvc-tagline-line { font-size: 22px; }
  .tvc-corners { top: 12px; right: 12px; gap: 10px; }
  .tvc-corner-btn { font-size: 10px; }
  .tvc-corner-btn i { font-size: 15px; }
  .tvc-brand-pill { padding: 5px 11px 5px 7px; gap: 8px; }
  .tvc-brand-pill img { height: 26px; }
  .tvc-brand-tag { font-size: 9px; padding-left: 8px; }
  .tvc-play-btn { width: 64px; height: 44px; font-size: 26px; border-radius: 12px; }
}

/* TVC video lightbox */
.tvc-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1080;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.tvc-lightbox.show { display: flex; }
.tvc-lb-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.85);
  backdrop-filter: blur(6px);
}
.tvc-lb-dialog {
  position: relative;
  width: 100%;
  max-width: 960px;
  z-index: 2;
}
.tvc-lb-iframe-wrap {
  position: relative;
  aspect-ratio: 16/9;
  background: #000;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 30px 60px rgba(0,0,0,0.5);
}
.tvc-lb-iframe-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.tvc-lb-close {
  position: absolute;
  top: -44px;
  right: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: none;
  background: rgba(255,255,255,0.95);
  color: var(--ink);
  cursor: pointer;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s ease;
}
.tvc-lb-close:hover { transform: scale(1.08); }


/* =========================================================
   4) SERVICE DETAILS PAGE — banner, content, enquiry modal
   ========================================================= */

/* Banner carousel for service detail */
.svc-banner {
  position: relative;
  height: 360px;
  border-radius: 0 0 var(--r-xl) var(--r-xl);
  overflow: hidden;
  margin-bottom: 32px;
}
.svc-banner .carousel,
.svc-banner .carousel-inner,
.svc-banner .carousel-item { height: 100%; }
.svc-banner .carousel-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.svc-banner-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(214, 31, 38, 0.75) 100%);
  display: flex;
  align-items: flex-end;
  padding: 36px 28px;
  z-index: 2;
}
.svc-banner-title {
  color: #fff;
  font-family: var(--font-display);
  margin: 0;
}
.svc-banner-title small {
  display: block;
  font-family: var(--font-script);
  font-size: 18px;
  font-weight: 400;
  color: var(--gold-light);
  margin-bottom: 6px;
}
.svc-banner-title span.h1 {
  display: block;
  font-size: 38px;
  font-weight: 700;
  letter-spacing: -0.01em;
}

/* Content area */
.svc-content {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 36px;
  align-items: start;
}
.svc-prose h3 {
  font-family: var(--font-display);
  color: var(--ink);
  margin: 24px 0 12px;
  font-size: 22px;
}
.svc-prose h3:first-child { margin-top: 0; }
.svc-prose p {
  color: var(--slate);
  line-height: 1.75;
  margin-bottom: 14px;
}
.svc-prose ul {
  list-style: none;
  padding-left: 0;
}
.svc-prose ul li {
  padding-left: 32px;
  position: relative;
  margin-bottom: 10px;
  color: var(--slate);
  line-height: 1.6;
}
.svc-prose ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--grad-luxury);
}
.svc-prose ul li::after {
  content: '\f633';   /* bi-check2 (filled) */
  font-family: 'bootstrap-icons';
  position: absolute;
  left: 4px;
  top: 8px;
  color: #fff;
  font-size: 11px;
  line-height: 18px;
}

.svc-aside {
  background: var(--bg-soft);
  padding: 24px 22px;
  border-radius: var(--r-lg);
  border: 1px solid var(--line);
  position: sticky;
  top: 92px;
}
.svc-aside h4 {
  font-family: var(--font-display);
  font-weight: 600;
  color: var(--ink);
  margin: 0 0 8px;
  font-size: 20px;
}
.svc-aside p {
  font-size: 13px;
  color: var(--slate);
  margin-bottom: 16px;
  line-height: 1.55;
}
.svc-aside .btn-grad-luxury {
  width: 100%;
  padding: 12px;
  font-weight: 600;
  border-radius: 10px;
}
.svc-aside-perks {
  list-style: none;
  padding: 14px 0 0;
  margin: 14px 0 0;
  border-top: 1px dashed var(--line);
}
.svc-aside-perks li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--slate);
  margin-bottom: 8px;
}
.svc-aside-perks li i {
  color: var(--brand-gold);
  font-size: 16px;
}

@media (max-width: 991.98px) {
  .svc-content { grid-template-columns: 1fr; }
  .svc-aside { position: static; }
  .svc-banner { height: 260px; border-radius: 0 0 var(--r-lg) var(--r-lg); }
  .svc-banner-title span.h1 { font-size: 26px; }
}

/* Other services strip on details page */
.svc-other {
  margin-top: 56px;
  padding-top: 36px;
  border-top: 1px solid var(--line);
}

/* Enquiry modal */
.enquiry-modal .modal-content {
  border: none;
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: 0 30px 60px rgba(0,0,0,0.25);
}
.enquiry-modal .modal-header {
  background: var(--grad-luxury);
  color: #fff;
  padding: 18px 22px;
  border: 0;
  position: relative;
}
.enquiry-modal .modal-title {
  font-family: var(--font-display);
  font-weight: 600;
  color: #fff;
  font-size: 20px;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}
.enquiry-modal .modal-title i {
  background: rgba(255,255,255,0.2);
  width: 36px; height: 36px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.enquiry-modal .btn-close {
  filter: invert(1) brightness(2);
  opacity: 0.9;
}
.enquiry-modal .modal-body { padding: 24px 22px 8px; }
.enquiry-modal .modal-footer {
  padding: 16px 22px;
  border-top: 1px solid var(--line);
}

.enq-field { margin-bottom: 14px; }
.enq-field label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--ink);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 6px;
}
.enq-field label .req { color: var(--brand-red); }
.enq-field input,
.enq-field select,
.enq-field textarea {
  width: 100%;
  padding: 11px 14px;
  border: 1.5px solid var(--line);
  border-radius: 10px;
  font-size: 14px;
  font-family: var(--font-body);
  color: var(--ink);
  background: #fff;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.enq-field textarea {
  resize: vertical;
  min-height: 96px;
}
.enq-field input:focus,
.enq-field select:focus,
.enq-field textarea:focus {
  outline: none;
  border-color: var(--brand-red);
  box-shadow: 0 0 0 3px rgba(214, 31, 38, 0.12);
}
.enq-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 575.98px) {
  .enq-row { grid-template-columns: 1fr; }
}

.enq-success {
  display: none;
  text-align: center;
  padding: 24px 12px 8px;
}
.enq-success.show { display: block; }
.enq-success-icon {
  width: 72px;
  height: 72px;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: var(--grad-gold);
  color: #fff;
  font-size: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 24px rgba(198, 138, 58, 0.3);
}
.enq-success h4 {
  font-family: var(--font-display);
  color: var(--ink);
  font-size: 22px;
  margin: 0 0 8px;
}
.enq-success p {
  color: var(--slate);
  font-size: 14px;
  margin: 0 0 20px;
}


/* =========================================================
   FAQ SECTION — Accordion with brand-color accent
   ========================================================= */
.faq-section {
  background:
    radial-gradient(800px 400px at 10% 0%, rgba(214, 31, 38, 0.04), transparent 60%),
    radial-gradient(600px 300px at 90% 100%, rgba(198, 138, 58, 0.05), transparent 60%),
    var(--bg-page);
  padding: 80px 0 90px;
  position: relative;
  overflow: hidden;
}
.faq-section::before {
  content: '';
  position: absolute;
  top: -100px; left: -100px;
  width: 280px; height: 280px;
  background: radial-gradient(circle, rgba(47, 74, 125, 0.05), transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.faq-section::after {
  content: '';
  position: absolute;
  bottom: -120px; right: -100px;
  width: 280px; height: 280px;
  background: radial-gradient(circle, rgba(214, 31, 38, 0.06), transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

.faq-grid {
  max-width: 860px;
  margin: 50px auto 0;
  display: grid;
  gap: 14px;
  position: relative;
  z-index: 1;
}

/* Each FAQ item is a <details> element */
.faq-item {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  overflow: hidden;
  transition: border-color 0.4s ease, box-shadow 0.4s ease, transform 0.4s ease;
}
.faq-item:hover {
  border-color: rgba(214, 31, 38, 0.3);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05);
}
.faq-item[open] {
  border-color: var(--brand-red);
  box-shadow: 0 10px 30px rgba(214, 31, 38, 0.12);
}

/* Summary (the question header — always visible) */
.faq-item summary {
  list-style: none;
  cursor: pointer;
  padding: 18px 22px;
  display: flex;
  align-items: center;
  gap: 16px;
  user-select: none;
  position: relative;
  outline: none;
}
.faq-item summary::-webkit-details-marker { display: none; }

/* Question icon orb */
.faq-q-icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--brand-red);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 18px;
  transition: background 0.4s ease, transform 0.4s var(--ease);
}
.faq-item[open] .faq-q-icon {
  background: var(--grad-luxury);
  transform: rotate(-12deg) scale(1.05);
}

/* Question text */
.faq-q-text {
  flex: 1;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 16px;
  color: var(--ink);
  line-height: 1.4;
  letter-spacing: -0.005em;
}

/* + / − toggle indicator */
.faq-toggle {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--bg-soft);
  color: var(--brand-red);
  display: grid;
  place-items: center;
  font-size: 14px;
  transition: transform 0.4s var(--ease), background 0.4s ease, color 0.4s ease;
}
.faq-item[open] .faq-toggle {
  transform: rotate(45deg);
  background: var(--brand-red);
  color: #fff;
}

/* Answer body */
.faq-a {
  display: block;
  padding: 0 22px 22px 74px;  /* indent matches icon + gap so text aligns */
  color: var(--slate);
  font-size: 14.5px;
  line-height: 1.7;
  /* Slide-down animation */
  animation: faqSlideDown 0.4s var(--ease);
}
/* Hide answer when collapsed (some browsers leave summary's siblings visible) */
.faq-item:not([open]) .faq-a {
  display: none;
}
@keyframes faqSlideDown {
  from { opacity: 0; transform: translateY(-8px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* CTA at the bottom */
.faq-cta {
  text-align: center;
  margin-top: 42px;
  position: relative;
  z-index: 1;
}
.faq-cta p {
  color: var(--slate);
  font-size: 15px;
  margin-bottom: 16px;
}

/* Mobile tweaks */
@media (max-width: 575.98px) {
  .faq-section { padding: 60px 0 70px; }
  .faq-grid { margin-top: 32px; gap: 12px; }
  .faq-item summary { padding: 14px 16px; gap: 12px; }
  .faq-q-icon { width: 32px; height: 32px; font-size: 16px; }
  .faq-q-text { font-size: 14.5px; }
  .faq-toggle { width: 28px; height: 28px; font-size: 12px; }
  .faq-a { padding: 0 16px 18px 60px; font-size: 13.5px; }
}


/* =========================================================
   LOGIN v2 — 4-tab login + agent/vendor registration wizards
   ========================================================= */

/* ---------- Pill-style tab bar ---------- */
.pm-login .login-tabs {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: center;
  max-width: 720px;
  margin: 0 auto 28px;
  padding: 5px;
  background: #f2f2f2;
  border-radius: 999px;
}
.pm-login .login-tab {
  flex: 1;
  min-width: 110px;
  padding: 11px 16px;
  background: transparent;
  border: none;
  border-radius: 999px;
  font-weight: 600;
  font-size: 13px;
  color: var(--slate);
  cursor: pointer;
  transition: all 0.3s var(--ease);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-family: var(--font-body);
}
.pm-login .login-tab i { font-size: 15px; }
.pm-login .login-tab.active {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  box-shadow: 0 4px 12px rgba(214, 31, 38, 0.3);
}

/* ============================================================
   Registration page tab strip — mirrors login-tabs but uses
   anchor links (each tab is a separate registration page).
   ============================================================ */
.auth-type-tabs {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: center;
  max-width: 720px;
  margin: 0 auto 24px;
  padding: 5px;
  background: #f2f2f2;
  border-radius: 999px;
}
.auth-type-tabs .auth-type-tab {
  flex: 1;
  min-width: 110px;
  padding: 11px 16px;
  background: transparent;
  border: 0;
  border-radius: 999px;
  font-weight: 600;
  font-size: 13px;
  color: var(--slate);
  cursor: pointer;
  text-decoration: none;
  transition: all 0.25s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-family: var(--font-body);
}
.auth-type-tabs .auth-type-tab i { font-size: 15px; }
.auth-type-tabs .auth-type-tab:hover {
  color: var(--brand-red);
  background: rgba(214, 31, 38, 0.05);
}
.auth-type-tabs .auth-type-tab.active {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  box-shadow: 0 4px 12px rgba(214, 31, 38, 0.3);
  cursor: default;
}
.auth-type-tabs .auth-type-tab.active:hover {
  color: #fff;
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
}
@media (max-width: 575.98px) {
  .auth-type-tabs { gap: 3px; padding: 4px; }
  .auth-type-tabs .auth-type-tab {
    flex-direction: column;
    min-width: 0;
    padding: 8px 6px;
    font-size: 11px;
    gap: 3px;
  }
  .auth-type-tabs .auth-type-tab i { font-size: 18px; }
}
.pm-login .login-tab:not(.active):hover { color: var(--brand-red); }

.pm-login .login-pane[hidden] { display: none; }

/* ---------- Method toggle (Password / OTP) ---------- */
.auth-method-toggle {
  display: flex;
  background: #f2f2f2;
  border-radius: 14px;
  padding: 5px;
  gap: 4px;
  margin-bottom: 20px;
}
.auth-method-toggle button {
  flex: 1;
  padding: 11px 8px;
  background: transparent;
  border: none;
  border-radius: 10px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--slate);
  cursor: pointer;
  font-family: var(--font-body);
  transition: all 0.25s ease;
  /* Stack icon above text */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  line-height: 1.15;
}
.auth-method-toggle button i {
  font-size: 18px;
  transition: color 0.25s ease;
}
.auth-method-toggle button.active {
  background: #fff;
  color: var(--brand-red);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}
.auth-method-toggle button:not(.active):hover {
  color: var(--brand-red);
}

/* ---------- Forgot link ---------- */
.pm-login .forgot-link,
.pm-wizard .forgot-link {
  text-align: right;
  margin: -4px 0 16px;
}
.pm-login .forgot-link a,
.pm-wizard .forgot-link a {
  color: var(--brand-blue);
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
}
.pm-login .forgot-link a:hover,
.pm-wizard .forgot-link a:hover { color: var(--brand-red); }

/* ---------- Auth prompt (bottom link) ---------- */
.pm-login .auth-prompt,
.pm-wizard .auth-prompt {
  text-align: center;
  margin-top: 18px;
  font-size: 14px;
  color: var(--slate);
}
.pm-login .auth-prompt a,
.pm-wizard .auth-prompt a {
  color: var(--brand-red);
  font-weight: 600;
  text-decoration: none;
}

/* ---------- "Coming soon" / no-registration note ---------- */
.no-reg-note {
  text-align: center;
  margin-top: 18px;
  padding: 12px 14px;
  background: #fff8f0;
  border: 1px dashed var(--brand-gold);
  border-radius: 10px;
  font-size: 12.5px;
  color: #7a5424;
  line-height: 1.5;
}
.no-reg-note i {
  color: var(--brand-gold);
  margin-right: 4px;
}

/* ---------- Auth side panel — script + heading + features ---------- */
.auth-side .script {
  font-family: var(--font-script);
  font-size: 22px;
  color: var(--gold-light);
  display: block;
  margin-bottom: 6px;
}
.auth-side h2 em {
  font-style: italic;
  color: var(--gold-light);
}

/* ---------- Wizard stepper ---------- */
.wiz-stepper {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 8px auto 26px;
  max-width: 100%;
}
/* Modifier for stepper with many steps (5+) — used in register.html */
.wiz-stepper-compact .wiz-line {
  flex: 1 1 auto;
  min-width: 12px;
}
.wiz-stepper-compact .wiz-circle {
  width: 32px;
  height: 32px;
  font-size: 12px;
}
.wiz-stepper-compact .wiz-label {
  font-size: 9.5px;
  letter-spacing: 0.02em;
  margin-top: 5px;
}
.wiz-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
}
.wiz-circle {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #f2f2f2;
  color: var(--slate);
  font-weight: 700;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.35s var(--ease);
  font-family: var(--font-body);
}
.wiz-step.active .wiz-circle {
  background: linear-gradient(135deg, var(--brand-red), #F04A50);
  color: #fff;
  box-shadow: 0 4px 12px rgba(214, 31, 38, 0.35);
  transform: scale(1.05);
}
.wiz-step.done .wiz-circle {
  background: linear-gradient(135deg, #16A34A 0%, #22C55E 100%);
  color: #fff;
  box-shadow: 0 2px 8px rgba(22, 163, 74, 0.3);
}
/* Number stays visible (no tick mark replacing it) */
.wiz-label {
  margin-top: 7px;
  font-size: 11px;
  color: var(--slate);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.wiz-step.active .wiz-label { color: var(--brand-red); }
.wiz-step.done .wiz-label { color: #16A34A; }

.wiz-line {
  flex: 0 1 60px;
  height: 2px;
  background: #f2f2f2;
  margin: 0 6px 22px;
  border-radius: 2px;
  transition: background 0.35s ease;
  min-width: 16px;
}
.wiz-line.active { background: linear-gradient(90deg, #16A34A, #22C55E); }

/* ---------- Wizard panes (one shown at a time) ---------- */
.wiz-pane[hidden] { display: none; }

/* ---------- Wizard action row (Back / Next) ---------- */
.wiz-actions {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 24px;
  align-items: center;
}
.btn-back {
  padding: 11px 22px;
  background: #fff;
  color: var(--slate);
  border: 1.5px solid var(--line);
  border-radius: 10px;
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  transition: all 0.25s ease;
}
.btn-back:hover {
  color: var(--brand-red);
  border-color: var(--brand-red);
}
.btn-next {
  flex: 1;
  padding: 12px 22px;
  font-weight: 600;
  font-size: 14px;
  border: none;
  cursor: pointer;
}

/* ---------- OTP input boxes ---------- */
.otp-info {
  text-align: center;
  color: var(--slate);
  font-size: 14px;
  margin: 8px 0 4px;
}
.otp-info b { color: var(--ink); }

/* OTP action row (Back + Verify) — used in login OTP flow */
.otp-actions {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 18px;
  align-items: center;
}
.otp-actions .btn-back {
  flex: 0 0 auto;
}
.otp-actions .btn-next {
  flex: 1;
}
@media (max-width: 575px) {
  .otp-actions { flex-direction: column-reverse; }
  .otp-actions .btn-back, .otp-actions .btn-next { width: 100%; justify-content: center; }
}
.otp-input-row {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin: 18px 0 12px;
}
.otp-input-row input {
  width: 48px;
  height: 56px;
  text-align: center;
  border: 2px solid var(--line);
  border-radius: 10px;
  font-size: 22px;
  font-weight: 700;
  color: var(--ink);
  font-family: var(--font-display);
  background: #fff;
  transition: all 0.2s ease;
}
.otp-input-row input:focus {
  outline: none;
  border-color: var(--brand-red);
  background: #fff8f0;
  transform: translateY(-1px);
}
.otp-resend {
  text-align: center;
  font-size: 13px;
  color: var(--slate);
  margin-top: 6px;
}
.otp-resend a {
  color: var(--brand-blue);
  font-weight: 600;
  text-decoration: none;
}
.otp-resend a.active:hover { color: var(--brand-red); }

/* ---------- File upload area ---------- */
.file-upload {
  display: block;
  border: 2px dashed var(--line);
  border-radius: 12px;
  padding: 18px;
  text-align: center;
  background: #fafafa;
  cursor: pointer;
  transition: all 0.2s ease;
}
.file-upload:hover {
  border-color: var(--brand-red);
  background: #fff8f0;
}
.file-upload i {
  font-size: 28px;
  color: var(--brand-gold);
  display: block;
  margin-bottom: 4px;
}
.file-upload p {
  margin: 0;
  font-size: 13px;
  color: var(--slate);
}
.file-upload .file-name {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  color: var(--brand-red);
  font-weight: 600;
}

/* ---------- Wizard side panel (animated step swap) ---------- */
.wiz-side-step[hidden] { display: none; }
.wiz-side-step {
  animation: wizSideFade 0.4s ease;
}
@keyframes wizSideFade {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ---------- Mobile tweaks ---------- */
@media (max-width: 991px) {
  .pm-login .login-tab span { display: inline; }
}
@media (max-width: 575px) {
  .pm-login .login-tabs { gap: 3px; padding: 4px; }
  .pm-login .login-tab {
    min-width: 0;
    padding: 8px 4px;
    font-size: 11px;
    gap: 3px;
    /* Stack icon above label on mobile */
    flex-direction: column;
    line-height: 1.1;
  }
  .pm-login .login-tab span { display: block; font-size: 11px; font-weight: 600; }
  .pm-login .login-tab i { font-size: 18px; }
  .wiz-stepper { margin-bottom: 22px; }
  .wiz-line { flex-basis: 28px; margin: 0 4px 22px; }
  .wiz-circle { width: 34px; height: 34px; font-size: 13px; }
  .wiz-label { font-size: 10px; }
  /* Labels under each circle don't fit on phones (e.g. "VERIFY OTP", "EDUCATION"
     push the row wider than the viewport, clipping the first and last labels).
     Hide labels for inactive steps; the active step name is already shown
     above the stepper as the subtitle ("Step 1: Tell us about yourself"). */
  .wiz-stepper-compact .wiz-step:not(.active) .wiz-label { display: none; }
  .wiz-stepper-compact .wiz-line { margin-bottom: 0; }
  .otp-input-row { gap: 6px; }
  .otp-input-row input { width: 42px; height: 52px; font-size: 20px; }
  .wiz-actions { flex-direction: column-reverse; }
  .btn-back, .btn-next { width: 100%; justify-content: center; }
}


/* =========================================================
   WIZARD SIDE PANEL — 3-zone layout (top steps / middle stats / bottom quote)
   When panel is taller than content (long forms), use space-between to
   distribute zones evenly: step content stays at top, stats float middle,
   testimonial anchors bottom. Result: no empty gaps, balanced visual.
   ========================================================= */
.auth-side.has-3zone {
  justify-content: space-between;
  gap: 24px;
  padding-top: 36px;
  padding-bottom: 32px;
}

/* Middle zone — stats grid */
.wiz-side-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  padding: 16px 12px;
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 14px;
  position: relative;
  z-index: 1;
}
.wiz-stat {
  text-align: center;
}
.wiz-stat-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 22px;
  color: #fff;
  line-height: 1.1;
  letter-spacing: -0.01em;
}
.wiz-stat-lbl {
  font-size: 10.5px;
  color: rgba(255, 255, 255, 0.82);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-top: 4px;
  line-height: 1.2;
}

/* Bottom zone — testimonial quote card */
.wiz-side-quote {
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 14px;
  padding: 16px 16px;
  position: relative;
  z-index: 1;
}
.wiz-quote-stars {
  display: flex;
  gap: 2px;
  margin-bottom: 8px;
}
.wiz-quote-stars i {
  color: var(--gold-light);
  font-size: 13px;
}
.wiz-quote-text {
  font-size: 13px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.95);
  font-style: italic;
  margin-bottom: 12px;
}
.wiz-quote-author {
  display: flex;
  align-items: center;
  gap: 10px;
}
.wiz-quote-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gold-light), var(--brand-gold));
  display: grid;
  place-items: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 16px;
  color: #fff;
  flex-shrink: 0;
}
.wiz-quote-name {
  font-size: 13px;
  font-weight: 600;
  color: #fff;
}
.wiz-quote-meta {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.7);
  margin-top: 1px;
}


/* =========================================================
   RADIO PILLS — used in edit-profile for radio/checkbox groups
   ========================================================= */
.radio-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.radio-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  cursor: pointer;
  transition: all 0.2s ease;
  user-select: none;
}
.radio-pill:hover {
  border-color: var(--brand-red);
  color: var(--brand-red);
}
.radio-pill input[type="radio"],
.radio-pill input[type="checkbox"] {
  width: 14px;
  height: 14px;
  accent-color: var(--brand-red);
  cursor: pointer;
  margin: 0;
}
/* When checked — fill with brand color */
.radio-pill:has(input:checked) {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  border-color: var(--brand-red);
  color: #fff;
}
.radio-pill:has(input:checked) input {
  accent-color: #fff;
}


/* =========================================================
   EDIT PROFILE — Horizontal section nav (Variant B: Floating card)
   2px brand red border · red-tinted shadow
   ----
   `top` value set dynamically by JS to match the sticky site-header height.
   Falls back to safe defaults (84/70/64) in case JS hasn't run yet.
   ========================================================= */
/* Clean underline-tabs style — white bar with thin gray base line and a 3px
   red bottom indicator under the active pill. Same look on mobile + desktop. */
.ep-section-nav {
  background: #fff;
  border: none;
  border-bottom: 1px solid #eee;
  border-radius: 0;
  padding: 8px 16px 0;
  margin-bottom: 18px;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  white-space: nowrap;
  position: sticky;
  /* Initial fallback — JS overrides with `--header-h + 8px` once page loads. */
  top: 92px;
  z-index: 90;
  box-shadow: none;
  transition: box-shadow 0.25s ease;
}
.ep-section-nav::-webkit-scrollbar { display: none; height: 0; width: 0; }

.ep-section-nav.is-stuck {
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
}

.ep-section-nav-inner {
  display: flex;
  gap: 4px;
  padding: 0;
}

.ep-section-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 18px;
  background: transparent;
  border: none;
  border-radius: 10px 10px 0 0;
  border-bottom: 3px solid transparent;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--slate);
  cursor: pointer;
  transition: all 0.25s ease;
  flex-shrink: 0;
  text-decoration: none;
  white-space: nowrap;
  font-family: var(--font-body);
  scroll-snap-align: center;
}
.ep-section-pill i {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: rgba(214, 31, 38, 0.08);
  color: var(--brand-red);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  transition: all 0.25s;
}
.ep-section-pill:hover {
  color: var(--brand-red);
  background: rgba(214, 31, 38, 0.04);
}
.ep-section-pill.active {
  color: var(--brand-red);
  border-bottom-color: var(--brand-red);
  background: transparent;
  box-shadow: none;
}
.ep-section-pill.active i {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  transform: scale(1.05);
}

/* Mobile: full-bleed (break out of parent's 24px padding) and tighter sizing. */
@media (max-width: 768px) {
  .ep-section-nav {
    padding: 6px 12px 0;
    margin: 0 -24px 14px;
  }
  .ep-section-pill {
    padding: 12px 14px;
    font-size: 12.5px;
    gap: 7px;
  }
  .ep-section-pill i {
    width: 24px;
    height: 24px;
    font-size: 12px;
    border-radius: 6px;
  }
}

/* Section heading lands BELOW sticky header + nav when scrolled to via pill click.
   --ep-section-offset is set by JS dynamically to (header height + nav height + 16). */
.search-form-section {
  scroll-margin-top: var(--ep-section-offset, 170px);
}


/* =========================================================
   CHIP-SELECT — Multi-select with removable tag chips
   Used in partner-preferences.html (Caste, Mother Tongue, Birth Star,
   Education, Occupation, Location, etc.)
   ========================================================= */
.chip-select {
  position: relative;
}
.chip-input-area {
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  padding: 6px 8px;
  background: #fff;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  cursor: text;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.chip-input-area:focus-within {
  border-color: var(--brand-red);
  box-shadow: 0 0 0 3px rgba(214, 31, 38, 0.1);
}
.chips-list {
  display: contents;
}
.chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #f0f0f0;
  border: 1px solid #ddd;
  border-radius: 4px;
  padding: 2px 4px 2px 8px;
  font-size: 13px;
  color: var(--ink);
  line-height: 1.4;
}
.chip-label {
  white-space: nowrap;
}
.chip-remove {
  background: transparent;
  border: none;
  color: #999;
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
  padding: 0 4px;
  margin-left: 2px;
  border-radius: 50%;
  transition: color 0.15s ease, background 0.15s ease;
}
.chip-remove:hover {
  color: var(--brand-red);
  background: rgba(214, 31, 38, 0.08);
}
.chip-search {
  flex: 1;
  min-width: 80px;
  border: none;
  outline: none;
  padding: 4px 6px;
  font-size: 13px;
  color: var(--ink);
  background: transparent;
  font-family: var(--font-body);
}

.chip-options-panel {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.1);
  max-height: 260px;
  overflow-y: auto;
  z-index: 1000;
  padding: 6px;
}
.chip-options-panel[hidden] { display: none; }

.chip-option {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 13.5px;
  color: var(--ink);
  user-select: none;
  transition: background 0.15s ease;
}
.chip-option:hover {
  background: #fff5f6;
}
.chip-option input[type="checkbox"] {
  accent-color: var(--brand-red);
  width: 16px;
  height: 16px;
  cursor: pointer;
  margin: 0;
}
.chip-option.is-selected {
  background: rgba(214, 31, 38, 0.06);
  color: var(--brand-red);
  font-weight: 500;
}
.chip-option.is-hidden {
  display: none;
}


/* =========================================================
   DASHBOARD SIDEBAR — ACCORDION GROUPS (Variant B)
   Tinted BG + colored left-border accent per section
   ========================================================= */

/* Top-level items (Dashboard, Sign Out) — outside accordion */
.dash-nav-top {
  margin-bottom: 8px;
}
.dash-nav-signout {
  margin-top: 10px;
  padding-top: 12px !important;
  border-top: 1px solid var(--line);
  color: #B71C22 !important;
}
.dash-nav-signout i { color: #B71C22 !important; }
.dash-nav-signout:hover {
  background: rgba(183, 28, 34, 0.08) !important;
  color: #B71C22 !important;
}

/* Accordion group container */
.dash-nav-group {
  border-radius: 10px;
  margin-bottom: 8px;
  overflow: hidden;
  transition: background 0.25s ease;
}

/* Accordion head (clickable button) */
.dash-nav-head {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 11px 14px;
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-align: left;
  user-select: none;
  transition: background 0.2s ease;
}
.dash-nav-head .head-icon {
  font-size: 16px;
  width: 18px;
}
.dash-nav-head .chevron {
  margin-left: auto;
  font-size: 13px;
  transition: transform 0.3s ease;
}
.dash-nav-group.is-open .chevron {
  transform: rotate(180deg);
}

/* Body (collapsed by default) */
.dash-nav-body {
  display: none;
  padding: 4px 6px 8px;
}
.dash-nav-group.is-open .dash-nav-body {
  display: block;
  animation: groupSlideDown 0.25s ease;
}
@keyframes groupSlideDown {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}
.dash-nav-body .dash-nav-item {
  padding: 8px 12px;
  font-size: 12.5px;
}

/* ============ Per-section tints (Variant B) ============ */

/* Activities — brand red (with sub-groups) */
.dash-nav-group.group-activities {
  background: #FFF7F0;
  border-left: 3px solid var(--brand-red);
}
.dash-nav-group.group-activities .dash-nav-head,
.dash-nav-group.group-activities .head-icon {
  color: var(--brand-red);
}
.dash-nav-group.group-activities .dash-nav-head:hover {
  background: rgba(214, 31, 38, 0.06);
}

/* Sub-group inside Activities (By Me / By Others) */
.dash-nav-subgroup {
  margin: 4px 0;
  padding-left: 8px;
  border-left: 2px solid rgba(214, 31, 38, 0.2);
}
.dash-nav-subgroup-label {
  font-size: 10.5px;
  font-weight: 700;
  color: var(--brand-red);
  padding: 8px 8px 4px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.85;
}

/* Matches — warm gold (NEW) */
.dash-nav-group.group-matches {
  background: #FFF7EC;
  border-left: 3px solid var(--brand-gold);
}
.dash-nav-group.group-matches .dash-nav-head,
.dash-nav-group.group-matches .head-icon {
  color: var(--brand-gold-dark);
}
.dash-nav-group.group-matches .dash-nav-head:hover {
  background: rgba(198, 138, 58, 0.08);
}

/* Inbox — soft pink (separate from Activities) */
.dash-nav-group.group-inbox {
  background: #FFF0F3;
  border-left: 3px solid #E91E63;
}
.dash-nav-group.group-inbox .dash-nav-head,
.dash-nav-group.group-inbox .head-icon {
  color: #C2185B;
}
.dash-nav-group.group-inbox .dash-nav-head:hover {
  background: rgba(233, 30, 99, 0.06);
}

/* Support — teal/cyan (its own section like Inbox) */
.dash-nav-group.group-support {
  background: #E6F8F8;
  border-left: 3px solid #0E9594;
}
.dash-nav-group.group-support .dash-nav-head,
.dash-nav-group.group-support .head-icon {
  color: #086B6A;
}
.dash-nav-group.group-support .dash-nav-head:hover {
  background: rgba(14, 149, 148, 0.08);
}
.dash-nav-group.group-support .dash-nav-item:hover {
  background: rgba(14, 149, 148, 0.08);
  color: #086B6A;
}
.dash-nav-group.group-support .dash-nav-item.active {
  background: linear-gradient(135deg, #0E9594, #14B8B7);
  color: #fff;
}
.dash-nav-group.group-support .dash-nav-item.active i,
.dash-nav-group.group-support .dash-nav-item.active .count-badge {
  color: #fff;
}
.dash-nav-group.group-support .dash-nav-item.active .count-badge {
  background: rgba(255, 255, 255, 0.25);
}

/* Parent Login — warm amber/brown (between Profile blue and Settings purple) */
.dash-nav-group.group-parent {
  background: #FFF7E6;
  border-left: 3px solid #B45309;
}
.dash-nav-group.group-parent .dash-nav-head,
.dash-nav-group.group-parent .head-icon {
  color: #8B4513;
}
.dash-nav-group.group-parent .dash-nav-head:hover {
  background: rgba(180, 83, 9, 0.08);
}
.dash-nav-group.group-parent .dash-nav-item:hover {
  background: rgba(180, 83, 9, 0.08);
  color: #8B4513;
}
.dash-nav-group.group-parent .dash-nav-item.active {
  background: linear-gradient(135deg, #B45309, #D97706);
  color: #fff;
}
.dash-nav-group.group-parent .dash-nav-item.active i {
  color: #fff;
}

/* Profile — deep blue */
.dash-nav-group.group-profile {
  background: #F0F6FF;
  border-left: 3px solid var(--brand-blue);
}
.dash-nav-group.group-profile .dash-nav-head,
.dash-nav-group.group-profile .head-icon {
  color: var(--brand-blue);
}
.dash-nav-group.group-profile .dash-nav-head:hover {
  background: rgba(47, 74, 125, 0.06);
}

/* Account — purple */
.dash-nav-group.group-account {
  background: #F5EBFF;
  border-left: 3px solid #6A2F9F;
}
.dash-nav-group.group-account .dash-nav-head,
.dash-nav-group.group-account .head-icon {
  color: #6A2F9F;
}
.dash-nav-group.group-account .dash-nav-head:hover {
  background: rgba(106, 47, 159, 0.06);
}

/* Legacy alias — keep old group-activity class working if referenced anywhere */
.dash-nav-group.group-activity {
  background: #FFF7F0;
  border-left: 3px solid var(--brand-red);
}
.dash-nav-group.group-activity .dash-nav-head,
.dash-nav-group.group-activity .head-icon {
  color: var(--brand-red);
}


/* =========================================================
   DASHBOARD INNER PAGES — Toolbar with collapsible filter panel
   Used in activities + matches pages
   ========================================================= */

/* =========================================================
   PAGE HERO — Option B: Soft gradient hero card
   Used by all logged-in dashboard inside pages.
   Applies to both .page-head and .page-header-row wrappers.
   ========================================================= */
body.is-logged-in .page-head,
body.is-logged-in .page-header-row {
  background: linear-gradient(135deg, #FFF7F0, #FFFBF5);
  border: 1px solid #F3E0CB;
  border-radius: 14px;
  padding: 18px 22px;
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  position: relative;
  overflow: hidden;
  flex-wrap: wrap;
}
body.is-logged-in .page-head::before,
body.is-logged-in .page-header-row::before {
  content: '';
  position: absolute;
  right: -40px;
  top: -40px;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background: rgba(214, 31, 38, 0.06);
  pointer-events: none;
}
/* "Download my PDF profile" pill in the Edit Profile header. Sits above the
   header's decorative corner circle, which is why z-index is set. */
.ep-pdf-btn {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  white-space: nowrap;
  padding: 11px 20px;
  border-radius: 999px;
  border: 0;
  background: linear-gradient(100deg, #D6362A 0%, #D94F28 45%, #E0913A 100%);
  color: #fff;
  font-weight: 700;
  font-size: .92rem;
  line-height: 1;
  text-decoration: none;
  box-shadow: 0 4px 14px rgba(214, 54, 42, .28);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.ep-pdf-btn:hover,
.ep-pdf-btn:focus {
  color: #fff;
  text-decoration: none;
  filter: brightness(1.05);
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(214, 54, 42, .36);
}
.ep-pdf-btn:focus-visible {
  outline: 2px solid #7a1a15;
  outline-offset: 2px;
}
.ep-pdf-btn i {
  font-size: 1.05rem;
}
@media (max-width: 575.98px) {
  .ep-pdf-btn {
    width: 100%;
    justify-content: center;
  }
}

body.is-logged-in .page-head > div:first-child,
body.is-logged-in .page-header-row > div:first-child {
  flex: 1;
  min-width: 0;
  z-index: 1;
}
body.is-logged-in .page-head h1,
body.is-logged-in .page-head h2,
body.is-logged-in .page-header-row h2 {
  font-family: var(--font-display) !important;
  font-size: 24px !important;
  font-weight: 700;
  color: var(--ink) !important;
  margin: 0 !important;
  line-height: 1.2;
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}
/* The first <i> inside the title becomes the big gradient icon block. */
body.is-logged-in .page-head h1 > i:first-child,
body.is-logged-in .page-head h2 > i:first-child,
body.is-logged-in .page-header-row h2 > i:first-child {
  width: 54px;
  height: 54px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold)) !important;
  color: #fff !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  box-shadow: 0 6px 16px rgba(214, 31, 38, 0.3);
  flex-shrink: 0;
  margin: 0 !important;
}
body.is-logged-in .page-head p,
body.is-logged-in .page-header-row p {
  font-size: 13px !important;
  color: var(--slate) !important;
  margin: 3px 0 0 !important;
  line-height: 1.4;
}
/* Right-side action area gets bumped above the decorative circle. */
body.is-logged-in .page-head > *:not(:first-child),
body.is-logged-in .page-header-row > *:not(:first-child) {
  z-index: 1;
}

/* Mobile: stack the action below; shrink icon and title. */
@media (max-width: 600px) {
  body.is-logged-in .page-head,
  body.is-logged-in .page-header-row {
    padding: 14px 16px;
    gap: 10px;
  }
  body.is-logged-in .page-head > div:first-child,
  body.is-logged-in .page-header-row > div:first-child {
    gap: 12px;
    width: 100%;
  }
  body.is-logged-in .page-head h1,
  body.is-logged-in .page-head h2,
  body.is-logged-in .page-header-row h2 {
    font-size: 19px !important;
    gap: 12px;
  }
  body.is-logged-in .page-head h1 > i:first-child,
  body.is-logged-in .page-head h2 > i:first-child,
  body.is-logged-in .page-header-row h2 > i:first-child {
    width: 44px;
    height: 44px;
    font-size: 20px;
    border-radius: 12px;
  }
  body.is-logged-in .page-head p,
  body.is-logged-in .page-header-row p {
    font-size: 12px !important;
  }
  body.is-logged-in .page-head > *:not(:first-child),
  body.is-logged-in .page-header-row > *:not(:first-child) {
    width: 100%;
  }
  body.is-logged-in .page-head > *:not(:first-child) .btn-new-ticket,
  body.is-logged-in .page-head > *:not(:first-child) > .btn,
  body.is-logged-in .page-head > a.btn-new-ticket {
    width: 100%;
    max-width: none !important;
    justify-content: center;
  }
}

/* Fallback rule kept for any non-logged-in usage of .page-header-row */
.page-header-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 18px;
  gap: 12px;
  flex-wrap: wrap;
}
.page-header-row h2 i { color: var(--brand-red); margin-right: 4px; }

/* Toolbar */
.dash-toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: #fafafa;
  border: 1px solid var(--line);
  border-radius: 10px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.dash-toolbar-left {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.dash-toolbar-right {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 6px;
}

/* Toggle Filter button */
.btn-toggle-filter {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 14px;
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  font-family: var(--font-body);
  transition: all 0.2s;
}
.btn-toggle-filter:hover {
  box-shadow: 0 3px 10px rgba(214, 31, 38, 0.3);
  transform: translateY(-1px);
}
.btn-toggle-filter .filter-count {
  background: rgba(255, 255, 255, 0.25);
  padding: 1px 7px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
}
.btn-toggle-filter[aria-expanded="true"] {
  background: linear-gradient(135deg, var(--brand-gold), var(--brand-red));
  box-shadow: 0 4px 14px rgba(198, 138, 58, 0.35);
}
.btn-toggle-filter[aria-expanded="true"]::after {
  content: '';
}

.dash-result-count {
  font-size: 13px;
  color: var(--slate);
}

/* View toggle (grid/list) */
.btn-view {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 7px 10px;
  font-size: 14px;
  color: var(--slate);
  cursor: pointer;
  transition: all 0.2s;
}
.btn-view.active {
  background: var(--brand-red);
  color: #fff;
  border-color: var(--brand-red);
}
.btn-view:hover:not(.active) {
  color: var(--brand-red);
  border-color: var(--brand-red);
}

/* =========================================================
   FILTER PANEL — innovative premium design
   - Soft gradient + radial pattern background
   - Decorative header strip with funnel icon
   - Field rows on translucent cream cards
   - Icon badges next to every label
   ========================================================= */
.dash-filter-panel {
  background:
    radial-gradient(circle at 100% 0%, rgba(214, 31, 38, 0.06), transparent 50%),
    radial-gradient(circle at 0% 100%, rgba(198, 138, 58, 0.06), transparent 50%),
    linear-gradient(135deg, #FFFBF5 0%, #FFF7F0 100%);
  border: 1px solid #F3E0CB;
  border-radius: 16px;
  padding: 0;
  margin-bottom: 18px;
  box-shadow: 0 6px 22px rgba(214, 31, 38, 0.08);
  animation: filterSlideDown 0.3s ease;
  overflow: hidden;
  position: relative;
}
/* Decorative top accent strip */
.dash-filter-panel::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--brand-red), var(--brand-gold), var(--brand-red));
  background-size: 200% 100%;
  animation: filterShimmer 4s linear infinite;
}
@keyframes filterShimmer {
  0% { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}
.dash-filter-panel[hidden] { display: none; }
@keyframes filterSlideDown {
  from { opacity: 0; transform: translateY(-8px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Decorative header inside the panel — auto-injected by JS */
.dash-filter-panel .filter-panel-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px 14px;
  background: rgba(255, 255, 255, 0.55);
  border-bottom: 1px dashed rgba(214, 31, 38, 0.2);
  backdrop-filter: blur(4px);
}
.dash-filter-panel .filter-panel-head .fph-icon {
  width: 42px; height: 42px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 19px;
  box-shadow: 0 4px 12px rgba(214, 31, 38, 0.3);
  flex-shrink: 0;
}
.dash-filter-panel .filter-panel-head .fph-text { flex: 1; min-width: 0; }
.dash-filter-panel .filter-panel-head .fph-title {
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
}
.dash-filter-panel .filter-panel-head .fph-sub {
  font-size: 12px;
  color: var(--slate);
  margin-top: 2px;
}
.dash-filter-panel .filter-panel-head .fph-badge {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

/* Row.g-3 inside panel — translucent card containing the fields */
.dash-filter-panel .row.g-3 {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.55));
  border: 1px solid rgba(243, 224, 203, 0.6);
  border-radius: 14px;
  padding: 16px 14px 4px;
  margin: 16px 16px 0;
  position: relative;
  backdrop-filter: blur(2px);
}
.dash-filter-panel .row.g-3::before {
  content: '';
  position: absolute;
  left: 0; top: 14px; bottom: 14px;
  width: 3px;
  background: linear-gradient(180deg, var(--brand-red), var(--brand-gold));
  border-radius: 0 3px 3px 0;
}

/* Form labels — icon badge prefix */
.dash-filter-panel .form-label {
  color: var(--ink);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  margin-bottom: 5px;
}
.dash-filter-panel .form-label > i:first-child,
.dash-filter-panel .form-label > .field-icon {
  background: linear-gradient(135deg, rgba(214, 31, 38, 0.12), rgba(198, 138, 58, 0.12));
  color: var(--brand-red);
  width: 24px; height: 24px;
  border-radius: 7px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  flex-shrink: 0;
  transition: all 0.2s;
}
.dash-filter-panel .col-md-3:hover .form-label > i:first-child,
.dash-filter-panel .col-md-6:hover .form-label > i:first-child,
.dash-filter-panel .col-md-4:hover .form-label > i:first-child,
.dash-filter-panel .col-md-3:hover .form-label > .field-icon,
.dash-filter-panel .col-md-6:hover .form-label > .field-icon,
.dash-filter-panel .col-md-4:hover .form-label > .field-icon {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  transform: scale(1.05);
}

/* Form controls inside filter panel — softer styling */
.dash-filter-panel .form-select,
.dash-filter-panel .form-control {
  background: #fff;
  border: 1px solid #EFE2D0;
  font-size: 13px;
}
.dash-filter-panel .form-select:focus,
.dash-filter-panel .form-control:focus {
  border-color: var(--brand-red);
  box-shadow: 0 0 0 3px rgba(214, 31, 38, 0.08);
}

.dash-filter-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  margin: 16px 16px 0;
  padding: 14px 0 16px;
  border-top: 1px dashed rgba(214, 31, 38, 0.2);
}
@media (max-width: 576px) {
  .dash-filter-panel .row.g-3 { padding: 14px 12px 4px; margin: 12px 12px 0; }
  .dash-filter-actions { margin: 12px 12px 0; }
  .dash-filter-panel .filter-panel-head { padding: 14px 16px 12px; }
  .dash-filter-panel .filter-panel-head .fph-title { font-size: 15px; }
}

.dash-filter-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

/* Mobile-friendly tweaks */
@media (max-width: 768px) {
  .dash-toolbar {
    padding: 8px 10px;
    gap: 8px;
  }
  .dash-toolbar-left {
    flex: 1 1 100%;
  }
  .dash-toolbar-right {
    flex: 1 1 100%;
    margin-left: 0;
    justify-content: space-between;
  }
  .dash-result-count { font-size: 12px; }
  .btn-toggle-filter { padding: 7px 12px; font-size: 12.5px; }
}

/* Pagination */
.pagination .page-link {
  color: var(--brand-red);
  border: 1px solid var(--line);
  font-size: 13px;
  padding: 7px 12px;
}
.pagination .page-item.active .page-link {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  border-color: transparent;
  color: #fff;
}
.pagination .page-item.disabled .page-link {
  color: #ccc;
}


/* =========================================================
   INBOX / MAILBOX PAGES — tabs, cards, message boxes, actions
   ========================================================= */

/* Sidebar sub-items (Pending / Accepted / Declined under Inbox) — slight indent */
.dash-nav-sub {
  padding-left: 22px !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
}
.dash-nav-sub i {
  font-size: 12.5px !important;
}

/* Top tab strip: Pending / Accepted / Declined */
.ib-tabs {
  display: flex;
  gap: 6px;
  padding: 6px;
  background: #fafafa;
  border: 1px solid var(--line);
  border-radius: 999px;
  margin-bottom: 16px;
  flex-wrap: wrap;
  width: fit-content;
}
.ib-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  color: var(--slate);
  text-decoration: none;
  transition: all 0.2s ease;
  white-space: nowrap;
}
.ib-tab:hover {
  color: var(--brand-red);
  background: #fff;
}
.ib-tab.active {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  box-shadow: 0 3px 10px rgba(214, 31, 38, 0.25);
}
.ib-tab-count {
  background: rgba(0, 0, 0, 0.08);
  padding: 1px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
}
.ib-tab.active .ib-tab-count {
  background: rgba(255, 255, 255, 0.25);
}

/* Action toolbar (Select All / Delete All / Filter) */
.ib-action-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  background: #fafafa;
  border: 1px solid var(--line);
  border-radius: 10px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.ib-select-all {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  cursor: pointer;
  user-select: none;
}
.ib-select-all input {
  accent-color: var(--brand-red);
  width: 16px;
  height: 16px;
  cursor: pointer;
}
.ib-bulk-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border: none;
  border-radius: 8px;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  font-family: var(--font-body);
}
.ib-bulk-btn.delete {
  background: var(--brand-red);
  color: #fff;
}
.ib-bulk-btn.delete:hover {
  background: var(--brand-red-hover);
}
.ib-bulk-btn.filter {
  background: var(--brand-gold);
  color: #fff;
}
.ib-bulk-btn.filter:hover {
  background: var(--brand-gold-dark);
}

/* Inbox card container */
.ib-cards {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ib-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px;
  transition: box-shadow 0.2s ease;
}
.ib-card:hover {
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
}

/* Top section of card: checkbox + photo + info + action icons */
.ib-card-top {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.ib-check {
  width: 17px;
  height: 17px;
  accent-color: var(--brand-red);
  cursor: pointer;
  margin-top: 4px;
  flex-shrink: 0;
}
.ib-photo {
  width: 90px;
  height: 90px;
  flex-shrink: 0;
  border-radius: 10px;
  overflow: hidden;
  background: #f0f0f0;
}
.ib-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ib-info {
  flex: 1;
  min-width: 0;
}

.ib-name-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}
.ib-name {
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 700;
  color: var(--brand-red);
  text-decoration: none;
}
.ib-name:hover { text-decoration: underline; }
.ib-id {
  font-size: 12.5px;
  color: var(--slate);
}
.ib-premium-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  background: linear-gradient(135deg, var(--brand-gold), #E2A857);
  color: #fff;
  font-size: 10.5px;
  padding: 2px 8px;
  border-radius: 999px;
  font-weight: 600;
}

.ib-meta-row {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12.5px;
  color: var(--slate);
  margin-bottom: 4px;
  flex-wrap: wrap;
}
.ib-role {
  color: var(--ink);
  font-weight: 500;
}
.lc-status, .ib-meta-row .lc-status {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
}
.lc-status .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
}
.lc-status.online { color: #16A34A; }
.lc-status.online .dot { background: #16A34A; }
.lc-status.offline { color: #C62828; }
.lc-status.offline .dot { background: #C62828; }
.ib-chat-link {
  color: var(--brand-blue);
  text-decoration: none;
  font-size: 12.5px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.ib-chat-link:hover { color: var(--brand-red); }

.ib-details {
  font-size: 12.5px;
  color: var(--slate);
  line-height: 1.5;
}

/* Top action icons (eye toggle / delete) on the right */
.ib-card-actions-top {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}
.ib-icon-btn {
  width: 30px;
  height: 30px;
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 6px;
  color: var(--slate);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
  font-size: 14px;
}
.ib-icon-btn:hover {
  color: var(--brand-red);
  border-color: var(--brand-red);
}
.ib-icon-btn.delete:hover {
  color: var(--brand-red);
  background: rgba(214, 31, 38, 0.08);
}

/* Message box below */
.ib-message-box {
  margin-top: 12px;
  padding: 12px;
  background: #fafafa;
  border: 1px solid #eee;
  border-radius: 10px;
}
.ib-msg-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11.5px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 999px;
  margin-bottom: 8px;
}
.ib-msg-tag.interest {
  background: rgba(214, 31, 38, 0.1);
  color: var(--brand-red);
}
.ib-msg-tag.msg {
  background: rgba(47, 74, 125, 0.1);
  color: var(--brand-blue);
}
.ib-msg-text {
  margin: 6px 0 10px;
  font-size: 13px;
  color: var(--ink);
  line-height: 1.5;
}

/* Card action buttons */
.ib-card-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.ib-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 16px;
  border: none;
  border-radius: 7px;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  text-decoration: none;
  font-family: var(--font-body);
}
.ib-btn-yes {
  background: #16A34A;
  color: #fff;
}
.ib-btn-yes:hover {
  background: #15803D;
  transform: translateY(-1px);
}
.ib-btn-no {
  background: var(--brand-red);
  color: #fff;
}
.ib-btn-no:hover {
  background: var(--brand-red-hover);
  transform: translateY(-1px);
}
.ib-btn-chat {
  background: var(--brand-blue);
  color: #fff;
}
.ib-btn-chat:hover {
  background: var(--brand-blue-dark, #1f3257);
  color: #fff;
}
.ib-btn-undo {
  background: #fff;
  color: var(--ink);
  border: 1px solid var(--line);
}
.ib-btn-undo:hover {
  background: #f5f5f5;
  border-color: var(--brand-red);
  color: var(--brand-red);
}
.ib-btn-delete-perm {
  background: #C62828;
  color: #fff;
}
.ib-btn-delete-perm:hover { background: #8E1B1B; }

/* Status pill (for accepted/declined items) */
.ib-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
}
.ib-status-pill.accepted {
  background: rgba(22, 163, 74, 0.12);
  color: #16A34A;
}
.ib-status-pill.declined {
  background: rgba(214, 31, 38, 0.12);
  color: var(--brand-red);
}
.ib-status-pill.sent {
  background: rgba(198, 138, 58, 0.15);
  color: var(--brand-gold-dark);
}

/* Bottom Delete All */
.ib-bottom-actions {
  margin-top: 18px;
  display: flex;
  justify-content: flex-start;
}

/* Mobile tweaks */
@media (max-width: 768px) {
  .ib-card-top {
    flex-wrap: wrap;
  }
  .ib-photo {
    width: 70px;
    height: 70px;
  }
  .ib-name { font-size: 15px; }
  .ib-card-actions-top {
    margin-left: auto;
  }
  .ib-tabs {
    width: 100%;
    justify-content: center;
  }
  .ib-tab { font-size: 12px; padding: 7px 12px; }
  .ib-action-toolbar {
    padding: 8px 10px;
    gap: 8px;
  }
}


/* =========================================================
   SIDEBAR — Standalone Upgrade button (outside Settings group)
   ========================================================= */
.dash-nav-upgrade {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  background: linear-gradient(135deg, var(--brand-gold), #E2A857);
  color: #fff !important;
  font-weight: 600;
  border-radius: 10px;
  padding: 11px 14px !important;
  box-shadow: 0 4px 12px rgba(198, 138, 58, 0.25);
  transition: all 0.25s ease;
  position: relative;
  overflow: hidden;
}
.dash-nav-upgrade::before {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
  transition: left 0.6s ease;
}
.dash-nav-upgrade:hover::before { left: 100%; }
.dash-nav-upgrade i { font-size: 17px; color: #fff !important; }
.dash-nav-upgrade:hover {
  background: linear-gradient(135deg, var(--brand-gold-dark), var(--brand-gold));
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(198, 138, 58, 0.35);
  color: #fff !important;
}
.dash-nav-upgrade .upgrade-pill {
  margin-left: auto;
  background: rgba(255, 255, 255, 0.25);
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
  padding: 2px 9px;
  border-radius: 999px;
  letter-spacing: 0.04em;
}


/* =========================================================
   SETTINGS PAGES — MODERN DESIGN SYSTEM (v2)
   - Gradient card heads with floating icons
   - Icons on every field
   - Animated fade-in + hover effects
   ========================================================= */

/* Sidebar sub-items (Pending / Accepted / Declined under Inbox) */
.dash-nav-sub {
  padding-left: 22px !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
}
.dash-nav-sub i { font-size: 12.5px !important; }

/* Card shell */
.s-card {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
  border: 1px solid #eee;
  transition: box-shadow 0.3s ease;
  margin-bottom: 40px; /* breathing room between card and footer */
}
.s-card:hover { box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); }

/* Mobile: less margin since footer naturally has padding too */
@media (max-width: 768px) {
  .s-card { margin-bottom: 28px; }
}

/* Fade-in animation on page load */
.s-fade-in {
  animation: sFadeIn 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes sFadeIn {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Gradient card head */
.s-card-head {
  padding: 24px 28px;
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  position: relative;
  overflow: hidden;
}
.s-card-head::after {
  content: '';
  position: absolute;
  right: -30px; top: -30px;
  width: 160px; height: 160px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  animation: sFloat 8s ease-in-out infinite;
}
.s-card-head::before {
  content: '';
  position: absolute;
  right: 30px; bottom: -50px;
  width: 100px; height: 100px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  animation: sFloat 10s ease-in-out infinite reverse;
}
@keyframes sFloat {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(-8px, 8px); }
}
.s-card-head.blue { background: linear-gradient(135deg, var(--brand-blue), #4A6BB3); }
.s-card-head.gold { background: linear-gradient(135deg, var(--brand-gold), #E2A857); }
.s-card-head.warn { background: linear-gradient(135deg, var(--brand-gold), var(--brand-red)); }
.s-card-head.danger { background: linear-gradient(135deg, #B71C22, #C62828); }
.s-card-head-row {
  display: flex;
  align-items: center;
  gap: 16px;
  position: relative;
  z-index: 2;
}
.s-card-icon {
  width: 54px; height: 54px;
  background: rgba(255, 255, 255, 0.18);
  border: 1.5px solid rgba(255, 255, 255, 0.35);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  backdrop-filter: blur(8px);
  flex-shrink: 0;
  transition: transform 0.3s ease;
}
.s-card:hover .s-card-icon { transform: rotate(-6deg) scale(1.05); }
.s-card-title {
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
  color: #fff;
}
.s-card-subtitle {
  font-size: 13px;
  opacity: 0.9;
  margin-top: 2px;
}
.s-card-body { padding: 28px; }
@media (max-width: 576px) {
  .s-card-head { padding: 20px; }
  .s-card-body { padding: 20px; }
  .s-card-icon { width: 46px; height: 46px; font-size: 20px; }
  .s-card-title { font-size: 20px; }
}

/* Info banner */
.s-info-banner {
  background: linear-gradient(135deg, #FFF7F0, #FFF1E5);
  border-left: 4px solid var(--brand-gold);
  padding: 12px 16px;
  border-radius: 0 10px 10px 0;
  font-size: 13.5px;
  color: #6E4F2A;
  margin-bottom: 22px;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  line-height: 1.5;
}
.s-info-banner.warn {
  background: linear-gradient(135deg, #FFE4D6, #FCD2B5);
  border-left-color: var(--brand-red);
  color: #7A1D20;
}
.s-info-banner i {
  color: var(--brand-gold-dark);
  font-size: 18px;
  margin-top: 1px;
  flex-shrink: 0;
}
.s-info-banner.warn i { color: var(--brand-red); }

/* Modern field (icon on label, no oval prefix bubble) */
.field-modern { margin-bottom: 18px; }
.field-modern .field-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 6px;
}
.field-modern .field-label i {
  color: var(--brand-red);
  font-size: 14px;
}

.field-modern .field-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 12px;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
  padding: 0 16px;
}
.field-modern .field-input-wrap:hover { border-color: #C0C0C0; }
.field-modern .field-input-wrap:focus-within {
  border-color: var(--brand-red);
  box-shadow: 0 0 0 3px rgba(214, 31, 38, 0.1);
}
.field-modern .field-input-wrap.locked {
  background: #fafafa;
  border-style: dashed;
}
.field-modern .field-input-wrap input,
.field-modern .field-input-wrap select {
  flex: 1;
  border: none;
  outline: none;
  padding: 13px 0;
  font-size: 14px;
  background: transparent;
  color: var(--ink);
  font-family: var(--font-body);
  min-width: 0;
}
.field-modern .field-input-wrap input[readonly] { color: var(--slate); cursor: not-allowed; }
.field-modern .field-prefix-icon {
  color: var(--slate);
  font-size: 16px;
  margin-right: 10px;
  transition: color 0.25s;
  flex-shrink: 0;
}
.field-modern .field-input-wrap:focus-within .field-prefix-icon { color: var(--brand-red); }
.field-modern .field-suffix-action {
  background: none;
  border: none;
  color: var(--slate);
  cursor: pointer;
  padding: 4px 6px;
  border-radius: 6px;
  transition: all 0.2s;
}
.field-modern .field-suffix-action:hover {
  color: var(--brand-red);
  background: rgba(214, 31, 38, 0.06);
}
.field-modern .field-hint {
  font-size: 12px;
  color: var(--slate);
  margin-top: 6px;
  display: flex;
  align-items: center;
  gap: 4px;
}
.field-modern .field-hint i { color: var(--brand-gold-dark); }

/* Verified pill (Edit Email) */
.verified-pill {
  font-size: 11px;
  color: #16A34A;
  font-weight: 700;
  background: rgba(22, 163, 74, 0.1);
  padding: 3px 9px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}
.verified-pill.unverified {
  color: var(--warning, #f9a825);
  background: rgba(249, 168, 37, 0.14);
  border: 0;
  cursor: pointer;
  font-family: inherit;
}
.verified-pill.unverified:hover {
  background: rgba(249, 168, 37, 0.24);
}

/* Modern buttons */
.btn-modern {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: none;
  border-radius: 12px;
  padding: 11px 22px;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.25s ease;
  font-family: var(--font-body);
  position: relative;
  overflow: hidden;
}
.btn-modern::before {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
  transition: left 0.6s ease;
}
.btn-modern:hover::before { left: 100%; }
.btn-modern.primary {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  box-shadow: 0 4px 12px rgba(214, 31, 38, 0.25);
}
.btn-modern.primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(214, 31, 38, 0.35);
}
.btn-modern.ghost {
  background: #fff;
  color: var(--slate);
  border: 1.5px solid var(--line);
}
.btn-modern.ghost:hover {
  border-color: var(--brand-red);
  color: var(--brand-red);
  transform: translateY(-1px);
}
.btn-modern.danger {
  background: linear-gradient(135deg, #C62828, var(--brand-red));
  color: #fff;
  box-shadow: 0 4px 12px rgba(198, 40, 40, 0.25);
}
.btn-modern.danger:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(198, 40, 40, 0.4);
}
.btn-modern.warn {
  background: linear-gradient(135deg, var(--brand-gold), #E2A857);
  color: #fff;
  box-shadow: 0 4px 12px rgba(198, 138, 58, 0.25);
}
.btn-modern.warn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(198, 138, 58, 0.4);
}

/* Action row */
.action-row {
  display: flex;
  gap: 10px;
  margin-top: 22px;
  flex-wrap: wrap;
}
.action-row.center { justify-content: center; }

/* Password strength */
.pwd-strength {
  margin-top: 8px;
  height: 4px;
  background: #eee;
  border-radius: 999px;
  overflow: hidden;
}
.pwd-strength .bar {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #C62828, var(--brand-red), var(--brand-gold), #16A34A);
  border-radius: 999px;
  transition: width 0.3s ease;
}
.pwd-tips {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 8px;
  font-size: 11.5px;
  color: var(--slate);
}
.pwd-tip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: color 0.25s;
}
.pwd-tip.met { color: #16A34A; font-weight: 600; }
.pwd-tip i { font-size: 12px; }

/* Toggle group + rows */
.toggle-group {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  transition: box-shadow 0.25s;
}
.toggle-group:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04); }
.toggle-group + .toggle-group { margin-top: 16px; }
.toggle-group-head {
  padding: 14px 20px;
  background: linear-gradient(135deg, #fafafa, #fff);
  border-bottom: 1px solid #eee;
  display: flex;
  align-items: center;
  gap: 10px;
}
.toggle-group-icon {
  width: 36px; height: 36px;
  border-radius: 10px;
  background: rgba(214, 31, 38, 0.1);
  color: var(--brand-red);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
}
.toggle-group-icon.blue {
  background: rgba(47, 74, 125, 0.1);
  color: var(--brand-blue);
}
.toggle-group-icon.gold {
  background: rgba(198, 138, 58, 0.12);
  color: var(--brand-gold-dark);
}
.toggle-group-title {
  font-weight: 700;
  font-size: 14px;
  color: var(--ink);
}
.toggle-group-desc {
  font-size: 12px;
  color: var(--slate);
  margin-top: 2px;
}

.toggle-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  border-bottom: 1px solid #f5f5f5;
  gap: 14px;
  transition: background 0.2s;
}
.toggle-row:last-child { border-bottom: none; }
.toggle-row:hover { background: #fafafa; }
.toggle-row .tr-text { flex: 1; min-width: 0; }
.toggle-row .tr-title {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ink);
  display: flex;
  align-items: center;
  gap: 6px;
}
.toggle-row .tr-title i { color: var(--brand-gold-dark); font-size: 14px; }
.toggle-row .tr-sub {
  font-size: 12px;
  color: var(--slate);
  margin-top: 1px;
}

/* Toggle switch (smooth animation) */
.toggle-switch {
  position: relative;
  display: inline-block;
  width: 44px;
  height: 24px;
  flex-shrink: 0;
}
.toggle-switch input { opacity: 0; width: 0; height: 0; }
.toggle-switch .slider {
  position: absolute;
  cursor: pointer;
  top: 0; left: 0; right: 0; bottom: 0;
  background: #ccc;
  border-radius: 999px;
  transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.toggle-switch .slider::before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 3px;
  bottom: 3px;
  background: #fff;
  border-radius: 50%;
  transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}
.toggle-switch input:checked + .slider { background: #16A34A; }
.toggle-switch input:checked + .slider::before {
  transform: translateX(20px);
  background: #fff;
}

/* Choice cards (radio replaced) */
.choice-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-bottom: 12px;
}
.choice-card {
  background: #fff;
  border: 2px solid var(--line);
  border-radius: 14px;
  padding: 18px 20px;
  cursor: pointer;
  transition: all 0.25s ease;
  display: flex;
  gap: 14px;
  align-items: flex-start;
  position: relative;
  overflow: hidden;
}
.choice-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(214,31,38,0), rgba(198,138,58,0));
  transition: background 0.25s;
  pointer-events: none;
}
.choice-card:hover {
  border-color: var(--brand-red);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(214, 31, 38, 0.08);
}
.choice-card.selected {
  border-color: var(--brand-red);
  background: linear-gradient(135deg, #FFF7F0, #FFFBF5);
  box-shadow: 0 4px 12px rgba(214, 31, 38, 0.08);
}
.choice-card .cc-radio {
  width: 22px; height: 22px;
  border: 2px solid #ccc;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 2px;
  position: relative;
  transition: all 0.25s ease;
}
.choice-card.selected .cc-radio {
  border-color: var(--brand-red);
}
.choice-card.selected .cc-radio::after {
  content: '';
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background: var(--brand-red);
  animation: sPop 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes sPop {
  0% { transform: scale(0); }
  100% { transform: scale(1); }
}
.choice-card .cc-icon {
  width: 40px; height: 40px;
  border-radius: 10px;
  background: rgba(214, 31, 38, 0.08);
  color: var(--brand-red);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
  transition: all 0.25s ease;
}
.choice-card.selected .cc-icon {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  transform: scale(1.08);
}
.choice-card .cc-body { flex: 1; min-width: 0; }
.choice-card .cc-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 4px;
}
.choice-card .cc-desc {
  font-size: 12.5px;
  color: var(--slate);
  line-height: 1.5;
}
.choice-card .cc-recommended {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: linear-gradient(135deg, #16A34A, #22C55E);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 999px;
  margin-top: 8px;
  letter-spacing: 0.04em;
  box-shadow: 0 2px 6px rgba(22, 163, 74, 0.2);
}

/* Modern tabs (privacy page) */
.modern-tabs {
  display: flex;
  background: #f5f3ef;
  padding: 5px;
  border-radius: 14px;
  gap: 4px;
  margin-bottom: 22px;
}
.modern-tab {
  flex: 1;
  text-align: center;
  padding: 10px 16px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  color: var(--slate);
  cursor: pointer;
  transition: all 0.25s ease;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.modern-tab:hover { color: var(--brand-red); }
.modern-tab.active {
  background: #fff;
  color: var(--brand-red);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  transform: scale(1.02);
}

/* Privacy section accordion */
.priv-section {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  margin-bottom: 12px;
  overflow: hidden;
  transition: box-shadow 0.25s;
}
.priv-section:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04); }
.priv-section-head {
  padding: 16px 20px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 12px;
  user-select: none;
}
.priv-section-icon {
  width: 38px; height: 38px;
  border-radius: 10px;
  background: rgba(214, 31, 38, 0.08);
  color: var(--brand-red);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
}
.priv-section-head .ps-text { flex: 1; }
.priv-section-head .ps-title {
  font-weight: 700;
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.priv-section-head .ps-title i { color: var(--brand-red); font-size: 13px; }
.priv-section-head .ps-desc {
  font-size: 12px;
  color: var(--slate);
  margin-top: 1px;
}
.priv-section-head .ps-chev {
  transition: transform 0.3s ease;
  color: var(--slate);
}
.priv-section.is-open .ps-chev { transform: rotate(180deg); }
.priv-section-body {
  padding: 16px 20px 20px;
  border-top: 1px solid #f0f0f0;
  background: #fafafa;
  display: none;
  animation: sFadeIn 0.3s ease;
}
.priv-section.is-open .priv-section-body { display: block; }

/* Contact info card (inside Mobile Privacy) */
.contact-info-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 8px 18px;
  margin-bottom: 14px;
}
.contact-info-card .ci-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid #f5f5f5;
  font-size: 13px;
  gap: 10px;
  flex-wrap: wrap;
}
.contact-info-card .ci-row:last-child { border-bottom: none; }
.contact-info-card .ci-label {
  color: var(--slate);
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.contact-info-card .ci-label i { color: var(--brand-blue); }
.contact-info-card .ci-value {
  font-weight: 600;
  color: var(--ink);
  margin-left: 6px;
}
.btn-mini-edit {
  background: rgba(198, 138, 58, 0.12);
  border: 1px solid rgba(198, 138, 58, 0.3);
  color: var(--brand-gold-dark);
  border-radius: 8px;
  padding: 5px 12px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: all 0.2s;
}
.btn-mini-edit:hover {
  background: var(--brand-gold);
  color: #fff;
  transform: translateY(-1px);
}

/* Status card */
.status-card {
  background: linear-gradient(135deg, #FFF7F0, #FFFBF5);
  border: 1px solid #F3E0CB;
  border-radius: 14px;
  padding: 16px 20px;
  margin-bottom: 22px;
  display: flex;
  gap: 14px;
  align-items: center;
}
.status-card.success-status {
  background: linear-gradient(135deg, #F0FAF3, #ECFAEE);
  border-color: #C8E9CC;
}
.status-card .sc-icon {
  width: 48px; height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, #16A34A, #22C55E);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(22, 163, 74, 0.25);
}
.status-card .sc-title {
  font-weight: 700;
  color: var(--ink);
  font-size: 14px;
}
.status-card .sc-desc {
  font-size: 12.5px;
  color: var(--slate);
  margin-top: 2px;
}
.status-card .sc-desc i { color: var(--brand-gold-dark); }

/* Reason cards (delete) */
.reason-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 22px;
}
@media (max-width: 768px) { .reason-grid { grid-template-columns: 1fr; } }
.reason-card {
  background: #fff;
  border: 2px solid var(--line);
  border-radius: 14px;
  padding: 22px 16px;
  text-align: center;
  cursor: pointer;
  transition: all 0.25s ease;
  display: block;
}
.reason-card:hover {
  border-color: var(--brand-red);
  transform: translateY(-3px);
  box-shadow: 0 8px 18px rgba(214, 31, 38, 0.1);
}
.reason-card.selected {
  border-color: var(--brand-red);
  background: linear-gradient(135deg, #FFF7F0, #FFF1E5);
  box-shadow: 0 6px 16px rgba(214, 31, 38, 0.12);
}
.reason-card .rc-emoji {
  font-size: 36px;
  margin-bottom: 8px;
  display: block;
  transition: transform 0.3s;
}
.reason-card:hover .rc-emoji { transform: scale(1.15) rotate(-4deg); }
.reason-card .rc-title {
  font-weight: 600;
  color: var(--ink);
  font-size: 13.5px;
}
.reason-card .rc-sub {
  font-size: 11.5px;
  color: var(--slate);
  margin-top: 2px;
}

/* Source pills (delete page) */
.src-pill {
  background: #fff;
  border: 1.5px solid var(--line);
  color: var(--slate);
  padding: 8px 14px;
  border-radius: 999px;
  cursor: pointer;
  font-size: 12.5px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.2s;
}
.src-pill:hover {
  border-color: var(--brand-red);
  color: var(--brand-red);
}
.src-pill.selected {
  background: #fff;
  border-color: var(--brand-red);
  color: var(--brand-red);
}
.src-pill i { font-size: 13px; }

/* 2-column grid for form fields */
.form-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 768px) { .form-grid-2 { grid-template-columns: 1fr; } }

/* =========================================================
   CONFIRM MODAL — used by settings pages for OK/Cancel dialogs
   ========================================================= */
.cm-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(20, 24, 38, 0.6);
  z-index: 9998;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}
.cm-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}
.cm-dialog {
  background: #fff;
  border-radius: 16px;
  max-width: 460px;
  width: 100%;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
  overflow: hidden;
  transform: scale(0.92);
  transition: transform 0.2s ease;
}
.cm-backdrop.is-open .cm-dialog {
  transform: scale(1);
}
.cm-icon {
  display: flex;
  justify-content: center;
  padding: 22px 20px 0;
}
.cm-icon-circle {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 34px;
  color: #fff;
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  box-shadow: 0 8px 20px rgba(214, 31, 38, 0.25);
}
.cm-icon-circle.info { background: linear-gradient(135deg, var(--brand-blue), #4A6BB3); box-shadow: 0 8px 20px rgba(47, 74, 125, 0.25); }
.cm-icon-circle.danger { background: linear-gradient(135deg, #C62828, var(--brand-red)); box-shadow: 0 8px 20px rgba(198, 40, 40, 0.25); }
.cm-icon-circle.success { background: linear-gradient(135deg, #16A34A, #22C55E); box-shadow: 0 8px 20px rgba(22, 163, 74, 0.25); }
.cm-icon-circle.warn { background: linear-gradient(135deg, #F2B521, #FFCD3F); box-shadow: 0 8px 20px rgba(242, 181, 33, 0.3); }

.cm-body {
  padding: 18px 28px 20px;
  text-align: center;
}
.cm-title {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 8px;
}
.cm-message {
  font-size: 14px;
  color: var(--slate);
  line-height: 1.5;
}
.cm-actions {
  display: flex;
  gap: 10px;
  padding: 16px 24px 22px;
  justify-content: center;
  flex-wrap: wrap;
}
.cm-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: none;
  border-radius: 999px;
  padding: 10px 24px;
  font-size: 14px;
  font-weight: 600;
  font-family: var(--font-body);
  cursor: pointer;
  min-width: 110px;
  justify-content: center;
  transition: all 0.2s;
}
.cm-btn.cm-cancel {
  background: #fff;
  border: 1.5px solid var(--line);
  color: var(--slate);
}
.cm-btn.cm-cancel:hover {
  border-color: var(--slate);
  color: var(--ink);
}
.cm-btn.cm-ok {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
}
.cm-btn.cm-ok:hover {
  box-shadow: 0 6px 16px rgba(214, 31, 38, 0.3);
  transform: translateY(-1px);
}
.cm-btn.cm-ok.danger {
  background: linear-gradient(135deg, #C62828, var(--brand-red));
}
.cm-btn.cm-ok.success {
  background: linear-gradient(135deg, #16A34A, #22C55E);
}
.cm-btn.cm-ok.warn {
  background: linear-gradient(135deg, #F2B521, #FFCD3F);
  color: var(--ink);
}


/* =========================================================
   SEARCH PAGES (4 TABS) — innovative redesign
   Used by: search-regular.html, search-advanced.html,
            search-keyword.html, search-by-id.html
   ========================================================= */

/* ============ Layout grid (main + sidebar) ============ */
.sx-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 20px;
  padding: 18px 0 60px;
}
@media (max-width: 992px) {
  .sx-layout { grid-template-columns: 1fr; }
}
/* Grid items default to min-width:auto, letting wide children (e.g. .sx-tabs row)
   push the column wider than the track. Force them to honor the 1fr track. */
.sx-panel, .sx-sidebar-stack { min-width: 0; }
/* Pages with no "Saved Searches" sidebar (search_keyword, search_by_id) — let
   .sx-panel use the full width instead of leaving the 320px track empty. */
.sx-layout.no-sidebar { grid-template-columns: 1fr; }

/* ============ Main search panel ============ */
.sx-panel {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
  border: 1px solid #eee;
  /* DO NOT use overflow:hidden here — it clips dropdown panels like chip-options-panel.
     Instead, round corners on the top/bottom children directly. */
}
/* Round the top corners on the hero (first child) */
.sx-panel > .sx-hero {
  border-radius: 16px 16px 0 0;
}
/* Round the bottom corners on the action bar (last child) */
.sx-panel > .sx-action-bar {
  border-radius: 0 0 16px 16px;
}

/* ============ Gradient hero header ============ */
.sx-hero {
  padding: 26px 30px;
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  position: relative;
  overflow: hidden;
}
.sx-hero::after {
  content: '';
  position: absolute;
  right: -50px; top: -50px;
  width: 200px; height: 200px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  animation: sxFloat 9s ease-in-out infinite;
}
.sx-hero::before {
  content: '';
  position: absolute;
  right: 50px; bottom: -80px;
  width: 140px; height: 140px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  animation: sxFloat 11s ease-in-out infinite reverse;
}
@keyframes sxFloat {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(-10px, 10px); }
}
.sx-hero.gold { background: linear-gradient(135deg, var(--brand-gold), var(--brand-red)); }
.sx-hero.blue { background: linear-gradient(135deg, var(--brand-blue), #4A6BB3); }
.sx-hero.duo { background: linear-gradient(135deg, var(--brand-red), var(--brand-blue)); }
.sx-hero-content { position: relative; z-index: 2; }
.sx-hero-title {
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 4px;
  line-height: 1.2;
  color: #fff;
}
.sx-hero-subtitle { font-size: 13.5px; opacity: 0.95; color: #fff; }
@media (max-width: 576px) {
  .sx-hero { padding: 20px; }
  .sx-hero-title { font-size: 22px; }
  .sx-hero-subtitle { font-size: 12.5px; }
}

/* ============ Tab bar ============ */
.sx-tabs {
  display: flex;
  gap: 0;
  background: linear-gradient(180deg, #fafafa, #fff);
  border-bottom: 1px solid #eee;
  padding: 6px 6px 0;
  overflow-x: auto;
  scrollbar-width: none;
  min-width: 0;
}
@media (max-width: 768px) {
  .sx-tab { flex: 0 0 auto; padding: 12px 14px; font-size: 12.5px; }
  .sx-tab-icon { width: 22px; height: 22px; font-size: 12px; }
}
.sx-tabs::-webkit-scrollbar { display: none; }
.sx-tab {
  flex: 1;
  text-align: center;
  padding: 14px 18px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--slate);
  cursor: pointer;
  text-decoration: none;
  border-radius: 10px 10px 0 0;
  position: relative;
  transition: all 0.25s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  white-space: nowrap;
  border-bottom: 3px solid transparent;
  min-width: max-content;
}
.sx-tab:hover { color: var(--brand-red); background: rgba(214, 31, 38, 0.04); }
.sx-tab.active {
  color: var(--brand-red);
  background: #fff;
  border-bottom-color: var(--brand-red);
}
.sx-tab-icon {
  width: 28px; height: 28px;
  border-radius: 8px;
  background: rgba(214, 31, 38, 0.08);
  color: var(--brand-red);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  transition: all 0.25s;
}
.sx-tab.active .sx-tab-icon {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  transform: scale(1.05);
}

/* ============ Search content area ============ */
.sx-content { padding: 22px 26px 26px; }
@media (max-width: 576px) { .sx-content { padding: 16px; } }

/* ============ Collapsible field section ============ */
.sx-section {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  margin-bottom: 14px;
  /* No overflow:hidden — the chip-options-panel inside fields needs to escape this container */
  transition: box-shadow 0.25s, border-color 0.25s;
}
.sx-section:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04); }
.sx-section.is-open { border-color: rgba(214, 31, 38, 0.2); }
.sx-section-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  cursor: pointer;
  user-select: none;
  background: linear-gradient(135deg, #fafafa, #fff);
  border-bottom: 1px solid transparent;
  transition: border-color 0.25s;
  border-radius: 14px 14px 0 0;
}
.sx-section:not(.is-open) .sx-section-head {
  border-radius: 14px;
}
.sx-section.is-open .sx-section-head { border-bottom-color: #eee; }
.sx-section-icon {
  width: 38px; height: 38px;
  border-radius: 10px;
  background: rgba(214, 31, 38, 0.08);
  color: var(--brand-red);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
  transition: all 0.25s;
}
.sx-section.is-open .sx-section-icon {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  transform: scale(1.05);
}
.sx-section-icon.blue { background: rgba(47, 74, 125, 0.1); color: var(--brand-blue); }
.sx-section-icon.gold { background: rgba(198, 138, 58, 0.12); color: var(--brand-gold-dark); }
.sx-section.is-open .sx-section-icon.blue,
.sx-section.is-open .sx-section-icon.gold {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
}
.sx-section-text { flex: 1; min-width: 0; }
.sx-section-title {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
}
.sx-section-title .t-red { color: var(--brand-red); margin-left: 4px; }
.sx-section-sub { font-size: 12px; color: var(--slate); margin-top: 1px; }
.sx-section-count {
  background: rgba(22, 163, 74, 0.12);
  color: #16A34A;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 9px;
  border-radius: 999px;
  margin-right: 8px;
  flex-shrink: 0;
}
.sx-section-chev {
  color: var(--slate);
  transition: transform 0.3s ease;
  font-size: 13px;
  flex-shrink: 0;
}
.sx-section.is-open .sx-section-chev { transform: rotate(180deg); }
.sx-section-body {
  padding: 18px;
  display: none;
  background: #fafbfc;
  border-radius: 0 0 14px 14px;
  /* No transform/animation here — would create a stacking context and clip chip-options-panel.
     We open/close instantly via display toggle; the head rotation gives enough motion. */
}
.sx-section.is-open .sx-section-body {
  display: block;
}

/* On mobile, make age/height/income range rows lay out as From | To | From-To inline
   so the centered "To" label doesn't get its own full-width row. */
@media (max-width: 767px) {
  .sx-section-body .row.g-2 {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px;
    --bs-gutter-x: 0;
  }
  .sx-section-body .row.g-2 > [class*="col-md-5"] { flex: 1 1 0; max-width: none; width: auto; padding: 0; }
  .sx-section-body .row.g-2 > [class*="col-md-2"] {
    flex: 0 0 auto;
    width: auto;
    padding: 0 4px !important;
    padding-top: 0 !important;
    font-size: 12px;
  }
}

/* ============ Fields & labels ============ */
.sx-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.sx-row-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; }
@media (max-width: 768px) {
  .sx-row-2, .sx-row-3 { grid-template-columns: 1fr; }
}

.sx-field { margin-bottom: 12px; }
.sx-field-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 5px;
}
.sx-field-label i { color: var(--brand-red); font-size: 13px; }
.sx-field-label .req { color: var(--brand-red); font-weight: 700; margin-left: 1px; }

.sx-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 10px;
  transition: border-color 0.25s, box-shadow 0.25s;
  padding: 0 14px;
}
.sx-input-wrap:focus-within {
  border-color: var(--brand-red);
  box-shadow: 0 0 0 3px rgba(214, 31, 38, 0.08);
}
.sx-input-wrap input,
.sx-input-wrap select,
.sx-input-wrap textarea {
  flex: 1;
  border: none;
  outline: none;
  padding: 10px 0;
  font-size: 13.5px;
  background: transparent;
  color: var(--ink);
  font-family: var(--font-body);
  min-width: 0;
}
.sx-prefix-icon {
  color: var(--slate);
  font-size: 14px;
  margin-right: 8px;
  flex-shrink: 0;
  transition: color 0.25s;
}
.sx-input-wrap:focus-within .sx-prefix-icon { color: var(--brand-red); }

/* Range row */
.sx-range-row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 10px;
  align-items: center;
}
.sx-range-to {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--slate);
  background: #f5f3ef;
  padding: 5px 12px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* Radio pills (Marital, Have Children, etc) */
.sx-pill-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.sx-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fff;
  border: 1.5px solid var(--line);
  color: var(--slate);
  border-radius: 999px;
  padding: 7px 14px;
  font-size: 12.5px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
  user-select: none;
}
.sx-pill:hover {
  border-color: var(--brand-red);
  color: var(--brand-red);
}
.sx-pill.selected {
  background: #fff;
  border-color: var(--brand-red);
  color: var(--brand-red);
  font-weight: 600;
}
.sx-pill.selected::before {
  content: '\F26B';
  font-family: 'bootstrap-icons';
  font-size: 13px;
  color: var(--brand-red);
}
.sx-pill i { font-size: 13px; }
.sx-pill input[type="radio"],
.sx-pill input[type="checkbox"] { display: none; }

/* Preference pills (Show / Don't show) — solid filled when active */
.sx-pref {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fff;
  border: 1.5px solid var(--line);
  color: var(--ink);
  padding: 7px 14px;
  border-radius: 999px;
  cursor: pointer;
  font-size: 12.5px;
  font-weight: 500;
  transition: all 0.2s;
  user-select: none;
}
.sx-pref:hover { border-color: var(--brand-red); color: var(--brand-red); }
.sx-pref.selected {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  border-color: transparent;
  color: #fff;
}
.sx-pref.selected i { color: #fff !important; }
.sx-pref i { font-size: 13px; }
.sx-pref input[type="checkbox"] { display: none; }

/* Checkbox grid (Education, Interests, etc) */
.sx-check-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
@media (max-width: 768px) { .sx-check-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .sx-check-grid { grid-template-columns: 1fr; } }
.sx-check {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border-radius: 8px;
  background: #fff;
  border: 1.5px solid var(--line);
  cursor: pointer;
  font-size: 12.5px;
  color: var(--ink);
  transition: all 0.2s;
  user-select: none;
}
.sx-check:hover {
  border-color: var(--brand-red);
  background: #FFF7F0;
}
.sx-check.checked {
  background: #FFF7F0;
  border-color: var(--brand-red);
  color: var(--brand-red);
  font-weight: 600;
}
.sx-check-box {
  width: 16px; height: 16px;
  border: 1.5px solid #ccc;
  border-radius: 4px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}
.sx-check.checked .sx-check-box {
  background: var(--brand-red);
  border-color: var(--brand-red);
  color: #fff;
}
.sx-check.checked .sx-check-box::after {
  content: '\F26B';
  font-family: 'bootstrap-icons';
  font-size: 12px;
}
.sx-check input[type="checkbox"] { display: none; }

/* Chip multi-select (Caste, Mother Tongue) */
.sx-chip-multi {
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 10px;
  padding: 6px 8px;
  min-height: 44px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.sx-chip-multi:focus-within {
  border-color: var(--brand-red);
  box-shadow: 0 0 0 3px rgba(214, 31, 38, 0.08);
}
.sx-chip-multi input {
  flex: 1;
  min-width: 80px;
  border: none;
  outline: none;
  padding: 5px 8px;
  font-size: 12.5px;
  font-family: var(--font-body);
  background: transparent;
}
.sx-chip-tag {
  background: linear-gradient(135deg, #FFF7F0, #FFF1E5);
  border: 1px solid #F3D9C2;
  color: var(--brand-red);
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.sx-chip-tag .sx-chip-x {
  background: rgba(214, 31, 38, 0.15);
  color: var(--brand-red);
  width: 16px; height: 16px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  cursor: pointer;
  border: none;
  flex-shrink: 0;
}

/* Save search card */
.sx-save-card {
  background: linear-gradient(135deg, #FFF7F0, #FFFBF5);
  border: 1px solid #F3E0CB;
  border-radius: 14px;
  padding: 18px;
  margin-top: 14px;
}
.sx-save-row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 12px;
  align-items: end;
}
@media (max-width: 768px) {
  .sx-save-row { grid-template-columns: 1fr; }
}
.sx-save-row .sx-or {
  font-weight: 600;
  color: var(--slate);
  background: #fff;
  padding: 6px 14px;
  border-radius: 999px;
  align-self: center;
  font-size: 12px;
  text-align: center;
}

/* Action footer */
.sx-action-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 28px;
  background: linear-gradient(135deg, #fafafa, #fff);
  border-top: 1px solid #eee;
  gap: 14px;
  flex-wrap: wrap;
}
@media (max-width: 576px) {
  .sx-action-bar { padding: 14px 16px; flex-direction: column; align-items: stretch; }
  .sx-action-bar > * { width: 100%; justify-content: center; }
  .sx-action-bar .sx-action-buttons { display: flex; gap: 8px; }
  .sx-action-bar .sx-action-buttons > * {
    flex: 1 1 0;
    min-width: 0;
    padding: 11px 8px;
    font-size: 12.5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  /* Give the primary action a little more room than the ghost reset. */
  .sx-action-bar .sx-action-buttons > .sx-btn.primary { flex: 1.4 1 0; }
}
.sx-filter-summary {
  font-size: 12.5px;
  color: var(--slate);
  background: #f5f3ef;
  padding: 6px 14px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.sx-action-buttons { display: flex; gap: 10px; }

/* ============ Sidebar ============ */
.sx-sidebar-stack { display: flex; flex-direction: column; gap: 16px; }

.sx-side-card {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
}
.sx-side-head {
  padding: 18px 20px;
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  position: relative;
  overflow: hidden;
}
.sx-side-head.blue { background: linear-gradient(135deg, var(--brand-blue), #4A6BB3); }
.sx-side-head::after {
  content: '';
  position: absolute;
  right: -20px; top: -20px;
  width: 90px; height: 90px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
}
.sx-side-head-row {
  display: flex;
  align-items: center;
  gap: 12px;
  position: relative;
  z-index: 2;
}
.sx-side-icon {
  width: 40px; height: 40px;
  background: rgba(255, 255, 255, 0.18);
  border: 1.5px solid rgba(255, 255, 255, 0.35);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  backdrop-filter: blur(8px);
  flex-shrink: 0;
}
.sx-side-title {
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 700;
}
.sx-side-sub { font-size: 11.5px; opacity: 0.9; }
.sx-side-body { padding: 18px 20px; }

/* Saved search list */
.sx-saved-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid #eee;
  margin-bottom: 8px;
  background: #fff;
  transition: all 0.2s;
}
.sx-saved-item:hover {
  border-color: var(--brand-red);
  background: #FFF7F0;
}
.sx-saved-name { font-size: 13px; font-weight: 600; color: var(--ink); }
.sx-saved-meta { font-size: 11px; color: var(--slate); }
.sx-saved-actions { display: flex; gap: 4px; }
.sx-icon-btn {
  width: 26px; height: 26px;
  border: 1px solid #eee;
  background: #fff;
  border-radius: 6px;
  color: var(--slate);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  transition: all 0.2s;
}
.sx-icon-btn:hover {
  color: var(--brand-red);
  border-color: var(--brand-red);
}

/* Tip card */
.sx-tip-card {
  background: linear-gradient(135deg, #F0F6FF, #E8F0FF);
  border: 1px solid #DCE7FA;
  border-radius: 14px;
  padding: 16px;
  display: flex;
  gap: 10px;
  align-items: flex-start;
}
.sx-tip-card i {
  color: var(--brand-blue);
  font-size: 18px;
  margin-top: 1px;
  flex-shrink: 0;
}
.sx-tip-text {
  font-size: 12.5px;
  color: var(--ink);
  line-height: 1.5;
}

/* Recently viewed IDs */
.sx-recent-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}
.sx-recent-chip {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 8px;
  padding: 6px 12px;
  font-size: 11.5px;
  color: var(--ink);
  cursor: pointer;
  transition: all 0.2s;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.sx-recent-chip:hover {
  border-color: var(--brand-red);
  color: var(--brand-red);
}
.sx-recent-chip i { color: var(--slate); font-size: 12px; }
.sx-recent-chip:hover i { color: var(--brand-red); }

/* ============ KEYWORD SEARCH big input ============ */
.sx-keyword-hero {
  background: linear-gradient(135deg, #FFF7F0, #FFFBF5);
  border: 1.5px dashed #F3D9C2;
  border-radius: 14px;
  padding: 28px;
  text-align: center;
  margin-bottom: 18px;
}
.sx-keyword-icon {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  margin: 0 auto 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  box-shadow: 0 8px 22px rgba(214, 31, 38, 0.2);
}
.sx-keyword-hero h3 {
  font-family: var(--font-display);
  font-size: 24px;
  color: var(--ink);
  margin-bottom: 6px;
}
.sx-keyword-hero p {
  font-size: 13px;
  color: var(--slate);
  margin-bottom: 18px;
}
.sx-keyword-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border: 2px solid var(--line);
  border-radius: 999px;
  padding: 6px 6px 6px 22px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
  max-width: 600px;
  margin: 0 auto;
  transition: all 0.25s;
}
.sx-keyword-bar:focus-within {
  border-color: var(--brand-red);
  box-shadow: 0 8px 24px rgba(214, 31, 38, 0.15);
}
.sx-keyword-bar > i { color: var(--slate); font-size: 18px; }
.sx-keyword-bar input {
  flex: 1;
  border: none;
  outline: none;
  padding: 12px 8px;
  font-size: 14px;
  font-family: var(--font-body);
  background: transparent;
  min-width: 0;
}
.sx-keyword-bar button {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  border: none;
  border-radius: 999px;
  padding: 11px 22px;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.25s;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.sx-keyword-bar button:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(214, 31, 38, 0.3);
}
.sx-keyword-photo-check {
  background: transparent;
  border: none;
  justify-content: center;
  margin-top: 12px;
  color: var(--slate);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  cursor: pointer;
}
.sx-keyword-photo-check .sx-check-box {
  background: var(--brand-red);
  border-color: var(--brand-red);
  color: #fff;
}
.sx-keyword-photo-check .sx-check-box::after {
  content: '\F26B';
  font-family: 'bootstrap-icons';
  font-size: 12px;
}
.sx-keyword-examples {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-top: 14px;
}
.sx-keyword-example {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 999px;
  padding: 5px 12px;
  font-size: 11.5px;
  color: var(--slate);
  cursor: pointer;
  transition: all 0.2s;
}
.sx-keyword-example:hover {
  border-color: var(--brand-red);
  color: var(--brand-red);
}
.sx-keyword-example .label {
  color: var(--brand-gold-dark);
  font-weight: 600;
}

/* ============ PROFILE ID big tile ============ */
.sx-pid-hero {
  text-align: center;
  padding: 50px 20px 40px;
}
.sx-pid-circle {
  width: 90px; height: 90px;
  margin: 0 auto 20px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 40px;
  box-shadow: 0 10px 28px rgba(214, 31, 38, 0.25);
  position: relative;
}
.sx-pid-circle::after {
  content: '';
  position: absolute;
  inset: -10px;
  border: 2px dashed rgba(214, 31, 38, 0.3);
  border-radius: 50%;
  animation: sxSpin 12s linear infinite;
}
@keyframes sxSpin { to { transform: rotate(360deg); } }
.sx-pid-hero h2 {
  font-family: var(--font-display);
  font-size: 28px;
  color: var(--ink);
  margin-bottom: 6px;
}
.sx-pid-hero p {
  font-size: 13.5px;
  color: var(--slate);
  margin-bottom: 24px;
}
.sx-pid-row {
  display: flex;
  gap: 10px;
  max-width: 480px;
  margin: 0 auto;
}
.sx-pid-row .sx-input-wrap {
  flex: 1;
  padding: 0 18px;
}
@media (max-width: 480px) {
  .sx-pid-row { flex-direction: column; }
}

/* btn-modern shorthand reused from settings if missing — re-declare here for safety */
.sx-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: none;
  border-radius: 12px;
  padding: 11px 22px;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.25s;
  font-family: var(--font-body);
  text-decoration: none;
  white-space: nowrap;
}
.sx-btn.primary {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  box-shadow: 0 4px 12px rgba(214, 31, 38, 0.25);
}
.sx-btn.primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(214, 31, 38, 0.35);
  color: #fff;
}
.sx-btn.ghost {
  background: #fff;
  color: var(--slate);
  border: 1.5px solid var(--line);
}
.sx-btn.ghost:hover { border-color: var(--brand-red); color: var(--brand-red); }
.sx-btn.lg { padding: 14px 32px; font-size: 14.5px; }
.sx-btn.full { width: 100%; justify-content: center; }


/* =========================================================
   HEADER — Search dropdown menu
   ========================================================= */
.navbar .dropdown-menu {
  border: 1px solid #eee;
  border-radius: 12px;
  padding: 6px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  margin-top: 8px;
}
.navbar .dropdown-item {
  border-radius: 8px;
  padding: 9px 14px;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--ink);
  display: flex;
  align-items: center;
  gap: 8px;
  transition: all 0.2s;
}
.navbar .dropdown-item i {
  color: var(--brand-red);
  font-size: 15px;
}
.navbar .dropdown-item:hover {
  background: #FFF7F0;
  color: var(--brand-red);
}

/* =========================================================
   DRAWER (mobile menu) — collapsible Search Profiles section
   ========================================================= */
.drawer-collapsible { display: block; }
.drawer-collapse-head {
  background: none;
  border: none;
  width: 100%;
  text-align: left;
  font-family: var(--font-body);
  cursor: pointer;
  display: flex;
  align-items: center;
}
.drawer-collapse-head .drawer-chev {
  transition: transform 0.25s;
  font-size: 12px;
}
.drawer-collapsible.is-open .drawer-chev { transform: rotate(180deg); }
.drawer-collapse-body {
  display: none;
  padding-left: 14px;
  border-left: 2px solid rgba(214, 31, 38, 0.15);
  margin-left: 12px;
  margin-top: 2px;
}
.drawer-collapsible.is-open .drawer-collapse-body { display: block; }
.drawer-sub {
  font-size: 13px !important;
  font-weight: 500 !important;
  padding: 8px 10px !important;
}
.drawer-sub i { font-size: 13px !important; }


/* =========================================================
   HEADER — Logged-in state (Notifications, Tickets, User menu, Sign Out)
   ========================================================= */

/* Icon button (notifications, tickets) */
.icon-action-btn {
  width: 38px; height: 38px;
  border: 1px solid #eee;
  background: #fff;
  border-radius: 10px;
  color: var(--slate);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 17px;
  position: relative;
  transition: all 0.2s;
}
.icon-action-btn:hover {
  color: var(--brand-red);
  border-color: var(--brand-red);
  background: #FFF7F0;
}
.icon-action-btn .icon-count {
  position: absolute;
  top: -4px; right: -4px;
  background: var(--brand-red);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 999px;
  border: 2px solid #fff;
  min-width: 18px;
  line-height: 1;
  text-align: center;
}

/* User avatar menu (logged-in) */
.user-menu-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1px solid #eee;
  border-radius: 999px;
  padding: 4px 12px 4px 4px;
  cursor: pointer;
  transition: all 0.2s;
  color: var(--ink);
  text-decoration: none;
}
.user-menu-btn:hover {
  border-color: var(--brand-red);
  background: #FFF7F0;
  color: var(--ink);
}
.user-menu-btn .user-avatar {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px;
  font-weight: 700;
}
.user-menu-btn .user-name {
  font-size: 13px;
  font-weight: 600;
}
.user-menu-btn i { font-size: 12px; color: var(--slate); }

/* Sign Out button */
.btn-signout-header {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  background: #fff;
  border: 1.5px solid var(--brand-red);
  color: var(--brand-red);
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  text-decoration: none;
}
.btn-signout-header:hover {
  background: var(--brand-red);
  color: #fff;
}

/* Wrap for dropdown panel positioning */
.header-action-wrap {
  position: relative;
  display: inline-block;
}

/* =========================================================
   DROPDOWN PANELS (notifications + tickets)
   ========================================================= */
.dropdown-panel {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  width: 380px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.15);
  border: 1px solid #eee;
  overflow: hidden;
  z-index: 1100;
  display: none;
  animation: ddOpen 0.2s ease;
}
@keyframes ddOpen {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}
.dropdown-panel.is-open { display: block; }
@media (max-width: 480px) {
  .dropdown-panel {
    width: calc(100vw - 32px);
    right: auto;
    left: 50%;
    transform: translateX(-50%);
  }
  .dropdown-panel.is-open { transform: translateX(-50%); }
}

.dp-head {
  padding: 16px 18px;
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  position: relative;
  overflow: hidden;
}
.dp-head::after {
  content: '';
  position: absolute;
  right: -20px; top: -20px;
  width: 90px; height: 90px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
}
.dp-head.blue { background: linear-gradient(135deg, var(--brand-blue), #4A6BB3); }
.dp-head-row {
  display: flex;
  align-items: center;
  gap: 10px;
  position: relative;
  z-index: 2;
}
.dp-icon {
  width: 36px; height: 36px;
  background: rgba(255, 255, 255, 0.18);
  border: 1.5px solid rgba(255, 255, 255, 0.35);
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px;
  backdrop-filter: blur(8px);
}
.dp-title {
  flex: 1;
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 700;
}
.dp-title small {
  font-family: var(--font-body);
  font-size: 11px;
  opacity: 0.9;
  font-weight: 500;
  margin-left: 4px;
}
.dp-action-btn {
  background: rgba(255, 255, 255, 0.2);
  border: none;
  color: #fff;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 3px;
}
.dp-action-btn:hover { background: rgba(255, 255, 255, 0.3); }

.dp-list {
  max-height: 420px;
  overflow-y: auto;
}
.dp-item {
  display: flex;
  gap: 10px;
  padding: 14px 18px;
  border-bottom: 1px solid #f0f0f0;
  cursor: pointer;
  transition: background 0.15s;
  align-items: flex-start;
  text-decoration: none;
  color: inherit;
}
.dp-item:hover { background: #FFF7F0; color: inherit; }
.dp-item:last-child { border-bottom: none; }
.dp-item.unread { background: #FFF7F0; }
.dp-item-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 5px;
}
.dp-item.unread .dp-item-dot {
  background: var(--brand-red);
}
.dp-item-icon {
  width: 38px; height: 38px;
  border-radius: 10px;
  background: rgba(214, 31, 38, 0.1);
  color: var(--brand-red);
  display: flex; align-items: center; justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
}
.dp-item-icon.gold { background: rgba(198, 138, 58, 0.12); color: var(--brand-gold-dark); }
.dp-item-icon.blue { background: rgba(47, 74, 125, 0.1); color: var(--brand-blue); }
.dp-item-icon.green { background: rgba(22, 163, 74, 0.1); color: #16A34A; }
.dp-item-icon.pink { background: rgba(233, 30, 99, 0.1); color: #E91E63; }
.dp-item-body { flex: 1; min-width: 0; }
.dp-item-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 2px;
}
.dp-item-text {
  font-size: 12px;
  color: var(--slate);
  line-height: 1.4;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.dp-item-time {
  font-size: 11px;
  color: #999;
  margin-top: 4px;
  display: flex;
  align-items: center;
  gap: 4px;
}
.dp-item-time i { font-size: 10px; }

.dp-empty {
  padding: 36px 18px;
  text-align: center;
  color: var(--slate);
}
.dp-empty i { font-size: 36px; color: #ddd; }
.dp-empty p { margin-top: 10px; font-size: 13px; }

.dp-footer {
  padding: 14px 18px 22px;
  background: #fafafa;
  border-top: 1px solid #eee;
  display: flex;
  gap: 8px;
}
/* Mobile: keep the same generous bottom gap so the button doesn't hug the edge */
@media (max-width: 575.98px) {
  .dp-footer { padding: 12px 14px 20px; }
}
.dp-footer a, .dp-footer button {
  flex: 1;
  text-align: center;
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 12.5px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s;
  border: none;
  cursor: pointer;
}
.dp-footer .primary {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
}
.dp-footer .primary:hover {
  box-shadow: 0 4px 12px rgba(214, 31, 38, 0.3);
  transform: translateY(-1px);
  color: #fff;
}
.dp-footer .ghost {
  background: #fff;
  border: 1px solid #eee;
  color: var(--slate);
}
.dp-footer .ghost:hover {
  border-color: var(--brand-red);
  color: var(--brand-red);
}

/* Ticket status badges (used in dropdown + page) */
.ticket-status {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10.5px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 999px;
  margin-top: 4px;
  letter-spacing: 0.02em;
}
/* Ticket status badges — NEW status set */
.ticket-status.open       { background: rgba(214, 31, 38, 0.12); color: var(--brand-red); }
.ticket-status.in-progress{ background: rgba(47, 74, 125, 0.12); color: var(--brand-blue); }
.ticket-status.escalation { background: rgba(255, 152, 0, 0.15); color: #C76A00; }
.ticket-status.resolution { background: rgba(22, 163, 74, 0.12); color: #16A34A; }
.ticket-status.closed     { background: rgba(102, 102, 102, 0.12); color: var(--slate); }
/* Legacy aliases (kept for compatibility — pending → open, replied → in-progress, resolved → resolution) */
.ticket-status.pending    { background: rgba(214, 31, 38, 0.12); color: var(--brand-red); }
.ticket-status.replied    { background: rgba(47, 74, 125, 0.12); color: var(--brand-blue); }
.ticket-status.resolved   { background: rgba(22, 163, 74, 0.12); color: #16A34A; }

/* Card left border colors — match status */
.ticket-card.open       { border-left-color: var(--brand-red); }
.ticket-card.in-progress{ border-left-color: var(--brand-blue); }
.ticket-card.escalation { border-left-color: #FF9800; }
.ticket-card.resolution { border-left-color: #16A34A; }
.ticket-card.closed     { border-left-color: var(--slate); }
/* Legacy alias card borders */
.ticket-card.pending  { border-left-color: var(--brand-red); }
.ticket-card.replied  { border-left-color: var(--brand-blue); }
.ticket-card.resolved { border-left-color: #16A34A; }

/* =========================================================
   TICKETS PAGE
   ========================================================= */
.tickets-layout {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 18px;
  background: #fff;
  border-radius: 16px;
  border: 1px solid #eee;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
  margin-bottom: 40px;
}
@media (max-width: 768px) {
  .tickets-layout { grid-template-columns: 1fr; }
}
/* Grid items default to min-width:auto, letting the horizontal status-filter
   nav (.ep-section-nav with 6+ pills) push the main column past viewport. */
.tickets-layout > * { min-width: 0; }

.tickets-filter-aside {
  background: linear-gradient(180deg, #fafafa, #fff);
  border-right: 1px solid #eee;
  padding: 18px;
  border-radius: 16px 0 0 16px;
}
@media (max-width: 768px) {
  .tickets-filter-aside { border-radius: 16px 16px 0 0; border-right: none; border-bottom: 1px solid #eee; }
}
.tickets-filter-aside h6 {
  font-size: 11px;
  font-weight: 700;
  color: var(--slate);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 10px;
  margin-top: 14px;
}
.tickets-filter-aside h6:first-child { margin-top: 0; }
.tf-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: 8px;
  color: var(--ink);
  text-decoration: none;
  font-size: 13px;
  font-weight: 500;
  transition: all 0.2s;
  margin-bottom: 3px;
}
.tf-link:hover { background: #FFF7F0; color: var(--brand-red); }
.tf-link.active {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
}
.tf-link .tf-count {
  margin-left: auto;
  background: rgba(0, 0, 0, 0.05);
  padding: 1px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
}
.tf-link.active .tf-count { background: rgba(255, 255, 255, 0.25); }
.tf-link i { font-size: 14px; color: var(--brand-red); }
.tf-link.active i { color: #fff; }

.btn-new-ticket {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px;
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  border: none;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  width: 100%;
  margin-top: 12px;
  box-shadow: 0 4px 12px rgba(214, 31, 38, 0.25);
  transition: all 0.2s;
  text-decoration: none;
}
.btn-new-ticket:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(214, 31, 38, 0.35);
  color: #fff;
}

.tickets-main { padding: 24px; }
.tickets-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 18px;
  flex-wrap: wrap;
  gap: 12px;
}
.tickets-header h3 {
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--ink);
  margin: 0;
}
.tickets-header h3 small {
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--slate);
  font-weight: normal;
  margin-left: 6px;
}

/* Ticket card */
.ticket-card {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 12px;
  cursor: pointer;
  transition: all 0.2s;
  border-left: 4px solid #eee;
  text-decoration: none;
  color: inherit;
  display: block;
}
.ticket-card:hover {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
  transform: translateY(-1px);
  color: inherit;
}
.ticket-card.pending { border-left-color: var(--brand-gold); }
.ticket-card.replied { border-left-color: var(--brand-blue); }
.ticket-card.resolved { border-left-color: #16A34A; }
.ticket-card.closed { border-left-color: var(--slate); }
.ticket-card-top {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  flex-wrap: wrap;
}
.ticket-meta { flex: 1; min-width: 0; }
.ticket-id {
  font-size: 11px;
  color: var(--slate);
  font-weight: 600;
  letter-spacing: 0.04em;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.ticket-subject {
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  margin: 4px 0;
}
.ticket-preview {
  font-size: 12.5px;
  color: var(--slate);
  line-height: 1.5;
  margin-bottom: 8px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.ticket-card-bottom {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
  font-size: 11.5px;
  color: var(--slate);
}
.ticket-card-bottom span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.ticket-card-bottom i { color: var(--brand-gold-dark); }

/* Ticket Detail */
.ticket-detail-shell {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 40px;
}
.td-head {
  padding: 22px 24px;
  background: linear-gradient(135deg, #fafafa, #fff);
  border-bottom: 1px solid #eee;
  display: flex;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}
.td-subject {
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--ink);
  margin-bottom: 6px;
}
.td-meta {
  display: flex;
  gap: 12px;
  font-size: 12px;
  color: var(--slate);
  flex-wrap: wrap;
}
.td-meta span { display: inline-flex; align-items: center; gap: 4px; }
.td-thread {
  padding: 22px 24px;
}
.td-msg {
  display: flex;
  gap: 12px;
  margin-bottom: 22px;
  align-items: flex-start;
}
.td-msg.from-admin { flex-direction: row-reverse; }
.td-avatar {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: #1F3A6E;
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px;
  font-weight: 700;
  flex-shrink: 0;
}
.td-msg.from-admin .td-avatar {
  background: var(--grad-luxury, linear-gradient(135deg, #D61F26, #C68A3A));
}
.td-msg-body {
  display: flex;
  flex-direction: column;
  max-width: 75%;
}
.td-msg.from-admin .td-msg-body { align-items: flex-end; }
.td-msg-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.td-msg.from-admin .td-msg-meta { flex-direction: row-reverse; }
.td-msg-name {
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
}
.td-msg-time {
  font-size: 12px;
  color: var(--slate);
}
.td-bubble {
  background: #fff;
  border: 1px solid var(--line, #e5e5e5);
  border-radius: 14px 14px 14px 4px;
  padding: 12px 16px;
}
.td-msg.from-admin .td-bubble {
  background: var(--grad-luxury, linear-gradient(135deg, #D61F26, #C68A3A));
  border-color: transparent;
  border-radius: 14px 14px 4px 14px;
}
.td-bubble-text {
  font-size: 13.5px;
  color: var(--ink);
  line-height: 1.5;
  white-space: pre-wrap;
}
.td-msg.from-admin .td-bubble-text { color: #fff; }

.td-composer {
  padding: 18px 24px;
  border-top: 1px solid #eee;
  background: #fafafa;
}
.td-composer textarea {
  width: 100%;
  border: 1.5px solid var(--line);
  border-radius: 12px;
  padding: 12px 16px;
  font-size: 13.5px;
  font-family: var(--font-body);
  resize: vertical;
  min-height: 70px;
  background: #fff;
}
.td-composer textarea:focus {
  outline: none;
  border-color: var(--brand-red);
  box-shadow: 0 0 0 3px rgba(214, 31, 38, 0.08);
}
.td-composer-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 10px;
  flex-wrap: wrap;
  gap: 10px;
}
.td-attach-btn {
  background: #fff;
  border: 1px solid #eee;
  color: var(--slate);
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 12.5px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-body);
}
.td-attach-btn:hover { color: var(--brand-red); border-color: var(--brand-red); }
.td-send-btn {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  border: none;
  padding: 10px 20px;
  border-radius: 10px;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.2s;
  font-family: var(--font-body);
}
.td-send-btn:hover {
  box-shadow: 0 4px 12px rgba(214, 31, 38, 0.3);
  transform: translateY(-1px);
}

/* New Ticket form */
.new-ticket-form {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 16px;
  overflow: hidden;
  max-width: 720px;
  margin: 0 auto 40px;
}
.ntf-head {
  padding: 24px 28px;
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  position: relative;
  overflow: hidden;
}
.ntf-head::after {
  content: '';
  position: absolute;
  right: -30px; top: -30px;
  width: 140px; height: 140px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
}
.ntf-head-row {
  display: flex;
  align-items: center;
  gap: 14px;
  position: relative;
  z-index: 2;
}
.ntf-icon {
  width: 52px; height: 52px;
  background: rgba(255, 255, 255, 0.18);
  border: 1.5px solid rgba(255, 255, 255, 0.35);
  border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px;
  backdrop-filter: blur(8px);
}
.ntf-title {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 700;
}
.ntf-sub {
  font-size: 13px;
  opacity: 0.95;
  margin-top: 2px;
}
.ntf-body { padding: 26px 28px; }
.ntf-field { margin-bottom: 16px; }
.ntf-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 6px;
}
.ntf-label i { color: var(--brand-red); }
.ntf-input, .ntf-textarea, .ntf-select {
  width: 100%;
  border: 1.5px solid var(--line);
  border-radius: 10px;
  padding: 11px 14px;
  font-size: 13.5px;
  font-family: var(--font-body);
  background: #fff;
}
.ntf-input:focus, .ntf-textarea:focus, .ntf-select:focus {
  outline: none;
  border-color: var(--brand-red);
  box-shadow: 0 0 0 3px rgba(214, 31, 38, 0.08);
}
.ntf-textarea { resize: vertical; min-height: 120px; }
.ntf-upload {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px;
  border: 1.5px dashed var(--line);
  border-radius: 10px;
  background: #fafafa;
  color: var(--slate);
  font-size: 13px;
  cursor: pointer;
  transition: all 0.2s;
}
.ntf-upload:hover { border-color: var(--brand-red); color: var(--brand-red); background: #FFF7F0; }

/* =========================================================
   DASHBOARD UPGRADE CTA — innovative dark gradient
   ========================================================= */
.upgrade-cta-block {
  background: linear-gradient(135deg, #1a1f2b 0%, #2a2f3f 100%);
  border-radius: 20px;
  padding: 28px;
  color: #fff;
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: center;
  margin-bottom: 24px;
}
@media (max-width: 768px) {
  .upgrade-cta-block { grid-template-columns: 1fr; padding: 22px; }
}
.upgrade-cta-block::before {
  content: '';
  position: absolute;
  top: -100px; right: -100px;
  width: 300px; height: 300px;
  background: linear-gradient(135deg, rgba(214, 31, 38, 0.4), rgba(198, 138, 58, 0.4));
  border-radius: 50%;
  filter: blur(80px);
}
.upgrade-cta-block::after {
  content: '';
  position: absolute;
  bottom: -80px; left: -80px;
  width: 240px; height: 240px;
  background: linear-gradient(135deg, rgba(198, 138, 58, 0.4), rgba(214, 31, 38, 0.4));
  border-radius: 50%;
  filter: blur(80px);
}
.upgrade-cta-content { position: relative; z-index: 2; }
.upgrade-cta-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: linear-gradient(135deg, var(--brand-gold), #E2A857);
  color: #1a1f2b;
  font-size: 10.5px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  letter-spacing: 0.05em;
  margin-bottom: 12px;
}
.upgrade-cta-block h2 {
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 8px;
  line-height: 1.2;
  color: #fff;
}
.upgrade-cta-block h2 .grad {
  background: linear-gradient(135deg, var(--brand-gold), #FFD789);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.upgrade-cta-block p {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.6;
  margin-bottom: 18px;
  max-width: 460px;
}
.upgrade-benefits {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 20px;
}
.upgrade-benefit {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
}
.upgrade-benefit i { color: var(--brand-gold); font-size: 13px; }

.upgrade-cta-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.btn-upgrade-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff !important;
  padding: 13px 26px;
  border-radius: 12px;
  font-size: 14.5px;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 8px 22px rgba(214, 31, 38, 0.35);
  transition: all 0.25s;
  border: none;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  font-family: var(--font-body);
}
.btn-upgrade-primary::before {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transition: left 0.6s ease;
}
.btn-upgrade-primary:hover::before { left: 100%; }
.btn-upgrade-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(214, 31, 38, 0.45);
}
.btn-upgrade-ghost-dark {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.9);
  padding: 13px 22px;
  border-radius: 12px;
  font-size: 13.5px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s;
  font-family: var(--font-body);
  cursor: pointer;
}
.btn-upgrade-ghost-dark:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.upgrade-cta-right {
  position: relative;
  z-index: 2;
  text-align: center;
}
.pricing-tile {
  background: rgba(255, 255, 255, 0.05);
  border: 1.5px solid rgba(255, 255, 255, 0.15);
  border-radius: 18px;
  padding: 22px 28px;
  backdrop-filter: blur(12px);
  text-align: center;
}
.pricing-tile .pt-name {
  font-size: 12px;
  color: var(--brand-gold);
  font-weight: 700;
  letter-spacing: 0.05em;
  margin-bottom: 6px;
}
.pricing-tile .pt-price {
  font-family: var(--font-display);
  font-size: 38px;
  font-weight: 800;
  line-height: 1;
}
.pricing-tile .pt-price .currency {
  font-size: 22px;
  vertical-align: super;
  opacity: 0.8;
}
.pricing-tile .pt-period {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
  margin-top: 4px;
}
.pricing-tile .pt-strike {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
  text-decoration: line-through;
  margin-top: 6px;
}
.pricing-tile .pt-save {
  display: inline-block;
  background: linear-gradient(135deg, #16A34A, #22C55E);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 999px;
  margin-top: 8px;
}

/* =========================================================
   UPGRADE MODAL (popup version)
   ========================================================= */
.upgrade-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(20, 24, 38, 0.7);
  backdrop-filter: blur(4px);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}
.upgrade-modal-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}
.upgrade-modal-dialog {
  background:
    radial-gradient(circle at 85% 15%, rgba(214, 31, 38, 0.25), transparent 50%),
    radial-gradient(circle at 15% 85%, rgba(198, 138, 58, 0.25), transparent 50%),
    linear-gradient(135deg, #1a1f2b 0%, #2a2f3f 100%);
  border-radius: 24px;
  max-width: 880px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  overflow-x: hidden;
  position: relative;
  transform: scale(0.94);
  transition: transform 0.25s ease;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4);
}
.upgrade-modal-backdrop.is-open .upgrade-modal-dialog { transform: scale(1); }
/* Orbs replaced with inline radial gradients above — no pseudo-elements that cause overflow */
.upgrade-modal-close {
  position: absolute;
  top: 18px; right: 18px;
  width: 38px; height: 38px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  color: #fff;
  font-size: 18px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  z-index: 10;
  transition: all 0.2s;
}
.upgrade-modal-close:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: rotate(90deg);
}
.upgrade-modal-content {
  padding: 38px 36px 32px;
  position: relative;
  z-index: 2;
  color: #fff;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: center;
}
@media (max-width: 768px) {
  .upgrade-modal-content { grid-template-columns: 1fr; padding: 28px 24px; }
}
.upgrade-modal-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: linear-gradient(135deg, var(--brand-gold), #E2A857);
  color: #1a1f2b;
  font-size: 10.5px;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 999px;
  letter-spacing: 0.05em;
  margin-bottom: 14px;
}
.upgrade-modal-content h2 {
  font-family: var(--font-display);
  font-size: 32px;
  font-weight: 800;
  margin-bottom: 10px;
  line-height: 1.15;
  color: #fff;
}
.upgrade-modal-content h2 .grad {
  background: linear-gradient(135deg, var(--brand-gold), #FFD789);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.upgrade-modal-content p.sub {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.6;
  margin-bottom: 18px;
}
.upgrade-modal-tile {
  background: rgba(255, 255, 255, 0.08);
  border: 1.5px solid rgba(255, 255, 255, 0.2);
  border-radius: 20px;
  padding: 28px;
  backdrop-filter: blur(14px);
  text-align: center;
}
.upgrade-modal-tile .pt-price {
  font-family: var(--font-display);
  font-size: 48px;
  font-weight: 800;
  line-height: 1;
  background: linear-gradient(135deg, var(--brand-gold), #FFD789);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.upgrade-modal-tile .pt-name {
  font-size: 12px;
  color: var(--brand-gold);
  font-weight: 700;
  letter-spacing: 0.05em;
  margin-bottom: 6px;
}
.upgrade-modal-tile .pt-period {
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.6);
  margin-top: 4px;
}
.upgrade-modal-tile .pt-strike {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.45);
  text-decoration: line-through;
  margin-top: 10px;
}
.upgrade-modal-tile .pt-save {
  display: inline-block;
  background: linear-gradient(135deg, #16A34A, #22C55E);
  color: #fff;
  font-size: 11.5px;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 999px;
  margin-top: 10px;
  box-shadow: 0 4px 12px rgba(22, 163, 74, 0.3);
}
.upgrade-modal-cta {
  margin-top: 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* =========================================================
   MOBILE DRAWER — Logged-in state
   ========================================================= */
.drawer-user-head {
  padding: 18px;
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  display: flex;
  align-items: center;
  gap: 12px;
}
.drawer-user-head .duh-avatar {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  border: 1.5px solid rgba(255, 255, 255, 0.4);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700;
  font-size: 16px;
}
.drawer-user-head .duh-name { font-weight: 700; font-size: 14px; }
.drawer-user-head .duh-id { font-size: 11px; opacity: 0.85; }
.drawer-section-header {
  font-size: 10.5px;
  color: var(--slate);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 700;
  padding: 12px 14px 6px;
}
.drawer-item.badge-style .badge-count {
  margin-left: auto;
  background: var(--brand-red);
  color: #fff;
  font-size: 10px;
  padding: 1px 7px;
  border-radius: 999px;
  font-weight: 700;
}

/* Hide certain things based on login state */
body.is-public .logged-in-only { display: none !important; }
body.is-logged-in .logged-out-only { display: none !important; }


/* =========================================================
   DASHBOARD UPGRADE TEASER CARD (opens upgrade modal)
   ========================================================= */
.upgrade-teaser-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  background: linear-gradient(135deg, #1a1f2b 0%, #2a2f3f 100%);
  border-radius: 16px;
  color: #fff;
  cursor: pointer;
  margin-bottom: 24px;
  position: relative;
  overflow: hidden;
  transition: all 0.25s ease;
}
.upgrade-teaser-card::before {
  content: '';
  position: absolute;
  top: -60px; right: -60px;
  width: 200px; height: 200px;
  background: linear-gradient(135deg, rgba(214,31,38,0.4), rgba(198,138,58,0.4));
  border-radius: 50%;
  filter: blur(60px);
  pointer-events: none;
}
.upgrade-teaser-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(214,31,38,0.25);
}
.upgrade-teaser-card .ut-icon {
  width: 48px; height: 48px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  color: #fff;
  flex-shrink: 0;
  position: relative;
  z-index: 2;
  box-shadow: 0 6px 16px rgba(214,31,38,0.4);
}
.upgrade-teaser-card .ut-text {
  flex: 1;
  min-width: 0;
  position: relative;
  z-index: 2;
}
.upgrade-teaser-card .ut-title {
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 2px;
}
.upgrade-teaser-card .ut-grad {
  background: linear-gradient(135deg, var(--brand-gold), #FFD789);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.upgrade-teaser-card .ut-sub {
  font-size: 12px;
  color: rgba(255,255,255,0.75);
}
.upgrade-teaser-card .ut-btn {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
  border: none;
  padding: 10px 18px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-body);
  transition: all 0.2s;
}
.upgrade-teaser-card .ut-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(214,31,38,0.4);
}
@media (max-width: 576px) {
  .upgrade-teaser-card {
    flex-wrap: wrap;
    text-align: center;
    justify-content: center;
  }
  .upgrade-teaser-card .ut-icon { display: none; }
  .upgrade-teaser-card .ut-btn { width: 100%; justify-content: center; }
}


/* =========================================================
   TICKETS — Top status tabs (replaces left filter aside)
   ========================================================= */
.tickets-layout {
  /* Override grid-cols when there's no filter aside */
  grid-template-columns: 1fr !important;
}
.tickets-status-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid #f0f0f0;
}
.ts-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 999px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink);
  text-decoration: none;
  transition: all 0.2s;
  white-space: nowrap;
}
.ts-tab:hover {
  border-color: var(--brand-red);
  color: var(--brand-red);
}
.ts-tab.active {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  border-color: transparent;
  color: #fff;
}
.ts-tab i { font-size: 13px; }
.ts-tab .ts-count {
  background: rgba(0, 0, 0, 0.06);
  padding: 1px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  margin-left: 2px;
}
.ts-tab.active .ts-count {
  background: rgba(255, 255, 255, 0.25);
}


/* =========================================================
   "Other" option support for selects
   Pattern: select with class .has-other; when value === "Other",
   the sibling .other-input-wrap is shown.
   ========================================================= */
.other-input-wrap {
  display: none;
  margin-top: 8px;
  animation: otherFade 0.25s ease;
}
.other-input-wrap.is-shown { display: block; }
@keyframes otherFade {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}
.other-input-wrap .other-input-label {
  font-size: 11.5px;
  color: var(--brand-red);
  font-weight: 600;
  margin-bottom: 4px;
  display: flex;
  align-items: center;
  gap: 4px;
}
.other-input-wrap .other-input-label i { font-size: 12px; }


/* =========================================================
   PARENT LOGIN PAGE — innovative card design
   ========================================================= */
.parent-accounts-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
  gap: 18px;
  margin-bottom: 24px;
}
@media (max-width: 576px) {
  .parent-accounts-grid { grid-template-columns: 1fr; }
}

.parent-account-card {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 16px;
  overflow: hidden;
  transition: all 0.25s;
  border-left: 4px solid #ddd;
}
.parent-account-card.active {
  border-left-color: #16A34A;
}
.parent-account-card.inactive {
  border-left-color: var(--slate);
  opacity: 0.7;
}
.parent-account-card:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  transform: translateY(-2px);
}

.pa-card-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 18px 12px;
  background: linear-gradient(135deg, #FFF7E6, #FFFBF0);
  border-bottom: 1px solid #FCE9C7;
}
.pa-avatar {
  width: 50px; height: 50px;
  border-radius: 50%;
  background: linear-gradient(135deg, #B45309, #D97706);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(180, 83, 9, 0.25);
}
.pa-avatar.mother {
  background: linear-gradient(135deg, #DB2777, #F472B6);
  box-shadow: 0 4px 12px rgba(219, 39, 119, 0.25);
}
.pa-avatar.guardian {
  background: linear-gradient(135deg, var(--brand-blue), #4A6BB3);
}
.pa-meta { flex: 1; min-width: 0; }
.pa-name {
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
}
.pa-rel {
  font-size: 12.5px;
  color: var(--slate);
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 1px;
}
.pa-rel i { font-size: 12px; color: #B45309; }

.pa-status {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10.5px;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 999px;
  letter-spacing: 0.04em;
}
.pa-status.active {
  background: rgba(22, 163, 74, 0.12);
  color: #16A34A;
}
.pa-status.inactive {
  background: rgba(102, 102, 102, 0.12);
  color: var(--slate);
}

.pa-card-body {
  padding: 14px 18px;
}
.pa-info-row {
  font-size: 12.5px;
  color: var(--slate);
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 0;
}
.pa-info-row i {
  color: #B45309;
  font-size: 13px;
  width: 16px;
  flex-shrink: 0;
}

.pa-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 12px;
  padding: 12px;
  background: #fafafa;
  border-radius: 10px;
}
.pa-stat {
  text-align: center;
  font-size: 11px;
  color: var(--slate);
  font-weight: 500;
  line-height: 1.3;
}
.pa-stat span {
  display: block;
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 700;
  color: #B45309;
  margin-bottom: 2px;
}

.pa-card-actions {
  padding: 12px 18px 16px;
  display: flex;
  gap: 8px;
  border-top: 1px solid #f5f5f5;
  flex-wrap: wrap;
}
.pa-card-actions .btn-modern {
  flex: 1;
  font-size: 12px;
  padding: 8px 12px;
  justify-content: center;
}

/* Create Parent Form */
.create-parent-form {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 40px;
  animation: fadeInUp 0.3s ease;
}
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Permissions card */
.permissions-card {
  background: linear-gradient(135deg, #F0F6FF, #E8F0FF);
  border: 1px solid #DCE7FA;
  border-radius: 12px;
  padding: 16px;
  margin-top: 16px;
}
.pc-head {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  color: var(--brand-blue);
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.pc-head i { font-size: 16px; }
.pc-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px 14px;
}
@media (max-width: 576px) {
  .pc-list { grid-template-columns: 1fr; }
}
.pc-item {
  font-size: 12.5px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.pc-item.allowed { color: #15803D; }
.pc-item.denied { color: #B91C1C; }
.pc-item i { font-size: 14px; flex-shrink: 0; }


/* =========================================================
   FILTER PANEL — legacy row tints (replaced by innovative design above)
   ========================================================= */
/* Reserved for future overrides */


/* =========================================================
   REPLACE BLACK with brand wine/burgundy gradient
   - upgrade-teaser-card
   - upgrade-modal-dialog
   ========================================================= */
.upgrade-teaser-card {
  background: linear-gradient(135deg, #5B1620 0%, #7A1F26 100%) !important;
}
.upgrade-teaser-card::before {
  background: linear-gradient(135deg, rgba(214, 31, 38, 0.5), rgba(198, 138, 58, 0.5)) !important;
}

.upgrade-modal-dialog {
  background:
    radial-gradient(circle at 85% 15%, rgba(214, 31, 38, 0.3), transparent 50%),
    radial-gradient(circle at 15% 85%, rgba(198, 138, 58, 0.3), transparent 50%),
    linear-gradient(135deg, #5B1620 0%, #7A1F26 100%) !important;
}
.upgrade-modal-tag {
  background: linear-gradient(135deg, #FFD789, #FFE9B3) !important;
  color: #5B1620 !important;
}


/* =========================================================
   CHANGE PASSWORD MODAL (parent-login)
   ========================================================= */
.cp-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(20, 24, 38, 0.6);
  backdrop-filter: blur(4px);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}
.cp-modal-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}
.cp-modal-dialog {
  background: #fff;
  border-radius: 18px;
  max-width: 480px;
  width: 100%;
  position: relative;
  overflow: hidden;
  transform: scale(0.94);
  transition: transform 0.25s ease;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
}
.cp-modal-backdrop.is-open .cp-modal-dialog { transform: scale(1); }
.cp-modal-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 32px;
  height: 32px;
  background: rgba(255, 255, 255, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 50%;
  color: #fff;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 5;
  transition: all 0.2s;
}
.cp-modal-close:hover {
  background: rgba(255, 255, 255, 0.35);
  transform: rotate(90deg);
}
.cp-modal-head {
  padding: 22px 26px;
  background: linear-gradient(135deg, #B45309, #D97706);
  color: #fff;
  display: flex;
  align-items: center;
  gap: 14px;
}
.cp-modal-icon {
  width: 48px;
  height: 48px;
  background: rgba(255, 255, 255, 0.2);
  border: 1.5px solid rgba(255, 255, 255, 0.35);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  flex-shrink: 0;
}
.cp-modal-title {
  font-family: var(--font-display);
  font-size: 19px;
  font-weight: 700;
  line-height: 1.2;
}
.cp-modal-sub {
  font-size: 12.5px;
  opacity: 0.95;
  margin-top: 2px;
}
.cp-modal-body {
  padding: 22px 26px 26px;
}


/* HTML hidden attribute MUST always override display rules */
[hidden] { display: none !important; }


/* =========================================================
   btn-modern color variants for parent card actions
   ========================================================= */
.btn-modern.blue {
  background: linear-gradient(135deg, var(--brand-blue), #4A6BB3);
  color: #fff;
  box-shadow: 0 4px 12px rgba(47, 74, 125, 0.25);
}
.btn-modern.blue:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(47, 74, 125, 0.35);
}
.btn-modern.amber {
  background: linear-gradient(135deg, #B45309, #D97706);
  color: #fff;
  box-shadow: 0 4px 12px rgba(180, 83, 9, 0.25);
}
.btn-modern.amber:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(180, 83, 9, 0.35);
}


/* =========================================================
   HEADER ACTION ICONS — bold colored circle buttons
   Used on both desktop and mobile (logged-in header)
   ========================================================= */
.icon-action-btn {
  width: 38px; height: 38px;
  border-radius: 50%;
  background: #fff;
  border: 1.5px solid;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 17px;
  position: relative;
  cursor: pointer;
  transition: all 0.2s;
  flex-shrink: 0;
  padding: 0;
}
.icon-action-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
/* color variants */
.icon-action-btn.notif       { border-color: var(--brand-red); color: var(--brand-red); }
.icon-action-btn.ticket-btn  { border-color: #B45309; color: #B45309; }
.icon-action-btn.menu-btn    { border-color: var(--brand-blue); color: var(--brand-blue); }
.icon-action-btn .icon-count {
  position: absolute;
  top: -4px; right: -4px;
  background: var(--brand-red);
  color: #fff;
  font-size: 9.5px;
  font-weight: 700;
  min-width: 16px; height: 16px;
  border-radius: 999px;
  padding: 0 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid #fff;
  line-height: 1;
}
.icon-action-btn i { line-height: 1; }

@media (max-width: 991px) {
  .icon-action-btn { width: 34px; height: 34px; font-size: 15px; }
  .icon-action-btn .icon-count { font-size: 9px; min-width: 14px; height: 14px; }
}

/* Right-side icon group spacing */
.header-icon-actions {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

/* Sidebar collapsed state — toggled by .menu-btn on desktop */
@media (min-width: 992px) {
  body.sidebar-collapsed .dash-sidebar { display: none; }
  body.sidebar-collapsed .dash-wrap { grid-template-columns: 1fr; }
}

/* Hide old hamburger trigger when new menu-btn is present (logged-in pages) */
body.is-logged-in .dash-menu-trigger { display: none !important; }

/* Remove dropdown caret on Search nav for public pages (already handled via removing dropdown-toggle class)  */

/* Mobile drawer backdrop */
.dash-sidebar-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  z-index: 1099;
  backdrop-filter: blur(2px);
  animation: bdFade 0.2s ease;
}
@keyframes bdFade { from { opacity: 0; } to { opacity: 1; } }
@media (min-width: 992px) {
  .dash-sidebar-backdrop { display: none; }
}
body.dash-sidebar-open { overflow: hidden; }

/* On logged-in pages, hide the old hamburger button — replaced by the new menu-btn */
body.is-logged-in .hamburger-btn { display: none !important; }


/* =========================================================
   COMPREHENSIVE MOBILE RESPONSIVENESS
   Applies to all pages — especially search/tickets/parent-login
   ========================================================= */
@media (max-width: 991px) {
  /* Dashboard wrap: stack sidebar above main on tablet+mobile */
  .dash-wrap {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }
  .dash-sidebar {
    position: fixed;
    top: 0; left: -320px;
    width: 300px;
    height: 100vh;
    z-index: 1100;
    transition: left 0.3s ease;
    overflow-y: auto;
    background: #fff;
    box-shadow: 4px 0 20px rgba(0,0,0,0.15);
  }
  .dash-sidebar.open {
    left: 0;
  }
  .dash-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 1099;
    display: none;
  }
  .dash-backdrop.open { display: block; }
  .dash-main { padding: 0 12px; }

  /* Container padding */
  .container, .container-fluid {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  /* Tickets layout: stack */
  .tickets-layout {
    grid-template-columns: 1fr !important;
  }
  .tickets-filter-aside {
    width: 100%;
    margin-bottom: 12px;
  }
  .tickets-header h3 {
    font-size: 18px;
  }
  .ticket-card {
    padding: 12px;
  }
  .ticket-card-top {
    flex-direction: column;
    gap: 8px;
  }
  .ticket-card-bottom {
    flex-wrap: wrap;
    gap: 8px;
    font-size: 11.5px;
  }

  /* Search pages */
  .search-tabs-bar {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    flex-wrap: nowrap !important;
  }
  .search-tab {
    flex-shrink: 0;
  }
  .search-results-grid {
    grid-template-columns: 1fr !important;
  }

  /* ep-section-nav (tickets, edit-profile) — horizontal scroll on mobile */
  .ep-section-nav-inner {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    flex-wrap: nowrap !important;
  }
  .ep-section-pill {
    flex-shrink: 0;
    white-space: nowrap;
  }

  /* Forms */
  .form-grid-2 {
    grid-template-columns: 1fr !important;
  }
  .new-ticket-form, .create-parent-form {
    margin-bottom: 24px;
  }
  .ntf-head, .cp-modal-head {
    padding: 16px 18px !important;
  }
  .ntf-body, .cp-modal-body {
    padding: 18px 14px !important;
  }
  .ntf-title { font-size: 17px; }
  .ntf-sub { font-size: 12px; }

  /* Parent account cards: full-width single column */
  .parent-accounts-grid {
    grid-template-columns: 1fr !important;
  }
  .pa-card-actions {
    flex-direction: column;
  }
  .pa-card-actions .btn-modern {
    width: 100%;
    flex: none;
  }

  /* Permissions card: stack list to single column */
  .pc-list {
    grid-template-columns: 1fr !important;
  }

  /* Confirm modal */
  .cm-dialog {
    max-width: calc(100vw - 24px);
  }

  /* Upgrade modal: stack content */
  .upgrade-modal-content {
    grid-template-columns: 1fr !important;
  }
  .upgrade-modal-tile {
    max-width: 100%;
  }

  /* Footer-above gap fix */
  main, .dash-main {
    padding-bottom: 24px;
  }
  body > section:last-of-type {
    padding-bottom: 24px !important;
  }
}

@media (max-width: 576px) {
  /* Even tighter for phones */
  .dash-main { padding: 0 10px; }

  .page-head h1, .page-head h2 {
    font-size: 20px !important;
  }
  .page-head p {
    font-size: 12px !important;
  }

  /* Profile card grids — single column */
  .profile-grid {
    grid-template-columns: 1fr !important;
  }

  /* Filter button row on activities */
  .dash-filter-toolbar {
    flex-wrap: wrap;
    gap: 8px;
  }
  .dash-filter-toolbar > * {
    flex: 1 1 auto;
  }

  /* Settings pages */
  .settings-card {
    padding: 16px 14px !important;
  }

  /* Tickets header on small screens */
  .tickets-header {
    flex-direction: column;
    gap: 10px;
    align-items: flex-start;
  }
  .tickets-header h3 { font-size: 17px; }

  /* Dropdown panels — full width on tiny screens */
  .dropdown-panel {
    width: calc(100vw - 16px) !important;
    max-height: 80vh;
    overflow-y: auto;
  }
}

/* Reduce footer top spacing */
.site-footer {
  margin-top: 32px !important;
}
@media (max-width: 768px) {
  .site-footer {
    margin-top: 20px !important;
  }
}


/* =========================================================
   MOBILE DROPDOWNS — full responsive sizing
   ========================================================= */
@media (max-width: 767px) {
  .dropdown-panel {
    position: fixed !important;
    top: auto !important;
    bottom: 0;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    transform: none !important;
    border-radius: 18px 18px 0 0;
    max-height: 75vh;
    overflow-y: auto;
    box-shadow: 0 -10px 30px rgba(0,0,0,0.2);
    animation: ddSlideUp 0.25s ease;
  }
  @keyframes ddSlideUp {
    from { transform: translateY(100%); }
    to { transform: translateY(0); }
  }
  .dp-head { padding: 14px 16px; }
  .dp-title { font-size: 15px; }
  .dp-item {
    padding: 12px 14px;
  }
  .dp-item-title {
    font-size: 13px;
  }
  .dp-item-text {
    font-size: 12px;
  }
  .dp-footer {
    padding: 12px 14px;
    padding-bottom: calc(28px + env(safe-area-inset-bottom));
    flex-wrap: wrap;
    gap: 8px;
  }
  .dp-footer > * {
    flex: 1 1 auto;
    text-align: center;
    justify-content: center;
  }
}

/* Body lock when mobile dropdown is open */
body.has-mobile-dropdown { overflow: hidden; }


/* =========================================================
   VIEW MODE TOGGLE (grid/list)
   ========================================================= */
.view-mode-toggle {
  display: inline-flex;
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
  padding: 2px;
}
.view-mode-toggle .vm-btn {
  background: transparent;
  border: none;
  padding: 6px 10px;
  font-size: 14px;
  color: var(--slate);
  border-radius: 5px;
  cursor: pointer;
  transition: all 0.2s;
}
.view-mode-toggle .vm-btn:hover {
  color: var(--brand-red);
}
.view-mode-toggle .vm-btn.active {
  background: linear-gradient(135deg, var(--brand-red), var(--brand-gold));
  color: #fff;
}

/* When grid is in list-view mode, force single column */
[data-profile-grid][data-view="list"] {
  --bs-gutter-x: 0.75rem;
}
[data-profile-grid][data-view="list"] > .col {
  flex: 0 0 100% !important;
  max-width: 100% !important;
}
[data-profile-grid][data-view="list"] .profile-card {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 0;
}
[data-profile-grid][data-view="list"] .pc-img {
  aspect-ratio: 1 !important;
}
@media (max-width: 576px) {
  [data-profile-grid][data-view="list"] .profile-card {
    grid-template-columns: 110px 1fr;
  }
}

/* Center the desktop nav links between the logo and right-side actions.
   Uses absolute positioning so flex spacing of logo + action buttons is
   preserved, while the nav itself is visually centered in the viewport. */
@media (min-width: 992px) {
  .site-header .navbar { position: relative; }
  .site-header .navbar-nav.d-lg-flex {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    margin-left: 0 !important;
  }
}

/* Public header Login button — styled like .btn-green (solid Royal Red) */
.site-header a.btn-ghost[href="login.html"] {
  background: var(--green);
  color: #fff;
  border: none;
  box-shadow: var(--sh-green);
  font-weight: 600;
}
.site-header a.btn-ghost[href="login.html"]:hover {
  background: var(--green-dark);
  color: #fff;
}

/* Slim page-hero on CMS pages — small label + h1 only, no sub-paragraph */
.page-hero {
  padding: 28px 0 32px !important;
}
.page-hero h1 {
  margin-bottom: 0 !important;
  font-size: clamp(26px, 4vw, 36px) !important;
}
@media (max-width: 576px) {
  .page-hero { padding: 22px 0 26px !important; }
}

/* Toggle-hide rules — kept here so the markup stays untouched and these can
   be flipped back on by removing the block. */
.results-grid[data-view="grid"] .compat-score,
[data-profile-grid][data-view="grid"] .compat-score { display: none !important; }
.list-card .lc-badge.match { display: none !important; }

/* ============================================================
   Section-nav horizontal scroll arrows (ep-section-nav)
   Clickable left/right arrows that scroll the pill strip.
   ============================================================ */
.ep-section-nav { display:flex; align-items:stretch; gap:4px; overflow:hidden; white-space:normal; }
.ep-section-nav-inner { flex:1 1 auto; min-width:0; overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; scrollbar-width:none; -ms-overflow-style:none; scroll-behavior:smooth; }
.ep-section-nav-inner::-webkit-scrollbar { display:none; height:0; width:0; }
.ep-nav-arrow { flex:0 0 auto; align-self:stretch; width:32px; border:0; background:#fff; color:var(--brand-red); cursor:pointer; display:none; align-items:center; justify-content:center; font-size:17px; padding:0; z-index:2; }
.ep-nav-arrow.show { display:inline-flex; }
.ep-nav-arrow:hover:not(:disabled) { background:rgba(214,31,38,0.06); }
.ep-nav-arrow:disabled { opacity:0.28; cursor:default; }
.ep-nav-arrow-left { box-shadow:6px 0 9px -5px rgba(0,0,0,0.18); }
.ep-nav-arrow-right { box-shadow:-6px 0 9px -5px rgba(0,0,0,0.18); }
@media (max-width:768px){ .ep-nav-arrow{ width:28px; font-size:15px; } }
/* ===== TVC video slider (multi-video carousel with arrows) ===== */
.tvc-viewport { border-radius:18px; overflow:hidden; }
.tvc-track { display:flex; transition:transform 0.45s cubic-bezier(0.4,0,0.2,1); will-change:transform; }
.tvc-card { flex:0 0 100%; width:100%; border-radius:0; }
.tvc-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:6; width:46px; height:46px; border-radius:50%; border:0; background:rgba(255,255,255,0.92); color:var(--brand-red); display:flex; align-items:center; justify-content:center; font-size:22px; cursor:pointer; box-shadow:0 6px 18px rgba(0,0,0,0.22); transition:background .2s, transform .2s; }
.tvc-arrow:hover { background:#fff; transform:translateY(-50%) scale(1.08); }
.tvc-arrow-prev { left:10px; }
.tvc-arrow-next { right:10px; }
.tvc-slider-dots { display:flex; gap:8px; justify-content:center; margin-top:18px; }
.tvc-dot { width:9px; height:9px; border-radius:50%; border:0; padding:0; background:rgba(214,31,38,0.25); cursor:pointer; transition:all .25s ease; }
.tvc-dot.active { background:var(--brand-red); width:26px; border-radius:5px; }
@media (max-width:767px){ .tvc-arrow{ width:38px; height:38px; font-size:18px; } .tvc-arrow-prev{ left:6px; } .tvc-arrow-next{ right:6px; } }
/* ===== TVC lightbox prev/next video arrows ===== */
.tvc-lb-nav { position:absolute; top:50%; transform:translateY(-50%); z-index:4; width:48px; height:48px; border-radius:50%; border:0; background:rgba(255,255,255,0.9); color:var(--brand-red); display:flex; align-items:center; justify-content:center; font-size:24px; cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,0.35); transition:background .2s, transform .2s; }
.tvc-lb-nav:hover { background:#fff; transform:translateY(-50%) scale(1.08); }
.tvc-lb-prev { left:10px; }
.tvc-lb-next { right:10px; }
@media (max-width:767px){ .tvc-lb-nav{ width:38px; height:38px; font-size:18px; } }

/* ---------- Mobile: tighter inner padding for Why Perfect Marry + How It Works cards (2-per-row) ---------- */
@media (max-width: 575px){
  .why-card{ padding:16px 10px; }
  .why-card .icon-wrap{ width:50px; height:50px; font-size:21px; margin-bottom:9px; }
  .why-card .icon-wrap.why-card-icon-wrap{ width:56px; height:56px; }
  .why-card h5{ font-size:15px; margin-bottom:5px; }
  .why-card p{ font-size:12.5px; line-height:1.45; }
  .pv2-card{ padding:54px 10px 20px; border-radius:18px; }
  .pv2-orb{ width:66px; height:66px; top:-30px; font-size:25px; }
  .pv2-orb-img{ width:38px; height:38px; }
  .pv2-heading{ font-size:16px; margin:2px 0 5px; }
  .pv2-tag{ font-size:12.5px; line-height:1.4; }
  .pv2-grid{ gap:58px 12px; }
}

/* ---------- Registration wizard: tighter spacing between form fields ---------- */
.wiz-form .form-group{ margin-bottom: 6px; }
.wiz-form .row.g-3{ --bs-gutter-y: 0.5rem; }
.wiz-form .form-label{ margin-bottom: 4px; }

/* ---------- Mobile: keep auth/registration title on one line ---------- */
@media (max-width: 575px){
  .auth-title{ font-size: 22px; white-space: nowrap; }
  .auth-title em{ white-space: nowrap; }
}

/* ---------- Horoscope score: 78% as one centered unit (same font) + visible title ---------- */
.pv-horoscope .pv-horo-title{ color:#fff !important; }
.pv-horoscope .pv-horo-desc{ color:rgba(255,255,255,0.85) !important; }
.pv-horoscope .pv-yantra-score{ position:absolute; inset:0; }
.pv-horoscope .pv-yantra-score-tag{ position:absolute; top:30%; left:0; right:0; text-align:center; margin:0; }
.pv-horoscope .pv-yantra-score-val{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); display:flex; align-items:baseline; justify-content:center; gap:2px; line-height:1; }
.pv-horoscope .pv-yantra-score-num{ position:static !important; font-size:34px !important; font-weight:700; color:#fbbf24; text-shadow:0 0 20px rgba(251,191,36,0.6); line-height:1; margin:0; top:auto; }
.pv-horoscope .pv-yantra-score-max{ position:static !important; font-size:34px !important; font-weight:700; color:#fbbf24; opacity:.9; line-height:1; margin:0; top:auto; }
.pv-horoscope .pv-yantra-score-lbl{ position:absolute; bottom:30%; left:0; right:0; text-align:center; margin:0; }
@media (max-width:575px){
  .pv-horoscope .pv-yantra-score-num,
  .pv-horoscope .pv-yantra-score-max{ font-size:30px !important; }
}

/* ---------- Horoscope: trim wasted spacing/margins ---------- */
.pv-horoscope{ padding:16px 14px !important; margin:18px 0 16px !important; }
.pv-horoscope .pv-horo-head{ margin-bottom:4px !important; }
.pv-horoscope .pv-yantra-stage{ margin:0 auto 6px !important; }
.pv-horoscope .pv-horo-cards{ margin-top:0 !important; margin-bottom:14px !important; }
@media (max-width:575px){
  .pv-horoscope{ padding:14px 10px !important; }
  .pv-horoscope .pv-yantra-stage{ height:330px !important; }
}

/* ---------- Horoscope yantra: fit within section on small phones (no side overflow) ---------- */
@media (max-width:575px){
  .pv-yantra-stage{ height:300px !important; }
  .pv-yantra-orbit{ width:210px !important; height:210px !important; }
  .pv-yantra-mandala svg{ width:168px !important; height:168px !important; }
  .pv-yantra-orb{ width:74px !important; height:74px !important; margin:-37px 0 0 -37px !important; }
  .pv-yantra-orb-name{ font-size:11px; }
  .pv-yantra-orb-label{ font-size:8px; letter-spacing:.1em; }
  @keyframes pvOrbitBride{ from{ transform:rotate(0deg) translateX(102px) rotate(0deg); } to{ transform:rotate(360deg) translateX(102px) rotate(-360deg); } }
  @keyframes pvOrbitGroom{ from{ transform:rotate(180deg) translateX(102px) rotate(-180deg); } to{ transform:rotate(540deg) translateX(102px) rotate(-540deg); } }
}
@media (max-width:399px){
  .pv-yantra-stage{ height:264px !important; }
  .pv-yantra-orbit{ width:184px !important; height:184px !important; }
  .pv-yantra-mandala svg{ width:148px !important; height:148px !important; }
  .pv-yantra-orb{ width:66px !important; height:66px !important; margin:-33px 0 0 -33px !important; }
  .pv-yantra-score-num, .pv-horoscope .pv-yantra-score-num,
  .pv-yantra-score-max, .pv-horoscope .pv-yantra-score-max{ font-size:26px !important; }
  @keyframes pvOrbitBride{ from{ transform:rotate(0deg) translateX(89px) rotate(0deg); } to{ transform:rotate(360deg) translateX(89px) rotate(-360deg); } }
  @keyframes pvOrbitGroom{ from{ transform:rotate(180deg) translateX(89px) rotate(-180deg); } to{ transform:rotate(540deg) translateX(89px) rotate(-540deg); } }
}

/* ---------- Horoscope bride/groom cards: smaller on mobile ---------- */
@media (max-width:575px){
  .pv-horoscope .pv-horo-cards{ gap:10px; margin-bottom:12px; }
  .pv-horoscope .pv-horo-card{ padding:12px 12px; }
  .pv-horoscope .pv-horo-card-label{ font-size:10px; letter-spacing:.12em; margin-bottom:4px; }
  .pv-horoscope .pv-horo-card-name{ font-size:18px !important; margin-bottom:2px; }
  .pv-horoscope .pv-horo-card-pada{ font-size:12px; margin-bottom:6px; }
  .pv-horoscope .pv-horo-card-meta{ font-size:10px; gap:8px; }
  .pv-horoscope .pv-horo-card-meta i{ font-size:11px; }
  .pv-horoscope .pv-horo-card-verdict{ width:62px; height:62px; font-size:21px; padding:0; }
  .pv-horoscope .pv-horo-card-verdict-lbl{ font-size:9px; margin-top:5px; }
}

/* ---------- Horoscope: Bride | 78% | Groom in ONE row on mobile ---------- */
.pv-horoscope .pv-horo-cards{ grid-template-columns:1fr auto 1fr !important; }
@media (max-width:575px){
  .pv-horoscope .pv-horo-cards{ gap:6px !important; align-items:center; }
  .pv-horoscope .pv-horo-card{ padding:10px 5px; }
  .pv-horoscope .pv-horo-card-label{ font-size:8px; letter-spacing:.04em; margin-bottom:3px; }
  .pv-horoscope .pv-horo-card-name{ font-size:13px !important; margin-bottom:2px; line-height:1.1; }
  .pv-horoscope .pv-horo-card-pada{ font-size:10px; margin-bottom:0; }
  .pv-horoscope .pv-horo-card-verdict{ width:52px; height:52px; font-size:16px; }
  .pv-horoscope .pv-horo-card-verdict-lbl{ font-size:7px; letter-spacing:.05em; margin-top:3px; }
}

/* ---------- Horoscope note: smaller on mobile ---------- */
@media (max-width:575px){
  .pv-horoscope .pv-horo-note{ padding:10px 12px; font-size:11px; line-height:1.45; gap:8px; border-radius:10px; }
  .pv-horoscope .pv-horo-note i{ font-size:15px; }
}

/* ============================================================
   PART 51 — Migrated page-level CSS (moved from inline/<style>)
   Extracted from HTML to keep markup clean. Behavior identical.
   ============================================================ */

/* ---- index.html: Success stories Owl carousel ---- */
.stories-owl-wrap{position:relative;padding:0 60px;margin-top:8px}
.stories-owl .item{padding:6px 2px 2px}
.stories-owl .story-card{height:100%}
.stories-owl .owl-nav{margin:0}
.stories-owl .owl-nav button.owl-prev,
.stories-owl .owl-nav button.owl-next{
  position:absolute;top:50%;transform:translateY(-50%);z-index:20;
  width:46px;height:46px;border-radius:50%!important;
  background:#fff!important;border:1.5px solid var(--line,#eee)!important;
  color:var(--brand-red,#D61F26)!important;font-size:20px!important;
  display:inline-flex;align-items:center;justify-content:center;transition:.18s;
  box-shadow:0 6px 18px rgba(0,0,0,.15)
}
.stories-owl .owl-nav button.owl-prev{left:-56px}
.stories-owl .owl-nav button.owl-next{right:-56px}
.stories-owl .owl-nav button.owl-prev:hover,
.stories-owl .owl-nav button.owl-next:hover{
  background:linear-gradient(135deg,#D61F26,#C68A3A)!important;color:#fff!important;
  border-color:transparent!important
}
@media(max-width:575px){
  .stories-owl-wrap{padding:0 44px}
  .stories-owl .owl-nav button.owl-prev,
  .stories-owl .owl-nav button.owl-next{width:38px;height:38px;font-size:17px}
  .stories-owl .owl-nav button.owl-prev{left:-42px}
  .stories-owl .owl-nav button.owl-next{right:-42px}
}
.stories-owl .owl-dots{margin-top:16px;text-align:center}
.stories-owl .owl-dots .owl-dot span{width:9px;height:9px;margin:4px 5px;background:#e0d3bb;transition:.2s}
.stories-owl .owl-dots .owl-dot.active span{background:linear-gradient(135deg,#D61F26,#C68A3A);width:26px;border-radius:6px}
.stories-owl .owl-dots .owl-dot:hover span{background:var(--gold,#C68A3A)}

/* ---- index.html: Home advertisement Owl carousel ---- */
.home-ad-section{ padding:26px 0 10px; }
.home-ad-label{ text-align:center; font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:#b3b3b3; margin-bottom:10px; }
.ads-owl-wrap{ position:relative; max-width:100%; overflow:visible; padding-bottom:26px; }
.ads-owl .ad-slide{ display:block; border-radius:14px; overflow:hidden; box-shadow:0 10px 28px rgba(0,0,0,.14); }
.ads-owl .ad-slide img{ width:100%; height:auto; display:block; }
.ads-owl .owl-stage-outer{ overflow:hidden; border-radius:14px; }
.ads-owl .owl-nav{ margin:0; }
.ads-owl .owl-nav button.owl-prev, .ads-owl .owl-nav button.owl-next{
  position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:30px; height:30px; border-radius:50%!important;
  background:rgba(255,255,255,.9)!important; color:#7a2a1e!important; font-size:14px!important; display:inline-flex; align-items:center; justify-content:center;
  box-shadow:0 3px 10px rgba(0,0,0,.25); transition:.18s; }
.ads-owl .owl-nav button.owl-prev{ left:8px; }
.ads-owl .owl-nav button.owl-next{ right:8px; }
.ads-owl .owl-nav button:hover{ background:#fff!important; transform:translateY(-50%) scale(1.1); }
.ads-owl .owl-dots{ position:absolute; left:0; right:0; bottom:-24px; text-align:center; margin:0; }
.ads-owl .owl-dots .owl-dot span{ width:9px; height:9px; margin:0 4px; background:#e0cdbf; transition:.2s; }
.ads-owl .owl-dots .owl-dot.active span{ background:linear-gradient(135deg,#D61F26,#C68A3A); width:26px; border-radius:6px; }

/* ---- index.html: Get-the-app section inline styles ---- */
.app-script-line{ font-family:'Kalam',cursive; font-size:22px; color:var(--gold-light); }
.app-desc-muted{ opacity:.92; }
.app-phone-img{ width:100%; max-width:200px; height:auto; animation:float 4s ease-in-out infinite; display:block; margin:0 auto; filter:drop-shadow(0 20px 40px rgba(0,0,0,.35)); }
.app-qr-caption{ font-size:12px; color:rgba(255,255,255,.9); }

/* ============================================================
   PART 52 — Migrated page CSS (batches 0-5, moved from inline/<style>)
   ============================================================ */

/* ============ BATCH 0 ============ */
/* ============================================================
   _migrated-batch0.css
   Migrated inline + internal CSS for batch 0 pages.
   ============================================================ */

/* ---- shared utilities (batch0) ---- */
.b0-kalam-orange{ font-family:Kalam,cursive; font-size:22px; color:var(--orange); }
.b0-em-orange{ color:var(--orange); font-style:italic; }
.b0-text-slate{ color:var(--slate); }
.b0-card-panel{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh-md); padding:32px; }

/* ---- 404.html ---- */
.b0-404-big{ font-family:'Fraunces',serif; font-weight:600; font-size:clamp(120px,22vw,220px); line-height:1; background:linear-gradient(135deg,var(--green),var(--orange)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.b0-404-lead{ max-width:560px; font-size:1.05rem; }

/* ---- about.html ---- */
.about-hero-img{ border-radius:var(--r-lg); box-shadow:var(--sh-md); width:100%; }

/* ---- advertise.html ---- */
.advertise-panel{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh-md); padding:32px; margin-bottom:32px; }
.advertise-panel-center{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh-md); padding:32px; text-align:center; }
.advertise-title-left{ text-align:left; margin-bottom:18px; }
.advertise-h2-tight{ margin-top:4px; }
.advertise-cta-head{ margin-bottom:18px; }
.advertise-cta-script{ color:var(--orange); font-family:Kalam,cursive; font-size:22px; display:block; margin-bottom:8px; }
.advertise-cta-h2{ margin:0 0 10px; }
.advertise-cta-p{ color:var(--slate); font-size:14px; margin:0; }
.advertise-ad-section{ padding:26px 0 10px; }
.advertise-ad-label{ text-align:center; font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:#b3b3b3; margin-bottom:10px; }
.advertise-ads-owl .ad-slide{ display:block; border-radius:14px; overflow:hidden; box-shadow:0 10px 28px rgba(0,0,0,.14); }
.advertise-ads-owl .ad-slide img{ width:100%; height:auto; display:block; }
.advertise-ads-owl .owl-stage-outer{ overflow:hidden; border-radius:14px; }
.advertise-ads-owl .owl-nav{ margin:0; }
.advertise-ads-owl .owl-nav button.owl-prev, .advertise-ads-owl .owl-nav button.owl-next{
  position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:30px; height:30px; border-radius:50%!important;
  background:rgba(255,255,255,.9)!important; color:#7a2a1e!important; font-size:14px!important; display:inline-flex; align-items:center; justify-content:center;
  box-shadow:0 3px 10px rgba(0,0,0,.25); transition:.18s; }
.advertise-ads-owl .owl-nav button.owl-prev{ left:8px; }
.advertise-ads-owl .owl-nav button.owl-next{ right:8px; }
.advertise-ads-owl .owl-nav button:hover{ background:#fff!important; transform:translateY(-50%) scale(1.1); }
.advertise-ads-owl-wrap{ position:relative; max-width:100%; overflow:visible; padding-bottom:26px; }
.advertise-ads-owl .owl-dots{ position:absolute; left:0; right:0; bottom:-24px; text-align:center; margin:0; }
.advertise-ads-owl .owl-dots .owl-dot span{ width:9px; height:9px; margin:0 4px; background:#e0cdbf; transition:.2s; }
.advertise-ads-owl .owl-dots .owl-dot.active span{ background:linear-gradient(135deg,#D61F26,#C68A3A); width:26px; border-radius:6px; }

/* ---- agent-add-member.html ---- */
:root{--ag-red:#1565C0;--ag-red-dark:#0D47A1;--ag-gold:#1CA9C4;--ag-gold-dark:#0E8AA3;--ag-gold-light:#e3f4f8;--ag-ink:#1a1a1a;--ag-muted:#6b6b6b;--ag-line:#eee}
  body{background:#fafafa}
  /* Sidebar (matches other agent pages) */
  .agent-user-card{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));border-radius:14px;padding:18px 16px;text-align:center;color:#fff;margin-bottom:16px;position:relative;overflow:hidden}
  .agent-user-card::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 0%,rgba(255,255,255,.15),transparent 50%)}
  .agent-user-card .ag-avatar{width:64px;height:64px;border-radius:50%;background:#fff;color:var(--ag-red);font-family:'Fraunces',serif;font-weight:700;font-size:22px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:10px;border:3px solid rgba(255,255,255,.4);position:relative;z-index:1}
  .agent-user-card h6{font-size:15px;font-weight:600;margin:0;position:relative;z-index:1;color:#fff}
  .agent-user-card .role-pill{background:rgba(255,255,255,.25);font-size:11px;padding:3px 10px;border-radius:20px;display:inline-block;margin-top:6px;font-weight:600;position:relative;z-index:1}
  .agent-nav{display:flex;flex-direction:column;gap:4px}
  .agent-nav-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:10px;color:#444;text-decoration:none;font-weight:500;font-size:14px;transition:.15s}
  .agent-nav-item i{width:18px;text-align:center;font-size:16px;color:var(--ag-muted);transition:.15s}
  .agent-nav-item:hover{background:#eaf6fb;color:var(--ag-gold-dark)}
  .agent-nav-item:hover i{color:var(--ag-gold-dark)}
  .agent-nav-item.active{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;box-shadow:0 4px 12px rgba(21,101,192,.2)}
  .agent-nav-item.active i{color:#fff}
  /* Pending-count pill on a sidebar item (Mobile Requests). .count-badge is
     otherwise only styled inside .dash-nav-item, so without this it rendered
     as bare text. margin-left:auto pushes it to the right edge like the
     member nav; on the active item the gradient needs a translucent chip. */
  .agent-nav-item .count-badge{margin-left:auto;background:var(--ag-red);color:#fff;font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px;min-width:22px;text-align:center}
  .agent-nav-item.active .count-badge{background:rgba(255,255,255,.28);color:#fff}
  .agent-nav-divider{height:1px;background:#d6ecf3;margin:8px 0}
  .agent-nav-item.signout{color:var(--ag-red);font-weight:600;margin-top:4px}
  .agent-nav-item.signout i{color:var(--ag-red)}
  .agent-nav-item.signout:hover{background:#e3f4f8;color:var(--ag-red-dark)}
  .ag-menu-trigger{background:#fff;border:1.5px solid var(--ag-line);border-radius:10px;padding:8px 14px;font-weight:600;font-size:13px;color:var(--ag-ink);display:inline-flex;align-items:center;gap:8px;margin-bottom:14px;cursor:pointer}
  @media (min-width:992px){.ag-menu-trigger{display:none}}

  /* Add Member page specific */
  .am-hero{background:linear-gradient(135deg,#fff5f5,#eaf6fb);border:1px solid #f3e0cb;border-radius:18px;padding:22px;margin-bottom:18px;display:flex;align-items:center;gap:18px}
  .am-hero .ico-big{width:62px;height:62px;border-radius:14px;background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0;box-shadow:0 8px 22px rgba(21,101,192,.25)}
  .am-hero h1{font-family:'Fraunces',serif;font-weight:600;font-size:24px;margin:0;color:var(--ag-ink)}
  .am-hero h1 em{color:var(--ag-red);font-style:italic}
  .am-hero p{margin:4px 0 0;color:var(--ag-muted);font-size:13px}
  .am-card{background:#fff;border:1px solid var(--ag-line);border-radius:18px;padding:26px}
  .am-card .form-label{font-weight:600;font-size:13px;color:var(--ag-ink);margin-bottom:6px;display:flex;align-items:center;gap:7px}
  .am-card .form-label i{color:var(--ag-gold-dark)}
  .am-card .form-label .required{color:var(--ag-red);font-weight:700}
  .am-card .form-control,.am-card .form-select{border-radius:10px;border:1.5px solid #ddd;padding:10px 14px;font-size:14px;background:#fff}
  .am-card .form-control:focus,.am-card .form-select:focus{border-color:var(--ag-gold);box-shadow:0 0 0 3px rgba(198,138,58,.15);outline:0}
  .am-card .form-check{margin-top:6px}
  .am-card .form-check-input{margin-top:.25rem}
  .am-card .form-check-label{font-size:13.5px;color:#555}
  .am-card .form-check-label a{color:var(--ag-red);text-decoration:underline}
  .am-card .file-upload{border:2px dashed #ddd;border-radius:12px;padding:18px;text-align:center;cursor:pointer;background:#fafafa;display:block;transition:.18s}
  .am-card .file-upload:hover{border-color:var(--ag-gold);background:#eaf6fb}
  .am-card .file-upload i{font-size:28px;color:var(--ag-gold-dark)}
  .am-card .file-upload p{margin:6px 0 0;font-size:13px;color:#555}
  .am-card .file-upload .file-name{display:block;margin-top:6px;font-size:12px;color:var(--ag-gold-dark);font-weight:600}
  .am-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:24px}
  .am-btn-save{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;border:0;padding:12px 28px;border-radius:50px;font-weight:600;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;box-shadow:0 6px 16px rgba(21,101,192,.25);text-decoration:none}
  .am-btn-save:hover{filter:brightness(.95);transform:translateY(-1px);color:#fff}
  .am-btn-cancel{background:#fff;border:1.5px solid #ddd;color:#666;padding:12px 22px;border-radius:50px;font-weight:600;font-size:14px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}
  .am-btn-cancel:hover{border-color:var(--ag-red);color:var(--ag-red)}

  /* Custom alert popup */
  .am-alert-backdrop{position:fixed;inset:0;background:rgba(20,15,10,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px;animation:amAlertFade .2s ease}
  .am-alert-backdrop[hidden]{display:none}
  .am-alert-card{background:#fff;border-radius:22px;padding:32px 28px 26px;max-width:400px;width:100%;box-shadow:0 30px 70px rgba(0,0,0,.28);text-align:center;animation:amAlertPop .28s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden}
  .am-alert-card::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,var(--ag-red),var(--ag-gold))}
  .am-alert-ico{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:6px auto 16px;font-size:34px;color:#fff;box-shadow:0 10px 24px rgba(0,0,0,.15)}
  .am-alert-ico.warn{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold))}
  .am-alert-ico.success{background:linear-gradient(135deg,#2ec27e,#1f9d63)}
  .am-alert-title{font-family:'Fraunces',serif;font-weight:600;font-size:22px;margin:0 0 10px;color:var(--ag-ink);letter-spacing:.2px}
  .am-alert-msg{margin:0 0 22px;color:#555;font-size:14px;line-height:1.55}
  .am-alert-btn{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;border:0;padding:11px 40px;border-radius:50px;font-weight:600;font-size:14px;cursor:pointer;box-shadow:0 8px 20px rgba(21,101,192,.28);transition:.18s;display:inline-flex;align-items:center;gap:8px;font-family:inherit}
  .am-alert-btn:hover{filter:brightness(.95);transform:translateY(-1px)}
  @keyframes amAlertFade{from{opacity:0}to{opacity:1}}
  @keyframes amAlertPop{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}

/* ---- agent-change-password.html ---- */
:root{--ag-red:#1565C0;--ag-red-dark:#0D47A1;--ag-gold:#1CA9C4;--ag-gold-dark:#0E8AA3;--ag-gold-light:#e3f4f8;--ag-ink:#1a1a1a;--ag-muted:#6b6b6b;--ag-line:#eee}
  body{background:#fafafa}

  /* Sidebar (matches agent-dashboard / agent-profile) */
  .agent-user-card{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));border-radius:14px;padding:18px 16px;text-align:center;color:#fff;margin-bottom:16px;position:relative;overflow:hidden}
  .agent-user-card::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 0%,rgba(255,255,255,.15),transparent 50%)}
  .agent-user-card .ag-avatar{width:64px;height:64px;border-radius:50%;background:#fff;color:var(--ag-red);font-family:'Fraunces',serif;font-weight:700;font-size:22px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:10px;border:3px solid rgba(255,255,255,.4);position:relative;z-index:1}
  .agent-user-card h6{font-size:15px;font-weight:600;margin:0;position:relative;z-index:1;color:#fff}
  .agent-user-card .role-pill{background:rgba(255,255,255,.25);font-size:11px;padding:3px 10px;border-radius:20px;display:inline-block;margin-top:6px;font-weight:600;position:relative;z-index:1}
  .agent-nav{display:flex;flex-direction:column;gap:4px}
  .agent-nav-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:10px;color:#444;text-decoration:none;font-weight:500;font-size:14px;transition:.15s}
  .agent-nav-item i{width:18px;text-align:center;font-size:16px;color:var(--ag-muted);transition:.15s}
  .agent-nav-item:hover{background:#eaf6fb;color:var(--ag-gold-dark)}
  .agent-nav-item:hover i{color:var(--ag-gold-dark)}
  .agent-nav-item.active{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;box-shadow:0 4px 12px rgba(21,101,192,.2)}
  .agent-nav-item.active i{color:#fff}
  .agent-nav-divider{height:1px;background:#d6ecf3;margin:8px 0}
  .agent-nav-item.signout{color:var(--ag-red);font-weight:600;margin-top:4px}
  .agent-nav-item.signout i{color:var(--ag-red)}
  .agent-nav-item.signout:hover{background:#e3f4f8;color:var(--ag-red-dark)}
  .ag-menu-trigger{background:#fff;border:1.5px solid var(--ag-line);border-radius:10px;padding:8px 14px;font-weight:600;font-size:13px;color:var(--ag-ink);display:inline-flex;align-items:center;gap:8px;margin-bottom:14px;cursor:pointer}
  @media (min-width:992px){.ag-menu-trigger{display:none}}

  /* Change-password specific */
  .cp-hero{background:linear-gradient(135deg,#fff5f5,#eaf6fb);border:1px solid #f3e0cb;border-radius:18px;padding:22px;margin-bottom:18px;display:flex;align-items:center;gap:18px}
  .cp-hero .ico-big{width:62px;height:62px;border-radius:14px;background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0;box-shadow:0 8px 22px rgba(21,101,192,.25)}
  .cp-hero h1{font-family:'Fraunces',serif;font-weight:600;font-size:24px;margin:0;color:var(--ag-ink)}
  .cp-hero h1 em{color:var(--ag-red);font-style:italic}
  .cp-hero p{margin:4px 0 0;color:var(--ag-muted);font-size:13px}

  .cp-card{background:#fff;border:1px solid var(--ag-line);border-radius:18px;padding:28px;max-width:560px;margin:0 auto}
  .cp-card .form-label{font-weight:600;font-size:13px;color:var(--ag-ink);margin-bottom:6px;display:flex;align-items:center;gap:7px}
  .cp-card .form-label i{color:var(--ag-gold-dark)}
  .cp-pwd-wrap{position:relative}
  .cp-pwd-wrap .form-control{border-radius:10px;border:1.5px solid #ddd;padding:11px 44px 11px 14px;font-size:14px}
  .cp-pwd-wrap .form-control:focus{border-color:var(--ag-gold);box-shadow:0 0 0 3px rgba(198,138,58,.15);outline:0}
  .cp-pwd-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:0;width:34px;height:34px;border-radius:50%;color:var(--ag-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.15s}
  .cp-pwd-toggle:hover{background:#eaf6fb;color:var(--ag-gold-dark)}

  .cp-strength{margin-top:8px;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ag-muted)}
  .cp-strength-bar{flex:1;height:6px;border-radius:3px;background:#eee;overflow:hidden}
  .cp-strength-bar > div{height:100%;width:0;transition:.25s;background:#ef4444}
  .cp-strength.medium .cp-strength-bar > div{width:60%;background:#f59e0b}
  .cp-strength.strong .cp-strength-bar > div{width:100%;background:#16a34a}
  .cp-strength.weak .cp-strength-bar > div{width:30%;background:#ef4444}

  .cp-rules{background:#fafafa;border:1px dashed var(--ag-gold);border-radius:12px;padding:14px 16px;margin:16px 0;font-size:12.5px}
  .cp-rules .cp-rule-title{font-weight:700;color:var(--ag-gold-dark);text-transform:uppercase;letter-spacing:.5px;font-size:10.5px;margin-bottom:8px;display:flex;align-items:center;gap:6px}
  .cp-rules ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}
  .cp-rules li{display:flex;align-items:center;gap:8px;color:#555}
  .cp-rules li i{color:#bbb;font-size:13px}
  .cp-rules li.ok{color:#16a34a}
  .cp-rules li.ok i{color:#16a34a}

  .cp-actions{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:18px}
  .cp-btn-save{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;border:0;padding:12px 28px;border-radius:50px;font-weight:600;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;box-shadow:0 6px 16px rgba(21,101,192,.25)}
  .cp-btn-save:hover{filter:brightness(.95);transform:translateY(-1px)}
  .cp-btn-cancel{background:#fff;border:1.5px solid #ddd;color:#666;padding:12px 22px;border-radius:50px;font-weight:600;font-size:14px;cursor:pointer}
  .cp-btn-cancel:hover{border-color:var(--ag-red);color:var(--ag-red)}

  .cp-error{color:#ef4444;font-size:12px;margin-top:6px;display:none}
  .cp-error.show{display:inline-flex;align-items:center;gap:5px}

/* ---- agent-dashboard.html ---- */
/* ============================================================
     Agent Dashboard â€” scoped styles
     ============================================================ */
  :root{
    --ag-red:#1565C0; --ag-red-dark:#0D47A1;
    --ag-gold:#1CA9C4; --ag-gold-dark:#0E8AA3; --ag-gold-light:#e3f4f8;
    --ag-ink:#1a1a1a; --ag-muted:#6b6b6b;
    --ag-line:#eee;
  }

  .agent-hero-card{
    background:linear-gradient(135deg,#fff5f5 0%,#eaf6fb 100%);
    border:1px solid #f3e0cb;border-radius:18px;padding:20px 22px;margin-bottom:18px;
  }
  .agent-hero-card h1{font-family:'Fraunces',serif;font-weight:600;font-size:26px;margin:0}
  .agent-hero-card h1 em{color:var(--ag-red);font-style:italic}
  .agent-hero-card .kicker{font-family:'Kalam',cursive;font-size:18px;color:var(--ag-gold-dark);display:block;margin-bottom:4px}
  .agent-hero-card .lede{color:var(--ag-muted);font-size:13px;margin:6px 0 0}

  /* Agent sidebar (uses .dash-wrap / .dash-sidebar from style.css) */
  .agent-user-card{
    background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));
    border-radius:14px;padding:18px 16px;text-align:center;color:#fff;margin-bottom:16px;
    position:relative;overflow:hidden
  }
  .agent-user-card::before{
    content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 0%,rgba(255,255,255,.15),transparent 50%);
  }
  .agent-user-card .ag-avatar{
    width:64px;height:64px;border-radius:50%;background:#fff;color:var(--ag-red);
    font-family:'Fraunces',serif;font-weight:700;font-size:22px;
    display:inline-flex;align-items:center;justify-content:center;margin-bottom:10px;
    border:3px solid rgba(255,255,255,.4);position:relative;z-index:1
  }
  .agent-user-card h6{font-size:15px;font-weight:600;margin:0;position:relative;z-index:1;color:#fff}
  .agent-user-card .role-pill{
    background:rgba(255,255,255,.25);font-size:11px;padding:3px 10px;border-radius:20px;
    display:inline-block;margin-top:6px;font-weight:600;position:relative;z-index:1
  }

  .agent-nav{display:flex;flex-direction:column;gap:4px}
  .agent-nav-item{
    display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:10px;
    color:#444;text-decoration:none;font-weight:500;font-size:14px;transition:.15s
  }
  .agent-nav-item i{width:18px;text-align:center;font-size:16px;color:var(--ag-muted);transition:.15s}
  .agent-nav-item:hover{background:#eaf6fb;color:var(--ag-gold-dark)}
  .agent-nav-item:hover i{color:var(--ag-gold-dark)}
  .agent-nav-item.active{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;box-shadow:0 4px 12px rgba(21,101,192,.2)}
  .agent-nav-item.active i{color:#fff}
  .agent-nav-divider{height:1px;background:#d6ecf3;margin:8px 0}
  .agent-nav-item.signout{color:var(--ag-red);font-weight:600;margin-top:4px}
  .agent-nav-item.signout i{color:var(--ag-red)}
  .agent-nav-item.signout:hover{background:#e3f4f8;color:var(--ag-red-dark)}

  /* Mobile menu trigger button */
  .ag-menu-trigger{
    background:#fff;border:1.5px solid var(--ag-line);border-radius:10px;
    padding:8px 14px;font-weight:600;font-size:13px;color:var(--ag-ink);
    display:inline-flex;align-items:center;gap:8px;margin-bottom:14px;cursor:pointer
  }
  @media (min-width:992px){.ag-menu-trigger{display:none}}

  /* Stats row */
  .ag-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:24px}
  @media(max-width:768px){.ag-stats{grid-template-columns:repeat(2,1fr)}}
  .ag-stat{background:#fff;border:1px solid var(--ag-line);border-radius:14px;padding:14px 16px;display:flex;align-items:center;gap:12px;transition:.2s}
  .ag-stat:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.06)}
  .ag-stat .ico{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;color:#fff;flex-shrink:0}
  .ag-stat.s-total .ico{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold))}
  .ag-stat.s-male .ico{background:linear-gradient(135deg,#2c7be5,#3f8efc)}
  .ag-stat.s-female .ico{background:linear-gradient(135deg,#ec4899,#f472b6)}
  .ag-stat.s-pending .ico{background:linear-gradient(135deg,#f59e0b,#fbbf24)}
  .ag-stat .val{font-family:'Fraunces',serif;font-size:22px;font-weight:700;line-height:1;color:var(--ag-ink)}
  .ag-stat .lbl{font-size:12px;color:var(--ag-muted);margin-top:3px}

  /* Toolbar (Add Member + tabs) */
  .ag-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 12px;flex-wrap:wrap}
  .ag-tabs{display:inline-flex;background:#fff;border:1.5px solid #e5d8c2;border-radius:50px;padding:4px;gap:2px}
  .ag-tab{background:transparent;border:0;padding:9px 22px;border-radius:50px;font-weight:600;font-size:14px;color:#444;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-family:inherit;line-height:1}
  .ag-tab.active{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;box-shadow:0 3px 10px rgba(21,101,192,.25)}
  .ag-tab .badge-count{background:rgba(255,255,255,.25);color:#fff;font-size:11px;padding:2px 7px;border-radius:20px;font-weight:700}
  .ag-tab:not(.active) .badge-count{background:var(--ag-gold-light);color:var(--ag-gold-dark)}
  .ag-toolbar-actions{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}
  .ag-add-btn{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;border:0;padding:11px 22px;border-radius:50px;font-weight:600;font-size:14px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;box-shadow:0 4px 14px rgba(21,101,192,.25);text-decoration:none}
  .ag-add-btn:hover{filter:brightness(.95);color:#fff}
  .ag-add-btn i{font-size:16px}

  /* Member list */
  .ag-tab-panel{display:none}
  .ag-tab-panel.active{display:block;animation:agFade .25s ease}
  @keyframes agFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

  /* DataTable card wrapper */
  .ag-table-card{background:#fff;border:1px solid var(--ag-line);border-radius:18px;padding:18px;overflow:hidden}
  .ag-table-card table.ag-table{width:100% !important;border-collapse:separate;border-spacing:0}
  .ag-table-card table.ag-table thead tr{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold))}
  .ag-table-card table.ag-table thead th{
    background:transparent;font-size:11px;color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:.5px;
    padding:13px 14px;border:0;white-space:nowrap;vertical-align:middle
  }
  .ag-table-card table.ag-table thead th:first-child{border-radius:10px 0 0 10px}
  .ag-table-card table.ag-table thead th:last-child{border-radius:0 10px 10px 0}
  .ag-table-card table.ag-table tbody td{padding:14px;vertical-align:middle;border-bottom:1px solid #f5f5f5}
  .ag-table-card table.ag-table tbody tr:last-child td{border-bottom:0}
  .ag-table-card table.ag-table tbody tr:hover{background:#fffaf3}
  /* DataTables top/bottom control bars */
  .ag-table-card .dataTables_wrapper .dataTables_filter input{
    border:1.5px solid #ddd;border-radius:50px;padding:7px 14px;margin-left:8px;font-size:13px;outline:0;transition:.15s;min-width:220px
  }
  .ag-table-card .dataTables_wrapper .dataTables_filter input:focus{border-color:var(--ag-gold);box-shadow:0 0 0 3px rgba(198,138,58,.15)}
  .ag-table-card .dataTables_wrapper .dataTables_length select{
    border:1.5px solid #ddd;border-radius:8px;padding:5px 28px 5px 10px;font-size:13px;background:#fff
  }
  .ag-table-card .dataTables_wrapper .dataTables_info{font-size:12px;color:var(--ag-muted);padding-top:14px}
  .ag-table-card .dataTables_wrapper .dataTables_paginate{padding-top:14px}
  .ag-table-card .dataTables_wrapper .paginate_button{
    border-radius:8px !important;margin:0 2px;padding:5px 11px !important;border:1px solid #eee !important;background:#fff !important;color:#444 !important
  }
  .ag-table-card .dataTables_wrapper .paginate_button.current,
  .ag-table-card .dataTables_wrapper .paginate_button.current:hover{
    background:linear-gradient(135deg,var(--ag-red),var(--ag-gold)) !important;color:#fff !important;border-color:transparent !important
  }
  .ag-table-card .dataTables_wrapper .paginate_button:hover{background:#fff7eb !important;color:var(--ag-gold-dark) !important;border-color:var(--ag-gold) !important}
  /* Sort indicator icons */
  table.dataTable thead .sorting:before,
  table.dataTable thead .sorting:after,
  table.dataTable thead .sorting_asc:before,
  table.dataTable thead .sorting_asc:after,
  table.dataTable thead .sorting_desc:before,
  table.dataTable thead .sorting_desc:after{opacity:.45;color:#fff}
  table.dataTable thead .sorting_asc:before,
  table.dataTable thead .sorting_desc:after{opacity:1;color:#fff}

  /* Member cell (photo + name combo inside td) */
  .ag-member-cell{display:flex;align-items:center;gap:12px;min-width:200px}
  .ag-member-cell .ag-member-info{min-width:0}

  /* Religion Â· Caste Â· Sub-Caste combined cell */
  .ag-rcs{display:flex;flex-direction:column;gap:3px;min-width:140px}
  .ag-rcs .rcs-rel{
    display:inline-block;background:var(--ag-gold-light);color:var(--ag-gold-dark);
    font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px;
    text-transform:uppercase;letter-spacing:.4px;width:fit-content
  }
  .ag-rcs .rcs-sub{font-size:13px;color:var(--ag-ink);font-weight:500}

  /* ===== Filter toggle (header bar always visible) ===== */
  .ag-filter-toggle{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    background:#fff;border:1.5px solid #e5d8c2;border-radius:50px;padding:10px 18px;
    margin:0;cursor:pointer;transition:.15s;font-weight:600;color:var(--ag-ink);font-size:14px
  }
  .ag-filter-toggle:hover{border-color:var(--ag-gold);color:var(--ag-gold-dark)}
  .ag-filter-toggle .ft-label{display:inline-flex;align-items:center;gap:10px}
  .ag-filter-toggle .ft-label i.bi-funnel-fill{color:var(--ag-red);font-size:16px}
  .ag-filter-toggle .ft-chevron{transition:transform .25s;color:var(--ag-muted);font-size:14px}
  .ag-filter-toggle.is-open{
    background:linear-gradient(135deg,#fffbf5,#fff7f0);border-color:var(--ag-gold);color:var(--ag-gold-dark);
    border-radius:14px 14px 0 0;border-bottom:0
  }
  .ag-filter-toggle.is-open .ft-chevron{transform:rotate(180deg)}

  /* ===== Filter bar (collapsible) ===== */
  .ag-filter-bar{
    background:linear-gradient(135deg,#fffbf5 0%,#fff7f0 100%);
    border:1px solid #f3e0cb;border-radius:14px;padding:14px 12px;margin:0 0 16px;
    display:none;align-items:flex-end;gap:12px 14px;flex-wrap:wrap;
    animation:fbSlide .25s ease
  }
  .ag-filter-bar.is-open{display:flex}
  @keyframes fbSlide{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
  .ag-filter-bar .filter-title{
    display:inline-flex;align-items:center;gap:8px;
    font-weight:700;font-size:13px;color:var(--ag-red-dark);
    margin-right:6px;letter-spacing:.3px
  }
  .ag-filter-bar .filter-title i{color:var(--ag-gold-dark);font-size:15px}
  .ag-filter-bar .filter-group{display:flex;flex-direction:column;gap:4px;flex:1 1 150px;min-width:140px}
  .ag-filter-bar .filter-group > label{
    font-size:10px;color:var(--ag-muted);font-weight:700;text-transform:uppercase;letter-spacing:.5px
  }
  .ag-filter-bar select,.ag-filter-bar input[type="text"]{
    border:1.5px solid #ddd;border-radius:10px;padding:8px 12px;font-size:13px;background:#fff;
    transition:.15s;outline:0;width:100%
  }
  .ag-filter-bar select:focus,.ag-filter-bar input[type="text"]:focus{
    border-color:var(--ag-gold);box-shadow:0 0 0 3px rgba(198,138,58,.15)
  }
  .ag-filter-bar .ag-filter-clear,
  .ag-filter-bar .ag-filter-apply{
    padding:8px 14px;border-radius:10px;
    font-weight:600;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;
    transition:.15s;white-space:nowrap;height:38px;border:1.5px solid transparent;flex-shrink:0
  }
  .ag-filter-bar .ag-filter-clear{background:#fff;border-color:#ddd;color:#666}
  .ag-filter-bar .ag-filter-clear:hover{border-color:var(--ag-red);color:var(--ag-red)}
  .ag-filter-bar .ag-filter-apply{
    background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;
    box-shadow:0 4px 12px rgba(21,101,192,.22)
  }
  .ag-filter-bar .ag-filter-apply:hover{filter:brightness(.95);transform:translateY(-1px)}
  .ag-active-count{
    display:inline-flex;align-items:center;gap:6px;background:var(--ag-red);color:#fff;
    font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;height:fit-content
  }
  .ag-active-count.hidden{display:none}

  .ag-photo{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid var(--ag-gold-light)}
  .ag-photo-empty{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--ag-gold-light),#fff7eb);display:flex;align-items:center;justify-content:center;color:var(--ag-gold-dark);font-weight:700;font-size:18px;border:2px solid var(--ag-gold-light)}

  .ag-name{font-family:'Fraunces',serif;font-weight:600;font-size:15px;color:var(--ag-ink);margin-bottom:2px;display:flex;align-items:center;gap:8px}
  .ag-id-pill{background:#f5f5f5;color:#777;font-size:10px;padding:2px 7px;border-radius:20px;font-weight:600}
  .ag-meta{font-size:12px;color:var(--ag-muted);line-height:1.4}
  .ag-meta .dot{margin:0 4px;color:#ccc}

  /* Profile % button */
  .ag-pct-link{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:50px;background:#fff;border:1.5px solid var(--ag-gold);color:var(--ag-gold-dark);font-weight:700;font-size:13px;text-decoration:none;transition:.2s}
  .ag-pct-link:hover{background:var(--ag-gold);color:#fff}
  .ag-pct-link .ag-pct-ring{width:22px;height:22px;border-radius:50%;background:conic-gradient(var(--ag-gold) calc(var(--pct) * 1%),#f0e2c4 0);display:flex;align-items:center;justify-content:center;flex-shrink:0}
  .ag-pct-link .ag-pct-ring::after{content:"";width:14px;height:14px;border-radius:50%;background:#fff;display:block}
  .ag-pct-link.high{border-color:#16a34a;color:#16a34a}
  .ag-pct-link.high:hover{background:#16a34a;color:#fff}
  .ag-pct-link.high .ag-pct-ring{background:conic-gradient(#16a34a calc(var(--pct) * 1%),#dcfce7 0)}
  .ag-pct-link.low{border-color:#dc2626;color:#dc2626}
  .ag-pct-link.low:hover{background:#dc2626;color:#fff}
  .ag-pct-link.low .ag-pct-ring{background:conic-gradient(#dc2626 calc(var(--pct) * 1%),#fee2e2 0)}

  /* Partner pref link */
  .ag-pref-link{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:50px;background:#eef4ff;color:#2c7be5;border:1.5px solid #cfdcef;font-weight:600;font-size:13px;text-decoration:none;transition:.2s}
  .ag-pref-link:hover{background:#2c7be5;color:#fff;border-color:#2c7be5}

  /* Activity / Matches counts */
  .ag-count-link{display:inline-flex;align-items:center;gap:7px;text-decoration:none;background:#fff;border:1.5px solid #eee;border-radius:10px;padding:5px 10px 5px 5px;transition:.2s}
  .ag-count-link:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.07)}
  .ag-count-link .ag-count-ico{width:26px;height:26px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:12px;flex-shrink:0}
  .ag-count-link.act .ag-count-ico{background:linear-gradient(135deg,#10b981,#34d399)}
  .ag-count-link.match .ag-count-ico{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold))}
  .ag-count-link .ag-count-num{font-family:'Fraunces',serif;font-weight:700;font-size:15px;color:var(--ag-ink);line-height:1}
  .ag-count-link .ag-count-lbl{display:none}   /* compact mode â€” show only icon + number */
  .ag-count-link.act:hover{border-color:#10b981}
  .ag-count-link.match:hover{border-color:var(--ag-red)}

  /* Tighter table cell padding so all 7 columns fit on standard desktops */
  .ag-table-card table.ag-table tbody td{padding:11px 10px}
  .ag-table-card table.ag-table thead th{padding:11px 10px}
  .ag-photo{width:48px;height:48px}
  .ag-rcs{min-width:120px}
  .ag-rcs .rcs-sub{font-size:12.5px}
  .ag-pct-link{padding:6px 11px;font-size:12.5px}
  .ag-pref-link{padding:6px 11px;font-size:12.5px}
  .ag-act-btn{width:30px;height:30px;font-size:13px}
  .ag-row-actions{gap:4px}

  .ag-row-actions{display:flex;justify-content:flex-end;gap:6px;flex-wrap:nowrap}
  .ag-act-btn{
    background:#fff;border:1px solid #eee;width:34px;height:34px;border-radius:50%;
    display:inline-flex;align-items:center;justify-content:center;color:var(--ag-muted);
    cursor:pointer;transition:.15s;text-decoration:none;font-size:14px;flex-shrink:0
  }
  .ag-act-btn:hover{color:#fff;border-color:transparent;transform:translateY(-1px)}
  .ag-act-btn.view:hover{background:linear-gradient(135deg,#2c7be5,#3f8efc);box-shadow:0 4px 10px rgba(44,123,229,.25)}
  .ag-act-btn.settings:hover{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));box-shadow:0 4px 10px rgba(21,101,192,.25)}

  /* Responsive child rows (when columns collapse on mobile) */
  table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before{
    background-color:var(--ag-red) !important;border-color:var(--ag-red) !important;
    box-shadow:none !important;height:18px !important;width:18px !important;
    line-height:18px !important;font-size:14px !important;top:50% !important;
    transform:translateY(-50%);margin-top:0 !important
  }
  table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before{
    background-color:var(--ag-gold) !important;border-color:var(--ag-gold) !important
  }
  table.dataTable.dtr-inline.collapsed > tbody > tr.parent{
    background:linear-gradient(135deg,#fffbf5,#fff7f0) !important;
    box-shadow:inset 4px 0 0 var(--ag-gold);
  }
  table.dataTable.dtr-inline.collapsed > tbody > tr > td.child{
    padding:16px !important;background:#fafafa;border-bottom:1px solid #eee !important
  }
  ul.dtr-details{width:100%;display:flex;flex-direction:column;gap:8px}
  ul.dtr-details li{
    padding:10px 12px !important;border:0 !important;
    background:#fff;border-radius:10px;
    display:flex !important;align-items:center;justify-content:space-between;gap:12px;
    box-shadow:0 1px 3px rgba(0,0,0,.04)
  }
  ul.dtr-details li:first-child{border-top:0 !important}
  ul.dtr-details .dtr-title{
    font-size:11px;color:var(--ag-muted);font-weight:700;text-transform:uppercase;
    letter-spacing:.5px;min-width:0;flex-shrink:0;display:inline-flex;align-items:center;gap:6px
  }
  ul.dtr-details .dtr-data{text-align:right}

  /* Mobile-specific: more compact member cell + Add button full width */
  @media (max-width: 768px){
    .ag-table-card{padding:12px}
    .ag-member-cell{min-width:0;gap:10px}
    .ag-photo{width:48px;height:48px}
    .ag-toolbar{flex-direction:column;align-items:stretch}
    .ag-tabs{justify-content:center}
    .ag-toolbar-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
    .ag-add-btn,.ag-filter-toggle{justify-content:center;width:100%}
    /* Mobile: 2-row grid â€” 3 dropdowns on row 1, Clear+Apply on row 2 */
    .ag-filter-bar.is-open{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:12px 10px;align-items:end;overflow:visible}
    .ag-filter-bar .filter-group{grid-column:span 2;min-width:0}
    .ag-filter-bar select{padding:7px 8px;font-size:12px}
    .ag-filter-bar .ag-filter-clear,
    .ag-filter-bar .ag-filter-apply{grid-column:span 3;padding:9px 10px;font-size:12.5px;justify-content:center;width:100%}
  }

  /* Modal â€” clean header design (no heavy gradient banner) */
  .ag-add-modal{border-radius:20px;overflow:hidden;border:0;box-shadow:0 18px 50px rgba(0,0,0,.18)}
  .ag-add-modal-head{
    background:#fff;border-bottom:1px solid #d6ecf3;padding:20px 24px;
    display:flex;align-items:center;gap:14px;position:relative
  }
  .ag-add-modal-head::before{
    content:"";position:absolute;top:0;left:0;right:0;height:4px;
    background:linear-gradient(90deg,var(--ag-red),var(--ag-gold),var(--ag-red));
    background-size:200% 100%;animation:headShimmer 4s linear infinite
  }
  @keyframes headShimmer{0%{background-position:0% 50%}100%{background-position:200% 50%}}
  .ag-add-modal-icon{
    width:48px;height:48px;border-radius:14px;
    background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;
    display:flex;align-items:center;justify-content:center;font-size:22px;
    box-shadow:0 6px 18px rgba(21,101,192,.25);flex-shrink:0
  }
  .ag-add-modal-text{flex:1;min-width:0}
  .ag-add-modal-text .modal-title{
    font-family:'Fraunces',serif;font-weight:600;font-size:20px;color:var(--ag-ink);margin:0
  }
  .ag-add-modal-sub{margin:2px 0 0;color:var(--ag-muted);font-size:12.5px}
  .ag-add-modal-close{
    width:36px;height:36px;border-radius:50%;background:#f5f5f5;border:0;color:#666;
    display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.15s;flex-shrink:0
  }
  .ag-add-modal-close:hover{background:var(--ag-red);color:#fff}

  /* Modal form styling */
  .ag-modal-form .form-label{font-weight:600;font-size:13px;color:var(--ag-ink);margin-bottom:6px;display:flex;align-items:center;gap:7px}
  .ag-modal-form .form-label i{color:var(--ag-gold-dark)}
  .ag-modal-form .form-control,.ag-modal-form .form-select{border-radius:10px;border:1.5px solid #ddd;padding:10px 14px;font-size:14px}
  .ag-modal-form .form-control:focus,.ag-modal-form .form-select:focus{border-color:var(--ag-gold);box-shadow:0 0 0 3px rgba(198,138,58,.15)}

  /* Gender toggle â€” illustrated card with portrait icon and animated check */
  .ag-gender-toggle{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .ag-gender-toggle input{display:none}
  .ag-gender-toggle label{
    background:#fff;border:2px solid #e8e8e8;border-radius:18px;
    padding:22px 14px 18px;text-align:center;cursor:pointer;transition:.25s;
    display:flex;flex-direction:column;align-items:center;gap:10px;margin:0;
    position:relative;overflow:hidden;font-weight:600;color:#555
  }
  .ag-gender-toggle label::before{
    content:"";position:absolute;inset:0;
    background:radial-gradient(circle at 50% 120%,rgba(21,101,192,0),transparent 60%);
    transition:.25s;pointer-events:none
  }
  .ag-gender-toggle .gender-illustration{
    width:74px;height:74px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;font-size:38px;
    background:#f5f5f5;color:#bbb;transition:.25s;position:relative;z-index:1
  }
  .ag-gender-toggle .gender-check{
    position:absolute;top:12px;right:12px;width:24px;height:24px;border-radius:50%;
    background:#16a34a;color:#fff;display:flex;align-items:center;justify-content:center;
    font-size:13px;opacity:0;transform:scale(.5);transition:.25s;z-index:2
  }
  .ag-gender-toggle .gender-label{font-size:15px;line-height:1.2;z-index:1;position:relative}
  .ag-gender-toggle .gender-hint{font-size:11px;color:#999;font-weight:500;margin-top:-2px;z-index:1;position:relative}
  .ag-gender-toggle label:hover{border-color:#cdb88b;transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,0,0,.05)}
  .ag-gender-toggle label:hover .gender-illustration{background:#eaf6fb;color:var(--ag-gold-dark)}
  /* Male selected */
  .ag-gender-toggle input[value="male"]:checked + label{
    border-color:#2c7be5;background:linear-gradient(135deg,#eef4ff 0%,#fff 60%);
    color:#1856b8;box-shadow:0 8px 22px rgba(44,123,229,.18)
  }
  .ag-gender-toggle input[value="male"]:checked + label .gender-illustration{
    background:linear-gradient(135deg,#2c7be5,#3f8efc);color:#fff;
    box-shadow:0 6px 16px rgba(44,123,229,.35)
  }
  .ag-gender-toggle input[value="male"]:checked + label .gender-check{opacity:1;transform:scale(1)}
  /* Female selected */
  .ag-gender-toggle input[value="female"]:checked + label{
    border-color:#ec4899;background:linear-gradient(135deg,#fdf2f8 0%,#fff 60%);
    color:#be185d;box-shadow:0 8px 22px rgba(236,72,153,.18)
  }
  .ag-gender-toggle input[value="female"]:checked + label .gender-illustration{
    background:linear-gradient(135deg,#ec4899,#f472b6);color:#fff;
    box-shadow:0 6px 16px rgba(236,72,153,.35)
  }
  .ag-gender-toggle input[value="female"]:checked + label .gender-check{opacity:1;transform:scale(1)}

  .ag-photo-uploader{border:2px dashed #ddd;border-radius:14px;padding:24px;text-align:center;cursor:pointer;transition:.2s;background:#fafafa;position:relative;overflow:hidden}
  .ag-photo-uploader:hover{border-color:var(--ag-gold);background:#eaf6fb}
  .ag-photo-uploader.has-photo{border-style:solid;border-color:var(--ag-gold);padding:0;background:#fff}
  .ag-photo-uploader input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer}
  .ag-photo-uploader i{font-size:32px;color:var(--ag-gold-dark);margin-bottom:6px}
  .ag-photo-uploader-text{font-weight:600;font-size:13px;color:var(--ag-ink)}
  .ag-photo-uploader-hint{font-size:11px;color:var(--ag-muted);margin-top:3px}
  .ag-photo-preview{width:100%;height:160px;object-fit:cover;border-radius:12px;display:none}
  .ag-photo-uploader.has-photo .ag-photo-preview{display:block}
  .ag-photo-uploader.has-photo .ag-photo-uploader-text,
  .ag-photo-uploader.has-photo .ag-photo-uploader-hint,
  .ag-photo-uploader.has-photo i.bi-cloud-upload{display:none}

  /* Empty state */
  .ag-empty{text-align:center;padding:50px 20px;color:var(--ag-muted)}
  .ag-empty i{font-size:48px;color:var(--ag-gold);opacity:.6;margin-bottom:12px}

/* ---- agent-edit-profile.html ---- */
/* ============================================================
     Profile summary header â€” sits at top of main content.
     4 zones: Photo Â· Name+ID Â· Religion/Caste/Sub-Caste Â· State/City/Occupation
     Responsive: last zone hides on narrow viewports.
     ============================================================ */
  :root{
    --ag-red:#1565C0; --ag-red-dark:#0D47A1;
    --ag-gold:#1CA9C4; --ag-gold-dark:#0E8AA3; --ag-gold-light:#e3f4f8;
  }
  /* Banner sits INSIDE site-header as a 2nd row */
  .ag-edit-header-wrap{
    background:linear-gradient(135deg,#fffbf5 0%,#fff7f0 100%);
    border-top:1px solid #d6ecf3;
  }
  .ag-edit-header{
    padding:8px 0;
    display:flex; align-items:center; gap:0;
    background:transparent; border:0;
    overflow-x:auto; overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin; scrollbar-color:#e5d8c2 transparent
  }
  .ag-edit-header::-webkit-scrollbar{height:4px}
  .ag-edit-header::-webkit-scrollbar-thumb{background:#e5d8c2;border-radius:4px}
  .ag-edit-header::-webkit-scrollbar-track{background:transparent}
  .ag-eh-photo{
    width:60px; height:60px; border-radius:50%;
    flex-shrink:0; margin-right:16px;
    position:sticky; left:0; z-index:2;
    background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));
    padding:2px;
    box-shadow:6px 0 8px -4px rgba(0,0,0,.05)
  }
  .ag-eh-photo > img{
    width:100%; height:100%; object-fit:cover; border-radius:50%;
    border:2px solid #fff; background:#fff
  }
  .ag-eh-photo .ag-eh-camera{
    position:absolute; right:-3px; bottom:-3px; width:22px; height:22px;
    border-radius:50%; background:#fff; border:2px solid var(--ag-gold);
    color:var(--ag-gold-dark); display:flex; align-items:center; justify-content:center;
    font-size:10px; cursor:pointer; transition:.15s
  }
  .ag-eh-photo .ag-eh-camera:hover{background:var(--ag-gold); color:#fff}

  .ag-eh-section{
    flex:0 0 auto;
    display:flex; flex-direction:column; justify-content:center;
    padding:0 16px;
    border-left:1px solid #d6ecf3;
    min-width:170px
  }
  .ag-eh-section:first-of-type{ border-left:0; padding-left:0; min-width:200px }

  .ag-eh-section--name .ag-eh-name{
    font-family:'Fraunces',serif; font-weight:600; font-size:18px;
    color:#1a1a1a; line-height:1.2; margin:0;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis
  }
  .ag-eh-section--name .ag-eh-id{
    display:inline-flex; align-items:center; gap:5px;
    background:var(--ag-gold-light); color:var(--ag-gold-dark);
    font-size:11px; font-weight:700; letter-spacing:.3px;
    padding:2px 9px; border-radius:20px; margin-top:5px; width:fit-content
  }
  .ag-eh-section--name .ag-eh-id i{font-size:12px}

  .ag-eh-field{
    display:flex; align-items:center; gap:7px;
    font-size:12.5px; color:#333; padding:1px 0;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis
  }
  .ag-eh-field > i{
    color:var(--ag-gold-dark); width:16px; flex-shrink:0; font-size:13px; text-align:center
  }
  .ag-eh-field .ag-eh-label{
    color:#888; font-weight:600; font-size:10.5px;
    text-transform:uppercase; letter-spacing:.4px; margin-right:2px
  }
  .ag-eh-field strong{font-weight:600; color:#1a1a1a}

  /* Desktop (â‰¥992px): center the banner content horizontally */
  @media (min-width: 992px){
    .ag-edit-header{ justify-content:center }
    .ag-eh-photo{ position:static; box-shadow:none }  /* no sticky needed when centered */
  }

  /* Tablet (â‰¤991px): keep all 4 zones, slightly tighter */
  @media (max-width: 991.98px){
    .ag-eh-photo{ width:54px; height:54px; margin-right:12px }
    .ag-eh-section{ padding:0 12px }
    .ag-eh-section--name .ag-eh-name{ font-size:16px }
  }

  /* Mobile (â‰¤575px): everything stays visible â€” sections horizontally scroll */
  @media (max-width: 575.98px){
    .ag-edit-header{ padding:6px 0 }
    .ag-eh-photo{ width:48px; height:48px; margin-right:10px }
    .ag-eh-photo .ag-eh-camera{ width:18px; height:18px; font-size:9px }
    .ag-eh-section{ padding:0 10px; min-width:150px }
    .ag-eh-section:first-of-type{ min-width:170px }
    .ag-eh-section--name .ag-eh-name{ font-size:15px }
    .ag-eh-field{ font-size:12px }
  }
/* Inline edit pattern (per-section view/edit toggle) */
  .ep-section-title-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
  .ep-section-title-bar > span{display:inline-flex;align-items:center;gap:8px}
  .ep-edit-btn{background:#fff;border:1.5px solid #e4d3b6;border-radius:8px;padding:5px 14px;font-size:12.5px;color:#0D47A1;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:.18s;font-family:inherit;line-height:1.4}
  .ep-edit-btn i{font-size:13px}
  .ep-edit-btn:hover{background:linear-gradient(135deg,#1565C0,#1CA9C4);color:#fff;border-color:transparent;box-shadow:0 4px 12px rgba(21,101,192,.22)}
  .ep-view-text{min-height:64px;padding:14px 16px;background:#fafafa;border:1px solid #ececec;border-radius:10px;margin:0;font-size:14px;color:#333;white-space:pre-wrap;word-break:break-word;line-height:1.55}
  .ep-view-text:empty::before{content:"Not added yet";color:#aaa;font-style:italic}
  .ep-view-hint{display:block;margin-top:6px;font-size:11.5px;color:#888}
  .ep-edit-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
  .ep-btn-save{background:linear-gradient(135deg,#1565C0,#1CA9C4);color:#fff;border:0;padding:9px 24px;border-radius:50px;font-weight:600;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;box-shadow:0 5px 14px rgba(21,101,192,.25);font-family:inherit;transition:.18s}
  .ep-btn-save:hover{filter:brightness(.95);transform:translateY(-1px)}
  .ep-btn-cancel{background:#fff;border:1.5px solid #ddd;color:#666;padding:9px 20px;border-radius:50px;font-weight:600;font-size:13px;cursor:pointer;font-family:inherit;transition:.18s}
  .ep-btn-cancel:hover{border-color:#1565C0;color:#1565C0}
  /* Multi-field view grid */
  .ep-view-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;padding:6px 0 2px}
  @media (max-width:575px){.ep-view-grid{grid-template-columns:1fr}}
  .ep-view-field{display:flex;flex-direction:column;gap:4px;padding:11px 14px;background:#fafafa;border:1px solid #ececec;border-radius:10px}
  .ep-view-field .ep-view-label{font-size:10.5px;color:#888;font-weight:700;text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:6px}
  .ep-view-field .ep-view-label i{color:#1CA9C4;font-size:13px}
  .ep-view-field .ep-view-value{font-size:14px;color:#222;font-weight:500;word-break:break-word;line-height:1.45}
  .ep-view-field .ep-view-value:empty::before{content:"â€”";color:#bbb}
  /* Profile-view-style sections used inside edit page */
  .pv-section .pv-sec-head{padding:14px 18px}
  .pv-sec-body-edit{padding:18px}
  .pv-section .ep-edit-btn{background:rgba(255,255,255,.85);border-color:rgba(0,0,0,.08);color:#0D47A1}
  .pv-section .ep-edit-btn:hover{background:linear-gradient(135deg,#1565C0,#1CA9C4);color:#fff;border-color:transparent;box-shadow:0 4px 12px rgba(21,101,192,.22)}
  .pv-bio[data-view-text]::before{content:"\201C"}
  .pv-bio[data-view-text]::after{content:"\201D"}
  .pv-sec-body-edit .form-label{font-weight:600;font-size:13px;color:#333;margin-bottom:6px;display:flex;align-items:center;gap:7px}
  .pv-sec-body-edit .form-label i{color:#1CA9C4}
  /* Match My Religion section-title bg (pink-cream gradient) on About/Basic headers */
  .pv-section .pv-sec-head{background:linear-gradient(135deg,var(--green-light,#e3f4f8),var(--gold-light,#e3f4f8));border-bottom:1px solid var(--line,#eee);padding:10px 16px}
  .pv-section .pv-sec-title{color:var(--ink,#1a1a1a);font-family:var(--font-display,'Fraunces',serif);font-size:16px;font-weight:600}
  .pv-section .pv-sec-icon{background:rgba(255,255,255,.7);color:var(--orange,#1CA9C4)}
:root{--ag-red:#1565C0;--ag-red-dark:#0D47A1;--ag-gold:#1CA9C4;--ag-gold-dark:#0E8AA3;--ag-gold-light:#e3f4f8;--ag-ink:#1a1a1a;--ag-muted:#6b6b6b;--ag-line:#eee}
  body{background:#fafafa}

  /* Reusable sidebar (matches agent-dashboard) */
  .agent-user-card{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));border-radius:14px;padding:18px 16px;text-align:center;color:#fff;margin-bottom:16px;position:relative;overflow:hidden}
  .agent-user-card::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 0%,rgba(255,255,255,.15),transparent 50%)}
  .agent-user-card .ag-avatar{width:64px;height:64px;border-radius:50%;background:#fff;color:var(--ag-red);font-family:'Fraunces',serif;font-weight:700;font-size:22px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:10px;border:3px solid rgba(255,255,255,.4);position:relative;z-index:1}
  .agent-user-card h6{font-size:15px;font-weight:600;margin:0;position:relative;z-index:1;color:#fff}
  .agent-user-card .role-pill{background:rgba(255,255,255,.25);font-size:11px;padding:3px 10px;border-radius:20px;display:inline-block;margin-top:6px;font-weight:600;position:relative;z-index:1}
  .agent-nav{display:flex;flex-direction:column;gap:4px}
  .agent-nav-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:10px;color:#444;text-decoration:none;font-weight:500;font-size:14px;transition:.15s}
  .agent-nav-item i{width:18px;text-align:center;font-size:16px;color:var(--ag-muted);transition:.15s}
  .agent-nav-item:hover{background:#eaf6fb;color:var(--ag-gold-dark)}
  .agent-nav-item:hover i{color:var(--ag-gold-dark)}
  .agent-nav-item.active{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;box-shadow:0 4px 12px rgba(21,101,192,.2)}
  .agent-nav-item.active i{color:#fff}
  .agent-nav-divider{height:1px;background:#d6ecf3;margin:8px 0}
  .agent-nav-item.signout{color:var(--ag-red);font-weight:600;margin-top:4px}
  .agent-nav-item.signout i{color:var(--ag-red)}
  .agent-nav-item.signout:hover{background:#e3f4f8;color:var(--ag-red-dark)}
  .ag-menu-trigger{background:#fff;border:1.5px solid var(--ag-line);border-radius:10px;padding:8px 14px;font-weight:600;font-size:13px;color:var(--ag-ink);display:inline-flex;align-items:center;gap:8px;margin-bottom:14px;cursor:pointer}
  @media (min-width:992px){.ag-menu-trigger{display:none}}

  /* Page header card */
  .ap-page-head{background:linear-gradient(135deg,#fff5f5,#eaf6fb);border:1px solid #f3e0cb;border-radius:18px;padding:22px;margin-bottom:18px;display:flex;align-items:center;gap:18px}
  .ap-page-head .ico-big{width:62px;height:62px;border-radius:14px;background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0;box-shadow:0 8px 22px rgba(21,101,192,.25)}
  .ap-page-head h1{font-family:'Fraunces',serif;font-weight:600;font-size:24px;margin:0;color:var(--ag-ink)}
  .ap-page-head h1 em{color:var(--ag-red);font-style:italic}
  .ap-page-head p{margin:4px 0 0;color:var(--ag-muted);font-size:13px}

  /* Form card */
  .ap-card{background:#fff;border:1px solid var(--ag-line);border-radius:18px;padding:24px;margin-bottom:18px}
  .ap-card-head{display:flex;align-items:center;gap:10px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px dashed #eee}
  .ap-card-head h3{font-family:'Fraunces',serif;font-weight:600;font-size:18px;margin:0;color:var(--ag-ink)}
  .ap-card-head i{color:var(--ag-gold-dark);font-size:18px}
  .ap-card .form-label{font-weight:600;font-size:13px;color:var(--ag-ink);margin-bottom:6px;display:flex;align-items:center;gap:7px}
  .ap-card .form-label i{color:var(--ag-gold-dark)}
  .ap-card .form-control,.ap-card .form-select{border-radius:10px;border:1.5px solid #ddd;padding:10px 14px;font-size:14px;background:#fff}
  .ap-card .form-control:focus,.ap-card .form-select:focus{border-color:var(--ag-gold);box-shadow:0 0 0 3px rgba(198,138,58,.15)}
  .ap-card textarea.form-control{resize:vertical}

  /* Photo block */
  .ap-photo-block{display:flex;align-items:center;gap:18px;background:#fafafa;border:1px dashed var(--ag-gold);border-radius:14px;padding:18px}
  .ap-photo-block img{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid var(--ag-gold-light)}
  .ap-photo-block .ap-photo-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
  .ap-photo-block .btn-photo{background:#fff;border:1.5px solid var(--ag-gold);color:var(--ag-gold-dark);border-radius:10px;padding:7px 14px;font-weight:600;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
  .ap-photo-block .btn-photo:hover{background:var(--ag-gold);color:#fff}
  .ap-photo-block .btn-photo.danger{border-color:#ef4444;color:#ef4444}
  .ap-photo-block .btn-photo.danger:hover{background:#ef4444;color:#fff}

  /* Styled upload card (same design as vendor-profile.html) */
  .ap-upload{display:flex;align-items:center;gap:12px;background:#fafafa;border:2px dashed #ddd;border-radius:12px;padding:12px 14px;cursor:pointer;transition:.18s;margin:0}
  .ap-upload:hover{border-color:var(--ag-gold);background:#eaf6fb}
  .ap-upload-ico{width:42px;height:42px;border-radius:10px;background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;box-shadow:0 4px 10px rgba(21,101,192,.2)}
  .ap-upload-text{display:flex;flex-direction:column;line-height:1.3;min-width:0}
  .ap-upload-title{font-weight:600;font-size:13.5px;color:#1a1a1a}
  .ap-upload-hint{font-size:11px;color:#888;margin-top:2px}
  .ap-upload-status{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:#16a34a;font-weight:600;margin-top:6px}
  .ap-upload-status i{color:#16a34a}

  /* Save button row */
  .ap-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
  .ap-btn-save{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;border:0;padding:12px 28px;border-radius:50px;font-weight:600;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;box-shadow:0 6px 16px rgba(21,101,192,.25)}
  .ap-btn-save:hover{filter:brightness(.95);transform:translateY(-1px)}
  .ap-btn-cancel{background:#fff;border:1.5px solid #ddd;color:#666;padding:12px 22px;border-radius:50px;font-weight:600;font-size:14px;cursor:pointer}
  .ap-btn-cancel:hover{border-color:var(--ag-red);color:var(--ag-red)}

  /* Read-only field hint */
  .ap-readonly-hint{font-size:11px;color:var(--ag-muted);margin-top:3px;display:inline-flex;align-items:center;gap:5px}
  .ap-readonly-hint i{color:var(--ag-gold-dark)}

/* ---- agent-invoice.html ---- */
:root{--inv-red:#D61F26;--inv-red-dark:#B71C22;--inv-gold:#C68A3A;--inv-gold-dark:#A8742A;--inv-gold-light:#f5e8d4;--inv-ink:#1a1a1a;--inv-muted:#666;--inv-line:#e2dccc}
  body{background:#fafafa;font-family:'Poppins',sans-serif;color:var(--inv-ink)}
  .inv-actions{background:#fff;border-bottom:1px solid #e5e5e5;padding:12px 0;position:sticky;top:0;z-index:50}
  .inv-actions .container{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
  .inv-actions h6{font-family:'Fraunces',serif;font-weight:700;font-size:16px;margin:0;color:var(--inv-ink)}
  .inv-actions h6 i{color:var(--inv-red);margin-right:6px}
  .btn-group-actions{display:flex;gap:8px;flex-wrap:wrap}
  .inv-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:10px;font-weight:600;font-size:13px;cursor:pointer;border:1.5px solid transparent;text-decoration:none;transition:.15s}
  .inv-btn.ghost{background:#fff;border-color:#ddd;color:#444}
  .inv-btn.ghost:hover{border-color:var(--inv-gold);color:var(--inv-gold-dark)}
  .inv-btn.primary{background:linear-gradient(135deg,var(--inv-red),var(--inv-gold));color:#fff}
  .inv-btn.primary:hover{filter:brightness(.95);color:#fff}

  .inv-paper{max-width:794px;margin:24px auto 60px;background:#fff;border:1px solid var(--inv-line);border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.06);padding:26px 32px;font-size:12px;line-height:1.45}
  @media(max-width:600px){.inv-paper{padding:20px 18px;margin:16px 12px 40px}}
  .inv-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap;padding-bottom:12px;border-bottom:2px solid var(--inv-red)}
  .inv-brand .inv-logo{height:64px;width:auto;max-width:200px;display:block;margin-bottom:8px}
  .inv-brand h2{font-family:'Fraunces',serif;font-weight:700;font-size:18px;margin:0 0 3px;color:var(--inv-red-dark)}
  .inv-brand .inv-co{font-size:11px;color:var(--inv-muted);line-height:1.45}
  .inv-brand .inv-co strong{color:var(--inv-ink)}
  .inv-title{text-align:right}
  .inv-title h1{font-family:'Fraunces',serif;font-weight:700;font-size:22px;color:var(--inv-ink);margin:0 0 4px;letter-spacing:1px;text-transform:uppercase}
  .inv-title .inv-num{font-size:11.5px;color:var(--inv-muted)}
  .inv-title .inv-num strong{color:var(--inv-red-dark);font-family:'Fraunces',serif;font-weight:700;font-size:13px}
  .inv-meta-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}
  @media(max-width:600px){.inv-meta-row{grid-template-columns:1fr;gap:10px}}
  .inv-meta-block{background:#fafaf6;border:1px solid var(--inv-line);border-radius:7px;padding:10px 12px}
  .inv-meta-block h6{font-size:9.5px;color:var(--inv-gold-dark);font-weight:700;text-transform:uppercase;letter-spacing:.7px;margin:0 0 6px;display:flex;align-items:center;gap:5px}
  .inv-meta-block .inv-meta-line{font-size:11.5px;line-height:1.5;color:#333}
  .inv-meta-block .inv-meta-line strong{color:var(--inv-ink);font-weight:600}
  .inv-meta-block .inv-meta-line + .inv-meta-line{margin-top:3px}
  .gstin{font-family:'Courier New',monospace;font-weight:700;color:var(--inv-red-dark);letter-spacing:.5px}

  .inv-items{width:100%;border-collapse:collapse;font-size:11.5px;margin:10px 0}
  .inv-items thead th{background:linear-gradient(135deg,var(--inv-red) 0%,var(--inv-red-dark) 100%);color:#fff;font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:.4px;padding:7px 6px;text-align:left;white-space:nowrap}
  .inv-items thead th:first-child{border-top-left-radius:5px}
  .inv-items thead th:last-child{border-top-right-radius:5px;text-align:right}
  .inv-items tbody td{padding:7px 6px;border-bottom:1px solid var(--inv-line);vertical-align:top}
  .inv-items tbody td:last-child{text-align:right;font-weight:700;color:var(--inv-ink);white-space:nowrap}
  .inv-items .item-name{font-weight:700;color:var(--inv-ink);font-size:12px}
  .inv-items .perks{display:flex;flex-wrap:wrap;gap:3px;margin-top:2px;font-size:10px}
  .inv-items .perks .perk{background:#eef7ff;color:#1d4ed8;padding:1px 7px;border-radius:50px;font-weight:600}
  .inv-items .col-hsn{font-family:'Courier New',monospace;font-size:10.5px;color:var(--inv-muted);white-space:nowrap}
  .inv-items .col-sno{width:30px;text-align:center}
  .inv-items .col-qty,.inv-items .col-rate{text-align:right;white-space:nowrap}

  .inv-totals{display:flex;justify-content:flex-end;margin:6px 0 10px}
  .inv-totals-card{min-width:300px;font-size:11.5px}
  .inv-totals-row{display:flex;justify-content:space-between;padding:5px 10px;border-bottom:1px dashed var(--inv-line)}
  .inv-totals-row:last-child{border-bottom:0}
  .inv-totals-row .lbl{color:var(--inv-muted)}
  .inv-totals-row .val{font-weight:700;color:var(--inv-ink);font-family:'Fraunces',serif}
  .inv-totals-row.subtotal{background:#fafaf6;border-radius:5px 5px 0 0}
  .inv-totals-row.grand{background:linear-gradient(135deg,#fff5f0,#fff9ef);border:2px solid var(--inv-red);border-radius:6px;margin-top:5px;padding:9px 12px}
  .inv-totals-row.grand .lbl{color:var(--inv-ink);font-weight:700;font-size:13px}
  .inv-totals-row.grand .val{color:var(--inv-red);font-size:16px}
  .inv-words{background:#fffaf3;border-left:3px solid var(--inv-gold);padding:6px 12px;margin:8px 0;font-size:11.5px}
  .inv-words strong{color:var(--inv-red-dark);font-family:'Fraunces',serif}
  .inv-footer{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:14px;padding-top:12px;border-top:1px solid var(--inv-line)}
  @media(max-width:600px){.inv-footer{grid-template-columns:1fr}}
  .inv-bank h6{font-size:9.5px;color:var(--inv-gold-dark);font-weight:700;text-transform:uppercase;letter-spacing:.7px;margin:0 0 5px}
  .inv-bank .line{font-size:11px;color:var(--inv-muted);line-height:1.5}
  .inv-bank .line strong{color:var(--inv-ink);font-weight:600}
  .inv-sign{text-align:right}
  .inv-sign .stamp{display:inline-block;border:2px solid var(--inv-red);color:var(--inv-red);padding:6px 16px;border-radius:50px;font-family:'Fraunces',serif;font-weight:700;font-size:12px;transform:rotate(-4deg);margin-bottom:8px;opacity:.85}
  .inv-sign .sig-line{border-top:1px solid #999;width:180px;margin:18px 0 0 auto;padding-top:4px;text-align:center;font-size:10.5px;color:var(--inv-muted)}
  .inv-sign .sig-line strong{color:var(--inv-ink);display:block;font-weight:700;font-size:11.5px}
  .inv-disclaimer{text-align:center;font-size:9.5px;color:var(--inv-muted);margin:10px 0 0;font-style:italic}
  body.pdf-mode .inv-paper,body.pdf-mode{background:#fff}
  body.pdf-mode .inv-actions{display:none !important}
  body.pdf-mode .inv-paper{box-shadow:none;border:0;margin:0 auto;max-width:794px;padding:18px 24px}
  @media print{
    body{background:#fff}
    .inv-actions{display:none !important}
    .inv-paper{box-shadow:none;border:0;margin:0;max-width:none;padding:14px 18px}
    .inv-items thead th,.inv-totals-row.grand,.inv-meta-block,.inv-words,.inv-totals-row.subtotal,.inv-items .perks .perk,.inv-sign .stamp{-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important}
    @page{size:A4;margin:10mm}
  }

/* ---- agent-orders.html ---- */
:root{
    --ag-red:#1565C0; --ag-red-dark:#0D47A1;
    --ag-gold:#1CA9C4; --ag-gold-dark:#0E8AA3; --ag-gold-light:#e3f4f8;
    --ag-ink:#1a1a1a; --ag-muted:#686868; --ag-line:#eee;
  }
  body{background:#fbfaf8}
  .agent-hero-card{background:linear-gradient(135deg,#fff5f5 0%,#eaf6fb 100%);border:1px solid #f3e0cb;border-radius:18px;padding:20px 22px;margin-bottom:18px}
  .agent-hero-card h1{font-family:'Fraunces',serif;font-weight:600;font-size:26px;margin:0}
  .agent-hero-card h1 em{color:var(--ag-red);font-style:italic}
  .agent-hero-card .kicker{font-family:'Kalam',cursive;font-size:18px;color:var(--ag-gold-dark);display:block;margin-bottom:4px}
  .agent-hero-card .lede{color:var(--ag-muted);font-size:13px;margin:6px 0 0}
  .agent-user-card{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));border-radius:14px;padding:18px 16px;text-align:center;color:#fff;margin-bottom:16px}
  .ag-avatar{width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.2);display:inline-flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:20px;font-weight:700;margin-bottom:8px}
  .agent-user-card h6{color:#fff;font-weight:700;margin:0;font-size:15px}
  .role-pill{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.18);border-radius:50px;padding:3px 10px;font-size:11px;font-weight:600;margin-top:6px}
  .agent-nav{display:flex;flex-direction:column;gap:4px}
  .agent-nav-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;color:var(--ag-ink);font-size:14px;font-weight:500;text-decoration:none;transition:.15s}
  .agent-nav-item:hover{background:#eaf6fb;color:var(--ag-red-dark)}
  .agent-nav-item.active{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff}
  .agent-nav-item i{font-size:16px}
  .agent-nav-divider{height:1px;background:var(--ag-line);margin:8px 0}
  .agent-nav-item.signout{color:var(--ag-red)}
  .ag-menu-trigger{display:none;background:#fff;border:1.5px solid var(--ag-line);border-radius:10px;padding:8px 14px;font-weight:600;color:var(--ag-red);margin-bottom:14px;cursor:pointer}
  @media(max-width:992px){.ag-menu-trigger{display:inline-flex;align-items:center;gap:6px}}

  /* Stats strip */
  .ao-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 20px}
  @media(max-width:760px){.ao-stats{grid-template-columns:1fr 1fr;gap:10px}}
  @media(max-width:480px){.ao-stats{grid-template-columns:1fr}}
  .ao-stat-card{background:#fff;border:1px solid var(--ag-line);border-radius:14px;padding:14px 16px;display:flex;align-items:center;gap:12px}
  .ao-stat-card .ic{width:42px;height:42px;border-radius:12px;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
  .ao-stat-card.s-total .ic{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold))}
  .ao-stat-card.s-active .ic{background:linear-gradient(135deg,#16a34a,#15803d)}
  .ao-stat-card.s-spend .ic{background:linear-gradient(135deg,var(--ag-gold-dark),var(--ag-gold))}
  .ao-stat-card .lbl{font-size:11.5px;color:var(--ag-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}
  .ao-stat-card .val{font-family:'Fraunces',serif;font-weight:700;color:var(--ag-ink);font-size:20px;line-height:1.1;margin-top:2px}

  /* Orders card */
  .ao-orders-card{background:#fff;border:1px solid var(--ag-line);border-radius:18px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.04)}
  .ao-orders-head{background:linear-gradient(135deg,#fff7eb 0%, #fff 100%);padding:16px 20px;border-bottom:1px solid var(--ag-line);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
  .ao-orders-head h3{font-family:'Fraunces',serif;font-weight:700;font-size:20px;margin:0;color:var(--ag-ink);display:flex;align-items:center;gap:8px}
  .ao-orders-head h3 i{color:var(--ag-red)}
  .ao-orders-filter{display:flex;gap:6px;flex-wrap:wrap}
  .ao-filter-pill{background:#fff;border:1.5px solid var(--ag-line);color:#444;padding:5px 14px;border-radius:50px;font-size:12px;font-weight:600;cursor:pointer;transition:.15s}
  .ao-filter-pill:hover{border-color:var(--ag-gold)}
  .ao-filter-pill.active{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;border-color:transparent}

  .ao-table-wrap{overflow-x:auto}
  .ao-table{width:100%;border-collapse:collapse;font-size:13.5px}
  .ao-table thead tr{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold))}
  .ao-table thead th{background:transparent;color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:.5px;font-size:11px;text-align:left;padding:13px 16px;border-bottom:0;white-space:nowrap}
  .ao-table tbody td{padding:14px 16px;border-bottom:1px solid #f4f0e2;vertical-align:middle}
  .ao-table tbody tr:last-child td{border-bottom:0}
  .ao-table tbody tr:hover{background:#fffdf7}
  .ao-table .ao-order-id{font-family:'Fraunces',serif;font-weight:700;color:var(--ag-ink)}
  .ao-table .ao-amount{font-family:'Fraunces',serif;font-weight:700;color:var(--ag-red);font-size:15px}
  .ao-date-stack{display:flex;flex-direction:column;gap:2px;font-size:12px;margin-top:4px}
  .ao-date-stack span{display:inline-flex;align-items:center;gap:5px;color:var(--ag-muted);white-space:nowrap}
  .ao-date-stack span i{font-size:11px;color:var(--ag-gold-dark);width:14px;text-align:center}
  .ao-date-stack span.expiry{color:#888}
  .ao-date-stack span.expiry i{color:#888}

  /* Plan summary panel */
  .ao-plan-summary{background:linear-gradient(135deg,#fffbf5 0%, #fff 100%);border:1px dashed #f0d7b0;border-radius:12px;padding:10px 12px;min-width:260px}
  .ao-plan-summary-head{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--ag-gold-dark);font-weight:700;text-transform:uppercase;letter-spacing:.4px;margin-bottom:9px;padding-bottom:8px;border-bottom:1px dashed #ead7af}
  .ao-plan-summary-head span{display:inline-flex;align-items:center;gap:5px}
  .ao-plan-summary-head i{color:var(--ag-red);font-size:13px}
  .ao-plan-name{font-family:'Fraunces',serif;font-weight:700;color:var(--ag-ink);font-size:14px;margin-bottom:6px}
  .ao-perks{display:flex;flex-direction:column;gap:4px}
  .ao-perk{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#333;padding:3px 0;border-top:1px dashed #ead7af}
  .ao-perk:first-child{border-top:0}
  .ao-perk .l{display:inline-flex;align-items:center;gap:6px;font-weight:500}
  .ao-perk .l i{color:var(--ag-gold-dark);font-size:12px;width:16px;text-align:center}
  .ao-perk .v{font-weight:700;color:var(--ag-red-dark)}
  .ao-perk .v.yes{background:#16a34a;color:#fff;font-size:10px;padding:1px 8px;border-radius:50px}
  .ao-perk .v.no{background:#e8e8e8;color:#888;font-size:10px;padding:1px 8px;border-radius:50px}

  .ao-status{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:50px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}
  .ao-status.active{background:#dcfce7;color:#15803d}
  .ao-status.expired{background:#e5e7eb;color:#6b7280}
  .ao-actions{display:flex;gap:6px;flex-wrap:wrap}
  .ao-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:8px;font-size:12px;font-weight:600;text-decoration:none;cursor:pointer;border:1.5px solid transparent;transition:.15s}
  .ao-btn-ghost{background:#fff;border-color:var(--ag-line);color:#444}
  .ao-btn-ghost:hover{border-color:var(--ag-gold);color:var(--ag-gold-dark)}

  /* Mobile cards */
  .ao-cards{display:none;padding:14px}
  .ao-card-item{background:#fff;border:1px solid var(--ag-line);border-radius:12px;padding:14px;margin-bottom:12px}
  .ao-card-item:last-child{margin-bottom:0}
  .ao-card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;gap:10px}
  .ao-card-top .ao-order-id{font-family:'Fraunces',serif;font-weight:700;color:var(--ag-ink);font-size:14px}
  .ao-card-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-top:1px dashed #ead7af;font-size:13px}
  .ao-card-row .lbl{color:var(--ag-muted);font-size:12px}
  .ao-card-row .val{font-weight:700;color:var(--ag-ink)}
  .ao-card-row.amount .val{color:var(--ag-red);font-family:'Fraunces',serif;font-size:15px}
  .ao-card-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
  @media(max-width:780px){.ao-table{min-width:800px}}
  .ao-empty{text-align:center;padding:50px 20px;color:var(--ag-muted)}
  .ao-empty i{font-size:54px;color:var(--ag-gold);opacity:.6;margin-bottom:10px}
  /* ===== DataTables footer for orders (agent blue) ===== */
  .ao-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .ao-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:11px 16px;background:linear-gradient(135deg,#eef6fb,#f5fbfd);border-top:1px solid var(--ag-line)}
  .ao-foot .dataTables_length label{margin:0;display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--ag-line);border-radius:20px;padding:4px 12px;font-size:12.5px;color:var(--ag-muted);font-weight:600}
  .ao-foot .dataTables_length select{border:0;background:transparent;font-weight:700;color:var(--ag-ink);outline:0;cursor:pointer;padding:0 2px}
  .ao-foot .dataTables_info{flex:1;text-align:center;font-size:12.5px;font-weight:700;font-style:italic;color:var(--ag-muted);padding:0}
  .ao-foot .dataTables_paginate{margin:0}
  .ao-foot .pagination{margin:0;gap:4px}
  .ao-foot .page-item .page-link{min-width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:9px;border:1px solid var(--ag-line);background:#fff;color:var(--ag-ink);font-size:13px;font-weight:600;padding:0 9px;line-height:1}
  .ao-foot .page-item.previous .page-link,.ao-foot .page-item.next .page-link{font-size:18px;font-weight:800;color:var(--ag-red-dark)}
  .ao-foot .page-item .page-link:hover{border-color:var(--ag-red);color:var(--ag-red)}
  .ao-foot .page-item.active .page-link{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));border-color:transparent;color:#fff}
  .ao-foot .page-item.disabled .page-link{opacity:.55;cursor:default}
  @media(max-width:768px){.ao-foot .dataTables_info{flex:1 1 100%;order:3;font-size:11px}}

/* ---- agent-payment.html ---- */
/* Order Summary â€” gradient header strip + white body */
  .order-sum-card{
    background:#fff !important;border:1px solid #f0e2c4 !important;border-radius:16px;
    overflow:hidden;padding:0 !important;
    box-shadow:0 10px 24px rgba(214,31,38,.10)
  }
  .order-sum-head{
    background:linear-gradient(135deg,#D61F26 0%, #E25822 55%, #E89243 100%);
    color:#fff;padding:18px 20px;position:relative;overflow:hidden;
    display:flex;align-items:center;gap:14px
  }
  .order-sum-head::after{
    content:"";position:absolute;top:-30px;right:-30px;width:130px;height:130px;
    border-radius:50%;background:rgba(255,255,255,.10);z-index:0
  }
  .order-sum-head::before{
    content:"";position:absolute;bottom:-50px;right:40px;width:80px;height:80px;
    border-radius:50%;background:rgba(255,255,255,.07);z-index:0
  }
  .order-sum-head > *{position:relative;z-index:1}
  .order-sum-head .osh-icon{
    width:46px;height:46px;border-radius:12px;background:rgba(255,255,255,.22);
    display:inline-flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0
  }
  .order-sum-head .osh-text h6{
    font-family:'Fraunces',serif;font-weight:700;font-size:19px;color:#fff;margin:0
  }
  .order-sum-head .osh-text p{
    color:rgba(255,255,255,.88);font-size:12.5px;margin:2px 0 0
  }

  .order-sum-body{padding:14px 18px 18px}
  .order-sum-list{display:flex;flex-direction:column;margin-bottom:6px}
  .order-sum-row{
    display:flex;justify-content:space-between;align-items:center;
    padding:11px 12px;font-size:14px;border:1px solid #f0e2c4;border-radius:10px;
    background:#fff;margin-bottom:8px
  }
  .order-sum-row .osr-l{display:flex;align-items:center;gap:10px;color:#333;font-weight:500}
  .order-sum-row .osr-l i{color:#D61F26;font-size:16px;width:20px;text-align:center}
  .order-sum-row .osr-v{font-weight:700;color:#1a1a1a;white-space:nowrap}
  .order-sum-row.discount-row .osr-l i{color:#16a34a}
  .order-sum-row.discount-row .osr-v{color:#15803d}
  .order-sum-row.order-sum-total{
    background:linear-gradient(135deg,#fff5f0 0%, #fff9ef 100%);
    border-color:#E89243;margin-bottom:0;margin-top:4px;padding:14px
  }
  .order-sum-row.order-sum-total .osr-l{color:#1a1a1a;font-weight:700;font-size:15px}
  .order-sum-row.order-sum-total .osr-l i{color:#D61F26;font-size:18px}
  .order-sum-row.order-sum-total .osr-v{color:#D61F26;font-size:20px;font-family:'Fraunces',serif}
  .order-sum-foot{padding:0 18px 18px}

/* ---- agent-pricing.html ---- */
:root{
    --ag-red:#1565C0; --ag-red-dark:#0D47A1;
    --ag-gold:#1CA9C4; --ag-gold-dark:#0E8AA3; --ag-gold-light:#e3f4f8;
    --ag-ink:#1a1a1a; --ag-muted:#6b6b6b;
    --ag-line:#eee;
  }
  .agent-hero-card{
    background:linear-gradient(135deg,#fff5f5 0%,#eaf6fb 100%);
    border:1px solid #f3e0cb;border-radius:18px;padding:20px 22px;margin-bottom:18px;
  }
  .agent-hero-card h1{font-family:'Fraunces',serif;font-weight:600;font-size:26px;margin:0}
  .agent-hero-card h1 em{color:var(--ag-red);font-style:italic}
  .agent-hero-card .kicker{font-family:'Kalam',cursive;font-size:18px;color:var(--ag-gold-dark);display:block;margin-bottom:4px}
  .agent-hero-card .lede{color:var(--ag-muted);font-size:13px;margin:6px 0 0}

  .agent-user-card{
    background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));
    border-radius:14px;padding:18px 16px;text-align:center;color:#fff;margin-bottom:16px;
  }
  .ag-avatar{width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.2);display:inline-flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:20px;font-weight:700;margin-bottom:8px}
  .agent-user-card h6{color:#fff;font-weight:700;margin:0;font-size:15px}
  .role-pill{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.18);border-radius:50px;padding:3px 10px;font-size:11px;font-weight:600;margin-top:6px}
  .agent-nav{display:flex;flex-direction:column;gap:4px}
  .agent-nav-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;color:var(--ag-ink);font-size:14px;font-weight:500;text-decoration:none;transition:.15s}
  .agent-nav-item:hover{background:#eaf6fb;color:var(--ag-red-dark)}
  .agent-nav-item.active{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff}
  .agent-nav-item i{font-size:16px}
  .agent-nav-divider{height:1px;background:var(--ag-line);margin:8px 0}
  .agent-nav-item.signout{color:var(--ag-red)}
  .ag-menu-trigger{display:none;background:#fff;border:1.5px solid var(--ag-line);border-radius:10px;padding:8px 14px;font-weight:600;color:var(--ag-red);margin-bottom:14px;cursor:pointer}
  @media(max-width:992px){.ag-menu-trigger{display:inline-flex;align-items:center;gap:6px}}

  /* Tighten hero+grid gap on this page */
  .page-hero{padding-bottom:24px}
  .ag-pricing-section{padding-top:28px;padding-bottom:32px}
  @media(max-width:768px){
    .page-hero{padding-bottom:18px}
    .ag-pricing-section{padding-top:20px;padding-bottom:24px}
  }

  /* ===================== Pricing-specific ===================== */
  .ag-plans-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:1100px;margin:0 auto
  }
  @media(max-width:1100px){.ag-plans-grid{grid-template-columns:1fr 1fr}}
  @media(max-width:760px){.ag-plans-grid{grid-template-columns:1fr}}

  .ag-plan{
    background:#fff;border:1.5px solid var(--ag-line);border-radius:18px;padding:22px 20px;
    position:relative;overflow:hidden;transition:.25s;display:flex;flex-direction:column
  }
  .ag-plan:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(0,0,0,.08);border-color:var(--ag-gold)}
  .ag-plan.best{border:2px solid var(--ag-red);box-shadow:0 10px 30px rgba(21,101,192,.12)}
  .ag-plan .ag-ribbon{
    position:absolute;top:0;left:0;background:var(--ag-red);color:#fff;font-size:10px;font-weight:700;
    padding:4px 12px;border-radius:0 0 10px 0;letter-spacing:.5px
  }
  .ag-plan.best .ag-ribbon{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold))}
  .ag-plan .ag-plan-name{font-family:'Fraunces',serif;font-weight:700;color:var(--ag-ink);font-size:22px;margin:8px 0 2px}
  .ag-plan .ag-plan-tag{font-size:11px;color:var(--ag-gold-dark);font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin-bottom:14px}
  .ag-plan .ag-price{font-family:'Fraunces',serif;font-size:34px;font-weight:700;color:var(--ag-red);line-height:1;margin:0 0 4px}
  .ag-plan .ag-price.free{color:#16a34a}
  .ag-plan .ag-price .strike{color:#aaa;text-decoration:line-through;font-size:15px;font-weight:500;margin-right:8px}
  .ag-plan .ag-period{color:var(--ag-muted);font-size:13px;margin-bottom:16px}

  .ag-feat-block{margin-bottom:14px}
  .ag-feat-title{font-size:10.5px;font-weight:700;color:var(--ag-gold-dark);text-transform:uppercase;letter-spacing:.6px;margin-bottom:8px;display:flex;align-items:center;gap:6px}
  .ag-feat-title.not-allowed{color:#888}
  .ag-row{
    display:flex;align-items:center;justify-content:space-between;
    padding:6px 0;border-top:1px dashed #ead7af;font-size:13px;color:#333
  }
  .ag-row:first-of-type{border-top:0}
  .ag-row .ag-l{display:flex;align-items:center;gap:8px;font-weight:500}
  .ag-row .ag-l i{color:var(--ag-red);font-size:14px;width:18px;text-align:center}
  .ag-row .ag-v{font-weight:700;color:var(--ag-red-dark);font-size:13px}
  .ag-row .ag-v.yes{background:#16a34a;color:#fff;font-size:10px;padding:2px 9px;border-radius:20px;font-weight:700}
  .ag-row .ag-v.no{background:#e8e8e8;color:#888;font-size:10px;padding:2px 9px;border-radius:20px;font-weight:700}
  .ag-row.not-allowed{color:#999}
  .ag-row.not-allowed .ag-l i{color:#bbb}
  .ag-row.not-allowed .ag-v{background:#fdecec;color:#c1413c;font-size:10px;padding:2px 9px;border-radius:20px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}

  .ag-cta{
    display:block;text-align:center;background:#fff;color:var(--ag-red);border:1.5px solid var(--ag-red);
    padding:11px;border-radius:10px;font-weight:600;text-decoration:none;transition:.2s;font-size:14px;margin-top:auto
  }
  .ag-cta:hover{background:var(--ag-red);color:#fff}
  .ag-plan.best .ag-cta{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;border-color:transparent}
  .ag-plan.best .ag-cta:hover{filter:brightness(.92)}
  .ag-plan.free-plan .ag-cta{border-color:#16a34a;color:#16a34a}
  .ag-plan.free-plan .ag-cta:hover{background:#16a34a;color:#fff}
  /* Free plan CTA is a form-submit button; keep the card's flex layout
     (margin-top:auto on .ag-cta) working and match the <a> button look. */
  .ag-cta-form{display:contents}
  button.ag-cta{width:100%;cursor:pointer;font-family:inherit;font-size:14px}

  .ag-note{
    background:#fff7eb;border:1px dashed var(--ag-gold);color:var(--ag-gold-dark);
    border-radius:12px;padding:14px 16px;margin:18px auto 0;font-size:13px;text-align:center;max-width:880px
  }
  .ag-note strong{color:var(--ag-red-dark)}
  /* ============ CONTACT STRIP â€” contact details + request a call back ============ */
  .ag-contact-strip{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 24px}
  .ag-contact-card{border-radius:14px;padding:7px 14px}
  .ag-cc-info{background:linear-gradient(135deg,#eef5fc 0%,#fff 65%);border:1px solid #d4e4f5}
  .ag-cc-cta{background:linear-gradient(135deg,#e6f5f8 0%,#fff 70%);border:1px solid #c7e6ec}
  .ag-cc-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}
  .ag-cc-ic{width:32px;height:32px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:15px}
  .ag-cc-ic-alt{background:linear-gradient(135deg,var(--ag-gold),var(--ag-red))}
  .ag-cc-head h4{font-family:'Fraunces',serif;font-weight:700;font-size:15.5px;color:var(--ag-ink);margin:0 0 1px}
  .ag-cc-head p{font-size:12px;line-height:1.3;color:var(--ag-muted);margin:0}
  .ag-cc-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .ag-cc-list li{margin:0}
  .ag-cc-list a{display:flex;align-items:center;gap:8px;height:100%;text-decoration:none;padding:6px 9px;border-radius:10px;border:1px solid #d4e4f5;background:#fff;transition:.18s}
  .ag-cc-list a:hover{border-color:var(--ag-gold);box-shadow:0 4px 14px rgba(28,169,196,.16);transform:translateY(-1px)}
  .ag-cc-li-ic{width:25px;height:25px;border-radius:7px;flex-shrink:0;background:var(--ag-gold-light);color:var(--ag-gold-dark);display:inline-flex;align-items:center;justify-content:center;font-size:13px}
  .ag-cc-li-txt{display:flex;flex-direction:column;line-height:1.25;min-width:0}
  .ag-cc-li-txt small{font-size:10.5px;color:var(--ag-muted);font-weight:600;letter-spacing:.03em;text-transform:uppercase}
  .ag-cc-li-txt b{font-size:12px;font-weight:700;color:var(--ag-ink);word-break:break-word}
  .ag-cb-btn{width:100%;border:0;border-radius:10px;padding:8px;font-size:14.5px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--ag-red),var(--ag-red-dark));display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:.18s}
  .ag-cb-btn:hover{box-shadow:0 8px 22px rgba(21,101,192,.3);transform:translateY(-1px)}
  @media(max-width:760px){.ag-contact-strip{grid-template-columns:1fr;gap:10px;margin-bottom:16px}.ag-contact-card{padding:9px 13px}}
  @media(max-width:480px){
    .ag-cc-list{gap:7px}
    .ag-cc-list a{gap:6px;padding:5px 8px}
    .ag-cc-li-ic{width:24px;height:24px;font-size:12px;border-radius:7px}
    .ag-cc-li-txt small{font-size:9px}
    .ag-cc-li-txt b{font-size:11.5px}
  }
  /* ---- Call Back success popup ---- */
  .ag-cb-modal{display:none;position:fixed;inset:0;z-index:4200;align-items:center;justify-content:center;padding:20px}
  .ag-cb-modal.open{display:flex}
  .ag-cb-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(4px)}
  .ag-cb-dialog{position:relative;z-index:1;max-width:400px;width:100%;background:#fff;border-radius:20px;padding:32px 26px 26px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.28);animation:agCbPop .3s cubic-bezier(.18,.89,.32,1.28)}
  .ag-cb-check{width:74px;height:74px;border-radius:50%;margin:0 auto 16px;background:linear-gradient(135deg,#1f9d57,#16793f);color:#fff;display:flex;align-items:center;justify-content:center;font-size:40px;box-shadow:0 0 0 8px rgba(31,157,87,.15);animation:agCbCheck .4s .12s both cubic-bezier(.18,.89,.32,1.28)}
  .ag-cb-dialog h4{font-family:'Fraunces',serif;font-weight:700;font-size:23px;color:var(--ag-ink);margin:0 0 8px}
  .ag-cb-dialog p{font-size:14px;color:var(--ag-muted);line-height:1.55;margin:0 0 22px}
  .ag-cb-done{min-width:150px;justify-content:center;border:0;border-radius:10px;padding:11px 20px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--ag-red),var(--ag-red-dark));cursor:pointer;display:inline-flex;align-items:center;gap:8px}
  @keyframes agCbPop{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}
  @keyframes agCbCheck{from{transform:scale(0)}to{transform:scale(1)}}

/* ---- agent-profile.html ---- */
:root{--ag-red:#1565C0;--ag-red-dark:#0D47A1;--ag-gold:#1CA9C4;--ag-gold-dark:#0E8AA3;--ag-gold-light:#e3f4f8;--ag-ink:#1a1a1a;--ag-muted:#6b6b6b;--ag-line:#eee}
  body{background:#fafafa}

  /* Reusable sidebar (matches agent-dashboard) */
  .agent-user-card{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));border-radius:14px;padding:18px 16px;text-align:center;color:#fff;margin-bottom:16px;position:relative;overflow:hidden}
  .agent-user-card::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 0%,rgba(255,255,255,.15),transparent 50%)}
  .agent-user-card .ag-avatar{width:64px;height:64px;border-radius:50%;background:#fff;color:var(--ag-red);font-family:'Fraunces',serif;font-weight:700;font-size:22px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:10px;border:3px solid rgba(255,255,255,.4);position:relative;z-index:1}
  .agent-user-card h6{font-size:15px;font-weight:600;margin:0;position:relative;z-index:1;color:#fff}
  .agent-user-card .role-pill{background:rgba(255,255,255,.25);font-size:11px;padding:3px 10px;border-radius:20px;display:inline-block;margin-top:6px;font-weight:600;position:relative;z-index:1}
  .agent-nav{display:flex;flex-direction:column;gap:4px}
  .agent-nav-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:10px;color:#444;text-decoration:none;font-weight:500;font-size:14px;transition:.15s}
  .agent-nav-item i{width:18px;text-align:center;font-size:16px;color:var(--ag-muted);transition:.15s}
  .agent-nav-item:hover{background:#eaf6fb;color:var(--ag-gold-dark)}
  .agent-nav-item:hover i{color:var(--ag-gold-dark)}
  .agent-nav-item.active{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;box-shadow:0 4px 12px rgba(21,101,192,.2)}
  .agent-nav-item.active i{color:#fff}
  .agent-nav-divider{height:1px;background:#d6ecf3;margin:8px 0}
  .agent-nav-item.signout{color:var(--ag-red);font-weight:600;margin-top:4px}
  .agent-nav-item.signout i{color:var(--ag-red)}
  .agent-nav-item.signout:hover{background:#e3f4f8;color:var(--ag-red-dark)}
  .ag-menu-trigger{background:#fff;border:1.5px solid var(--ag-line);border-radius:10px;padding:8px 14px;font-weight:600;font-size:13px;color:var(--ag-ink);display:inline-flex;align-items:center;gap:8px;margin-bottom:14px;cursor:pointer}
  @media (min-width:992px){.ag-menu-trigger{display:none}}

  /* Page header card */
  .ap-page-head{background:linear-gradient(135deg,#fff5f5,#eaf6fb);border:1px solid #f3e0cb;border-radius:18px;padding:22px;margin-bottom:18px;display:flex;align-items:center;gap:18px}
  .ap-page-head .ico-big{width:62px;height:62px;border-radius:14px;background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0;box-shadow:0 8px 22px rgba(21,101,192,.25)}
  .ap-page-head h1{font-family:'Fraunces',serif;font-weight:600;font-size:24px;margin:0;color:var(--ag-ink)}
  .ap-page-head h1 em{color:var(--ag-red);font-style:italic}
  .ap-page-head p{margin:4px 0 0;color:var(--ag-muted);font-size:13px}

  /* Form card */
  .ap-card{background:#fff;border:1px solid var(--ag-line);border-radius:18px;padding:24px;margin-bottom:18px}
  .ap-card-head{display:flex;align-items:center;gap:10px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px dashed #eee}
  .ap-card-head h3{font-family:'Fraunces',serif;font-weight:600;font-size:18px;margin:0;color:var(--ag-ink)}
  .ap-card-head i{color:var(--ag-gold-dark);font-size:18px}
  .ap-card .form-label{font-weight:600;font-size:13px;color:var(--ag-ink);margin-bottom:6px;display:flex;align-items:center;gap:7px}
  .ap-card .form-label i{color:var(--ag-gold-dark)}
  .ap-card .form-control,.ap-card .form-select{border-radius:10px;border:1.5px solid #ddd;padding:10px 14px;font-size:14px;background:#fff}
  .ap-card .form-control:focus,.ap-card .form-select:focus{border-color:var(--ag-gold);box-shadow:0 0 0 3px rgba(198,138,58,.15)}
  .ap-card textarea.form-control{resize:vertical}

  /* Photo block */
  .ap-photo-block{display:flex;align-items:center;gap:18px;background:#fafafa;border:1px dashed var(--ag-gold);border-radius:14px;padding:18px}
  .ap-photo-block img{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid var(--ag-gold-light)}
  .ap-photo-block .ap-photo-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
  .ap-photo-block .btn-photo{background:#fff;border:1.5px solid var(--ag-gold);color:var(--ag-gold-dark);border-radius:10px;padding:7px 14px;font-weight:600;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
  .ap-photo-block .btn-photo:hover{background:var(--ag-gold);color:#fff}
  .ap-photo-block .btn-photo.danger{border-color:#ef4444;color:#ef4444}
  .ap-photo-block .btn-photo.danger:hover{background:#ef4444;color:#fff}

  /* Styled upload card (same design as vendor-profile.html) */
  .ap-upload{display:flex;align-items:center;gap:12px;background:#fafafa;border:2px dashed #ddd;border-radius:12px;padding:12px 14px;cursor:pointer;transition:.18s;margin:0}
  .ap-upload:hover{border-color:var(--ag-gold);background:#eaf6fb}
  .ap-upload-ico{width:42px;height:42px;border-radius:10px;background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;box-shadow:0 4px 10px rgba(21,101,192,.2)}
  .ap-upload-text{display:flex;flex-direction:column;line-height:1.3;min-width:0}
  .ap-upload-title{font-weight:600;font-size:13.5px;color:#1a1a1a}
  .ap-upload-hint{font-size:11px;color:#888;margin-top:2px}
  .ap-upload-status{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:#16a34a;font-weight:600;margin-top:6px}
  .ap-upload-status i{color:#16a34a}

  /* Save button row */
  .ap-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
  .ap-btn-save{background:linear-gradient(135deg,var(--ag-red),var(--ag-gold));color:#fff;border:0;padding:12px 28px;border-radius:50px;font-weight:600;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;box-shadow:0 6px 16px rgba(21,101,192,.25)}
  .ap-btn-save:hover{filter:brightness(.95);transform:translateY(-1px)}
  .ap-btn-cancel{background:#fff;border:1.5px solid #ddd;color:#666;padding:12px 22px;border-radius:50px;font-weight:600;font-size:14px;cursor:pointer}
  .ap-btn-cancel:hover{border-color:var(--ag-red);color:var(--ag-red)}

  /* Read-only field hint */
  .ap-readonly-hint{font-size:11px;color:var(--ag-muted);margin-top:3px;display:inline-flex;align-items:center;gap:5px}
  .ap-readonly-hint i{color:var(--ag-gold-dark)}
/* Inline edit pattern (per-section view/edit toggle) */
  .ep-section-title-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
  .ep-section-title-bar > span{display:inline-flex;align-items:center;gap:8px}
  .ep-edit-btn{background:#fff;border:1.5px solid #e4d3b6;border-radius:8px;padding:5px 14px;font-size:12.5px;color:#0D47A1;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:.18s;font-family:inherit;line-height:1.4}
  .ep-edit-btn i{font-size:13px}
  .ep-edit-btn:hover{background:linear-gradient(135deg,#1565C0,#1CA9C4);color:#fff;border-color:transparent;box-shadow:0 4px 12px rgba(21,101,192,.22)}
  .ep-view-text{min-height:64px;padding:14px 16px;background:#fafafa;border:1px solid #ececec;border-radius:10px;margin:0;font-size:14px;color:#333;white-space:pre-wrap;word-break:break-word;line-height:1.55}
  .ep-view-text:empty::before{content:"Not added yet";color:#aaa;font-style:italic}
  .ep-view-hint{display:block;margin-top:6px;font-size:11.5px;color:#888}
  .ep-edit-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
  .ep-btn-save{background:linear-gradient(135deg,#1565C0,#1CA9C4);color:#fff;border:0;padding:9px 24px;border-radius:50px;font-weight:600;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;box-shadow:0 5px 14px rgba(21,101,192,.25);font-family:inherit;transition:.18s}
  .ep-btn-save:hover{filter:brightness(.95);transform:translateY(-1px)}
  .ep-btn-cancel{background:#fff;border:1.5px solid #ddd;color:#666;padding:9px 20px;border-radius:50px;font-weight:600;font-size:13px;cursor:pointer;font-family:inherit;transition:.18s}
  .ep-btn-cancel:hover{border-color:#1565C0;color:#1565C0}
  /* Multi-field view grid */
  .ep-view-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;padding:6px 0 2px}
  @media (max-width:575px){.ep-view-grid{grid-template-columns:1fr}}
  .ep-view-field{display:flex;flex-direction:column;gap:4px;padding:11px 14px;background:#fafafa;border:1px solid #ececec;border-radius:10px}
  .ep-view-field .ep-view-label{font-size:10.5px;color:#888;font-weight:700;text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:6px}
  .ep-view-field .ep-view-label i{color:#1CA9C4;font-size:13px}
  .ep-view-field .ep-view-value{font-size:14px;color:#222;font-weight:500;word-break:break-word;line-height:1.45}
  .ep-view-field .ep-view-value:empty::before{content:"â€”";color:#bbb}
  /* Profile-view-style sections used inside edit page */
  .pv-section .pv-sec-head{padding:14px 18px}
  .pv-sec-body-edit{padding:18px}
  .pv-section .ep-edit-btn{background:rgba(255,255,255,.85);border-color:rgba(0,0,0,.08);color:#0D47A1}
  .pv-section .ep-edit-btn:hover{background:linear-gradient(135deg,#1565C0,#1CA9C4);color:#fff;border-color:transparent;box-shadow:0 4px 12px rgba(21,101,192,.22)}
  .pv-bio[data-view-text]::before{content:"\201C"}
  .pv-bio[data-view-text]::after{content:"\201D"}
  .pv-sec-body-edit .form-label{font-weight:600;font-size:13px;color:#333;margin-bottom:6px;display:flex;align-items:center;gap:7px}
  .pv-sec-body-edit .form-label i{color:#1CA9C4}
  /* Match My Religion section-title bg (pink-cream gradient) on About/Basic headers */
  .pv-section .pv-sec-head{background:linear-gradient(135deg,var(--green-light,#e3f4f8),var(--gold-light,#e3f4f8));border-bottom:1px solid var(--line,#eee);padding:10px 16px}
  .pv-section .pv-sec-title{color:var(--ink,#1a1a1a);font-family:var(--font-display,'Fraunces',serif);font-size:16px;font-weight:600}
  .pv-section .pv-sec-icon{background:rgba(255,255,255,.7);color:var(--orange,#1CA9C4)}

/* ---- agent-register.html ---- */
/* portal-panel-theme */
.auth-side{ background:
    radial-gradient(circle at 80% 20%, rgba(255,255,255,0.12), transparent 50%),
    radial-gradient(circle at 20% 80%, rgba(255,255,255,0.08), transparent 50%),
    linear-gradient(135deg, #1565C0 0%, #0D47A1 50%, #00838F 100%) !important; }

/* ---- blog.html ---- */
.bimg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  @media(max-width:767px){.bimg-grid{grid-template-columns:repeat(2,1fr);gap:10px}}
  @media(max-width:400px){.bimg-grid{grid-template-columns:1fr;gap:10px}}
  .bimg-card{position:relative;border-radius:16px;overflow:hidden;text-decoration:none;display:block;aspect-ratio:4/3;background:#111}
  .bimg-card:hover .bimg-photo{transform:scale(1.06)}
  .bimg-card:hover .bimg-overlay{background:linear-gradient(to top,rgba(0,0,0,.82) 0%,rgba(0,0,0,.25) 60%,rgba(0,0,0,.1) 100%)}
  .bimg-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.25,.46,.45,.94)}
  .bimg-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72) 0%,rgba(0,0,0,.18) 60%,rgba(0,0,0,.06) 100%);transition:.3s}
  .bimg-body{position:absolute;bottom:0;left:0;right:0;padding:18px 18px 16px}
  .bimg-cat-pill{display:inline-block;background:rgba(255,255,255,.18);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.25);color:#fff;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;padding:3px 10px;border-radius:99px;margin-bottom:8px}
  .bimg-title{font-family:'Fraunces',serif;font-weight:700;font-size:18px;color:#fff;margin:0 0 6px;line-height:1.25}
  .bimg-meta{font-size:12px;color:rgba(255,255,255,.75);display:flex;align-items:center;gap:10px}
  .bimg-arrow{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.15);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;opacity:0;transition:.25s;transform:translate(4px,-4px)}
  .bimg-card:hover .bimg-arrow{opacity:1;transform:translate(0,0)}


/* ============================================================
   Inline-style migrations (batch0)
   ============================================================ */

/* ---- shared inline utilities (batch0) ---- */
.b0-kalam-gold{ font-family:Kalam,cursive; font-size:22px; color:var(--gold-light); }
.b0-em-gold{ color:var(--gold-light); font-style:italic; }
.b0-optional-note{ color:var(--slate); font-weight:400; }
.b0-hero-center{ text-align:center; }

/* ---- agent-add-member.html (inline) ---- */
.agent-am-small-note{ color:var(--ag-muted); font-size:12px; }

/* ---- agent-profile.html (inline) ---- */
.agent-profile-name{ font-weight:600; color:var(--ag-ink); font-size:15px; }
.agent-profile-meta{ color:var(--ag-muted); font-size:12px; }

/* ---- agent-dashboard.html (inline) ---- */
.agent-dash-stats-tight{ margin-top:0; margin-bottom:18px; }
.agent-dash-table-full{ width:100%; }

/* ---- agent-invoice.html (inline) ---- */
.agent-inv-num-mt{ margin-top:4px; }
.agent-inv-paid{ color:#16a34a; font-weight:600; }

/* ---- agent-orders.html (inline) ---- */
.agent-orders-dot7{ font-size:7px; }
.agent-orders-dot6{ font-size:6px; }
.agent-orders-plan-mt{ margin-top:8px; }
.agent-orders-empty-title{ font-family:'Fraunces',serif; color:var(--ag-ink); margin:8px 0 4px; font-weight:700; }

/* ---- agent-edit-profile.html (inline) ---- */
.agent-ep-charnote{ font-size:11.5px; color:var(--slate); display:block; margin-top:4px; }
.agent-ep-charnote-inline{ font-size:11.5px; color:var(--slate); }
.agent-ep-once-note{ color:#0D47A1; font-size:11.5px; font-style:italic; }
.agent-ep-rupee-sup{ font-size:24px; vertical-align:super; opacity:0.8; }

/* ---- agent-payment.html (inline) ---- */
.agent-pay-head-divider{ border-bottom:1px solid var(--line); }
.agent-pay-subtitle{ color:var(--slate); font-size:13px; margin:0; }
.agent-pay-price-wrap{ text-align:right; }
.agent-pay-price{ font-family:Fraunces,serif; font-size:28px; font-weight:700; color:var(--gold-dark); }
.agent-pay-strike{ color:var(--muted); text-decoration:line-through; }
.agent-pay-inc-box{ background:var(--bg-soft); border-radius:var(--r-sm); padding:14px 16px; margin-bottom:18px; }
.agent-pay-inc-row{ font-size:14px; }
.agent-pay-note{ font-size:12px; color:var(--slate); margin:0 0 12px; }
.agent-pay-note-secure{ font-size:12px; color:var(--slate); margin:20px 0 0; }

/* ---- agent-payment-success.html (inline) ---- */
.agent-ps-card{ max-width:620px; }
.agent-ps-check-circle{ width:100px; height:100px; margin:0 auto 20px; border-radius:50%; background:var(--green-light); display:flex; align-items:center; justify-content:center; animation:onlinePulse 2s ease-in-out infinite; }
.agent-ps-check-icon{ font-size:60px; color:var(--green); }
.agent-ps-title-em{ color:var(--green-dark); font-style:italic; }
.agent-ps-summary{ background:var(--gold-light); border-radius:var(--r-md); text-align:left; }
.agent-ps-row-label{ color:var(--slate); font-size:13px; }
.agent-ps-amount{ color:var(--green-dark); }
.agent-ps-note{ color:var(--slate); font-size:14px; }

/* ---- agent-pricing.html (inline) ---- */
.agent-pricing-h1-em{ color:var(--brand-red); font-style:italic; }
.agent-pricing-ribbon-free{ background:#16a34a; }
.agent-pricing-ribbon-best{ background:var(--ag-gold-dark); }
.agent-pricing-spacer{ height:18px; }

/* ---- agent-register.html (inline) ---- */
.agent-reg-wrap-top{ align-items:flex-start; }
.agent-reg-side-top{ justify-content:flex-start; }
.agent-reg-step-h4{ font-family:var(--font-display); font-weight:700; color:var(--ink); margin-bottom:4px; }
.agent-reg-step-sub{ color:var(--slate); font-size:13.5px; margin-bottom:18px; }

/* ---- blog-post.html (inline) ---- */
.blog-post-hero{ padding:30px 0; }
.blog-post-kicker{ color:var(--orange); font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; }
.blog-post-title{ max-width:820px; margin:0 auto; }
.blog-post-featured{ width:100%; max-width:1000px; aspect-ratio:16/9; object-fit:cover; border-radius:var(--r-md); margin:0 auto 24px; display:block; }

/* ---- blog-category.html (inline) ---- */
.blog-cat-back{ display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:rgba(255,255,255,.8); text-decoration:none; margin-bottom:12px; }

/* ---- cities.html (inline) ---- */
.cities-hero-title{ color:var(--orange); }
.cities-search-wrap{ max-width:480px; margin:0 auto; }
.cities-search-input{ padding-left:44px; }

/* ---- coming-soon.html (inline) ---- */
.cs-badge{ background:#fff5e6; color:var(--orange); font-weight:600; border:1px solid #ffd9a8; }
.cs-lead{ max-width:600px; font-size:1.1rem; }
.cs-count-box{ background:var(--bg-soft); border:1px solid #eadfc2; }
.cs-count-num{ font-family:'Fraunces',serif; font-size:2.4rem; font-weight:600; }
.cs-count-green{ color:var(--green); }
.cs-count-orange{ color:var(--orange); }
.cs-count-gold{ color:var(--gold-dark); }
.cs-notify-form{ max-width:480px; }

/* ---- careers.html (inline) ---- */
.careers-job-card{ border-radius:14px; }
.careers-jd-section{ margin-top:14px; padding-top:14px; border-top:1px solid #f0f1f4; }
.careers-jd-toggle{ background:none; border:none; padding:0; color:var(--green-dark); font-weight:600; font-size:14px; cursor:pointer; }
.careers-jd-p10{ margin:0 0 10px; }
.careers-jd-p6{ margin:0 0 6px; }
.careers-jd-ul-a{ margin:0 0 10px 18px; }
.careers-jd-ul-b{ margin:0; padding-left:18px; }

/* ---- careers-apply.html (inline) ---- */
.careers-apply-hero{ padding:40px 0; }
.careers-apply-card{ max-width:780px; padding:32px; }
.careers-apply-loc-note{ color:var(--muted); font-weight:400; font-size:12px; }
.careers-apply-exp-row{ margin-top:6px; }
.careers-apply-exp-option{ flex:1; min-width:160px; cursor:pointer; display:flex; gap:10px; align-items:center; }

/* ============ BATCH 1 ============ */
/* ============================================================
   _migrated-batch1.css
   Inline + internal CSS migrated out of batch-1 HTML pages.
   Merge into css/style.css.
   ============================================================ */

/* ---- shared utilities (repeated inline styles across batch) ---- */
.pm-hero-kicker{font-family:Kalam,cursive;font-size:22px;color:var(--gold-light)}
.pm-hero-kicker-orange{font-family:Kalam,cursive;font-size:22px;color:var(--orange)}
.pm-em-orange{color:var(--orange);font-style:italic}
.pm-text-orange{color:var(--orange)}
.catdir-search-box{max-width:480px;margin:0 auto}
.catdir-search-input{padding-left:44px}

/* drawer / dashboard shell — repeated across dashboard, edit-profile,
   inbox*, interests*, manage-photos */
.dsh-drawer-user-head{margin:-20px -20px 16px;border-radius:0}
.dsh-drawer-user-info{flex:1}
.dsh-drawer-chev{margin-left:auto}
.dsh-drawer-section-gap{margin-top:8px}
.dsh-signout-link{color:var(--brand-red,#D61F26)}
.dsh-signout-icon{color:var(--brand-red,#D61F26)}
.dsh-notif-clear-btn{flex:1}
.dsh-dp-admin-blue{color:var(--brand-blue)}
.dsh-dp-icon-warn{background:rgba(255,152,0,0.15);color:#C76A00}
.dsh-dp-escalated{color:#C76A00}
.dsh-dp-resolution{color:#16A34A}
.dsh-section-pt{padding-top:12px}
.dsh-card-id{font-size:12px;opacity:.9}
.dsh-page-title{margin:0;font-size:24px}
.dsh-page-sub{font-size:13px}
.dsh-pt-price-symbol{font-size:24px;vertical-align:super;opacity:0.8}

/* ---- contact.html ---- */
.home-ad-section{ padding:26px 0 10px; }
.home-ad-label{ text-align:center; font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:#b3b3b3; margin-bottom:10px; }
.ads-owl .ad-slide{ display:block; border-radius:14px; overflow:hidden; box-shadow:0 10px 28px rgba(0,0,0,.14); }
.ads-owl .ad-slide img{ width:100%; height:auto; display:block; }
.ads-owl .owl-stage-outer{ overflow:hidden; border-radius:14px; }
.ads-owl .owl-nav{ margin:0; }
.ads-owl .owl-nav button.owl-prev, .ads-owl .owl-nav button.owl-next{
  position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:30px; height:30px; border-radius:50%!important;
  background:rgba(255,255,255,.9)!important; color:#7a2a1e!important; font-size:14px!important; display:inline-flex; align-items:center; justify-content:center;
  box-shadow:0 3px 10px rgba(0,0,0,.25); transition:.18s; }
.ads-owl .owl-nav button.owl-prev{ left:8px; }
.ads-owl .owl-nav button.owl-next{ right:8px; }
.ads-owl .owl-nav button:hover{ background:#fff!important; transform:translateY(-50%) scale(1.1); }
.ads-owl-wrap{ position:relative; max-width:100%; overflow:visible; padding-bottom:26px; }
.ads-owl .owl-dots{ position:absolute; left:0; right:0; bottom:-24px; text-align:center; margin:0; }
.ads-owl .owl-dots .owl-dot span{ width:9px; height:9px; margin:0 4px; background:#e0cdbf; transition:.2s; }
.ads-owl .owl-dots .owl-dot.active span{ background:linear-gradient(135deg,#D61F26,#C68A3A); width:26px; border-radius:6px; }
/* contact inline styles */
.contact-info-note{font-size:12px;color:var(--muted);margin-top:4px}
.contact-form-title{margin-bottom:8px}
.contact-form-lead{color:var(--slate);font-size:14px;margin-bottom:20px}
.contact-social-lead{color:var(--slate)}
.contact-social-icon{font-size:20px}

/* ---- dashboard.html ---- */
.dash-stat-card[href]{text-decoration:none;color:inherit;cursor:pointer}
.dash-stat-card[href]:hover{transform:translateY(-2px);box-shadow:var(--sh-md)}
/* dashboard agent-uploaded cards */
.profile-card.agent-uploaded,
.list-card.agent-uploaded{
  border:1.5px solid #2c7be5 !important;
  background:linear-gradient(180deg,#eef5ff 0%,#fff 55%) !important;
  box-shadow:0 6px 20px rgba(44,123,229,.18) !important;
}
.pc-agent-ribbon{
  position:absolute;top:12px;left:0;z-index:5;
  background:linear-gradient(135deg,#2c7be5,#1a5fc0);color:#fff;
  font-size:9.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
  padding:4px 9px 4px 8px;border-radius:0 14px 14px 0;
  display:inline-flex;align-items:center;gap:4px;box-shadow:0 2px 8px rgba(26,95,192,.4);
}
.agent-tag{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  background:#e8f1fd;color:#1a5fc0;border:1px dashed #93b8e8;
  font-weight:700;border-radius:9px;cursor:default;line-height:1.3;text-align:center;
}
.pc-actions .agent-tag{flex:1;padding:6px 8px;font-size:10px}
.lc-actions .agent-tag{flex:1;padding:9px 12px;font-size:13px}
.lc-badge.agent{background:#e8f1fd !important;color:#1a5fc0 !important}
/* dashboard inline styles */
.dash-plan-expiry{font-size:13px;opacity:.9}
.dash-plan-list{list-style:none;padding:0;margin:0 0 10px;font-size:13px}
.dash-plan-renew-btn{background:rgba(255,255,255,.2);color:#fff;border-color:rgba(255,255,255,.3)}
.dash-matches-head{margin-top:36px;margin-bottom:14px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.dash-matches-title{font-family:var(--font-display);font-size:22px;color:var(--ink);margin:0}
.dash-matches-title-icon{color:var(--brand-gold);margin-right:6px}
.dash-matches-sub{font-size:12.5px;color:var(--slate);margin:3px 0 0}
.dash-matches-controls{display:flex;gap:8px;align-items:center}
.dash-matches-cta-row{text-align:center;margin-top:20px}
.dash-ad-section{padding:18px 0 4px}

/* ---- edit-profile.html ---- */
.ep-section-title-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.ep-section-title-bar > span{display:inline-flex;align-items:center;gap:8px}
.ep-edit-btn{background:#fff;border:1.5px solid #e4d3b6;border-radius:8px;padding:5px 14px;font-size:12.5px;color:#B71C22;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:.18s;font-family:inherit;line-height:1.4}
.ep-edit-btn i{font-size:13px}
.ep-edit-btn:hover{background:linear-gradient(135deg,#D61F26,#C68A3A);color:#fff;border-color:transparent;box-shadow:0 4px 12px rgba(214,31,38,.22)}
.ep-doc-view{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:50px;background:linear-gradient(135deg,#D61F26,#C68A3A);color:#fff;font-size:12.5px;font-weight:600;text-decoration:none;transition:.18s}
.ep-doc-view:hover{filter:brightness(.95);transform:translateY(-1px);color:#fff}
.ep-view-text{min-height:64px;padding:14px 16px;background:#fafafa;border:1px solid #ececec;border-radius:10px;margin:0;font-size:14px;color:#333;white-space:pre-wrap;word-break:break-word;line-height:1.55}
.ep-view-text:empty::before{content:"Not added yet";color:#aaa;font-style:italic}
.ep-view-hint{display:block;margin-top:6px;font-size:11.5px;color:#888}
.ep-edit-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
.ep-btn-save{background:linear-gradient(135deg,#D61F26,#C68A3A);color:#fff;border:0;padding:9px 24px;border-radius:50px;font-weight:600;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;box-shadow:0 5px 14px rgba(214,31,38,.25);font-family:inherit;transition:.18s}
.ep-btn-save:hover{filter:brightness(.95);transform:translateY(-1px)}
.ep-btn-cancel{background:#fff;border:1.5px solid #ddd;color:#666;padding:9px 20px;border-radius:50px;font-weight:600;font-size:13px;cursor:pointer;font-family:inherit;transition:.18s}
.ep-btn-cancel:hover{border-color:#D61F26;color:#D61F26}
.ep-view-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;padding:6px 0 2px}
@media (max-width:575px){.ep-view-grid{grid-template-columns:1fr}}
.ep-view-field{display:flex;flex-direction:column;gap:4px;padding:11px 14px;background:#fafafa;border:1px solid #ececec;border-radius:10px}
.ep-view-field .ep-view-label{font-size:10.5px;color:#888;font-weight:700;text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:6px}
.ep-view-field .ep-view-label i{color:#C68A3A;font-size:13px}
.ep-view-field .ep-view-value{font-size:14px;color:#222;font-weight:500;word-break:break-word;line-height:1.45}
.ep-view-field .ep-view-value:empty::before{content:"—";color:#bbb}
.pv-section .pv-sec-head{padding:14px 18px}
.pv-sec-body-edit{padding:18px}
.pv-section .ep-edit-btn{background:rgba(255,255,255,.85);border-color:rgba(0,0,0,.08);color:#B71C22}
.pv-section .ep-edit-btn:hover{background:linear-gradient(135deg,#D61F26,#C68A3A);color:#fff;border-color:transparent;box-shadow:0 4px 12px rgba(214,31,38,.22)}
.pv-bio[data-view-text]::before{content:"\201C"}
.pv-bio[data-view-text]::after{content:"\201D"}
.pv-sec-body-edit .form-label{font-weight:600;font-size:13px;color:#333;margin-bottom:6px;display:flex;align-items:center;gap:7px}
.pv-sec-body-edit .form-label i{color:#C68A3A}
.pv-section .pv-sec-head{background:linear-gradient(135deg,var(--green-light,#fde9ea),var(--gold-light,#f5e8d4));border-bottom:1px solid var(--line,#eee);padding:10px 16px}
.pv-section .pv-sec-title{color:var(--ink,#1a1a1a);font-family:var(--font-display,'Fraunces',serif);font-size:16px;font-weight:600}
.pv-section .pv-sec-icon{background:rgba(255,255,255,.7);color:var(--orange,#C68A3A)}
/* edit-profile inline styles — rejection block */
.ep-reject-box{margin:12px 0 0;border:1px solid rgba(214,31,38,.25);background:#fdeaea;border-radius:10px;padding:10px 12px}
.ep-reject-head{font-size:12px;font-weight:700;color:#B71C22;display:flex;align-items:center;gap:6px;margin-bottom:7px}
.ep-reject-row{display:flex;gap:8px;align-items:flex-start;margin-bottom:6px}
.ep-reject-row-last{display:flex;gap:8px;align-items:flex-start}
.ep-reject-tag-reason{flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.04em;color:#B71C22;background:#fff;border:1px solid rgba(214,31,38,.3);padding:2px 9px;border-radius:20px}
.ep-reject-reason-text{font-size:13px;color:#333;font-weight:600}
.ep-reject-tag-note{flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.04em;color:#777;background:#fff;border:1px solid #eee;padding:2px 9px;border-radius:20px}
.ep-reject-note-text{font-size:12.5px;color:#666;line-height:1.5}
/* Awaiting-review counterpart to .ep-reject-box — same shape, amber instead of
   red, since "under review" is informational rather than an error. */
.ep-pending-box{margin:12px 0 0;border:1px solid rgba(224,145,58,.35);background:#fdf5e9;border-radius:10px;padding:10px 12px}
.ep-pending-head{font-size:12px;font-weight:700;color:#9A5B12;display:flex;align-items:center;gap:6px;margin-bottom:5px}
.ep-pending-text{font-size:12.5px;color:#6b5a45;line-height:1.5}
.ep-char-hint{font-size:11.5px;color:var(--slate);display:block;margin-top:4px}
.ep-char-hint-plain{font-size:11.5px;color:var(--slate)}
.ep-once-note{color:#B71C22;font-size:11.5px;font-style:italic}

/* ---- faq.html ---- */
/* (inline styles only — uses shared .pm-hero-kicker-orange / .pm-em-* helpers) */
.faq-em-red{color:var(--brand-red);font-style:italic}

/* ---- forgot-password.html ---- */
.fp-auth-card{max-width:620px}
.fp-key-circle{width:80px;height:80px;margin:0 auto 20px;border-radius:50%;background:var(--green-light);display:flex;align-items:center;justify-content:center}
.fp-key-icon{font-size:36px;color:var(--green-dark)}

/* ---- inbox / interests pages ---- */
.ix-result-select{width:auto}
.ix-page-title-flush{margin:0 0 18px;font-size:24px}

/* ---- invoice.html ---- */
body.invoice-page{background:#f0eee9;font-family:'Poppins',sans-serif}
.inv-wrap{max-width:820px;margin:0 auto;padding:18px 14px 44px}
.inv-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-bottom:14px}
.inv-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:9px;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer;border:1.5px solid transparent;font-family:inherit}
.inv-btn.ghost{background:#fff;border-color:#ddd;color:#444}
.inv-btn.ghost:hover{border-color:#C68A3A;color:#A8742A}
.inv-btn.primary{background:linear-gradient(135deg,#D61F26,#C68A3A);color:#fff}
.inv-paper{background:#fff;border:1px solid #e2dccc;border-radius:10px;padding:34px 36px;box-shadow:0 6px 24px rgba(0,0,0,.07)}
.inv-header{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-bottom:2px solid #D61F26;padding-bottom:18px;margin-bottom:18px}
.inv-brand{display:flex;gap:12px;align-items:flex-start}
.inv-brand img{width:46px;height:46px;border-radius:10px}
.inv-brand h2{font-family:'Fraunces',serif;font-size:18px;font-weight:700;color:#1a1a1a;margin:0 0 2px}
.inv-co{font-size:11px;color:#666;line-height:1.5}
.inv-title{text-align:right;margin-left:auto}
.inv-title h1{font-family:'Fraunces',serif;font-size:26px;font-weight:700;color:#D61F26;margin:0}
.inv-num{font-size:12px;color:#666;margin-top:4px}
.inv-meta-row{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:20px}
.inv-meta-block{flex:1 1 240px;background:#faf8f3;border:1px solid #efe9da;border-radius:8px;padding:12px 14px}
.inv-meta-block h6{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#A8742A;margin:0 0 8px}
.inv-meta-line{font-size:12.5px;color:#444;margin-bottom:3px;line-height:1.5}
.inv-items{width:100%;border-collapse:collapse;margin-bottom:18px;font-size:12.5px}
.inv-items thead th{background:#1a1a1a;color:#fff;font-size:11px;text-transform:uppercase;letter-spacing:.4px;padding:9px 10px;text-align:left}
.inv-items thead th.num{text-align:right}
.inv-items tbody td{padding:11px 10px;border-bottom:1px solid #eee;vertical-align:top}
.inv-items tbody td.num{text-align:right;white-space:nowrap}
.inv-items .item-name{font-weight:700;color:#1a1a1a;margin-bottom:5px}
.inv-perks{display:flex;flex-wrap:wrap;gap:4px}
.inv-perks .perk{background:#fff3e6;color:#A8742A;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:20px}
.inv-totals{display:flex;justify-content:flex-end;margin-bottom:14px}
.inv-totals-card{width:300px;max-width:100%}
.inv-totals-row{display:flex;justify-content:space-between;font-size:13px;padding:6px 4px;color:#444}
.inv-totals-row.grand{border-top:2px solid #1a1a1a;margin-top:4px;padding-top:10px;font-family:'Fraunces',serif;font-weight:700;font-size:16px;color:#D61F26}
.inv-words{background:#faf8f3;border:1px dashed #e0d6bf;border-radius:8px;padding:9px 12px;font-size:12.5px;color:#444;margin-bottom:18px}
.inv-footer{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid #eee;padding-top:16px}
.inv-bank{font-size:11.5px;color:#555;line-height:1.6}
.inv-bank h6{font-size:12px;font-weight:700;color:#1a1a1a;margin:0 0 5px}
.inv-sign{text-align:center}
.inv-stamp{display:inline-flex;align-items:center;gap:5px;border:2px solid #16a34a;color:#16a34a;font-weight:700;font-size:13px;padding:5px 14px;border-radius:8px;transform:rotate(-6deg);margin-bottom:22px}
.inv-sig-line{font-size:11.5px;color:#555;border-top:1px solid #999;padding-top:5px;min-width:190px}
.inv-sig-line strong{display:block;color:#1a1a1a;font-size:12.5px}
.inv-disclaimer{font-size:10.5px;color:#999;text-align:center;margin:16px 0 0}
@media print{
  body.invoice-page{background:#fff}
  .inv-actions{display:none}
  .inv-paper{border:0;box-shadow:none;padding:0}
  .inv-wrap{padding:0;max-width:none}
}
/* invoice inline */
.inv-paid-tag{color:#16a34a;font-weight:600}

/* ---- login-agent / login-parent / login-vendor / login.html ---- */
.login-otp-hint{color:var(--slate);font-size:12.5px}

/* ---- login-otp.html ---- */
.otp-kicker{font-family:Kalam,cursive;font-size:22px;color:var(--gold-light)}
.otp-form-group{margin-bottom:20px}
.otp-switch-line{color:var(--slate);font-size:14px}
.otp-link-bold{font-weight:600}
.otp-resend-line{font-size:13px;color:var(--slate)}
.otp-change-link{font-size:13px}

/* ---- manage-photos.html ---- */
.mp-tip-text{color:var(--slate);font-size:14px}
.mp-photo-cell{position:relative;aspect-ratio:1;border-radius:var(--r-md);overflow:hidden}
.mp-photo-cell.approved{border:2px solid #1f9d57}
.mp-photo-cell.rejected{border:2px solid #D61F26}
.mp-photo-cell.pending{border:2px solid #C68A3A}
.mp-photo-img{width:100%;height:100%;object-fit:cover}
.mp-photo-img.rejected{filter:grayscale(.15)}
.mp-badge{position:absolute;top:8px;color:#fff;border-radius:12px;font-weight:700}
.mp-badge-main{left:8px;background:#1f9d57;font-size:10px;padding:2px 8px}
.mp-badge-approved{right:8px;background:rgba(31,157,87,.95);font-size:9px;padding:2px 7px}
.mp-badge-rejected{left:8px;background:#D61F26;font-size:9px;padding:2px 8px}
.mp-badge-pending{right:8px;background:#C68A3A;font-size:9px;padding:2px 7px}
.photo-upload-zone.is-disabled{opacity:.55;pointer-events:none}
.mp-photo-del-btn{position:absolute;bottom:8px;right:8px;width:32px;height:32px;padding:0;border-radius:50%}
.mp-reject-box{margin-top:6px;border:1px solid rgba(214,31,38,.25);background:#fdeaea;border-radius:8px;padding:8px 10px;font-size:11.5px;line-height:1.45}
.mp-reject-head{font-weight:700;color:#B71C22;margin-bottom:4px}
.mp-reject-reason{color:#333;margin-bottom:3px}
.mp-reject-reason strong{color:#B71C22}
.mp-reject-note{color:#666}
.mp-guidelines{background:var(--green-light);border-radius:var(--r-sm);border-left:3px solid var(--green)}
.mp-guidelines-title{font-size:14px}
.mp-guidelines-list{margin:0;padding-left:20px;color:var(--slate);font-size:13px}
.mp-boost-text{font-size:13px;opacity:.9}
.mp-boost-count{font-family:Fraunces,serif;font-size:28px;font-weight:700;margin:10px 0}
.mp-boost-track{background:rgba(255,255,255,.2);height:6px;border-radius:3px;overflow:hidden}

/* ============ BATCH 2 ============ */
/* ============================================================
   Migrated CSS — batch 2
   Extracted from inline/internal styles of batch-2 frontend pages.
   ============================================================ */

/* ---- shared utilities (repeated inline styles across batch 2) ---- */
.u-drawer-user-head{margin:-20px -20px 16px;border-radius:0}
.u-flex1{flex:1}
.u-ml-auto{margin-left:auto}
.u-mt8{margin-top:8px}
.u-pt12{padding-top:12px}
.u-fs13{font-size:13px}
.u-fs12-dim{font-size:12px;opacity:.9}
.u-text-green{color:#16A34A}
.u-text-amber{color:#C76A00}
.u-text-brand-blue{color:var(--brand-blue)}
.u-text-brand-red{color:var(--brand-red,#D61F26)}
.u-badge-amber{background:rgba(255,152,0,0.15);color:#C76A00}
.u-price-rupee{font-size:24px;vertical-align:super;opacity:0.8}
.u-h-24{margin:0;font-size:24px}
.u-w-auto-160{width:auto;min-width:160px}

/* ---- matches-all.html / matches-horoscope.html / matches-ignored.html /
        matches-mutual.html / matches-new.html / matches-premium.html /
        matches-shortlisted.html / members-looking-for-me.html
        (identical <style> block, shared) ---- */
.profile-card.agent-uploaded,
.list-card.agent-uploaded{
  border:1.5px solid #2c7be5 !important;
  background:linear-gradient(180deg,#eef5ff 0%,#fff 55%) !important;
  box-shadow:0 6px 20px rgba(44,123,229,.18) !important;
}
.pc-agent-ribbon{
  position:absolute;top:12px;left:0;z-index:5;
  background:linear-gradient(135deg,#2c7be5,#1a5fc0);color:#fff;
  font-size:9.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
  padding:4px 9px 4px 8px;border-radius:0 14px 14px 0;
  display:inline-flex;align-items:center;gap:4px;box-shadow:0 2px 8px rgba(26,95,192,.4);
}
.agent-tag{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  background:#e8f1fd;color:#1a5fc0;border:1px dashed #93b8e8;
  font-weight:700;border-radius:9px;cursor:default;line-height:1.3;text-align:center;
}
.pc-actions .agent-tag{flex:1;padding:6px 8px;font-size:10px}
.lc-actions .agent-tag{flex:1;padding:9px 12px;font-size:13px}
.lc-badge.agent{background:#e8f1fd !important;color:#1a5fc0 !important}

/* ---- messages.html ---- */
.messages-tab-badge{font-size:8px}
.messages-title{margin:0 0 18px;font-size:24px}

/* ---- my-orders.html ---- */
.mo-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 20px}
@media(max-width:760px){.mo-stats{grid-template-columns:1fr}}
.mo-stat-card{background:#fff;border:1px solid #eee;border-radius:14px;padding:14px 16px;display:flex;align-items:center;gap:12px}
.mo-stat-card .ic{width:42px;height:42px;border-radius:12px;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.mo-stat-card.s-total .ic{background:linear-gradient(135deg,#D61F26,#C68A3A)}
.mo-stat-card.s-active .ic{background:linear-gradient(135deg,#16a34a,#15803d)}
.mo-stat-card.s-spend .ic{background:linear-gradient(135deg,#A8742A,#C68A3A)}
.mo-stat-card .lbl{font-size:11.5px;color:#686868;text-transform:uppercase;letter-spacing:.5px;font-weight:600}
.mo-stat-card .val{font-family:'Fraunces',serif;font-weight:700;color:#1a1a1a;font-size:20px;line-height:1.1;margin-top:2px}
.mo-orders-card{background:#fff;border:1px solid #eee;border-radius:18px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.04)}
.mo-orders-head{background:linear-gradient(135deg,#fff7eb 0%,#fff 100%);padding:16px 20px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.mo-orders-head h3{font-family:'Fraunces',serif;font-weight:700;font-size:20px;margin:0;color:#1a1a1a;display:flex;align-items:center;gap:8px}
.mo-orders-head h3 i{color:#D61F26}
.mo-filter{display:flex;gap:6px;flex-wrap:wrap}
.mo-filter-pill{background:#fff;border:1.5px solid #eee;color:#444;padding:5px 14px;border-radius:50px;font-size:12px;font-weight:600;cursor:pointer;transition:.15s}
.mo-filter-pill:hover{border-color:#C68A3A}
.mo-filter-pill.active{background:linear-gradient(135deg,#D61F26,#C68A3A);color:#fff;border-color:transparent}
.mo-table-wrap{overflow-x:auto}
.mo-table{width:100%;border-collapse:collapse;font-size:13.5px}
.mo-table thead th{background:#fffaf3;color:#A8742A;font-weight:700;text-transform:uppercase;letter-spacing:.5px;font-size:11px;text-align:left;padding:12px 16px;border-bottom:1px solid #eee;white-space:nowrap}
.mo-table tbody td{padding:14px 16px;border-bottom:1px solid #f4f0e2;vertical-align:middle}
.mo-table tbody tr:last-child td{border-bottom:0}
.mo-table tbody tr:hover{background:#fffdf7}
.mo-order-id{font-family:'Fraunces',serif;font-weight:700;color:#1a1a1a}
.mo-date-stack{display:flex;flex-direction:column;gap:2px;font-size:12px;margin-top:4px}
.mo-date-stack span{display:inline-flex;align-items:center;gap:5px;color:#686868;white-space:nowrap}
.mo-date-stack span i{font-size:11px;color:#A8742A;width:14px;text-align:center}
.mo-date-stack span.expiry,.mo-date-stack span.expiry i{color:#888}
.mo-plan{font-weight:600;color:#1a1a1a}
.mo-plan-sub{font-size:12px;color:#686868;margin-top:2px}
.mo-pkg{display:flex;flex-direction:column;gap:5px;min-width:210px}
.mo-pkg span{display:flex;align-items:center;gap:7px;font-size:11.5px;color:#555;font-weight:500}
.mo-pkg span i{font-size:12px;color:#C68A3A;width:14px;text-align:center;flex-shrink:0}
.mo-pkg b{margin-left:auto;font-weight:700;color:#D61F26}
.mo-pkg b.flag{color:#15803d}
.mo-pkg b.flag.no{color:#9aa0a6}
.mo-amount{font-family:'Fraunces',serif;font-weight:700;color:#D61F26;font-size:15px}
.mo-status{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:50px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.mo-status.active{background:#dcfce7;color:#15803d}
.mo-status.expired{background:#e5e7eb;color:#6b7280}
.mo-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:8px;font-size:12px;font-weight:600;text-decoration:none;cursor:pointer;border:1.5px solid #eee;background:#fff;color:#444;transition:.15s;white-space:nowrap}
.mo-btn:hover{border-color:#C68A3A;color:#A8742A}
.mo-empty{text-align:center;padding:50px 20px;color:#686868}
.mo-empty i{font-size:54px;color:#C68A3A;opacity:.6;margin-bottom:10px;display:block}
.mo-empty h5{font-family:'Fraunces',serif;color:#1a1a1a;margin:8px 0 4px;font-weight:700}
.mo-empty p{font-size:14px;margin:0 0 14px}
.mo-tab-badge{font-size:7px}

/* ---- nri-matrimony.html ---- */
.nri-badge-glass{background:rgba(255,255,255,0.15);color:#fff;font-weight:600;backdrop-filter:blur(8px);}
.nri-hero-gradient{background:linear-gradient(135deg,#B71C22,#A8742A);}
.nri-text-white{color:#fff;}
.nri-text-white-90{color:rgba(255,255,255,0.9);}
.nri-text-gold{color:var(--gold);}
.nri-btn-gold{background:var(--gold);color:#333;font-weight:600;padding:12px 28px;}
.nri-bg-soft{background:var(--bg-soft);}
.nri-badge-gold{background:#fef5db;color:var(--gold-dark);}
.nri-badge-orange{background:#fff5e6;color:var(--orange);}
.nri-stat-num{font-family:'Fraunces',serif;font-weight:700;font-size:2.4rem;color:var(--gold-dark);}
.nri-stat-num-green{font-family:'Fraunces',serif;font-weight:700;font-size:2.4rem;color:var(--green);}
.nri-stat-num-orange{font-family:'Fraunces',serif;font-weight:700;font-size:2.4rem;color:var(--orange);}
.nri-emoji{font-size:2.6rem;line-height:1;}
.nri-maxw-640{max-width:640px;}

/* ---- parent-dashboard.html ---- */
.pd-header-btn{background:rgba(255,255,255,.2);color:#fff;border-color:rgba(255,255,255,.3)}
.pd-icon-gold{color:var(--brand-gold);margin-right:6px}
.pd-flex-center{display:flex;gap:8px;align-items:center}
.pd-title{font-family:var(--font-display);font-size:22px;color:var(--ink);margin:0}
.pd-subtitle{font-size:12.5px;color:var(--slate);margin:3px 0 0}
.pd-fs13-dim{font-size:13px;opacity:.9}
.pd-list{list-style:none;padding:0;margin:0 0 10px;font-size:13px}
.pd-section-head{margin-top:36px;margin-bottom:14px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.pd-center-mt20{text-align:center;margin-top:20px}

/* ---- parent-edit.html ---- */
.pe-warn-icon{color:#B45309;font-size:18px}
.pe-text-brand-red{color:var(--brand-red)}
.pe-slate-medium{color:var(--slate);font-weight:500}
.pe-action-row{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
.pe-flex1-center{flex:1;justify-content:center}
.pe-banner-text{flex:1;min-width:200px;font-size:13px;color:#8B4513}
.pe-hint{font-size:11.5px;color:var(--slate);margin-top:4px}
.pe-fs12{font-size:12px}
.pe-back-link{font-size:13px;color:var(--slate);text-decoration:none;margin-bottom:14px;display:inline-flex;align-items:center;gap:5px}
.pe-pw-input{padding-right:42px}
.pe-pw-toggle{position:absolute;top:50%;right:10px;transform:translateY(-50%);background:none;border:none;color:var(--slate);cursor:pointer}
.pe-relative{position:relative}

/* ---- parent-login.html ---- */
.pl-icon-amber{color:#B45309;margin-right:8px}
.pl-text-brand-red{color:var(--brand-red)}
.pl-slate-medium{color:var(--slate);font-weight:500}
.pl-action-row{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
.pl-flex1-center{flex:1;justify-content:center}
.pl-title{font-family:var(--font-display);font-size:28px;color:var(--ink);margin:0}
.pl-hint{font-size:11.5px;color:var(--slate);margin-top:4px}
.pl-subtitle{font-size:13px;color:var(--slate);margin:4px 0 0}
.pl-mb18{margin-bottom:18px}
.pl-pw-input{padding-right:42px}
.pl-pw-toggle{position:absolute;top:50%;right:10px;transform:translateY(-50%);background:none;border:none;color:var(--slate);cursor:pointer}
.pl-relative{position:relative}

/* ---- parent-view.html ---- */
.pvw-icon-amber{color:#B45309;margin-right:8px}
.pvw-text-brand-red{color:var(--brand-red)}
.pvw-action-row{display:flex;gap:10px;margin-top:16px}
.pvw-section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;flex-wrap:wrap;gap:10px}
.pvw-flex1-center{flex:1;justify-content:center}
.pvw-title{font-family:var(--font-display);font-size:28px;color:var(--ink);margin:0}
.pvw-hint{font-size:11.5px;color:var(--slate);margin-top:4px}
.pvw-subtitle{font-size:13px;color:var(--slate);margin:4px 0 0}
.pvw-mb20{margin-bottom:20px}
.pvw-pw-input{padding-right:42px}
.pvw-pw-toggle{position:absolute;top:50%;right:10px;transform:translateY(-50%);background:none;border:none;color:var(--slate);cursor:pointer}
.pvw-relative{position:relative}

/* ---- partner-preferences.html ---- */
.ep-section-title-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.ep-section-title-bar > span{display:inline-flex;align-items:center;gap:8px}
.ep-edit-btn{background:#fff;border:1.5px solid #e4d3b6;border-radius:8px;padding:5px 14px;font-size:12.5px;color:#B71C22;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:.18s;font-family:inherit;line-height:1.4}
.ep-edit-btn i{font-size:13px}
.ep-edit-btn:hover{background:linear-gradient(135deg,#D61F26,#C68A3A);color:#fff;border-color:transparent;box-shadow:0 4px 12px rgba(214,31,38,.22)}
.ep-view-hint{display:block;margin-top:6px;font-size:11.5px;color:#888}
.ep-edit-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
.ep-btn-save{background:linear-gradient(135deg,#D61F26,#C68A3A);color:#fff;border:0;padding:9px 24px;border-radius:50px;font-weight:600;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;box-shadow:0 5px 14px rgba(214,31,38,.25);font-family:inherit;transition:.18s}
.ep-btn-save:hover{filter:brightness(.95);transform:translateY(-1px)}
.ep-btn-cancel{background:#fff;border:1.5px solid #ddd;color:#666;padding:9px 20px;border-radius:50px;font-weight:600;font-size:13px;cursor:pointer;font-family:inherit;transition:.18s}
.ep-btn-cancel:hover{border-color:#D61F26;color:#D61F26}
.pv-section .pv-sec-head{background:linear-gradient(135deg,var(--green-light,#fde9ea),var(--gold-light,#f5e8d4));border-bottom:1px solid var(--line,#eee);padding:10px 16px}
.pv-section .pv-sec-title{color:var(--ink,#1a1a1a);font-family:var(--font-display,'Fraunces',serif);font-size:16px;font-weight:600}
.pv-section .pv-sec-icon{background:rgba(255,255,255,.7);color:var(--orange,#C68A3A)}
.pv-section .ep-edit-btn{background:rgba(255,255,255,.85);border-color:rgba(0,0,0,.08);color:#B71C22}
.pv-section .ep-edit-btn:hover{background:linear-gradient(135deg,#D61F26,#C68A3A);color:#fff;border-color:transparent;box-shadow:0 4px 12px rgba(214,31,38,.22)}
.pv-sec-body-edit{padding:18px}
.pv-sec-body-edit .form-label{font-weight:600;font-size:13px;color:#333;margin-bottom:6px;display:flex;align-items:center;gap:7px}
.pv-sec-body-edit .form-label i{color:#C68A3A}
.pv-summary{padding:14px 18px;color:#475569;font-size:14px;line-height:1.6;font-family:var(--font-display,'Fraunces',serif);font-style:italic}
/* partner-preferences inline styles */
.ppf-row-start{display:flex;gap:8px;align-items:flex-start}
.ppf-row-start-mb{display:flex;gap:8px;align-items:flex-start;margin-bottom:6px}
.ppf-tag{flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.04em;color:#777;background:#fff;border:1px solid #eee;padding:2px 9px;border-radius:20px}
.ppf-tag-red{flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.04em;color:#B71C22;background:#fff;border:1px solid rgba(214,31,38,.3);padding:2px 9px;border-radius:20px}
.ppf-slate-sm{font-size:11.5px;color:var(--slate)}
.ppf-desc{font-size:12.5px;color:#666;line-height:1.5}
.ppf-section-label{font-size:12px;font-weight:700;color:#B71C22;display:flex;align-items:center;gap:6px;margin-bottom:7px}
.ppf-val{font-size:13px;color:#333;font-weight:600}
.ppf-note-box{margin:12px 0 0;border:1px solid rgba(214,31,38,.25);background:#fdeaea;border-radius:10px;padding:10px 12px}
.ppf-empty-hint{text-align:center;padding-top:8px;color:var(--slate)}

/* ---- payment-success.html ---- */
.psx-info-box{background:var(--gold-light);border-radius:var(--r-md);text-align:left}
.psx-green-dark{color:var(--green-dark)}
.psx-green-dark-italic{color:var(--green-dark);font-style:italic}
.psx-slate-13{color:var(--slate);font-size:13px}
.psx-slate-14{color:var(--slate);font-size:14px}
.psx-check-icon{font-size:60px;color:var(--green)}
.psx-maxw-600{max-width:600px}
.psx-check-circle{width:100px;height:100px;margin:0 auto 20px;border-radius:50%;background:var(--green-light);display:flex;align-items:center;justify-content:center;animation:onlinePulse 2s ease-in-out infinite}

/* ---- payment.html ---- */
.order-sum-card{
  background:#fff !important;border:1px solid #f0e2c4 !important;border-radius:16px;
  overflow:hidden;padding:0 !important;
  box-shadow:0 10px 24px rgba(214,31,38,.10)
}
.order-sum-head{
  background:linear-gradient(135deg,#D61F26 0%, #E25822 55%, #E89243 100%);
  color:#fff;padding:18px 20px;position:relative;overflow:hidden;
  display:flex;align-items:center;gap:14px
}
.order-sum-head::after{
  content:"";position:absolute;top:-30px;right:-30px;width:130px;height:130px;
  border-radius:50%;background:rgba(255,255,255,.10);z-index:0
}
.order-sum-head::before{
  content:"";position:absolute;bottom:-50px;right:40px;width:80px;height:80px;
  border-radius:50%;background:rgba(255,255,255,.07);z-index:0
}
.order-sum-head > *{position:relative;z-index:1}
.order-sum-head .osh-icon{
  width:46px;height:46px;border-radius:12px;background:rgba(255,255,255,.22);
  display:inline-flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0
}
.order-sum-head .osh-text h6{
  font-family:'Fraunces',serif;font-weight:700;font-size:19px;color:#fff;margin:0
}
.order-sum-head .osh-text p{
  color:rgba(255,255,255,.88);font-size:12.5px;margin:2px 0 0
}
.order-sum-body{padding:14px 18px 18px}
.order-sum-list{display:flex;flex-direction:column;margin-bottom:6px}
.order-sum-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:11px 12px;font-size:14px;border:1px solid #f0e2c4;border-radius:10px;
  background:#fff;margin-bottom:8px
}
.order-sum-row .osr-l{display:flex;align-items:center;gap:10px;color:#333;font-weight:500}
.order-sum-row .osr-l i{color:#D61F26;font-size:16px;width:20px;text-align:center}
.order-sum-row .osr-v{font-weight:700;color:#1a1a1a;white-space:nowrap}
.order-sum-row.discount-row .osr-l i{color:#16a34a}
.order-sum-row.discount-row .osr-v{color:#15803d}
.order-sum-row.order-sum-total{
  background:linear-gradient(135deg,#fff5f0 0%, #fff9ef 100%);
  border-color:#E89243;margin-bottom:0;margin-top:4px;padding:14px
}
.order-sum-row.order-sum-total .osr-l{color:#1a1a1a;font-weight:700;font-size:15px}
.order-sum-row.order-sum-total .osr-l i{color:#D61F26;font-size:18px}
.order-sum-row.order-sum-total .osr-v{color:#D61F26;font-size:20px;font-family:'Fraunces',serif}
.order-sum-foot{padding:0 18px 18px}
/* payment inline styles */
.pay-row-border{border-bottom:1px solid var(--line)}
.pay-strike{color:var(--muted);text-decoration:line-through}
.pay-sub{color:var(--slate);font-size:13px;margin:0}
.pay-price{font-family:Fraunces,serif;font-size:28px;font-weight:700;color:var(--gold-dark)}
.pay-note{font-size:12px;color:var(--slate);margin:0 0 12px}
.pay-note-bottom{font-size:12px;color:var(--slate);margin:20px 0 0}
.pay-text-right{text-align:right}

/* ---- press.html ---- */
.press-tabs { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:28px; justify-content:center; }
.press-tab-btn { background:#fff; border:1.5px solid var(--line); border-radius:999px; padding:10px 22px; font-size:14px; font-weight:600; color:var(--slate); cursor:pointer; transition:all .15s; box-shadow:0 1px 2px rgba(0,0,0,0.04); }
.press-tab-btn i { margin-right:6px; }
.press-tab-btn:hover { color:var(--orange); border-color:var(--orange); }
.press-tab-btn.active { background:var(--orange); border-color:var(--orange); color:#fff; box-shadow:0 4px 12px rgba(214,31,38,0.25); }
.press-tab-panel { display:none; }
.press-tab-panel.active { display:block; }
.yt-card { display:block; background:#fff; border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; box-shadow:var(--sh-sm); height:100%; text-decoration:none; color:inherit; transition:transform .15s, box-shadow .15s; }
.yt-card:hover { transform:translateY(-2px); box-shadow:var(--sh-md); }
.yt-thumb { position:relative; aspect-ratio:16/9; background:#000; overflow:hidden; }
.yt-thumb img { width:100%; height:100%; object-fit:cover; transition: transform 0.4s ease; }
.yt-card:hover .yt-thumb img { transform: scale(1.05); }
.yt-play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:56px; height:56px; border-radius:50%; background:rgba(255,0,0,.92); color:#fff; display:flex; align-items:center; justify-content:center; font-size:22px; box-shadow:0 4px 16px rgba(0,0,0,.4); }
.yt-meta { padding:14px 16px; }
.yt-meta h6 { font-family:Fraunces,serif; margin:0 0 6px; font-size:15.5px; line-height:1.35; }
.yt-channel { font-size:12.5px; color:var(--slate); display:flex; align-items:center; gap:6px; }
.yt-channel i { color:#ff0000; }
.press-clickable { cursor: zoom-in; }
.press-lightbox { position:fixed; inset:0; background:rgba(0,0,0,0.85); display:none; align-items:center; justify-content:center; z-index:9999; padding:24px; cursor:zoom-out; }
.press-lightbox.open { display:flex; animation:plbFadeIn .2s ease; }
.press-lightbox img { max-width:96vw; max-height:92vh; border-radius:8px; box-shadow:0 24px 64px rgba(0,0,0,0.4); cursor:default; }
.press-lightbox .plb-close { position:absolute; top:18px; right:18px; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,0.95); color:#000; border:none; font-size:20px; cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 12px rgba(0,0,0,0.3); }
@keyframes plbFadeIn { from { opacity:0; } to { opacity:1; } }
.yt-card { cursor:pointer; }
/* press inline styles */
.press-bg-white{background:#fff}
.press-handwrite{font-family:Kalam,cursive;font-size:22px;color:var(--orange)}
.press-meta-line{font-size:12.5px;color:var(--slate);display:flex;align-items:center;gap:6px;margin-top:6px}

/* ---- pricing.html ---- */
:root{
  --pp-red:#D61F26; --pp-red-dark:#B71C22;
  --pp-gold:#C68A3A; --pp-gold-dark:#A8742A; --pp-gold-light:#f5e8d4;
  --pp-ink:#1a1a1a; --pp-muted:#666;
}
.pp-steps{display:flex;justify-content:center;gap:6px;align-items:center;margin:24px 0 10px;flex-wrap:wrap;font-size:12px;color:var(--pp-muted)}
.pp-steps .step{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;background:#fff;border:1px solid #eee;border-radius:50px}
.pp-steps .step .n{background:var(--pp-gold);color:#fff;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:11px}
.pp-steps .step.done{background:#fff;border-color:var(--pp-gold)}
.pp-steps .step.done .n{background:var(--pp-red)}
.pp-steps i.bi-chevron-right{color:#bbb}
.pp-section-head{text-align:center;margin:24px 0 14px}
.pp-section-head .lbl{display:inline-flex;align-items:center;gap:8px;font-family:'Fraunces',serif;font-style:italic;color:var(--pp-red-dark);font-size:14px;letter-spacing:.5px;text-transform:uppercase;font-weight:600}
.pp-section-head h2{font-family:'Fraunces',serif;font-weight:600;font-size:26px;margin:6px 0 0}
.pp-section-head h2 em{color:var(--pp-red);font-style:italic}
.pp-section-head p{color:var(--pp-muted);margin:4px 0 0;font-size:13px}
.pkg-tabs{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:14px 0 4px}
.pkg-tab{background:#fff;border:1.5px solid #e5d8c2;color:var(--pp-ink);font-weight:600;padding:12px 26px;border-radius:50px;cursor:pointer;transition:.2s;display:flex;align-items:center;gap:8px;font-size:15px;font-family:inherit}
.pkg-tab:hover{border-color:var(--pp-gold);color:var(--pp-gold-dark)}
.pkg-tab.active{background:linear-gradient(135deg,var(--pp-red) 0%,var(--pp-gold) 100%);color:#fff;border-color:transparent;box-shadow:0 4px 14px rgba(214,31,38,.25)}
.pkg-tab .badge-mini{background:rgba(255,255,255,.25);font-size:10px;padding:2px 8px;border-radius:20px}
.pkg-tab:not(.active) .badge-mini{background:var(--pp-gold-light);color:var(--pp-gold-dark)}
.age-pills{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:6px 0 0}
.age-pill{background:#fff;border:1.5px solid #e5d8c2;color:#444;padding:10px 18px;border-radius:50px;cursor:pointer;font-weight:600;font-size:13px;display:inline-flex;align-items:center;gap:8px;transition:.2s;min-width:110px;justify-content:center;font-family:inherit}
.age-pill .ico{width:22px;height:22px;border-radius:50%;background:var(--pp-gold-light);color:var(--pp-gold-dark);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}
.age-pill:hover{border-color:var(--pp-gold);color:var(--pp-gold-dark)}
.age-pill.active{background:var(--pp-red);color:#fff;border-color:var(--pp-red);box-shadow:0 3px 10px rgba(214,31,38,.25)}
.age-pill.active .ico{background:#fff;color:var(--pp-red)}
.age-step-note{text-align:center;color:var(--pp-muted);font-size:12px;margin:10px 0 0}
.validity-heading{display:flex;align-items:center;justify-content:center;gap:14px;margin:30px 0 4px}
.validity-heading::before,.validity-heading::after{content:"";flex:0 1 80px;height:1px;background:linear-gradient(90deg,transparent,#d8c8a3,transparent)}
.validity-heading h3{font-family:'Fraunces',serif;font-weight:600;font-size:22px;color:var(--pp-red-dark);margin:0;display:inline-flex;align-items:center;gap:10px}
.validity-heading h3 i{color:var(--pp-gold-dark)}
.validity-sub{text-align:center;color:var(--pp-muted);font-size:13px;margin:0 0 22px}
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:980px;margin:0 auto}
@media(max-width:900px){.plan-grid{grid-template-columns:1fr}}
.plan-card{background:#fff;border:1.5px solid #eee;border-radius:18px;padding:22px 20px;position:relative;overflow:hidden;transition:.25s;display:flex;flex-direction:column}
.plan-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(0,0,0,.08);border-color:var(--pp-gold)}
.plan-card.best{border:2px solid var(--pp-red);box-shadow:0 10px 30px rgba(214,31,38,.12)}
.plan-card .ribbon{position:absolute;top:0;left:0;background:var(--pp-red);color:#fff;font-size:10px;font-weight:700;padding:4px 12px;border-radius:0 0 10px 0;letter-spacing:.5px}
.plan-card .months{display:inline-flex;align-items:baseline;gap:6px;font-family:'Fraunces',serif;font-weight:700;color:var(--pp-ink);font-size:36px;line-height:1}
.plan-card .months small{font-size:14px;color:var(--pp-muted);font-weight:400}
.plan-card .pack-name{font-size:12px;color:var(--pp-gold-dark);font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin:10px 0 2px}
.plan-card .bonus{display:inline-block;background:var(--pp-gold-light);color:var(--pp-gold-dark);font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;margin-bottom:10px}
.plan-card .bonus.free{background:var(--pp-red);color:#fff}
.plan-card .price{font-family:'Fraunces',serif;font-size:30px;font-weight:700;color:var(--pp-red);line-height:1;margin:6px 0 2px}
.plan-card .price small{font-size:13px;color:var(--pp-muted);font-weight:400}
.plan-card .strike{color:#aaa;text-decoration:line-through;font-size:14px;font-weight:500;margin-right:6px}
.plan-card .per-mo{color:var(--pp-muted);font-size:12px;margin-bottom:12px}
.plan-card .pf-line{background:#fdf6ec;border:1px dashed var(--pp-gold);color:var(--pp-gold-dark);font-size:11px;padding:6px 10px;border-radius:8px;margin-bottom:14px;text-align:center;font-weight:600}
.common-features{background:linear-gradient(135deg,#fff7eb 0%,#fff 100%);border:1px solid #f0e2c4;border-radius:12px;padding:10px 12px;margin-bottom:14px}
.common-features .cf-title{font-size:10px;font-weight:700;color:var(--pp-gold-dark);text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px;display:flex;align-items:center;gap:6px}
.common-features .cf-title i{font-size:12px}
.cf-row{display:flex;align-items:center;justify-content:space-between;padding:5px 0;border-top:1px dashed #ead7af;font-size:12px;color:#333}
.cf-row:first-of-type{border-top:0}
.cf-row .cf-l{display:flex;align-items:center;gap:8px;font-weight:500}
.cf-row .cf-l i{color:var(--pp-red);font-size:13px;width:16px;text-align:center}
.cf-row .cf-v{font-weight:700;color:var(--pp-red-dark);font-size:13px}
.cf-row .cf-v.yes{background:#16a34a;color:#fff;font-size:10px;padding:2px 8px;border-radius:20px;font-weight:700}
.cf-row .cf-v.no{background:#e8e8e8;color:#888;font-size:10px;padding:2px 8px;border-radius:20px;font-weight:700}
.plan-card .feature-list{list-style:none;padding:0;margin:0 0 16px;flex:1}
.plan-card .feature-list li{font-size:13px;padding:4px 0;display:flex;align-items:flex-start;gap:8px;color:#333}
.plan-card .feature-list li i{color:#16a34a;margin-top:2px;font-size:14px;flex-shrink:0}
.plan-card .feature-list li.off{color:#aaa}
.plan-card .feature-list li.off i{color:#ccc}
.btn-choose{background:#fff;color:var(--pp-red);border:1.5px solid var(--pp-red);padding:11px;border-radius:10px;font-weight:600;width:100%;text-decoration:none;text-align:center;transition:.2s;font-size:14px;display:inline-block}
.btn-choose:hover{background:var(--pp-red);color:#fff}
.plan-card.best .btn-choose{background:linear-gradient(135deg,var(--pp-red) 0%,var(--pp-gold) 100%);color:#fff;border-color:transparent}
.plan-card.best .btn-choose:hover{filter:brightness(.92)}
.pkg-panel{display:none}
.pkg-panel.active{display:block;animation:ppFadeIn .3s ease}
@keyframes ppFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.pp-legend{background:#fff;border:1px dashed var(--pp-gold);border-radius:14px;padding:12px 16px;margin:14px auto 0;max-width:780px;font-size:12px;color:#555;text-align:center}
.pp-legend strong{color:var(--pp-red-dark)}
.single-pkg-note{background:var(--pp-gold-light);color:var(--pp-gold-dark);border-radius:14px;padding:14px;text-align:center;font-size:13px;max-width:720px;margin:14px auto 0;font-weight:500}
.plan-grid-single{grid-template-columns:1fr;max-width:380px}
.plan-card-centered{text-align:center}
.plan-card-centered .pack-name,
.plan-card-centered .months,
.plan-card-centered .bonus,
.plan-card-centered .price,
.plan-card-centered .per-mo,
.plan-card-centered .pf-line{display:block;margin-left:auto;margin-right:auto}
.plan-card-centered .months{justify-content:center}
.plan-card-centered .price{text-align:center}
.plan-card-centered .common-features{text-align:left}
.plan-card-centered .price .strike{display:inline-block;margin-right:8px}
.plan-card-centered .price .amt-free{color:#16a34a}
/* pricing inline styles */
.pricing-green-italic{color:var(--green-dark);font-style:italic}
.pricing-handwrite{font-family:Kalam,cursive;font-size:22px;color:var(--orange)}
.pricing-mt14{margin-top:14px}

/* ============ BATCH 3 ============ */
/* ============================================================
   _migrated-batch3.css
   Inline + internal CSS migrated out of batch-3 HTML pages.
   Merge into css/style.css.
   ============================================================ */

/* ---- shared: header nav nowrap (search-advanced, search-regular,
        search-results, search-by-id, search-keyword) ---- */
.site-header .navbar-nav .nav-link{white-space:nowrap!important}

/* ---- shared: agent-uploaded profile cards
        (profiles-ignored, profiles-blocked, search-results) ---- */
.profile-card.agent-uploaded,
.list-card.agent-uploaded{
  border:1.5px solid #2c7be5 !important;
  background:linear-gradient(180deg,#eef5ff 0%,#fff 55%) !important;
  box-shadow:0 6px 20px rgba(44,123,229,.18) !important;
}
.pc-agent-ribbon{
  position:absolute;top:12px;left:0;z-index:5;
  background:linear-gradient(135deg,#2c7be5,#1a5fc0);color:#fff;
  font-size:9.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
  padding:4px 9px 4px 8px;border-radius:0 14px 14px 0;
  display:inline-flex;align-items:center;gap:4px;box-shadow:0 2px 8px rgba(26,95,192,.4);
}
.agent-tag{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  background:#e8f1fd;color:#1a5fc0;border:1px dashed #93b8e8;
  font-weight:700;border-radius:9px;cursor:default;line-height:1.3;text-align:center;
}
.pc-actions .agent-tag{flex:1;padding:6px 8px;font-size:10px}
.lc-actions .agent-tag{flex:1;padding:9px 12px;font-size:13px}
.lc-badge.agent{background:#e8f1fd !important;color:#1a5fc0 !important}

/* ---- shared utility classes (repeated inline styles across batch) ---- */
.b3-flex-1{flex:1}
.b3-drawer-user-head{margin:-20px -20px 16px;border-radius:0}
.b3-chev-auto{margin-left:auto}
.b3-section-label-mt{margin-top:8px}
.b3-signout-link{color:var(--brand-red,#D61F26)}
.b3-text-blue{color:var(--brand-blue)}
.b3-icon-orange-bg{background:rgba(255,152,0,0.15);color:#C76A00}
.b3-text-orange{color:#C76A00}
.b3-text-green{color:#16A34A}
.b3-dp-pad-top{padding-top:12px}
.b3-dp-promo-text{font-size:12px;opacity:.9}
.b3-required-star{color:var(--brand-red);margin-right:4px}
.b3-field-error{color:var(--brand-red);font-size:12px}
.b3-select-auto{width:auto}
.b3-hero-jumbo{font-size:24px;vertical-align:super;opacity:0.8}
.b3-age-selects{display:flex;gap:10px}
.b3-age-label{font-size:11px;color:#888;margin-bottom:4px;display:block;font-weight:500}
.b3-mt14{margin-top:14px}
.b3-link-red{color:var(--brand-red);font-weight:600;text-decoration:none}
.b3-hidden-checkbox{display:none}
.b3-link-red-bold{color:var(--brand-red);font-weight:600}
.b3-script-head{font-family:Kalam,cursive;font-size:22px}
.b3-emphasis-italic{font-style:italic}

/* ---- profile-view.html ---- */
.pv-horoscope .pv-yantra-spokes{display:none}
.pv-yantra-score-num{font-size:54px!important}
.pv-yantra-score-max{font-size:32px!important;margin-left:2px}
.pv-yantra-score-tag{letter-spacing:.18em!important}
.pv-yantra-score-lbl{font-size:11px!important;letter-spacing:.2em!important;color:#fbbf24!important;margin-top:6px}
.pv-horo-card-verdict{font-family:'Fraunces',serif;font-size:32px;font-weight:700;color:#fbbf24;letter-spacing:.02em}
.pv-horo-card-verdict-lbl{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.75);margin-top:4px}
.pv-horo-breakdown{display:flex;flex-direction:column;gap:18px;margin:8px 22px 22px;padding:22px 24px;background:rgba(255,255,255,.04);border:1px solid rgba(251,191,36,.22);border-radius:16px;position:relative;z-index:2;backdrop-filter:blur(2px)}
.pv-bd-item{display:flex;flex-direction:column;gap:9px}
.pv-bd-header{display:flex;justify-content:space-between;align-items:center}
.pv-bd-label{display:inline-flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:rgba(255,255,255,.88)}
.pv-bd-label i{color:#fbbf24;font-size:14px}
.pv-bd-value{font-family:'Fraunces',serif;font-size:18px;font-weight:700;color:#fbbf24}
.pv-bd-bar{height:10px;background:rgba(255,255,255,.08);border-radius:99px;overflow:hidden;position:relative}
.pv-bd-fill{--target:0%;height:100%;background:linear-gradient(90deg,#fbbf24,#f59e0b,#fde047);border-radius:99px;width:0;animation:pvBdFill 1.6s .6s cubic-bezier(.34,1.2,.64,1) forwards;box-shadow:0 0 14px rgba(251,191,36,.55)}
@keyframes pvBdFill{to{width:var(--target)}}
.pv-horo-help-btn{display:none!important}
.pv-horo-modal{display:none!important}

/* ---- services.html (hero) ---- */
.svc-hero-script{font-family:Kalam,cursive;font-size:22px;color:var(--orange)}
.svc-hero-emph{color:var(--brand-red);font-style:italic}

/* ---- services.html (block 1: page-hero/services spacing) ---- */
.page-hero{padding-bottom:24px}
.services-section{padding-top:28px;padding-bottom:28px}
@media(max-width:768px){
  .page-hero{padding-bottom:18px}
  .services-section{padding-top:20px;padding-bottom:20px}
}

/* ---- services.html (block 2: ads owl carousel) ---- */
.home-ad-section{ padding:26px 0 10px; }
.home-ad-label{ text-align:center; font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:#b3b3b3; margin-bottom:10px; }
.ads-owl .ad-slide{ display:block; border-radius:14px; overflow:hidden; box-shadow:0 10px 28px rgba(0,0,0,.14); }
.ads-owl .ad-slide img{ width:100%; height:auto; display:block; }
.ads-owl .owl-stage-outer{ overflow:hidden; border-radius:14px; }
.ads-owl .owl-nav{ margin:0; }
.ads-owl .owl-nav button.owl-prev, .ads-owl .owl-nav button.owl-next{
  position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:30px; height:30px; border-radius:50%!important;
  background:rgba(255,255,255,.9)!important; color:#7a2a1e!important; font-size:14px!important; display:inline-flex; align-items:center; justify-content:center;
  box-shadow:0 3px 10px rgba(0,0,0,.25); transition:.18s; }
.ads-owl .owl-nav button.owl-prev{ left:8px; }
.ads-owl .owl-nav button.owl-next{ right:8px; }
.ads-owl .owl-nav button:hover{ background:#fff!important; transform:translateY(-50%) scale(1.1); }
.ads-owl-wrap{ position:relative; max-width:100%; overflow:visible; padding-bottom:26px; }
.ads-owl .owl-dots{ position:absolute; left:0; right:0; bottom:-24px; text-align:center; margin:0; }
.ads-owl .owl-dots .owl-dot span{ width:9px; height:9px; margin:0 4px; background:#e0cdbf; transition:.2s; }
.ads-owl .owl-dots .owl-dot.active span{ background:linear-gradient(135deg,#D61F26,#C68A3A); width:26px; border-radius:6px; }

/* ---- report-misuse.html ---- */
.rm-hero-script{font-family:Kalam,cursive;font-size:22px;color:var(--orange)}
.rm-hero-emph{color:var(--orange);font-style:italic}
.rm-mb8{margin-bottom:8px}
.rm-lead{color:var(--slate);font-size:14px;margin-bottom:20px}
.rm-muted-sm{color:var(--muted);font-size:12px}
.rm-danger-box{background:var(--bg-soft);padding:24px;border-radius:var(--r-md);border-left:4px solid var(--danger)}
.rm-danger-title{color:var(--danger)}
.rm-danger-text{font-size:14px;color:var(--slate)}
.rm-stat-num{font-family:Fraunces,serif;font-size:24px;font-weight:700;color:var(--danger)}
.rm-stat-lbl{font-size:13px;color:var(--muted)}
.rm-green-box{background:var(--green-light);padding:24px;border-radius:var(--r-md)}
.rm-green-title{color:var(--green-dark)}
.rm-green-list{font-size:14px;color:var(--slate);padding-left:18px}
.rm-green-list-item{margin-bottom:6px}

/* ---- service-details.html ---- */
.sd-section-title{font-family:var(--font-display);font-weight:600;color:var(--ink);margin:0 0 6px;font-size:24px;}

/* ---- professions.html ---- */
.prof-hero-script{font-family:Kalam,cursive;font-size:22px;color:var(--gold-light)}
.prof-hero-emph{color:var(--orange)}
.prof-search-wrap{max-width:480px;margin:0 auto}
.prof-search-input{padding-left:44px}

/* ---- religions.html ---- */
.rel-hero-script{font-family:Kalam,cursive;font-size:22px;color:var(--gold-light)}
.rel-hero-emph{color:var(--orange)}
.rel-search-wrap{max-width:480px;margin:0 auto}
.rel-search-input{padding-left:44px}

/* ---- privacy-policy.html ---- */
.pp-hero-script{font-family:Kalam,cursive;font-size:22px;color:var(--orange)}
.pp-hero-emph{color:var(--orange);font-style:italic}
.pp-footer-rule{border-top:1px solid var(--line)}
.pp-footer-text{color:var(--slate);font-size:14px}

/* ---- refund-policy.html ---- */
.rp-hero-script{font-family:Kalam,cursive;font-size:22px;color:var(--orange)}
.rp-hero-emph{color:var(--orange);font-style:italic}
.rp-footer-rule{border-top:1px solid var(--line)}
.rp-footer-text{color:var(--slate);font-size:14px}

/* ---- register.html ---- */
.reg-check-top{align-items:flex-start}
.reg-hint{color:var(--slate);font-size:12px}
.reg-step-title{font-family:var(--font-display);font-weight:700;color:var(--ink);margin-bottom:4px}
.reg-step-sub{color:var(--slate);font-size:13.5px;margin-bottom:18px}

/* ---- search-by-id.html ---- */
.sbi-help-text{font-size:11.5px;color:var(--slate);margin-top:18px}

/* ---- search-keyword.html ---- */
/* (uses shared b3- utilities) */

/* ---- search-regular.html / search-advanced.html ---- */
.sr-section-center{text-align:center;padding-top:8px;color:var(--slate)}
.sr-online-tick{color:#16A34A;font-size:9px}
.sr-gold-dark{color:var(--brand-gold-dark)}
.sa-help-text{font-size:11.5px;color:var(--slate);margin-top:6px}

/* ---- profile-visitors.html / profiles-blocked.html / profiles-ignored.html ---- */
.pvis-page-title{margin:0 0 18px;font-size:24px}
.pblk-page-title{margin:0;font-size:24px}
.pblk-page-sub{font-size:13px}
.pblk-select-auto{width:auto;min-width:160px}

/* ============ BATCH 4 ============ */
/* ============================================================
   _migrated-batch4.css
   Migrated inline + internal CSS for batch 4 pages.
   ============================================================ */

/* ---- shared (drawer / header / notification panel — common across batch) ---- */
.b4-drawer-user-head{margin:-20px -20px 16px;border-radius:0}
.b4-flex1{flex:1}
.b4-ml-auto{margin-left:auto}
.b4-mt-8{margin-top:8px}
.b4-brand-red{color:var(--brand-red,#D61F26)}
.b4-dp-admin{color:var(--brand-blue)}
.b4-dp-escalated{color:#C76A00}
.b4-dp-resolution{color:#16A34A}
.b4-dp-warn-icon{background:rgba(255,152,0,0.15);color:#C76A00}
.b4-container-pt12{padding-top:12px}
.b4-id-sub{font-size:12px;opacity:.9}
.b4-pt-rupee{font-size:24px;vertical-align:super;opacity:0.8}
.b4-action-row-mt24{margin-top:24px}

/* ---- shortlisted-by-me.html (style block) ---- */
/* Agent-uploaded profiles — visually distinct, no Send Interest */
.profile-card.agent-uploaded,
.list-card.agent-uploaded{
  border:1.5px solid #2c7be5 !important;
  background:linear-gradient(180deg,#eef5ff 0%,#fff 55%) !important;
  box-shadow:0 6px 20px rgba(44,123,229,.18) !important;
}
.pc-agent-ribbon{
  position:absolute;top:12px;left:0;z-index:5;
  background:linear-gradient(135deg,#2c7be5,#1a5fc0);color:#fff;
  font-size:9.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
  padding:4px 9px 4px 8px;border-radius:0 14px 14px 0;
  display:inline-flex;align-items:center;gap:4px;box-shadow:0 2px 8px rgba(26,95,192,.4);
}
.agent-tag{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  background:#e8f1fd;color:#1a5fc0;border:1px dashed #93b8e8;
  font-weight:700;border-radius:9px;cursor:default;line-height:1.3;text-align:center;
}
.pc-actions .agent-tag{flex:1;padding:6px 8px;font-size:10px}
.lc-actions .agent-tag{flex:1;padding:9px 12px;font-size:13px}
.lc-badge.agent{background:#e8f1fd !important;color:#1a5fc0 !important}
.sbm-head-title{margin:0;font-size:24px}
.sbm-head-sub{font-size:13px}
.sbm-sort-select{width:auto;min-width:160px}

/* ---- settings-privacy.html (style block 1 — contact prefs modal) ---- */
.cp-modal-backdrop{position:fixed;inset:0;background:rgba(20,15,40,.55);display:none;align-items:center;justify-content:center;z-index:9051;padding:20px}
.cp-modal-backdrop.is-open{display:flex;animation:cpFade .2s ease}
@keyframes cpFade{from{opacity:0}to{opacity:1}}
.cp-modal{background:#fff;border-radius:16px;max-width:520px;width:100%;padding:24px;box-shadow:0 30px 60px rgba(0,0,0,.25);animation:cpPop .25s ease;max-height:90vh;overflow-y:auto}
@keyframes cpPop{from{transform:translateY(20px) scale(.96);opacity:0}to{transform:none;opacity:1}}
.cp-modal h4{font-family:'Fraunces',serif;font-weight:700;font-size:20px;margin:0 0 4px;color:var(--ink,#1a1a1a)}
.cp-modal .cp-sub{font-size:13px;color:var(--slate,#666);margin-bottom:18px}
.cp-modal .cp-grid{display:grid;grid-template-columns:160px 14px 1fr;gap:14px 10px;align-items:center;margin-bottom:18px}
@media(max-width:540px){.cp-modal .cp-grid{grid-template-columns:1fr;gap:6px 0}.cp-modal .cp-grid .cp-col-sep{display:none}.cp-modal .cp-grid .cp-lbl{margin-top:6px}}
.cp-modal .cp-lbl{font-weight:600;font-size:14px;color:#222}
.cp-modal .cp-col-sep{color:#888}
.cp-modal .cp-input, .cp-modal .cp-select, .cp-modal .cp-textarea{
  width:100%;border:1.5px solid #e5e5e5;border-radius:10px;padding:10px 14px;font-size:14px;font-family:inherit;background:#fff
}
.cp-modal .cp-textarea{min-height:74px;resize:vertical}
.cp-modal .cp-input:focus, .cp-modal .cp-select:focus, .cp-modal .cp-textarea:focus{
  outline:none;border-color:var(--brand-red,#D61F26);box-shadow:0 0 0 3px rgba(214,31,38,.12)
}
.cp-modal .cp-actions{display:flex;gap:10px;justify-content:flex-end;border-top:1px solid #eee;padding-top:14px}
.cp-modal .cp-btn{display:inline-flex;align-items:center;gap:6px;justify-content:center;padding:10px 22px;border-radius:10px;font-weight:600;font-size:14px;cursor:pointer;border:1.5px solid transparent;transition:.15s}
.cp-modal .cp-btn.cancel{background:#fff;border-color:#e5e5e5;color:#444}
.cp-modal .cp-btn.cancel:hover{background:#f4f4f4}
.cp-modal .cp-btn.save{background:linear-gradient(135deg,#D61F26 0%,#C68A3A 100%);color:#fff}
.cp-modal .cp-btn.save:hover{filter:brightness(.95)}

/* ---- settings-privacy.html (style block 2 — mobile edit modal) ---- */
.mob-modal-backdrop{position:fixed;inset:0;background:rgba(20,15,40,.55);display:none;align-items:center;justify-content:center;z-index:9050;padding:16px;box-sizing:border-box}
.mob-modal-backdrop.is-open{display:flex;animation:mobFade .2s ease}
@keyframes mobFade{from{opacity:0}to{opacity:1}}
.mob-modal{background:#fff;border-radius:16px;max-width:440px;width:100%;padding:24px;box-shadow:0 30px 60px rgba(0,0,0,.25);animation:mobPop .25s ease;box-sizing:border-box}
.mob-modal *,.mob-modal *::before,.mob-modal *::after{box-sizing:border-box}
@keyframes mobPop{from{transform:translateY(20px) scale(.96);opacity:0}to{transform:none;opacity:1}}
.mob-modal h4{font-family:'Fraunces',serif;font-weight:700;font-size:20px;margin:0 0 4px;color:var(--ink,#1a1a1a)}
.mob-modal .mob-sub{font-size:13px;color:var(--slate,#666);margin-bottom:18px}
.mob-modal label{display:block;font-weight:600;font-size:13px;margin-bottom:6px;color:#333}
/* Unified phone-input container: country code prefix + number share one border */
.mob-modal .mob-input-wrap{display:flex;align-items:stretch;width:100%;border:1.5px solid #e5e5e5;border-radius:10px;overflow:hidden;background:#fff;margin-bottom:8px;transition:.15s}
.mob-modal .mob-input-wrap:focus-within{border-color:var(--brand-red,#D61F26);box-shadow:0 0 0 3px rgba(214,31,38,.12)}
.mob-modal .mob-cc{flex:0 0 auto;padding:11px 14px;background:#fafafa;font-size:14px;font-weight:600;color:#333;border-right:1px solid #e5e5e5;display:flex;align-items:center;white-space:nowrap;line-height:1}
.mob-modal .mob-num{flex:1 1 0;min-width:0;width:100%;border:0;padding:11px 14px;font-size:15px;letter-spacing:.5px;outline:none;background:transparent;font-family:inherit;color:#1a1a1a}
.mob-modal .mob-err{color:#D61F26;font-size:12.5px;margin:2px 0 0;display:none}
.mob-modal .mob-err.is-shown{display:block}
.mob-modal .mob-hint{font-size:12px;color:var(--slate,#666);margin:8px 0 18px;background:#fff7eb;border:1px solid #f0e2c4;padding:8px 12px;border-radius:8px}
.mob-modal .mob-hint i{color:#C68A3A}
.mob-modal .mob-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.mob-modal .mob-btn{display:inline-flex;align-items:center;gap:6px;justify-content:center;padding:10px 22px;border-radius:10px;font-weight:600;font-size:14px;cursor:pointer;border:1.5px solid transparent;transition:.15s;font-family:inherit}
.mob-modal .mob-btn.cancel{background:#fff;border-color:#e5e5e5;color:#444}
.mob-modal .mob-btn.cancel:hover{background:#f4f4f4}
.mob-modal .mob-btn.ghost{background:transparent;border-color:transparent;color:var(--brand-red,#D61F26)}
.mob-modal .mob-btn.ghost:hover{background:rgba(214,31,38,.08)}
.mob-modal .mob-btn.ghost.is-disabled{opacity:.55;pointer-events:none}
.mob-modal .mob-btn.save{background:linear-gradient(135deg,#D61F26 0%,#C68A3A 100%);color:#fff}
.mob-modal .mob-btn.save:hover{filter:brightness(.95)}
.mob-modal .mob-btn.save.is-disabled{opacity:.55;pointer-events:none}
@media(max-width:480px){
  .mob-modal{padding:20px;border-radius:14px}
  .mob-modal h4{font-size:18px}
  .mob-modal .mob-btn{padding:10px 16px;flex:1 1 0}
  .mob-modal .mob-actions{flex-wrap:nowrap}
}
.priv-required-star{color:#D61F26}

/* ---- settings-privacy.html (inline styles) ---- */
.priv-verify-icon{background:rgba(22,163,74,0.1);color:#16A34A}
.priv-verify-note{font-size:13px;color:var(--slate);margin-bottom:14px}
.priv-alt-mobile{color:var(--slate)}
.priv-action-row-mt14{margin-top:14px}
.priv-bell-icon{background:rgba(198,138,58,0.12);color:#A8742A}
.priv-sms-note{font-size:13px;color:var(--slate);margin-bottom:12px}
.priv-india-note{font-size:12px;color:var(--brand-red,#D61F26);margin-top:10px}
.priv-visible-all{color:#16A34A}

/* ---- settings-change-password.html (inline) ---- */
.scp-action-row-mt24{margin-top:24px}

/* ---- settings-deactivate.html (inline) ---- */
.sda-active{color:#16A34A}
.sda-hr{margin:24px 0;border-color:#eee}
.sda-warn-box{background:rgba(214,31,38,0.05);border:1px solid rgba(214,31,38,0.15);border-radius:10px;padding:14px;display:flex;gap:10px;align-items:flex-start}
.sda-warn-icon{color:var(--brand-red,#D61F26);font-size:18px;flex-shrink:0}
.sda-warn-text{font-size:12.5px;color:var(--ink,#333);line-height:1.6}

/* ---- settings-delete.html (inline) ---- */
.sdl-warn-box{background:rgba(198,40,40,0.05);border-left:4px solid #D61F26;border-radius:0 10px 10px 0;padding:14px 16px;margin-bottom:22px;font-size:13px;color:#7A1D20;display:flex;gap:10px}
.sdl-warn-icon{color:#D61F26;font-size:18px;margin-top:1px;flex-shrink:0}
.sdl-q-title{font-weight:700;margin-bottom:12px;font-size:14px}
.sdl-q-icon{color:#C68A3A}
.sdl-congrats-box{background:linear-gradient(135deg,#F0F6FF,#E8F0FF);border:1px solid #DCE7FA;border-radius:14px;padding:22px}
.sdl-congrats-title{font-family:'Fraunces',serif;font-size:22px;font-weight:700;color:var(--brand-blue,#2F4A7D);margin-bottom:6px}
.sdl-congrats-p{font-weight:600;font-size:13.5px;color:var(--ink,#333);margin-bottom:18px}
.sdl-chip-row{display:flex;gap:8px;flex-wrap:wrap}
.sdl-story-textarea{width:100%;padding:12px 16px;border:1.5px solid var(--line,#ddd);border-radius:12px;font-family:'Poppins',sans-serif;font-size:14px;resize:vertical;background:#fff}
.sdl-consent-label{display:flex;gap:8px;align-items:center;cursor:pointer;font-size:13px;color:var(--ink,#333);margin-top:6px}
.sdl-consent-checkbox{accent-color:var(--brand-red,#D61F26);width:16px;height:16px}
.sdl-feedback-box{background:#fafafa;border:1px solid #eee;border-radius:14px;padding:22px}

/* ---- settings-edit-email.html (inline) ---- */
.see-verified-icon{color:#16A34A}

/* ---- settings-profile.html (inline) ---- */
.spr-shortlist-box{background:#fafafa;border:1px solid #eee;border-radius:12px;padding:16px;margin-top:18px;display:flex;align-items:center;gap:12px}
.spr-shortlist-icon{font-size:22px;color:var(--brand-red,#D61F26)}
.spr-shortlist-title{font-weight:600;font-size:13.5px}
.spr-shortlist-sub{font-size:12px;color:var(--slate,#666)}

/* ---- settings.html (inline) ---- */
.set-h2{margin:0 0 18px;font-size:24px}
.set-delete-btn{color:var(--danger);border-color:#ffcaca}

/* ---- shortlisted.html (inline) ---- */
.shl-h2{margin:0 0 18px;font-size:24px}

/* ---- success-stories.html (inline) ---- */
.ss-eyebrow{font-family:Kalam,cursive;font-size:22px;color:var(--orange)}
.ss-yes{color:var(--green-dark);font-style:italic}
.ss-sub{color:var(--slate)}

/* ---- team.html (inline) ---- */
.tm-eyebrow{font-family:Kalam,cursive;font-size:22px;color:var(--orange)}
.tm-name-em{color:var(--orange);font-style:italic}
.tm-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--sh-sm);height:100%}
.tm-card-img{width:100%;aspect-ratio:1;object-fit:cover}
.tm-card-body{padding:16px}
.tm-card-name{margin:0 0 4px;font-family:Fraunces,serif}
.tm-card-role{font-size:13px;color:var(--orange);font-weight:600;margin-bottom:8px}
.tm-card-bio{font-size:13px;color:var(--slate);margin:0}

/* ---- terms.html (inline) ---- */
.tr-eyebrow{font-family:Kalam,cursive;font-size:22px;color:var(--orange)}
.tr-name-em{color:var(--orange);font-style:italic}
.tr-footer{border-top:1px solid var(--line)}
.tr-footer-p{color:var(--slate);font-size:14px}

/* ---- ticket-detail.html (inline) ---- */
.tkd-back{font-size:13px;color:var(--slate);text-decoration:none;margin-bottom:14px;display:inline-flex;align-items:center;gap:5px}
.tkd-meta-col{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.tkd-meta-row{display:flex;gap:6px}
.tkd-you{font-weight:normal;color:var(--slate);font-size:11px}

/* ---- ticket-new.html (inline) ---- */
.tkn-back{font-size:13px;color:var(--slate);text-decoration:none;margin-bottom:14px;display:inline-flex;align-items:center;gap:5px}
.tkn-form-actions{display:flex;gap:10px;margin-top:8px}
.tkn-cancel{text-decoration:none}
.tkn-send{flex:1;justify-content:center}

/* ---- tickets.html (inline) ---- */
.tk-page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;flex-wrap:wrap;gap:10px}
.tk-h1{font-family:var(--font-display);font-size:28px;color:var(--ink);margin:0}
.tk-sub{font-size:13px;color:var(--slate);margin:4px 0 0}
.tk-new-btn{max-width:200px}
.tk-section-nav{position:static;margin-bottom:18px}
.tk-pill-count-active{opacity:0.85;font-weight:500}
.tk-pill-count{opacity:0.6;font-weight:500}
.tk-filter-row{display:flex;gap:8px}
.tk-sort-select{padding:7px 12px;border:1px solid #eee;border-radius:8px;font-size:12.5px;background:#fff}

/* ============ BATCH 5 ============ */
/* ============================================================
   _migrated-batch5.css
   Migrated inline + internal CSS for batch 5 pages.
   ============================================================ */

/* ---- shared batch5 utility classes (repeated inline styles) ---- */
.b5-box-soft{background:var(--bg-soft);border-radius:var(--r-sm)}
.b5-box-white{background:#fff;border:1px solid var(--line);border-radius:var(--r-md)}
.b5-c-brandblue{color:var(--brand-blue)}
.b5-c-brandred{color:var(--brand-red,#D61F26)}
.b5-c-green16{color:#16A34A}
.b5-c-greendark{color:var(--green-dark)}
.b5-c-orange76{color:#C76A00}
.b5-dot6{font-size:6px}
.b5-dot7{font-size:7px}
.b5-drawer-userhead{margin:-20px -20px 16px;border-radius:0}
.b5-flex-between-full{display:flex;justify-content:space-between;align-items:center;width:100%}
.b5-flex1{flex:1}
.b5-fs13{font-size:13px}
.b5-fs14{font-size:14px}
.b5-h2{margin:0;font-size:24px}
.b5-list13{font-size:13px;color:var(--slate);margin:0;padding-left:18px}
.b5-ml-auto{margin-left:auto}
.b5-mt8{margin-top:8px}
.b5-mut4{color:#888;margin-left:4px}
.b5-pt12{padding-top:12px}
.b5-rupee{font-size:24px;vertical-align:super;opacity:0.8}
.b5-select-auto{width:auto;min-width:160px}
.b5-slate{color:var(--slate)}
.b5-slate13{color:var(--slate);font-size:13px}
.b5-slate14{color:var(--slate);font-size:14px}
.b5-text13-slate{font-size:13px;color:var(--slate);margin:0}
.b5-ticket-warn-icon{background:rgba(255,152,0,0.15);color:#C76A00}
.b5-userid{font-size:12px;opacity:.9}

/* ---- upload-id.html (inline) ---- */
.uid-back-link{color:var(--slate);text-decoration:none}
.uid-actions{display:flex;gap:10px;flex-wrap:wrap}
.uid-file-ic{font-size:32px;color:var(--green-dark)}
.uid-minw0{min-width:0}
.uid-fname{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uid-fsize{font-size:12px;color:var(--slate)}
.uid-remove-btn{width:32px;height:32px;padding:0;border-radius:50%}
.uid-guidelines{background:var(--green-light);border-radius:var(--r-sm);border-left:3px solid var(--green)}
.uid-guide-list{margin:0;padding-left:20px;color:var(--slate);font-size:13px}

/* ---- vendor-change-password.html (inline) ---- */
.vcp-narrow{max-width:640px}
.vcp-gold{color:#C68A3A}

/* ---- vendor-invoice.html (inline) ---- */
.vinv-right{text-align:right}
.vinv-slate-normal{color:var(--slate);font-weight:400}
.vinv-border-b{border-bottom:1px solid var(--line)}
.vinv-muted-normal{color:var(--vd-muted);font-weight:400}
.vinv-mt4{margin-top:4px}
.vinv-green-strong{color:#16a34a;font-weight:600}
.vinv-ic9{font-size:9px;margin-right:2px}

/* ---- vendor-orders.html (inline) ---- */
.vord-row{display:flex;justify-content:space-between;align-items:center;width:100%}
.vord-sub{color:var(--slate);font-size:13px;margin-bottom:4px}
.vord-green{color:#16a34a}

/* ---- vendor-payment-success.html (inline) ---- */
.vps-check-ring{width:100px;height:100px;margin:0 auto 20px;border-radius:50%;background:var(--green-light);display:flex;align-items:center;justify-content:center;animation:onlinePulse 2s ease-in-out infinite}
.vps-check-ic{font-size:60px;color:var(--green)}
.vps-sub{color:var(--slate);font-size:13.5px;margin-bottom:18px}
.vps-goldbox{background:var(--gold-light);border-radius:var(--r-md);text-align:left}
.vps-green{color:#16a34a}
.vps-red-italic{color:var(--brand-red);font-style:italic}
.vps-foot{font-size:12px;color:var(--slate);margin:20px 0 0}
.vps-note{font-size:12px;color:var(--slate);margin:0 0 12px}
.vps-narrow{max-width:640px}
.vps-green-italic{color:var(--green-dark);font-style:italic}
.vps-mt10{margin-top:10px}
.vps-rowsub{color:var(--slate);font-size:13px;margin-bottom:4px}
.vps-ink{color:var(--ink)}
.vps-divider{border-top:1px dashed #ead7af}
.vps-chip{display:inline-block;background:#eef7ff;color:#1d4ed8;font-size:11px;font-weight:600;padding:2px 9px;border-radius:50px;margin:2px 4px 0 0}
.vps-ic10{font-size:10px;margin-right:3px}
.vps-colstretch6{flex-direction:column;align-items:stretch;gap:6px}
.vps-badge{background:#fff7eb;color:#A8742A;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:50px;margin-left:6px}
.vps-list{padding-left:24px;line-height:1.6}
.vps-italicnote{font-size:12px;color:var(--slate);font-style:italic;padding:6px 0}

/* ---- vendor-payment.html (inline) ---- */
.vpay-green{color:var(--green-dark)}
.vpay-gold{color:#C68A3A}
.vpay-mut6{color:#888;margin-left:6px}
.vpay-mut4{color:#888;margin-left:4px}
.vpay-ic10{font-size:10px;margin-right:3px}
.vpay-ic9{font-size:9px;margin-right:2px}
.vpay-mr3{margin-right:3px}
.vpay-badge{background:#fff7eb;color:#A8742A;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:50px;margin-left:6px}
.vpay-note{font-size:12px;color:var(--slate);font-style:italic;padding:6px 0}
.vpay-mb16{margin-bottom:16px}
.vpay-mb18{margin-bottom:18px}
.vpay-border-b{border-bottom:1px solid var(--line)}
.vpay-sub13{color:var(--slate);font-size:13px;margin:0}
.vpay-right{text-align:right}
.vpay-total{font-family:Fraunces,serif;font-size:28px;font-weight:700;color:var(--gold-dark)}
.vpay-meta11{color:var(--slate);font-size:11px}
.vpay-note12a{font-size:12px;color:var(--slate);margin:0 0 12px}
.vpay-note12b{font-size:12px;color:var(--slate);margin:20px 0 0}
.vpay-chip{display:inline-block;background:#eef7ff;color:#1d4ed8;font-size:11px;font-weight:600;padding:2px 9px;border-radius:50px;margin:2px 4px 0 0}
.vpay-colstart6{flex-direction:column;align-items:flex-start;gap:6px;padding:10px 0}
.vpay-list{padding-left:24px;line-height:1.6}
.vpay-green16{color:#16a34a}
.vpay-colstretch4{flex-direction:column;align-items:stretch;gap:4px}
.vpay-note-blue{font-size:11.5px;color:#1d4ed8;padding-left:24px}
.vpay-coupon-x{border:none;background:transparent;color:#c0392b;padding:0;margin-left:4px;font-size:13px;line-height:1;cursor:pointer;vertical-align:middle}
.vpay-coupon-x:hover{color:#8e2a1c}

/* ---- vendor-pricing.html (inline) ---- */
.vpr-divider{border-top:1px dashed #ead7af}
.vpr-total{font-family:Fraunces,serif;font-size:28px;font-weight:700;color:var(--gold-dark)}
.vpr-goldbox{background:var(--gold-light);border-radius:var(--r-md);text-align:left}
.vpr-green-strong{color:#16a34a;font-weight:600}
.vpr-note-blue{font-size:11.5px;color:#1d4ed8;padding-left:24px}
.vpr-script{font-family:Kalam,cursive;font-size:22px;color:var(--orange)}
.vpr-red-italic{color:var(--brand-red);font-style:italic}

/* ---- vendor-profile.html (inline) ---- */
.vpro-title{font-family:var(--font-display);font-weight:700;color:var(--ink);margin-bottom:4px}
.vpro-sub{color:var(--slate);font-size:13px;margin:0}
.vpro-meta{color:var(--slate);font-size:11px}
.vpro-ink{color:var(--ink)}
.vpro-mb18{margin-bottom:18px}
.vpro-gold{color:#C68A3A}
.vpro-mb16{margin-bottom:16px}
.vpro-muted-normal{color:var(--vd-muted);font-weight:400}

/* ---- vendor-register.html (inline) ---- */
.vreg-chip{display:inline-block;background:#eef7ff;color:#1d4ed8;font-size:11px;font-weight:600;padding:2px 9px;border-radius:50px;margin:2px 4px 0 0}
.vreg-sub{color:var(--slate);font-size:13.5px;margin-bottom:18px}
.vreg-mt10{margin-top:10px}
.vreg-mt4{margin-top:4px}
.vreg-list{padding-left:24px;line-height:1.6}
.vreg-align-start{align-items:flex-start}
.vreg-justify-start{justify-content:flex-start}
.vreg-slate-normal{color:var(--slate);font-weight:400}
.vreg-title{font-family:var(--font-display);font-weight:700;color:var(--ink);margin-bottom:4px}

/* ---- verify-profile.html (inline) ---- */
.vp-card-green{border:2px solid #1f9d57;background:#e9f7ef;border-radius:var(--r-md);padding:16px;margin-bottom:12px}
.vp-card-orange{border:2px dashed var(--orange);background:var(--orange-light);border-radius:var(--r-md);padding:16px;margin-bottom:12px}
.vp-card-blue{border:2px solid #1565C0;background:#e9f2fb;border-radius:var(--r-md);padding:16px;margin-bottom:12px}
.vp-card-red{border:2px solid #D61F26;background:#fdeaea;border-radius:var(--r-md);padding:16px;margin-bottom:12px}
.vp-row{display:flex;gap:10px;align-items:flex-start}
.vp-row-mb{display:flex;gap:10px;align-items:flex-start;margin-bottom:8px}
.vp-ic-green{font-size:30px;color:#1a7f4b}
.vp-ic-orange{font-size:30px;color:var(--orange-dark)}
.vp-ic-blue{font-size:30px;color:#0D47A1}
.vp-ic-red{font-size:30px;color:#B71C22}
.vp-section-label{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:#b0b0b0;font-weight:700;margin:14px 0 5px}
.vp-section-label2{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#999;font-weight:700;margin:18px 0 4px;display:flex;align-items:center;gap:8px}
.vp-btn-green{background:#1f9d57;color:#fff;border:0}
.vp-btn-red{background:#D61F26;color:#fff;border:0}
.vp-badge-blue{background:#1565C0;color:#fff;padding:6px 14px;border-radius:20px;font-weight:600;font-size:12px;white-space:nowrap}
.vp-pill-gray{flex-shrink:0;font-size:11px;font-weight:700;color:#777;background:#fff;border:1px solid var(--line);padding:3px 11px;border-radius:20px}
.vp-pill-red{flex-shrink:0;font-size:11px;font-weight:700;color:#B71C22;background:#fff;border:1px solid rgba(214,31,38,.3);padding:3px 11px;border-radius:20px}
.vp-strong{font-size:13.5px;color:#333;font-weight:600}
.vp-desc{font-size:13px;color:var(--slate);line-height:1.5}
.vp-divider-red{margin-top:12px;padding-top:12px;border-top:1px solid rgba(214,31,38,.18)}

/* ---- video-profile.html (inline) ---- */
.vid-frame{aspect-ratio:9/16;max-width:280px;margin:0 auto;box-shadow:var(--sh-lg)}
.vid-caption{color:var(--green-dark);font-style:italic}
.vid-script{font-family:Kalam,cursive;font-size:22px;color:var(--orange)}
.vid-muted13{font-size:13px;color:var(--muted)}
.vid-pad{padding:60px 20px}

/* ---- vendor-change-password.html (style block) ---- */
:root{--vd-red:#C68A3A;--vd-gold:#E0B45A;--vd-line:#eee;--vd-muted:#666}
  body{background:#fbfaf8}
  .vendor-user-card{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));border-radius:14px;padding:18px 16px;text-align:center;color:#fff;margin-bottom:16px}
  .vendor-user-card .vu-avatar{width:64px;height:64px;border-radius:50%;background:#fff;color:var(--vd-red);font-family:Fraunces,serif;font-weight:700;font-size:22px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:10px;border:3px solid rgba(255,255,255,.4)}
  .vendor-user-card h6{font-size:15px;font-weight:600;margin:0;color:#fff}
  .vendor-user-card .role-pill{background:rgba(255,255,255,.25);font-size:11px;padding:3px 10px;border-radius:20px;display:inline-block;margin-top:6px;font-weight:600}
  .vendor-nav{display:flex;flex-direction:column;gap:4px}.vendor-nav-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:10px;color:#444;text-decoration:none;font-weight:500;font-size:14px}.vendor-nav-item i{width:18px;text-align:center;color:var(--vd-muted)}.vendor-nav-item:hover{background:#faf4e6;color:#B8860B}.vendor-nav-item.active{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));color:#fff}.vendor-nav-item.active i{color:#fff}.vendor-nav-divider{height:1px;background:#efe2c9;margin:8px 0}.vendor-nav-item.signout{color:var(--vd-red);font-weight:600}
  .vd-menu-trigger{background:#fff;border:1.5px solid var(--vd-line);border-radius:10px;padding:8px 14px;font-weight:600;font-size:13px;display:inline-flex;align-items:center;gap:8px;margin-bottom:14px}@media(min-width:992px){.vd-menu-trigger{display:none}}
  .vp-card{background:#fff;border:1px solid var(--vd-line);border-radius:20px;padding:24px;box-shadow:0 10px 28px rgba(0,0,0,.04);max-width:760px}
  .vp-card h1{font-family:Fraunces,serif;font-size:28px;margin-bottom:6px}.vp-card p{color:var(--vd-muted);font-size:13px}
  .pw-grid{display:grid;gap:16px;margin-top:18px}.pw-field label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#555;margin-bottom:7px}
  .pw-wrap{position:relative}.pw-wrap input{border-radius:12px;border:1.5px solid #ddd;padding:11px 44px 11px 12px}.pw-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:#f7f7f7;border-radius:8px;width:32px;height:32px;color:#666}
  .pw-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.btn-vp{border:0;background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));color:#fff;border-radius:12px;padding:11px 18px;font-weight:700;display:inline-flex;align-items:center;gap:8px}
  @media(max-width:767px){.vp-card{padding:18px}.pw-actions{flex-direction:column}.pw-actions .btn,.pw-actions .btn-vp{width:100%;justify-content:center}}

/* ---- vendor-dashboard.html (style block) ---- */
:root{
    --vd-red:#C68A3A; --vd-red-dark:#A8742A;
    --vd-gold:#E0B45A; --vd-gold-dark:#B8860B; --vd-gold-light:#f7edd9;
    --vd-ink:#1a1a1a; --vd-muted:#686868; --vd-line:#eee;
  }
  body{background:#fbfaf8}
  .vendor-hero-card{background:linear-gradient(135deg,#fff5f5 0%,#faf4e6 100%);border:1px solid #f3e0cb;border-radius:18px;padding:20px 22px;margin-bottom:18px}
  .vendor-hero-card .kicker{font-family:'Kalam',cursive;font-size:18px;color:var(--vd-gold-dark);display:block;margin-bottom:4px}
  .vendor-hero-card h1{font-family:'Fraunces',serif;font-weight:650;font-size:26px;margin:0;color:var(--vd-ink)}
  .vendor-hero-card h1 em{color:var(--vd-red);font-style:italic}
  .vendor-hero-card .lede{color:var(--vd-muted);font-size:13px;margin:6px 0 0}

  .vendor-user-card{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));border-radius:14px;padding:18px 16px;text-align:center;color:#fff;margin-bottom:16px;position:relative;overflow:hidden}
  .vendor-user-card::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 0%,rgba(255,255,255,.16),transparent 52%)}
  .vendor-user-card .vu-avatar{width:64px;height:64px;border-radius:50%;background:#fff;color:var(--vd-red);font-family:'Fraunces',serif;font-weight:700;font-size:22px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:10px;border:3px solid rgba(255,255,255,.4);position:relative;z-index:1}
  .vendor-user-card h6{font-size:15px;font-weight:600;margin:0;position:relative;z-index:1;color:#fff}
  .vendor-user-card .role-pill{background:rgba(255,255,255,.25);font-size:11px;padding:3px 10px;border-radius:20px;display:inline-block;margin-top:6px;font-weight:600;position:relative;z-index:1}
  .vendor-nav{display:flex;flex-direction:column;gap:4px}
  .vendor-nav-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:10px;color:#444;text-decoration:none;font-weight:500;font-size:14px;transition:.15s}
  .vendor-nav-item i{width:18px;text-align:center;font-size:16px;color:var(--vd-muted)}
  .vendor-nav-item:hover{background:#faf4e6;color:var(--vd-gold-dark)}
  .vendor-nav-item:hover i{color:var(--vd-gold-dark)}
  .vendor-nav-item.active{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));color:#fff;box-shadow:0 4px 12px rgba(198,138,58,.2)}
  .vendor-nav-item.active i{color:#fff}
  .vendor-nav-divider{height:1px;background:#efe2c9;margin:8px 0}
  .vendor-nav-item.signout{color:var(--vd-red);font-weight:600}
  .vendor-nav-item.signout i{color:var(--vd-red)}

  .vd-menu-trigger{background:#fff;border:1.5px solid var(--vd-line);border-radius:10px;padding:8px 14px;font-weight:600;font-size:13px;color:var(--vd-ink);display:inline-flex;align-items:center;gap:8px;margin-bottom:14px;cursor:pointer}
  @media (min-width:992px){.vd-menu-trigger{display:none}}

  .vd-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:20px 0}
  .vd-stat{background:#fff;border:1px solid var(--vd-line);border-radius:14px;padding:15px 16px;display:flex;align-items:center;gap:12px}
  .vd-stat .ico{width:44px;height:44px;border-radius:13px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:21px;flex-shrink:0}
  .vd-stat.s-services .ico{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold))}
  .vd-stat.s-cities .ico{background:linear-gradient(135deg,#2c7be5,#3f8efc)}
  .vd-stat.s-enquiries .ico{background:linear-gradient(135deg,#059669,#34d399)}
  .vd-stat .val{font-family:'Fraunces',serif;font-size:24px;font-weight:700;color:var(--vd-ink);line-height:1}
  .vd-stat .lbl{font-size:12px;color:var(--vd-muted);margin-top:3px}

  .vd-section-card{background:#fff;border:1px solid var(--vd-line);border-radius:18px;padding:18px;margin-bottom:20px}
  .vd-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
  .vd-section-title{margin:0;font-family:'Fraunces',serif;font-size:22px;font-weight:650;color:var(--vd-ink)}
  .vd-section-title em{color:var(--vd-red);font-style:italic}
  .vd-tabs{display:inline-flex;background:#fff;border:1.5px solid #e5d8c2;border-radius:50px;padding:4px;gap:2px}
  .vd-tab{background:transparent;border:0;padding:9px 20px;border-radius:50px;font-weight:600;font-size:14px;color:#444;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
  .vd-tab.active{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));color:#fff;box-shadow:0 3px 10px rgba(198,138,58,.25)}
  .vd-panel{display:none}
  .vd-panel.active{display:block;animation:vdFade .22s ease}
  @keyframes vdFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

  .vendor-service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
  .vendor-service-grid .service-card{height:100%;display:flex;flex-direction:column}
  .vendor-service-grid .service-body{flex:1;display:flex;flex-direction:column}
  .vendor-service-grid .service-cta{margin-top:auto}
  .vd-location-summary{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px}
  .vd-loc-pill{background:#fff7eb;border:1px solid #f0d7b0;color:var(--vd-gold-dark);border-radius:50px;padding:4px 9px;font-size:11px;font-weight:700}
  .vd-card-meta{font-size:12px;color:var(--vd-muted);margin:4px 0 10px}

  /* Filter toggle pill (always visible header) */
  .vd-filter-toggle{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    background:#fff;border:1.5px solid #e5d8c2;border-radius:50px;padding:10px 18px;
    margin-bottom:12px;cursor:pointer;transition:.15s;font-weight:600;color:var(--vd-ink);font-size:14px;font-family:inherit
  }
  .vd-filter-toggle:hover{border-color:var(--vd-gold);color:var(--vd-gold-dark)}
  .vd-filter-toggle .ft-label{display:inline-flex;align-items:center;gap:10px}
  .vd-filter-toggle .ft-label i.bi-funnel-fill{color:var(--vd-red);font-size:16px}
  .vd-filter-toggle .ft-chevron{transition:transform .25s;color:var(--vd-muted);font-size:14px}
  .vd-filter-toggle.is-open{
    background:linear-gradient(135deg,#fffbf5,#fff7f0);border-color:var(--vd-gold);color:var(--vd-gold-dark);
    border-radius:14px 14px 0 0;border-bottom:0
  }
  .vd-filter-toggle.is-open .ft-chevron{transform:rotate(180deg)}
  .vd-filter-active-count{
    display:inline-flex;align-items:center;gap:5px;background:var(--vd-red);color:#fff;
    font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px
  }
  .vd-filter-active-count.hidden{display:none}

  /* Filter bar (collapsible) — single-row layout (no wrap) */
  .vd-filter-bar{background:linear-gradient(135deg,#fffbf5 0%,#fff7f0 100%);border:1px solid #f3e0cb;border-radius:0 0 14px 14px;padding:14px 12px;margin-top:-12px;margin-bottom:16px;display:none;align-items:flex-end;gap:8px;flex-wrap:nowrap;animation:vdFbSlide .25s ease;overflow-x:auto}
  .vd-filter-bar.is-open{display:flex}
  @keyframes vdFbSlide{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
  .vd-filter-bar .filter-group{display:flex;flex-direction:column;gap:4px;flex:1 1 0;min-width:90px}
  .vd-filter-bar label{font-size:10px;color:var(--vd-muted);font-weight:700;text-transform:uppercase;letter-spacing:.5px}
  .vd-filter-bar select{border:1.5px solid #ddd;border-radius:10px;padding:8px 10px;font-size:13px;background:#fff;outline:0;width:100%}
  .vd-filter-btn{padding:8px 14px;border-radius:10px;font-weight:600;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;height:38px;border:1.5px solid transparent;flex-shrink:0;white-space:nowrap}
  .vd-filter-apply{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));color:#fff;box-shadow:0 4px 12px rgba(198,138,58,.22)}
  .vd-filter-clear{background:#fff;border-color:#ddd;color:#666}

  .vd-table-card{background:#fff;border:1px solid var(--vd-line);border-radius:18px;padding:16px;overflow:hidden}
  .vd-table-card table{width:100% !important}
  .vd-table-card thead th{background:#fafafa;font-size:11px;color:var(--vd-muted);font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:12px 14px;border-bottom:1px solid var(--vd-line);white-space:nowrap}
  .vd-table-card tbody td{padding:13px 14px;vertical-align:middle;border-bottom:1px solid #f5f5f5}
  .vd-service-pill{display:inline-flex;align-items:center;gap:7px;background:#fff7eb;color:var(--vd-gold-dark);font-weight:700;font-size:12px;border-radius:50px;padding:6px 10px;border:1px solid #f0d7b0}
  .vd-location-cell{line-height:1.4}
  .vd-location-cell strong{font-size:13px;color:var(--vd-ink)}
  .vd-location-cell span{display:block;font-size:12px;color:var(--vd-muted)}
  .vd-customer{line-height:1.45}
  .vd-customer strong{display:block;color:var(--vd-ink)}
  .vd-customer a,.vd-customer span{display:block;font-size:12px;color:var(--vd-muted);text-decoration:none}
  .vd-lock-box{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff7eb;border:1px dashed #e9c892;border-radius:12px;padding:8px 10px;min-width:220px}
  .vd-lock-text{display:flex;align-items:center;gap:8px;color:var(--vd-gold-dark);font-weight:700;font-size:12px}
  .vd-open-btn{border:0;background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));color:#fff;border-radius:50px;padding:6px 12px;font-size:12px;font-weight:700;white-space:nowrap}

  .modal-confirm-icon{width:58px;height:58px;border-radius:16px;background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;margin:0 auto 12px}

  @media(max-width:1199px){.vendor-service-grid{grid-template-columns:repeat(3,1fr)}}
  @media(max-width:991px){.vendor-service-grid{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:767px){
    .vd-stats{grid-template-columns:1fr}
    .vd-section-head{align-items:stretch}
    .vd-tabs{width:100%;justify-content:center}
    .vd-tab{flex:1;justify-content:center;padding:9px 10px}
    .vendor-service-grid{grid-template-columns:1fr}
    /* Mobile: 2-row grid — 3 dropdowns on row 1, Apply+Clear on row 2 */
    .vd-filter-bar.is-open{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:12px 10px;align-items:end;overflow:visible}
    .vd-filter-bar .filter-group{grid-column:span 2;min-width:0}
    .vd-filter-bar select{padding:7px 8px;font-size:12px}
    .vd-filter-btn{grid-column:span 3;padding:9px 10px;font-size:12.5px;justify-content:center;width:100%}
  }
  /* ===== Members-style enquiry table (vendor gold/amber) ===== */
  .vd-mtbl-card{background:#fff;border:1px solid var(--vd-line);border-radius:16px;overflow:hidden;box-shadow:0 2px 14px rgba(31,18,14,.05)}
  .vd-mtbl-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--vd-line);background:#fff}
  .vd-mtbl-top .ttl{font-weight:700;color:var(--vd-ink);display:flex;align-items:center;gap:8px;font-size:14px}
  .vd-mtbl-top .ttl i{color:var(--vd-red)}
  .vd-mtbl-top .ttl small{font-weight:500;color:var(--vd-muted);font-size:12.5px}
  .vd-mtbl-search{border:1px solid var(--vd-line);border-radius:10px;padding:9px 14px;font-size:13px;min-width:240px;outline:0;background:#fbfaf8;color:var(--vd-ink)}
  .vd-mtbl-search:focus{border-color:var(--vd-red);background:#fff;box-shadow:0 0 0 3px rgba(198,138,58,.13)}
  .vd-mtbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
  table.vd-mtbl{width:100%;border-collapse:collapse;font-size:13px;min-width:940px;margin:0}
  .vd-mtbl thead tr{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold))}
  .vd-mtbl thead th{text-align:left;padding:13px 16px;color:#fff;font-weight:700;font-size:11px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border:0;position:relative}
  .vd-mtbl thead th.sorting,.vd-mtbl thead th.sorting_asc,.vd-mtbl thead th.sorting_desc{cursor:pointer;padding-right:28px}
  .vd-mtbl thead th.sorting:after,.vd-mtbl thead th.sorting_asc:after,.vd-mtbl thead th.sorting_desc:after{position:absolute;right:11px;top:50%;transform:translateY(-50%);color:#fff;font-size:11px;opacity:.85}
  .vd-mtbl thead th.sorting:after{content:"\2195";opacity:.5}
  .vd-mtbl thead th.sorting_asc:after{content:"\2191"}
  .vd-mtbl thead th.sorting_desc:after{content:"\2193"}
  .vd-mtbl tbody td{padding:12px 16px;border-bottom:1px solid #f3f0ea;vertical-align:middle;white-space:nowrap;color:var(--vd-ink)}
  .vd-mtbl tbody tr:last-child td{border-bottom:0}
  .vd-mtbl tbody tr:hover{background:#fdfaf3}
  .vd-mtbl .sno{color:var(--vd-muted);font-weight:600}
  .vd-mtbl .usr{display:flex;align-items:center;gap:11px}
  .vd-mtbl .av{width:42px;height:42px;border-radius:12px;flex:none;display:grid;place-items:center;color:#fff;font-weight:700;font-size:15px;font-family:'Fraunces',serif;background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));box-shadow:0 3px 8px rgba(198,138,58,.28)}
  .vd-mtbl .nm{font-weight:700;color:var(--vd-ink);font-size:14px;line-height:1.25;display:block}
  .vd-mtbl .id{font-size:11.5px;color:var(--vd-muted);line-height:1.3}
  .vd-mtbl .ct a{display:block;color:var(--vd-ink);text-decoration:none;font-size:12.5px;line-height:1.55}
  .vd-mtbl .ct a:hover{color:var(--vd-red)}
  .vd-mtbl .loc{font-size:13px}
  .vd-mtbl .pill{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap}
  .vd-mtbl .pill.svc{background:var(--vd-gold-light);color:var(--vd-red-dark)}
  .vd-mtbl .pill.st-new{background:#e7f3ec;color:#1f7a43}
  .vd-mtbl .pill.st-contacted{background:#e8effb;color:#2a4d8f}
  .vd-mtbl .pill.st-quoted{background:#fdeede;color:#b06a12}
  .vd-mtbl .pill.st-booked{background:#d8f1ee;color:#0f7a6c}
  .vd-mtbl .pill.st-closed{background:#ededed;color:#6b6b6b}
.pill.st-confirmed{background:#d1f0dd;color:#0f6b34}
  .vd-mtbl .dt b{display:block;font-weight:700;color:var(--vd-ink);font-size:13px}
  .vd-mtbl .dt span{display:block;font-size:11.5px;color:var(--vd-muted);line-height:1.4}
  .vd-mtbl .act{display:flex;gap:6px}
  .vd-mtbl .act a{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;font-size:14px;text-decoration:none;transition:.15s}
  .vd-mtbl .act .a-view{background:#e8f0fe;color:#2a5db0}
  .vd-mtbl .act .a-call{background:#e7f5ec;color:#1f8a4c}
  .vd-mtbl .act .a-mail{background:#fdeede;color:#c0791a}
  .vd-mtbl .act .a-done{background:#efe7fb;color:#6a3da8}
  .vd-mtbl .act a:hover{transform:translateY(-1px);filter:brightness(.96)}
  .vd-mtbl-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:11px 16px;background:linear-gradient(135deg,#fbf6ee,#fdf9f2);border-top:1px solid var(--vd-line)}
  .vd-mtbl-foot .dataTables_length label{margin:0;display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--vd-line);border-radius:20px;padding:4px 12px;font-size:12.5px;color:var(--vd-muted);font-weight:600}
  .vd-mtbl-foot .dataTables_length select{border:0;background:transparent;font-weight:700;color:var(--vd-ink);outline:0;cursor:pointer;padding:0 2px}
  .vd-mtbl-foot .dataTables_info{flex:1;text-align:center;font-size:12.5px;font-weight:700;font-style:italic;color:var(--vd-muted);padding:0}
  .vd-mtbl-foot .dataTables_paginate{margin:0}
  .vd-mtbl-foot .pagination{margin:0;gap:4px}
  .vd-mtbl-foot .page-item .page-link{min-width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:9px;border:1px solid var(--vd-line);background:#fff;color:var(--vd-ink);font-size:13px;font-weight:600;padding:0 9px;line-height:1}
  .vd-mtbl-foot .page-item.previous .page-link,.vd-mtbl-foot .page-item.next .page-link{font-size:18px;font-weight:800;color:var(--vd-red-dark)}
  .vd-mtbl-foot .page-item .page-link:hover{border-color:var(--vd-red);color:var(--vd-red)}
  .vd-mtbl-foot .page-item.active .page-link{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));border-color:transparent;color:#fff}
  .vd-mtbl-foot .page-item.disabled .page-link{opacity:.55;cursor:default}
  @media(max-width:768px){
    .vd-mtbl-top .vd-mtbl-search{flex:1 1 100%;min-width:0}
    .vd-mtbl-foot .dataTables_info{flex:1 1 100%;order:3;font-size:11px}
  }

/* ---- vendor-enquiries.html (style block) ---- */
:root{--vd-red:#C68A3A;--vd-red-dark:#A8742A;--vd-gold:#E0B45A;--vd-gold-dark:#B8860B;--vd-gold-light:#f7edd9;--vd-ink:#1a1a1a;--vd-line:#eee;--vd-muted:#666}
  body{background:#fbfaf8}
  .vendor-user-card{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));border-radius:14px;padding:18px 16px;text-align:center;color:#fff;margin-bottom:16px}.vendor-user-card .vu-avatar{width:64px;height:64px;border-radius:50%;background:#fff;color:var(--vd-red);font-family:Fraunces,serif;font-weight:700;font-size:22px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:10px;border:3px solid rgba(255,255,255,.4)}.vendor-user-card h6{font-size:15px;font-weight:600;margin:0;color:#fff}.vendor-user-card .role-pill{background:rgba(255,255,255,.25);font-size:11px;padding:3px 10px;border-radius:20px;display:inline-block;margin-top:6px;font-weight:600}
  .vendor-nav{display:flex;flex-direction:column;gap:4px}.vendor-nav-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:10px;color:#444;text-decoration:none;font-weight:500;font-size:14px;transition:.15s}.vendor-nav-item i{width:18px;text-align:center;color:var(--vd-muted)}.vendor-nav-item:hover{background:#faf4e6;color:var(--vd-gold-dark)}.vendor-nav-item.active{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));color:#fff}.vendor-nav-item.active i{color:#fff}.vendor-nav-divider{height:1px;background:#efe2c9;margin:8px 0}.vendor-nav-item.signout{color:var(--vd-red);font-weight:600}
  .vd-menu-trigger{background:#fff;border:1.5px solid var(--vd-line);border-radius:10px;padding:8px 14px;font-weight:600;font-size:13px;display:inline-flex;align-items:center;gap:8px;margin-bottom:14px}@media(min-width:992px){.vd-menu-trigger{display:none}}
  .vendor-hero-card{background:linear-gradient(135deg,#fff5f5 0%,#faf4e6 100%);border:1px solid #f3e0cb;border-radius:18px;padding:20px 22px;margin-bottom:18px}.vendor-hero-card .kicker{font-family:Kalam,cursive;font-size:18px;color:var(--vd-gold-dark);display:block;margin-bottom:4px}.vendor-hero-card h1{font-family:Fraunces,serif;font-weight:650;font-size:26px;margin:0}.vendor-hero-card h1 em{color:var(--vd-red);font-style:italic}.vendor-hero-card .lede{color:var(--vd-muted);font-size:13px;margin:6px 0 0}
  .vd-section-card{background:#fff;border:1px solid var(--vd-line);border-radius:18px;padding:18px;margin-bottom:20px}.vd-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.vd-section-title{margin:0;font-family:Fraunces,serif;font-size:22px;font-weight:650}.vd-section-title em{color:var(--vd-red);font-style:italic}

  /* ===== Service tabs — same pill strip as inbox-pending.html (.ib-tabs/.ib-tab from css/style.css),
         made horizontally scrollable so the active tab can auto-scroll into view ===== */
  .vd-svc-tabbar{position:relative;margin-bottom:18px}
  .vd-svc-tabs{position:relative;width:auto;margin-bottom:0;flex-wrap:nowrap;overflow-x:auto;scroll-behavior:smooth;-ms-overflow-style:none;scrollbar-width:none}
  .vd-svc-tabs::-webkit-scrollbar{display:none}
  .vd-svc-tabs .ib-tab{flex-shrink:0}
  /* Reset native <button> chrome only — low specificity so .ib-tab:hover / .ib-tab.active still win */
  button.ib-tab{border:0;background:transparent;font-family:inherit;cursor:pointer}
  /* Edge fades hint there is more to scroll */
  .vd-svc-tabbar::before,.vd-svc-tabbar::after{content:"";position:absolute;top:0;bottom:0;width:34px;pointer-events:none;z-index:2;opacity:0;transition:opacity .2s}
  .vd-svc-tabbar::before{left:0;background:linear-gradient(90deg,#fbfaf8,rgba(251,250,248,0))}
  .vd-svc-tabbar::after{right:0;background:linear-gradient(270deg,#fbfaf8,rgba(251,250,248,0))}
  .vd-svc-tabbar.fade-left::before{opacity:1}
  .vd-svc-tabbar.fade-right::after{opacity:1}

  /* ===== Service panels (one per tab) ===== */
  .vd-svc-panel{display:none}
  .vd-svc-panel.active{display:block;animation:vdFade .24s ease}
  @keyframes vdFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

  /* ===== Enquiry table ===== */
  .vd-table-card{background:#fff;border:1px solid var(--vd-line);border-radius:14px;padding:16px;overflow:hidden}
  .vd-table-card table{width:100% !important;margin:0}
  .vd-table-card thead th{background:#fafafa;font-size:11px;color:var(--vd-muted);font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:12px 14px;border-bottom:1px solid var(--vd-line);white-space:nowrap}
  .vd-table-card tbody td{padding:13px 14px;vertical-align:middle;border-bottom:1px solid #f5f5f5;font-size:13px}
  .vd-table-card tbody tr:last-child td{border-bottom:0}
  .vd-location-cell{line-height:1.4;white-space:nowrap}.vd-location-cell strong{font-size:13px;color:#1a1a1a}.vd-location-cell span{display:block;font-size:12px;color:var(--vd-muted)}
  .vd-customer{line-height:1.45}.vd-customer strong{display:block;color:#1a1a1a;margin-bottom:1px}.vd-customer a{display:block;font-size:12px;color:var(--vd-muted);text-decoration:none}.vd-customer a:hover{color:var(--vd-red)}

  /* ===== Empty state — services that have no enquiries yet ===== */
  .vd-empty{text-align:center;padding:48px 22px;color:var(--vd-muted);border:1px dashed #e5d8c2;border-radius:14px;background:#fffdf9}
  .vd-empty i{font-size:42px;color:#dccfb6;display:block;margin-bottom:10px}
  .vd-empty p{margin:0;font-size:13.5px}

  @media(max-width:767px){
    .vendor-hero-card h1{font-size:22px}
    .vd-section-title{font-size:19px}
  }
  /* ===== Members-style enquiry table (vendor gold/amber) ===== */
  .vd-mtbl-card{background:#fff;border:1px solid var(--vd-line);border-radius:16px;overflow:hidden;box-shadow:0 2px 14px rgba(31,18,14,.05)}
  .vd-mtbl-top2{display:flex;justify-content:flex-end;padding:14px 16px;border-bottom:1px solid var(--vd-line);background:#fff}
  .vd-mtbl-top2 .dataTables_filter{margin:0}
  .vd-mtbl-top2 .dataTables_filter label{margin:0;font-size:0}
  .vd-mtbl-top2 .dataTables_filter input{border:1px solid var(--vd-line);border-radius:10px;padding:9px 14px;font-size:13px;min-width:240px;outline:0;background:#fbfaf8;color:var(--vd-ink);margin:0}
  .vd-mtbl-top2 .dataTables_filter input:focus{border-color:var(--vd-red);background:#fff;box-shadow:0 0 0 3px rgba(198,138,58,.13)}
  .vd-mtbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
  table.vd-mtbl{width:100%!important;border-collapse:collapse;font-size:13px;min-width:840px;margin:0}
  .vd-mtbl thead tr{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold))}
  .vd-mtbl thead th{text-align:left;padding:13px 16px;color:#fff!important;font-weight:700;font-size:11px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border:0;background:transparent!important;position:relative}
  .vd-mtbl thead th.sorting,.vd-mtbl thead th.sorting_asc,.vd-mtbl thead th.sorting_desc{cursor:pointer;padding-right:28px}
  .vd-mtbl thead th.sorting:after,.vd-mtbl thead th.sorting_asc:after,.vd-mtbl thead th.sorting_desc:after{position:absolute;right:11px;top:50%;transform:translateY(-50%);color:#fff;font-size:11px}
  .vd-mtbl thead th.sorting:after{content:"\2195";opacity:.5}
  .vd-mtbl thead th.sorting_asc:after{content:"\2191";opacity:.95}
  .vd-mtbl thead th.sorting_desc:after{content:"\2193";opacity:.95}
  .vd-mtbl tbody td{padding:12px 16px;border-bottom:1px solid #f3f0ea;vertical-align:middle;white-space:nowrap;color:var(--vd-ink);font-size:13px}
  .vd-mtbl tbody tr:last-child td{border-bottom:0}
  .vd-mtbl tbody tr:hover{background:#fdfaf3}
  .vd-mtbl .sno{color:var(--vd-muted);font-weight:600}
  .vd-mtbl .usr{display:flex;align-items:center;gap:11px}
  .vd-mtbl .av{width:42px;height:42px;border-radius:12px;flex:none;display:grid;place-items:center;color:#fff;font-weight:700;font-size:15px;font-family:'Fraunces',serif;background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));box-shadow:0 3px 8px rgba(198,138,58,.28)}
  .vd-mtbl .nm{font-weight:700;color:var(--vd-ink);font-size:14px;line-height:1.25;display:block}
  .vd-mtbl .id{font-size:11.5px;color:var(--vd-muted);line-height:1.3}
  .vd-mtbl .ct a{display:block;color:var(--vd-ink);text-decoration:none;font-size:12.5px;line-height:1.55}
  .vd-mtbl .ct a:hover{color:var(--vd-red)}
  .vd-mtbl .loc{font-size:13px}
  .vd-mtbl .pill{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap}
  .vd-mtbl .pill.st-new{background:#e7f3ec;color:#1f7a43}
  .vd-mtbl .pill.st-contacted{background:#e8effb;color:#2a4d8f}
  .vd-mtbl .pill.st-quoted{background:#fdeede;color:#b06a12}
  .vd-mtbl .pill.st-booked{background:#d8f1ee;color:#0f7a6c}
  .vd-mtbl .pill.st-closed{background:#ededed;color:#6b6b6b}
.pill.st-confirmed{background:#d1f0dd;color:#0f6b34}
  .vd-mtbl .dt b{display:block;font-weight:700;color:var(--vd-ink);font-size:13px}
  .vd-mtbl .dt span{display:block;font-size:11.5px;color:var(--vd-muted);line-height:1.4}
  .vd-mtbl .act{display:flex;gap:6px}
  .vd-mtbl .act a{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;font-size:14px;text-decoration:none;transition:.15s}
  .vd-mtbl .act .a-view{background:#e8f0fe;color:#2a5db0}
  .vd-mtbl .act .a-call{background:#e7f5ec;color:#1f8a4c}
  .vd-mtbl .act .a-mail{background:#fdeede;color:#c0791a}
  .vd-mtbl .act .a-done{background:#efe7fb;color:#6a3da8}
  .vd-mtbl .act a:hover{transform:translateY(-1px);filter:brightness(.96)}
  .vd-mtbl-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:11px 16px;background:linear-gradient(135deg,#fbf6ee,#fdf9f2);border-top:1px solid var(--vd-line)}
  .vd-mtbl-foot .dataTables_length label{margin:0;display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--vd-line);border-radius:20px;padding:4px 12px;font-size:12.5px;color:var(--vd-muted);font-weight:600}
  .vd-mtbl-foot .dataTables_length select{border:0;background:transparent;font-weight:700;color:var(--vd-ink);outline:0;cursor:pointer;padding:0 2px}
  .vd-mtbl-foot .dataTables_info{flex:1;text-align:center;font-size:12.5px;font-weight:700;font-style:italic;color:var(--vd-muted);padding:0}
  .vd-mtbl-foot .dataTables_paginate{margin:0}
  .vd-mtbl-foot .pagination{margin:0;gap:4px}
  .vd-mtbl-foot .page-item .page-link{min-width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:9px;border:1px solid var(--vd-line);background:#fff;color:var(--vd-ink);font-size:13px;font-weight:600;padding:0 9px;line-height:1}
  .vd-mtbl-foot .page-item.previous .page-link,.vd-mtbl-foot .page-item.next .page-link{font-size:18px;font-weight:800;color:var(--vd-red-dark)}
  .vd-mtbl-foot .page-item .page-link:hover{border-color:var(--vd-red);color:var(--vd-red)}
  .vd-mtbl-foot .page-item.active .page-link{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));border-color:transparent;color:#fff}
  .vd-mtbl-foot .page-item.disabled .page-link{opacity:.55;cursor:default}
  @media(max-width:768px){
    .vd-mtbl-top2{justify-content:stretch}
    .vd-mtbl-top2 .dataTables_filter input{width:100%;min-width:0}
    .vd-mtbl-foot .dataTables_info{flex:1 1 100%;order:3;font-size:11px}
  }

/* ---- vendor-invoice.html (style block) ---- */
:root{
    --inv-red:#D61F26; --inv-red-dark:#B71C22;
    --inv-gold:#C68A3A; --inv-gold-dark:#A8742A; --inv-gold-light:#f5e8d4;
    --inv-ink:#1a1a1a; --inv-muted:#666; --inv-line:#e2dccc;
  }
  body{background:#fafafa;font-family:'Poppins',sans-serif;color:var(--inv-ink)}

  /* Action bar — hidden in print */
  .inv-actions{
    background:#fff;border-bottom:1px solid #e5e5e5;padding:12px 0;position:sticky;top:0;z-index:50
  }
  .inv-actions .container{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
  .inv-actions h6{font-family:'Fraunces',serif;font-weight:700;font-size:16px;margin:0;color:var(--inv-ink)}
  .inv-actions h6 i{color:var(--inv-red);margin-right:6px}
  .inv-actions .btn-group-actions{display:flex;gap:8px;flex-wrap:wrap}
  .inv-btn{
    display:inline-flex;align-items:center;gap:6px;padding:8px 16px;
    border-radius:10px;font-weight:600;font-size:13px;cursor:pointer;border:1.5px solid transparent;
    text-decoration:none;transition:.15s
  }
  .inv-btn.ghost{background:#fff;border-color:#ddd;color:#444}
  .inv-btn.ghost:hover{border-color:var(--inv-gold);color:var(--inv-gold-dark)}
  .inv-btn.primary{background:linear-gradient(135deg,var(--inv-red),var(--inv-gold));color:#fff;border-color:transparent}
  .inv-btn.primary:hover{filter:brightness(.95);color:#fff}

  /* Invoice paper — sized to fit a single A4 page (210 × 297 mm) */
  .inv-paper{
    max-width:794px;       /* ≈ 210mm at 96dpi */
    margin:24px auto 60px;background:#fff;
    border:1px solid var(--inv-line);border-radius:6px;
    box-shadow:0 6px 18px rgba(0,0,0,.06);
    padding:26px 32px;
    font-size:12px;line-height:1.45
  }
  @media(max-width:600px){.inv-paper{padding:20px 18px;margin:16px 12px 40px}}

  .inv-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap;padding-bottom:12px;border-bottom:2px solid var(--inv-red)}
  .inv-brand .inv-logo{
    height:64px;width:auto;max-width:180px;object-fit:contain;
    display:block;margin-bottom:8px
  }
  .inv-brand h2{font-family:'Fraunces',serif;font-weight:700;font-size:18px;margin:0 0 3px;color:var(--inv-red-dark)}
  .inv-brand .inv-co{font-size:11px;color:var(--inv-muted);line-height:1.45}
  .inv-brand .inv-co strong{color:var(--inv-ink)}

  .inv-title{text-align:right}
  .inv-title h1{
    font-family:'Fraunces',serif;font-weight:700;font-size:22px;color:var(--inv-ink);
    margin:0 0 4px;letter-spacing:1px;text-transform:uppercase
  }
  .inv-title .inv-num{font-size:11.5px;color:var(--inv-muted)}
  .inv-title .inv-num strong{color:var(--inv-red-dark);font-family:'Fraunces',serif;font-weight:700;font-size:13px}

  .inv-meta-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}
  @media(max-width:600px){.inv-meta-row{grid-template-columns:1fr;gap:10px}}
  .inv-meta-block{background:#fafaf6;border:1px solid var(--inv-line);border-radius:7px;padding:10px 12px}
  .inv-meta-block h6{
    font-size:9.5px;color:var(--inv-gold-dark);font-weight:700;
    text-transform:uppercase;letter-spacing:.7px;margin:0 0 6px;
    display:flex;align-items:center;gap:5px
  }
  .inv-meta-block h6 i{font-size:11px}
  .inv-meta-block .inv-meta-line{font-size:11.5px;line-height:1.5;color:#333}
  .inv-meta-block .inv-meta-line strong{color:var(--inv-ink);font-weight:600}
  .inv-meta-block .inv-meta-line + .inv-meta-line{margin-top:3px}
  .inv-meta-block .gstin{font-family:'Courier New',monospace;font-weight:700;color:var(--inv-red-dark);letter-spacing:.5px}

  /* Items table */
  .inv-items-wrap{margin:10px 0}
  .inv-items{width:100%;border-collapse:collapse;font-size:11.5px}
  .inv-items thead th{
    background:linear-gradient(135deg,var(--inv-red) 0%, var(--inv-red-dark) 100%);
    color:#fff;font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:.4px;
    padding:7px 6px;text-align:left;white-space:nowrap
  }
  .inv-items thead th:first-child{border-top-left-radius:5px}
  .inv-items thead th:last-child{border-top-right-radius:5px;text-align:right}
  .inv-items tbody td{padding:7px 6px;border-bottom:1px solid var(--inv-line);vertical-align:top}
  .inv-items tbody td:last-child{text-align:right;font-weight:700;color:var(--inv-ink);white-space:nowrap}
  .inv-items tbody tr:last-child td{border-bottom:0}
  .inv-items .item-name{font-weight:700;color:var(--inv-ink);font-size:12px}
  .inv-items .item-cities{
    display:inline-flex;flex-wrap:wrap;gap:3px;margin-top:2px;font-size:10px;color:var(--inv-muted)
  }
  .inv-items .item-cities .city{
    background:#eef7ff;color:#1d4ed8;padding:1px 6px;border-radius:50px;font-weight:600
  }
  .inv-items .col-sno{width:30px;text-align:center}
  .inv-items .col-hsn{font-family:'Courier New',monospace;font-size:10.5px;color:var(--inv-muted);white-space:nowrap}
  .inv-items .col-qty,.inv-items .col-rate{text-align:right;white-space:nowrap}

  /* Totals */
  .inv-totals{display:flex;justify-content:flex-end;margin:6px 0 10px}
  .inv-totals-card{min-width:300px;font-size:11.5px}
  .inv-totals-row{display:flex;justify-content:space-between;padding:5px 10px;border-bottom:1px dashed var(--inv-line)}
  .inv-totals-row:last-child{border-bottom:0}
  .inv-totals-row .lbl{color:var(--inv-muted)}
  .inv-totals-row .val{font-weight:700;color:var(--inv-ink);font-family:'Fraunces',serif}
  .inv-totals-row.subtotal{background:#fafaf6;border-radius:5px 5px 0 0}
  .inv-totals-row.grand{
    background:linear-gradient(135deg,#fff5f0 0%, #fff9ef 100%);
    border:2px solid var(--inv-red);border-radius:6px;margin-top:5px;padding:9px 12px
  }
  .inv-totals-row.grand .lbl{color:var(--inv-ink);font-weight:700;font-size:13px}
  .inv-totals-row.grand .val{color:var(--inv-red);font-size:16px}

  .inv-words{
    background:#fffaf3;border-left:3px solid var(--inv-gold);padding:6px 12px;margin:8px 0;
    font-size:11.5px;color:#333
  }
  .inv-words strong{color:var(--inv-red-dark);font-family:'Fraunces',serif}

  .inv-footer{
    display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:14px;padding-top:12px;
    border-top:1px solid var(--inv-line)
  }
  @media(max-width:600px){.inv-footer{grid-template-columns:1fr}}
  .inv-bank h6{font-size:9.5px;color:var(--inv-gold-dark);font-weight:700;text-transform:uppercase;letter-spacing:.7px;margin:0 0 5px}
  .inv-bank .inv-bank-line{font-size:11px;color:var(--inv-muted);line-height:1.5}
  .inv-bank .inv-bank-line strong{color:var(--inv-ink);font-weight:600}
  .inv-sign{text-align:right}
  .inv-sign .stamp{
    display:inline-block;border:2px solid var(--inv-red);color:var(--inv-red);
    padding:6px 16px;border-radius:50px;font-family:'Fraunces',serif;font-weight:700;font-size:12px;
    transform:rotate(-4deg);margin-bottom:8px;opacity:.85
  }
  .inv-sign .sig-line{
    border-top:1px solid #999;width:180px;margin:18px 0 0 auto;
    padding-top:4px;text-align:center;font-size:10.5px;color:var(--inv-muted)
  }
  .inv-sign .sig-line strong{color:var(--inv-ink);display:block;font-weight:700;font-size:11.5px}

  .inv-disclaimer{
    text-align:center;font-size:9.5px;color:var(--inv-muted);margin:10px 0 0;font-style:italic
  }

  /* PDF/print mode — applied during html2pdf rendering AND when window.print() fires.
     Keep the same color design so both outputs look identical. */
  body.pdf-mode .inv-paper,
  body.pdf-mode{background:#fff}
  body.pdf-mode .inv-actions,
  body.pdf-mode .site-header,
  body.pdf-mode .top-strip,
  body.pdf-mode .site-footer,
  body.pdf-mode .bottom-nav,
  body.pdf-mode .drawer-backdrop,
  body.pdf-mode .side-drawer{display:none !important}
  body.pdf-mode .inv-paper{box-shadow:none;border:0;margin:0 auto;max-width:794px;padding:18px 24px}

  @media print{
    body{background:#fff}
    .inv-actions,.site-header,.top-strip,.site-footer,.bottom-nav,.drawer-backdrop,.side-drawer{display:none !important}
    .inv-paper{box-shadow:none;border:0;margin:0;max-width:none;padding:14px 18px}
    /* Force background colours to print so the design stays identical to the PDF */
    .inv-items thead th,.inv-totals-row.grand,.inv-meta-block,.inv-words,.inv-totals-row.subtotal,.item-cities .city,.inv-sign .stamp{
      -webkit-print-color-adjust:exact !important;print-color-adjust:exact !important
    }
    @page{size:A4;margin:10mm}
  }

/* ---- vendor-orders.html (style block) ---- */
:root{
    --vd-red:#C68A3A; --vd-red-dark:#A8742A;
    --vd-gold:#E0B45A; --vd-gold-dark:#B8860B; --vd-gold-light:#f7edd9;
    --vd-ink:#1a1a1a; --vd-muted:#686868; --vd-line:#eee;
  }
  body{background:#fbfaf8}
  .vendor-hero-card{background:linear-gradient(135deg,#fff5f5 0%,#faf4e6 100%);border:1px solid #f3e0cb;border-radius:18px;padding:20px 22px;margin-bottom:18px}
  .vendor-hero-card .kicker{font-family:'Kalam',cursive;font-size:18px;color:var(--vd-gold-dark);display:block;margin-bottom:4px}
  .vendor-hero-card h1{font-family:'Fraunces',serif;font-weight:650;font-size:26px;margin:0;color:var(--vd-ink)}
  .vendor-hero-card h1 em{color:var(--vd-red);font-style:italic}
  .vendor-hero-card .lede{color:var(--vd-muted);font-size:13px;margin:6px 0 0}

  .vendor-user-card{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));border-radius:14px;padding:18px 16px;text-align:center;color:#fff;margin-bottom:16px;position:relative;overflow:hidden}
  .vendor-user-card::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 0%,rgba(255,255,255,.16),transparent 52%)}
  .vendor-user-card .vu-avatar{width:64px;height:64px;border-radius:50%;background:#fff;color:var(--vd-red);font-family:'Fraunces',serif;font-weight:700;font-size:22px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:10px;border:3px solid rgba(255,255,255,.4);position:relative;z-index:1}
  .vendor-user-card h6{font-size:15px;font-weight:600;margin:0;position:relative;z-index:1;color:#fff}
  .vendor-user-card .role-pill{background:rgba(255,255,255,.25);font-size:11px;padding:3px 10px;border-radius:20px;display:inline-block;margin-top:6px;font-weight:600;position:relative;z-index:1}
  .vendor-nav{display:flex;flex-direction:column;gap:4px}
  .vendor-nav-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:10px;color:#444;text-decoration:none;font-weight:500;font-size:14px;transition:.15s}
  .vendor-nav-item i{width:18px;text-align:center;font-size:16px;color:var(--vd-muted)}
  .vendor-nav-item:hover{background:#faf4e6;color:var(--vd-gold-dark)}
  .vendor-nav-item:hover i{color:var(--vd-gold-dark)}
  .vendor-nav-item.active{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));color:#fff;box-shadow:0 4px 12px rgba(198,138,58,.2)}
  .vendor-nav-item.active i{color:#fff}
  .vendor-nav-divider{height:1px;background:#efe2c9;margin:8px 0}
  .vendor-nav-item.signout{color:var(--vd-red);font-weight:600}
  .vendor-nav-item.signout i{color:var(--vd-red)}

  .vd-menu-trigger{background:#fff;border:1.5px solid var(--vd-line);border-radius:10px;padding:8px 14px;font-weight:600;font-size:13px;color:var(--vd-ink);display:inline-flex;align-items:center;gap:8px;margin-bottom:14px;cursor:pointer}
  @media (min-width:992px){.vd-menu-trigger{display:none}}

  /* Stats strip */
  .vo-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 20px}
  @media(max-width:760px){.vo-stats{grid-template-columns:1fr 1fr;gap:10px}}
  @media(max-width:480px){.vo-stats{grid-template-columns:1fr}}
  .vo-stat-card{
    background:#fff;border:1px solid var(--vd-line);border-radius:14px;
    padding:14px 16px;display:flex;align-items:center;gap:12px
  }
  .vo-stat-card .ic{
    width:42px;height:42px;border-radius:12px;color:#fff;
    display:inline-flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0
  }
  .vo-stat-card.s-total .ic{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold))}
  .vo-stat-card.s-active .ic{background:linear-gradient(135deg,#16a34a,#15803d)}
  .vo-stat-card.s-spend .ic{background:linear-gradient(135deg,var(--vd-gold-dark),var(--vd-gold))}
  .vo-stat-card .lbl{font-size:11.5px;color:var(--vd-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}
  .vo-stat-card .val{font-family:'Fraunces',serif;font-weight:700;color:var(--vd-ink);font-size:20px;line-height:1.1;margin-top:2px}

  /* Orders card */
  .vo-orders-card{
    background:#fff;border:1px solid var(--vd-line);border-radius:18px;
    overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.04)
  }
  .vo-orders-head{
    background:linear-gradient(135deg,#fff7eb 0%, #fff 100%);
    padding:16px 20px;border-bottom:1px solid var(--vd-line);
    display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px
  }
  .vo-orders-head h3{
    font-family:'Fraunces',serif;font-weight:700;font-size:20px;margin:0;color:var(--vd-ink);
    display:flex;align-items:center;gap:8px
  }
  .vo-orders-head h3 i{color:var(--vd-red)}
  .vo-orders-filter{display:flex;gap:6px;flex-wrap:wrap}
  .vo-filter-pill{
    background:#fff;border:1.5px solid var(--vd-line);color:#444;
    padding:5px 14px;border-radius:50px;font-size:12px;font-weight:600;cursor:pointer;transition:.15s
  }
  .vo-filter-pill:hover{border-color:var(--vd-gold)}
  .vo-filter-pill.active{
    background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));color:#fff;border-color:transparent
  }

  /* Desktop table */
  .vo-table-wrap{overflow-x:auto}
  .vo-table{width:100%;border-collapse:collapse;font-size:13.5px}
  .vo-table thead tr{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold))}
  .vo-table thead th{
    background:transparent;color:#fff;font-weight:700;text-transform:uppercase;
    letter-spacing:.5px;font-size:11px;text-align:left;padding:13px 16px;
    border-bottom:0;white-space:nowrap
  }
  .vo-table tbody td{padding:14px 16px;border-bottom:1px solid #f4f0e2;vertical-align:middle}
  .vo-table tbody tr:last-child td{border-bottom:0}
  .vo-table tbody tr:hover{background:#fffdf7}
  .vo-table .vo-order-id{font-family:'Fraunces',serif;font-weight:700;color:var(--vd-ink)}
  .vo-table .vo-date{color:var(--vd-muted);font-size:12px;margin-top:2px}
  .vo-table .vo-plan-tag{
    display:inline-block;background:var(--vd-gold-light);color:var(--vd-gold-dark);
    padding:2px 8px;border-radius:50px;font-size:11px;font-weight:700;margin-right:4px;margin-bottom:2px
  }
  /* Date stack: Order date + Expiry date */
  .vo-date-stack{display:flex;flex-direction:column;gap:2px;font-size:12px;margin-top:4px}
  .vo-date-stack span{display:inline-flex;align-items:center;gap:5px;color:var(--vd-muted);white-space:nowrap}
  .vo-date-stack span i{font-size:11px;color:var(--vd-gold-dark);width:14px;text-align:center}
  .vo-date-stack span.expiry{color:#888}
  .vo-date-stack span.expiry i{color:#888}

  /* Innovative Services / Cities / Validity panel */
  .vo-plan-summary{
    background:linear-gradient(135deg,#fffbf5 0%, #fff 100%);
    border:1px dashed #f0d7b0;border-radius:12px;padding:10px 12px;min-width:280px
  }
  .vo-plan-summary-head{
    display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--vd-gold-dark);
    font-weight:700;text-transform:uppercase;letter-spacing:.4px;margin-bottom:9px;
    padding-bottom:8px;border-bottom:1px dashed #ead7af
  }
  .vo-plan-summary-head span{display:inline-flex;align-items:center;gap:5px}
  .vo-plan-summary-head i{color:var(--vd-red);font-size:13px}
  .vo-svc-cards{display:flex;flex-direction:column;gap:8px}
  .vo-svc-avatar-row{display:flex;align-items:flex-start;gap:10px}
  .vo-svc-avatar{
    width:34px;height:34px;border-radius:50%;
    background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));color:#fff;
    display:inline-flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;
    box-shadow:0 2px 6px rgba(198,138,58,.18)
  }
  .vo-svc-info{flex:1;min-width:0;font-size:12.5px;line-height:1.3}
  .vo-svc-info .svc-name{font-weight:700;color:var(--vd-ink);display:block;margin-bottom:4px}
  .vo-svc-info .svc-cities{display:flex;flex-wrap:wrap;gap:3px}
  .vo-city-mini{
    display:inline-flex;align-items:center;gap:3px;
    background:#eef7ff;color:#1d4ed8;font-size:10.5px;font-weight:600;
    padding:1px 7px;border-radius:50px;white-space:nowrap
  }
  .vo-city-mini i{font-size:9px}
  .vo-table .vo-amount{font-family:'Fraunces',serif;font-weight:700;color:var(--vd-red);font-size:15px}
  .vo-status{
    display:inline-flex;align-items:center;gap:5px;
    padding:3px 10px;border-radius:50px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px
  }
  .vo-status.active{background:#dcfce7;color:#15803d}
  .vo-status.expired{background:#e5e7eb;color:#6b7280}
  .vo-status.refunded{background:#fef3c7;color:#92400e}
  .vo-actions{display:flex;gap:6px;flex-wrap:wrap}
  .vo-btn{
    display:inline-flex;align-items:center;gap:5px;
    padding:5px 12px;border-radius:8px;font-size:12px;font-weight:600;
    text-decoration:none;cursor:pointer;border:1.5px solid transparent;transition:.15s
  }
  .vo-btn-ghost{background:#fff;border-color:var(--vd-line);color:#444}
  .vo-btn-ghost:hover{border-color:var(--vd-gold);color:var(--vd-gold-dark)}
  .vo-btn-primary{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));color:#fff}
  .vo-btn-primary:hover{filter:brightness(.95);color:#fff}

  /* Mobile card layout */
  .vo-cards{display:none;padding:14px}
  .vo-card-item{
    background:#fff;border:1px solid var(--vd-line);border-radius:12px;padding:14px;margin-bottom:12px
  }
  .vo-card-item:last-child{margin-bottom:0}
  .vo-card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;gap:10px}
  .vo-card-top .vo-order-id{font-family:'Fraunces',serif;font-weight:700;color:var(--vd-ink);font-size:14px}
  .vo-card-top .vo-date{color:var(--vd-muted);font-size:11.5px;margin-top:1px}
  .vo-card-body{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}
  .vo-card-row{
    display:flex;justify-content:space-between;align-items:center;
    padding:8px 0;border-top:1px dashed #ead7af;font-size:13px
  }
  .vo-card-row .lbl{color:var(--vd-muted);font-size:12px}
  .vo-card-row .val{font-weight:700;color:var(--vd-ink)}
  .vo-card-row.amount .val{color:var(--vd-red);font-family:'Fraunces',serif;font-size:15px}
  .vo-card-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
  @media(max-width:780px){
    .vo-table{min-width:800px}
  }

  .vo-empty{text-align:center;padding:50px 20px;color:var(--vd-muted)}
  .vo-empty i{font-size:54px;color:var(--vd-gold);opacity:.6;margin-bottom:10px}
  .vo-empty h5{font-family:'Fraunces',serif;color:var(--vd-ink);margin:8px 0 4px;font-weight:700}
  .vo-empty p{font-size:14px;margin:0 0 14px}
  /* ===== DataTables footer for orders table ===== */
  .vd-mtbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .vd-mtbl-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:11px 16px;background:linear-gradient(135deg,#fbf6ee,#fdf9f2);border-top:1px solid var(--vd-line)}
  .vd-mtbl-foot .dataTables_length label{margin:0;display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--vd-line);border-radius:20px;padding:4px 12px;font-size:12.5px;color:var(--vd-muted);font-weight:600}
  .vd-mtbl-foot .dataTables_length select{border:0;background:transparent;font-weight:700;color:var(--vd-ink);outline:0;cursor:pointer;padding:0 2px}
  .vd-mtbl-foot .dataTables_info{flex:1;text-align:center;font-size:12.5px;font-weight:700;font-style:italic;color:var(--vd-muted);padding:0}
  .vd-mtbl-foot .dataTables_paginate{margin:0}
  .vd-mtbl-foot .pagination{margin:0;gap:4px}
  .vd-mtbl-foot .page-item .page-link{min-width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:9px;border:1px solid var(--vd-line);background:#fff;color:var(--vd-ink);font-size:13px;font-weight:600;padding:0 9px;line-height:1}
  .vd-mtbl-foot .page-item.previous .page-link,.vd-mtbl-foot .page-item.next .page-link{font-size:18px;font-weight:800;color:var(--vd-red-dark)}
  .vd-mtbl-foot .page-item .page-link:hover{border-color:var(--vd-red);color:var(--vd-red)}
  .vd-mtbl-foot .page-item.active .page-link{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));border-color:transparent;color:#fff}
  .vd-mtbl-foot .page-item.disabled .page-link{opacity:.55;cursor:default}
  @media(max-width:768px){.vd-mtbl-foot .dataTables_info{flex:1 1 100%;order:3;font-size:11px}}

/* ---- vendor-payment-success.html (style block) ---- */
.vps-svc-list{
    display:flex;flex-direction:column;gap:6px;margin:10px 0 4px
  }
  .vps-svc-row{
    display:flex;align-items:center;justify-content:space-between;
    background:#fff;border:1px dashed var(--gold);border-radius:8px;
    padding:8px 12px;font-size:13px
  }
  .vps-svc-row .l{display:flex;align-items:center;gap:8px;color:#333;font-weight:500}
  .vps-svc-row .l i{color:var(--brand-red);font-size:14px;width:18px;text-align:center}
  .vps-svc-row .v{font-weight:700;color:var(--ink);font-family:'Fraunces',serif;font-size:13px}

/* ---- vendor-payment.html (style block) ---- */
/* Order Summary — gradient header strip + white body */
  .order-sum-card{
    background:#fff !important;border:1px solid #f0e2c4 !important;border-radius:16px;
    overflow:hidden;padding:0 !important;
    box-shadow:0 10px 24px rgba(214,31,38,.10)
  }
  .order-sum-head{
    background:linear-gradient(135deg,#D61F26 0%, #E25822 55%, #E89243 100%);
    color:#fff;padding:18px 20px;position:relative;overflow:hidden;
    display:flex;align-items:center;gap:14px
  }
  .order-sum-head::after{
    content:"";position:absolute;top:-30px;right:-30px;width:130px;height:130px;
    border-radius:50%;background:rgba(255,255,255,.10);z-index:0
  }
  .order-sum-head::before{
    content:"";position:absolute;bottom:-50px;right:40px;width:80px;height:80px;
    border-radius:50%;background:rgba(255,255,255,.07);z-index:0
  }
  .order-sum-head > *{position:relative;z-index:1}
  .order-sum-head .osh-icon{
    width:46px;height:46px;border-radius:12px;background:rgba(255,255,255,.22);
    display:inline-flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0
  }
  .order-sum-head .osh-text h6{
    font-family:'Fraunces',serif;font-weight:700;font-size:19px;color:#fff;margin:0
  }
  .order-sum-head .osh-text p{
    color:rgba(255,255,255,.88);font-size:12.5px;margin:2px 0 0
  }
  .order-sum-body{padding:14px 18px 18px}
  .order-sum-list{display:flex;flex-direction:column;margin-bottom:6px}
  .order-sum-row{
    display:flex;justify-content:space-between;align-items:center;
    padding:11px 12px;font-size:14px;border:1px solid #f0e2c4;border-radius:10px;
    background:#fff;margin-bottom:8px
  }
  .order-sum-row .osr-l{display:flex;align-items:center;gap:10px;color:#333;font-weight:500}
  .order-sum-row .osr-l i{color:#D61F26;font-size:16px;width:20px;text-align:center}
  .order-sum-row .osr-v{font-weight:700;color:#1a1a1a;white-space:nowrap}
  .order-sum-row.svc-row{background:#fffdf7}
  .order-sum-row.discount-row .osr-l i{color:#16a34a}
  .order-sum-row.discount-row .osr-v{color:#15803d}
  .order-sum-row.order-sum-total{
    background:linear-gradient(135deg,#fff5f0 0%, #fff9ef 100%);
    border-color:#E89243;margin-bottom:0;margin-top:4px;padding:14px
  }
  .order-sum-row.order-sum-total .osr-l{color:#1a1a1a;font-weight:700;font-size:15px}
  .order-sum-row.order-sum-total .osr-l i{color:#D61F26;font-size:18px}
  .order-sum-row.order-sum-total .osr-v{color:#D61F26;font-size:20px;font-family:'Fraunces',serif}
  .order-sum-foot{padding:0 18px 18px}

  /* Selected services included list */
  .inc-list-card{background:var(--bg-soft);border-radius:var(--r-sm);padding:14px 16px;margin-bottom:18px}
  .inc-list-card .inc-row{
    display:flex;justify-content:space-between;align-items:center;
    font-size:14px;padding:6px 0;border-top:1px dashed #ead7af
  }
  .inc-list-card .inc-row:first-child{border-top:0}
  .inc-list-card .inc-row .inc-l{display:flex;align-items:center;gap:8px}
  .inc-list-card .inc-row .inc-l i{color:var(--orange);width:18px;text-align:center}
  .inc-list-card .inc-row strong{font-family:'Fraunces',serif}
  .inc-list-card .inc-empty{
    text-align:center;color:var(--slate);font-size:13px;padding:14px 0;font-style:italic
  }

/* ---- vendor-pricing.html (style block) ---- */
:root{
    --vp-red:#D61F26; --vp-red-dark:#B71C22;
    --vp-gold:#C68A3A; --vp-gold-dark:#A8742A; --vp-gold-light:#f5e8d4;
    --vp-ink:#1a1a1a; --vp-muted:#6b6b6b; --vp-line:#eee;
  }

  /* Hero+section spacing */
  .page-hero{padding-bottom:24px}
  .vp-builder-section{padding-top:18px;padding-bottom:36px}
  @media(max-width:768px){.page-hero{padding-bottom:18px}}

  /* ============ HOW IT WORKS — concept overview infographic ============ */
  .vp-howit{
    background:linear-gradient(135deg,#fff7eb 0%, #fff 60%);
    border:1px dashed var(--vp-gold);border-radius:18px;
    padding:22px 24px;margin:0 0 28px
  }
  .vp-howit-title{
    font-family:'Fraunces',serif;font-weight:700;font-size:18px;color:var(--vp-ink);
    margin:0 0 14px;text-align:center
  }
  .vp-howit-title em{color:var(--vp-red);font-style:normal}
  .vp-howit-flow{
    display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;
    align-items:center;gap:14px
  }
  .vp-howit-step{
    background:#fff;border:1.5px solid #f0e2c4;border-radius:14px;padding:14px 12px;text-align:center
  }
  .vp-howit-step .ic{
    width:42px;height:42px;border-radius:50%;
    background:linear-gradient(135deg,var(--vp-red),var(--vp-gold));color:#fff;
    display:inline-flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:8px
  }
  .vp-howit-step .lbl{
    font-family:'Fraunces',serif;font-weight:700;font-size:14px;color:var(--vp-ink);
    line-height:1.2;margin-bottom:3px
  }
  .vp-howit-step .sub{font-size:11px;color:var(--vp-muted);line-height:1.3}
  .vp-howit-arrow{
    color:var(--vp-gold-dark);font-size:18px;display:flex;align-items:center;justify-content:center
  }

  /* ===== Mobile: compact horizontal row (one line, icons-only with labels) ===== */
  @media(max-width:760px){
    .vp-howit{padding:14px 12px;margin-bottom:20px}
    .vp-howit-title{font-size:14px;margin-bottom:10px}
    .vp-howit-flow{gap:4px}
    .vp-howit-step{
      padding:8px 4px;border-radius:10px;border-width:1px;min-width:0
    }
    .vp-howit-step .ic{
      width:32px;height:32px;font-size:14px;margin-bottom:4px
    }
    .vp-howit-step .lbl{font-size:10.5px;letter-spacing:-.2px}
    .vp-howit-step .sub{display:none}  /* hide subtext, save vertical space */
    .vp-howit-arrow{font-size:13px}
  }
  @media(max-width:380px){
    .vp-howit{padding:12px 10px}
    .vp-howit-step{padding:7px 3px}
    .vp-howit-step .ic{width:28px;height:28px;font-size:12px;margin-bottom:3px}
    .vp-howit-step .lbl{font-size:9.5px}
    .vp-howit-arrow{font-size:11px}
  }

  /* Step card — wraps each entire step section */
  .vp-step-card{
    background:#fffdf7;border:1px solid #f0e2c4;border-radius:18px;
    padding:22px 24px;margin-bottom:18px;position:relative;
    box-shadow:0 2px 8px rgba(0,0,0,.03)
  }
  .vp-step-card.is-step-2{background:#fff7ef}
  .vp-step-card.is-step-3{background:#fffaef}
  /* Coloured left accent stripe to differentiate the 3 steps */
  .vp-step-card::before{
    content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
    background:linear-gradient(180deg,var(--vp-red),var(--vp-gold));
    border-radius:18px 0 0 18px
  }
  .vp-step-card.is-step-2::before{background:linear-gradient(180deg,var(--vp-gold),#E89243)}
  .vp-step-card.is-step-3::before{background:linear-gradient(180deg,#16a34a,#15803d)}

  /* Step header (1 / 2 / 3) — bigger and clearer */
  .vp-step-head{display:flex;align-items:center;gap:14px;margin:0 0 14px}
  .vp-step-num{
    width:46px;height:46px;border-radius:14px;
    background:linear-gradient(135deg,var(--vp-red),var(--vp-gold));
    color:#fff;font-family:'Fraunces',serif;font-weight:700;font-size:22px;
    display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
    box-shadow:0 4px 12px rgba(214,31,38,.20)
  }
  .vp-step-card.is-step-2 .vp-step-num{
    background:linear-gradient(135deg,var(--vp-gold),#E89243);
    box-shadow:0 4px 12px rgba(198,138,58,.20)
  }
  .vp-step-card.is-step-3 .vp-step-num{
    background:linear-gradient(135deg,#16a34a,#15803d);
    box-shadow:0 4px 12px rgba(22,163,74,.20)
  }
  .vp-step-head h3{font-family:'Fraunces',serif;font-weight:700;font-size:24px;margin:0;color:var(--vp-ink);line-height:1.2}
  .vp-step-head p{font-size:14px;color:var(--vp-muted);margin:3px 0 0}
  @media(max-width:768px){
    .vp-step-card{padding:18px 16px;margin-bottom:14px}
    .vp-step-head{gap:10px}
    .vp-step-num{width:38px;height:38px;font-size:18px;border-radius:11px}
    .vp-step-head h3{font-size:19px}
    .vp-step-head p{font-size:12.5px}
  }

  /* Tip / helper callout under each step */
  .vp-tip{
    background:#fff7eb;border-left:3px solid var(--vp-gold);
    color:var(--vp-gold-dark);font-size:13px;font-weight:500;
    padding:10px 14px;border-radius:8px;margin:0 0 16px;
    display:flex;align-items:flex-start;gap:8px
  }
  .vp-tip i{color:var(--vp-red);font-size:15px;margin-top:1px;flex-shrink:0}
  .vp-tip strong{color:var(--vp-red-dark)}


  /* ==================== STEP 1 — Service selector ==================== */
  .vp-svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
  @media(max-width:1100px){.vp-svc-grid{grid-template-columns:repeat(3,1fr)}}
  /* Mobile: always 2 services per row */
  @media(max-width:768px){.vp-svc-grid{grid-template-columns:repeat(2,1fr);gap:10px}}

  .vp-svc{
    background:#fff;border:2px solid #eee;border-radius:14px;overflow:hidden;cursor:pointer;
    transition:.2s;position:relative;display:flex;flex-direction:column
  }
  .vp-svc:hover{border-color:#16a34a;transform:translateY(-2px);box-shadow:0 10px 22px rgba(0,0,0,.06)}
  /* Selected state — GREEN treatment for clarity */
  .vp-svc.selected{border-color:#16a34a;box-shadow:0 8px 22px rgba(22,163,74,.20)}
  .vp-svc.selected::after{
    content:"\F26B";font-family:'bootstrap-icons';
    position:absolute;top:10px;right:10px;width:32px;height:32px;border-radius:50%;
    background:linear-gradient(135deg,#16a34a 0%, #15803d 100%);color:#fff;
    display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;
    box-shadow:0 4px 12px rgba(22,163,74,.35);z-index:2;
    border:2px solid #fff
  }
  .vp-svc-img{position:relative;height:100px;overflow:hidden;background:#f6f6f6}
  .vp-svc-img img{width:100%;height:100%;object-fit:cover;transition:.3s}
  .vp-svc:hover .vp-svc-img img{transform:scale(1.06)}
  .vp-svc-img::after{
    content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.45) 0%,transparent 50%)
  }
  .vp-svc-body{padding:12px 14px;display:flex;flex-direction:column;gap:6px}
  .vp-svc-body h6{font-size:14px;font-weight:700;color:var(--vp-ink);margin:0;line-height:1.25}
  .vp-svc.selected .vp-svc-body h6{color:#15803d}
  /* Prominent price pill — replaces the old demand meta line */
  .vp-svc-price-pill{
    display:inline-flex;align-items:baseline;gap:3px;align-self:flex-start;
    background:linear-gradient(135deg,#fff7eb 0%,#fdf6ec 100%);
    border:1px solid var(--vp-gold);color:var(--vp-red-dark);
    padding:5px 12px;border-radius:50px;
    font-family:'Fraunces',serif;font-weight:700;font-size:14px;line-height:1;
    transition:.2s
  }
  .vp-svc-price-pill .per{font-size:11px;font-weight:500;color:var(--vp-muted);font-family:'Poppins',sans-serif}
  .vp-svc.selected .vp-svc-price-pill{
    background:#16a34a;border-color:#16a34a;color:#fff;
    box-shadow:0 2px 8px rgba(22,163,74,.30)
  }
  .vp-svc.selected .vp-svc-price-pill .per{color:rgba(255,255,255,.85)}
  /* Mobile typography tweaks for 2-up grid */
  @media(max-width:480px){
    .vp-svc-img{height:88px}
    .vp-svc-body{padding:10px 12px;gap:5px}
    .vp-svc-body h6{font-size:13px}
    .vp-svc-price-pill{font-size:12.5px;padding:4px 10px}
    .vp-svc-price-pill .per{font-size:10px}
    .vp-svc.selected::after{width:28px;height:28px;font-size:15px;top:8px;right:8px}
  }

  /* Selection summary chip strip */
  .vp-svc-summary{
    background:linear-gradient(135deg,#fff7eb 0%, #fff 100%);
    border:1px dashed var(--vp-gold);border-radius:12px;padding:10px 14px;
    margin-top:14px;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--vp-gold-dark)
  }
  .vp-svc-summary strong{color:var(--vp-red-dark);font-family:'Fraunces',serif;font-size:15px}

  /* ==================== STEP 2 — Per-service city blocks ==================== */
  .vp-svc-cities-empty{
    text-align:center;padding:30px 16px;color:var(--vp-muted);
    border:1px dashed #f0e2c4;border-radius:14px;background:#fffaf3
  }
  .vp-svc-cities-empty i{font-size:36px;color:var(--vp-gold);opacity:.6;display:block;margin-bottom:6px}
  .vp-svc-cities-empty p{margin:0;font-size:14px;font-style:italic}

  .vp-svc-cities{display:flex;flex-direction:column;gap:14px}
  .vp-svc-cities-block{
    background:#fff;border:1.5px solid #f0e2c4;border-radius:14px;padding:14px 16px;
    animation:vpCityIn .25s ease
  }
  .vp-svc-cities-head{
    display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px
  }
  .vp-svc-cities-title{
    display:inline-flex;align-items:center;gap:8px;font-family:'Fraunces',serif;
    font-weight:700;color:var(--vp-ink);font-size:15px
  }
  .vp-svc-cities-title i{color:#16a34a;font-size:16px}
  .vp-svc-cities-price{
    background:var(--vp-gold-light);color:var(--vp-gold-dark);font-size:11px;font-weight:700;
    padding:3px 9px;border-radius:50px;margin-left:6px;font-family:'Poppins',sans-serif
  }
  .vp-svc-cities-stepper{
    display:inline-flex;align-items:center;gap:8px;background:#fdf6ec;border-radius:50px;padding:4px 6px
  }
  .vp-svc-cities-stepper .lbl{
    font-size:11px;color:var(--vp-muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:0 6px
  }
  .vp-svc-cities-stepper button{
    width:28px;height:28px;border-radius:50%;border:0;
    background:linear-gradient(135deg,var(--vp-red),var(--vp-gold));color:#fff;
    font-weight:700;font-size:14px;cursor:pointer;line-height:1;
    display:inline-flex;align-items:center;justify-content:center
  }
  .vp-svc-cities-stepper button:disabled{opacity:.4;cursor:not-allowed;background:#ccc}
  .vp-svc-cities-stepper .val{
    min-width:22px;text-align:center;font-family:'Fraunces',serif;font-weight:700;
    font-size:16px;color:var(--vp-red)
  }

  .vp-svc-city-rows{display:flex;flex-direction:column;gap:8px;margin-top:6px}

  /* Inner city row (inside a service block) */
  .vp-city-rows{margin-top:14px;display:flex;flex-direction:column;gap:10px}
  .vp-city-row{
    background:#fff;border:1px solid #f0e2c4;border-radius:12px;padding:12px 14px;
    animation:vpCityIn .25s ease
  }
  @keyframes vpCityIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
  .vp-city-row-head{
    display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px
  }
  .vp-city-num{
    font-family:'Fraunces',serif;font-weight:700;color:var(--vp-ink);font-size:14px;
    display:inline-flex;align-items:center;gap:6px
  }
  .vp-city-num i{color:var(--vp-red);font-size:13px}
  .vp-city-rate{
    background:var(--vp-gold-light);color:var(--vp-gold-dark);
    padding:2px 9px;border-radius:50px;font-size:11px;font-weight:700
  }
  .vp-city-row .row{margin:0}
  .vp-city-row .col-md-4{padding:0 4px}
  @media(max-width:760px){
    .vp-city-row{padding:10px 12px}
    .vp-city-row .col-md-4{padding:3px 0}
  }
  .vp-city-row select{font-size:13px}
  .vp-city-loc-label{display:block;font-size:11px;font-weight:600;color:var(--vp-muted);margin:0 0 3px}
  .vp-city-loc-label .req{color:var(--vp-red);margin-left:1px}
  .vp-city-row.incomplete{border-color:var(--vp-red);box-shadow:0 0 0 1px rgba(214,31,38,.15)}
  .vp-city-row-warn{color:var(--vp-red);font-size:11.5px;font-weight:600;margin-top:6px;display:flex;align-items:center;gap:4px}

  .vp-cities-card{
    background:#fff;border:1.5px solid var(--vp-line);border-radius:14px;padding:18px 20px;
    display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px
  }
  .vp-cities-info{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
  .vp-cities-info .vp-icon-box{
    width:44px;height:44px;border-radius:12px;
    background:linear-gradient(135deg,var(--vp-gold-light) 0%,#fff 100%);
    color:var(--vp-red);display:inline-flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0
  }
  .vp-cities-info .vp-label{font-weight:600;color:var(--vp-ink);font-size:14px}
  .vp-cities-info .vp-rate{font-size:12px;color:var(--vp-muted)}
  .vp-cities-info .vp-rate strong{color:var(--vp-red);font-family:'Fraunces',serif}
  .vp-big-stepper{display:flex;align-items:center;gap:14px;background:#fdf6ec;border-radius:50px;padding:6px}
  .vp-big-stepper button{
    width:36px;height:36px;border-radius:50%;border:0;
    background:linear-gradient(135deg,var(--vp-red),var(--vp-gold));color:#fff;
    font-weight:700;font-size:18px;line-height:1;cursor:pointer;
    display:inline-flex;align-items:center;justify-content:center
  }
  .vp-big-stepper button:disabled{opacity:.4;cursor:not-allowed;background:#ccc}
  .vp-big-stepper .vp-val{
    min-width:36px;text-align:center;font-family:'Fraunces',serif;font-weight:700;
    font-size:22px;color:var(--vp-red)
  }

  /* ==================== STEP 3 — Validity pills (3-in-a-row always) ==================== */
  .vp-validity-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
  @media(max-width:760px){.vp-validity-row{gap:10px}}
  @media(max-width:480px){.vp-validity-row{gap:6px}}
  .vp-validity-pill{
    background:#fff;border:2px solid var(--vp-line);border-radius:14px;padding:16px;
    cursor:pointer;text-align:center;transition:.2s;position:relative;min-width:0
  }
  @media(max-width:760px){
    .vp-validity-pill{padding:12px 8px}
    .vp-validity-pill .vp-vp-period{font-size:16px}
    .vp-validity-pill .vp-vp-sub{font-size:10.5px}
    .vp-validity-pill .vp-vp-tag{font-size:9px;padding:2px 7px;right:8px}
  }
  @media(max-width:380px){
    .vp-validity-pill{padding:11px 6px}
    .vp-validity-pill .vp-vp-period{font-size:14px}
    .vp-validity-pill .vp-vp-sub{font-size:9.5px}
  }
  .vp-validity-pill:hover{border-color:var(--vp-gold)}
  .vp-validity-pill.selected{border-color:var(--vp-red);background:linear-gradient(135deg,#fff5f0 0%,#fff9ef 100%);box-shadow:0 8px 22px rgba(214,31,38,.12)}
  .vp-validity-pill .vp-vp-tag{
    position:absolute;top:-10px;right:14px;background:#16a34a;color:#fff;
    font-size:10px;font-weight:700;padding:3px 10px;border-radius:50px;letter-spacing:.5px
  }
  .vp-validity-pill .vp-vp-period{font-family:'Fraunces',serif;font-weight:700;font-size:20px;color:var(--vp-ink)}
  .vp-validity-pill .vp-vp-sub{font-size:11px;color:var(--vp-muted);margin-top:2px}
  .vp-validity-pill.selected .vp-vp-period{color:var(--vp-red)}

  /* ==================== Sticky bottom shell (panel + bar) ==================== */
  .vp-sticky-shell{
    position:fixed;left:0;right:0;bottom:0;z-index:1040;
    transform:translateY(100%);transition:transform .3s ease;pointer-events:none
  }
  .vp-sticky-shell > *{pointer-events:auto}
  .vp-sticky-shell.is-shown{transform:translateY(0)}

  /* Collapsible breakdown panel (slides up from sticky bar) */
  .vp-expand-panel{
    background:#fff;
    max-height:0;overflow:hidden;
    transition:max-height .35s cubic-bezier(.4,0,.2,1);
    display:flex;flex-direction:column
  }
  .vp-expand-panel.is-open{
    max-height:62vh;border-top:1px solid #f0e2c4;
    box-shadow:0 -14px 30px rgba(0,0,0,.10)
  }
  /* DESKTOP — panel becomes a compact right-aligned card (mobile-style width) */
  @media(min-width:769px){
    .vp-expand-panel{
      max-width:420px;margin-left:auto;
      margin-right:max(24px, calc((100vw - 1140px) / 2 + 12px));
      border-top-left-radius:16px;border-top-right-radius:16px;
      border-left:1px solid #f0e2c4;border-right:1px solid #f0e2c4
    }
    .vp-expand-panel.is-open{
      box-shadow:0 -18px 36px rgba(0,0,0,.14);
      border-top:1px solid #f0e2c4
    }
  }
  .vp-expand-head{
    background:linear-gradient(135deg,#D61F26 0%, #E25822 55%, #E89243 100%);
    color:#fff;padding:14px 20px;position:relative;overflow:hidden;
    display:flex;align-items:center;gap:14px;flex-shrink:0
  }
  .vp-expand-head::after{
    content:"";position:absolute;top:-30px;right:-30px;width:110px;height:110px;
    border-radius:50%;background:rgba(255,255,255,.10);z-index:0
  }
  .vp-expand-head > *{position:relative;z-index:1}
  .vp-expand-head .icon-sq{
    width:40px;height:40px;border-radius:10px;background:rgba(255,255,255,.22);
    display:inline-flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0
  }
  .vp-expand-head h6{font-family:'Fraunces',serif;font-weight:700;font-size:17px;color:#fff;margin:0}
  .vp-expand-head p{color:rgba(255,255,255,.88);font-size:12px;margin:1px 0 0}
  .vp-expand-head .vp-expand-close{
    margin-left:auto;width:32px;height:32px;border-radius:50%;border:0;
    background:rgba(255,255,255,.18);color:#fff;cursor:pointer;
    display:inline-flex;align-items:center;justify-content:center;font-size:14px
  }
  .vp-expand-body{padding:8px 20px 6px;flex:1 1 auto;min-height:0;overflow-y:auto}
  .vp-sum-row{
    display:flex;justify-content:space-between;align-items:center;
    padding:9px 0;font-size:13.5px;color:#333;border-bottom:1px dashed #ead7af
  }
  .vp-sum-row:last-child{border-bottom:0}
  .vp-sum-row .vp-sum-l{display:flex;align-items:center;gap:8px;font-weight:500}
  .vp-sum-row .vp-sum-l i{color:var(--vp-red);font-size:14px;width:18px;text-align:center}
  .vp-sum-row .vp-sum-v{font-weight:700;color:var(--vp-ink);white-space:nowrap}
  .vp-expand-foot{padding:12px 20px 14px;background:#fffaf3;border-top:1px solid #f0e2c4;flex-shrink:0}
  .vp-foot-row{display:flex;justify-content:space-between;align-items:baseline;padding:5px 0;font-size:13px;color:var(--vp-muted)}
  .vp-foot-row.discount{color:#16a34a;font-weight:600}
  .vp-foot-row.total{
    padding-top:8px;margin-top:6px;border-top:2px solid var(--vp-gold);
    font-size:15px;color:var(--vp-ink);font-weight:700
  }
  .vp-foot-row.total .vp-foot-v{
    font-family:'Fraunces',serif;font-weight:700;font-size:22px;color:var(--vp-red)
  }

  /* Sticky action bar */
  .vp-sticky-bar{
    background:#fff;border-top:1px solid #f0e2c4;
    box-shadow:0 -6px 16px rgba(0,0,0,.06);
    padding:12px 0
  }
  /* Inner — column on mobile (2 rows), row on desktop (1 row) */
  .vp-sticky-inner{display:flex;flex-direction:column;gap:12px}
  .vp-sticky-top{
    display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex:1
  }
  /* LEFT: stats stacked */
  .vp-sticky-stats-left{display:flex;flex-direction:column;gap:3px;min-width:0}
  .vp-stat-line{
    font-size:13px;color:#333;display:flex;align-items:center;gap:8px;line-height:1.35;font-weight:500;flex-wrap:wrap
  }
  .vp-stat-line .stat-ico{
    color:var(--vp-red);font-size:14px;width:18px;text-align:center;flex-shrink:0
  }
  .vp-stat-line .label{color:var(--vp-muted);font-weight:500}
  .vp-stat-line .val{font-weight:700;color:var(--vp-ink);font-family:'Fraunces',serif}
  .vp-stat-line .save-pill{
    display:inline-block;background:#16a34a;color:#fff;font-size:9.5px;font-weight:700;
    padding:2px 8px;border-radius:50px;letter-spacing:.3px;vertical-align:middle;
    width:auto;flex:0 0 auto
  }
  /* invisible flex-line-break helper — only appears on mobile to wrap the SAVE pill */
  .vp-flex-break{display:none}
  /* RIGHT: total + Break Up */
  .vp-sticky-total-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}
  .vp-sticky-total-label{
    font-size:11px;color:var(--vp-red-dark);text-transform:uppercase;letter-spacing:.6px;font-weight:700;
    display:inline-flex;align-items:center;gap:5px
  }
  .vp-sticky-total-label i{font-size:13px}
  .vp-sticky-total-row{display:flex;align-items:center;gap:10px}
  .vp-sticky-total-value{
    font-family:'Fraunces',serif;font-weight:800;font-size:34px;color:var(--vp-red);line-height:1;
    letter-spacing:-0.5px
  }
  .vp-breakup-btn{
    background:#fff;border:1.5px solid var(--vp-red);color:var(--vp-red);
    font-weight:700;font-size:11.5px;padding:5px 11px;border-radius:50px;
    cursor:pointer;display:inline-flex;align-items:center;gap:5px;
    transition:.15s;line-height:1;letter-spacing:.2px;font-family:inherit
  }
  .vp-breakup-btn:hover{background:var(--vp-red);color:#fff}
  .vp-breakup-btn i{font-size:11px;transition:transform .25s}
  .vp-sticky-shell.panel-open .vp-breakup-btn i{transform:rotate(180deg)}
  /* Proceed button — block on mobile, auto-width pill on desktop */
  .vp-sticky-btn-block{
    display:flex;align-items:center;justify-content:center;width:100%;
    background:linear-gradient(135deg,var(--vp-red),var(--vp-gold));color:#fff !important;
    padding:13px 14px;border-radius:12px;font-weight:700;text-decoration:none;
    font-size:15px;gap:8px;letter-spacing:.3px;
    box-shadow:0 6px 16px rgba(214,31,38,.22);transition:.2s
  }
  .vp-sticky-btn-block:hover{filter:brightness(.95);transform:translateY(-1px)}
  .vp-sticky-btn-block.disabled{background:#ccc;pointer-events:none;box-shadow:none}

  /* ===== DESKTOP — single row, Proceed on the far right ===== */
  @media(min-width:769px){
    .vp-sticky-inner{flex-direction:row;align-items:center;gap:24px}
    .vp-sticky-btn-block{
      width:auto;flex-shrink:0;padding:14px 28px;border-radius:50px;font-size:15px
    }
  }

  /* Spacer so page content isn't hidden behind sticky shell — only when shown */
  .vp-bottom-spacer{height:0;transition:height .25s ease}
  body.has-sticky-bar .vp-bottom-spacer{height:120px}
  @media(max-width:768px){
    .vp-sticky-bar{padding:10px 0}
    .vp-sticky-top{gap:10px}
    .vp-stat-line{font-size:12.5px;gap:6px}
    .vp-stat-line .stat-ico{font-size:13px;width:16px}
    /* Force the SAVE pill onto its own line — the .vp-flex-break is the wrap trigger */
    .vp-flex-break{display:block;flex-basis:100%;width:100%;height:0;padding:0;margin:0}
    .vp-stat-line .save-pill{margin-left:22px}
    .vp-sticky-total-label{font-size:10px}
    .vp-sticky-total-value{font-size:22px}
    /* Total amount + Break Up button — stack them in the narrow right column */
    .vp-sticky-total-row{flex-direction:column;align-items:flex-end;gap:6px}
    .vp-breakup-btn{font-size:11px;padding:5px 14px}
    .vp-sticky-btn-block{font-size:14px;padding:12px}
    body.has-sticky-bar .vp-bottom-spacer{height:210px}
  }
  @media(max-width:480px){
    .vp-sticky-total-value{font-size:20px}
    .vp-breakup-btn{font-size:10.5px;padding:4px 12px}
    body.has-sticky-bar .vp-bottom-spacer{height:220px}
  }
  /* ============ CONTACT STRIP — contact details + request a call back ============ */
  .vp-contact-strip{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 24px}
  .vp-contact-card{border-radius:14px;padding:7px 14px}
  .vp-cc-info{background:linear-gradient(135deg,#fff7eb 0%,#fff 65%);border:1px solid #f0e2c4}
  .vp-cc-cta{background:linear-gradient(135deg,#fdecec 0%,#fff 70%);border:1px solid #f6d6d6}
  .vp-cc-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}
  .vp-cc-ic{width:32px;height:32px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--vp-red),var(--vp-gold));color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:15px}
  .vp-cc-ic-gold{background:linear-gradient(135deg,var(--vp-gold),var(--vp-red))}
  .vp-cc-head h4{font-family:'Fraunces',serif;font-weight:700;font-size:15.5px;color:var(--vp-ink);margin:0 0 1px}
  .vp-cc-head p{font-size:12px;line-height:1.3;color:var(--vp-muted);margin:0}
  .vp-cc-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .vp-cc-list li{margin:0}
  .vp-cc-list li:last-child{margin-bottom:0}
  .vp-cc-list a{display:flex;align-items:center;gap:8px;height:100%;text-decoration:none;padding:6px 9px;border-radius:10px;border:1px solid #f0e2c4;background:#fff;transition:.18s}
  .vp-cc-list a:hover{border-color:var(--vp-gold);box-shadow:0 4px 14px rgba(198,138,58,.16);transform:translateY(-1px)}
  .vp-cc-li-ic{width:25px;height:25px;border-radius:7px;flex-shrink:0;background:var(--vp-gold-light);color:var(--vp-gold-dark);display:inline-flex;align-items:center;justify-content:center;font-size:13px}
  .vp-cc-li-txt{display:flex;flex-direction:column;line-height:1.25;min-width:0}
  .vp-cc-li-txt small{font-size:10.5px;color:var(--vp-muted);font-weight:600;letter-spacing:.03em;text-transform:uppercase}
  .vp-cc-li-txt b{font-size:12px;font-weight:700;color:var(--vp-ink);word-break:break-word}
  .vp-cc-hours{font-size:11.5px;color:var(--vp-muted);margin:6px 0 0;display:flex;align-items:center;gap:6px}
  .vp-cb-field{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid #f6d6d6;border-radius:10px;padding:6px 12px;margin-bottom:6px}
  .vp-cb-field i{color:var(--vp-red);font-size:16px}
  .vp-cb-field input{border:0;outline:0;flex:1;min-width:0;font-size:15px;font-weight:600;color:var(--vp-ink);background:transparent}
  .vp-cb-btn{width:100%;border:0;border-radius:10px;padding:8px;font-size:14.5px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--vp-red),var(--vp-red-dark));display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:.18s}
  .vp-cb-btn:hover{box-shadow:0 8px 22px rgba(214,31,38,.3);transform:translateY(-1px)}
  @media(max-width:760px){.vp-contact-strip{grid-template-columns:1fr;gap:10px;margin-bottom:16px}.vp-contact-card{padding:9px 13px}}
  @media(max-width:480px){
    .vp-cc-list{gap:7px}
    .vp-cc-list a{gap:6px;padding:5px 8px}
    .vp-cc-li-ic{width:24px;height:24px;font-size:12px;border-radius:7px}
    .vp-cc-li-txt small{font-size:9px}
    .vp-cc-li-txt b{font-size:11.5px}
  }
  /* ---- Call Back success popup ---- */
  .vp-cb-modal{display:none;position:fixed;inset:0;z-index:4200;align-items:center;justify-content:center;padding:20px}
  .vp-cb-modal.open{display:flex}
  .vp-cb-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(4px)}
  .vp-cb-dialog{position:relative;z-index:1;max-width:400px;width:100%;background:#fff;border-radius:20px;padding:32px 26px 26px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.28);animation:vpCbPop .3s cubic-bezier(.18,.89,.32,1.28)}
  .vp-cb-check{width:74px;height:74px;border-radius:50%;margin:0 auto 16px;background:linear-gradient(135deg,#1f9d57,#16793f);color:#fff;display:flex;align-items:center;justify-content:center;font-size:40px;box-shadow:0 0 0 8px rgba(31,157,87,.15);animation:vpCbCheck .4s .12s both cubic-bezier(.18,.89,.32,1.28)}
  .vp-cb-dialog h4{font-family:'Fraunces',serif;font-weight:700;font-size:23px;color:var(--vp-ink);margin:0 0 8px}
  .vp-cb-dialog p{font-size:14px;color:var(--vp-muted);line-height:1.55;margin:0 0 22px}
  .vp-cb-done{min-width:150px;justify-content:center}
  @keyframes vpCbPop{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}
  @keyframes vpCbCheck{from{transform:scale(0)}to{transform:scale(1)}}

/* ---- vendor-profile.html (style block) ---- */
:root{--vd-red:#C68A3A;--vd-gold:#E0B45A;--vd-line:#eee;--vd-muted:#666}
  body{background:#fbfaf8}
  .vendor-user-card{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));border-radius:14px;padding:18px 16px;text-align:center;color:#fff;margin-bottom:16px}
  .vendor-user-card .vu-avatar{width:64px;height:64px;border-radius:50%;background:#fff;color:var(--vd-red);font-family:Fraunces,serif;font-weight:700;font-size:22px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:10px;border:3px solid rgba(255,255,255,.4)}
  .vendor-user-card h6{font-size:15px;font-weight:600;margin:0;color:#fff}
  .vendor-user-card .role-pill{background:rgba(255,255,255,.25);font-size:11px;padding:3px 10px;border-radius:20px;display:inline-block;margin-top:6px;font-weight:600}
  .vendor-nav{display:flex;flex-direction:column;gap:4px}
  .vendor-nav-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:10px;color:#444;text-decoration:none;font-weight:500;font-size:14px;transition:.15s}
  .vendor-nav-item i{width:18px;text-align:center;font-size:16px;color:var(--vd-muted)}
  .vendor-nav-item:hover{background:#faf4e6;color:#B8860B}
  .vendor-nav-item.active{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));color:#fff}
  .vendor-nav-item.active i{color:#fff}.vendor-nav-divider{height:1px;background:#efe2c9;margin:8px 0}.vendor-nav-item.signout{color:var(--vd-red);font-weight:600}
  .vd-menu-trigger{background:#fff;border:1.5px solid var(--vd-line);border-radius:10px;padding:8px 14px;font-weight:600;font-size:13px;display:inline-flex;align-items:center;gap:8px;margin-bottom:14px}
  @media(min-width:992px){.vd-menu-trigger{display:none}}
  .vp-card{background:#fff;border:1px solid var(--vd-line);border-radius:20px;padding:22px;box-shadow:0 10px 28px rgba(0,0,0,.04)}
  .vp-head{display:flex;align-items:center;gap:18px;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid #f0eee9}
  .vp-photo{width:86px;height:86px;border-radius:22px;object-fit:cover;border:3px solid #f7edd9}
  .vp-photo-initials{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));color:#fff;font-family:Fraunces,serif;font-size:28px;font-weight:700}
  .vendor-user-card .vu-avatar{overflow:hidden;padding:0}
  .vendor-user-card .vu-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
  .vp-head h1{font-family:Fraunces,serif;font-size:28px;margin:0}
  .vp-head p{margin:4px 0 0;color:var(--vd-muted);font-size:13px}
  .vp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
  .vp-field label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:#555;margin-bottom:7px;text-transform:uppercase;letter-spacing:.4px}
  .vp-field .form-control,.vp-field .form-select{border-radius:12px;border:1.5px solid #ddd;padding:10px 12px;font-size:14px}
  .vp-upload{display:flex;align-items:center;gap:12px;background:#fafafa;border:2px dashed #ddd;border-radius:12px;padding:12px 14px;cursor:pointer;transition:.18s;margin:0}
  .vp-upload:hover{border-color:var(--vd-gold);background:#faf4e6}
  .vp-upload-ico{width:42px;height:42px;border-radius:10px;background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;box-shadow:0 4px 10px rgba(198,138,58,.2)}
  .vp-upload-text{display:flex;flex-direction:column;line-height:1.3;min-width:0}
  .vp-upload-title{font-weight:600;font-size:13.5px;color:#1a1a1a}
  .vp-upload-hint{font-size:11px;color:#888;margin-top:2px}
  .vp-upload-status{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:#16a34a;font-weight:600;margin-top:6px}
  .vp-upload-status i{color:#16a34a}
  .vp-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
  .btn-vp{border:0;background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));color:#fff;border-radius:12px;padding:11px 18px;font-weight:700;display:inline-flex;align-items:center;gap:8px}
  @media(max-width:767px){.vp-grid{grid-template-columns:1fr}.vp-head{align-items:flex-start}.vp-actions{flex-direction:column}.vp-actions .btn,.vp-actions .btn-vp{width:100%;justify-content:center}}
/* Inline edit pattern (per-section view/edit toggle) */
  .ep-section-title-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
  .ep-section-title-bar > span{display:inline-flex;align-items:center;gap:8px}
  .ep-edit-btn{background:#fff;border:1.5px solid #e4d3b6;border-radius:8px;padding:5px 14px;font-size:12.5px;color:#A8742A;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:.18s;font-family:inherit;line-height:1.4}
  .ep-edit-btn i{font-size:13px}
  .ep-edit-btn:hover{background:linear-gradient(135deg,#C68A3A,#E0B45A);color:#fff;border-color:transparent;box-shadow:0 4px 12px rgba(198,138,58,.22)}
  .ep-view-text{min-height:64px;padding:14px 16px;background:#fafafa;border:1px solid #ececec;border-radius:10px;margin:0;font-size:14px;color:#333;white-space:pre-wrap;word-break:break-word;line-height:1.55}
  .ep-view-text:empty::before{content:"Not added yet";color:#aaa;font-style:italic}
  .ep-view-hint{display:block;margin-top:6px;font-size:11.5px;color:#888}
  .ep-edit-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
  .ep-btn-save{background:linear-gradient(135deg,#C68A3A,#E0B45A);color:#fff;border:0;padding:9px 24px;border-radius:50px;font-weight:600;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;box-shadow:0 5px 14px rgba(198,138,58,.25);font-family:inherit;transition:.18s}
  .ep-btn-save:hover{filter:brightness(.95);transform:translateY(-1px)}
  .ep-btn-cancel{background:#fff;border:1.5px solid #ddd;color:#666;padding:9px 20px;border-radius:50px;font-weight:600;font-size:13px;cursor:pointer;font-family:inherit;transition:.18s}
  .ep-btn-cancel:hover{border-color:#C68A3A;color:#C68A3A}
  /* Multi-field view grid */
  .ep-view-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;padding:6px 0 2px}
  @media (max-width:575px){.ep-view-grid{grid-template-columns:1fr}}
  .ep-view-field{display:flex;flex-direction:column;gap:4px;padding:11px 14px;background:#fafafa;border:1px solid #ececec;border-radius:10px}
  .ep-view-field .ep-view-label{font-size:10.5px;color:#888;font-weight:700;text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:6px}
  .ep-view-field .ep-view-label i{color:#E0B45A;font-size:13px}
  .ep-view-field .ep-view-value{font-size:14px;color:#222;font-weight:500;word-break:break-word;line-height:1.45}
  .ep-view-field .ep-view-value:empty::before{content:"—";color:#bbb}
  /* Profile-view-style sections used inside edit page */
  .pv-section .pv-sec-head{padding:14px 18px}
  .pv-sec-body-edit{padding:18px}
  .pv-section .ep-edit-btn{background:rgba(255,255,255,.85);border-color:rgba(0,0,0,.08);color:#A8742A}
  .pv-section .ep-edit-btn:hover{background:linear-gradient(135deg,#C68A3A,#E0B45A);color:#fff;border-color:transparent;box-shadow:0 4px 12px rgba(198,138,58,.22)}
  .pv-bio[data-view-text]::before{content:"\201C"}
  .pv-bio[data-view-text]::after{content:"\201D"}
  .pv-sec-body-edit .form-label{font-weight:600;font-size:13px;color:#333;margin-bottom:6px;display:flex;align-items:center;gap:7px}
  .pv-sec-body-edit .form-label i{color:#E0B45A}
  /* Match My Religion section-title bg (pink-cream gradient) on About/Basic headers */
  .pv-section .pv-sec-head{background:linear-gradient(135deg,var(--green-light,#f7edd9),var(--gold-light,#f7edd9));border-bottom:1px solid var(--line,#eee);padding:10px 16px}
  .pv-section .pv-sec-title{color:var(--ink,#1a1a1a);font-family:var(--font-display,'Fraunces',serif);font-size:16px;font-weight:600}
  .pv-section .pv-sec-icon{background:rgba(255,255,255,.7);color:var(--orange,#E0B45A)}

/* ---- vendor-register.html (style block) ---- */
/* portal-panel-theme */
.auth-side{ background:
    radial-gradient(circle at 80% 20%, rgba(255,255,255,0.12), transparent 50%),
    radial-gradient(circle at 20% 80%, rgba(255,255,255,0.08), transparent 50%),
    linear-gradient(135deg, #C68A3A 0%, #B8742A 50%, #8A5A1E 100%) !important; }

/* ---- vendor-service-avail.html (style block) ---- */
:root{--vd-red:#C68A3A;--vd-gold:#E0B45A;--vd-gold-dark:#B8860B;--vd-line:#eee;--vd-muted:#666}
  body{background:#fbfaf8}
  .vd-shell{padding:24px 0 42px}
  .vd-card{background:#fff;border:1px solid var(--vd-line);border-radius:20px;padding:22px;box-shadow:0 10px 28px rgba(0,0,0,.05)}
  .vd-title{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}
  .vd-title h1{font-family:Fraunces,serif;font-size:28px;font-weight:700;margin:0}
  .vd-title h1 em{color:var(--vd-red);font-style:italic}
  .vd-sub{color:var(--vd-muted);font-size:13px;margin:4px 0 0}
  .service-chip{display:inline-flex;align-items:center;gap:8px;background:#fff7eb;color:var(--vd-gold-dark);border:1px solid #f0d7b0;border-radius:999px;padding:8px 14px;font-weight:700;font-size:13px}
  .vd-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
  .vd-field{position:relative}
  .vd-field > label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#555;margin-bottom:7px}
  .vd-multi{position:relative}
  .vd-multi-trigger{
    width:100%;min-height:52px;border:1.5px solid #ddd;border-radius:14px;background:#fff;
    display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;
    text-align:left;cursor:pointer;transition:.15s;box-shadow:0 3px 10px rgba(0,0,0,.025)
  }
  .vd-multi-trigger:hover,.vd-multi.open .vd-multi-trigger{border-color:var(--vd-gold);box-shadow:0 0 0 3px rgba(198,138,58,.13)}
  .vd-multi-selected{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}
  .vd-placeholder{color:#888;font-size:13px}
  .vd-mini-chip{
    display:inline-flex;align-items:center;gap:5px;background:#fff7eb;border:1px solid #f0d7b0;
    color:var(--vd-gold-dark);border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700;
    max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
  }
  .vd-mini-more{background:#f7edd9;border-color:#f3b8bb;color:var(--vd-red);max-width:none}
  .vd-multi-chevron{color:#888;flex-shrink:0;transition:.18s}
  .vd-multi.open .vd-multi-chevron{transform:rotate(180deg);color:var(--vd-gold-dark)}
  .vd-options{
    display:none;position:absolute;z-index:30;top:calc(100% + 8px);left:0;right:0;
    background:#fff;border:1px solid #ead7bb;border-radius:14px;padding:8px;
    box-shadow:0 16px 34px rgba(80,48,20,.14);max-height:240px;overflow:auto
  }
  .vd-multi.open .vd-options{display:block}
  .vd-option{
    display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:10px;
    color:#333;font-size:13px;font-weight:600;cursor:pointer;transition:.12s
  }
  .vd-option:hover{background:#fff7eb}
  .vd-option input{width:16px;height:16px;accent-color:var(--vd-red);flex-shrink:0}
  .vd-option span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vd-help{font-size:12px;color:var(--vd-muted);margin-top:6px}
  .vd-summary{background:linear-gradient(135deg,#fff5f5,#faf4e6);border:1px dashed #e7c796;border-radius:16px;padding:16px;margin-top:18px}
  .vd-summary h6{font-weight:700;margin-bottom:10px}
  .vd-tags{display:flex;flex-wrap:wrap;gap:8px}
  .vd-tag{background:#fff;border:1px solid #f0d7b0;color:var(--vd-gold-dark);border-radius:50px;padding:5px 10px;font-size:12px;font-weight:700}
  .vd-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;flex-wrap:wrap}
  .btn-vd{border:0;background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));color:#fff;border-radius:12px;padding:11px 18px;font-weight:700;display:inline-flex;align-items:center;gap:8px;text-decoration:none}
  .btn-vd:hover{color:#fff;filter:brightness(.96)}
  @media(max-width:767px){
    .vd-form-grid{grid-template-columns:1fr}.vd-card{padding:16px}.vd-actions .btn,.vd-actions .btn-vd{width:100%;justify-content:center}
    .vd-options{position:static;margin-top:8px;box-shadow:none;max-height:210px}
    .vd-mini-chip{max-width:118px}
  }

  /* ============================================================
     Success popup (replaces native browser alert)
     ============================================================ */
  .vd-success-modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;z-index:9999;padding:20px;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
  .vd-success-modal.open{display:flex;animation:vdFadeIn .2s ease}
  @keyframes vdFadeIn{from{opacity:0}to{opacity:1}}
  .vd-success-card{background:#fff;border-radius:22px;padding:32px 28px 24px;max-width:420px;width:100%;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.25);position:relative;overflow:hidden;animation:vdPopIn .35s cubic-bezier(.34,1.56,.64,1)}
  @keyframes vdPopIn{from{opacity:0;transform:scale(.85) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}
  .vd-success-card::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,#10b981,#34d399,#10b981);background-size:200% 100%;animation:vdShimmer 3s linear infinite}
  @keyframes vdShimmer{0%{background-position:0% 50%}100%{background-position:200% 50%}}
  .vd-success-icon{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#10b981,#34d399);display:inline-flex;align-items:center;justify-content:center;font-size:42px;color:#fff;margin:0 auto 18px;position:relative;box-shadow:0 10px 26px rgba(16,163,114,.35)}
  .vd-success-icon::before{content:"";position:absolute;inset:-6px;border-radius:50%;background:#10b98140;animation:vdPulse 1.8s ease-out infinite}
  @keyframes vdPulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.4);opacity:0}}
  .vd-success-title{font-family:'Fraunces',serif;font-weight:600;font-size:22px;color:#1a1a1a;margin:0 0 8px}
  .vd-success-msg{color:#666;font-size:14px;line-height:1.5;margin:0 0 8px}
  .vd-success-chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:14px 0 8px}
  .vd-success-chips span{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0;font-size:11px;font-weight:600;padding:4px 10px;border-radius:20px}
  .vd-success-actions{display:flex;gap:10px;margin-top:20px}
  .vd-success-actions .btn-secondary,.vd-success-actions .btn-primary{flex:1;padding:11px 16px;border-radius:50px;font-weight:600;font-size:14px;border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none}
  .vd-success-actions .btn-secondary{background:#fff;border:1.5px solid #ddd;color:#555}
  .vd-success-actions .btn-secondary:hover{border-color:var(--vd-red);color:var(--vd-red)}
  .vd-success-actions .btn-primary{background:linear-gradient(135deg,var(--vd-red),var(--vd-gold));color:#fff;box-shadow:0 6px 16px rgba(198,138,58,.25)}
  .vd-success-actions .btn-primary:hover{filter:brightness(.95);transform:translateY(-1px)}

/* ---- who-shortlisted-you.html (style block) ---- */
/* Agent-uploaded profiles — visually distinct, no Send Interest */
  .profile-card.agent-uploaded,
  .list-card.agent-uploaded{
    border:1.5px solid #2c7be5 !important;
    background:linear-gradient(180deg,#eef5ff 0%,#fff 55%) !important;
    box-shadow:0 6px 20px rgba(44,123,229,.18) !important;
  }
  .pc-agent-ribbon{
    position:absolute;top:12px;left:0;z-index:5;
    background:linear-gradient(135deg,#2c7be5,#1a5fc0);color:#fff;
    font-size:9.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
    padding:4px 9px 4px 8px;border-radius:0 14px 14px 0;
    display:inline-flex;align-items:center;gap:4px;box-shadow:0 2px 8px rgba(26,95,192,.4);
  }
  .agent-tag{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    background:#e8f1fd;color:#1a5fc0;border:1px dashed #93b8e8;
    font-weight:700;border-radius:9px;cursor:default;line-height:1.3;text-align:center;
  }
  .pc-actions .agent-tag{flex:1;padding:6px 8px;font-size:10px}
  .lc-actions .agent-tag{flex:1;padding:9px 12px;font-size:13px}
  .lc-badge.agent{background:#e8f1fd !important;color:#1a5fc0 !important}

/* ---- who-viewed-number.html (style block) ---- */
/* Agent-uploaded profiles — visually distinct, no Send Interest */
  .profile-card.agent-uploaded,
  .list-card.agent-uploaded{
    border:1.5px solid #2c7be5 !important;
    background:linear-gradient(180deg,#eef5ff 0%,#fff 55%) !important;
    box-shadow:0 6px 20px rgba(44,123,229,.18) !important;
  }
  .pc-agent-ribbon{
    position:absolute;top:12px;left:0;z-index:5;
    background:linear-gradient(135deg,#2c7be5,#1a5fc0);color:#fff;
    font-size:9.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
    padding:4px 9px 4px 8px;border-radius:0 14px 14px 0;
    display:inline-flex;align-items:center;gap:4px;box-shadow:0 2px 8px rgba(26,95,192,.4);
  }
  .agent-tag{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    background:#e8f1fd;color:#1a5fc0;border:1px dashed #93b8e8;
    font-weight:700;border-radius:9px;cursor:default;line-height:1.3;text-align:center;
  }
  .pc-actions .agent-tag{flex:1;padding:6px 8px;font-size:10px}
  .lc-actions .agent-tag{flex:1;padding:9px 12px;font-size:13px}
  .lc-badge.agent{background:#e8f1fd !important;color:#1a5fc0 !important}

/* ---- who-viewed-you.html (style block) ---- */
/* Agent-uploaded profiles — visually distinct, no Send Interest */
  .profile-card.agent-uploaded,
  .list-card.agent-uploaded{
    border:1.5px solid #2c7be5 !important;
    background:linear-gradient(180deg,#eef5ff 0%,#fff 55%) !important;
    box-shadow:0 6px 20px rgba(44,123,229,.18) !important;
  }
  .pc-agent-ribbon{
    position:absolute;top:12px;left:0;z-index:5;
    background:linear-gradient(135deg,#2c7be5,#1a5fc0);color:#fff;
    font-size:9.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
    padding:4px 9px 4px 8px;border-radius:0 14px 14px 0;
    display:inline-flex;align-items:center;gap:4px;box-shadow:0 2px 8px rgba(26,95,192,.4);
  }
  .agent-tag{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    background:#e8f1fd;color:#1a5fc0;border:1px dashed #93b8e8;
    font-weight:700;border-radius:9px;cursor:default;line-height:1.3;text-align:center;
  }
  .pc-actions .agent-tag{flex:1;padding:6px 8px;font-size:10px}
  .lc-actions .agent-tag{flex:1;padding:9px 12px;font-size:13px}
  .lc-badge.agent{background:#e8f1fd !important;color:#1a5fc0 !important}

/* ---- Phase 2: heading reset utilities (h1 promoted from div/section titles) ---- */
.h1-m0{margin:0}
.h1-mt0{margin-top:0}
.h1-td-subject{margin:0 0 6px;font-weight:400}
.h1-pay-title{font-size:clamp(26px,4vw,38px);margin-bottom:6px}

.tvc-lb-iframe-wrap iframe{border:0}

/* ---- icon+label alignment for buttons that gained an icon but had none in their
   original rule (Cancel/Reset/Mark-all-read parity fixes) ---- */
.ep-btn-cancel,.btn.btn-ghost[data-logout-cancel],.dp-action-btn,.dash-filter-actions .btn-ghost{display:inline-flex;align-items:center;gap:6px;justify-content:center}

/* ---- flash banners (#xxxFlash .alert.alert-success/.alert-danger) used by
   the member self-service AJAX save flows (alerts, privacy, call-preferences,
   who-can-view, change-password) — matches the toast's success/danger palette. */
.alert{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:var(--r-sm, 10px);font-size:14px;font-weight:600;margin-bottom:14px;border:1px solid transparent}
.alert i{font-size:16px;flex-shrink:0}
.alert-success{background:rgba(46,125,50,.08);border-color:rgba(46,125,50,.25);color:var(--success)}
.alert-danger{background:rgba(211,47,47,.08);border-color:rgba(211,47,47,.25);color:var(--danger)}
.alert-warning{background:rgba(249,168,37,.12);border-color:rgba(249,168,37,.3);color:#8a5a00}

/* ============================================================
   Parent (view-only) mode — a parent signs in on the member's
   dashboard; hide the action controls they are not allowed to use
   (enforcement is server-side via the ParentReadonly filter).
   ============================================================ */
.dsh-parent-banner{margin:0 0 20px}
.is-parent-view .pc-actions,
.is-parent-view .pc-action,
.is-parent-view .dash-nav-upgrade,
.is-parent-view .upgrade-teaser-card,
.is-parent-view [data-upgrade-modal],
.is-parent-view .nudge .btn,
.is-parent-view .dash-plan-renew-btn,
.is-parent-view .ep-edit-btn{display:none !important}

/* ---- agent/member_matches: target-style matches list ---- */
.amm-main{padding-bottom:28px}
.amm-member-card{background:#fff;border:1px solid #e8eef5;border-radius:14px;padding:14px;margin:0 0 14px;display:grid;grid-template-columns:44px 1fr;gap:10px 12px;align-items:center;box-shadow:0 4px 14px rgba(15,83,130,.06)}
.amm-member-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--ag-red,#1565C0),var(--ag-gold,#1CA9C4));color:#fff;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display,'Fraunces',serif);font-weight:700;font-size:16px;grid-row:span 2}
.amm-member-card h6{margin:0;color:var(--ag-ink,#1a1a1a);font-size:14px;font-weight:700;line-height:1.2}
.amm-member-card span{display:inline-flex;align-items:center;gap:5px;color:var(--ag-muted,#6b6b6b);font-size:11.5px;margin-top:3px}
.amm-member-card strong{grid-column:1 / -1;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#eef8fb;color:var(--ag-red,#1565C0);border:1px dashed #a5dce8;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}
.amm-page-head{background:linear-gradient(135deg,#fff7f0 0%,#f0fbff 100%);border:1px solid #f0dfc5;border-radius:18px;padding:20px 22px;margin-bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.amm-head-copy{position:relative;z-index:1;min-width:0}
.amm-back-link{display:inline-flex;align-items:center;gap:6px;color:var(--ag-gold-dark,#0E8AA3);font-family:'Kalam',cursive;font-size:17px;text-decoration:none;margin-bottom:5px}
.amm-back-link:hover{color:var(--brand-red,#D61F26)}
.amm-page-head h1{margin:0;display:flex;align-items:center;gap:14px;font-family:var(--font-display,'Fraunces',serif);font-weight:700;font-size:26px;color:var(--ink,#1a1a1a);line-height:1.2}
.amm-head-icon{width:54px;height:54px;border-radius:14px;background:linear-gradient(135deg,var(--brand-red,#D61F26),var(--brand-gold,#C68A3A));color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(214,31,38,.25);flex-shrink:0}
.amm-head-icon i{font-size:24px}
.amm-page-head p{margin:5px 0 0;color:var(--slate,#686868);font-size:13px;line-height:1.45}
.amm-edit-btn{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:#fff;border:1.5px solid #e2d0b5;border-radius:999px;color:var(--brand-red,#D61F26);font-size:13px;font-weight:700;text-decoration:none;padding:10px 16px;white-space:nowrap;transition:.18s}
.amm-edit-btn:hover{background:linear-gradient(135deg,var(--brand-red,#D61F26),var(--brand-gold,#C68A3A));border-color:transparent;color:#fff;transform:translateY(-1px)}
.amm-prefbar{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.amm-pref{background:#fff;border:1px solid #efe4d8;border-radius:999px;padding:7px 13px;font-size:12.5px;color:#666;display:inline-flex;align-items:center;gap:6px;box-shadow:0 2px 8px rgba(0,0,0,.025)}
.amm-pref i{color:var(--brand-gold,#C68A3A)}
.amm-pref b{color:var(--brand-red,#D61F26);font-weight:700}
.amm-results{display:flex;flex-direction:column;gap:16px}
.amm-match-card{border-radius:16px;box-shadow:0 6px 20px rgba(0,0,0,.055)}
.amm-match-card .lc-header{background:linear-gradient(90deg,#fff1fb 0%,#fff 100%);padding:12px 16px}
.amm-match-card .lc-name{color:#6f2dbd;font-size:16px}
.amm-match-card .lc-body{grid-template-columns:190px 1fr 190px;gap:20px;padding:18px}
.amm-match-card .lc-photo{border-radius:12px;box-shadow:0 6px 18px rgba(0,0,0,.08)}
.amm-match-card .lc-photo.no-photo{min-height:230px;background:linear-gradient(135deg,#eef8fb,#fff7f0)}
.amm-match-card .lc-ph-avatar{font-family:var(--font-display,'Fraunces',serif);font-size:48px;color:var(--ag-red,#1565C0);font-weight:700;opacity:.9}
.amm-match-card .lc-last-login{background:#faf7f2;border-radius:8px;padding:6px 9px;justify-content:center;margin-top:8px}
.amm-match-card .lc-bio{background:#f7f7f7;border-left-color:var(--brand-gold,#C68A3A);border-radius:0 10px 10px 0}
.amm-match-card .lc-actions{background:#fffaf5;padding:14px 16px}
.amm-match-card .agent-tag{min-width:180px;text-decoration:none}
.amm-empty{text-align:center;background:#fff;border:1px solid var(--line,#eee);border-radius:18px;padding:52px 20px;color:var(--slate,#686868);box-shadow:0 4px 14px rgba(0,0,0,.035)}
.amm-empty i{font-size:52px;color:var(--brand-gold,#C68A3A);display:block;margin-bottom:12px}
.amm-empty h5{font-family:var(--font-display,'Fraunces',serif);font-weight:700;color:var(--ink,#1a1a1a);margin:0 0 6px}
.amm-empty p{font-size:14px;margin:0 0 16px}
@media(max-width:991px){.amm-page-head{align-items:flex-start}.amm-page-head{padding:14px}.amm-edit-btn{width:100%}.amm-match-card .lc-body{grid-template-columns:150px 1fr;gap:16px}.amm-match-card .lc-badges{grid-column:1 / -1;display:flex;flex-direction:row;flex-wrap:wrap}.amm-match-card .lc-badge{white-space:normal}}
@media(max-width:575px){.amm-page-head h1{font-size:21px;gap:10px}.amm-head-icon{width:44px;height:44px}.amm-head-icon i{font-size:20px}.amm-prefbar{gap:6px}.amm-pref{font-size:11.5px;padding:6px 10px}.amm-match-card .lc-body{grid-template-columns:1fr}.amm-match-card .lc-photo-col{max-width:260px;width:100%;margin:0 auto}.amm-match-card .lc-data{grid-template-columns:1fr}.amm-match-card .lc-lbl::after{display:none}.amm-match-card .lc-actions{flex-direction:column}.amm-match-card .lc-btn,.amm-match-card .agent-tag{width:100%;min-width:0}}
/* ---- search-results.html — AJAX loading state ---- */
#resultsRegion{transition:opacity .15s ease}
#resultsRegion.is-loading{opacity:.5;pointer-events:none}
/* ---- member/messages — attractive/innovative redesign ---- */
.msg-page-head{display:flex;align-items:center;gap:14px;margin:0 0 18px}
.msg-page-icon{width:52px;height:52px;border-radius:16px;background:var(--grad-luxury);color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--sh-red);flex-shrink:0}
.msg-page-icon i{font-size:22px}
.msg-page-eyebrow{display:block;font-family:var(--font-script);color:var(--brand-gold-dark);font-size:15px;line-height:1.2;margin-bottom:2px}
.messages-title{margin:0}
.chat-container{border-radius:var(--r-xl);box-shadow:var(--sh-lg);position:relative;border:1px solid var(--line-soft)}
.chat-container::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--grad-luxury);border-radius:var(--r-xl) var(--r-xl) 0 0;z-index:2}
.chat-list-head{background:#fff}
.chat-list-head .input-icon .form-control{border-radius:999px;background:var(--bg-soft);border-color:transparent;font-size:13.5px;transition:background .18s ease,border-color .18s ease}
.chat-list-head .input-icon .form-control:focus{background:#fff;border-color:var(--brand-red);box-shadow:0 0 0 3px rgba(214,31,38,.1)}
.chat-list-item{gap:12px;transition:background .18s ease,transform .18s ease;position:relative}
.chat-list-item:hover{transform:translateX(2px);background:var(--bg-soft)}
.chat-list-item.active{background:linear-gradient(90deg,var(--green-light) 0%,#fff 100%)}
.chat-list-item.active::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:4px;border-radius:0 4px 4px 0;background:var(--grad-luxury)}
.cl-avatar-wrap{position:relative;flex-shrink:0;line-height:0}
.cl-avatar-wrap img,.cl-avatar-wrap .duh-avatar{width:46px;height:46px;border-radius:50%;object-fit:cover}
.cl-avatar-wrap .duh-avatar{display:inline-flex;align-items:center;justify-content:center;background:var(--grad-luxury);color:#fff;font-weight:700;font-family:var(--font-display);font-size:15px}
.chat-list-item.has-unread .cl-avatar-wrap img,
.chat-list-item.has-unread .cl-avatar-wrap .duh-avatar{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--brand-red)}
.chat-list-item.has-unread .cl-name{font-weight:700;color:var(--ink)}
.cl-meta{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex-shrink:0}
.cl-time{font-size:11px;color:var(--muted)}
.cl-badge{background:var(--grad-luxury);box-shadow:var(--sh-red)}
.chat-empty-state{padding:48px 20px;text-align:center;color:var(--slate);width:100%}
.chat-empty-icon{width:64px;height:64px;border-radius:50%;background:var(--bg-soft);display:inline-flex;align-items:center;justify-content:center;margin:0 auto 14px;font-size:26px;color:var(--brand-gold)}
.chat-empty-title{font-family:var(--font-display);font-weight:700;color:var(--ink);font-size:16px;margin-bottom:4px}
.chat-empty-sub{font-size:13px;max-width:230px;margin:0 auto;line-height:1.5}
.chat-empty-state-main{padding-top:100px}
.chat-main-head{background:linear-gradient(90deg,var(--green-light) 0%,var(--orange-light) 100%)}
.chat-main-head .duh-avatar{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--grad-luxury);color:#fff;font-weight:700;font-family:var(--font-display)}
.chat-main-head small{display:block;color:var(--slate);font-size:11px;font-weight:500}
.chat-view-profile{width:34px;height:34px;border-radius:50%;background:#fff;display:inline-flex;align-items:center;justify-content:center;color:var(--brand-red);box-shadow:var(--sh-sm);flex-shrink:0;transition:transform .15s ease,color .15s ease;text-decoration:none}
.chat-view-profile:hover{transform:scale(1.08);color:var(--brand-red-hover)}
.chat-messages{background:radial-gradient(circle at 8% 12%,rgba(198,138,58,.05) 0,transparent 30%),radial-gradient(circle at 92% 88%,rgba(214,31,38,.05) 0,transparent 34%)}
.chat-date-divider{display:flex;justify-content:center;margin:14px 0}
.chat-date-divider span{background:#fff;border:1px solid var(--line-soft);color:var(--muted);font-size:11px;font-weight:600;padding:4px 14px;border-radius:999px;box-shadow:var(--sh-sm)}
.chat-msg-row{display:flex;margin-bottom:8px;animation:msgIn .25s ease}
.chat-msg-row.me{justify-content:flex-end}
.chat-msg-row.them{justify-content:flex-start}
@keyframes msgIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.chat-msg{max-width:72%;padding:9px 13px 7px;border-radius:16px;font-size:14px;line-height:1.45;position:relative;box-shadow:var(--sh-sm)}
.chat-msg-row.me .chat-msg{background:var(--grad-luxury);color:#fff;border-bottom-right-radius:4px}
.chat-msg-row.them .chat-msg{background:#fff;border:1px solid var(--line-soft);color:var(--ink);border-bottom-left-radius:4px}
.msg-meta{display:flex;align-items:center;gap:4px;justify-content:flex-end;font-size:10.5px;margin-top:3px;opacity:.8;white-space:nowrap}
.chat-msg-row.me .msg-meta{color:rgba(255,255,255,.85)}
.chat-msg-row.them .msg-meta{color:var(--muted)}
.msg-meta i{font-size:13px}
.msg-meta i.msg-read{color:#aee8ff}
@media(max-width:767px){
  .msg-page-icon{width:44px;height:44px}
  .msg-page-icon i{font-size:18px}
  .chat-msg{max-width:82%}
  .chat-empty-state-main{padding-top:60px}
}
/* ---- member/messages — further polish: grouping, empty-state badges, scroll-FAB, entrance ---- */
.chat-msg-row.stacked{margin-top:-4px}
.chat-msg-row.stacked .chat-msg{border-radius:16px}
.chat-msg-row.me.stacked .chat-msg{border-top-right-radius:6px}
.chat-msg-row.them.stacked .chat-msg{border-top-left-radius:6px}
.chat-empty-icon-layered{position:relative;overflow:visible}
.chat-empty-icon-ring{position:absolute;inset:-10px;border-radius:50%;border:1.5px dashed rgba(198,138,58,.35);animation:chatRingSpin 18s linear infinite}
.chat-empty-icon-ring-2{inset:-20px;border-color:rgba(214,31,38,.2);animation-duration:26s;animation-direction:reverse}
@keyframes chatRingSpin{to{transform:rotate(360deg)}}
.chat-empty-icon-lg{width:84px;height:84px;font-size:32px}
.chat-scroll-bottom{position:absolute;right:18px;bottom:78px;width:38px;height:38px;border-radius:50%;border:none;background:#fff;color:var(--brand-red);box-shadow:var(--sh-md);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transform:translateY(6px) scale(.9);transition:opacity .2s ease,transform .2s ease;z-index:3}
.chat-scroll-bottom.is-visible{opacity:1;pointer-events:auto;transform:none}
.chat-scroll-bottom:hover{background:var(--grad-luxury);color:#fff}
.chat-main{position:relative}
.chat-compose button[type="submit"].is-armed{box-shadow:0 0 0 5px rgba(214,31,38,.15),var(--sh-red)}
.chat-list-item{animation:clItemIn .35s ease backwards}
.chat-list-item:nth-child(1){animation-delay:.02s}
.chat-list-item:nth-child(2){animation-delay:.06s}
.chat-list-item:nth-child(3){animation-delay:.1s}
.chat-list-item:nth-child(4){animation-delay:.14s}
.chat-list-item:nth-child(5){animation-delay:.18s}
.chat-list-item:nth-child(n+6){animation-delay:.2s}
@keyframes clItemIn{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
.chat-msg-row:hover .msg-meta{opacity:1}
@media (prefers-reduced-motion: reduce){
  .chat-list-item,.chat-msg-row,.chat-empty-icon-ring{animation:none}
}
/* ---- member/messages — list & message panes scroll INSIDE their own box,
   not the whole page (chat-container gets a real bounded height; children
   use flex/grid stretch + min-height:0 so overflow-y:auto actually kicks in) ---- */
@media (min-width: 768px) {
  .chat-container { height: calc(100vh - 260px); min-height: 460px; max-height: 720px; }
}
.chat-list { height: 100%; min-height: 0; overflow-y: auto; display: block; }
.chat-main { height: 100%; min-height: 0; }
.chat-main-head { flex-shrink: 0; }
.chat-messages { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.chat-compose { flex-shrink: 0; }
@media (max-width: 767px) {
  .chat-container { grid-template-rows: 260px 1fr; height: calc(100vh - 200px); min-height: 440px; }
  .chat-list { max-height: 260px; }
}
/* ---- member/ticket_detail — match the redesigned support-chat look ---- */
.ticket-detail-shell{position:relative}
.ticket-detail-shell::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--grad-luxury);z-index:1}
.td-date-divider{display:flex;justify-content:center;margin:6px 0 18px}
.td-date-divider span{background:#F3F4F6;border:1px solid var(--line);color:var(--slate);font-size:11px;font-weight:700;letter-spacing:.02em;padding:5px 16px;border-radius:999px}
.td-msg{animation:tdMsgIn .3s ease backwards}
@keyframes tdMsgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.td-bubble{box-shadow:0 1px 3px rgba(0,0,0,.04);transition:box-shadow .15s ease}
.td-msg:hover .td-bubble{box-shadow:0 4px 14px rgba(0,0,0,.08)}
.td-empty{text-align:center;padding:52px 16px;color:var(--slate)}
.td-empty-icon{width:60px;height:60px;border-radius:50%;background:#f7f7f7;display:flex;align-items:center;justify-content:center;margin:0 auto 12px;font-size:24px;color:var(--brand-gold)}
.td-empty-title{font-family:var(--font-display);font-weight:700;color:var(--ink);font-size:15px;margin-bottom:4px}
.td-empty-sub{font-size:12.5px;max-width:260px;margin:0 auto}
@media(prefers-reduced-motion: reduce){.td-msg{animation:none}}

/* Agent-uploaded profile cards — a card can be both premium (diagonal corner
   ribbon) and agent-uploaded (flag ribbon); drop the flag below the corner
   ribbon so the two never overlap. */
.premium .pc-agent-ribbon,
.premium-elite .pc-agent-ribbon { top: 40px; }
.pv-agent-badge {
  display: inline-flex; align-items: center; gap: 6px;
  background: #e8f1fd; color: #1a5fc0; border: 1px dashed #93b8e8;
  font-weight: 700; font-size: 13px; border-radius: 22px; padding: 9px 18px;
}

/* Basic Details — masked mobile number + reveal button (member/profile_view) */
.pv-row-mobile { grid-template-columns: 44px 1fr auto; }
.pv-mobile-masked { letter-spacing: 0.08em; color: #333333; }
.pv-mobile-masked.revealed { letter-spacing: normal; font-variant-numeric: tabular-nums; color: var(--green, #D61F26); font-weight: 700; }
.pv-view-mobile-btn {
  grid-column: 3; grid-row: 1 / 3; align-self: center; justify-self: end;
  display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
  padding: 7px 14px; border-radius: 20px; font-size: 12.5px; font-weight: 600;
  background: #fff; color: var(--green, #D61F26); border: 1.5px solid var(--green, #D61F26);
  cursor: pointer; transition: all 0.2s ease; font-family: inherit;
}
.pv-view-mobile-btn:hover { background: var(--green, #D61F26); color: #fff; }
/* Agent mobile-number request: the status pill and the ask/re-ask button share
   the row's third grid column via this wrapper, so they sit beside each other
   instead of colliding in one cell. Pill metrics mirror .pv-view-mobile-btn so
   the two read as one control group. */
.pv-mobile-actions {
  grid-column: 3;
  grid-row: 1 / 3;
  align-self: center;
  justify-self: end;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}
.pv-mobile-state {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  padding: 7px 14px;
  border-radius: 20px;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.2;
}
.pv-mobile-state.pending  { background: #fff5e6; color: #b26a00; border: 1.5px solid #f2dcbb; }
.pv-mobile-state.rejected { background: #fdecec; color: #c0392b; border: 1.5px solid #f3cfcf; }
/* Quota hint under the agent mobile-number-request row + keep the upgrade link
   (an <a> reusing .pv-view-mobile-btn) from rendering underlined. */
.pv-mobile-quota-hint { grid-column: 1 / -1; margin-top: 6px; display: flex; align-items: center; gap: 6px; font-size: 12px; color: #6b7280; }
a.pv-view-mobile-btn, a.pv-view-mobile-btn:hover { text-decoration: none; }
@media (max-width: 640px) {
  .pv-mobile-actions { grid-column: 1 / -1; grid-row: auto; justify-self: start; justify-content: flex-start; margin-top: 6px; }
  .pv-mobile-state { white-space: normal; }
}
.pv-view-mobile-btn:disabled { opacity: 0.6; cursor: default; }

/* member/my_orders — current-plan counts/status/expiry card */
.mo-plan-card {
  background: #fff; border: 1px solid #eee; border-radius: 16px;
  padding: 18px 20px; margin: 0 0 16px;
}
.mo-plan-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.mo-plan-name {
  font-family: 'Fraunces', serif; font-weight: 700; font-size: 17px; color: #1a1a1a;
  display: inline-flex; align-items: center; gap: 8px;
}
.mo-plan-name i { color: var(--gold, #C68A3A); }
.mo-plan-status {
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
  padding: 4px 12px; border-radius: 20px;
}
.mo-plan-status.s-active { background: #dcfce7; color: #15803d; }
.mo-plan-status.s-expired { background: #fee2e2; color: #b91c1c; }
.mo-plan-expiry { font-size: 12.5px; color: #686868; margin-top: 6px; display: flex; align-items: center; gap: 6px; }
.mo-plan-section-title {
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
  color: #94a3b8; margin: 18px 0 10px;
}
.mo-plan-counts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
@media (max-width: 640px) { .mo-plan-counts { grid-template-columns: 1fr; } }
.mo-plan-count-lbl { font-size: 12.5px; font-weight: 600; color: #444; display: flex; align-items: center; gap: 6px; margin-bottom: 6px; }
.mo-plan-count-bar { height: 6px; border-radius: 4px; background: #f1eee8; overflow: hidden; }
.mo-plan-count-fill { height: 100%; background: linear-gradient(135deg, #D61F26, #C68A3A); border-radius: 4px; }
.mo-plan-count-val { font-size: 12px; color: #686868; margin-top: 5px; }
.mo-plan-count-val strong { color: #1a1a1a; }
.mo-plan-status-list { list-style: none; margin: 0; padding: 0; border: 1px solid #f1eee8; border-radius: 10px; overflow: hidden; }
.mo-plan-status-row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 14px; border-bottom: 1px solid #f1eee8;
}
.mo-plan-status-row:last-child { border-bottom: none; }
.mo-plan-status-lbl { font-size: 13px; font-weight: 600; color: #333; display: inline-flex; align-items: center; gap: 8px; }
.mo-plan-status-lbl i { color: var(--gold, #C68A3A); font-size: 14px; }
.mo-plan-status-pill { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 700; padding: 4px 11px; border-radius: 20px; }
.mo-plan-status-pill.yes { background: #dcfce7; color: #15803d; }
.mo-plan-status-pill.no { background: #f1eee8; color: #94a3b8; }
.mo-plan-empty { display: flex; align-items: center; gap: 12px; color: #686868; font-size: 13.5px; }
.mo-plan-empty i { font-size: 26px; color: var(--gold, #C68A3A); }
.mo-plan-empty a { color: var(--green, #D61F26); font-weight: 600; }

/* Per-order "what this purchase included" — mo-table's Package Includes cell */
.mo-pkg-detail { display: flex; flex-direction: column; gap: 6px; min-width: 210px; }
.mo-pkg-expiry { display: flex; align-items: center; gap: 6px; font-size: 11px; color: #94a3b8; }
.mo-pkg-expiry i { font-size: 11px; }
.mo-pkg-counts { display: flex; gap: 12px; flex-wrap: wrap; }
.mo-pkg-count { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; color: #555; font-weight: 500; }
.mo-pkg-count i { font-size: 12px; color: #C68A3A; }
.mo-pkg-feats { display: flex; gap: 6px; }
.mo-pkg-feat {
  width: 22px; height: 22px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px; cursor: default;
}
.mo-pkg-feat.yes { background: #dcfce7; color: #15803d; }
.mo-pkg-feat.no { background: #f1eee8; color: #c3c3c3; }

/* member/my_orders — "Your Plans" list: every plan the member holds/held,
   active or expired, each with its own totals (a member can have more than
   one active plan at once — see MemberPlanService). */
.mo-plans-title { margin-top: 0; }
.mo-plans-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; margin: 0 0 16px; }
.mo-plans-item {
  background: #fff; border: 1px solid #eee; border-radius: 14px; padding: 14px 16px;
  display: flex; flex-direction: column; gap: 10px;
}
.mo-plans-item.is-expired { opacity: 0.68; }
.mo-plans-item-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.mo-plans-item-name { font-family: 'Fraunces', serif; font-weight: 700; font-size: 14.5px; color: #1a1a1a; display: inline-flex; align-items: center; gap: 7px; }
.mo-plans-item-name i { color: var(--gold, #C68A3A); }
.mo-plans-item-meta { display: flex; flex-direction: column; gap: 3px; font-size: 11.5px; color: #94a3b8; }
.mo-plans-item-meta span { display: flex; align-items: center; gap: 6px; }

/* member/pricing — Essential card's "already active" state */
.btn-choose-disabled {
  background: #dcfce7; color: #15803d; border: 1.5px solid #bbf7d0; padding: 11px; border-radius: 10px;
  font-weight: 600; width: 100%; text-align: center; font-size: 14px; display: inline-block; cursor: default;
}
button.btn-choose { cursor: pointer; }

/* member/profile_view — horoscope section's plan-gated lock state. Reuses
   .pv-photo-locked's look but that class is position:absolute (built to
   overlay a fixed-size photo); here it needs to sit in normal document flow
   inside the horoscope section instead. */
.pv-horo-locked {
  position: static; inset: auto; background: #1a1230; border-radius: 16px;
  color: #fff; padding: 40px 18px;
}

/* Agent sidebar avatar: show uploaded profile photo filling the circle */
.ag-avatar img,.agent-user-card .ag-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}

/* Invoice header — shared by member/agent/vendor invoices (see
   Shared/Views/partials/invoice-body.php). The company address is a single
   long line, and with the header's flex-wrap that pushed "Tax Invoice" onto
   its own row; letting the brand block shrink lets the address wrap instead.
   The logo keeps its aspect ratio rather than being squared off. */
.inv-brand{flex:1 1 320px;min-width:0}
.inv-brand .inv-co{overflow-wrap:anywhere}
.inv-title{flex:0 0 auto;margin-left:auto}
.inv-brand img.inv-logo-img{width:auto;height:46px;border-radius:8px;flex:none}

/* Profile-view: "set partner preferences" prompt (shown when the viewer has no preferences) */
.pv-match-prompt .pv-match-pct { font-size: 24px; min-width: auto; }
.pv-match-prompt-btn { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; padding: 8px 14px; border-radius: 10px; background: #fff; color: #B45309; font-size: 12px; font-weight: 600; text-decoration: none; }
.pv-match-prompt-btn:hover { background: #fff7ed; }

/* Dashboard current-plan card — own class so the pricing-page .plan-card (white bg) can no longer override its gold gradient / white text. */
.dash-plan-card{background:linear-gradient(135deg,var(--gold),var(--gold-dark));color:#fff;padding:18px;border-radius:var(--r-md)}
.dash-plan-card h5{color:#fff;font-size:16px;margin-bottom:4px}
.dash-plan-card .dash-plan-expiry{color:#fff;opacity:.9}
.dash-plan-card .dash-plan-list li{color:#fff}

/* Profile Boost add-on — dashboard card + result badges */
.dash-boost-card{margin-top:14px;padding:16px 18px;border-radius:var(--r-md);background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff}
.dash-boost-card h5{color:#fff;font-size:15px;margin-bottom:4px}
.dash-boost-card .dash-boost-sub{font-size:13px;opacity:.92;margin-bottom:10px}
.boost-badge,.lc-badge.boosted{display:inline-flex;align-items:center;gap:5px;background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff;font-weight:600;border-radius:8px}
.boost-badge{position:absolute;top:8px;left:8px;font-size:10px;padding:3px 8px;z-index:2}
.lc-badge.boosted{font-size:11px;padding:3px 9px}

/* Profile Boost — pricing-page promo */
.boost-promo-section{padding-top:0}
.boost-promo{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:22px 24px;border-radius:16px;background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff}
.boost-promo-ic{font-size:34px;line-height:1;flex:0 0 auto}
.boost-promo-body{flex:1 1 260px}
.boost-promo-body h3{color:#fff;margin:0 0 4px;font-size:20px}
.boost-promo-price{background:rgba(255,255,255,.2);padding:2px 10px;border-radius:20px;font-size:15px;margin-left:6px}
.boost-promo-body p{margin:0;opacity:.92;font-size:14px}
.boost-promo-cta{flex:0 0 auto}
.boost-active-pill{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.22);color:#fff;font-weight:600;padding:8px 16px;border-radius:10px}

/* My Orders — add-on tag (Profile Boost) */
.mo-addon-tag{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;margin-left:6px;vertical-align:middle;letter-spacing:.03em}

/* Profile view — "Boosted" highlight */
.pv-boosted{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff;font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;margin-left:8px;vertical-align:middle;letter-spacing:.03em}
.pv-boost-ribbon{position:absolute;top:10px;left:10px;z-index:3;display:inline-flex;align-items:center;gap:5px;background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff;font-size:11px;font-weight:700;padding:5px 11px;border-radius:20px;box-shadow:0 4px 12px rgba(79,70,229,.4)}

/* ID-proof moderation badges (edit-profile ID Proofs section) */
.idp-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:20px;font-size:12.5px;font-weight:700;line-height:1.2}
.idp-badge i{font-size:13px}
.idp-badge-green{background:#e7f7ec;color:#16a34a}
.idp-badge-blue{background:#e8f1fe;color:#2563eb}
.idp-badge-red{background:#fdeaea;color:#dc2626}
.idp-badge-grey{background:#eef0f4;color:#7a8194}

/* ===== Verify Profile — attractive verification cards + OTP dialogs ===== */
/* Status cards: soft tinted body, coloured left accent, lift on hover. */
.vp-card-green,.vp-card-orange,.vp-card-blue,.vp-card-red{
  position:relative;border-radius:16px;padding:17px 19px 17px 22px;margin-bottom:14px;
  border:1px solid transparent;overflow:hidden;
  transition:transform .2s ease,box-shadow .2s ease;
}
.vp-card-green:hover,.vp-card-orange:hover,.vp-card-blue:hover,.vp-card-red:hover{
  transform:translateY(-2px);box-shadow:0 12px 26px rgba(20,30,60,.10);
}
.vp-card-green::before,.vp-card-orange::before,.vp-card-blue::before,.vp-card-red::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:16px 0 0 16px;
}
.vp-card-green{background:linear-gradient(120deg,#eefaf2,#e4f6ec);border-color:rgba(31,157,87,.28)}
.vp-card-green::before{background:#1f9d57}
.vp-card-orange{background:linear-gradient(120deg,#fff6ec,#fdefdd);border-color:rgba(214,122,26,.30);border-style:solid}
.vp-card-orange::before{background:var(--orange,#e07a1a)}
.vp-card-blue{background:linear-gradient(120deg,#eef4fd,#e4eefb);border-color:rgba(21,101,192,.26)}
.vp-card-blue::before{background:#1565C0}
.vp-card-red{background:linear-gradient(120deg,#fdeeee,#fbe2e2);border-color:rgba(214,31,38,.26)}
.vp-card-red::before{background:#D61F26}

/* Icon becomes a soft circular chip. */
.vp-ic-green,.vp-ic-orange,.vp-ic-blue,.vp-ic-red{
  width:46px;height:46px;min-width:46px;border-radius:50%;
  display:inline-grid;place-items:center;font-size:22px;
}
.vp-ic-green{background:rgba(31,157,87,.15);color:#1a7f4b}
.vp-ic-orange{background:rgba(214,122,26,.16);color:var(--orange-dark,#b45f0e)}
.vp-ic-blue{background:rgba(21,101,192,.14);color:#0D47A1}
.vp-ic-red{background:rgba(214,31,38,.13);color:#B71C22}
.vp-card-green h6,.vp-card-orange h6,.vp-card-blue h6,.vp-card-red h6{
  margin:0 0 1px;font-weight:700;font-size:15px;color:var(--ink,#241a17)
}

/* Buttons + badge polish */
.vp-btn-green,.vp-btn-red{border-radius:10px;font-weight:700;padding:7px 15px;box-shadow:0 4px 12px rgba(0,0,0,.10)}
.vp-btn-green{background:#1f9d57}
.vp-btn-red{background:#D61F26}
.vp-badge-blue{background:linear-gradient(135deg,#1e6fd0,#1257ab);box-shadow:0 4px 12px rgba(21,101,192,.28)}

/* ---- OTP dialogs (mobile + email verify) — properly styled on the frontend ---- */
#mvConfirm,#evConfirm{
  position:fixed;inset:0;background:rgba(15,12,10,.55);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  display:none;align-items:center;justify-content:center;z-index:4000;padding:20px;
}
#mvConfirm.open,#evConfirm.open{display:flex}
#mvConfirm .confirm-card,#evConfirm .confirm-card{
  background:#fff;border-radius:22px;max-width:410px;width:100%;
  padding:30px 28px 24px;text-align:center;
  box-shadow:0 26px 64px rgba(0,0,0,.30);animation:vpCfmIn .22s ease;
}
@keyframes vpCfmIn{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
#mvConfirm .confirm-ic,#evConfirm .confirm-ic{
  width:62px;height:62px;border-radius:50%;display:grid;place-items:center;
  margin:0 auto 15px;font-size:27px;color:#fff;
  background:linear-gradient(135deg,#e0333b,#b81820);box-shadow:0 10px 24px rgba(214,31,38,.32);
}
#mvConfirm .confirm-card h3,#evConfirm .confirm-card h3{
  margin:0 0 7px;font-size:20px;color:var(--ink,#241a17);font-family:var(--font-display,serif)
}
#mvConfirm .confirm-card p,#evConfirm .confirm-card p{
  margin:0 0 18px;font-size:13.5px;color:var(--slate,#6a7180);line-height:1.55
}
#mvConfirm .pm-rej-form,#evConfirm .pm-rej-form{text-align:left;margin:0 0 18px}
#mvConfirm .pm-rej-lbl,#evConfirm .pm-rej-lbl{
  display:block;font-size:12.5px;font-weight:700;color:var(--ink,#241a17);margin:0 0 7px
}
#mvConfirm .pm-rej-lbl .req,#evConfirm .pm-rej-lbl .req{color:#D61F26}
#mvConfirm #mvCode,#evConfirm #evCode{
  width:100%;border:1.5px solid var(--line,#e2e2e6);border-radius:12px;background:#fbfbfd;
  padding:13px 14px;font-size:24px;font-weight:700;letter-spacing:.42em;text-align:center;
  color:var(--ink,#241a17);transition:border-color .18s ease,box-shadow .18s ease;
}
#mvConfirm #mvCode:focus,#evConfirm #evCode:focus{
  outline:0;border-color:#e0333b;box-shadow:0 0 0 3px rgba(214,31,38,.14);background:#fff
}
#mvConfirm .confirm-actions,#evConfirm .confirm-actions{display:flex;gap:11px;margin-top:4px}
#mvConfirm .confirm-actions .btn,#evConfirm .confirm-actions .btn{flex:1;border-radius:11px;font-weight:700;padding:11px 14px}
#mvConfirm .btn-ok,#evConfirm .btn-ok{
  background:linear-gradient(135deg,#e0333b,#b81820);color:#fff;border:0;
  box-shadow:0 8px 20px rgba(214,31,38,.28)
}
#mvConfirm .btn-ok:hover,#evConfirm .btn-ok:hover{filter:brightness(1.05)}

/* Partner-preferences "What We Are Looking For" — pending updated text under review */
.ep-pending-sub-label{margin-top:9px;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;font-weight:700;color:#9A5B12;opacity:.85}
.ep-pending-submitted{margin-top:4px;background:#fff;border:1px solid rgba(224,145,58,.30);border-radius:8px;padding:9px 11px;font-size:12.5px;line-height:1.55;color:#4a4033}

/* Parent (view-only) session: hide the member-owned header actions.
   A parent has read-only oversight of the profile, not of the account's
   own notifications or support tickets. Body carries .is-parent-view on
   every parent-session page (see layouts/main.php). */
.is-parent-view .header-action-wrap:has(.notif),
.is-parent-view .header-action-wrap:has(.ticket-btn){display:none !important}
/* Fallback for browsers without :has() — hide the button and its
   dropdown panel directly (leaves the empty wrapper, harmless). */
.is-parent-view .icon-action-btn.notif,
.is-parent-view .icon-action-btn.ticket-btn,
.is-parent-view [data-dropdown-panel="notifications"],
.is-parent-view [data-dropdown-panel="tickets"]{display:none !important}

/* --- Hero banner: show full-design uploaded banners without cropping ---
   The fixed 560/720/740px slide height cover-cropped wide banners (a 1774x887
   / 2:1 banner lost its top & bottom). Drive height from a 2:1 aspect ratio so
   a full-width uploaded banner displays edge-to-edge and complete. */
.hero-carousel .carousel-inner,
.hero-carousel .carousel-item,
.hero-carousel .carousel-item > .hero-slide{height:auto !important;aspect-ratio:2 / 1;min-height:0 !important}
