/* Open Heart Contact · Flower of Life subject map (v4 draft: connecting glow lines removed; node aura kept), homepage section.
   Namespaced copy of feature-flower-v1-approved/css/flower.css: every selector is prefixed
   with fl- / scoped to .fl-section so nothing clashes with style.css. Fonts load from /fonts/. */
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/cormorant-garamond-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/cormorant-garamond-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/cormorant-garamond-latin-400-italic.woff2) format("woff2")}
.fl-section,.fl-tip{
  --fl-silver:#cdd3e6; --fl-silver-dim:#8f98b8;
  --fl-g1:#f6e3a8; --fl-g2:#d9b25f; --fl-g3:#c79a47;
  --fl-serif:"Cormorant Garamond","Cormorant",ui-serif,"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --fl-sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  line-height:1.55;font-family:var(--fl-sans)}

/* section shell (overrides the site's 720px .section column) */
.section.fl-section{max-width:1280px;padding:56px 0;overflow-x:clip}
.fl-section .fl-glow{position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(900px 640px at 62% 48%,rgba(27,33,104,.55),transparent 70%)}

.fl-layout{display:grid;grid-template-columns:minmax(250px,300px) 1fr;gap:clamp(12px,3vw,40px);align-items:center;
  max-width:1280px;margin:0 auto;padding:20px clamp(16px,3vw,40px)}
.fl-intro{align-self:center}
.fl-eyebrow{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--fl-g2);margin:0 0 .6rem}
.fl-title{font-family:var(--fl-serif);font-weight:600;font-size:clamp(2rem,3.4vw,2.9rem);line-height:1.05;margin:0 0 .8rem;
  background:linear-gradient(180deg,#fff 15%,var(--fl-silver) 60%,#9ea7c8);-webkit-background-clip:text;background-clip:text;color:transparent}
.fl-lead{font-family:var(--fl-serif);font-weight:500;font-size:1.22rem;line-height:1.45;color:#e4e7f4;margin:0 0 1.4rem}
.fl-fine{font-size:.82rem;color:var(--fl-silver-dim);margin:1rem 0 0}

.fl-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.fl-legend button{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:12px;width:100%;cursor:pointer;
  padding:7px 12px;border-radius:999px;font-family:var(--fl-serif);font-weight:600;font-size:1.12rem;color:var(--fl-silver);transition:background .2s,color .2s}
.fl-legend button:hover,.fl-legend button:focus-visible,.fl-legend button[aria-pressed="true"]{background:rgba(246,227,168,.07);color:#fff}
.fl-legend button:focus-visible{outline:2px solid var(--fl-g1);outline-offset:2px}
.fl-legend .fl-sw{width:12px;height:12px;border-radius:50%;flex:none;background:var(--c);box-shadow:0 0 10px 2px var(--c)}
.fl-legend .fl-n{margin-left:auto;font-family:var(--fl-sans);font-weight:400;font-size:.78rem;color:var(--fl-silver-dim)}

.fl-stage-wrap{min-width:0;display:flex;justify-content:center}
.fl-stage{position:relative;width:100%;max-width:min(900px,calc(100vh - 24px))}
#fl-flower{display:block;width:100%;height:auto;overflow:visible;touch-action:manipulation;-webkit-tap-highlight-color:transparent}

/* ---- SVG styling ---- */
.fl-fol circle{fill:none;stroke:url(#fl-goldLine);stroke-width:1;opacity:.5}
.fl-fol .fl-bound{stroke-width:1.4;opacity:.75}
.fl-fol .fl-bound2{stroke-width:.8;opacity:.35}
.fl-outer-layer{transform-box:view-box;opacity:.9}
.fl-outer-layer .fl-ph{fill:var(--fl-g1);opacity:.22}
.fl-outer-layer .fl-tick{stroke:var(--fl-g2);stroke-width:.8;opacity:.28}
.fl-empty-pt{fill:var(--fl-g1);opacity:.4}

.fl-subj{cursor:pointer;outline:none}
.fl-subj:focus-visible{outline:none}
.fl-subj .fl-hit{fill:transparent}
.fl-subj .fl-halo{fill:var(--c);opacity:.22;transition:opacity .25s,r .25s}
.fl-subj .fl-dot{fill:var(--c);stroke:#fff8e6;stroke-width:.6}
.fl-subj text{font-family:var(--fl-serif);font-weight:600;fill:#e9ebf6;paint-order:stroke;stroke:#070a22;stroke-width:3.2px;stroke-linejoin:round;transition:fill .2s}
.fl-subj .fl-lab-line{stroke:var(--c);stroke-width:.7;opacity:.45}
.fl-subj:hover .fl-halo,.fl-subj.fl-active .fl-halo,.fl-subj:focus-visible .fl-halo{opacity:.6}
.fl-subj:hover text,.fl-subj.fl-active text,.fl-subj:focus-visible text{fill:#fff}
.fl-subj:focus-visible .fl-ring{opacity:1}
.fl-subj .fl-ring{fill:none;stroke:var(--fl-g1);stroke-width:1.2;opacity:0}
.fl-dim .fl-subj:not(.fl-in-group){opacity:.28}
.fl-subj{transition:opacity .25s}

.fl-center-glow{fill:url(#fl-centerGlow)}
.fl-center-label{font-family:var(--fl-serif);font-weight:600;fill:url(#fl-goldText);text-anchor:middle;paint-order:stroke;stroke:#070a22;stroke-width:2.5px;stroke-linejoin:round}
.fl-center-dot{fill:#fff4d0}

@media (prefers-reduced-motion:no-preference){
  .fl-outer-layer{animation:fl-spin 360s linear infinite;transform-origin:center}
  .fl-center-glow{animation:fl-breathe 7s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
  .fl-subj .fl-halo{animation:fl-pulse 5.5s ease-in-out infinite}
}
@keyframes fl-spin{to{transform:rotate(360deg)}}
@keyframes fl-breathe{50%{opacity:.7;transform:scale(.92)}}
@keyframes fl-pulse{50%{opacity:.12}}

/* ---- Tooltip card ---- */
.fl-tip{position:fixed;left:0;top:0;z-index:20;width:min(320px,calc(100vw - 24px));padding:16px 18px 16px;border-radius:18px;
  background:linear-gradient(160deg,rgba(28,34,96,.94),rgba(10,14,46,.96));color:#eef0fa;
  box-shadow:0 0 0 1px rgba(246,227,168,.28),0 18px 50px rgba(0,0,0,.55),0 0 40px -8px var(--c,#d9b25f);
  opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .18s,transform .18s,visibility 0s .18s;pointer-events:none;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.fl-tip.fl-show{opacity:1;visibility:visible;transform:none;transition:opacity .18s,transform .18s}
.fl-tip-group{margin:0 0 4px;display:flex;align-items:center;gap:8px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--fl-silver-dim)}
.fl-tip-swatch{width:8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 8px 1px var(--c)}
.fl-tip-title{font-family:var(--fl-serif);font-weight:600;font-size:1.55rem;line-height:1.1;margin:0 0 6px;
  background:linear-gradient(180deg,var(--fl-g1),var(--fl-g2) 60%,var(--fl-g3));-webkit-background-clip:text;background-clip:text;color:transparent}
.fl-tip-desc{margin:0;font-size:.95rem;color:#dfe2f0;line-height:1.5}
.fl-tip-close{display:none}

/* ---- Narrow screens ---- */
@media (max-width:860px){
  .section.fl-section{padding:40px 0 28px}
  .fl-layout{grid-template-columns:1fr;padding:18px 0 28px;gap:0}
  .fl-intro{display:contents}
  .fl-eyebrow,.fl-title,.fl-lead,.fl-legend,.fl-fine{padding:0 18px;text-align:center}
  .fl-eyebrow{order:0}.fl-title{order:1;margin-bottom:.4rem}.fl-lead{order:2;font-size:1.08rem;margin-bottom:.2rem}
  .fl-stage-wrap{order:3}.fl-stage{max-width:620px}
  .fl-legend{order:4;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:2px 4px}
  .fl-legend button{width:auto;padding:5px 10px;font-size:1.02rem;gap:8px}
  .fl-legend .fl-n{display:none}
  .fl-fine{order:5;margin-top:.5rem}
}
@media (max-width:640px){
  .fl-tip{left:0!important;right:0;top:auto!important;bottom:0;width:100%;border-radius:22px 22px 0 0;padding:18px 22px calc(22px + env(safe-area-inset-bottom));
    transform:translateY(100%);transition:transform .25s ease,opacity .2s,visibility 0s .25s;pointer-events:auto}
  .fl-tip.fl-show{transform:none;transition:transform .25s ease,opacity .2s}
  .fl-tip::before{content:"";position:absolute;left:50%;top:7px;width:38px;height:4px;margin-left:-19px;border-radius:4px;background:rgba(205,211,230,.3)}
  .fl-tip-close{display:block;position:absolute;right:10px;top:8px;width:40px;height:40px;border:0;border-radius:50%;background:rgba(205,211,230,.08);color:var(--fl-silver);font-size:1.5rem;line-height:1;cursor:pointer;padding:0}
  .fl-tip-title{padding-right:40px}
  .fl-tip-desc{font-size:1rem}
}
