/* Today Panchang date-by-date festival calendar */
.tp-festival-calendar{box-sizing:border-box;width:100%;max-width:100%;margin:20px 0 24px;padding:clamp(14px,2.3vw,24px);border:1px solid #ead9c2;border-radius:22px;background:linear-gradient(180deg,#fffdf8 0%,#fff 100%);color:#33291f;box-shadow:0 12px 32px rgba(83,52,22,.055);font-family:Inter,"Noto Sans Devanagari",system-ui,-apple-system,"Segoe UI",sans-serif}
.tp-festival-calendar *{box-sizing:border-box}
.tp-festival-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 0 18px;border-bottom:1px solid #f0e4d3}
.tp-festival-eyebrow{margin:0 0 6px;color:#b56b21;font-size:10px;font-weight:850;letter-spacing:1.5px;text-transform:uppercase}
.tp-festival-calendar-head h2{margin:0;color:#713d18;font-size:clamp(23px,3vw,32px);font-weight:850;letter-spacing:-.65px;line-height:1.18}
.tp-festival-calendar-head p:not(.tp-festival-eyebrow){max-width:690px;margin:8px 0 0;color:#776957;font-size:13px;line-height:1.6}
.tp-festival-brand-mark{display:grid;flex:0 0 62px;width:62px;height:62px;place-items:center;border:1px solid #ebc57f;border-radius:50%;background:radial-gradient(circle,#fff8e7 0,#fce9bf 70%,#f5d58f 100%);color:#a84a20;font-family:Georgia,serif;font-size:34px;box-shadow:inset 0 0 0 5px rgba(255,255,255,.58)}
.tp-festival-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0}
.tp-festival-month-controls{display:flex;align-items:center;gap:7px;min-width:0}
.tp-festival-month-controls>button{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;border:1px solid #ead9c2;border-radius:10px;background:#fff;color:#713d18;font-size:22px;line-height:1;cursor:pointer}
.tp-festival-month-controls>button:hover{border-color:#d99b45;background:#fff6e8}
.tp-festival-month-controls input{width:160px;min-width:0;min-height:38px;padding:6px 9px;border:1px solid #ead9c2;border-radius:10px;background:#fff;color:#33291f;font:700 12px Inter,system-ui,sans-serif}
.tp-festival-month-controls .tp-festival-today{width:auto;flex-basis:auto;padding:0 12px;background:#fff4df;color:#8a4d16;font-size:11px;font-weight:800}
.tp-festival-search{display:flex;align-items:center;gap:8px;width:min(290px,40%);min-height:40px;padding:0 11px;border:1px solid #ead9c2;border-radius:11px;background:#fff;color:#a56c29}
.tp-festival-search>span{font-size:19px}
.tp-festival-search input{width:100%;min-width:0;border:0!important;outline:0!important;background:transparent!important;color:#33291f!important;font:500 12px Inter,system-ui,sans-serif;box-shadow:none!important}
.tp-festival-search input::placeholder{color:#a4998b}
.tp-festival-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.tp-festival-weekday{padding:8px 4px;text-align:center;color:#8a6a43;font-size:10px;font-weight:850;letter-spacing:.35px;text-transform:uppercase}
.tp-festival-blank{min-height:95px}
.tp-festival-day{position:relative;display:flex;min-width:0;min-height:95px;flex-direction:column;align-items:flex-start;gap:7px;padding:10px 9px;border:1px solid #eee2d2;border-radius:12px;background:#fff;color:#33291f;text-align:left;cursor:pointer;transition:border-color .15s,background .15s,transform .15s;overflow:hidden}
.tp-festival-day:hover{border-color:#d79b48;background:#fff9ed;transform:translateY(-1px)}
.tp-festival-day.is-today{border-color:#d58b25;box-shadow:inset 0 0 0 1px #d58b25}
.tp-festival-day.is-selected{border-color:#8e4a18;background:#fff2d9;box-shadow:inset 0 0 0 1px #8e4a18}
.tp-festival-day.is-filtered-out{opacity:.22;cursor:not-allowed}
.tp-festival-day-number{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;color:#674520;font-size:12px;font-weight:850}
.tp-festival-day.is-today .tp-festival-day-number{background:#9a531c;color:#fff}
.tp-festival-day-labels{display:flex;width:100%;flex-direction:column;gap:3px;overflow:hidden}
.tp-festival-day-label{display:block;max-width:100%;overflow:hidden;color:#765126;font-size:9px;font-weight:750;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.tp-festival-more{color:#ac671b;font-size:9px;font-weight:850}
.tp-festival-dot{position:absolute;right:9px;top:17px;width:6px;height:6px;border-radius:50%;background:#e28b26;box-shadow:0 0 0 3px #fff1d8}
.tp-festival-daily-label{display:block;width:100%;margin-top:2px;color:#a89c8d;font-size:9px;font-weight:600;line-height:1.25}
.tp-festival-day.no-observance{background:#fffdfa}
.tp-festival-day.no-observance .tp-festival-day-number{color:#867969}
.tp-festival-day:focus-visible,.tp-festival-month-controls button:focus-visible,.tp-festival-list-row:focus-visible,.tp-festival-view-panchang:focus-visible{outline:3px solid #e8ad52;outline-offset:2px}
.tp-festival-day-detail{display:grid;grid-template-columns:minmax(165px,.8fr) minmax(0,2fr) auto;align-items:center;gap:16px;margin-top:17px;padding:16px 17px;border:1px solid #edd6b1;border-radius:15px;background:linear-gradient(115deg,#fff8e9,#fffdf8)}
.tp-festival-detail-heading{min-width:0}
.tp-festival-detail-kicker{margin:0 0 4px;color:#a96a20;font-size:9px;font-weight:850;letter-spacing:1px;text-transform:uppercase}
.tp-festival-detail-heading h3{margin:0;color:#713d18;font-size:17px;font-weight:850;line-height:1.3}
.tp-festival-detail-items{display:flex;flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none}
.tp-festival-detail-item{display:flex;align-items:center;gap:7px;max-width:100%;padding:7px 10px;border:1px solid #f0dfc5;border-radius:999px;background:#fff;color:#624a30;font-size:11px;font-weight:750;line-height:1.35}
.tp-festival-category-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#dc923a}
.tp-festival-detail-item.category-vrat .tp-festival-category-dot{background:#8d61c3}
.tp-festival-detail-item.category-solar .tp-festival-category-dot{background:#d58d26}
.tp-festival-detail-item.category-astronomical .tp-festival-category-dot{background:#477fb4}
.tp-festival-no-events{grid-column:2;margin:0;color:#817260;font-size:11px;line-height:1.55}
.tp-festival-detail-actions{display:flex;justify-content:flex-end}
.tp-festival-view-panchang{min-height:38px;padding:9px 12px;border:1px solid #9c5b22;border-radius:10px;background:#8e4a18;color:#fff;font-size:10px;font-weight:800;cursor:pointer}
.tp-festival-view-panchang:hover{background:#713d18}
.tp-festival-month-list{margin-top:20px;padding-top:17px;border-top:1px solid #f0e4d3}
.tp-festival-list-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.tp-festival-list-heading h3{margin:0;color:#713d18;font-size:16px;font-weight:850}
.tp-festival-list-heading>span{display:inline-flex;min-width:26px;min-height:24px;align-items:center;justify-content:center;padding:2px 7px;border-radius:999px;background:#fff0d6;color:#905315;font-size:10px;font-weight:850}
.tp-festival-events-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.tp-festival-list-row{display:flex;align-items:center;gap:11px;min-width:0;padding:9px 10px;border:1px solid #f0e5d6;border-radius:10px;background:#fff;text-align:left;cursor:pointer}
.tp-festival-list-row:hover{border-color:#dba04c;background:#fffaf1}
.tp-festival-list-date{display:flex;flex:0 0 42px;flex-direction:column;align-items:center;justify-content:center;min-height:39px;border-right:1px solid #f0e5d6;color:#86501d}
.tp-festival-list-date strong{font-size:16px;line-height:1.1}
.tp-festival-list-date small{max-width:40px;overflow:hidden;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.tp-festival-list-names{display:flex;min-width:0;flex-wrap:wrap;gap:4px}
.tp-festival-list-name{display:inline-block;padding:4px 7px;border-radius:7px;background:#fff5e5;color:#77532a;font-size:10px;font-weight:700;line-height:1.3}
.tp-festival-empty-list{grid-column:1/-1;margin:5px 0;color:#877866;font-size:12px}
.tp-festival-reference-note{display:flex;align-items:flex-start;gap:7px;margin:16px 0 0;padding-top:12px;border-top:1px dashed #e9d9c2;color:#8b7c68;font-size:10px;line-height:1.6}
.tp-festival-reference-note>span{color:#b17a35;font-size:13px}
body.tp-dark .tp-festival-calendar{border-color:#29415b;background:linear-gradient(180deg,#10263d,#0b1d30);color:#e7eef8;box-shadow:0 12px 32px rgba(0,0,0,.2)}
body.tp-dark .tp-festival-calendar-head{border-color:#2c4560}
body.tp-dark .tp-festival-calendar-head h2,body.tp-dark .tp-festival-detail-heading h3,body.tp-dark .tp-festival-list-heading h3{color:#f5d18b}
body.tp-dark .tp-festival-calendar-head p:not(.tp-festival-eyebrow),body.tp-dark .tp-festival-reference-note{color:#b7c7d9}
body.tp-dark .tp-festival-brand-mark{border-color:#816632;background:#233b53;color:#f1c765}
body.tp-dark .tp-festival-month-controls>button,body.tp-dark .tp-festival-month-controls input,body.tp-dark .tp-festival-search,body.tp-dark .tp-festival-list-row{border-color:#38516d;background:#0a1b2d;color:#e7eef8}
body.tp-dark .tp-festival-search input{color:#fff!important}
body.tp-dark .tp-festival-weekday{color:#e6ca8d}
body.tp-dark .tp-festival-day{border-color:#2b435d;background:#10263d;color:#e7eef8}
body.tp-dark .tp-festival-day:hover,body.tp-dark .tp-festival-day.is-selected{border-color:#d3a74d;background:#1a3651}
body.tp-dark .tp-festival-day-number{color:#f0d6a4}
body.tp-dark .tp-festival-day-label{color:#f1ce8c}
body.tp-dark .tp-festival-daily-label{color:#93a8bf}
body.tp-dark .tp-festival-day-detail{border-color:#3c5269;background:linear-gradient(115deg,#152d46,#10263d)}
body.tp-dark .tp-festival-detail-item{border-color:#3e5369;background:#0c2035;color:#f0e2c5}
body.tp-dark .tp-festival-no-events,body.tp-dark .tp-festival-list-date,body.tp-dark .tp-festival-empty-list{color:#bac9d8}
body.tp-dark .tp-festival-list-date{border-color:#39516c}
body.tp-dark .tp-festival-list-name{background:#263b50;color:#f5d18b}
body.tp-dark .tp-festival-month-list{border-color:#2c4560}
body.tp-dark .tp-festival-list-heading>span{background:#344b62;color:#f8d991}
body.tp-dark .tp-festival-reference-note{border-color:#2c4560}
@media(max-width:760px){.tp-festival-calendar{padding:14px;border-radius:17px}.tp-festival-toolbar{align-items:stretch;flex-direction:column}.tp-festival-search{width:100%}.tp-festival-day{min-height:78px;padding:7px 6px;gap:5px}.tp-festival-blank{min-height:78px}.tp-festival-day-number{width:23px;height:23px;font-size:11px}.tp-festival-day-label{font-size:8px}.tp-festival-daily-label{font-size:8px}.tp-festival-day-detail{grid-template-columns:1fr;gap:9px}.tp-festival-no-events{grid-column:auto}.tp-festival-detail-actions{justify-content:flex-start}.tp-festival-events-list{grid-template-columns:1fr}}
@media(max-width:480px){.tp-festival-calendar-head{align-items:flex-start}.tp-festival-brand-mark{width:43px;height:43px;flex-basis:43px;font-size:24px}.tp-festival-calendar-head h2{font-size:22px}.tp-festival-calendar-head p:not(.tp-festival-eyebrow){font-size:11px}.tp-festival-month-controls{gap:5px}.tp-festival-month-controls>button{width:33px;height:35px;flex-basis:33px}.tp-festival-month-controls input{width:133px;min-height:35px;font-size:11px}.tp-festival-month-controls .tp-festival-today{padding:0 8px;font-size:10px}.tp-festival-grid{gap:3px}.tp-festival-weekday{padding:6px 1px;font-size:8px}.tp-festival-day{min-height:65px;padding:5px 4px;border-radius:8px;gap:4px}.tp-festival-blank{min-height:65px}.tp-festival-day-number{width:20px;height:20px;font-size:10px}.tp-festival-day-label{font-size:7px;letter-spacing:-.1px}.tp-festival-more{font-size:7px}.tp-festival-dot{right:6px;top:12px;width:5px;height:5px}.tp-festival-daily-label{font-size:7px;line-height:1.1}.tp-festival-detail-heading h3{font-size:15px}.tp-festival-detail-item{font-size:10px}.tp-festival-list-row{padding:8px}.tp-festival-list-name{font-size:9px}}
