/*
Theme Name: Bhumi Estates Hub
Theme URI: https://bhumigroup.com
Author: Bhumi Group of Companies
Author URI: https://bhumigroup.com
Description: Premium Land & Real Estate theme for Bhumi Group of Companies — SWAPNOBHUMI™
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: Proprietary
Text Domain: bhumi-estates
*/

/* ============================================================
   CUSTOM UTILITIES — mirrors src/styles.css exactly
   ============================================================ */

/* Fonts */
body {
  font-family: 'Montserrat', system-ui, -apple-system, sans-serif;
  background-color: #fff;
  color: #0A2818;
}
h1, h2, h3, h4, .font-serif-display {
  font-family: 'Playfair Display', Georgia, serif;
  letter-spacing: -0.015em;
}

/* Text stroke */
.text-stroke-white { -webkit-text-stroke: 1px rgba(255,255,255,0.55); color: transparent; }
.text-stroke-dark  { -webkit-text-stroke: 1px rgba(0,78,46,0.4);      color: transparent; }

/* Colour aliases */
.text-gold   { color: #7FE6B4; }
.bg-gold     { background-color: #007E4B; }
.border-gold { border-color: #7FE6B4; }
.bg-ink      { background-color: #F7F8F6; }

/* Gradient backgrounds */
.bg-gold-gradient { background-image: linear-gradient(135deg,#004E2E 0%,#009455 50%,#5FD498 100%); }
.bg-red-gradient  { background-image: linear-gradient(135deg,#A20010 0%,#E30613 50%,#FF3333 100%); }
.bg-aurora-conic  { background-image: conic-gradient(from 180deg at 50% 50%,#007E4B 0deg,#7FE6B4 90deg,#C5A059 180deg,#00C77A 270deg,#007E4B 360deg); }

/* Gradient texts */
.text-gold-gradient {
  background: linear-gradient(135deg,#00C77A 0%,#007E4B 55%,#004E2E 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.text-aurora-gradient {
  background: linear-gradient(135deg,#5FD498 0%,#00A860 35%,#C5A059 70%,#5FD498 100%);
  background-size: 200% 200%;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: auroraShift 8s ease-in-out infinite;
}
.text-red-gradient {
  background: linear-gradient(135deg,#FF3333 0%,#E30613 55%,#A20010 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* Shadows */
.shadow-gold     { box-shadow: 0 20px 60px -20px rgba(0,148,85,0.30); }
.shadow-red      { box-shadow: 0 20px 60px -20px rgba(227,6,19,0.35); }
.shadow-red-sm   { box-shadow: 0 8px 24px -8px rgba(227,6,19,0.30); }
.shadow-aurora   { box-shadow: 0 0 50px -8px rgba(0,168,96,0.22), 0 20px 60px -20px rgba(0,126,75,0.28); }

/* Glass morphism */
.glass-dark {
  background: rgba(10,26,18,0.55);
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(127,230,180,0.18);
}
.glass-light {
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,0.15);
}

/* Gradient border card */
.gradient-border { position: relative; background: #F5FDFB; }
.gradient-border::before {
  content: "";
  position: absolute; inset: -1px;
  border-radius: inherit; padding: 1px;
  background: conic-gradient(from 0deg,#007E4B,#7FE6B4,#C5A059,#00C77A,#007E4B);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  animation: auroraSpin 6s linear infinite;
}

/* Noise overlay */
.noise-overlay { position: relative; }
.noise-overlay::after {
  content: ""; position: absolute; inset: 0;
  pointer-events: none; opacity: 0.05; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Vertical text */
.vertical-text { writing-mode: vertical-rl; text-orientation: mixed; }

/* Animations */
.animate-kenburns     { animation: kenburns 20s ease-in-out infinite alternate; }
.animate-glow-pulse   { animation: glowPulse 4s ease-in-out infinite; }
.animate-aurora-spin  { animation: auroraSpin 6s linear infinite; }
.animate-aurora-shift { background-size: 200% 200%; animation: auroraShift 8s ease-in-out infinite; }
.animate-float        { animation: float 6s ease-in-out infinite; }
.animate-marquee      { animation: marquee 35s linear infinite; }

/* Scroll reveal helpers — driven by JS IntersectionObserver */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity 0.7s ease, transform 0.7s ease; }
.reveal.from-left  { transform: translateX(-28px); }
.reveal.from-right { transform: translateX(28px); }
.reveal.is-visible { opacity: 1 !important; transform: none !important; }

.stagger-item { opacity: 0; transform: translateY(18px); transition: opacity 0.5s ease, transform 0.5s ease; }
.stagger-item.is-visible { opacity: 1; transform: none; }

/* Parallax wrapper */
.parallax-img { will-change: transform; }

/* ============================================================
   KEYFRAMES
   ============================================================ */
@keyframes auroraShift  { 0%,100% { background-position:0% 50%; }  50% { background-position:100% 50%; } }
@keyframes auroraSpin   { to { transform: rotate(360deg); } }
@keyframes glowPulse    { 0%,100% { opacity:.35; transform:scale(1); } 50% { opacity:.6; transform:scale(1.08); } }
@keyframes float        { 0%,100% { transform:translateY(0); }  50% { transform:translateY(-10px); } }
@keyframes marquee      { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@keyframes kenburns     { 0%   { transform:scale(1) translate(0,0); } 100% { transform:scale(1.12) translate(-1%,-1%); } }
@keyframes fadeUp       { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:none; } }
@keyframes shimmer      { to { background-position:200% center; } }

/* ============================================================
   WORDPRESS ADMIN BAR FIX
   ============================================================ */
.admin-bar header { top: 32px; }
@media (max-width:782px) { .admin-bar header { top: 46px; } }

/* ============================================================
   MISC OVERRIDES
   ============================================================ */
img { max-width: 100%; height: auto; }
a  { text-decoration: none; }
*, *::before, *::after { box-sizing: border-box; }
