/* Enhancement layer — concept widgets, consultation form, site-wide polish. Loads after site.css */
html{scroll-padding-top:98px}
::selection{background:var(--gold);color:var(--m9)}
*{scrollbar-color:var(--gold3) var(--m9)}
.site-header::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.7}

/* ---------- zodiac wheel behind heroes ---------- */
.zwheel{position:absolute;width:min(760px,96vw);aspect-ratio:1;right:-9%;top:50%;translate:0 -50%;opacity:.17;animation:spin 220s linear infinite;pointer-events:none;z-index:0}
.hero.center .zwheel{right:auto;left:50%;translate:-50% -50%}
.hero>.wrap{position:relative;z-index:2}
.zwheel text{fill:var(--gold2);font-family:'Cinzel',serif;font-size:3.1px;text-anchor:middle}
.zwheel .g{font-size:5.2px;font-family:'DejaVu Sans','Segoe UI Symbol',serif}
.zwheel circle,.zwheel line{fill:none;stroke:var(--gold);stroke-width:.18}

/* ---------- rashi marquee ---------- */
.rashi{background:linear-gradient(90deg,var(--m9),var(--m8),var(--m9));border-block:1px solid rgba(224,179,79,.35);overflow:hidden;position:relative;z-index:5}
.rashi div{display:flex;width:max-content;animation:marq 70s linear infinite}
.rashi:hover div{animation-play-state:paused}
.rashi span{font-family:var(--disp);font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold2);padding:.95rem 1.6rem;display:inline-flex;align-items:center;gap:1.6rem;white-space:nowrap}
.rashi span::after{content:"✦";color:var(--gold3);font-size:.7rem}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- concept widget card ---------- */
.cx{width:100%;max-width:560px;margin-inline:auto}
.cx-card{position:relative;border-radius:32px;padding:1.5rem 1.4rem 1.3rem;color:var(--cream);
  background:radial-gradient(120% 90% at 50% 0%,#6b1a27 0%,#3a0d15 55%,#1a0508 100%);
  box-shadow:0 0 0 1px rgba(224,179,79,.7),0 0 0 8px rgba(224,179,79,.1),0 30px 70px rgba(43,10,16,.35);overflow:hidden}
.cx-card::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 15%,rgba(243,217,139,.16) 0 1px,transparent 2px) 0 0/46px 46px,radial-gradient(circle at 70% 60%,rgba(243,217,139,.12) 0 1px,transparent 2px) 0 0/62px 62px;pointer-events:none;opacity:.8}
.cx-card>*{position:relative}
.cx-tag{display:flex;align-items:center;justify-content:center;gap:.6rem;font-family:var(--disp);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);text-align:center;line-height:1.5}
.cx-dot{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 0 rgba(224,179,79,.7);animation:pulse 2.2s infinite;flex:none}
@keyframes pulse{70%,100%{box-shadow:0 0 0 12px rgba(224,179,79,0)}}
.cx-stage{margin:1rem 0 .6rem}
.cx-sq{position:relative;width:min(100%,430px);aspect-ratio:1;margin-inline:auto}
.cx-bg,.cx-seg,.cx-chart svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.cx-chart svg{position:static;display:block}
.ln{stroke:rgba(224,179,79,.4);stroke-width:.35}
.ln.d{stroke-dasharray:1.2 1.6;fill:none}.ln.d2{stroke-dasharray:2 2;fill:none;opacity:.7}.ln.pl{fill:none;stroke:rgba(224,179,79,.22)}
.cx-bg .lb{fill:var(--gold2);font:600 3.4px var(--disp);text-anchor:middle;letter-spacing:.4px;opacity:.85}
.road{fill:none;stroke:rgba(224,179,79,.28);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.road2{fill:none;stroke:var(--gold2);stroke-width:.5;stroke-dasharray:1.4 2.4;stroke-linecap:round;animation:dash 4s linear infinite}
@keyframes dash{to{stroke-dashoffset:-15}}
.cx-node{position:absolute;translate:-50% -50%;width:clamp(46px,14vw,64px);aspect-ratio:1;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  background:radial-gradient(circle at 30% 25%,#7a2232,#3a0d15);border:1px solid rgba(224,179,79,.65);color:var(--gold2);cursor:pointer;font-family:var(--sans);
  transition:transform .45s var(--ease),background .35s,color .35s,box-shadow .35s;box-shadow:0 6px 16px rgba(0,0,0,.35);z-index:2}
.cx-node i{font-size:clamp(.95rem,3.4vw,1.2rem)}
.cx-node span{font-size:.58rem;letter-spacing:.04em;line-height:1;font-weight:600}
.cx-node:hover{transform:scale(1.1)}
.cx-node.on{background:radial-gradient(circle at 30% 25%,var(--gold2),var(--gold3));color:var(--m9);transform:scale(1.18);box-shadow:0 0 0 6px rgba(224,179,79,.18),0 0 34px rgba(224,179,79,.75);z-index:3}
.cx-core{position:absolute;left:50%;top:50%;translate:-50% -50%;width:27%;aspect-ratio:1;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;color:var(--gold2);text-align:center;border:1px dashed rgba(224,179,79,.6);background:radial-gradient(circle,rgba(224,179,79,.2),transparent 70%);pointer-events:none;animation:breathe 5s ease-in-out infinite}
.cx-core i{font-size:clamp(1.2rem,4.5vw,1.8rem);filter:drop-shadow(0 0 10px rgba(224,179,79,.8))}
.cx-core span{font-family:var(--disp);font-size:.52rem;letter-spacing:.14em;text-transform:uppercase;line-height:1.2;padding-inline:.3rem}

/* segmented ring */
.cx-seg .seg{cursor:pointer;outline:0;transition:transform .45s var(--ease)}
.cx-seg .seg path{fill:rgba(107,26,39,.85);stroke:rgba(224,179,79,.75);stroke-width:1;transition:fill .3s}
.cx-seg .seg:hover path,.cx-seg .seg:focus-visible path{fill:rgba(138,34,54,.95)}
.cx-seg .seg.on{transform:translate(var(--dx),var(--dy))}
.cx-seg .seg.on path{fill:var(--gold);filter:drop-shadow(0 0 12px rgba(224,179,79,.8))}
.cx-seg .pt{fill:var(--gold2);font:700 22px var(--serif);text-anchor:middle;pointer-events:none}
.cx-seg .seg.on .pt{fill:var(--m9)}
.cx-seg .nm{fill:var(--cream);font:600 12.5px var(--sans);text-anchor:middle;opacity:.8;transition:all .3s}
.cx-seg .nm.on{fill:var(--gold2);opacity:1;font-weight:700}
.cx-seg .hub{fill:rgba(26,5,8,.85);stroke:rgba(224,179,79,.5);stroke-dasharray:3 4}
.cx-seg .big{fill:var(--gold2);font:600 46px var(--serif);text-anchor:middle}
.cx-seg .sm{fill:var(--cream);font:600 15px var(--disp);text-anchor:middle;letter-spacing:.1em;text-transform:uppercase}

/* birth chart */
.cx-chart .frm{fill:rgba(26,5,8,.45);stroke:var(--gold);stroke-width:2}
.cx-chart .hs{cursor:pointer;outline:0}
.cx-chart .hs polygon{fill:rgba(107,26,39,.5);stroke:var(--gold);stroke-width:1.5;transition:fill .3s}
.cx-chart .hs:hover polygon,.cx-chart .hs:focus-visible polygon{fill:rgba(138,34,54,.9)}
.cx-chart .hs.on polygon{fill:url(#hg);filter:drop-shadow(0 0 10px rgba(224,179,79,.85))}
.cx-chart .hn{fill:var(--gold2);font:600 24px var(--serif);text-anchor:middle;pointer-events:none}
.cx-chart .hl{fill:var(--cream);font:500 11px var(--sans);text-anchor:middle;opacity:.8;pointer-events:none}
.cx-chart .hs.on .hn,.cx-chart .hs.on .hl{fill:var(--m9);opacity:1}

/* vastu mandala */
.cx-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:min(100%,400px);margin-inline:auto;padding:8px;border-radius:22px;border:1px solid rgba(224,179,79,.5);background:rgba(26,5,8,.45)}
.cx-cell{position:relative;aspect-ratio:1;border-radius:14px;border:1px solid rgba(224,179,79,.45);background:radial-gradient(circle at 30% 20%,#6b1a27,#33090f);color:var(--gold2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;cursor:pointer;transition:all .35s var(--ease);font-family:var(--sans)}
.cx-cell em{position:absolute;top:.4rem;left:.55rem;font:600 .6rem var(--disp);letter-spacing:.1em;font-style:normal;opacity:.8}
.cx-cell i{font-size:clamp(1rem,4vw,1.4rem)}
.cx-cell span{font-size:.64rem;font-weight:600}
.cx-cell.mid{border-style:dashed}
.cx-cell:hover{transform:translateY(-3px);border-color:var(--gold)}
.cx-cell.on{background:radial-gradient(circle at 30% 20%,var(--gold2),var(--gold3));color:var(--m9);box-shadow:0 0 28px rgba(224,179,79,.7);transform:scale(1.05);z-index:2}

/* timeline bar */
.cx-bar{display:flex;gap:3px;height:112px;align-items:stretch}
.cx-seg2{flex:1 1 0;min-width:0;border-radius:10px;border:1px solid rgba(224,179,79,.5);background:linear-gradient(180deg,rgba(224,179,79,.2),rgba(107,26,39,.7));color:var(--gold2);cursor:pointer;display:grid;place-items:center;padding:0;transition:all .4s var(--ease)}
.cx-seg2 span{writing-mode:vertical-rl;rotate:180deg;font:600 .7rem var(--sans);letter-spacing:.06em}
.cx-seg2:hover{border-color:var(--gold)}
.cx-seg2.on{background:linear-gradient(180deg,var(--gold2),var(--gold3));color:var(--m9);box-shadow:0 0 26px rgba(224,179,79,.7);transform:translateY(-8px)}
.cx-axis{display:flex;justify-content:space-between;margin-top:.6rem;font-size:.68rem;color:rgba(246,232,203,.6);letter-spacing:.08em}

/* tabs */
.cx-tabs{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center;padding:.4rem 0 .6rem}
.cx-tab{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1.05rem;border-radius:999px;border:1px solid rgba(224,179,79,.55);background:rgba(255,255,255,.04);color:var(--gold2);cursor:pointer;font:600 .85rem var(--sans);transition:all .3s}
.cx-tab:hover{background:rgba(224,179,79,.15)}
.cx-tab.on{background:linear-gradient(120deg,var(--gold3),var(--gold2));color:var(--m9);border-color:var(--gold2);box-shadow:0 0 22px rgba(224,179,79,.5)}

/* panel */
.cx-panel{min-height:10.5rem;border-top:1px dashed rgba(224,179,79,.4);padding-top:1.1rem;text-align:center}
.cx-panel.swap{animation:swap .55s var(--ease)}
@keyframes swap{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.cx-panel h4{font-size:clamp(1.3rem,3vw,1.6rem);color:var(--gold2);margin-bottom:.4rem}
.cx-panel p{color:rgba(255,246,228,.88);font-size:.98rem;line-height:1.65;max-width:46ch;margin-inline:auto}
.cx-chips{display:flex;flex-wrap:wrap;gap:.45rem;justify-content:center;margin-top:.85rem}
.cx-chips span{padding:.25rem .8rem;border-radius:999px;border:1px solid rgba(224,179,79,.45);background:rgba(224,179,79,.1);font-size:.76rem;color:var(--gold2)}
.cx-go{display:inline-flex;gap:.6rem;align-items:center;margin-top:1rem;padding:.6rem 1.2rem;border-radius:999px;background:linear-gradient(120deg,var(--gold3),var(--gold2));color:var(--m9);font-weight:600;font-size:.88rem;transition:gap .3s}
.cx-go:hover{gap:1rem}
.cx-foot{margin-top:.9rem;font-size:.74rem;font-style:italic;color:rgba(246,232,203,.6);text-align:center;line-height:1.5}
.cx-foot i{color:var(--gold);margin-right:.25rem}

/* agenda */
.cx-agenda{display:grid;gap:1rem}
.cx-lead{text-align:center;color:rgba(255,246,228,.86);font-size:.95rem}
.cx-picks{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}
.cx-pick{padding:.55rem 1rem;border-radius:999px;border:1px solid rgba(224,179,79,.55);background:none;color:var(--cream);font:500 .84rem var(--sans);cursor:pointer;transition:all .3s}
.cx-pick:hover{background:rgba(224,179,79,.15)}
.cx-pick.on{background:var(--gold);color:var(--m9);font-weight:600;border-color:var(--gold)}
.cx-pick.on::before{content:"✓ "}
.cx-list{list-style:decimal;margin:0 0 0 1.4rem;padding:.9rem 1.1rem .9rem 1.6rem;border-radius:16px;background:rgba(0,0,0,.25);border:1px dashed rgba(224,179,79,.4);color:var(--gold2);font-size:.92rem;min-height:5rem}
.cx-list li{padding:.15rem 0}.cx-list .empty{list-style:none;color:rgba(246,232,203,.5);margin-left:-1.4rem;font-style:italic}
.cx-send{justify-content:center}.cx-send:disabled{opacity:.45;pointer-events:none;animation:none}

/* ---------- consultation form ---------- */
.consult{padding:2.4rem;text-align:left}
.consult h3{font-size:clamp(1.5rem,2.6vw,2rem);margin-bottom:.2rem}
.consult .fsub{color:var(--muted);font-size:.95rem;margin-bottom:.4rem}
.fgrid{--bs-gutter-x:1.1rem;--bs-gutter-y:1.1rem}
.consult .btn{justify-content:center;border:0;width:50%;min-width:230px;justify-self:center;margin-inline:auto}
.consult .btn,.consult .alt{width:50%;min-width:230px;justify-self:center;margin-inline:auto}
.consult .cta-row{display:flex;align-items:center;justify-content:center;gap:1rem;width:100%}
.consult .cta-row .btn{flex:1 1 0;width:auto;min-width:0;margin:0;padding:1rem .9rem;white-space:nowrap}
.consult .cta-row .alt{flex:none;width:auto;min-width:0;margin:0}
.consult .cta-row .alt::before,.consult .cta-row .alt::after{display:none}
@media(max-width:640px){.consult .btn,.consult .alt{width:100%;min-width:0}
.consult .cta-row{flex-direction:column;align-items:stretch;gap:.6rem}
.consult .cta-row .btn{flex:none;width:100%}
.consult .cta-row .alt{width:100%}
.consult .cta-row .alt::before,.consult .cta-row .alt::after{display:block}}
.consult .btn.loading{opacity:.75;pointer-events:none}
.consult .btn.loading i{animation:spin 1s linear infinite}
.form-msg{display:none;gap:.9rem;align-items:flex-start;padding:1.1rem 1.3rem;border-radius:16px;font-size:.96rem;line-height:1.55;scroll-margin-top:120px}
.form-msg.show{display:flex;animation:swap .5s var(--ease)}
.form-msg i{font-size:1.4rem;margin-top:.1rem}
.form-msg.ok{background:#eaf7ee;border:1px solid #8fd1a6;color:#0f5132}
.form-msg.err{background:#fdecec;border:1px solid #e9a3a3;color:#842029}
.form-msg a{text-decoration:underline;font-weight:600}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.cta .consult{max-width:780px;margin:2rem auto 0}
.cta .consult .alt{margin-top:.2rem}
.info-card{display:flex;gap:1rem;align-items:flex-start;padding:1.1rem 1.3rem;border-radius:20px;background:#fff;border:1px solid var(--line);box-shadow:var(--sh2);margin-top:1rem;transition:transform .4s var(--ease),border-color .4s}
.info-card:hover{transform:translateX(8px);border-color:var(--gold)}
.info-card>i{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--m6),var(--m8));color:var(--gold);flex:none}
.info-card b{display:block;color:var(--m7);font-family:var(--serif);font-size:1.2rem}
.info-card span{color:var(--muted);font-size:.93rem}

/* ---------- home concern finder ---------- */
.concern{display:grid;grid-template-columns:1fr minmax(0,520px);gap:clamp(2rem,5vw,4rem);align-items:center}

/* ---------- floating book button ---------- */
.book-float{position:fixed;left:1.1rem;bottom:1.1rem;z-index:90;display:inline-flex;gap:.6rem;align-items:center;padding:.85rem 1.35rem;border-radius:999px;background:linear-gradient(120deg,var(--gold3),var(--gold2),var(--gold));color:var(--m9);font-weight:700;font-size:.9rem;box-shadow:0 12px 30px rgba(0,0,0,.35);transition:transform .35s var(--ease)}
.book-float:hover{transform:translateY(-4px)}

/* ---------- card polish ---------- */
.card::after{content:"";position:absolute;right:14px;top:14px;width:26px;height:26px;border-top:2px solid var(--gold3);border-right:2px solid var(--gold3);border-radius:0 10px 0 0;opacity:.55;transition:all .5s var(--ease)}
.card:hover::after{width:46px;height:46px;opacity:1}
.sec h2{text-wrap:balance}

@media(max-width:1020px){.concern{grid-template-columns:1fr}.consult{padding:1.6rem}}
@media(max-width:640px){.cx-card{padding:1.2rem .9rem}.cx-bar{height:96px}.book-float span{display:none}.book-float{padding:.95rem 1.05rem}.cx-seg .nm{font-size:13.5px}}
@media(prefers-reduced-motion:reduce){.zwheel,.rashi div,.road2,.cx-dot{animation:none}}

/* =====================  COMPACT CONCEPT WIDGETS  ===================== */
.sec:has(.cx){padding:3.2rem 0}
.cx{max-width:600px}
.cx-card{padding:1.1rem 1.2rem 1rem;border-radius:28px}
.cx-stage{margin:.7rem 0 .4rem}
.cx-sq{width:min(100%,320px)}
.cx-node{width:clamp(42px,12vw,64px)}
.cx-node span{font-size:.54rem}
.cx-node i{font-size:clamp(.85rem,3vw,1rem);padding-bottom: 6px;}
.cx-core span{font-size:.46rem}
.cx-panel{min-height:8.5rem;padding-top:.9rem}
.cx-panel h4{font-size:1.3rem}
.cx-panel p{font-size:.92rem;line-height:1.55}
.cx-chips{margin-top:.65rem}
.cx-foot{margin-top:.6rem;font-size:.7rem}
/* bigger text inside scaled svgs */
.cx-seg .pt{font-size:30px}.cx-seg .nm{font-size:17px}.cx-seg .big{font-size:52px}.cx-seg .sm{font-size:19px}
.cx-chart .hn{font-size:30px}.cx-chart .hl{font-size:14.5px}
.cx-bg .lb{font-size:3.8px}
.cx-grid3{width:min(100%,320px);gap:6px;padding:6px}
.cx-cell span{font-size:.58rem}.cx-cell em{font-size:.52rem}
.cx-bar{height:84px}.cx-seg2 span{font-size:.64rem}
.cx-tab{padding:.5rem .9rem;font-size:.8rem}
.cx-list{min-height:3.6rem;padding:.6rem 1rem .6rem 1.5rem}

/* desktop: stage left, explanation right -> short, wide card */
@media(min-width:1021px){
  .split:has(.cx){grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:clamp(2rem,4vw,3.5rem)}
  .concern{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
  .cx{max-width:680px;margin-inline:0 auto}
  .cx-card:is([data-type=nodes],[data-type=seg],[data-type=diamond],[data-type=grid3],[data-type=tabs]){display:grid;grid-template-columns:minmax(0,310px) minmax(0,1fr);column-gap:1.5rem;align-items:center}
  .cx-card:is([data-type=nodes],[data-type=seg],[data-type=diamond],[data-type=grid3],[data-type=tabs])>.cx-tag,
  .cx-card:is([data-type=nodes],[data-type=seg],[data-type=diamond],[data-type=grid3],[data-type=tabs])>.cx-foot{grid-column:1/-1}
  .cx-card[data-type]:not([data-type=bar]):not([data-type=agenda]) .cx-panel{border-top:0;border-left:1px dashed rgba(224,179,79,.4);padding:.3rem 0 .3rem 1.4rem;text-align:left;min-height:11rem;display:flex;flex-direction:column;justify-content:center}
  .cx-card:not([data-type=bar]):not([data-type=agenda]) .cx-panel p{margin-inline:0}
  .cx-card:not([data-type=bar]):not([data-type=agenda]) .cx-chips{justify-content:flex-start}
  .cx-card[data-type=tabs] .cx-tabs{flex-direction:column;align-items:stretch;gap:.5rem}
  .cx-card[data-type=tabs] .cx-tab{justify-content:flex-start;border-radius:16px}
  .cx-tag{justify-content:flex-start;text-align:left}
}

/* =====================  CONSULTATION POPUP  ===================== */
.modal{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:1rem;opacity:0;transition:opacity .3s}
.modal[hidden]{display:none}
.modal.open{opacity:1}
.modal-bg{position:absolute;inset:0;background:rgba(20,4,7,.78);backdrop-filter:blur(6px)}
.modal-box{position:relative;width:min(720px,100%);max-height:94vh;overflow:auto;border-radius:28px;background:linear-gradient(180deg,#fffaf0,#fff);border:1px solid var(--gold);box-shadow:0 0 0 8px rgba(224,179,79,.18),0 40px 90px rgba(0,0,0,.55);transform:translateY(30px) scale(.97);transition:transform .45s var(--ease);overscroll-behavior:contain}
.modal.open .modal-box{transform:none}
.modal-box::before{content:"";position:sticky;top:0;display:block;height:5px;background:linear-gradient(90deg,var(--gold3),var(--gold2),var(--gold3));z-index:3}
.modal-x{position:absolute;top:14px;right:14px;z-index:4;width:42px;height:42px;border-radius:50%;border:1px solid var(--gold3);background:var(--m8);color:var(--gold);cursor:pointer;font-size:1rem;transition:transform .3s}
.modal-x:hover{transform:rotate(90deg)}
.modal .form{box-shadow:none;border:0;background:transparent;padding:1.8rem 2rem 2rem;gap:1rem}
.mhead{text-align:center;padding-right:0}
.mhead .eyebrow{font-size:.66rem;margin-bottom:.4rem}
.mhead h3{font-size:clamp(1.6rem,3vw,2.1rem)}
.modal .form textarea{min-height:100px}
@media(max-width:640px){.modal{padding:.5rem;align-items:end}.modal-box{border-radius:24px 24px 0 0;max-height:96vh}.modal .form{padding:1.4rem 1.1rem 1.6rem}}
button.book-float{border:0;cursor:pointer;font-family:var(--sans)}
