/* Container & Main Layout */
.np-vrat-container { font-family: inherit; margin: 25px 0; color: #222; line-height: 1.6; }
.np-page-title { font-size: 34px; font-weight: 700; margin-bottom: 22px; color: #b22222; letter-spacing: -0.5px; }

/* Year Navigation Buttons */
.np-year-nav { margin-bottom: 30px; display: flex; flex-wrap: wrap; gap: 10px; }
.np-year-btn { display: inline-block; padding: 10px 20px; background: #f4f4f4; color: #333; text-decoration: none; border-radius: 6px; font-weight: 700; font-size: 16px; transition: all 0.2s; }
.np-year-btn.active, .np-year-btn:hover { background: #b22222; color: #fff; box-shadow: 0 3px 6px rgba(178,34,34,0.3); }

/* Prominent Upcoming Featured Card */
.np-upcoming-featured-card { background: #fff8f8; border: 1px solid #ffd7d7; border-left: 6px solid #b22222; padding: 25px; border-radius: 8px; margin-bottom: 35px; box-shadow: 0 3px 8px rgba(0,0,0,0.03); }
.np-badge { background: #b22222; color: #fff; padding: 5px 12px; font-size: 12px; border-radius: 4px; text-transform: uppercase; font-weight: 700; letter-spacing: 0.5px; }
.np-featured-name { font-size: 24px; margin: 14px 0 8px; color: #111; font-weight: 700; }
.np-featured-date, .np-featured-tithi { margin: 8px 0; font-size: 17px; color: #333; }

/* Grid Layout for Cards */
.np-vrat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 20px; }

/* Individual Event Card Styling */
.np-vrat-card { background: #ffffff; border: 1px solid #ddd; border-top: 5px solid #b22222; border-radius: 8px; padding: 22px; box-shadow: 0 4px 8px rgba(0,0,0,0.04); transition: transform 0.2s, box-shadow 0.2s; }
.np-vrat-card:hover { transform: translateY(-3px); box-shadow: 0 8px 16px rgba(0,0,0,0.08); }

.np-card-date { font-size: 15px; font-weight: 600; color: #555; margin-bottom: 4px; }
.np-weekday { color: #666; font-weight: 500; }
.np-card-title { font-size: 21px; font-weight: 800; margin-bottom: 6px; color: #111; letter-spacing: -0.3px; }
.np-card-tithi, .np-card-nakshatra { font-size: 14px; color: #444; margin-bottom: 4px; line-height: 1.4; }
.np-card-tithi strong, .np-card-nakshatra strong { color: #333; font-weight: 600; }

/* --- Premium UI/UX Sidebar / Current Month Widget Styling --- */
.np-current-month-widget { background: #ffffff !important; border: 1px solid #e2e8f0 !important; border-top: 5px solid #b22222 !important; border-radius: 10px !important; padding: 20px !important; box-shadow: 0 4px 12px rgba(0,0,0,0.06) !important; margin-bottom: 25px; }
.np-widget-main-title { color: #b22222 !important; font-size: 19px !important; font-weight: 800 !important; margin: 0 0 16px 0 !important; border-bottom: 2px solid #fff0f0 !important; padding-bottom: 10px !important; letter-spacing: -0.3px; }
.np-widget-section-title { margin: 16px 0 10px 0 !important; color: #333 !important; font-size: 15px !important; font-weight: 700 !important; text-transform: uppercase; letter-spacing: 0.5px; display: flex; align-items: center; gap: 6px; }

/* High-End Card Box for Each Event */
.np-widget-event-box { background: linear-gradient(135deg, #fffcfc 0%, #fff5f5 100%); border: 1px solid #f9d5d5; border-left: 4px solid #b22222; border-radius: 8px; padding: 14px; margin-bottom: 14px; box-shadow: 0 2px 4px rgba(178,34,34,0.03); }

/* Bold, Prominent Event Title */
.np-widget-title-name { font-weight: 800; font-size: 18px !important; color: #b22222 !important; margin-bottom: 4px !important; line-height: 1.3; letter-spacing: -0.2px; }

/* Clear Date & Tithi */
.np-widget-date { font-weight: 700; color: #222 !important; font-size: 14px !important; margin-bottom: 2px !important; }
.np-widget-tithi { font-size: 13px !important; color: #555 !important; font-weight: 500; margin-bottom: 10px !important; }

/* Sleek, User-Friendly Calendar Action */
.np-cal-btn { font-size: 12px !important; background: #fff !important; color: #b22222 !important; padding: 5px 12px !important; border-radius: 4px !important; text-decoration: none !important; font-weight: 700 !important; display: inline-flex !important; align-items: center; gap: 4px; border: 1px solid #f2b6b6 !important; transition: all 0.2s; box-shadow: 0 1px 2px rgba(0,0,0,0.02); }
.np-cal-btn:hover { background: #b22222 !important; color: #fff !important; border-color: #b22222 !important; }

/* Mandatory Disclaimer Box */
.np-disclaimer-box { margin-top: 45px; padding: 20px; background: #fffdf0; border: 1px solid #fce8b2; border-left: 6px solid #f29900; font-size: 15px; line-height: 1.6; color: #333; border-radius: 6px; }

/* Compact & Next Vrat Widgets */
.np-compact-widget { display: flex; gap: 20px; background: #f9f9f9; padding: 20px; border-radius: 8px; border: 1px solid #e5e5e5; }
.np-compact-item { flex: 1; font-size: 16px; }
.np-compact-label { display: block; font-size: 12px; color: #555; text-transform: uppercase; font-weight: 700; margin-bottom: 6px; letter-spacing: 0.5px; }

/* Mobile Specific Breakpoints */
@media screen and (max-width: 768px) {
    .np-vrat-container { margin: 10px 0; padding: 0 5px; }
    .np-page-title { font-size: 24px; }
    .np-vrat-grid { grid-template-columns: 1fr; gap: 14px; }
    .np-vrat-card { padding: 16px; }
    .np-year-btn { padding: 9px 14px; font-size: 14px; flex: 1; text-align: center; }
    .np-current-month-widget { padding: 15px !important; }
}