:root {
  --saffron: #eb5c14;
  --saffron-dark: #ad330a;
  --maroon: #730d14;
  --gold: #f2b32e;
  --leaf: #247047;
  --ink: #171411;
  --muted: #61574a;
  --line: #e3d1b8;
  --paper: #fffaf0;
  --admin-navy: #142138;
}

body {
  background: var(--paper);
  color: var(--ink);
  font-family: Inter, Roboto, Arial, sans-serif;
}

.top-rule { height: 6px; background: var(--saffron); }
.site-header { box-shadow: 0 1px 0 rgba(115, 13, 20, .08); }
.site-logo {
  align-items: center;
  display: inline-flex;
  margin-right: 1rem;
  max-width: 250px;
  padding-bottom: .35rem;
  padding-top: .35rem;
}
.site-logo img {
  display: block;
  height: 58px;
  max-width: 100%;
  width: auto;
}
.text-maroon { color: var(--maroon) !important; }
.text-cream { color: #fff6df; }
.btn-saffron { background: var(--saffron); color: #fff; border-color: var(--saffron); }
.btn-saffron:hover { background: var(--saffron-dark); color: #fff; border-color: var(--saffron-dark); }
.btn-outline-saffron { color: var(--saffron-dark); border-color: var(--saffron); background: #fff; }
.btn-outline-saffron:hover { color: #fff; background: var(--saffron); }
.hero {
  min-height: 520px;
  background: linear-gradient(115deg, rgba(115, 13, 20, .95), rgba(173, 51, 10, .70)), url('/images/tirupati-pattern.svg');
  background-size: cover;
  color: #fff;
}
.hero-card, .surface-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}
.section-kicker {
  color: var(--saffron-dark);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}
.feature-tile {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  height: 100%;
  overflow: hidden;
}
.tile-media {
  height: 130px;
  background: var(--gold);
}
.temple-card-img {
  aspect-ratio: 16 / 9;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}
.home-temple-img {
  aspect-ratio: 4 / 3;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}
.place-card-img,
.home-place-img,
.hotel-card-img,
.home-hotel-img {
  aspect-ratio: 16 / 10;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}
.temple-hero-img {
  border-radius: 8px;
  display: block;
  max-height: 430px;
  object-fit: cover;
  width: 100%;
}
.place-hero-img {
  border-radius: 8px;
  display: block;
  max-height: 430px;
  object-fit: cover;
  width: 100%;
}
.hotel-hero-img {
  border-radius: 8px;
  display: block;
  max-height: 430px;
  object-fit: cover;
  width: 100%;
}
.tile-media.leaf { background: var(--leaf); }
.tile-media.saffron { background: var(--saffron); }
.tile-media.maroon { background: var(--maroon); }
.footer-band { background: var(--maroon); }
.bg-maroon { background: var(--maroon) !important; }
.footer-link { color: #fff6df; display: block; margin-bottom: .45rem; text-decoration: none; }
.footer-link:hover { color: #fff; }
.footer-inline-link { color: #fff6df; font-weight: 700; text-decoration: none; }
.footer-inline-link:hover { color: #fff; text-decoration: underline; }
.footer-rule { border-color: rgba(255, 246, 223, .35); opacity: 1; }
.admin-shell { min-height: 100vh; background: #f6f7f9; }
.admin-sidebar { background: var(--admin-navy); min-height: 100vh; }
.admin-sidebar a { color: #fff; text-decoration: none; display: block; padding: .7rem .9rem; border-radius: 6px; }
.admin-sidebar a:hover, .admin-sidebar a.active { background: var(--saffron); }
.admin-card { border: 1px solid #dde2ea; border-radius: 8px; background: #fff; }
.form-control, .form-select { border-radius: 6px; }
.admin-login-body {
  background:
    linear-gradient(135deg, rgba(115, 13, 20, .94), rgba(235, 92, 20, .78)),
    url('/images/tirupati-pattern.svg');
  background-size: cover;
}
.admin-login-card {
  border-radius: 8px;
  box-shadow: 0 24px 70px rgba(23, 20, 17, .24);
}
.admin-login-panel {
  background: linear-gradient(160deg, var(--maroon), var(--saffron-dark));
}
.admin-login-logo {
  background: #fff;
  border-radius: 8px;
  max-width: 230px;
  padding: .8rem;
  width: 100%;
}
.admin-login-help {
  background: #fff7e8;
  border: 1px solid var(--line);
  border-radius: 8px;
}

@media (max-width: 767px) {
  .site-logo { max-width: 206px; }
  .site-logo img { height: 50px; }
  .hero { min-height: auto; padding: 4rem 0; }
  .display-3 { font-size: 2.5rem; }
}
