/* Rājaśyāmā — shared styles (used with Tailwind utilities) */
:root { color-scheme: light; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #FBF5E9; color: #1E1411; font-family: Mukta, "Noto Sans", system-ui, sans-serif; }
img { max-width: 100%; }
[hidden] { display: none !important; }
h1, h2, h3 { text-wrap: balance; }
.eyebrow { font-family: "Josefin Sans", Futura, "Century Gothic", sans-serif; text-transform: uppercase; letter-spacing: .22em; font-size: .75rem; font-weight: 600; }
.wordmark { font-family: "Cormorant Garamond", Georgia, serif; letter-spacing: .28em; }
.tabular { font-variant-numeric: tabular-nums; }

/* Kolam — rice-flour dot grid drawn on a threshold */
.kolam { background-image: radial-gradient(rgba(212,160,23,.28) 1.4px, transparent 1.6px); background-size: 22px 22px; }
.kolam-dark { background-image: radial-gradient(rgba(30,20,17,.10) 1.3px, transparent 1.5px); background-size: 22px 22px; }

/* Temple border — gopuram-triangle motif of a Kanchipuram saree border */
.temple-border {
  height: 22px;
  background-color: #B8241C;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='22' viewBox='0 0 28 22'%3E%3Cpath d='M0 22 L7 6 L14 22 L21 6 L28 22Z' fill='%23D4A017'/%3E%3Cpath d='M3.5 22 L7 14 L10.5 22Z M17.5 22 L21 14 L24.5 22Z' fill='%23B8241C'/%3E%3Ccircle cx='14' cy='5' r='1.8' fill='%23D4A017'/%3E%3Ccircle cx='0' cy='5' r='1.8' fill='%23D4A017'/%3E%3Ccircle cx='28' cy='5' r='1.8' fill='%23D4A017'/%3E%3C/svg%3E");
  background-repeat: repeat-x; background-position: bottom;
}
.temple-border.flip { transform: scaleY(-1); }
.zari-line { height: 3px; background: repeating-linear-gradient(90deg, #D4A017 0 10px, transparent 10px 14px, #D4A017 14px 16px, transparent 16px 20px); }

/* Mandapa arch frames */
.arch { border-radius: 999px 999px 14px 14px; overflow: hidden; }
.arch-ring { border-radius: 999px 999px 18px 18px; padding: 8px; background: linear-gradient(160deg, #D4A017, #9c7410 55%, #D4A017); }

/* Stock-photo holder: if the image can't load, a patterned silk panel stands in */
.ph { position: relative; background: #2E4A3B; overflow: hidden; }
.ph img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s ease; }
.ph::after {
  content: attr(data-label); position: absolute; inset: 0; display: none; align-items: flex-end; padding: 14px;
  font-family: "Josefin Sans", sans-serif; letter-spacing: .18em; text-transform: uppercase; font-size: .7rem; color: #F2E6CF;
  background:
    radial-gradient(rgba(212,160,23,.35) 1.3px, transparent 1.5px) 0 0/18px 18px,
    linear-gradient(150deg, #BF1765, #B8241C 55%, #7a1712);
}
.ph.ph-off img { display: none; }
.ph.ph-off::after { display: flex; }
.lift:hover .ph img { transform: scale(1.05); }

/* Scrolling rows */
.marquee { display: flex; width: max-content; animation: slide 38s linear infinite; }
.marquee.slow { animation-duration: 60s; }
.marquee-wrap:hover .marquee, .marquee-wrap:focus-within .marquee { animation-play-state: paused; }
@keyframes slide { to { transform: translateX(-50%); } }

/* Entrance: visible at rest, gentle rise on load */
.rise { animation: rise .9s cubic-bezier(.2,.7,.2,1) both; }
.rise-2 { animation-delay: .12s; } .rise-3 { animation-delay: .24s; } .rise-4 { animation-delay: .36s; }
@keyframes rise { from { transform: translateY(14px); opacity: .01; } to { transform: none; opacity: 1; } }

.rosette { animation: turn 120s linear infinite; transform-origin: 50% 50%; }
@keyframes turn { to { transform: rotate(360deg); } }

/* FAQ accordion */
details summary { list-style: none; cursor: pointer; }
details summary::-webkit-details-marker { display: none; }
details .plus { transition: transform .3s ease; }
details[open] .plus { transform: rotate(45deg); }

/* Forms */
.field { width: 100%; border-radius: 14px; border: 1.5px solid rgba(30,20,17,.18); background: #fff; padding: .85rem 1rem; font-size: 1.05rem; color: #1E1411; transition: border-color .2s, box-shadow .2s; }
.field::placeholder { color: rgba(30,20,17,.4); }
.field:focus { outline: none; border-color: #D4A017; box-shadow: 0 0 0 4px rgba(212,160,23,.22); }
.field[aria-invalid="true"] { border-color: #B8241C; box-shadow: 0 0 0 4px rgba(184,36,28,.10); }
select.field { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23B8241C' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.75rem; }
.check { width: 1.25rem; height: 1.25rem; accent-color: #B8241C; flex-shrink: 0; margin-top: .2rem; }
.hp-field { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  .marquee, .rosette, .rise { animation: none !important; }
  html { scroll-behavior: auto; }
}
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid #D4A017; outline-offset: 3px; border-radius: 6px; }
.logo-blend { mix-blend-mode: screen; }
.nav-bar { top: env(safe-area-inset-top, 0px); }
.mobile-cta { padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)); }
@media (max-width: 767px) { body.has-mobile-cta { padding-bottom: 76px; } }
