/* Cosmic Oracle - Styles */
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700;900&family=Cinzel+Decorative:wght@400;700&family=Raleway:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap');

:root {
  --cosmos:    #050818;
  --deep:      #0a0f2e;
  --nebula:    #111538;
  --void:      #1a1f45;
  --indigo:    #2d3180;
  --violet:    #6c5ce7;
  --violet-lt: #a89af7;
  --rose:      #c9846a;
  --rose-lt:   #e8b49a;
  --gold:      #d4af6e;
  --gold-lt:   #f0d49a;
  --starlight: #e8e4f8;
  --mist:      rgba(232,228,248,0.58);
  --mist-sm:   rgba(232,228,248,0.07);
  --radius:    16px;
  --radius-lg: 26px;
  --trans:     0.32s cubic-bezier(0.4,0,0.2,1);
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; }
body { font-family:'Raleway',sans-serif; background:var(--cosmos); color:var(--starlight); overflow-x:hidden; line-height:1.7; }
::selection { background:rgba(108,92,231,0.4); color:#fff; }
::-webkit-scrollbar { width:6px; }
::-webkit-scrollbar-track { background:var(--deep); }
::-webkit-scrollbar-thumb { background:var(--violet); border-radius:3px; }

/* Canvas */
#starfield { position:fixed; inset:0; z-index:0; pointer-events:none; opacity:0.7; }

/* Layout */
.container { max-width:1200px; margin:0 auto; padding:0 24px; }
.section    { padding:90px 0; position:relative; z-index:1; }
.section-sm { padding:50px 0; position:relative; z-index:1; }

/* Section headers */
.section-header { text-align:center; margin-bottom:56px; }
.section-label  {
  display:inline-block; font-family:'Cinzel',serif;
  font-size:0.72rem; font-weight:600; letter-spacing:4px;
  text-transform:uppercase; color:var(--gold); margin-bottom:14px;
}
.section-title {
  font-family:'Cinzel',serif;
  font-size:clamp(1.8rem,4vw,3rem); font-weight:700; line-height:1.2;
  background:linear-gradient(135deg,var(--starlight),var(--violet-lt),var(--rose-lt));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.section-sub {
  font-size:0.95rem; color:var(--mist);
  max-width:560px; margin:14px auto 0;
}
.ornament {
  display:flex; align-items:center; justify-content:center; gap:12px; margin:14px 0;
}
.ornament::before,.ornament::after {
  content:''; flex:1; max-width:80px; height:1px;
}
.ornament::before { background:linear-gradient(90deg,transparent,var(--gold)); }
.ornament::after  { background:linear-gradient(90deg,var(--gold),transparent); }
.ornament span { color:var(--gold); font-size:1.1rem; }

/* Buttons */
.btn-primary {
  display:inline-flex; align-items:center; gap:8px;
  background:linear-gradient(135deg,var(--violet),#9b59b6);
  color:#fff; padding:14px 32px; border-radius:50px;
  font-weight:600; font-size:0.92rem; text-decoration:none;
  border:none; cursor:pointer; transition:var(--trans);
  box-shadow:0 6px 28px rgba(108,92,231,0.35); letter-spacing:0.5px;
}
.btn-primary:hover { transform:translateY(-3px); box-shadow:0 14px 40px rgba(108,92,231,0.5); }

.btn-outline {
  display:inline-flex; align-items:center; gap:8px;
  background:transparent; color:var(--gold-lt); padding:13px 30px; border-radius:50px;
  font-weight:600; font-size:0.92rem; text-decoration:none;
  border:1.5px solid rgba(212,175,110,0.4); cursor:pointer; transition:var(--trans);
}
.btn-outline:hover { border-color:var(--gold); color:var(--gold); transform:translateY(-3px); }

/* Reveal */
.reveal { opacity:0; transform:translateY(32px); transition:opacity 0.7s ease,transform 0.7s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* --- NAVBAR --- */
#navbar {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  transition:var(--trans); padding:0;
}
#navbar.scrolled {
  background:rgba(5,8,24,0.96); backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(108,92,231,0.2);
  box-shadow:0 4px 30px rgba(0,0,0,0.4);
}
.nav-inner {
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 32px; max-width:1300px; margin:0 auto;
}
.nav-logo { display:flex; align-items:center; gap:10px; text-decoration:none; }
.nav-logo-icon {
  width:38px; height:38px; border-radius:50%;
  background:linear-gradient(135deg,var(--violet),var(--rose));
  display:flex; align-items:center; justify-content:center; font-size:1.1rem;
}
.nav-logo-text {
  font-family:'Cinzel Decorative',serif; font-size:1.1rem; font-weight:700;
  background:linear-gradient(135deg,var(--gold-lt),var(--rose-lt));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.nav-links { display:flex; align-items:center; gap:4px; list-style:none; }
.nav-links a {
  color:var(--mist); text-decoration:none; font-size:0.84rem; font-weight:500;
  padding:8px 14px; border-radius:8px; transition:var(--trans); letter-spacing:0.5px;
}
.nav-links a:hover,.nav-links a.active { color:var(--gold-lt); background:rgba(212,175,110,0.1); }
.nav-cta {
  background:linear-gradient(135deg,var(--violet),var(--rose));
  color:#fff; padding:9px 20px; border-radius:50px; text-decoration:none;
  font-size:0.82rem; font-weight:600; letter-spacing:0.5px; transition:var(--trans);
}
.nav-cta:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(108,92,231,0.5); }
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:5px; }
.hamburger span { display:block; width:24px; height:2px; background:var(--starlight); border-radius:2px; }

/* --- HERO --- */
#hero {
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden; z-index:1; padding:100px 24px 80px;
}
.hero-bg {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 40%,rgba(108,92,231,0.25) 0%,transparent 70%),
    radial-gradient(ellipse 50% 40% at 20% 80%,rgba(201,132,106,0.18) 0%,transparent 60%),
    radial-gradient(ellipse 40% 50% at 80% 20%,rgba(212,175,110,0.12) 0%,transparent 60%),
    var(--cosmos);
}
.hero-content { text-align:center; position:relative; z-index:2; max-width:820px; }
.hero-badge {
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(212,175,110,0.1); border:1px solid rgba(212,175,110,0.25);
  color:var(--gold-lt); padding:7px 20px; border-radius:50px;
  font-size:0.75rem; font-weight:600; letter-spacing:2px; text-transform:uppercase;
  margin-bottom:24px; animation:fadeInDown 0.8s ease both;
}
.hero-title {
  font-family:'Cinzel',serif;
  font-size:clamp(2.4rem,6vw,5rem); font-weight:900; line-height:1.1;
  margin-bottom:22px; animation:fadeInUp 0.9s ease 0.1s both;
}
.hero-title .line1 {
  display:block;
  background:linear-gradient(135deg,var(--starlight),var(--violet-lt));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.hero-title .line2 {
  display:block;
  background:linear-gradient(135deg,var(--gold),var(--rose-lt));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.hero-sub {
  font-size:clamp(0.95rem,2vw,1.15rem); color:var(--mist);
  max-width:560px; margin:0 auto 36px; line-height:1.85;
  animation:fadeInUp 0.9s ease 0.2s both;
}
.hero-btns {
  display:flex; gap:14px; justify-content:center; flex-wrap:wrap;
  animation:fadeInUp 0.9s ease 0.3s both;
}
.planet { position:absolute; border-radius:50%; pointer-events:none; animation:orbit linear infinite; }
.planet-1 {
  width:320px; height:320px; top:-60px; right:-80px;
  background:radial-gradient(circle at 35% 35%,rgba(108,92,231,0.28),rgba(108,92,231,0.05) 60%,transparent);
  border:1px solid rgba(108,92,231,0.18); animation-duration:42s;
}
.planet-2 {
  width:180px; height:180px; bottom:8%; left:-40px;
  background:radial-gradient(circle at 40% 40%,rgba(201,132,106,0.22),transparent 70%);
  border:1px solid rgba(201,132,106,0.16); animation-duration:28s;
}
.planet-3 {
  width:80px; height:80px; top:22%; left:7%;
  background:radial-gradient(circle at 40% 40%,rgba(212,175,110,0.28),transparent 70%);
  animation-duration:18s;
}
.scroll-hint {
  position:absolute; bottom:32px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:8px;
  color:var(--mist); font-size:0.7rem; letter-spacing:2px; text-transform:uppercase;
  animation:fadeInUp 1s ease 0.7s both;
}
.scroll-hint .arr {
  width:24px; height:24px;
  border-right:1.5px solid var(--mist); border-bottom:1.5px solid var(--mist);
  transform:rotate(45deg); animation:bounce 1.6s ease infinite;
}

/* --- AD BLOCKS --- */
.ad-banner {
  background:linear-gradient(135deg,rgba(212,175,110,0.06),rgba(108,92,231,0.06));
  border:1px dashed rgba(212,175,110,0.2); border-radius:12px;
  text-align:center; padding:18px; color:var(--mist);
  font-size:0.78rem; letter-spacing:1px;
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:4px;
}
.ad-label { font-size:0.62rem; letter-spacing:3px; text-transform:uppercase; opacity:0.45; }
.ad-top     { min-height:90px; margin:76px auto 0; max-width:728px; }
.ad-footer  { min-height:90px; max-width:728px; margin:0 auto; }
.ad-sidebar { min-height:250px; }
.ad-inline  { min-height:90px; margin:40px 0; }

/* --- ZODIAC STRIP --- */
.zodiac-strip { display:grid; grid-template-columns:repeat(12,1fr); gap:8px; margin-top:16px; }
.zodiac-quick {
  display:flex; flex-direction:column; align-items:center; gap:6px;
  padding:14px 6px; border-radius:14px;
  background:var(--mist-sm); border:1px solid rgba(232,228,248,0.08);
  text-decoration:none; color:var(--starlight); cursor:pointer; transition:var(--trans);
}
.zodiac-quick:hover {
  background:rgba(108,92,231,0.18); border-color:var(--violet);
  transform:translateY(-4px); box-shadow:0 8px 20px rgba(108,92,231,0.3);
}
.zodiac-quick .sign-icon  { font-size:1.5rem; }
.zodiac-quick .sign-name  { font-size:0.62rem; font-weight:600; letter-spacing:0.5px; color:var(--gold); }

/* --- ZODIAC CARDS --- */
.zodiac-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:22px; }
.zodiac-card {
  padding:28px 22px; border-radius:var(--radius-lg);
  background:linear-gradient(135deg,rgba(255,255,255,0.05),rgba(255,255,255,0.02));
  border:1px solid rgba(232,228,248,0.09);
  transition:var(--trans); cursor:pointer; position:relative; overflow:hidden;
}
.zodiac-card::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(135deg,var(--c1,rgba(108,92,231,0.12)),var(--c2,rgba(201,132,106,0.08)));
  opacity:0; transition:var(--trans);
}
.zodiac-card:hover { transform:translateY(-8px); border-color:rgba(108,92,231,0.3); }
.zodiac-card:hover::before { opacity:1; }
.zodiac-card:hover .card-glow { opacity:1; }
.card-glow {
  position:absolute; top:-40px; right:-40px; width:120px; height:120px;
  border-radius:50%;
  background:radial-gradient(circle,var(--cg,rgba(108,92,231,0.3)),transparent 70%);
  opacity:0; transition:var(--trans); pointer-events:none;
}
.zodiac-symbol {
  font-size:2.8rem; margin-bottom:12px; display:block;
  filter:drop-shadow(0 0 10px rgba(212,175,110,0.35));
}
.zodiac-name  { font-family:'Cinzel',serif; font-size:1.2rem; font-weight:700; margin-bottom:4px; }
.zodiac-dates { font-size:0.74rem; color:var(--gold); font-weight:600; letter-spacing:1px; margin-bottom:10px; }
.zodiac-element {
  display:inline-block; font-size:0.63rem; font-weight:700;
  letter-spacing:2px; text-transform:uppercase;
  padding:3px 10px; border-radius:20px; margin-bottom:12px;
}
.elem-fire  { background:rgba(231,74,59,0.18);  color:#f08080; border:1px solid rgba(231,74,59,0.3); }
.elem-earth { background:rgba(76,175,80,0.18);  color:#98d898; border:1px solid rgba(76,175,80,0.3); }
.elem-air   { background:rgba(30,144,255,0.18); color:#87c4ff; border:1px solid rgba(30,144,255,0.3); }
.elem-water { background:rgba(0,191,255,0.18);  color:#87dfff; border:1px solid rgba(0,191,255,0.3); }
.zodiac-desc { font-size:0.81rem; color:var(--mist); line-height:1.7; margin-bottom:16px; }
.zodiac-link {
  display:inline-flex; align-items:center; gap:6px;
  font-size:0.77rem; font-weight:600; color:var(--violet-lt); text-decoration:none; transition:var(--trans);
}
.zodiac-link:hover { color:var(--gold); gap:10px; }

/* --- HOROSCOPE TABS --- */
.horoscope-tabs { display:flex; justify-content:center; gap:8px; margin-bottom:38px; flex-wrap:wrap; }
.tab-btn {
  padding:10px 24px; border-radius:50px;
  background:var(--mist-sm); border:1px solid rgba(232,228,248,0.1);
  color:var(--mist); font-family:'Cinzel',serif; font-size:0.78rem;
  font-weight:600; letter-spacing:1px; cursor:pointer; transition:var(--trans);
}
.tab-btn.active,.tab-btn:hover {
  background:linear-gradient(135deg,var(--violet),var(--rose));
  border-color:transparent; color:#fff; box-shadow:0 6px 20px rgba(108,92,231,0.35);
}
.tab-content { display:none; }
.tab-content.active { display:block; animation:fadeIn 0.5s ease; }

.horoscope-hero {
  background:linear-gradient(135deg,rgba(108,92,231,0.15),rgba(201,132,106,0.1));
  border:1px solid rgba(108,92,231,0.22); border-radius:var(--radius-lg);
  padding:46px; text-align:center; margin-bottom:30px;
}
.horo-sign-big { font-size:5rem; margin-bottom:12px; }
.horo-date  { font-size:0.77rem; color:var(--gold); letter-spacing:2px; margin-bottom:8px; }
.horo-title { font-family:'Cinzel',serif; font-size:1.6rem; margin-bottom:16px; }
.horo-text  { font-size:0.9rem; color:var(--mist); line-height:1.9; max-width:680px; margin:0 auto; }

.horo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:16px; }
.horo-mini-card {
  padding:20px 16px; border-radius:var(--radius);
  background:var(--mist-sm); border:1px solid rgba(232,228,248,0.08);
  text-align:center; cursor:pointer; transition:var(--trans);
}
.horo-mini-card:hover { border-color:var(--violet); background:rgba(108,92,231,0.1); transform:translateY(-4px); }
.horo-mini-icon    { font-size:2rem; margin-bottom:8px; }
.horo-mini-name    { font-family:'Cinzel',serif; font-size:0.87rem; color:var(--gold); margin-bottom:4px; }
.horo-mini-preview { font-size:0.71rem; color:var(--mist); line-height:1.6; }

/* --- TOOLS --- */
.tools-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:26px; }
.tool-card {
  padding:36px 30px; border-radius:var(--radius-lg);
  background:linear-gradient(135deg,rgba(255,255,255,0.05),rgba(255,255,255,0.02));
  border:1px solid rgba(232,228,248,0.1); transition:var(--trans);
}
.tool-card:hover { border-color:rgba(108,92,231,0.3); }
.tool-icon  { font-size:2.4rem; margin-bottom:16px; }
.tool-title { font-family:'Cinzel',serif; font-size:1.2rem; margin-bottom:8px; color:var(--gold-lt); }
.tool-desc  { font-size:0.81rem; color:var(--mist); margin-bottom:22px; line-height:1.7; }

.form-group   { margin-bottom:16px; }
.form-label   { display:block; font-size:0.77rem; font-weight:600; color:var(--violet-lt); margin-bottom:7px; letter-spacing:0.5px; }
.form-input {
  width:100%; background:rgba(255,255,255,0.05);
  border:1px solid rgba(232,228,248,0.12); color:var(--starlight);
  padding:12px 16px; border-radius:10px;
  font-family:'Raleway',sans-serif; font-size:0.87rem; outline:none; transition:var(--trans);
}
.form-input:focus { border-color:var(--violet); background:rgba(108,92,231,0.08); box-shadow:0 0 0 3px rgba(108,92,231,0.12); }
.form-input option { background:var(--deep); }
.form-input::placeholder { color:rgba(232,228,248,0.3); }

.tool-result {
  margin-top:22px; padding:22px; border-radius:12px;
  background:linear-gradient(135deg,rgba(108,92,231,0.15),rgba(201,132,106,0.1));
  border:1px solid rgba(108,92,231,0.25); display:none; animation:fadeIn 0.4s ease;
}
.tool-result.show { display:block; }
.result-big {
  font-family:'Cinzel',serif; font-size:2.4rem; font-weight:900;
  background:linear-gradient(135deg,var(--gold-lt),var(--rose-lt));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  margin-bottom:8px;
}
.result-label { font-size:0.74rem; color:var(--gold); letter-spacing:1.5px; text-transform:uppercase; margin-bottom:10px; }
.result-text  { font-size:0.82rem; color:var(--mist); line-height:1.8; }

.lucky-balls { display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }
.lucky-ball {
  width:46px; height:46px; border-radius:50%;
  background:linear-gradient(135deg,var(--violet),var(--rose));
  display:flex; align-items:center; justify-content:center;
  font-family:'Cinzel',serif; font-size:0.95rem; font-weight:700;
  box-shadow:0 4px 14px rgba(108,92,231,0.4);
  animation:popIn 0.4s cubic-bezier(0.175,0.885,0.32,1.275) both;
}

/* --- SERVICES --- */
.services-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:20px; }
.service-card {
  padding:30px 24px; border-radius:var(--radius-lg); text-align:center;
  background:linear-gradient(135deg,rgba(255,255,255,0.04),rgba(255,255,255,0.015));
  border:1px solid rgba(232,228,248,0.08); transition:var(--trans); position:relative; overflow:hidden;
}
.service-card::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg,var(--violet),var(--rose));
  transform:scaleX(0); transition:var(--trans);
}
.service-card:hover::after { transform:scaleX(1); }
.service-card:hover { transform:translateY(-7px); border-color:rgba(108,92,231,0.25); }
.service-icon {
  width:68px; height:68px; border-radius:20px;
  background:linear-gradient(135deg,rgba(108,92,231,0.18),rgba(201,132,106,0.1));
  border:1px solid rgba(108,92,231,0.2);
  display:flex; align-items:center; justify-content:center;
  font-size:1.8rem; margin:0 auto 18px;
}
.service-title { font-family:'Cinzel',serif; font-size:0.98rem; color:var(--gold-lt); margin-bottom:10px; }
.service-desc  { font-size:0.79rem; color:var(--mist); line-height:1.75; }

/* --- BLOG --- */
.blog-grid      { display:grid; grid-template-columns:2fr 1fr; gap:26px; align-items:start; }
.blog-main-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.blog-card {
  border-radius:var(--radius-lg); overflow:hidden;
  background:linear-gradient(135deg,rgba(255,255,255,0.05),rgba(255,255,255,0.02));
  border:1px solid rgba(232,228,248,0.09); transition:var(--trans);
}
.blog-card:hover { transform:translateY(-6px); border-color:rgba(108,92,231,0.3); box-shadow:0 16px 40px rgba(0,0,0,0.3); }
.blog-card.featured { grid-column:1 / -1; }
.blog-thumb {
  height:190px; position:relative; overflow:hidden;
  background:linear-gradient(135deg,var(--void),var(--indigo));
  display:flex; align-items:center; justify-content:center; font-size:4rem;
}
.blog-card.featured .blog-thumb { height:260px; font-size:5.5rem; }
.blog-cat {
  position:absolute; top:14px; left:14px;
  background:rgba(108,92,231,0.85); backdrop-filter:blur(10px);
  color:#fff; padding:4px 12px; border-radius:20px;
  font-size:0.64rem; font-weight:700; letter-spacing:1px; text-transform:uppercase;
}
.blog-body     { padding:22px; }
.blog-meta     { font-size:0.7rem; color:var(--gold); letter-spacing:1px; margin-bottom:8px; }
.blog-title    { font-family:'Cinzel',serif; font-size:0.98rem; font-weight:600; line-height:1.4; margin-bottom:10px; }
.blog-card.featured .blog-title { font-size:1.28rem; }
.blog-excerpt  { font-size:0.79rem; color:var(--mist); line-height:1.75; margin-bottom:14px; }
.blog-read-more {
  display:inline-flex; align-items:center; gap:6px;
  font-size:0.75rem; font-weight:600; color:var(--violet-lt);
  text-decoration:none; transition:var(--trans);
}
.blog-read-more:hover { color:var(--gold); gap:10px; }

.blog-sidebar { display:flex; flex-direction:column; gap:18px; }
.sidebar-widget {
  padding:22px; border-radius:var(--radius);
  background:var(--mist-sm); border:1px solid rgba(232,228,248,0.08);
}
.widget-title { font-family:'Cinzel',serif; font-size:0.86rem; color:var(--gold); margin-bottom:16px; letter-spacing:1px; }
.recent-post { display:flex; gap:12px; margin-bottom:12px; padding-bottom:12px; border-bottom:1px solid rgba(232,228,248,0.06); }
.recent-post:last-child { margin-bottom:0; border-bottom:none; }
.recent-icon  { font-size:1.4rem; flex-shrink:0; }
.recent-title { font-size:0.77rem; font-weight:600; color:var(--starlight); line-height:1.4; margin-bottom:4px; cursor:pointer; transition:var(--trans); }
.recent-title:hover { color:var(--gold); }
.recent-date  { font-size:0.66rem; color:var(--mist); }

/* --- NEWSLETTER --- */
#newsletter {
  background:linear-gradient(135deg,rgba(108,92,231,0.15),rgba(201,132,106,0.1));
  border:1px solid rgba(108,92,231,0.22); border-radius:var(--radius-lg);
  padding:60px 40px; text-align:center; position:relative; overflow:hidden;
}
.newsletter-form { display:flex; gap:12px; max-width:500px; margin:26px auto 0; flex-wrap:wrap; justify-content:center; }
.newsletter-input {
  flex:1; min-width:230px;
  background:rgba(255,255,255,0.07); border:1px solid rgba(232,228,248,0.15);
  color:var(--starlight); padding:14px 20px; border-radius:50px;
  font-family:'Raleway',sans-serif; font-size:0.88rem; outline:none; transition:var(--trans);
}
.newsletter-input:focus { border-color:var(--violet); background:rgba(108,92,231,0.1); }
.newsletter-input::placeholder { color:rgba(232,228,248,0.38); }

/* --- CONTACT --- */
.contact-grid { display:grid; grid-template-columns:1fr 1.5fr; gap:38px; align-items:start; }
.contact-info { display:flex; flex-direction:column; gap:16px; }
.contact-item {
  display:flex; gap:14px; align-items:flex-start;
  padding:18px; border-radius:var(--radius);
  background:var(--mist-sm); border:1px solid rgba(232,228,248,0.08);
}
.contact-item-icon {
  width:44px; height:44px; border-radius:12px;
  background:linear-gradient(135deg,var(--violet),var(--rose));
  display:flex; align-items:center; justify-content:center; font-size:1.1rem; flex-shrink:0;
}
.contact-item h4 { font-size:0.83rem; font-weight:700; color:var(--gold-lt); margin-bottom:4px; }
.contact-item p  { font-size:0.77rem; color:var(--mist); line-height:1.6; }
.contact-form {
  padding:36px; border-radius:var(--radius-lg);
  background:linear-gradient(135deg,rgba(255,255,255,0.05),rgba(255,255,255,0.02));
  border:1px solid rgba(232,228,248,0.1);
}
.contact-form textarea.form-input { min-height:110px; resize:vertical; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }

/* --- FOOTER --- */
footer {
  background:linear-gradient(180deg,var(--cosmos),#020410);
  border-top:1px solid rgba(108,92,231,0.14);
  padding:70px 0 24px; position:relative; z-index:1;
}
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:34px; margin-bottom:42px; }
.footer-brand p { font-size:0.81rem; color:var(--mist); line-height:1.8; margin:14px 0 18px; max-width:270px; }
.footer-social { display:flex; gap:10px; }
.social-btn {
  width:38px; height:38px; border-radius:50%;
  background:var(--mist-sm); border:1px solid rgba(232,228,248,0.1);
  display:flex; align-items:center; justify-content:center;
  font-size:0.9rem; text-decoration:none; color:var(--mist); transition:var(--trans);
}
.social-btn:hover { background:rgba(108,92,231,0.3); border-color:var(--violet); color:#fff; transform:translateY(-3px); }
.footer-col h4 {
  font-family:'Cinzel',serif; font-size:0.8rem; color:var(--gold);
  letter-spacing:1.5px; text-transform:uppercase; margin-bottom:16px;
}
.footer-col ul { list-style:none; }
.footer-col ul li { margin-bottom:9px; }
.footer-col ul li a { font-size:0.79rem; color:var(--mist); text-decoration:none; transition:var(--trans); }
.footer-col ul li a:hover { color:var(--gold); padding-left:5px; }
.footer-bottom {
  border-top:1px solid rgba(232,228,248,0.05); padding-top:20px;
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px;
}
.footer-bottom p { font-size:0.74rem; color:rgba(232,228,248,0.32); }
.footer-policy { display:flex; gap:16px; }
.footer-policy a { font-size:0.71rem; color:rgba(232,228,248,0.32); text-decoration:none; transition:var(--trans); }
.footer-policy a:hover { color:var(--gold); }

/* --- MODAL --- */
#zodiacModal {
  display:none; position:fixed; inset:0; z-index:2000;
  background:rgba(5,8,24,0.92); backdrop-filter:blur(18px);
  align-items:center; justify-content:center; padding:24px;
}
.modal-inner {
  background:linear-gradient(135deg,rgba(255,255,255,0.08),rgba(255,255,255,0.04));
  border:1px solid rgba(232,228,248,0.15); border-radius:26px;
  padding:42px; max-width:550px; width:100%; position:relative;
  animation:fadeInUp 0.4s ease; max-height:88vh; overflow-y:auto;
}
.modal-inner::-webkit-scrollbar { width:4px; }
.modal-inner::-webkit-scrollbar-thumb { background:var(--violet); border-radius:2px; }
.modal-close {
  position:absolute; top:16px; right:20px; background:rgba(255,255,255,0.1);
  border:none; color:var(--starlight); width:36px; height:36px;
  border-radius:50%; cursor:pointer; font-size:1.1rem; transition:var(--trans);
}
.modal-close:hover { background:rgba(108,92,231,0.5); }
.modal-header { text-align:center; margin-bottom:22px; }
.modal-header h2 { font-family:'Cinzel',serif; font-size:1.8rem; margin-bottom:4px; }
.modal-dates { color:var(--gold); font-size:0.79rem; letter-spacing:2px; }
.modal-stats { display:flex; gap:12px; margin-bottom:18px; flex-wrap:wrap; }
.modal-stat {
  flex:1; min-width:130px; padding:12px;
  background:rgba(108,92,231,0.1); border-radius:10px; border:1px solid rgba(108,92,231,0.2);
}
.modal-stat-label { font-size:0.62rem; letter-spacing:2px; color:var(--violet-lt); text-transform:uppercase; margin-bottom:4px; }
.modal-stat-val   { font-family:'Cinzel',serif; font-size:0.9rem; font-weight:700; }
.modal-section { margin-bottom:16px; }
.modal-section-label { font-size:0.68rem; letter-spacing:2px; color:var(--gold); text-transform:uppercase; margin-bottom:7px; }
.modal-horo {
  padding:16px; background:linear-gradient(135deg,rgba(108,92,231,0.15),rgba(201,132,106,0.1));
  border-radius:12px; border:1px solid rgba(108,92,231,0.22);
}
.modal-horo p { font-size:0.84rem; color:var(--starlight); line-height:1.85; }

/* --- ANIMATIONS --- */
@keyframes fadeIn      { from{opacity:0}             to{opacity:1} }
@keyframes fadeInDown  { from{opacity:0;transform:translateY(-20px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeInUp    { from{opacity:0;transform:translateY(24px)}  to{opacity:1;transform:translateY(0)} }
@keyframes orbit       { from{transform:rotate(0deg) translateX(8px) rotate(0deg)} to{transform:rotate(360deg) translateX(8px) rotate(-360deg)} }
@keyframes bounce      { 0%,100%{transform:rotate(45deg) translateY(0)} 50%{transform:rotate(45deg) translateY(6px)} }
@keyframes popIn       { from{opacity:0;transform:scale(0.4)} to{opacity:1;transform:scale(1)} }

/* --- RESPONSIVE --- */
@media(max-width:1024px) {
  .blog-grid        { grid-template-columns:1fr; }
  .footer-grid      { grid-template-columns:1fr 1fr; }
}
@media(max-width:768px) {
  .nav-links {
    display:none; position:fixed; top:62px; left:0; right:0;
    background:rgba(5,8,24,0.98); flex-direction:column; padding:18px;
    gap:4px; border-bottom:1px solid rgba(108,92,231,0.2); z-index:999;
  }
  .nav-links.open { display:flex; }
  .hamburger { display:flex; }
  .nav-cta   { display:none; }
  .zodiac-strip  { grid-template-columns:repeat(6,1fr); }
  .contact-grid  { grid-template-columns:1fr; }
  .footer-grid   { grid-template-columns:1fr; }
  .blog-main-grid{ grid-template-columns:1fr; }
  .form-row      { grid-template-columns:1fr; }
  #newsletter    { padding:38px 20px; }
  .hero-btns     { flex-direction:column; align-items:center; }
  .tools-grid    { grid-template-columns:1fr; }
  .section       { padding:60px 0; }
}
@media(max-width:480px) {
  .zodiac-strip { grid-template-columns:repeat(4,1fr); }
  .horo-grid    { grid-template-columns:repeat(2,1fr); }
}
