/* =========================================================
   MALLINATH BHAGWAN — Sacred Heritage Portal
   Premium Spiritual Design System
   ========================================================= */

:root{
  --ivory:#FBF8F2;
  --ivory-warm:#F4EEDD;
  --paper:#F7F1E3;
  --gold:#C9A961;
  --gold-deep:#A88641;
  --gold-soft:#E6D3A1;
  --sandstone:#E8DCC4;
  --maroon:#7A2E2E;
  --maroon-deep:#5A1F1F;
  --sage:#6B8E7F;
  --sage-soft:#A8BFB3;
  --charcoal:#221E18;
  --charcoal-soft:#4A4036;
  --line:rgba(34,30,24,0.10);
  --line-gold:rgba(201,169,97,0.35);
  --shadow-sm:0 4px 20px rgba(34,30,24,0.06);
  --shadow-md:0 18px 48px rgba(34,30,24,0.12);
  --shadow-lg:0 30px 80px rgba(34,30,24,0.18);
  --ease:cubic-bezier(.22,.61,.36,1);
  --font-display:'Cinzel', serif;
  --font-serif:'Cormorant Garamond', serif;
  --font-body:'Manrope', system-ui, sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--charcoal);
  background:var(--ivory);
  line-height:1.65;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none;transition:color .35s var(--ease)}
button{font-family:inherit;cursor:pointer;border:none;background:none}

/* ============ TYPOGRAPHY ============ */
h1,h2,h3,h4,h5{font-family:var(--font-display);font-weight:500;letter-spacing:.04em;color:var(--charcoal);margin:0}
.serif{font-family:var(--font-serif);font-weight:400;font-style:italic}
.eyebrow{
  font-family:var(--font-body);
  font-size:.72rem;
  letter-spacing:.42em;
  text-transform:uppercase;
  color:var(--gold-deep);
  font-weight:600;
  display:inline-flex;align-items:center;gap:14px;
}
.eyebrow::before,.eyebrow::after{
  content:"";width:36px;height:1px;background:var(--gold);
}
.eyebrow.left::before{display:none}
.eyebrow.left::after{display:none}
.eyebrow.left{display:inline-block;padding-left:0}

.display-xl{font-size:clamp(2.6rem,6.2vw,5.4rem);line-height:1.04;letter-spacing:.02em}
.display-lg{font-size:clamp(2.2rem,4.8vw,4rem);line-height:1.08;letter-spacing:.03em}
.display-md{font-size:clamp(1.7rem,3.2vw,2.6rem);line-height:1.18;letter-spacing:.04em}
.lead{font-family:var(--font-serif);font-size:clamp(1.1rem,1.4vw,1.35rem);line-height:1.7;color:var(--charcoal-soft);font-style:italic}

/* ============ LAYOUT ============ */
.container{width:min(1280px,92%);margin:0 auto}
.container-wide{width:min(1480px,94%);margin:0 auto}
.container-tight{width:min(960px,90%);margin:0 auto}
.section{padding:clamp(80px,10vw,140px) 0;position:relative}
.section-tight{padding:clamp(60px,7vw,90px) 0}

/* Sacred divider */
.sacred-divider{
  display:flex;align-items:center;justify-content:center;gap:24px;
  margin:48px auto;color:var(--gold-deep);
}
.sacred-divider .line{height:1px;width:80px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.sacred-divider svg{width:28px;height:28px;opacity:.85}

/* ============ NAVIGATION ============ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  padding:18px 0;
  transition:all .5s var(--ease);
  background:rgba(251,248,242,0.0);
}
.nav.scrolled{
  background:rgba(251,248,242,0.92);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  padding:12px 0;
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;width:min(1480px,94%);margin:0 auto}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand-mark{
  width:46px;height:46px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,#fff5d8,var(--gold));
  display:grid;place-items:center;color:var(--maroon-deep);
  font-family:var(--font-display);font-weight:600;
  box-shadow:0 4px 14px rgba(201,169,97,.3);
  position:relative;
}
.brand-mark::before{
  content:"";position:absolute;inset:-4px;border:1px solid var(--gold-soft);border-radius:50%;opacity:.6;
}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-title{font-family:var(--font-display);font-size:.95rem;letter-spacing:.18em;color:var(--charcoal)}
.brand-sub{font-family:var(--font-serif);font-style:italic;font-size:.78rem;color:var(--gold-deep);letter-spacing:.06em}

.nav-menu{display:flex;align-items:center;gap:38px;list-style:none;padding:0;margin:0}
.nav-menu a{
  font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--charcoal-soft);font-weight:500;
  position:relative;padding:6px 0;
}
.nav-menu a::after{
  content:"";position:absolute;left:50%;bottom:0;width:0;height:1px;background:var(--gold);
  transition:width .4s var(--ease),left .4s var(--ease);
}
.nav-menu a:hover,.nav-menu a.active{color:var(--maroon)}
.nav-menu a:hover::after,.nav-menu a.active::after{width:100%;left:0}

.nav-toggle{display:none;width:42px;height:42px;flex-direction:column;justify-content:center;align-items:center;gap:5px}
.nav-toggle span{width:22px;height:1.5px;background:var(--charcoal);transition:all .35s var(--ease)}
.nav-toggle.active span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-toggle.active span:nth-child(2){opacity:0}
.nav-toggle.active span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

@media (max-width:980px){
  .nav-toggle{display:flex}
  .nav-menu{
    position:fixed;top:0;right:-100%;width:min(380px,82%);height:100vh;
    background:var(--ivory);flex-direction:column;justify-content:center;
    gap:28px;padding:80px 40px;box-shadow:var(--shadow-lg);
    transition:right .5s var(--ease);
  }
  .nav-menu.open{right:0}
  .nav-menu a{font-size:.95rem;letter-spacing:.18em}
}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex;align-items:center;gap:14px;
  padding:16px 32px;
  font-size:.74rem;letter-spacing:.32em;text-transform:uppercase;font-weight:600;
  border:1px solid var(--charcoal);color:var(--charcoal);
  background:transparent;cursor:pointer;
  transition:all .45s var(--ease);
  position:relative;overflow:hidden;
}
.btn::before{
  content:"";position:absolute;inset:0;background:var(--charcoal);
  transform:translateY(101%);transition:transform .45s var(--ease);z-index:-1;
}
.btn:hover{color:var(--ivory)}
.btn:hover::before{transform:translateY(0)}
.btn .arrow{display:inline-block;transition:transform .4s var(--ease)}
.btn:hover .arrow{transform:translateX(6px)}

.btn-gold{border-color:var(--gold-deep);color:var(--gold-deep)}
.btn-gold::before{background:var(--gold-deep)}
.btn-gold:hover{color:var(--ivory)}

.btn-light{border-color:rgba(255,255,255,.7);color:#fff}
.btn-light::before{background:#fff}
.btn-light:hover{color:var(--maroon-deep)}

.btn-solid{background:var(--maroon);border-color:var(--maroon);color:#fff}
.btn-solid::before{background:var(--charcoal)}
.btn-solid:hover{color:#fff}

/* ============ PASSCODE GATE ============ */
.gate{
  position:fixed;inset:0;z-index:200;
  background:radial-gradient(ellipse at center,#1A0F0A 0%,#0E0805 70%);
  display:grid;place-items:center;
  overflow:hidden;
}
.gate.hidden{opacity:0;pointer-events:none;transition:opacity .9s var(--ease),visibility .9s}
.gate-bg{
  position:absolute;inset:0;overflow:hidden;
  background:
    radial-gradient(circle at 20% 30%,rgba(201,169,97,.18),transparent 50%),
    radial-gradient(circle at 80% 75%,rgba(122,46,46,.25),transparent 55%);
}
.gate-mandala{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(90vmin,820px);height:min(90vmin,820px);
  opacity:.18;pointer-events:none;
}
.gate-mandala svg{width:100%;height:100%;animation:mandalaSpin 80s linear infinite}
@keyframes mandalaSpin{to{transform:rotate(360deg)}}

.gate-inner{
  position:relative;z-index:5;text-align:center;
  width:min(560px,90%);
  padding:60px 50px;
  background:rgba(251,248,242,0.04);
  border:1px solid rgba(201,169,97,.28);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  box-shadow:0 30px 80px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.05);
}
.gate-inner::before,.gate-inner::after{
  content:"";position:absolute;width:34px;height:34px;
  border:1px solid var(--gold);
}
.gate-inner::before{top:-1px;left:-1px;border-right:none;border-bottom:none}
.gate-inner::after{bottom:-1px;right:-1px;border-left:none;border-top:none}

.gate-emblem{
  width:72px;height:72px;margin:0 auto 28px;
  border:1px solid var(--gold);border-radius:50%;
  display:grid;place-items:center;color:var(--gold);
  position:relative;
}
.gate-emblem::after{
  content:"";position:absolute;inset:-8px;border:1px dashed rgba(201,169,97,.4);border-radius:50%;
  animation:mandalaSpin 40s linear infinite;
}
.gate-eyebrow{
  font-size:.68rem;letter-spacing:.5em;text-transform:uppercase;
  color:var(--gold-soft);font-weight:500;margin-bottom:18px;
}
.gate-title{
  font-family:var(--font-display);font-size:clamp(1.6rem,3.5vw,2.4rem);
  color:#F4EEDD;letter-spacing:.06em;margin-bottom:8px;line-height:1.2;
}
.gate-tagline{
  font-family:var(--font-serif);font-style:italic;color:var(--gold-soft);
  font-size:1.05rem;margin-bottom:36px;
}
.gate-form{display:flex;flex-direction:column;gap:18px}
.gate-input-wrap{position:relative}
.gate-input{
  width:100%;padding:18px 22px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(201,169,97,.35);
  color:#F4EEDD;font-family:var(--font-body);font-size:1rem;
  letter-spacing:.18em;text-align:center;
  outline:none;transition:all .35s var(--ease);
}
.gate-input::placeholder{color:rgba(244,238,221,.4);letter-spacing:.32em;font-size:.78rem;text-transform:uppercase}
.gate-input:focus{border-color:var(--gold);background:rgba(255,255,255,.08);box-shadow:0 0 30px rgba(201,169,97,.18)}

.gate-btn{
  padding:16px 32px;background:var(--gold);color:var(--charcoal);
  font-size:.74rem;letter-spacing:.36em;text-transform:uppercase;font-weight:700;
  border:1px solid var(--gold);transition:all .4s var(--ease);
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
}
.gate-btn:hover{background:#fff5d8;color:var(--maroon-deep);box-shadow:0 12px 30px rgba(201,169,97,.3)}

.gate-error{
  color:#E8B4B4;font-size:.82rem;letter-spacing:.06em;
  font-family:var(--font-serif);font-style:italic;
  height:18px;margin-top:6px;opacity:0;transition:opacity .3s var(--ease);
}
.gate-error.show{opacity:1;animation:shake .5s}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}

.gate-foot{
  margin-top:28px;font-size:.7rem;color:rgba(244,238,221,.5);
  letter-spacing:.3em;text-transform:uppercase;
}

/* ============ HERO ============ */
.hero{
  position:relative;min-height:100vh;
  display:flex;align-items:center;
  padding:140px 0 100px;
  overflow:hidden;
  background:var(--ivory);
}
.hero-grid{
  display:grid;grid-template-columns:1.05fr .95fr;gap:80px;align-items:center;
  width:min(1480px,94%);margin:0 auto;
}
.hero-text{position:relative;z-index:3}
.hero-text .eyebrow{margin-bottom:28px}
.hero-title{
  font-family:var(--font-display);
  font-size:clamp(2.8rem,6.4vw,5.6rem);
  line-height:1.02;letter-spacing:.015em;
  color:var(--charcoal);
  margin-bottom:20px;
}
.hero-title .accent{color:var(--maroon);font-style:italic;font-family:var(--font-serif);font-weight:400}
.hero-sub{
  font-family:var(--font-serif);font-style:italic;
  font-size:clamp(1.15rem,1.5vw,1.4rem);color:var(--charcoal-soft);
  margin-bottom:14px;
}
.hero-desc{
  max-width:520px;color:var(--charcoal-soft);
  font-size:1.02rem;line-height:1.85;margin-bottom:38px;
}
.hero-cta{display:flex;flex-wrap:wrap;gap:16px;align-items:center}

.hero-image{
  position:relative;aspect-ratio:4/5;
  overflow:hidden;
  background:var(--sandstone);
  box-shadow:var(--shadow-lg);
}
.hero-image::before{
  content:"";position:absolute;inset:14px;border:1px solid rgba(255,255,255,.5);z-index:2;pointer-events:none;
}
.hero-image img{
  width:100%;height:100%;object-fit:cover;object-position:center top;
  transition:transform 8s var(--ease);
}
.hero-image:hover img{transform:scale(1.04)}
.hero-image-frame{
  position:absolute;inset:-22px;border:1px solid var(--gold);z-index:-1;
}

.hero-decor{
  position:absolute;font-family:var(--font-display);
  color:var(--gold);opacity:.06;font-size:14rem;
  letter-spacing:.04em;line-height:.85;
  bottom:-30px;left:-20px;pointer-events:none;z-index:0;font-weight:500;
}

.hero-stats{
  position:absolute;bottom:50px;right:50px;
  display:flex;gap:32px;z-index:5;
}
.stat-item{text-align:right}
.stat-num{font-family:var(--font-display);font-size:2rem;color:var(--maroon);line-height:1}
.stat-label{font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--charcoal-soft);margin-top:6px}

@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr;gap:50px}
  .hero-stats{position:static;margin-top:30px;justify-content:flex-start}
  .stat-item{text-align:left}
}

/* ============ PAGE HEADER (interior) ============ */
.page-header{
  position:relative;
  padding:200px 0 100px;
  background:linear-gradient(180deg,var(--ivory-warm) 0%,var(--ivory) 100%);
  overflow:hidden;
}
.page-header::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 80% 20%,rgba(201,169,97,.12),transparent 40%),
    radial-gradient(circle at 15% 80%,rgba(122,46,46,.07),transparent 45%);
}
.page-header-inner{position:relative;text-align:center;z-index:2}
.page-header h1{
  font-size:clamp(2.4rem,5.5vw,4.4rem);line-height:1.05;
  margin:24px 0 20px;
  color:var(--charcoal);
}
.page-header h1 .accent{color:var(--maroon);font-family:var(--font-serif);font-style:italic;font-weight:400}
.breadcrumb{font-size:.75rem;letter-spacing:.28em;text-transform:uppercase;color:var(--charcoal-soft)}
.breadcrumb a{color:var(--gold-deep)}
.breadcrumb a:hover{color:var(--maroon)}
.page-header .lead{max-width:680px;margin:18px auto 0}

.page-header-emblem{
  width:78px;height:78px;margin:0 auto;
  border:1px solid var(--gold);border-radius:50%;
  display:grid;place-items:center;color:var(--gold-deep);
  position:relative;
}
.page-header-emblem::after{
  content:"";position:absolute;inset:-10px;border:1px dashed rgba(201,169,97,.4);border-radius:50%;
  animation:mandalaSpin 60s linear infinite;
}

/* ============ HOME — Welcome / Pillars / Teachings ============ */
.welcome{
  background:var(--ivory);
  position:relative;
}
.welcome-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:90px;align-items:center}
.welcome-image{position:relative;aspect-ratio:3/4;overflow:hidden;box-shadow:var(--shadow-md)}
.welcome-image img{width:100%;height:100%;object-fit:cover;object-position:center top}
.welcome-image::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 12px rgba(201,169,97,.0);transition:box-shadow .6s var(--ease)}
.welcome-image:hover::after{box-shadow:inset 0 0 0 12px rgba(201,169,97,.4)}
.welcome-text h2{margin:24px 0 28px}
.welcome-text p{color:var(--charcoal-soft);margin-bottom:18px;line-height:1.85}
.welcome-quote{
  margin-top:36px;padding:28px 36px;border-left:3px solid var(--gold);
  background:var(--ivory-warm);font-family:var(--font-serif);font-style:italic;
  font-size:1.2rem;color:var(--charcoal);line-height:1.5;
}
.welcome-quote cite{display:block;margin-top:12px;font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-deep);font-style:normal;font-family:var(--font-body)}

@media (max-width:900px){.welcome-grid{grid-template-columns:1fr;gap:50px}}

/* Pillars */
.pillars{background:linear-gradient(180deg,var(--ivory) 0%,var(--ivory-warm) 100%)}
.pillars-head{text-align:center;max-width:680px;margin:0 auto 70px}
.pillars-head h2{margin:24px 0 18px}
.pillars-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
}
.pillar{
  padding:50px 32px;
  background:var(--ivory);
  border:1px solid var(--line);
  text-align:center;
  position:relative;
  transition:all .55s var(--ease);
  overflow:hidden;
}
.pillar::before{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--gold);
  transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease);
}
.pillar:hover{transform:translateY(-8px);box-shadow:var(--shadow-md);border-color:transparent}
.pillar:hover::before{transform:scaleX(1)}
.pillar-icon{
  width:66px;height:66px;margin:0 auto 22px;
  border:1px solid var(--gold);border-radius:50%;
  display:grid;place-items:center;color:var(--gold-deep);
  background:var(--ivory-warm);
}
.pillar h3{font-size:1.1rem;letter-spacing:.14em;margin-bottom:14px;color:var(--maroon-deep)}
.pillar p{font-size:.92rem;color:var(--charcoal-soft);line-height:1.7;margin:0}

@media (max-width:1100px){.pillars-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.pillars-grid{grid-template-columns:1fr}}

/* Highlights / split panels */
.highlights{background:var(--ivory)}
.highlight-row{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  margin-bottom:0;
}
.highlight-row + .highlight-row{margin-top:0}
.highlight-row.reverse{direction:rtl}
.highlight-row.reverse > *{direction:ltr}

.highlight-img{
  position:relative;aspect-ratio:5/4;overflow:hidden;background:var(--sandstone);
}
.highlight-img img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform 1.4s var(--ease)}
.highlight-img:hover img{transform:scale(1.06)}
.highlight-text{
  padding:clamp(40px,6vw,90px);
  display:flex;flex-direction:column;justify-content:center;
  background:var(--ivory-warm);
}
.highlight-text .num{
  font-family:var(--font-display);font-size:.85rem;
  letter-spacing:.4em;color:var(--gold-deep);margin-bottom:18px;
}
.highlight-text h3{font-size:clamp(1.6rem,2.6vw,2.3rem);margin-bottom:18px;line-height:1.2}
.highlight-text p{color:var(--charcoal-soft);line-height:1.85;margin-bottom:24px}
.highlight-text .read-more{
  font-size:.74rem;letter-spacing:.32em;text-transform:uppercase;
  color:var(--maroon);font-weight:600;
  display:inline-flex;align-items:center;gap:12px;
}
.highlight-text .read-more::after{content:"→";transition:transform .35s var(--ease)}
.highlight-text .read-more:hover::after{transform:translateX(6px)}

@media (max-width:900px){
  .highlight-row, .highlight-row.reverse{grid-template-columns:1fr;direction:ltr}
}

/* Teachings preview */
.teachings-preview{background:var(--charcoal);color:var(--ivory-warm);position:relative;overflow:hidden}
.teachings-preview::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 70% 30%,rgba(201,169,97,.08),transparent 50%);
}
.teachings-preview h2{color:var(--ivory);position:relative}
.teachings-preview .eyebrow{color:var(--gold-soft)}
.teachings-preview .eyebrow::before,.teachings-preview .eyebrow::after{background:var(--gold-soft)}
.teachings-cards{
  display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:60px;position:relative;
}
.t-card{
  padding:50px 36px;
  border:1px solid rgba(201,169,97,.2);
  background:rgba(255,255,255,.02);
  position:relative;transition:all .5s var(--ease);
}
.t-card:hover{background:rgba(201,169,97,.05);border-color:var(--gold)}
.t-card .num{
  font-family:var(--font-display);font-size:3.5rem;color:var(--gold);
  opacity:.4;line-height:1;margin-bottom:16px;
}
.t-card h3{color:var(--ivory);font-size:1.2rem;letter-spacing:.16em;margin-bottom:14px}
.t-card p{color:rgba(244,238,221,.65);font-size:.92rem;line-height:1.75;margin:0}
@media (max-width:900px){.teachings-cards{grid-template-columns:1fr}}

/* CTA Section */
.cta-banner{
  background:linear-gradient(135deg,var(--maroon-deep),var(--maroon));
  color:#fff;text-align:center;
  padding:clamp(60px,9vw,110px) 0;
  position:relative;overflow:hidden;
}
.cta-banner::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 20% 80%,rgba(201,169,97,.15),transparent 50%),radial-gradient(circle at 80% 20%,rgba(201,169,97,.1),transparent 50%);
}
.cta-banner h2{color:#fff;margin:18px 0 22px;position:relative}
.cta-banner .lead{color:rgba(255,255,255,.85);max-width:620px;margin:0 auto 36px;position:relative}
.cta-banner .eyebrow{color:var(--gold-soft);position:relative}
.cta-banner .eyebrow::before,.cta-banner .eyebrow::after{background:var(--gold-soft)}

/* ============ TIMELINE ============ */
.timeline{background:var(--ivory)}
.timeline-wrap{position:relative;max-width:1000px;margin:0 auto}
.timeline-line{position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,var(--gold),transparent);transform:translateX(-.5px)}
.tl-item{
  position:relative;display:grid;grid-template-columns:1fr 80px 1fr;gap:0;
  margin-bottom:80px;
}
.tl-item:last-child{margin-bottom:0}
.tl-marker{
  width:18px;height:18px;border-radius:50%;background:var(--gold);
  margin:30px auto 0;position:relative;z-index:2;
  box-shadow:0 0 0 6px var(--ivory),0 0 0 7px var(--gold);
}
.tl-content{padding:30px 36px;background:var(--ivory-warm);border:1px solid var(--line);position:relative}
.tl-content h3{font-size:1.25rem;margin-bottom:10px;color:var(--maroon)}
.tl-content .era{font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:14px;display:block}
.tl-content p{color:var(--charcoal-soft);font-size:.96rem;line-height:1.75;margin:0}
.tl-item.left .tl-content{grid-column:1}
.tl-item.right .tl-content{grid-column:3}
.tl-item.left .tl-empty{grid-column:3}
.tl-item.right .tl-empty{grid-column:1}

@media (max-width:780px){
  .timeline-line{left:24px}
  .tl-item{grid-template-columns:48px 1fr;gap:0}
  .tl-marker{margin:20px 0 0}
  .tl-item.left .tl-content,.tl-item.right .tl-content{grid-column:2}
  .tl-empty{display:none}
}

/* ============ PHILOSOPHY GRID ============ */
.philosophy-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:60px;
}
.phil-card{
  padding:50px 38px;background:var(--ivory-warm);
  border:1px solid var(--line);position:relative;
  transition:all .5s var(--ease);
}
.phil-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);background:var(--ivory)}
.phil-card .icon-wrap{
  width:72px;height:72px;border-radius:50%;
  background:var(--ivory);border:1px solid var(--gold);
  display:grid;place-items:center;color:var(--maroon);margin-bottom:24px;
}
.phil-card h3{font-size:1.15rem;letter-spacing:.14em;margin-bottom:14px;color:var(--charcoal)}
.phil-card .sanskrit{font-family:var(--font-serif);font-style:italic;color:var(--gold-deep);font-size:.95rem;margin-bottom:14px}
.phil-card p{color:var(--charcoal-soft);font-size:.94rem;line-height:1.75;margin:0}
@media (max-width:980px){.philosophy-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.philosophy-grid{grid-template-columns:1fr}}

/* ============ HERITAGE / SYMBOLISM ============ */
.symbolism{background:var(--ivory)}
.sym-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.sym-image{position:relative;aspect-ratio:4/5;overflow:hidden;box-shadow:var(--shadow-md)}
.sym-image img{width:100%;height:100%;object-fit:cover;object-position:center top}
.sym-image::after{content:"";position:absolute;inset:18px;border:1px solid rgba(255,255,255,.4);pointer-events:none}
.sym-text h2{margin:24px 0 24px}
.sym-list{list-style:none;padding:0;margin:32px 0 0}
.sym-list li{
  padding:22px 0;border-top:1px solid var(--line);
  display:grid;grid-template-columns:140px 1fr;gap:24px;align-items:start;
}
.sym-list li:last-child{border-bottom:1px solid var(--line)}
.sym-list .key{font-family:var(--font-display);font-size:.78rem;letter-spacing:.24em;color:var(--maroon);text-transform:uppercase;padding-top:3px}
.sym-list .val{color:var(--charcoal-soft);font-size:.98rem;line-height:1.7}
@media (max-width:900px){
  .sym-grid{grid-template-columns:1fr;gap:40px}
  .sym-list li{grid-template-columns:1fr;gap:6px}
}

/* Tradition compare */
.tradition{background:var(--ivory-warm)}
.tradition-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:60px}
.trad-card{
  padding:60px 50px;background:var(--ivory);
  border-top:3px solid var(--gold);box-shadow:var(--shadow-sm);
  position:relative;transition:all .5s var(--ease);
}
.trad-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}
.trad-card .label{font-size:.75rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-deep);font-weight:600}
.trad-card h3{font-size:1.6rem;margin:14px 0 22px;color:var(--maroon-deep)}
.trad-card p{color:var(--charcoal-soft);line-height:1.85}
.trad-card.alt{border-top-color:var(--maroon)}
@media (max-width:780px){.tradition-grid{grid-template-columns:1fr}}

/* ============ GALLERY MASONRY ============ */
.gallery{background:var(--ivory);padding-top:60px}
.gallery-tabs{
  display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-bottom:50px;
}
.gallery-tab{
  padding:12px 24px;font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--charcoal-soft);border:1px solid var(--line);background:transparent;
  cursor:pointer;font-weight:600;transition:all .35s var(--ease);
}
.gallery-tab.active,.gallery-tab:hover{background:var(--charcoal);color:var(--ivory);border-color:var(--charcoal)}

.gallery-grid{
  column-count:3;column-gap:18px;
}
.gallery-item{
  break-inside:avoid;margin-bottom:18px;
  position:relative;overflow:hidden;cursor:pointer;
  background:var(--sandstone);
  transition:transform .5s var(--ease);
}
.gallery-item img{width:100%;height:auto;display:block;transition:transform 1s var(--ease)}
.gallery-item::after{
  content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(34,30,24,.7));
  opacity:0;transition:opacity .4s var(--ease);
}
.gallery-item:hover img{transform:scale(1.06)}
.gallery-item:hover::after{opacity:1}
.gallery-caption{
  position:absolute;bottom:20px;left:24px;right:24px;
  color:#fff;font-family:var(--font-serif);font-style:italic;
  opacity:0;transform:translateY(10px);transition:all .4s var(--ease);z-index:2;
}
.gallery-item:hover .gallery-caption{opacity:1;transform:translateY(0)}
@media (max-width:900px){.gallery-grid{column-count:2}}
@media (max-width:560px){.gallery-grid{column-count:1}}

/* Lightbox */
.lightbox{
  position:fixed;inset:0;background:rgba(14,8,5,.94);
  z-index:300;display:none;align-items:center;justify-content:center;padding:40px;
}
.lightbox.open{display:flex;animation:fade .4s var(--ease)}
@keyframes fade{from{opacity:0}to{opacity:1}}
.lightbox img{max-width:90vw;max-height:85vh;object-fit:contain;box-shadow:0 30px 100px rgba(0,0,0,.6)}
.lightbox-close{
  position:absolute;top:30px;right:30px;width:50px;height:50px;
  border:1px solid var(--gold);color:var(--gold);background:transparent;
  display:grid;place-items:center;cursor:pointer;font-size:1.4rem;
  transition:all .3s var(--ease);
}
.lightbox-close:hover{background:var(--gold);color:var(--charcoal)}

/* ============ ARTICLES ============ */
.articles{background:var(--ivory)}
.articles-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:36px;
}
.article-card{
  background:var(--ivory-warm);border:1px solid var(--line);
  overflow:hidden;display:flex;flex-direction:column;
  transition:all .5s var(--ease);
}
.article-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);border-color:transparent}
.article-img{aspect-ratio:5/3;overflow:hidden;background:var(--sandstone);position:relative}
.article-img img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform 1s var(--ease)}
.article-card:hover .article-img img{transform:scale(1.05)}
.article-tag{
  position:absolute;top:18px;left:18px;
  background:var(--maroon);color:#fff;padding:6px 14px;
  font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;font-weight:600;
}
.article-body{padding:32px 30px;flex:1;display:flex;flex-direction:column}
.article-meta{font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:14px}
.article-body h3{font-size:1.3rem;line-height:1.3;margin-bottom:14px;color:var(--charcoal)}
.article-body p{color:var(--charcoal-soft);font-size:.94rem;line-height:1.7;flex:1;margin:0 0 22px}
.article-link{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--maroon);font-weight:600}
.article-link::after{content:" →"}

@media (max-width:980px){.articles-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.articles-grid{grid-template-columns:1fr}}

/* ============ CONTACT ============ */
.contact{background:var(--ivory)}
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:start}
.contact-info{padding-right:20px}
.contact-info h2{margin:24px 0 22px}
.contact-list{list-style:none;padding:0;margin:36px 0 0}
.contact-list li{
  display:grid;grid-template-columns:54px 1fr;gap:22px;
  padding:24px 0;border-top:1px solid var(--line);align-items:center;
}
.contact-list li:last-child{border-bottom:1px solid var(--line)}
.contact-list .icn{
  width:54px;height:54px;border-radius:50%;
  background:var(--ivory-warm);border:1px solid var(--gold);
  display:grid;place-items:center;color:var(--maroon);
}
.contact-list .label{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:4px}
.contact-list .val{color:var(--charcoal);font-size:1rem;font-weight:500}
.contact-list a:hover{color:var(--maroon)}

.contact-form{
  padding:50px;background:var(--ivory-warm);border:1px solid var(--line);
  position:relative;
}
.contact-form::before{content:"";position:absolute;top:0;left:0;width:60px;height:3px;background:var(--gold)}
.contact-form h3{font-size:1.5rem;margin-bottom:8px}
.contact-form .sub{font-family:var(--font-serif);font-style:italic;color:var(--charcoal-soft);margin-bottom:32px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}
.form-field{display:flex;flex-direction:column;margin-bottom:20px}
.form-field label{font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--charcoal-soft);font-weight:600;margin-bottom:8px}
.form-field input,.form-field textarea,.form-field select{
  padding:14px 18px;background:var(--ivory);border:1px solid var(--line);
  font-family:var(--font-body);font-size:.95rem;color:var(--charcoal);
  outline:none;transition:all .35s var(--ease);
}
.form-field input:focus,.form-field textarea:focus{border-color:var(--gold);background:#fff}
.form-field textarea{resize:vertical;min-height:140px}

.contact-map{margin-top:80px;height:380px;overflow:hidden;border:1px solid var(--line);background:var(--ivory-warm);position:relative}
.contact-map iframe{width:100%;height:100%;border:0;filter:sepia(15%) saturate(90%)}

@media (max-width:980px){.contact-grid{grid-template-columns:1fr;gap:50px}.form-row{grid-template-columns:1fr}}

/* ============ FOOTER ============ */
.footer{
  background:#16110D;color:rgba(244,238,221,.75);
  padding:80px 0 40px;
  position:relative;overflow:hidden;
}
.footer::before{
  content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
}
.footer-grid{
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:50px;margin-bottom:60px;
}
.footer-brand{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.footer-brand .brand-mark{box-shadow:0 4px 14px rgba(201,169,97,.4)}
.footer-brand .brand-title{color:var(--ivory)}
.footer-tag{font-family:var(--font-serif);font-style:italic;color:rgba(244,238,221,.55);max-width:340px;line-height:1.7;font-size:.95rem}

.footer h4{
  font-family:var(--font-display);font-size:.78rem;letter-spacing:.32em;
  text-transform:uppercase;color:var(--gold-soft);margin-bottom:24px;
}
.footer-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.footer-links a{font-size:.92rem;color:rgba(244,238,221,.65);transition:color .3s var(--ease)}
.footer-links a:hover{color:var(--gold)}

.footer-contact{font-size:.92rem;color:rgba(244,238,221,.65);line-height:1.85}
.footer-contact a{display:block;color:rgba(244,238,221,.65)}
.footer-contact a:hover{color:var(--gold)}
.footer-contact strong{color:var(--ivory);font-weight:500;display:block;margin-bottom:8px;font-family:var(--font-display);letter-spacing:.06em;font-size:.95rem}

.footer-social{display:flex;gap:12px;margin-top:18px}
.footer-social a{
  width:42px;height:42px;border:1px solid rgba(201,169,97,.35);border-radius:50%;
  display:grid;place-items:center;color:var(--gold-soft);
  transition:all .35s var(--ease);
}
.footer-social a:hover{background:var(--gold);color:var(--charcoal);border-color:var(--gold);transform:translateY(-3px)}

.footer-bottom{
  border-top:1px solid rgba(201,169,97,.18);
  padding-top:32px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;
}
.footer-credit{font-size:.82rem;color:rgba(244,238,221,.5)}
.footer-credit a{color:var(--gold);font-weight:500}
.footer-credit a:hover{color:var(--ivory)}
.footer-bottom .legal{font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(244,238,221,.4)}

@media (max-width:980px){.footer-grid{grid-template-columns:1fr 1fr;gap:40px}}
@media (max-width:600px){.footer-grid{grid-template-columns:1fr}}

/* ============ ANIMATIONS ============ */
.reveal{opacity:0;transform:translateY(30px);transition:all 1s var(--ease)}
.reveal.visible{opacity:1;transform:none}
.reveal.delay-1{transition-delay:.1s}
.reveal.delay-2{transition-delay:.2s}
.reveal.delay-3{transition-delay:.3s}
.reveal.delay-4{transition-delay:.4s}

/* About — quick facts */
.facts{background:var(--ivory-warm)}
.facts-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.fact{
  padding:50px 30px;text-align:center;border-right:1px solid var(--line);
}
.fact:last-child{border-right:none}
.fact-num{font-family:var(--font-display);font-size:2.4rem;color:var(--maroon);line-height:1}
.fact-num .small{font-size:1.1rem;color:var(--gold-deep)}
.fact-label{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--charcoal-soft);margin-top:14px}
@media (max-width:780px){.facts-grid{grid-template-columns:1fr 1fr}.fact{border-bottom:1px solid var(--line)}}

/* Sacred ornament image */
.ornament-strip{
  background:var(--charcoal);color:var(--ivory-warm);
  padding:80px 0;text-align:center;
  background-image:linear-gradient(rgba(34,30,24,.85),rgba(34,30,24,.85)),url('../images/Tirthankar_Mallinath.jpg');
  background-size:cover;background-position:center;
  background-attachment:fixed;
}
.ornament-strip blockquote{
  font-family:var(--font-serif);font-style:italic;
  font-size:clamp(1.4rem,2.6vw,2.2rem);line-height:1.5;color:var(--ivory-warm);
  max-width:780px;margin:0 auto;
}
.ornament-strip blockquote::before{content:"\201C";font-family:var(--font-display);font-size:5rem;color:var(--gold);display:block;line-height:.6;margin-bottom:10px}
.ornament-strip cite{display:block;margin-top:24px;font-size:.78rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-soft);font-style:normal;font-family:var(--font-body)}

/* Page intro band */
.page-intro{padding:80px 0;background:var(--ivory)}
.page-intro-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:60px;align-items:center}
.page-intro-text p{color:var(--charcoal-soft);line-height:1.9;font-size:1.02rem}
.page-intro-img{aspect-ratio:1;overflow:hidden;box-shadow:var(--shadow-md)}
.page-intro-img img{width:100%;height:100%;object-fit:cover;object-position:center top}
@media (max-width:900px){.page-intro-grid{grid-template-columns:1fr}}

/* Article featured */
.article-featured{
  display:grid;grid-template-columns:1.1fr 1fr;gap:0;background:var(--ivory-warm);margin-bottom:60px;
}
.article-featured .article-img{aspect-ratio:auto;height:100%;min-height:380px}
.article-featured .article-body{padding:60px 50px;justify-content:center}
.article-featured h3{font-size:2rem}
@media (max-width:900px){.article-featured{grid-template-columns:1fr}.article-featured .article-img{min-height:280px}}

/* Heritage info blocks */
.cosmology{background:var(--ivory)}
.cosmo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:50px;border-top:1px solid var(--line)}
.cosmo-block{padding:50px 36px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.cosmo-block:nth-child(3n){border-right:none}
.cosmo-block .num{font-family:var(--font-display);font-size:.78rem;letter-spacing:.4em;color:var(--gold-deep);margin-bottom:20px}
.cosmo-block h4{font-size:1.2rem;color:var(--maroon-deep);margin-bottom:14px;letter-spacing:.06em}
.cosmo-block p{color:var(--charcoal-soft);font-size:.94rem;line-height:1.75;margin:0}
@media (max-width:900px){.cosmo-grid{grid-template-columns:1fr}.cosmo-block{border-right:none}}

/* Selection */
::selection{background:var(--gold);color:var(--charcoal)}
