/* ==========================================================================
   /utsav/ — festival calendar page styles
   --------------------------------------------------------------------------
   These rules used to live inline inside build/generators/build_utsav.py.
   When that generator was replaced by build/build_utsav.py the markup was
   carried over but the stylesheet was not, and the page shipped completely
   unstyled. Keeping them in a real file, linked by the template, means the
   page's appearance is now version-controlled and reviewable like everything
   else — an inline <style> block inside a Python string was never going to be.

   Loaded AFTER site.css, so equal-specificity rules here win. site.css keeps
   the cross-cutting additions it already owns (.u-staleyear, the print rule,
   the mobile touch-target floor, .u-month.u-current) — this file must not
   weaken them, so where the two overlap the site.css values are repeated here.
   ========================================================================== */

.u-wrap{max-width:1040px;margin:0 auto;padding:0 18px 46px;}

.u-intro{
  text-align:center;color:var(--muted);max-width:760px;
  margin:0 auto 6px;line-height:1.85;font-size:14.5px;
}

/* --- month jump bar ------------------------------------------------------ */
/* Sticks below the 60px global header. scroll-margin-top on the sections
   keeps an anchored month clear of both bars. */
.u-monthnav{
  display:flex;flex-wrap:wrap;gap:6px;justify-content:center;
  margin:18px 0 6px;position:sticky;top:60px;z-index:5;
  background:rgba(252,247,238,.94);padding:8px;border-radius:12px;
  backdrop-filter:blur(4px);
}
/* 44x44 minimum in both axes. These twelve chips are the page's primary
   navigation and were 40px tall — under the target on a calendar people scan
   with a thumb. */
.u-monthnav a{
  font-size:13.5px;color:var(--maroon);text-decoration:none;
  padding:6px 12px;border:1px solid var(--line);border-radius:22px;
  font-weight:600;min-height:44px;min-width:44px;
  display:inline-flex;align-items:center;justify-content:center;
}
.u-monthnav a:hover,.u-monthnav a:focus-visible{background:var(--maroon);color:#fff;border-color:var(--maroon);}
/* Current month. Marked by the page's own script from the visitor's clock, so
   it can never go stale the way a baked-in class would. The ring and weight
   carry the meaning as well as the colour does. */
.u-monthnav a.is-now{
  background:var(--gold);color:#3A2410;border-color:var(--gold);font-weight:700;
  box-shadow:0 0 0 3px rgba(184,134,11,.25);
}
.u-monthnav a.is-now:hover,.u-monthnav a.is-now:focus-visible{background:var(--maroon);color:#fff;}
.u-now{text-align:center;margin:4px 0 2px;font-size:13.5px;}
.u-now a{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  min-height:44px;padding:8px 18px;border-radius:22px;
  color:var(--maroon);font-weight:600;text-decoration:none;
  border:1px dashed var(--gold-soft);
}
.u-now a:hover,.u-now a:focus-visible{background:var(--maroon);color:#fff;border-style:solid;border-color:var(--maroon);}

/* --- legend -------------------------------------------------------------- */
.u-legend{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:14px 0 26px;}
.u-lg{
  font-size:12px;padding:4px 11px;border-radius:12px;
  font-weight:600;color:#3A2410;
}

/* --- months -------------------------------------------------------------- */
.u-month{margin:30px 0;scroll-margin-top:118px;}
.u-mhead{
  font-family:'Noto Serif Devanagari',serif;color:var(--maroon);font-size:22px;
  text-align:center;border-bottom:2px solid var(--gold);
  display:block;padding-bottom:6px;margin:0 0 16px;
}
.u-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;}

/* --- one event ----------------------------------------------------------- */
.u-row{
  display:flex;gap:12px;align-items:center;background:#fff;
  border:1px solid var(--line);border-left:4px solid var(--gold);
  border-radius:10px;padding:11px 13px;
  box-shadow:0 2px 6px rgba(107,15,26,.05);
}
.u-date{flex:0 0 56px;text-align:center;line-height:1.15;}
.u-date b{display:block;font-family:'Noto Serif Devanagari',serif;font-size:22px;color:var(--maroon);}
.u-date span{display:block;font-size:11px;color:var(--muted);}
.u-date em{display:block;font-style:normal;font-size:11px;color:var(--ink-gold);margin-top:2px;}
.u-name{font-size:15px;color:var(--dark);font-weight:600;line-height:1.45;min-width:0;}
.u-cat{display:block;font-size:11.5px;font-weight:500;color:var(--muted);margin-top:3px;}
.u-name .u-note{display:block;font-style:normal;font-size:12px;font-weight:400;color:var(--saffron);margin-top:3px;}

/* Past events. Deliberately NOT `opacity`, which drags the text below the
   4.5:1 contrast floor — the rail goes neutral and the card goes warm-grey,
   so the event still reads clearly while sitting visually behind. */
.u-row.u-past{background:#F6F1E8;border-left-color:#B9AE99;box-shadow:none;}
.u-row.u-past .u-date b{color:var(--muted);}

/* --- category colours ---------------------------------------------------- */
/* The rail colour is decorative; the category is also written out in .u-cat,
   so nothing here is colour-only information. */
.u-row.u-parv{border-left-color:#B03222;background:linear-gradient(90deg,#FFF7ED,#fff);}
.u-row.u-ekadashi{border-left-color:#2E7D32;}
.u-row.u-purnima{border-left-color:#C9880B;}
.u-row.u-amavasya{border-left-color:#5D4037;}
.u-row.u-sankranti{border-left-color:#C85F00;}
.u-row.u-pradosh{border-left-color:#5B3FA0;}
.u-row.u-sankashti{border-left-color:#0266A3;}
.u-row.u-shivratri{border-left-color:#455A64;}
.u-row.u-past.u-parv{background:#F6F1E8;}

.u-lg.u-parv{background:#F6C9C0;}
.u-lg.u-ekadashi{background:#D7ECD8;}
.u-lg.u-purnima{background:#FAE6B0;}
.u-lg.u-amavasya{background:#E5D8CF;}
.u-lg.u-sankranti{background:#FBDCB0;}
.u-lg.u-pradosh{background:#E2D7F2;}
.u-lg.u-sankashti{background:#CFE6F5;}
.u-lg.u-shivratri{background:#D5DEE2;}

@media (max-width:640px){
  .u-list{grid-template-columns:1fr;}
  .u-monthnav{top:56px;padding:6px;gap:5px;}
  .u-monthnav a{font-size:13px;padding:5px 10px;min-height:44px;min-width:44px;}
  .u-month{scroll-margin-top:112px;}
}

@media print{
  .u-row{box-shadow:none;break-inside:avoid;}
  .u-list{grid-template-columns:1fr 1fr;}
}

/* --- the mandir's own programme, kept distinct from the general पंचांग -----
   Deliberately quiet: there are no confirmed dates yet, so this must read as
   an honest note, not as an empty feature panel waiting to be filled. */
.u-prog{max-width:880px;margin:18px auto 0;padding:13px 16px;
  border:1px solid var(--line);border-left:3px solid var(--gold);
  border-radius:12px;background:#fff;}
.u-prog-h{font-family:'Noto Serif Devanagari',serif;font-size:16.5px;
  color:var(--maroon);margin:0 0 6px;font-weight:700;}
.u-prog-pending{font-size:14px;line-height:1.75;color:var(--ink-muted);margin:0;}
.u-cal-h{font-family:'Noto Serif Devanagari',serif;font-size:17px;color:var(--maroon);
  max-width:880px;margin:26px auto 0;font-weight:700;}
@media(max-width:640px){
  .u-prog{margin-top:14px;padding:12px 14px;}
  .u-prog-h{font-size:16px;}
  .u-prog-pending{font-size:13.5px;}
  .u-cal-h{font-size:16px;margin-top:22px;}
}
