/*
 Theme Name:   Jantra Jyotisha Theme
 Theme URI:    http://www.jantrajyotisha.com/
 Description:  A Jantra Jyotisha theme 
 Author:       Jantra Jyotisha
 Author URI:   http://www.jantrajyotisha.com/
 Template:     generatepress
 Version:      1.0.4
*/

/* Akplingaraj — Odia Akruti font (bundled locally for dev + production parity) */
@font-face {
    font-family: 'Akplingaraj';
    src: url('fonts/AOPLNG-N.TTF') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Akplingaraj';
    src: url('fonts/AOPLNG-B.TTF') format('truetype');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

/* Akruti fonts (Self-hosted for Akruti ASCII text display) */
@font-face {
    font-family: 'akplingaraj';
    src: url('fonts/150926063851AKPLingaraj.woff') format('woff'),
         url('fonts/AOPLNG-N.TTF') format('truetype'),
         url('/wp-content/uploads/useanyfont/150926063851AKPLingaraj.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'AKPLingaraj';
    src: url('fonts/150926063851AKPLingaraj.woff') format('woff'),
         url('fonts/AOPLNG-N.TTF') format('truetype'),
         url('/wp-content/uploads/useanyfont/150926063851AKPLingaraj.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* Map Ori Bhuabana & Bhubana declarations to akplingaraj for consistent crisp typography */
@font-face {
    font-family: 'Ori Bhuabana';
    src: url('fonts/150926063851AKPLingaraj.woff') format('woff'),
         url('fonts/AOPLNG-N.TTF') format('truetype'),
         url('fonts/Ori-Bhuabana.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Ori-Bhuabana';
    src: url('fonts/150926063851AKPLingaraj.woff') format('woff'),
         url('fonts/AOPLNG-N.TTF') format('truetype'),
         url('fonts/Ori-Bhuabana.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Bhubana';
    src: url('fonts/150926063851AKPLingaraj.woff') format('woff'),
         url('fonts/AOPLNG-N.TTF') format('truetype'),
         url('fonts/Bhubana.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'akpsarala';
    src: url('fonts/150926062919AKPSarala.woff') format('woff'),
         url('/wp-content/uploads/useanyfont/150926062919AKPSarala.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'akpdisplay';
    src: url('fonts/150925054648AKPDisplay.woff') format('woff'),
         url('/wp-content/uploads/useanyfont/150925054648AKPDisplay.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'akpashok';
    src: url('fonts/150926064326AKPAshok.woff') format('woff'),
         url('/wp-content/uploads/useanyfont/150926064326AKPAshok.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* Bind Akruti utility classes, daily horoscope, and Ori Bhuabana elements to akplingaraj */
.jj-akruti-text,
.jj-akruti-text-red,
.akruti,
.Ori-Bhuabana,
.akplingaraj,
[style*="akplingaraj"],
[style*="AKPLingaraj"],
[style*="Ori Bhuabana"],
[style*="Ori-Bhuabana"],
[style*="Bhubana"] {
    font-family: 'akplingaraj', 'AKPLingaraj', 'Ori Bhuabana', sans-serif !important;
}

.jj-akruti-text-red {
    color: #c9302c !important;
}

.akpsarala, [style*="akpsarala"] { font-family: 'akpsarala', 'akplingaraj', sans-serif !important; }
.akpdisplay, [style*="akpdisplay"] { font-family: 'akpdisplay', 'akplingaraj', sans-serif !important; }
.akpashok, [style*="akpashok"] { font-family: 'akpashok', 'akplingaraj', sans-serif !important; }

@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400..900&family=DM+Sans:ital,wght@0,400..700;1,400..700&display=swap');

.rashi-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    /* Desktop = 12 in 1 row */
    gap: 15px;
    text-align: center;
}

.rashi {
    text-decoration: none;
    color: inherit;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.rashi img {
    width: 50px;
    height: auto;
    margin: 0 auto;
    display: block;
}

.rashi p {
    margin-top: 5px;
    font-size: 14px;
    font-weight: bold;
    /* ✅ makes Rashi names bold */
}

/* Hover Effect */
.rashi:hover {
    transform: scale(1.1);
    box-shadow: 0 4px 10px rgba(110, 74, 57, 0.05);
    border-radius: 8px;
}

/* Mobile view */
@media (max-width: 768px) {
    .rashi-grid {
        grid-template-columns: repeat(6, 1fr);
        /* 6 per row → 2 rows */
    }

    .rashi img {
        width: 40px;
    }

    .rashi p {
        font-size: 12px;
        font-weight: bold;
        /* stays bold on mobile too */
    }
}

.rasifala-title {
    font-family: "Akplingaraj", Odia, sans-serif;
    font-size: 20pt;
    display: flex;
    font-weight: bold;
    gap: 8px;
    margin: 0;
}

.astro-date {
    font-family: 'DM Sans', sans-serif;
    font-size: 20px;
    /* same as title */
    font-weight: bold;
    /* bold */

}

.astro-date::before {
    content: "(";
    margin-right: 2px;
}

.astro-date::after {
    content: ")";
    margin-left: 2px;
}

.rashi-buttons {
    display: flex;
    gap: 10px;
    margin: 15px 0;
}

.rashi-buttons a {
    flex: 1;
    text-align: center;
    background: var(--jj-amber);
    color: var(--jj-text-main);
    font-size: 16px;
    font-weight: 600;
    padding: 10px;
    border-radius: 8px;
    text-decoration: none;
    box-shadow: 0 2px 4px rgba(110, 74, 57, 0.15);
    transition: 0.2s ease;
}

.rashi-buttons a:hover {
    background: var(--jj-text-main);
    color: var(--jj-amber);
    transform: translateY(-2px);
}


/* ================================
   BASE CONTAINER
================================ */
.month-container {
    position: relative;
    margin-bottom: 24px;
    text-align: center;
}

/* ================================
   TABLE WRAPPER
================================ */
.calender-table {
    position: relative;
    overflow: hidden;
    max-height: 140px;
    /* header + 2 rows */
    transition: max-height 0.4s ease;
}

.calender-table table {
    width: 100%;
    border-collapse: collapse;
}

.calender-table td,
.calender-table th {
    padding: 8px 10px;
    border-bottom: 1px solid var(--jj-border);
    color: var(--jj-text-muted);
}

.calender-table th {
    color: var(--jj-text-main);
    background: rgba(110, 74, 57, 0.05);
}

/* ================================
   BLUR SECOND ROW (PREVIEW STATE)
================================ */
.calender-table tbody tr:nth-child(2) {
    filter: blur(1.5px);
    opacity: 0.55;
}

/* Smooth transition for rows */
.calender-table tbody tr {
    transition: filter 0.3s ease, opacity 0.3s ease;
}

/* ================================
   FADE GRADIENT
================================ */
.calender-table::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 50px;
    background: linear-gradient(to bottom,
            rgba(252, 248, 242, 0),
            rgba(252, 248, 242, 1));
    pointer-events: none;
}

/* ================================
   EXPANDED STATE
================================ */
.month-container:has(.show-more-check:checked) .calender-table {
    max-height: 3000px;
}

.month-container:has(.show-more-check:checked) .calender-table tbody tr {
    filter: none;
    opacity: 1;
}

.month-container:has(.show-more-check:checked) .calender-table::after {
    display: none;
}

/* ================================
   TOGGLE BUTTON
================================ */
.show-more-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 12px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    color: var(--jj-amber);
    user-select: none;
}

/* Hide checkbox completely (safe now) */
.show-more-check {
    display: none;
}

/* Toggle text */
.toggle-text-less {
    display: none;
}

.month-container:has(.show-more-check:checked) .toggle-text-more {
    display: none;
}

.month-container:has(.show-more-check:checked) .toggle-text-less {
    display: inline;
}

/* Arrow animation */
.arrow-icon {
    transition: transform 0.3s ease;
}

.month-container:has(.show-more-check:checked) .arrow-icon {
    transform: rotate(180deg);
}

/* Modern Lightweight Menu Styles */
.odia-cal-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-bottom: 25px;
    padding: 10px;
    background: rgba(110, 74, 57, 0.05);
    border: 1px solid var(--jj-border);
    border-radius: 8px;
    position: sticky;
    /* Optional: Makes menu stick to top while scrolling */
    top: 0;
    z-index: 999;
    backdrop-filter: blur(12px);
}

.odia-cal-nav a {
    text-decoration: none;
    color: var(--jj-text-muted);
    font-family: 'DM Sans', sans-serif;
    font-size: 14px;
    font-weight: 600;
    padding: 8px 16px;
    border: 1px solid var(--jj-border);
    border-radius: 50px;
    /* Pill shape */
    background: rgba(110, 74, 57, 0.02);
    transition: all 0.3s ease;
}

.odia-cal-nav a:hover {
    background-color: var(--jj-accent);
    color: var(--jj-text-main);
    border-color: var(--jj-accent);
    transform: translateY(-2px);
    box-shadow: 0 4px 6px rgba(110, 74, 57, 0.05);
}

/* Mobile Adjustment: Smaller text/padding on small screens */
@media (max-width: 600px) {
    .odia-cal-nav {
        gap: 8px;
    }

    .odia-cal-nav a {
        padding: 6px 12px;
        font-size: 13px;
    }
}

/* ==========================================================================
   JJ HOMEPAGE DESIGN SYSTEM — Native Gutenberg (No GB Pro)
   ========================================================================== */

/* ── CSS Variables ───────────────────────────────────── */
:root {
    --jj-bg-primary: #FCF8F2;
    --jj-bg-secondary: #F3EBE1;
    --jj-bg-tertiary: #EAE0D5;
    --jj-accent: #C86A4C;
    --jj-amber: #D4AF37;
    --jj-text-main: #2E3A59;
    --jj-text-muted: #6E4A39;
    --jj-border: rgba(110, 74, 57, 0.15);
    --jj-radius: 16px;
    --jj-radius-sm: 10px;
    --jj-gap: 16px;
    --jj-card: #F6E8D9;
    --jj-max-w: 1200px;
    --jj-pad-x: 24px;
    --jj-pad-y: 24px;
    --jj-gold: #c49a28;
    --jj-gold-dark: #b8891f;
    --jj-gold-light: #e8c46a;
    --jj-bg-cream: #FFF4ED;
    --jj-navy: #1a1a2e;
    --jj-accent-dark: #b35639;
}

@media (max-width: 768px) {
    :root {
        --jj-pad-x: 12px;
        --jj-pad-y: 12px;
    }

    .jj-section-title {
        font-size: 22px !important;
        margin-bottom: 8px !important;
    }

    .jj-section-sub {
        font-size: 14px !important;
        line-height: 1.5 !important;
    }

    .jj-grid-3,
    .jj-grid-4 {
        margin-top: 24px !important;
        gap: 16px !important;
    }
}

/* ── Global Theme Overrides (Light Ethereal) ────────────────────────── */
body {
    background-color: var(--jj-bg-primary) !important;
    color: var(--jj-text-main);
    font-family: 'DM Sans', sans-serif;
    -webkit-tap-highlight-color: transparent;
}

.site.grid-container {
    background-color: transparent !important;
}

.inside-article {
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--jj-text-main);
    font-family: 'Outfit', sans-serif;
    font-weight: 800;
}




/* ── Redesign Pages Automation ────────────────────────── */
/* Automatically applies full-width to any page using our new design system */
body:has(.jj-section) .site.grid-container,
body.home .site.grid-container {
    max-width: 100% !important;
    padding: 0 !important;
}

body:has(.jj-section) .entry-header {
    display: none !important;
}

body:has(.jj-section) .site-content,
body:has(.jj-section) .inside-article,
body:has(.jj-section) .entry-content,
body.home .site-content,
body.home .inside-article,
body.home .entry-content {
    padding: 0 !important;
    margin: 0 !important;
}

body:has(.jj-section) #content,
body.home #content {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

body:has(.jj-section) .site-main,
body:has(.jj-section) #main,
body.home .site-main,
body.home #main {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Hide sidebar and fix overflow for sticky elements */
body:has(.jj-section) #secondary,
body:has(.jj-section) .sidebar {
    display: none !important;
}

body:has(.jj-section) #primary {
    width: 100% !important;
}

body:has(.jj-section) .site-content,
body:has(.jj-section) .inside-article {
    overflow: visible !important;
}

/* ── Header & Navigation (Glassmorphism) ────────────────────────── */
.site-header {
    background: rgba(252, 248, 242, 0.85) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--jj-border);
    position: relative;
    z-index: 1000;
}

#mytagline {
    color: var(--jj-amber) !important;
}

.main-navigation {
    background: rgba(252, 248, 242, 0.85) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--jj-border);
    position: relative;
    z-index: 999;
}

.main-navigation .main-nav ul li a,
.menu-toggle,
.mobile-menu {
    color: var(--jj-text-main) !important;
    font-family: 'Outfit', sans-serif;
}

/* Desktop & General Navigation States */
.main-navigation .main-nav ul li[class*="current-menu-"]>a,
.main-navigation .main-nav ul li:hover>a,
.main-navigation .main-nav ul li a:active,
.main-navigation .main-nav ul li a:focus {
    background: transparent !important;
    color: var(--jj-accent) !important;
    outline: none !important;
}

/* Mobile Menu Open State */
.main-navigation.toggled .main-nav ul {
    background-color: var(--jj-bg-primary) !important;
    padding: 0 !important;
}

.main-navigation.toggled .main-nav ul li {
    margin: 0 !important;
}

.main-navigation.toggled .main-nav ul li a {
    color: var(--jj-text-main) !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    padding: 4px 20px !important;
    line-height: 1.5 !important;
}

.main-navigation.toggled .main-nav ul li:last-child a {
    border-bottom: none;
}

.main-navigation.toggled .main-nav ul li[class*="current-menu-"]>a {
    color: var(--jj-accent) !important;
    background: rgba(200, 106, 76, 0.05) !important;
}

.main-navigation.toggled .main-nav ul li:hover>a {
    color: var(--jj-accent) !important;
    background: rgba(200, 106, 76, 0.03) !important;
}

.menu-toggle {
    background: transparent !important;
    border: none !important;
    padding: 5px 10px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    min-height: auto !important;
    line-height: 1 !important;
    outline: none !important;
}

.menu-toggle:active,
.menu-toggle:focus {
    background: transparent !important;
    outline: none !important;
}

/* Sub-menus */
.main-navigation ul ul {
    background: var(--jj-bg-secondary) !important;
    border: 1px solid var(--jj-border);
    box-shadow: 0 10px 30px rgba(110, 74, 57, 0.15);
    z-index: 99999 !important;
}

.main-navigation ul ul li a {
    color: var(--jj-text-muted) !important;
}

.main-navigation ul ul li:hover>a {
    color: var(--jj-text-main) !important;
    background: rgba(110, 74, 57, 0.05) !important;
}


/* ── Full-width block reset ──────────────────────────── */
.content-area .entry-content,
.site-content .entry-content {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.entry-content .wp-block-html {
    margin-left: calc(-1 * var(--wp--style--root--padding-left, 0px));
    margin-right: calc(-1 * var(--wp--style--root--padding-right, 0px));
}

/* ── Content Immunity Boundary for Standard / Online-Edited Pages ── */
.entry-content:not(:has(.jj-section)):not(:has(.jj-cal-single-wrap)) {
    max-width: 900px;
    margin: 0 auto;
    padding: 24px 16px !important;
}

.entry-content:has(.jj-cal-single-wrap) {
    max-width: 900px;
    margin: 0 auto;
    padding: 16px 0 !important;
}

.entry-content:not(:has(.jj-section)) table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5rem 0;
}

.entry-content:not(:has(.jj-section)) table td,
.entry-content:not(:has(.jj-section)) table th {
    padding: 10px 14px;
    border: 1px solid var(--jj-border, #E8DFD8);
    font-size: 0.95rem;
}

.entry-content:not(:has(.jj-section)) table th {
    background: var(--jj-bg-secondary, #FAF6F0);
    font-weight: 600;
    color: var(--jj-text-main, #1a1a2e);
}

/* ── Section wrapper ─────────────────────────────────── */
.jj-section {
    padding: var(--jj-pad-y) var(--jj-pad-x);
    background: var(--jj-bg-primary);
    position: relative;
    overflow: hidden;
}

.jj-section-alt {
    background: var(--jj-bg-secondary);
}

.jj-dark-bg {
    background: var(--jj-bg-primary) !important;
}

.jj-center-btns {
    justify-content: center;
    display: flex;
}

.jj-container {
    max-width: var(--jj-max-w);
    margin: 0 auto;
}

/* ── Section label / heading ─────────────────────────── */
.jj-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2.5px;
    color: var(--jj-amber);
    margin-bottom: 10px;
}

.jj-section-title {
    font-size: clamp(1.6rem, 3.5vw, 2.4rem);
    font-weight: 700;
    color: var(--jj-text-main);
    margin: 0 0 12px;
    line-height: 1.2;
}

.jj-section-sub {
    font-size: 15px;
    color: var(--jj-text-muted);
    line-height: 1.65;
    margin-bottom: 10px;
}

/* ── Gradient text ───────────────────────────────────── */
.jj-gradient-text {
    background: linear-gradient(135deg, var(--jj-amber) 0%, var(--jj-accent) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* ── Surfaces & Glassmorphism ────────────────────────── */
.jj-surface-glass,
.jj-card {
    background: rgba(110, 74, 57, 0.04);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid var(--jj-border);
    border-radius: var(--jj-radius);
    transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.jj-surface-glass:hover,
.jj-card:hover {
    transform: translateY(-4px);
    border-color: rgba(244, 162, 97, 0.22);
    box-shadow: 0 14px 40px rgba(110, 74, 57, 0.15);
}

.jj-surface-solid {
    background: #fff;
    border: 1px solid var(--jj-border);
    border-radius: var(--jj-radius);
    box-shadow: 0 2px 10px rgba(110, 74, 57, 0.04);
}

.jj-surface-dark,
.jj-card-dark {
    background: rgba(10, 10, 20, 0.65);
    border: 1px solid var(--jj-border);
    border-radius: 12px;
}

/* ── Buttons ─────────────────────────────────────────── */
.jj-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-weight: 700;
    text-decoration: none;
    border-radius: 8px;
    padding: 13px 30px;
    font-size: 15px;
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s, background 0.2s;
    border: none;
}

.jj-btn-primary {
    background: var(--jj-accent);
    color: var(--jj-bg-primary) !important;
}

.jj-btn-primary:hover {
    background: #c62f3a;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(230, 57, 70, 0.35);
    color: var(--jj-bg-primary) !important;
}

.jj-btn-outline {
    background: transparent;
    color: var(--jj-accent) !important;
    border: 1.5px solid var(--jj-accent);
}

.jj-btn-outline:hover {
    background: rgba(230, 57, 70, 0.1);
    transform: translateY(-2px);
    color: var(--jj-accent) !important;
}

/* ── Icon badges ─────────────────────────────────────── */
.jj-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border-radius: 14px;
    font-size: 26px;
    flex-shrink: 0;
    transition: background 0.25s, box-shadow 0.25s;
}

.jj-icon-red {
    background: rgba(230, 57, 70, 0.18);
    border: 1px solid rgba(230, 57, 70, 0.3);
}

.jj-icon-amber {
    background: rgba(244, 162, 97, 0.18);
    border: 1px solid rgba(244, 162, 97, 0.3);
}

.jj-icon-red:hover {
    background: rgba(230, 57, 70, 0.30);
    box-shadow: 0 0 14px rgba(230, 57, 70, 0.3);
}

.jj-icon-amber:hover {
    background: rgba(244, 162, 97, 0.30);
    box-shadow: 0 0 14px rgba(244, 162, 97, 0.3);
}

/* ── Hero section ────────────────────────────────────── */
.jj-hero {
    background: var(--jj-bg-primary);
    padding: 14px var(--jj-pad-x) 24px;
    position: relative;
    overflow: hidden;
}

.jj-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 60% 70% at 20% 50%, rgba(230, 57, 70, 0.16) 0%, transparent 70%),
        radial-gradient(ellipse 50% 60% at 75% 30%, rgba(244, 162, 97, 0.10) 0%, transparent 65%);
    pointer-events: none;
    z-index: 0;
}

.jj-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle 1px at 15% 20%, rgba(110, 74, 57, 0.45) 0%, transparent 100%),
        radial-gradient(circle 1px at 85% 15%, rgba(110, 74, 57, 0.35) 0%, transparent 100%),
        radial-gradient(circle 1.5px at 60% 70%, rgba(110, 74, 57, 0.3) 0%, transparent 100%),
        radial-gradient(circle 1px at 35% 80%, rgba(110, 74, 57, 0.4) 0%, transparent 100%),
        radial-gradient(circle 1px at 90% 60%, rgba(110, 74, 57, 0.25) 0%, transparent 100%);
    pointer-events: none;
    z-index: 0;
}

.jj-hero>* {
    position: relative;
    z-index: 1;
}

.jj-hero-inner {
    max-width: var(--jj-max-w);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 400px;
    gap: 48px;
    align-items: center;
}

@media (max-width: 900px) {
    .jj-hero-inner {
        grid-template-columns: 1fr;
        gap: 32px;
    }
}


/* ── Quick Access grid ───────────────────────────────── */
.jj-grid-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.jj-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

@media (max-width: 900px) {
    .jj-grid-4 {
        grid-template-columns: repeat(2, 1fr);
    }

    .jj-grid-3 {
        grid-template-columns: repeat(2, 1fr);
    }
}



/* ── Quick-access link card ──────────────────────────── */
.jj-qcard {
    display: block;
    padding: 24px;
    text-decoration: none !important;
    color: inherit;
    text-align: center;
    transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

@media (max-width: 768px) {
    .jj-qcard {
        padding: 16px 12px;
    }
}

/* Amber glow variant */
.jj-qcard-amber {
    border-color: rgba(244, 162, 97, 0.35) !important;
    box-shadow: 0 0 18px rgba(244, 162, 97, 0.08), inset 0 0 40px rgba(244, 162, 97, 0.03);
}

.jj-qcard-amber:hover {
    border-color: rgba(244, 162, 97, 0.75) !important;
    box-shadow: 0 0 30px rgba(244, 162, 97, 0.28), 0 14px 40px rgba(110, 74, 57, 0.15) !important;
    transform: translateY(-5px);
}

/* Red glow variant */
.jj-qcard-red {
    border-color: rgba(230, 57, 70, 0.35) !important;
    box-shadow: 0 0 18px rgba(230, 57, 70, 0.08), inset 0 0 40px rgba(230, 57, 70, 0.03);
}

.jj-qcard-red:hover {
    border-color: rgba(230, 57, 70, 0.75) !important;
    box-shadow: 0 0 30px rgba(230, 57, 70, 0.28), 0 14px 40px rgba(110, 74, 57, 0.15) !important;
    transform: translateY(-5px);
}

.jj-qcard-title {
    color: var(--jj-text-main);
    font-size: 15px;
    font-weight: 700;
    margin: 14px 0 6px;
    letter-spacing: 0.01em;
}

.jj-qcard-sub {
    color: var(--jj-text-muted);
    font-size: 13px;
    margin: 0 0 16px;
    line-height: 1.5;
}

/* Pill CTA — colour inherits from card variant */
.jj-qcard-cta {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    padding: 7px 18px;
    border-radius: 50px;
    text-decoration: none;
    letter-spacing: 0.02em;
    border: 1.5px solid transparent;
    transition: opacity 0.2s, transform 0.2s;
}

.jj-qcard-cta:hover {
    opacity: 0.85;
    transform: translateY(-1px);
}

.jj-qcard-amber .jj-qcard-cta {
    background: var(--jj-bg-cream);
    color: var(--jj-accent);
    border-color: var(--jj-accent);
}

.jj-qcard-red .jj-qcard-cta {
    background: var(--jj-accent);
    color: var(--jj-bg-primary);
    border-color: var(--jj-accent);
}

/* ── Service cards (glassmorphism redesign) ──────────── */
.jj-scard {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    text-decoration: none !important;
    color: inherit;
    padding: 24px 20px;
    text-align: center;
    position: relative;
    overflow: hidden;
    background: rgba(110, 74, 57, 0.035) !important;
}

@media (max-width: 768px) {
    .jj-scard {
        padding: 12px !important;
        gap: 6px !important;
        display: flex !important;
        flex-direction: column !important;
    }

    .jj-icon {
        width: 44px !important;
        height: 44px !important;
        font-size: 20px !important;
        border-radius: 10px !important;
    }

    .jj-scard strong {
        font-size: 15px !important;
    }

    .jj-scard p {
        font-size: 12.5px !important;
        flex: 1 !important;
    }

    .jj-scard-cta {
        margin-top: auto !important;
        background: var(--jj-accent) !important;
        color: var(--jj-bg-primary) !important;
        border-color: var(--jj-accent) !important;
        padding: 6px 14px !important;
        font-size: 11.5px !important;
        border-radius: 50px !important;
    }
}

/* Top gradient accent bar — appears on hover */
.jj-scard::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--jj-accent), var(--jj-amber));
    opacity: 0;
    transition: opacity 0.3s;
}

.jj-scard:hover::before {
    opacity: 1;
}

/* Subtle radial glow behind icon */
.jj-scard::after {
    content: '';
    position: absolute;
    top: -30px;
    left: 50%;
    transform: translateX(-50%);
    width: 140px;
    height: 140px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(230, 57, 70, 0.1) 0%, transparent 70%);
    pointer-events: none;
    transition: opacity 0.3s;
    opacity: 0;
}

.jj-scard:hover::after {
    opacity: 1;
}

.jj-scard:hover {
    background: rgba(110, 74, 57, 0.065) !important;
    border-color: rgba(230, 57, 70, 0.3) !important;
    box-shadow: 0 0 28px rgba(230, 57, 70, 0.12), 0 20px 48px rgba(110, 74, 57, 0.15) !important;
}

.jj-scard strong {
    display: block;
    color: var(--jj-text-main);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.3;
}

.jj-scard p {
    color: rgba(110, 74, 57, 0.65);
    font-size: 13.5px;
    line-height: 1.65;
    margin: 0;
    flex: 1;
}

.jj-scard-cta {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    padding: 7px 18px;
    border-radius: 50px;
    text-decoration: none;
    letter-spacing: 0.02em;
    border: 1.5px solid transparent;
    transition: opacity 0.2s, transform 0.2s;
    margin-top: auto;
}

.jj-scard:hover .jj-scard-cta {
    opacity: 0.85;
    transform: translateY(-1px);
}

.jj-scard-amber .jj-scard-cta,
.jj-scard-red .jj-scard-cta {
    background: var(--jj-accent);
    color: var(--jj-bg-primary);
    border-color: var(--jj-accent);
}

/* ── Testimonials ────────────────────────────────────── */
.jj-tgrid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 40px;
}

.jj-tcard {
    padding: 24px;
}

@media (max-width: 768px) {
    .jj-tgrid {
        grid-template-columns: 1fr;
    }
    .jj-tcard {
        padding: 16px !important;
    }
}

.jj-tcard-stars {
    color: var(--jj-amber);
    font-size: 18px;
    margin-bottom: 14px;
}

.jj-tcard-text {
    color: rgba(110, 74, 57, 0.8);
    font-style: italic;
    line-height: 1.6;
    margin-bottom: 16px;
}

.jj-tcard-name {
    color: var(--jj-text-main);
    font-weight: 600;
    font-size: 14px;
}

/* ── App promo section ───────────────────────────────── */
.jj-app-promo {
    background: var(--jj-bg-primary);
    border-radius: 24px;
    padding: 20px 48px;
    position: relative;
    overflow: hidden;
    border: 1px solid var(--jj-border);
    box-shadow: 0 10px 30px rgba(110, 74, 57, 0.05);
}

.jj-app-promo::before {
    content: '';
    position: absolute;
    top: 50%;
    right: 0;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(200, 106, 76, 0.08) 0%, transparent 70%);
    transform: translate(20%, -50%);
    pointer-events: none;
}

.jj-app-inner {
    display: flex;
    align-items: center;
    gap: 48px;
    position: relative;
    z-index: 1;
}

.jj-app-image {
    flex: 0.8;
    display: flex;
    justify-content: flex-end;
}

.jj-app-mockup {
    width: 100%;
    max-width: 320px;
    filter: drop-shadow(0 20px 40px rgba(110, 74, 57, 0.1));
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.jj-app-mockup:hover {
    transform: translateY(-10px) rotate(2deg);
}

/* Play Store Button */
.jj-play-store-btn {
    display: inline-flex;
    align-items: center;
    background: #000;
    border-radius: 8px;
    padding: 8px 16px;
    text-decoration: none;
    transition: background 0.2s;
    gap: 12px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
}

.jj-play-store-btn:hover {
    background: #111;
}

.jj-play-store-icon {
    width: 24px;
    height: 24px;
}

.jj-play-store-text {
    text-align: left;
}

.jj-play-store-text small {
    display: block;
    font-size: 9px;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1;
}

.jj-play-store-text strong {
    display: block;
    font-size: 16px;
    color: #fff;
    font-weight: 600;
    line-height: 1.2;
}

.jj-app-rating-v2 {
    margin-top: 24px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.jj-app-rating-v2 .stars {
    color: var(--jj-amber);
    letter-spacing: 2px;
}

.jj-app-rating-v2 .text {
    font-size: 14px;
    color: var(--jj-text-muted);
}

@media (max-width: 992px) {
    .jj-app-promo {
        padding: 48px 32px;
    }

    .jj-app-title {
        font-size: 32px;
    }
}

@media (max-width: 768px) {
    .jj-app-inner {
        flex-direction: column;
        text-align: center;
    }

    .jj-app-text {
        order: 2;
    }

    .jj-app-image {
        order: 1;
        justify-content: center;
        margin-bottom: 40px;
    }

    .jj-app-desc {
        margin-left: auto;
        margin-right: auto;
    }

    .jj-app-rating-v2 {
        justify-content: center;
    }

    .jj-app-promo::before {
        top: 20%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
}

/* ── Utility ──────────────────────────────────────────── */
.jj-text-center {
    text-align: center;
}

.jj-mb-sm {
    margin-bottom: 12px;
}

.jj-mb-md {
    margin-bottom: 24px;
}

.jj-mb-lg {
    margin-bottom: 40px;
}

.jj-flex {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

/* ── Hero typography ─────────────────────────────────── */
.jj-hero-title {
    font-size: clamp(2rem, 4.5vw, 3.2rem);
    font-weight: 800;
    color: var(--jj-text-main);
    line-height: 1.15;
    margin: 0 0 16px;
}

.jj-hero-sub {
    font-size: 16px;
    color: var(--jj-text-muted);
    line-height: 1.7;
    margin: 0 0 28px;
    max-width: 520px;
}

/* ── Hero trust-badge stats ──────────────────────────── */
.jj-hero-stats {
    display: flex;
    gap: 28px;
    flex-wrap: wrap;
}

.jj-stat {
    display: flex;
    align-items: center;
    gap: 10px;
}

.jj-stat strong {
    display: block;
    color: var(--jj-text-main);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
}

.jj-stat small {
    display: block;
    color: var(--jj-text-muted);
    font-size: 12px;
    line-height: 1.3;
}

.jj-stat-icon {
    font-size: 22px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(110, 74, 57, 0.06);
    border-radius: 10px;
    border: 1px solid var(--jj-border);
}

/* ── Panchang card (hero right panel) ────────────────── */
.jj-panchang-card {
    overflow: hidden;
}

.jj-panchang-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 20px;
    border-bottom: 1px solid var(--jj-border);
}

.jj-panchang-date {
    font-size: 14px;
    font-weight: 600;
    color: var(--jj-text-main);
    margin-top: 4px;
}

.jj-panchang-link {
    font-size: 12px;
    font-weight: 600;
    color: var(--jj-amber);
    text-decoration: none;
    white-space: nowrap;
}

.jj-panchang-link:hover {
    text-decoration: underline;
}

/* Panchang 3-col & 2-col grids */
.jj-panchang-grid3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-bottom: 1px solid var(--jj-border);
}

.jj-panchang-grid2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    border-bottom: 1px solid var(--jj-border);
}

.jj-panchang-cell {
    padding: 14px 16px;
    border-right: 1px solid var(--jj-border);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.jj-panchang-cell:last-child {
    border-right: none;
}

.jj-panchang-cell small {
    font-size: 10px;
    letter-spacing: 1.5px;
    color: var(--jj-text-muted);
    text-transform: uppercase;
}

.jj-panchang-cell strong {
    font-size: 13px;
    color: var(--jj-text-main);
    font-weight: 600;
}

.jj-cell-danger .jj-panchang-cell strong,
.jj-cell-danger strong {
    color: var(--jj-accent);
}

.jj-panchang-cell2 {
    padding: 14px 16px;
    border-right: 1px solid var(--jj-border);
    display: flex;
    align-items: center;
    gap: 10px;
}

.jj-panchang-cell2:last-child {
    border-right: none;
}

.jj-panchang-cell2>span {
    font-size: 20px;
}

.jj-panchang-cell2 small {
    display: block;
    font-size: 11px;
    color: var(--jj-text-muted);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.jj-panchang-cell2 strong {
    display: block;
    font-size: 13px;
    color: var(--jj-text-main);
    font-weight: 600;
}

/* Panchang bottom CTA */
.jj-panchang-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    background: rgba(230, 57, 70, 0.08);
    border-top: 1px solid rgba(230, 57, 70, 0.18);
    text-decoration: none !important;
    transition: background 0.2s;
}

.jj-panchang-cta:hover {
    background: rgba(230, 57, 70, 0.14);
}

.jj-flex-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.jj-flex-row>span {
    font-size: 20px;
}

.jj-flex-row strong {
    display: block;
    color: var(--jj-text-main);
    font-size: 14px;
    font-weight: 600;
}

.jj-flex-row small {
    display: block;
    color: var(--jj-text-muted);
    font-size: 12px;
}

.jj-arrow {
    color: var(--jj-amber);
    font-size: 18px;
    font-weight: 700;
    transition: transform 0.2s;
}

.jj-panchang-cta:hover .jj-arrow {
    transform: translateX(3px);
}

/* ── App section text elements ───────────────────────── */
.jj-app-text {
    flex: 1;
}

.jj-app-title {
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    font-weight: 800;
    color: var(--jj-text-main);
    margin: 8px 0 16px;
    line-height: 1.2;
}

.jj-app-desc {
    font-size: 15px;
    color: var(--jj-text-muted);
    line-height: 1.7;
    margin: 0 0 20px;
    max-width: 480px;
}

.jj-app-rating {
    font-size: 13px;
    color: var(--jj-text-muted);
    margin: 0;
}

.jj-app-icon {
    flex-shrink: 0;
}

/* ── Global Site Footer ──────────────────────────────── */
.jj-site-footer {
    background: var(--jj-bg-secondary);
    border-top: 1px solid var(--jj-border);
    padding: 60px var(--jj-pad-x) 20px;
}

.site-footer {
    background: var(--jj-bg-secondary) !important;
}

.jj-footer-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 40px;
    margin-bottom: 40px;
}

@media (max-width: 900px) {
    .jj-footer-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .jj-footer-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
}

.jj-footer-col {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.jj-footer-brand {
    display: flex;
    align-items: center;
    font-size: 22px;
    margin-bottom: 8px;
}

.jj-footer-brand strong {
    color: var(--jj-text-main);
    font-weight: 800;
    letter-spacing: -0.02em;
}

.jj-footer-desc {
    color: var(--jj-text-main);
    font-size: 14px;
    line-height: 1.6;
    margin: 0;
    max-width: 320px;
}

.jj-footer-social {
    display: flex;
    gap: 12px;
    margin-top: 8px;
}

.jj-footer-social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: rgba(110, 74, 57, 0.05);
    border: 1px solid var(--jj-border);
    text-decoration: none;
    font-size: 16px;
    transition: background 0.2s, transform 0.2s;
}

.jj-footer-social a:hover {
    transform: translateY(-2px);
}

.jj-footer-social a.jj-social-fb {
    color: #1877F2;
    border-color: rgba(24, 119, 242, 0.2);
    background: rgba(24, 119, 242, 0.03);
}
.jj-footer-social a.jj-social-fb:hover {
    background: rgba(24, 119, 242, 0.08);
    border-color: #1877F2;
}

.jj-footer-social a.jj-social-yt {
    color: #FF0000;
    border-color: rgba(255, 0, 0, 0.2);
    background: rgba(255, 0, 0, 0.03);
}
.jj-footer-social a.jj-social-yt:hover {
    background: rgba(255, 0, 0, 0.08);
    border-color: #FF0000;
}

.jj-footer-social a.jj-social-ig {
    color: #E1306C;
    border-color: rgba(225, 48, 108, 0.2);
    background: rgba(225, 48, 108, 0.03);
}
.jj-footer-social a.jj-social-ig:hover {
    background: rgba(225, 48, 108, 0.08);
    border-color: #E1306C;
}

.jj-footer-title {
    color: var(--jj-text-main);
    font-size: 16px;
    font-weight: 700;
    margin: 0 0 4px;
}

.jj-footer-nav,
.jj-footer-contact {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.jj-footer-nav a,
.jj-footer-contact a {
    color: var(--jj-text-main);
    text-decoration: none;
    font-size: 14px;
    transition: color 0.2s;
}

.jj-footer-nav a:hover,
.jj-footer-contact a:hover {
    color: var(--jj-amber);
}

.jj-footer-contact li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--jj-text-main);
    font-size: 14px;
    line-height: 1.5;
}

.jj-footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 24px;
    border-top: 1px solid var(--jj-border);
    flex-wrap: wrap;
    gap: 16px;
}

.jj-footer-bottom p {
    color: var(--jj-text-main);
    font-size: 13px;
    margin: 0;
}

.jj-footer-legal {
    display: flex;
    gap: 20px;
}

.jj-footer-legal a {
    color: var(--jj-text-main);
    text-decoration: none;
    font-size: 13px;
    transition: color 0.2s;
}

.jj-footer-legal a:hover {
    color: var(--jj-amber);
}

/* =====================================================================
   SIDEBAR & WIDGETS
   Match standard WordPress/GeneratePress widgets to Cosmic Dark
   ===================================================================== */
.sidebar .widget,
.site-sidebar .widget {
    background: var(--jj-bg-secondary);
    border: 1px solid var(--jj-border);
    border-radius: 16px;
    padding: 24px;
    margin-bottom: 24px;
    color: var(--jj-light);
    box-shadow: 0 10px 30px rgba(110, 74, 57, 0.15);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.sidebar .widget .widget-title,
.site-sidebar .widget .widget-title {
    color: var(--jj-text-main);
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--jj-border);
}

.sidebar .widget a,
.site-sidebar .widget a {
    color: var(--jj-amber);
    text-decoration: none;
    transition: color 0.2s;
}

.sidebar .widget a:hover,
.site-sidebar .widget a:hover {
    color: var(--jj-red);
}

.sidebar .widget p,
.sidebar .widget li,
.sidebar .widget span,
.site-sidebar .widget p,
.site-sidebar .widget li,
.site-sidebar .widget span {
    color: var(--jj-text-muted);
}

/* Fix specific colors in Address/Contact widgets */
.sidebar .widget * {
    color: inherit;
}

.sidebar .widget p {
    color: var(--jj-text-muted) !important;
}

.sidebar .widget h1,
.sidebar .widget h2,
.sidebar .widget h3,
.sidebar .widget h4,
.sidebar .widget h5,
.sidebar .widget h6,
.sidebar .widget strong {
    color: var(--jj-text-main) !important;
}

/* Search widget */
.sidebar .widget input[type="search"],
.sidebar .widget input[type="text"],
.sidebar .widget input[type="email"] {
    background: rgba(110, 74, 57, 0.05);
    border: 1px solid var(--jj-border);
    color: var(--jj-text-main);
    border-radius: 8px;
    padding: 10px 16px;
    width: 100%;
}

.sidebar .widget input[type="search"]:focus,
.sidebar .widget input[type="text"]:focus,
.sidebar .widget input[type="email"]:focus {
    background: rgba(110, 74, 57, 0.1);
    border-color: var(--jj-amber);
    outline: none;
}

.sidebar .widget button,
.sidebar .widget input[type="submit"] {
    background: var(--jj-amber);
    color: var(--jj-text-main);
    border: none;
    padding: 10px 20px;
    border-radius: 8px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.2s;
}

.sidebar .widget button:hover,
.sidebar .widget input[type="submit"]:hover {
    background: var(--jj-text-main);
}

/* Hide default GeneratePress footer widgets & copyright */
.site-footer .footer-widgets-container,
.site-footer .site-info {
    display: none !important;
}

/* ── End of JJ Design System ────────────────────────── */

/* ── Generic 2-col grid ──────────────────────────────── */
.jj-grid-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
}

@media (max-width: 768px) {
    .jj-grid-2 {
        grid-template-columns: 1fr;
    }
}

/* ═══════════════════════════════════════════════════════════════
   FORMINATOR FORM — Premium SaaS / Soft Luxury Redesign
   Inspired by: Stripe · Linear · Notion AI · Fintech onboarding
   ═══════════════════════════════════════════════════════════════ */

/* ── CSS Variables for form palette ──────────────────────────── */
.forminator-ui {
    --f-bg: rgba(252, 250, 247, 0.88);
    --f-bg-focus: #ffffff;
    --f-border: rgba(30, 30, 60, 0.10);
    --f-border-hover: rgba(30, 30, 60, 0.22);
    --f-border-focus: rgba(180, 140, 60, 0.70);
    --f-shadow-base: 0 1px 3px rgba(20, 20, 50, 0.06), inset 0 1px 0 rgba(255, 255, 255, 0.80);
    --f-shadow-focus: 0 0 0 3px rgba(180, 140, 60, 0.14), 0 4px 12px rgba(20, 20, 50, 0.08);
    --f-radius: 10px;
    --f-radius-lg: 14px;
    --f-text: #1a1a2e;
    --f-text-muted: #6b6b80;
    --f-label: #2d2d3a;
    --f-gold: #b8891f;
    --f-gold-light: #e8c46a;
    --f-gold-glow: rgba(184, 137, 31, 0.18);
    --f-navy: #1a1a3e;
    --f-navy-soft: rgba(26, 26, 62, 0.06);
    --f-transition: all 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ── Form container / card ────────────────────────────────────── */
.forminator-ui,
.forminator-custom-form {
    font-family: inherit !important;
}

/* ── Form Card Header (.jj-form-header) ───────────────────────── */
.jj-form-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 0 0 1.6rem;
    border-bottom: 1px solid rgba(184, 137, 31, 0.14);
    margin-bottom: 1.4rem;
}

/* Eyebrow label — small spaced tag above the title */
.jj-form-header__eyebrow {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--f-gold, #b8891f);
    opacity: 0.85;
    margin-bottom: 0.5rem;
}

/* Main title */
.jj-form-header__title {
    font-size: 1.55rem;
    font-weight: 700;
    color: var(--jj-text-main, #1a1a3e);
    letter-spacing: -0.025em;
    line-height: 1.2;
    margin: 0 0 0.45rem;
    padding: 0;
    /* Gold underline bar */
    position: relative;
    display: inline-block;
}

.jj-form-header__title::after {
    content: '';
    display: block;
    width: 36px;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, #c49a28, #e8c46a);
    margin: 7px auto 0;
}

/* Subtitle / description */
.jj-form-header__desc {
    font-size: 0.88rem;
    font-weight: 400;
    color: var(--jj-text-muted, #6b5e4a);
    line-height: 1.65;
    margin: 0.5rem auto 0;
    max-width: 280px;
    opacity: 0.9;
}

/* ── All Input Fields ─────────────────────────────────────────── */
.forminator-ui.forminator-custom-form[data-design=default] .forminator-input,
.forminator-ui.forminator-custom-form[data-design=default] .forminator-textarea,
.forminator-ui.forminator-custom-form[data-design=default] .forminator-select,
.forminator-ui .forminator-input,
.forminator-ui .forminator-textarea,
.forminator-ui .forminator-select,
.forminator-ui input[type="text"],
.forminator-ui input[type="email"],
.forminator-ui input[type="number"],
.forminator-ui input[type="tel"],
.forminator-ui textarea {
    background: var(--f-bg) !important;
    border: 1.5px solid var(--f-border) !important;
    border-radius: var(--f-radius) !important;
    color: var(--f-text) !important;
    font-family: inherit !important;
    font-size: 0.9375rem !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    padding: 10px 14px !important;
    width: 100% !important;
    box-shadow: var(--f-shadow-base) !important;
    transition: var(--f-transition) !important;
    outline: none !important;
    -webkit-appearance: none !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
}

/* Hover state */
.forminator-ui .forminator-input:hover,
.forminator-ui .forminator-textarea:hover,
.forminator-ui input[type="text"]:hover,
.forminator-ui input[type="email"]:hover,
.forminator-ui input[type="tel"]:hover,
.forminator-ui input[type="number"]:hover {
    border-color: var(--f-border-hover) !important;
    background: rgba(255, 255, 255, 0.94) !important;
}

/* Focus state — soft gold glow */
.forminator-ui .forminator-input:focus,
.forminator-ui .forminator-textarea:focus,
.forminator-ui .forminator-select:focus,
.forminator-ui input:focus,
.forminator-ui textarea:focus {
    background: var(--f-bg-focus) !important;
    border-color: var(--f-border-focus) !important;
    box-shadow: var(--f-shadow-focus) !important;
    outline: none !important;
}

/* Placeholder text */
.forminator-ui input::placeholder,
.forminator-ui textarea::placeholder {
    color: var(--f-text-muted) !important;
    font-weight: 400 !important;
    opacity: 0.7 !important;
}

/* ── Labels — refined, not uppercase ─────────────────────────── */
.forminator-ui.forminator-custom-form[data-design=default] .forminator-label,
.forminator-ui .forminator-label,
.forminator-ui label {
    color: var(--f-label) !important;
    font-weight: 500 !important;
    font-size: 0.8125rem !important;
    letter-spacing: 0.01em !important;
    text-transform: none !important;
    margin-bottom: 5px !important;
    display: block !important;
    font-family: inherit !important;
    line-height: 1.4 !important;
    opacity: 0.85 !important;
    transition: color 0.2s ease !important;
}

/* Labels highlight when field is focused */
.forminator-ui .forminator-field:focus-within .forminator-label,
.forminator-ui .forminator-row:focus-within label {
    color: var(--f-gold) !important;
    opacity: 1 !important;
}

/* Required asterisk */
.forminator-ui .forminator-label .forminator-asterisk {
    color: var(--f-gold) !important;
    margin-left: 2px !important;
    font-size: 0.75rem !important;
}

/* ── Row spacing — balanced rhythm ───────────────────────────── */
.forminator-ui .forminator-row {
    margin-bottom: 14px !important;
}

/* ── Select / Dropdown — native select reset ─────────────────── */
.forminator-ui .forminator-select,
.forminator-ui select {
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b6b80' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 14px center !important;
    background-size: 12px 8px !important;
    padding-right: 36px !important;
    cursor: pointer !important;
}

/* ── Forminator custom JS dropdown — Precise Selectors ──────── */
/* Forminator wraps Select2 in its own elements:
   Trigger: select.forminator-select2 + .forminator-select > .selection > span[role=combobox]
   Panel:   .forminator-select-dropdown.forminator-dropdown--default */

/* Trigger - the visible select-box */
.forminator-ui select.forminator-select2+.forminator-select .selection span[role=combobox],
.forminator-ui .forminator-select .selection .select2-selection {
    background: rgba(252, 250, 247, 0.88) !important;
    border: 1.5px solid var(--f-border) !important;
    border-radius: var(--f-radius) !important;
    height: auto !important;
    padding: 10px 14px !important;
    font-size: 0.9375rem !important;
    color: var(--f-text) !important;
    box-shadow: var(--f-shadow-base) !important;
    transition: var(--f-transition) !important;
    outline: none !important;
    min-height: 44px !important;
}

/* Trigger hover */
.forminator-ui select.forminator-select2+.forminator-select .selection span[role=combobox]:hover {
    border-color: var(--f-border-hover) !important;
    background: rgba(255, 255, 255, 0.94) !important;
}

/* Trigger open/focus state */
.forminator-ui .forminator-select.forminator-select-dropdown-container--open .selection span[role=combobox],
.forminator-ui .forminator-select .selection span[role=combobox][aria-expanded="true"] {
    border-color: var(--f-border-focus) !important;
    box-shadow: var(--f-shadow-focus) !important;
    background: #ffffff !important;
}

/* Chevron arrow */
.forminator-ui .forminator-select .selection .select2-selection__arrow {
    width: 38px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.forminator-ui .forminator-select .selection .select2-selection__arrow b {
    border-color: var(--f-text-muted) transparent transparent transparent !important;
    border-width: 5px 4px 0 4px !important;
    transition: border-color 0.2s ease !important;
}

.forminator-ui .forminator-select.forminator-select-dropdown-container--open .selection .select2-selection__arrow b {
    border-color: transparent transparent var(--f-gold) transparent !important;
    border-width: 0 4px 5px 4px !important;
}

/* Selected text inside trigger */
.forminator-ui .forminator-select .selection .select2-selection__rendered {
    color: var(--f-text) !important;
    font-size: 0.9375rem !important;
    font-weight: 400 !important;
    padding: 0 !important;
    line-height: 1.5 !important;
    flex: 1 !important;
}

/* ── Forminator dropdown PANEL ──────────────────────────────── */
/* Forminator's open dropdown uses .forminator-select-dropdown (not .select2-dropdown) */
.forminator-select-dropdown.forminator-dropdown--default,
.forminator-select.forminator-select-dropdown-container--open .forminator-select-dropdown,
.forminator-select-dropdown.forminator-dropdown--basic {
    background: #ffffff !important;
    border: 1.5px solid rgba(180, 140, 60, 0.50) !important;
    border-radius: var(--f-radius) !important;
    box-shadow: 0 8px 24px rgba(20, 20, 50, 0.12), 0 2px 6px rgba(20, 20, 50, 0.06) !important;
    padding: 6px 0 !important;
    overflow: hidden !important;
}

/* Also catch any native Select2 dropdown that may render outside .forminator-ui */
.select2-container--default.select2-container--open .select2-dropdown {
    border: 1.5px solid rgba(180, 140, 60, 0.50) !important;
    border-radius: var(--f-radius) !important;
    box-shadow: 0 8px 24px rgba(20, 20, 50, 0.12) !important;
    background: #ffffff !important;
}

/* Dropdown option rows */
.forminator-select-dropdown .select2-results__option,
.forminator-ui .select2-results__option {
    padding: 10px 14px !important;
    font-size: 0.9rem !important;
    color: var(--f-text) !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    cursor: pointer !important;
    transition: background 0.15s ease !important;
    border: none !important;
}

.forminator-select-dropdown .select2-results__option--highlighted,
.forminator-select-dropdown .select2-results__option:hover,
.forminator-ui .select2-results__option--highlighted {
    background: rgba(26, 26, 62, 0.06) !important;
    color: #1a1a2e !important;
}

.forminator-select-dropdown .select2-results__option[aria-selected=true],
.forminator-ui .select2-results__option[aria-selected=true] {
    background: rgba(184, 137, 31, 0.10) !important;
    color: var(--f-gold) !important;
    font-weight: 500 !important;
}

/* ── Textarea ─────────────────────────────────────────────────── */
.forminator-ui textarea {
    min-height: 90px !important;
    resize: vertical !important;
    line-height: 1.6 !important;
}

/* ── Submit Button — premium, conversion-focused ─────────────── */
.forminator-ui.forminator-custom-form[data-design=default] .forminator-button-submit,
.forminator-ui .forminator-button-submit,
.forminator-ui button[type="submit"] {
    width: 100% !important;
    background: linear-gradient(135deg, var(--jj-accent) 0%, var(--jj-accent-dark) 100%) !important;
    color: #ffffff !important;
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    font-family: inherit !important;
    border: none !important;
    border-radius: 12px !important;
    padding: 16px 24px !important;
    letter-spacing: 0.01em !important;
    text-transform: none !important;
    box-shadow: 0 8px 20px rgba(200, 106, 76, 0.3) !important;
    transition: all 0.3s ease !important;
    cursor: pointer !important;
    margin-top: 8px !important;
    position: relative !important;
    overflow: hidden !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
}

.forminator-ui.forminator-custom-form[data-design=default] .forminator-button-submit:hover,
.forminator-ui .forminator-button-submit:hover,
.forminator-ui button[type="submit"]:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 12px 25px rgba(200, 106, 76, 0.4) !important;
}

.forminator-ui.forminator-custom-form[data-design=default] .forminator-button-submit:active,
.forminator-ui .forminator-button-submit:active,
.forminator-ui button[type="submit"]:active {
    transform: translateY(0px) !important;
    box-shadow: 0 2px 8px rgba(200, 106, 76, 0.25) !important;
}

/* ── Radio & Checkboxes ─────────────────────────────────────── */
.forminator-ui .forminator-radio,
.forminator-ui .forminator-checkbox {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin-bottom: 5px !important;
    padding: 6px 10px !important;
    border-radius: 8px !important;
    border: 1.5px solid transparent !important;
    transition: background 0.18s ease, border-color 0.18s ease !important;
    cursor: pointer !important;
}

.forminator-ui .forminator-radio:hover,
.forminator-ui .forminator-checkbox:hover {
    background: var(--f-navy-soft) !important;
    border-color: var(--f-border) !important;
}

.forminator-ui .forminator-radio .forminator-radio-label,
.forminator-ui .forminator-checkbox .forminator-checkbox-label {
    color: var(--f-text) !important;
    font-weight: 400 !important;
    font-size: 0.9rem !important;
    margin: 0 !important;
    line-height: 1.4 !important;
}

.forminator-ui .forminator-radio .forminator-radio-image,
.forminator-ui .forminator-checkbox .forminator-checkbox-image {
    border: 1.5px solid var(--f-border-hover) !important;
    background: #fff !important;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.04) !important;
    flex-shrink: 0 !important;
}

/* ── Response message ─────────────────────────────────────────── */
.forminator-ui.forminator-custom-form .forminator-response-message {
    background: rgba(184, 137, 31, 0.07) !important;
    border: 1px solid rgba(184, 137, 31, 0.35) !important;
    color: var(--f-text) !important;
    border-radius: var(--f-radius) !important;
    padding: 14px 18px !important;
    margin-top: 20px !important;
    font-size: 0.9rem !important;
    font-weight: 500 !important;
}

/* ── Field icon alignment fix ─────────────────────────────────── */
.forminator-ui .forminator-has_icon .forminator-input,
.forminator-ui .forminator-input-with-icon .forminator-input,
.forminator-ui .forminator-field-date .forminator-input,
.forminator-ui input.forminator-datepicker,
.forminator-ui input.hasDatepicker {
    padding-left: 42px !important;
}

.forminator-ui .forminator-input-with-icon i,
.forminator-ui .forminator-field-date i,
.forminator-ui .forminator-icon-calendar {
    left: 14px !important;
    color: var(--f-gold) !important;
    font-size: 1rem !important;
    opacity: 0.75 !important;
}

/* ── Forminator Datepicker: layout, shadow, centering ────────── */
/* NOTE: Forminator forces background:transparent on the calendar via !important.
   We cannot override it in CSS — the grey is the page body showing through.
   Removed background attempts. Focus on border, shadow, centering. */
#ui-datepicker-div {
    border: 1.5px solid rgba(180, 140, 60, 0.30) !important;
    border-radius: 14px !important;
    box-shadow: 0 8px 32px rgba(20, 20, 50, 0.13), 0 2px 6px rgba(20, 20, 50, 0.05) !important;
    padding: 18px 16px !important;
    color: #1a1a2e !important;
    font-family: inherit !important;
    font-size: 0.9rem !important;
    z-index: 99999 !important;
    outline: none !important;
    overflow: hidden !important;
    /* Center below the input field */
    left: 50% !important;
    transform: translateX(-50%) !important;
}

/* Hide the Forminator ::before border (we use the parent border instead) */
.ui-datepicker.forminator-calendar--default::before,
.ui-datepicker.forminator-calendar--bold::before,
.ui-datepicker.forminator-calendar--flat::before,
.ui-datepicker.forminator-calendar--material::before {
    border-width: 0 !important;
}

/* Day-cell default state — warm cream cells */
.ui-datepicker .ui-state-default {
    background: rgba(245, 241, 234, 0.70) !important;
    border: 1px solid transparent !important;
    color: #1a1a2e !important;
    border-radius: 8px !important;
    font-weight: normal !important;
}

.ui-datepicker .ui-state-hover {
    background: rgba(235, 227, 210, 0.90) !important;
    border-color: rgba(180, 140, 60, 0.25) !important;
    color: #1a1a2e !important;
}

/* Override blue active → gold */
.ui-datepicker .ui-state-active {
    background: #c49a28 !important;
    border-color: #c49a28 !important;
    color: #1a1208 !important;
    font-weight: 700 !important;
}

/* Today highlight */
.ui-datepicker .ui-state-highlight {
    background: rgba(184, 137, 31, 0.12) !important;
    border-color: rgba(184, 137, 31, 0.35) !important;
    color: #b8891f !important;
}

/* Header row */
#ui-datepicker-div .ui-datepicker-header {
    background: transparent !important;
    border: none !important;
    padding: 8px 42px !important;
    position: relative !important;
    margin-bottom: 6px !important;
}

/* Month / Year selects inside calendar header */
#ui-datepicker-div .ui-datepicker-title {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
}

#ui-datepicker-div .ui-datepicker-title select {
    width: auto !important;
    min-width: 100px !important;
    padding: 6px 28px 6px 10px !important;
    height: 34px !important;
    border: 1.5px solid rgba(26, 26, 62, 0.12) !important;
    border-radius: 8px !important;
    background: #ffffff !important;
    color: #1a1a2e !important;
    font-family: inherit !important;
    font-size: 0.85rem !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    outline: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236b6b80' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 10px center !important;
    background-size: 10px 6px !important;
    box-shadow: 0 1px 3px rgba(20, 20, 50, 0.05) !important;
    transition: border-color 0.2s ease !important;
}

#ui-datepicker-div .ui-datepicker-title select:focus {
    border-color: rgba(180, 140, 60, 0.70) !important;
    box-shadow: 0 0 0 2px rgba(180, 140, 60, 0.12) !important;
}

#ui-datepicker-div .ui-datepicker-title select.ui-datepicker-year {
    min-width: 82px !important;
}

/* Prev / Next navigation arrows */
.ui-datepicker-prev,
.ui-datepicker-next {
    background: rgba(26, 26, 62, 0.07) !important;
    border: 1.5px solid rgba(26, 26, 62, 0.10) !important;
    border-radius: 8px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    cursor: pointer !important;
    width: 30px !important;
    height: 30px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background 0.18s ease, border-color 0.18s ease !important;
}

.ui-datepicker-prev {
    left: 4px !important;
}

.ui-datepicker-next {
    right: 4px !important;
}

.ui-datepicker-prev:hover,
.ui-datepicker-next:hover {
    background: rgba(184, 137, 31, 0.12) !important;
    border-color: rgba(184, 137, 31, 0.40) !important;
}

.ui-datepicker-prev span,
.ui-datepicker-next span {
    position: static !important;
    margin: 0 !important;
    filter: none !important;
    color: #1a1a2e !important;
}

#ui-datepicker-div .ui-datepicker-prev-secondary,
#ui-datepicker-div .ui-datepicker-next-secondary {
    display: none !important;
}

/* Weekday column headers */
#ui-datepicker-div th {
    color: #b8891f !important;
    font-weight: 600 !important;
    font-size: 0.75rem !important;
    letter-spacing: 0.03em !important;
    padding: 8px 0 !important;
    text-transform: uppercase !important;
    border-bottom: 1px solid rgba(26, 26, 62, 0.07) !important;
}

/* Day cells */
#ui-datepicker-div td {
    padding: 2px !important;
}

#ui-datepicker-div td .ui-state-default {
    background: rgba(245, 241, 234, 0.70) !important;
    /* warm cream, not navy-grey */
    border: 1px solid transparent !important;
    color: #1a1a2e !important;
    text-align: center !important;
    padding: 8px 6px !important;
    border-radius: 8px !important;
    font-size: 0.875rem !important;
    font-weight: 400 !important;
    transition: background 0.15s ease, border-color 0.15s ease !important;
    text-decoration: none !important;
    display: block !important;
}

#ui-datepicker-div td .ui-state-default:hover {
    background: rgba(235, 227, 210, 0.90) !important;
    border-color: rgba(180, 140, 60, 0.25) !important;
    transform: none !important;
}

/* Today highlight */
#ui-datepicker-div td .ui-state-highlight,
#ui-datepicker-div td .ui-state-highlight.ui-state-default {
    background: rgba(184, 137, 31, 0.12) !important;
    border-color: rgba(184, 137, 31, 0.40) !important;
    color: #b8891f !important;
    font-weight: 600 !important;
}

/* Selected date */
#ui-datepicker-div td .ui-state-active,
#ui-datepicker-div td .ui-state-active.ui-state-default {
    background: #c49a28 !important;
    color: #1a1208 !important;
    border-color: #c49a28 !important;
    font-weight: 700 !important;
    box-shadow: 0 2px 8px rgba(180, 137, 31, 0.28) !important;
}

/* Table reset */
#ui-datepicker-div table {
    margin: 0 !important;
    border-collapse: separate !important;
    border-spacing: 1px !important;
    width: 100% !important;
}



/* ── Forced Menu Fonts ── */
.main-navigation a {
    font-family: 'Outfit', sans-serif !important;
}

/* ── Mobile adjustments for compact 2-col grids ── */
@media (max-width: 600px) {
    .jj-qcard {
        padding: 8px 6px;
    }

    .jj-qcard-title {
        font-size: 13.5px;
        margin: 10px 0 4px;
    }

    .jj-qcard-sub {
        font-size: 11.5px;
        margin-bottom: 8px;
    }

}

/* ════════════════════════════════════════════════════════════════
   FULL PANCHANG PAGE — Mobile-First
   ════════════════════════════════════════════════════════════════ */

/* ── Page wrapper ─────────────────────────────────────────────── */
.jj-panchang-page {
    background: var(--jj-bg-primary);
}

/* ── Section spacing ──────────────────────────────────────────── */
.jj-pp-pancha-section,
.jj-pp-timings-section,
.jj-pp-inauspicious-section,
.jj-pp-auspicious-section,
.jj-pp-cta-section {
    padding: 30px 0;
}

/* ── Section title ────────────────────────────────────────────── */
.jj-pp-section-title {
    font-family: var(--jj-font-head);
    font-size: 19px;
    font-weight: 700;
    color: var(--jj-text-main);
    margin: 0 0 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.jj-pp-section-title span {
    font-size: 14px;
    font-weight: 500;
    color: var(--jj-text-muted);
    letter-spacing: 0.01em;
    opacity: 0.8;
}

.jj-pp-danger-title {
    color: var(--jj-accent);
}

.jj-pp-good-title {
    color: var(--jj-amber);
}

.jj-pp-section-sub {
    color: var(--jj-text-muted);
    font-size: 13.5px;
    margin: -10px 0 20px;
}

/* ── Date Header ──────────────────────────────────────────────── */
.jj-pp-header {
    background: var(--jj-bg-secondary);
    border: 1px solid var(--jj-border);
    border-radius: 20px;
    padding: 24px;
    margin-bottom: 20px;
}

.jj-pp-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.jj-pp-title {
    font-family: var(--jj-font-head);
    font-size: 28px;
    font-weight: 800;
    color: var(--jj-text-main);
    margin: 4px 0 2px;
    line-height: 1.1;
}

.jj-pp-subtitle {
    font-size: 13px;
    color: var(--jj-text-muted);
    margin: 0;
}

.jj-pp-vaara-badge {
    background: var(--jj-accent);
    color: #fff;
    font-family: var(--jj-font-head);
    font-weight: 700;
    font-size: 14px;
    padding: 8px 16px;
    border-radius: 50px;
    box-shadow: 0 4px 12px rgba(181, 69, 27, 0.2);
}

/* ── Pancha Anga Grid ─────────────────────────────────────────── */
.jj-pp-pancha-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.jj-pp-pancha-card {
    padding: 14px 10px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
}

.jj-pp-timing-card {
    padding: 12px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 85px;
}

.jj-pp-moon-sign-card {
    padding: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.jj-pp-inaus-card {
    padding: 10px 4px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.jj-pp-pancha-icon {
    font-size: 26px;
    margin-bottom: 6px;
    line-height: 1;
}

.jj-pp-pancha-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--jj-text-muted);
    text-transform: uppercase;
    margin-bottom: 4px;
}

.jj-pp-pancha-value {
    font-family: var(--jj-font-head);
    font-size: 18px;
    font-weight: 800;
    color: var(--jj-text-main);
    line-height: 1.2;
    margin-bottom: 4px;
}

.jj-pp-pancha-meta {
    font-size: 11px;
    color: var(--jj-text-muted);
    margin-top: 6px;
    padding-top: 2px;
}

.jj-pp-pancha-next {
    font-size: 10px;
    color: var(--jj-accent);
    margin-top: 3px;
    font-weight: 600;
    background: rgba(181, 69, 27, 0.05);
    padding: 1px 6px;
    border-radius: 4px;
}

/* ── Timings Grid ─────────────────────────────────────────────── */
.jj-pp-timings-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.jj-pp-timing-card {
    background: #fff;
    border: 1px solid var(--jj-border);
    border-radius: 16px;
    padding: 12px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 85px;
}

.jj-pp-timing-value {
    font-size: 17px;
    margin-top: 2px;
}

.jj-pp-moon-sign-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 12px;
}

.jj-pp-moon-sign-card {
    background: #fff;
    border: 1px solid var(--jj-border);
    border-radius: 16px;
    padding: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}

/* ── Inauspicious ─────────────────────────────────────────────── */
.jj-pp-inauspicious-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.jj-pp-inaus-card {
    background: #fff;
    border: 1px solid var(--jj-border);
    border-radius: 14px;
    padding: 10px 4px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.jj-pp-inaus-dot {
    margin-bottom: 2px;
}

.jj-pp-inaus-label {
    font-size: 10px;
    font-weight: 600;
    white-space: nowrap;
}

.jj-pp-inaus-value {
    font-size: 14px;
    font-weight: 700;
    color: var(--jj-text-main);
}

/* ── Auspicious ───────────────────────────────────────────────── */
.jj-pp-abhijit-card {
    background: #fff;
    border: 2px solid var(--jj-amber);
    border-radius: 20px;
    padding: 16px 20px;
}

/* ── Responsive ───────────────────────────────────────────────── */
@media (min-width: 700px) {
    .jj-pp-pancha-grid {
        grid-template-columns: repeat(5, 1fr);
    }

    .jj-pp-pancha-card {
        min-height: auto;
    }

    .jj-pp-timings-grid {
        grid-template-columns: repeat(4, 1fr);
    }

    .jj-pp-inauspicious-grid {
        gap: 16px;
    }

    .jj-pp-inaus-card {
        padding: 16px;
        gap: 8px;
    }

    .jj-pp-inaus-value {
        font-size: 18px;
    }

    .jj-pp-cta-grid {
        flex-direction: row;
    }

    .jj-pp-cta-card {
        flex: 1;
    }
}

/* ── CTA Section ──────────────────────────────────────────────── */
.jj-pp-cta-grid {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-top: 20px;
}

.jj-pp-cta-card {
    background: #fff;
    border: 1.5px solid var(--jj-border);
    border-radius: 18px;
    padding: 20px 24px;
    display: flex;
    align-items: center;
    gap: 20px;
    text-decoration: none !important;
    color: var(--jj-text-main) !important;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(110, 74, 57, 0.05);
}

.jj-pp-cta-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(110, 74, 57, 0.1);
    border-color: var(--jj-accent);
}

.jj-pp-cta-card-red {
    background: var(--jj-accent);
    border-color: var(--jj-accent);
    color: #fff !important;
}

.jj-pp-cta-card-red * {
    color: #fff !important;
}

.jj-pp-cta-icon {
    font-size: 32px;
    flex-shrink: 0;
}

.jj-pp-cta-card strong {
    display: block;
    font-family: var(--jj-font-head);
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 2px;
}

.jj-pp-cta-card small {
    display: block;
    font-size: 13px;
    opacity: 0.8;
}

.jj-pp-cta-arrow {
    margin-left: auto;
    font-size: 20px;
    opacity: 0.6;
    transition: transform 0.3s ease;
}

.jj-pp-cta-card:hover .jj-pp-cta-arrow {
    transform: translateX(5px);
    opacity: 1;
}

/* Immersive Landing Page */
.jj-landing-page {
    padding: 0;
    background: var(--jj-bg-primary);
}

.jj-landing-page .jj-notice-board {
    margin-left: var(--jj-pad-x);
    margin-right: var(--jj-pad-x);
}

@media (min-width: 848px) {
    .jj-landing-page .jj-notice-board {
        margin-left: auto;
        margin-right: auto;
    }
}

/* Immersive Hero Section */
.jj-landing-hero {
    background: var(--jj-bg-secondary);
    border-bottom: 1px solid var(--jj-border);
    padding: 80px 24px 60px;
    text-align: center;
    border-radius: 0 0 40px 40px;
    margin-bottom: -40px;
    position: relative;
    z-index: 1;
}

.jj-landing-hero .jj-hero-badge {
    display: inline-block;
    background: #fff;
    border: 1px solid var(--jj-amber);
    border-radius: 24px;
    padding: 6px 20px;
    font-size: 0.9rem;
    font-family: 'Outfit', sans-serif;
    color: var(--jj-amber);
    margin-bottom: 20px;
    letter-spacing: 0.05em;
    font-weight: 600;
}

.jj-landing-hero h1 {
    font-family: 'Outfit', sans-serif;
    font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: 800;
    color: var(--jj-text-main);
    margin: 0 0 16px;
    line-height: 1.2;
}

.jj-landing-hero .jj-hero-sub {
    font-family: 'DM Sans', sans-serif;
    font-size: 1.15rem;
    color: var(--jj-text-muted);
    max-width: 650px;
    margin: 0 auto 10px;
    line-height: 1.6;
}

.jj-hero-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--jj-accent);
    color: #fff !important;
    font-family: 'Outfit', sans-serif;
    font-weight: 700;
    font-size: 1.1rem;
    padding: 14px 32px;
    border-radius: 30px;
    text-decoration: none;
    box-shadow: 0 8px 24px rgba(200, 106, 77, 0.25);
    transition: transform 0.3s, box-shadow 0.3s;
}

.jj-hero-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 32px rgba(200, 106, 77, 0.35);
}

/* Value Grid */
.jj-value-grid {
    max-width: 1000px;
    margin: 80px auto 40px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
    padding: 0 24px;
    position: relative;
    z-index: 2;
}

.jj-value-card {
    background: #fff;
    border: 1px solid var(--jj-border);
    border-radius: 20px;
    padding: 32px 24px;
    text-align: center;
    box-shadow: 0 10px 30px rgba(110, 74, 57, 0.05);
    transition: transform 0.3s, box-shadow 0.3s;
}

.jj-value-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 40px rgba(110, 74, 57, 0.08);
    border-color: var(--jj-amber);
}

.jj-value-card span.icon {
    font-size: 2.5rem;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 70px;
    height: 70px;
    background: var(--jj-bg-secondary);
    border-radius: 50%;
    margin: 0 auto 20px;
    box-shadow: inset 0 2px 5px rgba(255, 255, 255, 0.8);
}

.jj-value-card h3 {
    font-family: 'Outfit', sans-serif;
    font-size: 1.3rem;
    color: var(--jj-text-main);
    margin-bottom: 12px;
}

.jj-value-card p {
    font-family: 'DM Sans', sans-serif;
    font-size: 0.95rem;
    color: var(--jj-text-muted);
    line-height: 1.6;
    margin: 0;
}

/* Glassmorphic Notice Board */
.jj-notice-board {
    max-width: 800px;
    margin: 0 auto 30px;
    background: rgba(255, 255, 255, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.9);
    border-top: 4px solid var(--jj-amber);
    border-radius: 20px;
    padding: 32px;
    backdrop-filter: blur(12px);
    box-shadow: 0 10px 30px rgba(110, 74, 57, 0.04);
}

.jj-notice-board h3 {
    font-family: 'Outfit', sans-serif;
    font-size: 1.3rem;
    color: var(--jj-amber);
    margin: 0 0 20px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.jj-notice-board ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.jj-notice-board ul li {
    position: relative;
    padding-left: 24px;
    margin-bottom: 12px;
    font-family: 'DM Sans', sans-serif;
    font-size: 1.05rem;
    color: var(--jj-text-main);
    line-height: 1.5;
}

.jj-notice-board ul li::before {
    content: "✓";
    color: var(--jj-accent);
    position: absolute;
    left: 0;
    font-weight: 800;
    font-size: 1.1rem;
}

.jj-notice-board p {
    font-family: 'DM Sans', sans-serif;
}

/* Centered Form Area */
.jj-form-container {
    max-width: 700px;
    margin: 0 auto 30px;
    padding: 0 24px;
}

.jj-form-card {
    background: #fff;
    border: 1px solid var(--jj-border);
    border-radius: 24px;
    box-shadow: 0 20px 50px rgba(110, 74, 57, 0.08);
    padding: 40px 32px;
}

.jj-form-card h2 {
    font-family: 'Outfit', sans-serif;
    font-size: 1.8rem;
    color: var(--jj-text-main);
    text-align: center;
    margin: 0 0 8px;
}

.jj-form-card p.form-subtitle {
    text-align: center;
    font-family: 'DM Sans', sans-serif;
    color: var(--jj-text-muted);
    margin-bottom: 32px;
    font-size: 1.05rem;
}

/* Payment Footer */
.jj-payment-section {
    max-width: 800px;
    margin: 0 auto 80px;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

@media (max-width: 600px) {
    .jj-payment-section {
        grid-template-columns: 1fr;
    }
}

.jj-payment-box {
    background: var(--jj-bg-secondary);
    border: 1px solid var(--jj-border);
    border-radius: 16px;
    padding: 28px 24px;
    font-family: 'DM Sans', sans-serif;
    font-size: 0.95rem;
    color: var(--jj-text-main);
}

.jj-payment-box p {
    margin: 0 0 8px;
}

.jj-payment-box h4 {
    font-family: 'Outfit', sans-serif;
    color: var(--jj-text-main);
    margin: 0 0 16px;
    font-size: 1.15rem;
    display: flex;
    align-items: center;
    gap: 8px;
}

.jj-sample-box {
    background: #fff;
    border: 1.5px dashed var(--jj-amber);
    border-radius: 16px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    transition: all 0.3s;
}

.jj-sample-box:hover {
    background: rgba(212, 175, 55, 0.05);
    border-style: solid;
}

.jj-sample-box a {
    font-family: 'Outfit', sans-serif;
    font-weight: 700;
    color: var(--jj-accent);
    text-decoration: none;
    font-size: 1.1rem;
    margin-top: 8px;
    padding-bottom: 2px;
    border-bottom: 2px solid transparent;
    transition: border-color 0.3s;
}

.jj-sample-box a:hover {
    border-color: var(--jj-accent);
}

.jj-sample-box p {
    font-family: 'DM Sans', sans-serif;
    color: var(--jj-text-muted);
}

/* === ODIA CALENDAR 2026 REDESIGN === */

/* ── Intro Card ── */
.jj-cal-intro-card {
    background: var(--jj-bg-secondary);
    border: 1px solid var(--jj-border);
    border-radius: 16px;
    padding: 32px 36px;
    margin-bottom: 32px;
    text-align: left;
}
.jj-cal-intro-teaser {
    font-family: 'DM Sans', sans-serif;
    font-size: 0.95rem;
    color: var(--jj-text-muted);
    margin: 0 0 12px;
    line-height: 1.7;
}
.jj-cal-intro-title {
    font-family: 'Outfit', sans-serif !important;
    font-size: clamp(1.8rem, 4vw, 2.4rem) !important;
    font-weight: 800 !important;
    color: var(--jj-accent) !important;
    margin: 0 0 16px !important;
    line-height: 1.2;
}
.jj-cal-intro-desc {
    font-family: 'DM Sans', sans-serif;
    font-size: 1rem;
    color: var(--jj-text-main);
    margin: 0;
    line-height: 1.8;
    max-width: 720px;
}
@media (max-width: 768px) {
    .jj-cal-intro-card {
        padding: 24px 20px;
        border-radius: 12px;
    }
}

/* ── Footer Section ── */
.jj-cal-footer-section {
    background: #fff;
    border: 1px solid var(--jj-border);
    border-radius: 16px;
    padding: 40px 36px;
    margin-top: 24px;
}
.jj-cal-footer-grid {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 40px;
}

/* Previous Years List */
.jj-cal-prev-years {
    border-right: 1px solid var(--jj-border);
    padding-right: 36px;
}

@media (max-width: 768px) {
    .jj-cal-footer-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .jj-cal-footer-section {
        padding: 24px 20px;
        border-radius: 12px;
    }
    .jj-cal-prev-years {
        border-right: none;
        border-bottom: 1px solid var(--jj-border);
        padding-right: 0;
        padding-bottom: 24px;
    }
}
.jj-cal-footer-h3 {
    font-family: 'Outfit', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: var(--jj-text-main) !important;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 0 0 16px !important;
}
.jj-cal-year-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.jj-cal-year-list li {
    margin-bottom: 8px;
}
.jj-cal-year-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: 'DM Sans', sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--jj-accent) !important;
    text-decoration: none !important;
    transition: all 0.15s;
}
.jj-cal-year-link::before {
    content: '→';
    font-size: 0.85rem;
    opacity: 0.6;
}
.jj-cal-year-link:hover {
    color: var(--jj-text-main) !important;
    padding-left: 4px;
}

/* About / Editorial Text */
.jj-cal-footer-h2 {
    font-family: 'Outfit', sans-serif !important;
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    color: var(--jj-accent) !important;
    margin: 0 0 12px !important;
}
.jj-cal-about-text {
    font-family: 'DM Sans', sans-serif;
    font-size: 0.95rem;
    color: var(--jj-text-main);
    line-height: 1.8;
    margin-bottom: 24px;
}
.jj-cal-about-text strong {
    color: var(--jj-accent);
}
.jj-cal-about-text a {
    color: var(--jj-accent);
    text-decoration: underline;
    text-underline-offset: 2px;
}


/* ── Sticky Month Nav with Arrows ── */
.jj-cal-nav-wrap {
    position: sticky;
    top: 70px;
    z-index: 200;
    display: flex;
    align-items: center;
    background: rgba(252, 248, 242, 0.96);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--jj-border);
    transition: top 0.3s ease;
}
.jj-cal-nav-arrow {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: 1.2rem;
    color: var(--jj-accent);
    padding: 0;
    transition: background 0.15s;
    z-index: 1;
}
@media (hover: hover) {
    .jj-cal-nav-arrow:hover {
        background: var(--jj-bg-secondary);
        border-radius: 50%;
    }
}
.jj-cal-nav {
    flex: 1;
    display: flex;
    gap: 6px;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    scroll-behavior: smooth;
    padding: 10px 4px;
}
.jj-cal-nav::-webkit-scrollbar { display: none; }

.jj-cal-nav a {
    flex-shrink: 0;
    display: inline-block;
    padding: 6px 14px;
    border-radius: 20px;
    border: 1px solid var(--jj-border);
    background: #fff;
    color: var(--jj-text-main);
    font-family: 'Outfit', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
    white-space: nowrap;
}
@media (hover: hover) {
    .jj-cal-nav a:hover {
        background: var(--jj-accent);
        color: #fff !important;
        border-color: var(--jj-accent);
    }
}
.jj-cal-nav a.jj-cal-active {
    background: var(--jj-accent);
    color: #fff !important;
    border-color: var(--jj-accent);
}
.jj-cal-nav a[data-current="true"]::after {
    content: ' \25CF';
    font-size: 0.5rem;
    vertical-align: super;
    color: var(--jj-amber);
}

/* Month Card */
.jj-cal-month-card {
    background: #fff;
    border-radius: 16px;
    border: 1px solid var(--jj-border);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
    margin-bottom: 40px;
    overflow: hidden;
    scroll-margin-top: 130px;
}

/* Month Header — left accent border replaces badge */
.jj-cal-month-header {
    display: flex !important;
    align-items: center !important;
    padding: 18px 24px !important;
    border-bottom: 1px solid var(--jj-border);
    border-left: 4px solid var(--jj-accent);
}
.jj-cal-month-header h2 {
    margin: 0 !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    color: var(--jj-accent) !important;
    line-height: 1.2;
}

/* Special Dates Chips Bar */
.jj-cal-dates-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 12px 24px;
    background: var(--jj-bg-secondary);
    border-bottom: 1px solid var(--jj-border);
}
.jj-cal-chip {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 16px;
    background: #fff;
    border: 1px solid var(--jj-border);
    font-size: 0.8rem;
    color: var(--jj-text-main);
    font-family: 'DM Sans', sans-serif;
}

/* Month Grid: Image + Table */
.jj-cal-month-grid {
    display: grid !important;
    grid-template-columns: 260px 1fr !important;
    gap: 0 !important;
}

/* Image Panel */
.jj-cal-img-panel {
    padding: 20px;
    border-right: 1px solid var(--jj-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    background: var(--jj-bg-primary);
}

@media (max-width: 768px) {
    .jj-cal-month-grid {
        grid-template-columns: 1fr !important;
    }
    .jj-cal-img-panel {
        border-right: none;
        border-bottom: 1px solid var(--jj-border);
    }
}
.jj-cal-img-panel img {
    width: 100%;
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.10);
    display: block;
}
.jj-cal-zoom-btn {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    padding: 8px 18px;
    border-radius: 8px;
    border: 1.5px solid var(--jj-accent);
    color: var(--jj-accent) !important;
    background: #fff;
    font-family: 'Outfit', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none !important;
    transition: all 0.2s;
    width: 100%;
    justify-content: center;
    box-sizing: border-box;
    cursor: pointer;
}
.jj-cal-zoom-btn:hover {
    background: var(--jj-accent) !important;
    color: #fff !important;
}

/* Lightbox Modal */
.jj-cal-lightbox {
    position: fixed;
    top: 0; left: 0; width: 100vw; height: 100vh;
    background: rgba(0,0,0,0.85);
    z-index: 9999;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
}
.jj-cal-lightbox.active {
    opacity: 1;
    pointer-events: auto;
}
.jj-cal-lightbox img {
    max-width: 90vw;
    max-height: 90vh;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.5);
    object-fit: contain;
    /* Removed transform transitions so JS pan/zoom is instant */
}
.jj-cal-lightbox-close {
    position: absolute;
    top: 20px;
    right: 30px;
    color: white;
    font-size: 40px;
    cursor: pointer;
    background: none;
    border: none;
    line-height: 1;
    padding: 10px;
    z-index: 10000;
}

/* Festival Table Panel */
.jj-cal-table-panel {
    padding: 20px;
    overflow-x: auto;
}
.jj-cal-table {
    width: 100%;
    border-collapse: collapse;
    font-family: 'DM Sans', sans-serif;
    font-size: 0.9rem;
}
.jj-cal-table thead th {
    background: var(--jj-accent) !important;
    color: #fff !important;
    padding: 10px 12px;
    text-align: left;
    font-weight: 600;
    font-family: 'Outfit', sans-serif;
}
.jj-cal-table thead th:first-child { border-radius: 6px 0 0 0; }
.jj-cal-table thead th:last-child  { border-radius: 0 6px 0 0; }
.jj-cal-table tbody tr {
    border-bottom: 1px solid var(--jj-border);
    transition: background 0.15s;
}
.jj-cal-table tbody tr:nth-child(even) { background: var(--jj-bg-secondary); }
.jj-cal-table tbody tr:hover { background: var(--jj-bg-tertiary); }
.jj-cal-table tbody td {
    padding: 9px 12px;
    vertical-align: middle;
    color: var(--jj-text-main);
}
.jj-cal-table tbody td:first-child {
    font-weight: 700;
    color: var(--jj-accent);
    white-space: nowrap;
}
.jj-cal-table tbody td:nth-child(2) {
    color: var(--jj-text-muted);
    white-space: nowrap;
}

/* ── 3x4 Month Grid on Main Calendar ── */
.jj-cal-grid-12 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin: 32px 0 40px;
}
@media (max-width: 900px) {
    .jj-cal-grid-12 {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
}
@media (max-width: 580px) {
    .jj-cal-grid-12 {
        grid-template-columns: 1fr;
        gap: 18px;
    }
}

.jj-cal-card {
    background: #ffffff;
    border: 1px solid var(--jj-border);
    border-radius: 14px;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
    display: flex;
    flex-direction: column;
}
.jj-cal-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(139, 44, 13, 0.1);
    border-color: var(--jj-accent);
}

.jj-cal-card-thumb-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--jj-bg-secondary);
}
.jj-cal-card-thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    display: block;
    transition: transform 0.3s ease;
}
.jj-cal-card:hover .jj-cal-card-thumb {
    transform: scale(1.03);
}

.jj-cal-card-body {
    padding: 18px 20px 20px;
    display: flex;
    flex-direction: column;
    flex: 1;
    text-align: center;
}
.jj-cal-card-title {
    font-family: 'Outfit', sans-serif !important;
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    color: var(--jj-text-main) !important;
    margin: 0 0 4px !important;
}
.jj-cal-card-masa {
    font-family: 'DM Sans', sans-serif;
    font-size: 0.88rem;
    color: var(--jj-accent);
    font-weight: 600;
    margin-bottom: 16px;
    display: block;
}
.jj-cal-card-btn {
    margin-top: auto;
    display: inline-block;
    padding: 10px 18px;
    background: var(--jj-accent);
    color: #ffffff !important;
    font-family: 'Outfit', sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    text-decoration: none !important;
    border-radius: 8px;
    transition: background 0.15s ease, transform 0.15s ease;
}
.jj-cal-card-btn:hover {
    background: #6f1d06;
    color: #ffffff !important;
    transform: translateY(-1px);
}

/* ── Month Single Page Architecture ── */
.jj-cal-single-wrap {
    margin: 12px 0 40px;
}
.jj-cal-breadcrumb {
    font-family: 'DM Sans', sans-serif;
    font-size: 0.9rem;
    color: var(--jj-text-muted);
    margin-bottom: 20px;
}
.jj-cal-breadcrumb a {
    color: var(--jj-accent);
    text-decoration: none;
}
.jj-cal-breadcrumb a:hover {
    text-decoration: underline;
}

.jj-cal-month-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: var(--jj-bg-secondary);
    border: 1px solid var(--jj-border);
    border-radius: 12px;
    margin: 20px 0 24px;
    flex-wrap: wrap;
}
.jj-cal-nav-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'Outfit', sans-serif;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--jj-accent) !important;
    text-decoration: none !important;
    padding: 7px 14px;
    background: #ffffff;
    border: 1px solid var(--jj-border);
    border-radius: 8px;
    transition: all 0.15s ease;
}
.jj-cal-nav-btn:hover {
    background: var(--jj-accent);
    color: #ffffff !important;
    border-color: var(--jj-accent);
}
.jj-cal-nav-btn.hub-link {
    font-weight: 700;
}
.jj-cal-nav-btn.hub-link::before {
    content: "";
    display: inline-block;
    width: 15px;
    height: 15px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E") no-repeat center / contain;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E") no-repeat center / contain;
    margin-right: 6px;
    vertical-align: -2px;
}

/* ── Month Single Page Layout: Full-Width Image + Table Below ── */
.jj-cal-single-wrap .jj-cal-month-card {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    margin-top: 24px !important;
}

.jj-cal-single-wrap .jj-cal-month-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 32px !important;
}

.jj-cal-single-wrap .jj-cal-img-panel {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    box-sizing: border-box !important;
}

.jj-cal-single-wrap .jj-cal-img-panel img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    border-radius: 12px !important;
    border: 1px solid var(--jj-border) !important;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08) !important;
    display: block !important;
    margin: 0 auto !important;
}

.jj-cal-single-wrap .jj-cal-zoom-btn {
    width: auto !important;
    min-width: 220px !important;
    margin-top: 14px !important;
    padding: 10px 24px !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    border-radius: 10px !important;
}

.jj-cal-single-wrap .jj-cal-table-panel {
    width: 100% !important;
    padding: 20px 24px !important;
    background: var(--jj-bg-primary) !important;
    border: 1px solid var(--jj-border) !important;
    border-radius: 14px !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04) !important;
    box-sizing: border-box !important;
}

.jj-cal-single-wrap .jj-cal-table-panel h3 {
    font-family: 'Outfit', sans-serif !important;
    font-size: 1.3rem !important;
    font-weight: 700 !important;
    color: var(--jj-accent) !important;
    margin: 0 0 16px !important;
}

.jj-cal-single-wrap .jj-cal-table {
    width: 100% !important;
    display: table !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    margin: 0 !important;
}

.jj-cal-single-wrap .jj-cal-table th:nth-child(1),
.jj-cal-single-wrap .jj-cal-table td:nth-child(1) {
    width: 90px !important;
    padding: 10px 8px !important;
    white-space: nowrap !important;
    text-align: center !important;
}

.jj-cal-single-wrap .jj-cal-table th:nth-child(2),
.jj-cal-single-wrap .jj-cal-table td:nth-child(2) {
    width: 130px !important;
    padding: 10px 8px !important;
    white-space: nowrap !important;
}

.jj-cal-single-wrap .jj-cal-table th:nth-child(3),
.jj-cal-single-wrap .jj-cal-table td:nth-child(3) {
    width: auto !important;
    padding: 10px 14px !important;
    white-space: normal !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
}

@media (max-width: 600px) {
    .entry-content:has(.jj-cal-single-wrap) {
        padding-left: 4px !important;
        padding-right: 4px !important;
    }
    .jj-cal-single-wrap .jj-cal-table-panel {
        padding: 14px 10px !important;
    }
    .jj-cal-single-wrap .jj-cal-table th:nth-child(1),
    .jj-cal-single-wrap .jj-cal-table td:nth-child(1) {
        width: 58px !important;
        padding: 8px 4px !important;
        font-size: 0.82rem !important;
    }
    .jj-cal-single-wrap .jj-cal-table th:nth-child(2),
    .jj-cal-single-wrap .jj-cal-table td:nth-child(2) {
        width: 78px !important;
        padding: 8px 4px !important;
        font-size: 0.82rem !important;
    }
    .jj-cal-single-wrap .jj-cal-table th:nth-child(3),
    .jj-cal-single-wrap .jj-cal-table td:nth-child(3) {
        padding: 8px 8px !important;
        font-size: 0.85rem !important;
        line-height: 1.4 !important;
    }
}

/* Editorial Layout (Vastu) */
.jj-editorial-card {
    max-width: 900px;
    margin: 0 auto;
    background: #ffffff;
    border: 1px solid var(--jj-border);
    border-radius: 24px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.03);
    padding: 48px;
}

@media (max-width: 768px) {
    .jj-editorial-card {
        padding: 24px 20px;
        border-radius: 16px;
    }
}

.jj-editorial-content {
    max-width: 800px;
    margin: 60px auto;
    padding: 0 24px;
    font-family: 'DM Sans', sans-serif;
    font-size: 1.1rem;
    line-height: 1.8;
    color: var(--jj-text);
}

.jj-editorial-content p {
    margin-bottom: 24px;
}

.jj-quote-box {
    background: var(--jj-surface);
    border-left: 6px solid var(--jj-accent);
    padding: 32px;
    margin: 40px 0;
    border-radius: 0 16px 16px 0;
    font-family: 'Outfit', sans-serif;
    font-size: 1.3rem;
    color: var(--jj-primary);
    font-style: italic;
}

/* ── Vastu Hub Navigation — Premium Feature Tiles ── */
.jj-hub-section-label {
    text-align: center;
    font-family: 'Outfit', sans-serif;
    font-size: 0.78rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--jj-accent);
    font-weight: 700;
    margin-bottom: 12px;
}

.jj-hub-section-title {
    text-align: center;
    font-family: 'Outfit', sans-serif;
    font-size: clamp(1.5rem, 4vw, 2.1rem);
    font-weight: 800;
    color: var(--jj-primary);
    margin: 0 0 8px;
}

.jj-hub-section-sub {
    text-align: center;
    font-family: 'DM Sans', sans-serif;
    font-size: 1rem;
    color: var(--jj-text);
    opacity: 0.75;
    margin: 0 0 44px;
}

.jj-hub-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}

@media (max-width: 600px) {
    .jj-hub-grid {
        grid-template-columns: 1fr;
    }
}

/* Compact link-row card */
.jj-hub-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: #ffffff;
    border: 1px solid var(--jj-border);
    border-left: 3px solid transparent;
    border-radius: 10px;
    text-decoration: none;
    color: var(--jj-primary);
    font-family: 'DM Sans', sans-serif;
    font-weight: 600;
    font-size: 0.95rem;
    transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.jj-hub-card:hover {
    border-left-color: var(--jj-accent);
    background: var(--jj-surface);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}

.jj-hub-card .icon {
    font-size: 1.2rem;
    flex-shrink: 0;
    width: 28px;
    text-align: center;
}

.jj-hub-card .jj-hub-card-number {
    font-size: 0.72rem;
    font-weight: 800;
    color: var(--jj-accent);
    font-family: 'Outfit', sans-serif;
    opacity: 0.7;
    flex-shrink: 0;
    min-width: 20px;
}

.jj-hub-card .jj-hub-card-title {
    flex: 1;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--jj-primary);
    line-height: 1.3;
}

.jj-hub-card .jj-hub-card-arrow {
    font-size: 0.90rem;
    color: var(--jj-accent);
    font-weight: 500;
    font-family: 'Outfit', sans-serif;
    flex-shrink: 0;
    white-space: nowrap;
    padding: 4px 12px;
    border: 1.5px solid var(--jj-accent);
    border-radius: 20px;
    background: transparent;
    transition: background 0.2s ease, color 0.2s ease;
}

.jj-hub-card:hover .jj-hub-card-arrow {
    background: var(--jj-accent);
    color: #fff;
    transform: none;
    opacity: 1;
}


/* Authority Profile Layout (About) */
.jj-profile-card {
    max-width: 900px;
    margin: 70px auto;
    padding: 40px;
    background: #fff;
    border-radius: 24px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.05);
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.jj-profile-img {
    flex: 0 0 250px;
}

@media (max-width: 768px) {
    .jj-profile-card {
        flex-direction: column;
        padding: 24px;
        align-items: center;
        text-align: center;
    }

    .jj-profile-img {
        flex: none;
        width: 150px;
        height: 150px;
        margin-bottom: 16px;
    }

    .jj-profile-actions {
        flex-direction: column;
        width: 100%;
        gap: 12px;
    }

    .jj-profile-actions .jj-button {
        width: 100%;
        box-sizing: border-box;
        text-align: center;
    }
}

.jj-profile-img img {
    width: 100%;
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}

.jj-profile-content h2 {
    font-family: 'Outfit', sans-serif;
    color: var(--jj-primary);
    font-size: 2rem;
    margin: 0 0 8px;
}

.jj-profile-content h4 {
    font-family: 'DM Sans', sans-serif;
    color: var(--jj-secondary);
    font-weight: 500;
    margin: 0 0 24px;
}

.jj-profile-actions {
    display: flex;
    gap: 16px;
    margin-top: 32px;
}

/* Contact Hub Layout */
.jj-contact-grid {
    max-width: 1100px;
    margin: 30px auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    padding: 0 24px;
}

@media (max-width: 768px) {
    .jj-contact-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.jj-contact-box {
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(8px);
    border: 1px solid var(--jj-border);
    padding: 8px 12px;
    border-radius: 16px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.jj-contact-box .icon {
    font-size: 2rem;
    display: block;
    margin-bottom: 16px;
}

.jj-contact-box h3 {
    font-family: 'Outfit', sans-serif;
    color: var(--jj-primary);
    font-size: 1.2rem;
    margin-bottom: 8px;
}

.jj-contact-box p {
    font-family: 'DM Sans', sans-serif;
    color: var(--jj-text);
}

/* ==========================================================================
   Special Layout for Janma Patrika (Post 189)
   ========================================================================== */

.jj-jataka-page {
    background: var(--jj-bg-primary);
    padding: 0;
}

.jj-jataka-page .jj-container {
    padding-left: var(--jj-pad-x);
    padding-right: var(--jj-pad-x);
}

.jj-jataka-page .jj-jataka-hero .jj-container {
    padding-left: 0;
    padding-right: 0;
}

@media (max-width: 768px) {
    .jj-jataka-page .jj-container:has(.jj-jataka-features) {
        padding-left: 0;
        padding-right: 0;
    }
}

/* ==========================================================================
   Janma Patrika Service Layout
   ========================================================================== */

.jj-jataka-page {
    background: var(--jj-bg-primary);
    padding: 30px 0 60px;
}

.jj-split-layout,
.jj-jataka-split-layout {
    display: grid;
    grid-template-columns: 1fr 1.25fr;
    gap: 36px;
    align-items: flex-start;
}

/* Left Column: Hero, Value, Sample, Payment */
.jj-split-left-col,
.jj-jataka-left-col {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.jj-split-hero-content,
.jj-jataka-hero-content {
    background: linear-gradient(135deg, var(--jj-bg-secondary) 0%, rgba(200, 106, 76, 0.08) 100%);
    border: 1px solid var(--jj-border);
    border-radius: 20px;
    padding: 32px 28px;
    position: relative;
    overflow: hidden;
}

.jj-split-hero-content::before,
.jj-jataka-hero-content::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(212, 175, 55, 0.12) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

.jj-split-hero-content .jj-hero-badge,
.jj-jataka-hero-content .jj-hero-badge {
    display: inline-block;
    background: #fff;
    border: 1px solid var(--jj-amber);
    border-radius: 20px;
    padding: 5px 16px;
    font-size: 0.85rem;
    font-family: 'Outfit', sans-serif;
    color: var(--jj-amber);
    margin-bottom: 14px;
    font-weight: 600;
    box-shadow: 0 2px 8px rgba(212, 175, 55, 0.1);
}

.jj-split-hero-content .odia-title,
.jj-jataka-hero-content .odia-title,
.jj-split-hero-content .jj-hero-title,
.jj-jataka-hero-content .jj-hero-title {
    font-weight: 800;
    font-size: clamp(2.4rem, 4vw, 3.4rem);
    color: var(--jj-text-main);
    line-height: 1.15;
    margin: 0 0 6px;
}

.jj-split-hero-content .jj-jataka-title-en,
.jj-jataka-hero-content .jj-jataka-title-en,
.jj-split-hero-content .jj-hero-title-en,
.jj-jataka-hero-content .jj-hero-title-en {
    font-family: 'Outfit', sans-serif;
    font-size: clamp(0.95rem, 2vw, 1.2rem);
    font-weight: 700;
    color: var(--jj-accent);
    text-transform: uppercase;
    letter-spacing: 2px;
    margin: 0 0 14px;
}

.jj-split-hero-content .jj-hero-sub,
.jj-jataka-hero-content .jj-hero-sub {
    font-family: 'DM Sans', sans-serif;
    font-size: 1.05rem;
    color: var(--jj-text-muted);
    line-height: 1.65;
    margin: 0;
}

.jj-mobile-hero-cta {
    display: none;
    margin-top: 18px;
}

.jj-mobile-hero-cta .jj-hero-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--jj-accent) 0%, var(--jj-accent-dark) 100%);
    color: #fff !important;
    padding: 14px 24px;
    border-radius: 12px;
    font-size: 1.05rem;
    font-weight: 700;
    text-decoration: none;
    width: 100%;
    box-sizing: border-box;
    box-shadow: 0 8px 20px rgba(200, 106, 76, 0.3);
}

/* Left Details Wrapper */
.jj-split-left-details,
.jj-jataka-left-details {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

/* Sample Download Card */
.jj-sample-dl {
    background: linear-gradient(135deg, rgba(200, 106, 76, 0.05), rgba(212, 175, 55, 0.07));
    border: 1.5px dashed rgba(200, 106, 76, 0.35);
    border-radius: 18px;
    padding: 20px 22px;
    display: flex;
    align-items: center;
    gap: 16px;
    transition: all 0.3s;
}

.jj-sample-dl:hover {
    background: linear-gradient(135deg, rgba(200, 106, 76, 0.1), rgba(212, 175, 55, 0.1));
    border-style: solid;
}

.jj-sample-dl .dl-icon {
    font-size: 2.2rem;
    flex-shrink: 0;
}

.jj-sample-dl .dl-text a {
    display: block;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--jj-accent);
    text-decoration: none;
    margin-bottom: 3px;
}

.jj-sample-dl .dl-text a:hover {
    text-decoration: underline;
}

.jj-sample-dl .dl-text span {
    font-size: 0.9rem;
    color: var(--jj-text-muted);
}

/* Vertical 3 Value Cards */
.jj-split-features-vertical,
.jj-jataka-features-vertical {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.jj-split-features-vertical .jj-split-card,
.jj-split-features-vertical .jj-jataka-card,
.jj-jataka-features-vertical .jj-jataka-card {
    background: #ffffff;
    border: 1px solid var(--jj-border);
    border-radius: 16px;
    padding: 18px 20px;
    display: flex;
    align-items: flex-start;
    gap: 16px;
    box-shadow: 0 4px 14px rgba(110, 74, 57, 0.04);
    transition: all 0.3s ease;
}

.jj-split-features-vertical .jj-split-card:hover,
.jj-split-features-vertical .jj-jataka-card:hover,
.jj-jataka-features-vertical .jj-jataka-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(110, 74, 57, 0.08);
    border-color: rgba(212, 175, 55, 0.4);
}

.jj-split-features-vertical .jj-card-icon,
.jj-jataka-features-vertical .jj-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(212, 175, 55, 0.18), rgba(200, 106, 76, 0.12));
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.jj-split-features-vertical .jj-card-content h3,
.jj-jataka-features-vertical .jj-card-content h3 {
    font-size: 1.05rem;
    margin: 0 0 4px;
    color: var(--jj-text-main);
    font-weight: 700;
}

.jj-split-features-vertical .jj-card-content p,
.jj-jataka-features-vertical .jj-card-content p {
    font-size: 0.9rem;
    color: var(--jj-text-muted);
    line-height: 1.55;
    margin: 0;
}

/* Payment Methods */
.jj-payment-methods {
    background: #ffffff;
    border: 1px solid var(--jj-border);
    border-radius: 18px;
    padding: 22px;
    box-shadow: 0 4px 14px rgba(110, 74, 57, 0.04);
}

.jj-payment-methods h4 {
    font-size: 1.05rem;
    margin: 0 0 16px;
    color: var(--jj-text-main);
    display: flex;
    align-items: center;
    gap: 8px;
}

.payment-grid {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.pay-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.pay-label {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    font-weight: 700;
    color: var(--jj-text-muted);
}

.pay-val {
    font-size: 1rem;
    color: var(--jj-text-main);
    line-height: 1.5;
}

/* Right Column: Form Card */
.jj-split-right-col,
.jj-jataka-right-col {
    position: relative;
}

.jj-split-right-col .jj-form-card,
.jj-jataka-right-col .jj-form-card {
    background: #ffffff;
    border: 1px solid var(--jj-border);
    border-radius: 22px;
    padding: 32px 28px;
    box-shadow: 0 15px 45px rgba(110, 74, 57, 0.08);
}

/* Important Guidelines Inside Form */
.jj-jataka-notice {
    background: linear-gradient(135deg, rgba(212, 175, 55, 0.08) 0%, rgba(200, 106, 76, 0.04) 100%);
    border: 1px solid rgba(212, 175, 55, 0.35);
    border-left: 5px solid var(--jj-amber);
    border-radius: 14px;
    padding: 18px 20px;
    margin-bottom: 24px;
}

.jj-jataka-notice h3 {
    color: #926f12;
    font-size: 1.15rem;
    margin: 0 0 10px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
}

.jj-jataka-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.jj-jataka-list li {
    position: relative;
    padding-left: 20px;
    margin-bottom: 8px;
    font-size: 0.92rem;
    color: var(--jj-text-main);
    line-height: 1.5;
}

.jj-jataka-list li:last-child {
    margin-bottom: 0;
}

.jj-jataka-list li::before {
    content: '✦';
    position: absolute;
    left: 0;
    top: 0;
    color: var(--jj-accent);
    font-size: 0.95rem;
}

.jj-jataka-list li strong {
    color: var(--jj-text-main);
}

/* Collapsible Guidelines Accordion */
.jj-jataka-accordion {
    margin-top: 24px;
    background: #FFFDF9;
    border: 1px solid rgba(212, 175, 55, 0.35);
    border-radius: 14px;
    overflow: hidden;
    transition: all 0.25s ease;
}

.jj-jataka-accordion:hover {
    border-color: var(--jj-amber);
    box-shadow: 0 4px 14px rgba(110, 74, 57, 0.06);
}

.jj-accordion-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    cursor: pointer;
    user-select: none;
    list-style: none;
    font-weight: 700;
    color: #926f12;
    font-size: 0.98rem;
    background: linear-gradient(135deg, rgba(212, 175, 55, 0.08) 0%, rgba(200, 106, 76, 0.03) 100%);
    transition: background 0.2s ease;
}

.jj-accordion-summary::-webkit-details-marker {
    display: none;
}

.jj-accordion-summary:hover {
    background: linear-gradient(135deg, rgba(212, 175, 55, 0.14) 0%, rgba(200, 106, 76, 0.06) 100%);
}

.jj-accordion-summary .summary-title {
    display: flex;
    align-items: center;
    gap: 8px;
}

.jj-accordion-summary .summary-arrow {
    display: inline-block;
    transition: transform 0.25s ease;
    color: var(--jj-amber);
    font-size: 1.1rem;
    line-height: 1;
}

details[open] .jj-accordion-summary .summary-arrow {
    transform: rotate(180deg);
}

.jj-accordion-content {
    padding: 16px 20px 18px;
    border-top: 1px dashed rgba(212, 175, 55, 0.3);
    background: #ffffff;
}

.jj-accordion-content .jj-jataka-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.jj-accordion-content .jj-jataka-list li {
    position: relative;
    padding-left: 20px;
    margin-bottom: 8px;
    font-size: 0.92rem;
    color: var(--jj-text-main);
    line-height: 1.5;
}

.jj-accordion-content .jj-jataka-list li:last-child {
    margin-bottom: 0;
}

.jj-accordion-content .jj-jataka-list li::before {
    content: '✦';
    position: absolute;
    left: 0;
    top: 0;
    color: var(--jj-accent);
    font-size: 0.95rem;
}

.jj-accordion-content .jj-jataka-list li strong {
    color: var(--jj-text-main);
}

/* Compact Order Summary Bar above Submit */
.jj-order-summary-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    background: #FFF9F5;
    border: 1px dashed rgba(200, 106, 76, 0.4);
    border-radius: 8px;
    padding: 7px 12px;
    margin-bottom: 10px;
    font-size: 0.88rem;
    box-sizing: border-box;
    width: 100%;
}

.jj-summary-left {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
    color: var(--jj-text-main);
    font-weight: 600;
}

.jj-summary-delivery {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    background: rgba(46, 125, 50, 0.09);
    color: #2e7d32;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 0.78rem;
    font-weight: 700;
}

.jj-summary-pricing {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.jj-price-label {
    font-size: 0.8rem;
    color: var(--jj-text-muted);
}

.jj-price-old {
    text-decoration: line-through;
    color: #9e8e84;
    font-size: 0.85rem;
    font-weight: 500;
}

.jj-price-new {
    color: var(--jj-accent);
    font-weight: 800;
    font-size: 1.05rem;
}

@media (max-width: 480px) {
    .jj-order-summary-bar {
        padding: 6px 10px;
        font-size: 0.84rem;
        gap: 6px;
    }
}


/* Mobile & Tablet Responsiveness for Janma Patrika Split Layout */
@media (max-width: 991px) {
    .jj-split-layout,
    .jj-jataka-split-layout {
        display: flex;
        flex-direction: column;
        gap: 24px;
    }

    /* Allows hero and details to be reordered around the form */
    .jj-split-left-col,
    .jj-jataka-left-col {
        display: contents;
    }

    /* 1. Hero at top (centered on mobile/tablet) */
    .jj-split-hero-content,
    .jj-jataka-hero-content {
        order: 1;
        padding: 32px 20px 36px;
        text-align: center;
        border-radius: 18px;
    }

    .jj-split-hero-content .jj-hero-badge,
    .jj-jataka-hero-content .jj-hero-badge {
        display: inline-block;
        margin: 0 auto 12px;
    }

    .jj-split-hero-content .odia-title,
    .jj-jataka-hero-content .odia-title {
        font-size: clamp(2.2rem, 5vw, 2.8rem);
        margin: 0 0 6px;
    }

    .jj-split-hero-content .jj-jataka-title-en,
    .jj-jataka-hero-content .jj-jataka-title-en {
        margin: 0 0 14px;
    }

    .jj-split-hero-content .jj-hero-sub,
    .jj-jataka-hero-content .jj-hero-sub {
        max-width: 620px;
        margin: 0 auto;
        font-size: 1.02rem;
        line-height: 1.6;
    }

    /* Hide jump button since form is already directly below hero */
    .jj-mobile-hero-cta {
        display: none !important;
    }

    /* 2. The Form Card right below the Hero */
    .jj-split-right-col,
    .jj-jataka-right-col {
        order: 2;
    }

    .jj-split-right-col .jj-form-card,
    .jj-jataka-right-col .jj-form-card {
        padding: 26px 20px;
        border-radius: 20px;
    }

    /* 3. Sample, Features & Payment underneath the Form */
    .jj-split-left-details,
    .jj-jataka-left-details {
        order: 3;
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
}

@media (max-width: 600px) {
    .jj-split-page .jj-container,
    .jj-jataka-page .jj-container {
        padding-left: 14px;
        padding-right: 14px;
    }

    .jj-split-hero-content,
    .jj-jataka-hero-content {
        padding: 24px 16px 28px;
    }

    .jj-split-right-col .jj-form-card,
    .jj-jataka-right-col .jj-form-card {
        padding: 20px 14px !important;
        border-radius: 16px;
    }
}

.dl-text a:hover {
    text-decoration: underline;
}

.dl-text span {
    font-size: 0.95rem;
    color: var(--jj-text-muted);
}



@media (max-width: 768px) {
    .jj-jataka-hero {
        padding: 28px 14px 20px;
    }

    .jj-jataka-hero .jj-hero-badge {
        font-size: 0.76rem;
        padding: 5px 12px;
        max-width: 95%;
        white-space: normal;
        line-height: 1.35;
        margin-bottom: 12px;
    }

    .jj-jataka-hero .odia-title {
        font-size: 2.2rem;
    }

    .jj-jataka-hero .jj-jataka-title-en {
        font-size: 0.92rem;
        letter-spacing: 2px;
        margin-bottom: 12px;
    }

    .jj-jataka-hero .jj-hero-sub {
        font-size: 0.98rem;
        margin-bottom: 18px;
    }

    .jj-hero-value-pills {
        gap: 8px;
        margin-bottom: 18px;
    }

    .jj-hero-value-pills .jj-pill {
        font-size: 0.8rem;
        padding: 5px 12px;
        line-height: 1.3;
    }

    .jj-hero-actions {
        flex-direction: column;
        gap: 10px;
    }

    .jj-hero-cta,
    .jj-hero-sample-btn {
        width: 100%;
        box-sizing: border-box;
        font-size: 1rem;
        padding: 13px 20px;
    }

    #booking-form {
        margin: 10px auto 30px;
    }

    .jj-form-card {
        padding: 20px 14px;
        border-radius: 18px;
        box-sizing: border-box;
    }

    .jj-form-card-head h2 {
        font-size: 1.4rem;
        line-height: 1.3;
        word-break: break-word;
    }

    .jj-form-card-head p {
        font-size: 0.92rem;
    }

    .jj-jataka-guideline-bar {
        grid-template-columns: 1fr;
        padding: 12px 14px;
        gap: 10px;
    }

    .jj-order-summary-card {
        padding: 16px 14px;
        border-radius: 16px;
        box-sizing: border-box;
    }

    .jj-summary-specs-grid {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .jj-summary-specs-grid .jj-spec-line {
        font-size: 0.84rem;
        gap: 6px;
    }

    .jj-summary-fee-box {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
        padding: 12px 14px;
    }

    .jj-fee-val {
        width: 100%;
        justify-content: space-between;
    }

    .jj-fee-amount {
        font-size: 1.6rem;
    }

    .forminator-ui.forminator-custom-form[data-design=default] .forminator-button-submit,
    .forminator-ui .forminator-button-submit,
    .forminator-ui button[type=submit] {
        font-size: 1.05rem !important;
        padding: 15px 16px !important;
        white-space: normal !important;
        line-height: 1.3 !important;
    }

    .jj-jataka-features {
        margin-top: 0;
        grid-template-columns: 1fr;
        padding: 0 16px;
    }

    .jj-jataka-payment {
        grid-template-columns: 1fr;
    }

    /* Landing Page Specific Responsive Tweaks */
    .jj-landing-hero {
        padding: 20px 16px 30px;
    }

    .jj-landing-hero h1 {
        font-size: 1.8rem;
    }

    .jj-notice-board {
        padding: 24px 16px;
    }

    .jj-form-container {
        padding: 0 var(--jj-pad-x);
    }

    .jj-form-card {
        padding: 30px 20px;
    }

    /* Contact Page Mobile Stack */
    .jj-contact-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}

/* Authority Profile & Timeline Additions */

.jj-profile-content p strong {
    color: var(--jj-accent);
}

.jj-profile-actions .jj-button {
    display: inline-block;
    box-sizing: border-box;
    font-family: 'Outfit', sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    text-decoration: none;
    padding: 12px 28px;
    border-radius: 30px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(200, 106, 76, 0.15);
}

.jj-profile-actions .jj-button.jj-primary {
    background: var(--jj-accent);
    color: #fff !important;
    border: 1.5px solid var(--jj-accent);
}

.jj-profile-actions .jj-button.jj-primary:hover {
    background: #b55a3c;
    border-color: #b55a3c;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(200, 106, 76, 0.25);
}

.jj-profile-actions .jj-button.jj-secondary {
    background: var(--jj-bg-cream);
    color: var(--jj-accent) !important;
    border: 1.5px solid var(--jj-accent);
}

.jj-profile-actions .jj-button.jj-secondary:hover {
    background: var(--jj-accent);
    color: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(200, 106, 76, 0.25);
}

/* Credentials and Memberships */
.jj-credentials-section {
    max-width: 900px;
    margin: 0 auto 30px;
    padding: 0 20px;
}

.jj-credentials-section h3 {
    font-family: 'Outfit', sans-serif;
    color: var(--jj-text-main);
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 24px;
    border-bottom: 2px solid var(--jj-border);
    padding-bottom: 8px;
}

.jj-credentials-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
}

.jj-credential-card {
    background: #fff;
    border: 1px solid var(--jj-border);
    border-radius: 16px;
    padding: 24px 20px;
    text-align: center;
    box-shadow: 0 4px 12px rgba(110, 74, 57, 0.03);
    transition: transform 0.3s, box-shadow 0.3s;
}

.jj-credential-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(110, 74, 57, 0.08);
}

.jj-credential-card .badge-icon {
    font-size: 2.2rem;
    display: block;
    margin-bottom: 12px;
}

.jj-credential-card p {
    font-family: 'DM Sans', sans-serif;
    color: var(--jj-text-main);
    font-size: 0.95rem;
    font-weight: 600;
    margin: 0;
    line-height: 1.4;
}

/* Timeline (Awards) */
.jj-timeline-section {
    max-width: 800px;
    margin: 0 auto 60px;
    padding: 0 20px;
}

.jj-timeline-section h3 {
    font-family: 'Outfit', sans-serif;
    color: var(--jj-text-main);
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 30px;
    border-bottom: 2px solid var(--jj-border);
    padding-bottom: 8px;
}

.jj-timeline {
    position: relative;
    padding-left: 32px;
    border-left: 2px solid var(--jj-border);
    margin-left: 10px;
}

.jj-timeline-item {
    position: relative;
    margin-bottom: 28px;
}

.jj-timeline-item:last-child {
    margin-bottom: 0;
}

.jj-timeline-item::before {
    content: '';
    position: absolute;
    left: -39px;
    top: 6px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--jj-accent);
    border: 3px solid var(--jj-bg-primary);
    box-shadow: 0 0 0 2px var(--jj-accent);
    transition: transform 0.2s;
}

.jj-timeline-item:hover::before {
    transform: scale(1.3);
}

.jj-timeline-year {
    font-family: 'Outfit', sans-serif;
    font-weight: 700;
    color: var(--jj-accent);
    font-size: 1.15rem;
    margin-bottom: 4px;
}

.jj-timeline-title {
    font-family: 'DM Sans', sans-serif;
    font-weight: 600;
    color: var(--jj-text-main);
    font-size: 1.05rem;
    line-height: 1.5;
}

/* Books Grid Component */
.jj-books-section {
    max-width: 900px;
    margin: 0 auto 60px;
    padding: 0 20px;
}

.jj-books-section h3 {
    font-family: 'Outfit', sans-serif;
    color: var(--jj-text-main);
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 30px;
    border-bottom: 2px solid var(--jj-border);
    padding-bottom: 8px;
}

.jj-books-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 30px;
}

.jj-book-card {
    background: #fff;
    border: 1px solid var(--jj-border);
    border-radius: 20px;
    padding: 30px 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    box-shadow: 0 4px 20px rgba(110, 74, 57, 0.02);
    transition: transform 0.3s, box-shadow 0.3s;
}

.jj-book-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 32px rgba(110, 74, 57, 0.08);
}

.jj-book-cover {
    width: 140px;
    height: 210px;
    margin-bottom: 20px;
    border-radius: 8px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
    overflow: hidden;
    background: var(--jj-bg-secondary);
}

.jj-book-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.jj-book-card:hover .jj-book-cover img {
    transform: scale(1.05);
}

.jj-book-title {
    font-family: 'Outfit', sans-serif;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--jj-text-main);
    margin: 0 0 12px;
    line-height: 1.4;
}

.jj-book-title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s;
}

.jj-book-title a:hover {
    color: var(--jj-accent);
}

.jj-book-desc {
    font-family: 'DM Sans', sans-serif;
    font-size: 0.9rem;
    color: var(--jj-text-muted);
    line-height: 1.5;
    margin-bottom: 20px;
}

.jj-book-card .jj-button {
    font-family: 'Outfit', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
    padding: 8px 20px;
    border-radius: 20px;
    border: 1.5px solid var(--jj-accent);
    background: var(--jj-bg-cream);
    color: var(--jj-accent) !important;
    transition: all 0.2s;
    margin-top: auto;
}

.jj-book-card:hover .jj-button {
    background: var(--jj-accent);
    color: #fff !important;
}

/* Contact Hub Styling Adjustments */
.jj-contact-grid {
    margin: 40px auto 60px !important;
}

.jj-contact-box {
    background: #fff !important;
    box-shadow: 0 8px 24px rgba(110, 74, 57, 0.03) !important;
    transition: transform 0.3s, box-shadow 0.3s !important;
    border: 1px solid var(--jj-border) !important;
    padding: 30px 20px !important;
}

.jj-contact-box:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 16px 32px rgba(110, 74, 57, 0.08) !important;
}

.jj-contact-box h3 {
    color: var(--jj-text-main) !important;
    font-weight: 700 !important;
}

.jj-contact-box p {
    color: var(--jj-text-muted) !important;
}

.jj-map-container {
    max-width: 900px;
    margin: 0 auto 60px;
    padding: 0 20px;
    border-radius: 20px;
    overflow: hidden;
}

.jj-map-container iframe {
    width: 100%;
    height: 450px;
    border: 0;
    border-radius: 20px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.06);
}

/* Individual Book Detail Page Styles */
.jj-book-detail-container {
    max-width: 950px;
    margin: 40px auto 40px;
    padding: 0 20px;
}

.jj-book-detail-grid {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 40px;
    align-items: start;
    margin-bottom: 50px;
}

@media (max-width: 768px) {
    .jj-book-detail-grid {
        grid-template-columns: 1fr;
        gap: 30px;
        justify-items: center;
        text-align: center;
    }
}

.jj-book-detail-cover-wrapper {
    background: #fff;
    border: 1px solid var(--jj-border);
    border-radius: 24px;
    padding: 24px;
    box-shadow: 0 8px 30px rgba(110, 74, 57, 0.03);
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
}

.jj-book-detail-cover {
    width: 200px;
    height: 300px;
    border-radius: 12px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.12);
    overflow: hidden;
    margin-bottom: 20px;
    border: 1px solid rgba(0, 0, 0, 0.05);
}

.jj-book-detail-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.jj-book-detail-badge {
    background: var(--jj-bg-cream);
    color: var(--jj-accent);
    font-family: 'Outfit', sans-serif;
    font-size: 0.8rem;
    font-weight: 700;
    padding: 6px 14px;
    border-radius: 20px;
    border: 1px solid rgba(200, 106, 76, 0.2);
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

.jj-book-detail-specs {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin: 24px 0 0 0;
    width: 100%;
}

@media (max-width: 480px) {
    .jj-book-detail-specs {
        grid-template-columns: 1fr;
    }
}

.jj-book-spec-card {
    background: #fff;
    border: 1px solid var(--jj-border);
    border-radius: 14px;
    padding: 14px 18px;
    display: flex;
    flex-direction: column;
    box-shadow: 0 4px 12px rgba(110, 74, 57, 0.01);
    box-sizing: border-box;
}

.jj-book-spec-label {
    font-family: 'Outfit', sans-serif;
    font-size: 0.75rem;
    color: var(--jj-text-muted);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    margin-bottom: 4px;
}

.jj-book-spec-value {
    font-family: 'DM Sans', sans-serif;
    font-size: 0.95rem;
    color: var(--jj-text-main);
    font-weight: 700;
}

.jj-book-synopsis {
    background: #fff;
    border: 1px solid var(--jj-border);
    border-radius: 24px;
    padding: 35px;
    box-shadow: 0 8px 30px rgba(110, 74, 57, 0.03);
    box-sizing: border-box;
    height: 100%;
}

.jj-book-synopsis h3 {
    font-family: 'Outfit', sans-serif;
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--jj-text-main);
    margin-top: 0;
    margin-bottom: 20px;
    border-bottom: 2px solid var(--jj-border);
    padding-bottom: 10px;
}

.jj-book-synopsis p {
    font-family: 'DM Sans', sans-serif;
    font-size: 0.95rem;
    color: var(--jj-text-muted);
    line-height: 1.7;
    margin: 0 0 24px;
}

/* Purchase Section in Details */
.jj-book-purchase-box {
    padding: 24px;
    background: var(--jj-bg-cream);
    border-radius: 18px;
    border: 1.5px dashed var(--jj-accent);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 28px;
    box-sizing: border-box;
}

@media (max-width: 600px) {
    .jj-book-purchase-box {
        flex-direction: column;
        text-align: center;
        padding: 20px;
    }
}

.jj-book-purchase-text {
    font-family: 'Outfit', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    color: var(--jj-text-main);
    line-height: 1.4;
}

/* Book Previews Layout */
.jj-previews-container {
    max-width: 950px;
    margin: 0 auto 60px;
    padding: 0 20px;
}

.jj-previews-container h3 {
    font-family: 'Outfit', sans-serif;
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--jj-text-main);
    margin-top: 0;
    margin-bottom: 24px;
    border-bottom: 2px solid var(--jj-border);
    padding-bottom: 10px;
}

.jj-previews-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

@media (max-width: 768px) {
    .jj-previews-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }
}

@media (max-width: 480px) {
    .jj-previews-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}

.jj-preview-card {
    background: #fff;
    border: 1px solid var(--jj-border);
    border-radius: 20px;
    padding: 12px;
    box-shadow: 0 4px 15px rgba(110, 74, 57, 0.02);
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease;
    overflow: hidden;
    box-sizing: border-box;
}

.jj-preview-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(110, 74, 57, 0.08);
}

.jj-preview-img-wrapper {
    width: 100%;
    height: 380px;
    border-radius: 10px;
    overflow: hidden;
    background: #fdfaf8;
    border: 1px solid rgba(0, 0, 0, 0.03);
}

.jj-preview-img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.jj-preview-card:hover .jj-preview-img-wrapper img {
    transform: scale(1.03);
}

/* Back navigation */
.jj-book-navigation {
    text-align: center;
    margin-top: 40px;
}

/* ==========================================================================
   JJ MODERN RESPONSIVE GRIDS (Replaces legacy Easy Columns [ezcol] shortcodes)
   ========================================================================== */
.jj-grid-4col {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin: 28px 0;
    text-align: center;
    box-sizing: border-box;
}

.jj-grid-4col > div,
.jj-grid-4col > p {
    padding: 12px 8px;
    background: #fdfaf8;
    border: 1px solid rgba(110, 74, 57, 0.08);
    border-radius: 10px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.jj-grid-4col > div:hover,
.jj-grid-4col > p:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(110, 74, 57, 0.08);
}

.jj-grid-4col a {
    text-decoration: none;
    color: inherit;
    display: block;
}

.jj-grid-2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    align-items: start;
    margin: 28px 0;
    box-sizing: border-box;
}

.jj-grid-2col > div,
.jj-grid-2col > p {
    margin: 0;
}

.jj-grid-2col img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.06);
}

@media (max-width: 820px) {
    .jj-grid-4col {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }
    .jj-grid-2col {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

@media (max-width: 480px) {
    .jj-grid-4col {
        grid-template-columns: 1fr;
    }
}

/* =====================================================================
   GTRANSLATE MODERN REDESIGN & REPOSITIONING
   Moves language switcher to top-right header and styles it with
   bespoke warm glassmorphism matching Jantra Jyotisha branding.
   ===================================================================== */
#gt_float_wrapper,
.gtranslate_wrapper,
[id*="gt_float"],
[id^="gt-wrapper-"] {
    position: fixed !important;
    top: 14px !important;
    right: 28px !important;
    bottom: auto !important;
    left: auto !important;
    z-index: 9999 !important;
    transition: opacity 0.22s ease, visibility 0.22s ease !important;
}

.gt_float_switcher {
    background: rgba(255, 255, 255, 0.95) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    border: 1px solid rgba(232, 223, 216, 0.8) !important;
    border-radius: 20px !important;
    box-shadow: 0 4px 16px rgba(110, 74, 57, 0.10) !important;
    font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
    overflow: hidden !important;
    transition: all 0.2s ease !important;
}

.gt_float_switcher:hover {
    box-shadow: 0 6px 20px rgba(110, 74, 57, 0.16) !important;
    border-color: #c0622d !important;
}

.gt_float_switcher .gt-selected {
    background: transparent !important;
}

.gt_float_switcher .gt-selected .gt-current-lang {
    padding: 5px 12px !important;
    color: #2c2420 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.gt_float_switcher .gt-selected .gt-current-lang img {
    border-radius: 3px !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.12) !important;
    width: 18px !important;
    height: auto !important;
}

.gt_float_switcher .gt-selected .gt-current-lang span.gt-lang-code {
    text-transform: uppercase !important;
    top: 0 !important;
    color: #2c2420 !important;
}

.gt_float_switcher .gt-selected .gt-current-lang span.gt_float_switcher-arrow {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23C0622D' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>") !important;
    background-size: 10px !important;
    width: 12px !important;
    height: 12px !important;
}

.gt_float_switcher .gt_options {
    background: #ffffff !important;
    border: 1px solid #e8dfd8 !important;
    border-radius: 12px !important;
    box-shadow: 0 12px 32px rgba(110, 74, 57, 0.16) !important;
    padding: 6px 0 !important;
    margin-top: 6px !important;
}

.gt_float_switcher .gt_options a {
    padding: 8px 16px !important;
    color: #4a3e39 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    transition: background 0.15s ease, color 0.15s ease !important;
}

.gt_float_switcher .gt_options a:hover {
    background: #fdf6ee !important;
    color: #c0622d !important;
}

.gt_float_switcher .gt_options a img {
    border-radius: 3px !important;
}

/* Mobile: Dock cleanly in bottom-left corner */
@media (max-width: 768px) {
    #gt_float_wrapper,
    .gtranslate_wrapper,
    [id*="gt_float"],
    [id^="gt-wrapper-"] {
        top: auto !important;
        right: auto !important;
        bottom: 20px !important;
        left: 16px !important;
    }

    .gt_float_switcher .gt-selected .gt-current-lang {
        padding: 5px 12px !important;
        font-size: 12.5px !important;
    }

    .gt_float_switcher .gt-selected .gt-current-lang img {
        width: 17px !important;
    }
}