:root{
    --maroon-deep:   #2E0A12;
    --maroon:        #4A0F1C;
    --ember:         #A93A2E;
    --marigold:      #E8A33D;
    --gold:          #C9932F;
    --cream:         #F6ECD9;
    --cream-dim:     #E7D8B9;
    --ink:           #241009;
    --flame-light:   #FFD98A;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:
      radial-gradient(ellipse 900px 500px at 50% -10%, rgba(232,163,61,0.16), transparent 60%),
      var(--maroon-deep);
    color:var(--cream);
    font-family:'Karla', sans-serif;
    -webkit-font-smoothing:antialiased;
  }

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;}
  }

  /* ---------- decorative rangoli border rule ---------- */
  .rule{
    height:10px;
    width:100%;
    background-image: radial-gradient(circle, var(--gold) 0 2.5px, transparent 3px);
    background-size: 22px 10px;
    background-position: center;
    opacity:0.55;
  }

  /* ---------- header ---------- */
  .site-header{
    position:sticky;
    top:0;
    z-index:50;
    background:rgba(46,10,18,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid rgba(232,163,61,0.18);
  }
  .topbar{
    padding:1.4rem 6vw 1.1rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
  }
  .brand{
    display:flex;
    align-items:center;
    gap:0.85rem;
    text-decoration:none;
  }
  .brand-mark{ width:40px; height:40px; flex-shrink:0; }
  .brand-text{
    font-family:'Yatra One', cursive;
    font-size:1.35rem;
    letter-spacing:0.02em;
    color:var(--flame-light);
  }
  .brand-sub{
    font-size:0.68rem;
    letter-spacing:0.22em;
    text-transform:uppercase;
    color:var(--cream-dim);
    margin-top:0.15rem;
  }

  .topbar-right{
    display:flex;
    align-items:center;
    gap:0.9rem;
  }

  .nav-toggle{
    display:none;
    width:38px; height:38px;
    border-radius:9px;
    background:rgba(246,236,217,0.06);
    border:1px solid rgba(232,163,61,0.3);
    color:var(--marigold);
    align-items:center;
    justify-content:center;
    cursor:pointer;
  }
  .nav-toggle svg{ width:18px; height:18px; }

  .site-nav{
    padding:0 6vw 0.9rem;
  }
  .site-nav ul{
    list-style:none;
    display:flex;
    align-items:center;
    gap:2rem;
    margin:0;
    padding:0;
  }
  .site-nav a{
    display:inline-block;
    position:relative;
    text-decoration:none;
    color:var(--cream-dim);
    font-size:0.82rem;
    letter-spacing:0.12em;
    text-transform:uppercase;
    padding:0.3rem 0.1rem;
    transition:color 0.25s ease;
  }
  .site-nav a::after{
    content:'';
    position:absolute;
    left:0; right:100%;
    bottom:-2px;
    height:2px;
    background:linear-gradient(90deg, var(--marigold), var(--gold));
    transition:right 0.28s ease;
  }
  .site-nav a:hover,
  .site-nav a:focus-visible{ color:var(--cream); }
  .site-nav a:hover::after,
  .site-nav a:focus-visible::after{ right:0; }
  .site-nav a.active{ color:var(--flame-light); }
  .site-nav a.active::after{ right:0; }

  .live-pill{
    display:flex;
    align-items:center;
    gap:0.5rem;
    padding:0.5rem 1rem 0.5rem 0.7rem;
    border-radius:999px;
    background:rgba(169,58,46,0.18);
    border:1px solid rgba(232,163,61,0.4);
    font-size:0.78rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--marigold);
    white-space:nowrap;
  }
  .live-pill.is-live{
    background:rgba(169,58,46,0.32);
    border-color:rgba(232,163,61,0.75);
    color:var(--flame-light);
  }
  .live-pill.is-offline{ opacity:0.75; }
  .flame-dot{ width:9px; height:9px; border-radius:50%; background:var(--ember); position:relative; }
  .live-pill:not(.is-live) .flame-dot::after{ display:none; }
  .flame-dot::after{
    content:'';
    position:absolute; inset:-4px;
    border-radius:50%;
    background:var(--ember);
    opacity:0.55;
    animation:pulse-ring 1.8s ease-out infinite;
  }
  @keyframes pulse-ring{
    0%{ transform:scale(0.7); opacity:0.6; }
    80%{ transform:scale(2.1); opacity:0; }
    100%{ opacity:0; }
  }

  /* ---------- hero ---------- */
  .hero{
    padding:2.5rem 6vw 3.5rem;
    text-align:center;
    position:relative;
  }
  .hero h1{
    font-family:'Yatra One', cursive;
    font-weight:400;
    font-size:clamp(2.2rem, 5.5vw, 4.1rem);
    line-height:1.15;
    margin:0 0 0.8rem;
    background:linear-gradient(180deg, var(--flame-light), var(--marigold) 65%, var(--gold));
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
  }
  .hero p{
    font-family:'Cormorant Garamond', serif;
    font-style:italic;
    font-size:clamp(1.05rem, 1.6vw, 1.35rem);
    color:var(--cream-dim);
    max-width:34em;
    margin:0 auto;
  }

  /* diya flame signature */
  .diya-wrap{
    display:flex;
    justify-content:center;
    margin-bottom:1.4rem;
  }
  .diya{ width:96px; height:auto; }
  .flame{
    transform-origin:50% 100%;
    animation:flicker 2.6s ease-in-out infinite;
    filter:drop-shadow(0 0 8px rgba(232,163,61,0.65));
  }
  @keyframes flicker{
    0%,100%{ transform:scale(1,1) rotate(0deg); }
    25%{ transform:scale(0.97,1.05) rotate(-1.5deg); }
    50%{ transform:scale(1.04,0.95) rotate(1deg); }
    75%{ transform:scale(0.99,1.02) rotate(-0.5deg); }
  }

  /* ---------- schedule strip ---------- */
  .schedule-strip{
    max-width:900px;
    margin:0 auto 3rem;
    padding:0 6vw;
    text-align:center;
  }
  .schedule-card{
    display:inline-flex;
    align-items:center;
    gap:0.9rem;
    padding:0.9rem 1.6rem;
    border-radius:14px;
    background:rgba(246,236,217,0.05);
    border:1px solid rgba(232,163,61,0.25);
  }
  .schedule-card .eyebrow{
    font-size:0.68rem;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--marigold);
  }
  .schedule-card p{
    margin:0.15rem 0 0;
    font-size:0.95rem;
    color:var(--cream);
  }

  /* ---------- main stream ---------- */
  .stage{
    max-width:1040px;
    margin:0 auto 4.5rem;
    padding:0 6vw;
  }
  .stage-frame{
    position:relative;
    border-radius:20px;
    padding:10px;
    background:linear-gradient(160deg, rgba(232,163,61,0.5), rgba(74,15,28,0.2) 40%, rgba(232,163,61,0.35));
    box-shadow:0 30px 70px -25px rgba(0,0,0,0.65);
  }
  .stage-inner{
    border-radius:14px;
    overflow:hidden;
    background:#000;
    aspect-ratio:16/9;
    position:relative;
  }
  .stage-inner iframe{
    width:100%; height:100%; border:0; display:block;
  }
  .stage-label{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    margin-top:1.1rem;
    padding:0 0.3rem;
    flex-wrap:wrap;
    gap:0.5rem;
  }
  .stage-label h2{
    font-family:'Yatra One', cursive;
    font-weight:400;
    font-size:1.4rem;
    margin:0;
    color:var(--flame-light);
  }
  .stage-label span{
    font-size:0.8rem;
    color:var(--cream-dim);
    letter-spacing:0.04em;
  }

  /* ---------- previous broadcasts ---------- */
  .archive{
    max-width:1200px;
    margin:0 auto 5rem;
    padding:0 6vw;
  }
  .archive-head{
    text-align:center;
    margin-bottom:2.4rem;
  }
  .archive-head .eyebrow{
    font-size:0.7rem;
    letter-spacing:0.24em;
    text-transform:uppercase;
    color:var(--marigold);
    display:block;
    margin-bottom:0.5rem;
  }
  .archive-head h2{
    font-family:'Yatra One', cursive;
    font-weight:400;
    font-size:clamp(1.5rem,3vw,2.1rem);
    margin:0;
    color:var(--cream);
  }

  .grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(230px, 1fr));
    gap:1.6rem;
  }
  .clip{
    text-decoration:none;
    color:inherit;
    display:block;
    border-radius:16px;
    overflow:hidden;
    background:rgba(246,236,217,0.04);
    border:1px solid rgba(232,163,61,0.16);
    transition:transform 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
  }
  .clip:hover, .clip:focus-visible{
    transform:translateY(-5px);
    border-color:rgba(232,163,61,0.55);
    box-shadow:0 18px 34px -18px rgba(0,0,0,0.6);
    outline:none;
  }
  .clip-thumb{
    position:relative;
    aspect-ratio:16/9;
    overflow:hidden;
    background:var(--maroon);
  }
  .clip-thumb img{
    width:100%; height:100%; object-fit:cover;
    transition:transform 0.5s ease;
  }
  .clip:hover .clip-thumb img{ transform:scale(1.06); }
  .clip-thumb::after{
    content:'';
    position:absolute; inset:0;
    background:linear-gradient(180deg, transparent 55%, rgba(46,10,18,0.85));
  }
  .play-badge{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .play-badge svg{
    width:44px; height:44px;
    opacity:0.9;
    filter:drop-shadow(0 4px 10px rgba(0,0,0,0.5));
    transition:opacity 0.3s ease, transform 0.3s ease;
  }
  .clip:hover .play-badge svg{ opacity:1; transform:scale(1.08); }
  .clip-body{ padding:0.95rem 1.1rem 1.15rem; }
  .clip-body h3{
    font-family:'Cormorant Garamond', serif;
    font-weight:600;
    font-size:1.15rem;
    margin:0 0 0.2rem;
    color:var(--cream);
  }
  .clip-body span{
    font-size:0.72rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--marigold);
  }

  /* ---------- footer ---------- */
  footer{
    text-align:center;
    padding:2.5rem 6vw 3rem;
    color:var(--cream-dim);
    font-size:0.82rem;
  }
  footer a{ color:var(--marigold); text-decoration:none; }
  footer a:hover{ text-decoration:underline; }

  @media (max-width:720px){
    .nav-toggle{ display:flex; }
    .site-nav{
      max-height:0;
      overflow:hidden;
      transition:max-height 0.32s ease;
      padding-left:6vw; padding-right:6vw;
    }
    .site-nav.open{ max-height:260px; padding-bottom:1.1rem; }
    .site-nav ul{
      flex-direction:column;
      align-items:flex-start;
      gap:1rem;
      padding-top:0.4rem;
    }
  }

  @media (max-width:560px){
    .topbar{ padding:1.3rem 5vw 1rem; }
    .brand-sub{ display:none; }
  }

/* =====================================================
   Shared components: buttons, cards, forms, tabs, login
   Used by other-temples.html and admin.html
   ===================================================== */

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.5rem;
  padding:0.65rem 1.3rem;
  border-radius:10px;
  border:1px solid rgba(232,163,61,0.45);
  background:rgba(232,163,61,0.12);
  color:var(--flame-light);
  font-family:'Karla', sans-serif;
  font-size:0.85rem;
  font-weight:600;
  letter-spacing:0.03em;
  cursor:pointer;
  text-decoration:none;
  transition:background 0.25s ease, transform 0.15s ease, border-color 0.25s ease;
}
.btn:hover{ background:rgba(232,163,61,0.22); border-color:var(--marigold); }
.btn:active{ transform:translateY(1px); }
.btn-primary{
  background:linear-gradient(135deg, var(--marigold), var(--gold));
  color:var(--maroon-deep);
  border-color:transparent;
}
.btn-primary:hover{ filter:brightness(1.07); background:linear-gradient(135deg, var(--marigold), var(--gold)); }
.btn-danger{
  background:rgba(169,58,46,0.18);
  border-color:rgba(169,58,46,0.55);
  color:#F4B7A9;
}
.btn-danger:hover{ background:rgba(169,58,46,0.32); }
.btn-ghost{
  background:transparent;
  border-color:rgba(246,236,217,0.25);
  color:var(--cream-dim);
}
.btn-small{ padding:0.4rem 0.85rem; font-size:0.75rem; border-radius:8px; }

.page-main{
  max-width:1200px;
  margin:0 auto;
  padding:0 6vw 5rem;
}

.section-head{
  text-align:center;
  margin:3rem 0 2.2rem;
}
.section-head .eyebrow{
  font-size:0.7rem;
  letter-spacing:0.24em;
  text-transform:uppercase;
  color:var(--marigold);
  display:block;
  margin-bottom:0.5rem;
}
.section-head h2{
  font-family:'Yatra One', cursive;
  font-weight:400;
  font-size:clamp(1.5rem,3vw,2.1rem);
  margin:0;
  color:var(--cream);
}
.section-head p{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  color:var(--cream-dim);
  max-width:38em;
  margin:0.6rem auto 0;
}

.card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
  gap:1.6rem;
}

.info-card{
  border-radius:16px;
  background:rgba(246,236,217,0.04);
  border:1px solid rgba(232,163,61,0.18);
  padding:1.4rem 1.5rem;
  transition:border-color 0.3s ease, transform 0.3s ease;
}
.info-card:hover{ border-color:rgba(232,163,61,0.4); transform:translateY(-3px); }

.temple-card h3{
  font-family:'Yatra One', cursive;
  font-weight:400;
  font-size:1.25rem;
  margin:0 0 0.15rem;
  color:var(--flame-light);
}
.temple-card .city-tag{
  font-size:0.7rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--marigold);
}
.temple-card dl{
  margin:1rem 0 0;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:0.35rem 0.9rem;
  font-size:0.88rem;
}
.temple-card dt{
  color:var(--cream-dim);
  font-size:0.72rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  white-space:nowrap;
  padding-top:0.1rem;
}
.temple-card dd{ margin:0; color:var(--cream); }

.event-list{
  margin-top:1.1rem;
  padding-top:1rem;
  border-top:1px dashed rgba(232,163,61,0.25);
}
.event-list .eyebrow{
  font-size:0.65rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--marigold);
  display:block;
  margin-bottom:0.5rem;
}
.event-item{
  padding:0.55rem 0;
  border-bottom:1px solid rgba(246,236,217,0.06);
}
.event-item:last-child{ border-bottom:none; }
.event-item .ev-name{ font-weight:600; color:var(--cream); font-size:0.92rem; }
.event-item .ev-when{ font-size:0.75rem; color:var(--marigold); display:block; margin:0.1rem 0 0.2rem; }
.event-item .ev-desc{ font-size:0.83rem; color:var(--cream-dim); margin:0; }

.badge{
  display:inline-block;
  padding:0.2rem 0.7rem;
  border-radius:999px;
  font-size:0.68rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  background:rgba(232,163,61,0.15);
  color:var(--marigold);
  border:1px solid rgba(232,163,61,0.3);
}

.empty-note{
  text-align:center;
  color:var(--cream-dim);
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  padding:2rem 1rem;
  grid-column:1 / -1;
}

/* ---------- admin: login screen ---------- */
.login-wrap{
  max-width:380px;
  margin:5rem auto;
  padding:0 6vw;
  text-align:center;
}
.login-card{
  border-radius:18px;
  padding:2.2rem 2rem;
  background:rgba(246,236,217,0.04);
  border:1px solid rgba(232,163,61,0.25);
}
.login-card h1{
  font-family:'Yatra One', cursive;
  font-weight:400;
  font-size:1.6rem;
  color:var(--flame-light);
  margin:0 0 1.4rem;
}

/* ---------- admin: form fields ---------- */
.field{ margin-bottom:1rem; text-align:left; }
.field label{
  display:block;
  font-size:0.72rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--cream-dim);
  margin-bottom:0.35rem;
}
.field input,
.field textarea{
  width:100%;
  padding:0.65rem 0.8rem;
  border-radius:9px;
  border:1px solid rgba(232,163,61,0.3);
  background:rgba(46,10,18,0.45);
  color:var(--cream);
  font-family:'Karla', sans-serif;
  font-size:0.92rem;
}
.field input::placeholder,
.field textarea::placeholder{ color:rgba(231,216,185,0.45); }
.field input:focus,
.field textarea:focus{
  outline:none;
  border-color:var(--marigold);
}
.field textarea{ resize:vertical; min-height:70px; }
.field-row{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
  gap:0 1rem;
}
.form-error{
  color:#F4B7A9;
  font-size:0.82rem;
  margin:0.4rem 0 0;
  min-height:1.2em;
}
.form-success{
  color:#9FD8A0;
  font-size:0.82rem;
  margin:0.4rem 0 0;
  min-height:1.2em;
}

/* ---------- admin: tabs ---------- */
.admin-tabs{
  display:flex;
  gap:0.6rem;
  flex-wrap:wrap;
  margin:2rem 0 2.2rem;
  border-bottom:1px solid rgba(232,163,61,0.18);
  padding-bottom:0;
}
.admin-tab{
  padding:0.7rem 1.1rem;
  font-size:0.82rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:var(--cream-dim);
  background:none;
  border:none;
  border-bottom:2px solid transparent;
  cursor:pointer;
  font-family:'Karla', sans-serif;
}
.admin-tab.active{ color:var(--flame-light); border-bottom-color:var(--marigold); }
.admin-panel{ display:none; }
.admin-panel.active{ display:block; }

.admin-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  padding:2.2rem 0 0;
}
.admin-topbar h1{
  font-family:'Yatra One', cursive;
  font-weight:400;
  font-size:1.8rem;
  color:var(--flame-light);
  margin:0;
}

.admin-form{
  border-radius:16px;
  background:rgba(246,236,217,0.04);
  border:1px solid rgba(232,163,61,0.2);
  padding:1.5rem 1.6rem;
  margin-bottom:2.2rem;
}
.admin-form h3{
  font-family:'Yatra One', cursive;
  font-weight:400;
  font-size:1.1rem;
  color:var(--cream);
  margin:0 0 1.1rem;
}

.admin-list-item{
  border-radius:14px;
  background:rgba(246,236,217,0.04);
  border:1px solid rgba(232,163,61,0.16);
  padding:1.1rem 1.3rem;
  margin-bottom:1rem;
}
.admin-list-item-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
}
.admin-list-item-head h4{
  margin:0;
  font-family:'Cormorant Garamond', serif;
  font-weight:600;
  font-size:1.15rem;
  color:var(--cream);
}
.admin-list-item-actions{ display:flex; gap:0.5rem; flex-shrink:0; }
.admin-list-item .meta{
  font-size:0.82rem;
  color:var(--cream-dim);
  margin:0.4rem 0 0;
  line-height:1.5;
}
.admin-sub-events{
  margin-top:0.9rem;
  padding-top:0.8rem;
  border-top:1px dashed rgba(232,163,61,0.2);
}
.admin-sub-event-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:0.8rem;
  padding:0.4rem 0;
  font-size:0.85rem;
}
.admin-sub-event-row span{ color:var(--cream-dim); }
