/* fynloy global systems: bands, cards, buttons, lists, labels, data panels, prose. Tokens in tokens.css; blocks add composition only. */

/* ---------- bands ---------- */
.fy-band-cloud{background:var(--fy-cloud);color:var(--fy-text)}
.fy-band-white{background:#fff;color:var(--fy-text)}
.fy-band-navy{background:var(--fy-navy);color:var(--fy-text-on-navy)}
.fy-band-navy.fy-band--hero{background:var(--fy-grad-hero)}
.fy-band-navy.fy-band--hero::before{content:"";position:absolute;inset:0;background:var(--fy-grad-glow);pointer-events:none}
.fy-band-navy>.fy-wrap{position:relative}
.fy-band-violet{background:var(--fy-grad-violet);color:#fff}
.fy-main .fy-band~.fy-band{content-visibility:auto;contain-intrinsic-size:auto 760px}
.fy-footer{content-visibility:auto;contain-intrinsic-size:auto 520px}
.fy-main:focus{outline:0}
.fy-skip{position:absolute;left:-9999px;top:0;z-index:999;background:var(--fy-violet);color:#fff;padding:12px 18px;border-radius:var(--fy-r-pill);font:700 15px var(--fy-font-body)}.fy-skip:focus{left:12px;top:12px}

/* ---------- cards ---------- */
.fy-card{background:var(--fy-card);color:var(--fy-text);border-radius:var(--fy-r-card);box-shadow:var(--fy-shadow);padding:clamp(22px,2.6vw,32px);box-sizing:border-box;transition:transform .45s var(--fy-ease),box-shadow .45s var(--fy-ease)}
.fy-card--navy{background:var(--fy-navy-2);color:#fff}
.fy-card--violet{background:var(--fy-grad-violet);color:#fff}
.fy-card--tint{background:var(--fy-violet-tint);box-shadow:none}
.fy-card--flat{box-shadow:none;border:1.5px solid var(--fy-line)}
.fy-cells{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:clamp(14px,1.8vw,22px)}
.fy-c1{--cols:1}.fy-c2{--cols:2}.fy-c3{--cols:3}.fy-c4{--cols:4}
.fy-cells>.fy-card:hover,.fy-cells>.fy-card:focus-within{transform:translateY(-4px);box-shadow:var(--fy-shadow-lift)}
.fy-band-navy .fy-cells>.fy-card{background:var(--fy-navy-2);color:#fff}
.fy-band-navy .fy-cells>.fy-card .fy-c-ink{color:#fff}.fy-band-navy .fy-cells>.fy-card .fy-c-muted{color:var(--fy-text-2-on-navy)}
@media (max-width:1024px){.fy-cells{--cols:2}}@media (max-width:767px){.fy-cells{--cols:1}}

/* ---------- icon tiles (line icons, round) ---------- */
.fy-tile{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:16px;background:var(--fy-violet-tint);color:var(--fy-violet);flex:none}
.fy-tile--lg{width:72px;height:72px;border-radius:20px}
.fy-band-navy .fy-tile,.fy-card--navy .fy-tile{background:rgba(255,255,255,.1);color:var(--fy-lime)}
.fy-tile svg{width:60%;height:60%;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.fy-tile--lime{background:var(--fy-lime);color:var(--fy-navy)}

/* ---------- buttons (pill) ---------- */
.fy-site .fy-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;cursor:pointer;border-radius:var(--fy-r-pill);border:1.5px solid transparent;padding:15px 26px;font:700 16px/1.2 var(--fy-font-display);letter-spacing:-.005em;transition:background .25s var(--fy-ease),color .25s var(--fy-ease),transform .25s var(--fy-ease),box-shadow .25s var(--fy-ease)}
.fy-site .fy-btn:active{transform:translateY(1px)}
.fy-site .fy-btn--primary{background:var(--fy-violet);color:#fff;box-shadow:0 10px 24px -12px rgba(103,87,245,.7)}
.fy-site .fy-btn--primary:hover,.fy-site .fy-btn--primary:focus-visible{background:var(--fy-violet-deep);color:#fff;transform:translateY(-2px)}
.fy-site .fy-btn--violet{background:var(--fy-navy);color:#fff}
.fy-site .fy-btn--violet:hover,.fy-site .fy-btn--violet:focus-visible{background:var(--fy-violet);color:#fff;transform:translateY(-2px)}
.fy-site .fy-btn--ghost{background:transparent;color:var(--fy-navy);border-color:rgba(24,43,58,.28)}
.fy-site .fy-btn--ghost:hover,.fy-site .fy-btn--ghost:focus-visible{background:var(--fy-navy);color:#fff;border-color:var(--fy-navy)}
.fy-site .fy-btn--ghost-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.42)}
.fy-site .fy-btn--ghost-light:hover,.fy-site .fy-btn--ghost-light:focus-visible{background:#fff;color:var(--fy-navy);border-color:#fff}
.fy-site .fy-btn--white{background:#fff;color:var(--fy-violet-deep)}
.fy-site .fy-btn--white:hover,.fy-site .fy-btn--white:focus-visible{background:var(--fy-navy);color:#fff;transform:translateY(-2px)}
.fy-site .fy-btn--lime{background:var(--fy-lime);color:var(--fy-navy)}
.fy-site .fy-btn--lime:hover,.fy-site .fy-btn--lime:focus-visible{background:var(--fy-lime-deep);color:var(--fy-navy)}
.fy-site .fy-btn .ic{width:18px;height:18px}

/* ---------- labels, badges ---------- */
.fy-tag-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;font:600 13px/1.4 var(--fy-font-body);color:var(--fy-text-2)}
.fy-tag-row b{font-weight:600;display:inline-flex;align-items:center;gap:8px}
.fy-tag-row b::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--fy-violet);flex:none}
.fy-tag-row b+b::before{background:#fff;opacity:.7}
.fy-band-navy .fy-tag-row,.fy-card--navy .fy-tag-row,.fy-tag-row.on-dark{color:var(--fy-text-2-on-navy)}
.fy-stamp{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;background:var(--fy-lime);color:var(--fy-navy);border-radius:var(--fy-r-pill);font:700 13px/1 var(--fy-font-body);padding:8px 12px}
.fy-pill{display:inline-flex;align-items:center;gap:8px;border-radius:var(--fy-r-pill);background:var(--fy-violet-tint);color:var(--fy-violet-deep);font:600 14px/1 var(--fy-font-body);padding:9px 14px}
.fy-band-navy .fy-pill{background:rgba(255,255,255,.1);color:#fff}

/* ---------- lists ---------- */
.fy-checks ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.fy-checks li{position:relative;padding-left:36px;font-weight:500}
.fy-checks li::before{content:"";position:absolute;left:1px;top:.22em;width:16px;height:16px;border-radius:50%;border:3px solid var(--fy-violet);box-sizing:border-box;background:radial-gradient(circle,var(--fy-violet) 0 3px,transparent 3.5px)}
.on-dark.fy-checks li{color:#fff}.on-dark.fy-checks li::before{border-color:#fff;background:radial-gradient(circle,#fff 0 3px,transparent 3.5px)}
.fy-cols2 ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 28px}
@media (max-width:767px){.fy-cols2 ul{grid-template-columns:minmax(0,1fr)}}
.fy-chips ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.fy-chips li{padding:0;border:0;background:none}
.fy-chips li a,.fy-chips--static li{display:inline-flex;align-items:center;border-radius:var(--fy-r-pill);padding:.55em 1em;font:600 14px/1.2 var(--fy-font-body);color:var(--fy-navy);background:#fff;box-shadow:var(--fy-shadow);text-decoration:none;transition:background .2s var(--fy-ease),color .2s var(--fy-ease),transform .2s var(--fy-ease)}
.fy-chips--static li{box-shadow:none;background:var(--fy-violet-tint);color:var(--fy-violet-deep)}
.fy-band-navy .fy-chips--static li{background:rgba(255,255,255,.1);color:#fff}
.fy-chips li a:hover,.fy-chips li a:focus-visible{background:var(--fy-violet);color:#fff;transform:translateY(-2px)}
.fy-chips--lg li a{font-size:16px;padding:.7em 1.15em}

/* ---------- data panel (sheet) with trend ---------- */
.fy-sheet{padding:clamp(22px,2.6vw,32px)}
.fy-sheet__t{margin:0 0 12px}
.fy-report-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:14px 0;border-top:1.5px solid var(--fy-line)}
.fy-report-row:first-of-type{border-top:0}
.fy-report-row span{font:600 16px/1.3 var(--fy-font-body);color:var(--fy-text)}
.fy-report-row b{font:800 24px/1 var(--fy-font-display);letter-spacing:-.02em;color:var(--fy-navy);font-variant-numeric:tabular-nums}
.fy-report-row .fy-trend{width:64px;height:22px;color:var(--fy-violet)}
.fy-report-row .fy-trend svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.fy-report-row .fy-trend.is-up{color:var(--fy-lime-deep)}
.fy-tag-note{font:500 13px/1.5 var(--fy-font-body);color:var(--fy-text-2);margin:12px 0 0}

/* ---------- ledger rows ---------- */
.fy-ledger{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.fy-ledger li{display:flex;align-items:center;gap:16px;background:#fff;border-radius:var(--fy-r-sm);padding:14px 16px;box-shadow:var(--fy-shadow)}
.fy-ledger .fy-mini{width:48px;height:48px;border-radius:14px;background:var(--fy-violet-tint);display:grid;place-items:center;flex:none}
.fy-ledger .fy-mini svg{width:30px;height:30px}
.fy-ledger__t{display:flex;flex-direction:column;gap:2px}
.fy-ledger__t b{font:700 17px/1.3 var(--fy-font-display);letter-spacing:-.01em}
.fy-ledger__t small{font:400 14px/1.4 var(--fy-font-body);color:var(--fy-text-2)}
.fy-ledger.is-dark li{background:var(--fy-navy-2);color:#fff}.fy-ledger.is-dark .fy-ledger__t small{color:var(--fy-text-2-on-navy)}.fy-ledger.is-dark .fy-mini{background:rgba(255,255,255,.1)}

/* ---------- steps (full-width rows with before / after) ---------- */
.fy-courses{display:grid;gap:12px}
.fy-course{display:grid;grid-template-columns:52px minmax(0,1fr);gap:16px;align-items:start;background:rgba(255,255,255,.06);border-radius:var(--fy-r-card);padding:22px 24px}
.fy-course__ba{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.fy-course__ba div{border-radius:12px;padding:12px 14px;font:500 14.5px/1.45 var(--fy-font-body);background:rgba(255,255,255,.07)}
.fy-course__ba small{display:block;font:700 11px/1 var(--fy-font-body);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;opacity:.75}
.fy-course__ba .is-after{background:var(--fy-violet);color:#fff}
.fy-band-cloud .fy-course__ba div,.fy-band-white .fy-course__ba div{background:var(--fy-cloud)}
.fy-band-cloud .fy-course__ba .is-after,.fy-band-white .fy-course__ba .is-after{background:var(--fy-violet);color:#fff}
@media (max-width:600px){.fy-course__ba{grid-template-columns:minmax(0,1fr)}}
.fy-band-cloud .fy-course,.fy-band-white .fy-course{background:#fff;box-shadow:var(--fy-shadow)}
.fy-course-n{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:4px solid var(--fy-violet);background:#fff;color:var(--fy-navy);font:800 15px/1 var(--fy-font-display);box-sizing:border-box}
.fy-note{background:#fff;color:var(--fy-navy);border-radius:var(--fy-r-card);padding:22px 24px;box-shadow:var(--fy-shadow)}
.fy-process{grid-template-columns:minmax(0,1fr);gap:clamp(28px,4vw,44px)}
.fy-process__head{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:end}
@media (max-width:1024px){.fy-process__head{grid-template-columns:minmax(0,1fr)}}

/* ---------- layouts ---------- */
.fy-split{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(32px,6vw,88px);align-items:center}
.fy-two{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,56px)}
.fy-editorial{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,88px);align-items:start}
.fy-split--cta{align-items:start}
.fy-tagline p{font:500 14px/1.6 var(--fy-font-body);margin:0}
@media (max-width:1024px){.fy-split,.fy-two,.fy-editorial,.fy-process{grid-template-columns:minmax(0,1fr)}}

/* ---------- prose, article ---------- */
.fy-prose p{margin:0 0 1em}.fy-prose p:last-child{margin-bottom:0}.fy-prose ul,.fy-prose ol{margin:0 0 1em;padding-left:1.2em}.fy-prose li{margin-bottom:.4em}
.fy-prose a,.fy-article a{color:var(--fy-violet-deep);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:.2em;transition:color .2s}
.fy-prose a:hover,.fy-article a:hover{color:var(--fy-navy)}
.fy-band-navy .fy-prose a{color:#fff;text-decoration-color:var(--fy-lime)}.fy-band-navy .fy-prose a:hover{color:var(--fy-lime)}
.fy-band-navy .fy-prose strong{color:#fff}
.fy-article__h{margin-top:1.4em}.fy-article>.fy-article__h:first-of-type{margin-top:.2em}
.fy-doc{grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(32px,6vw,88px);align-items:start}
.fy-aside{position:sticky;top:104px}
.fy-aside__n{font:400 14px/1.6 var(--fy-font-body);color:var(--fy-text-2);margin:0}
@media (max-width:1024px){.fy-doc{grid-template-columns:minmax(0,1fr)}.fy-aside{position:static;max-width:460px}}

/* ---------- empty state (editor) ---------- */
.fy-block__empty{margin:24px 0 0;padding:24px;border:1.5px dashed rgba(24,43,58,.35);border-radius:var(--fy-r-sm);text-align:center;font:500 15px var(--fy-font-body)}
.fy-band-navy .fy-block__empty{border-color:rgba(255,255,255,.35);color:#fff}

/* ---------- AOS safety ---------- */
html.aos-off [data-aos],html.aos-failsafe:not(.aos-ready) [data-aos]{opacity:1!important;transform:none!important;transition:none!important;pointer-events:auto!important}
[data-aos]{will-change:auto}
[data-aos=fade-up][data-aos]{transform:translate3d(0,26px,0)}
.admin-bar .fy-header{top:32px}@media (max-width:782px){.admin-bar .fy-header{top:46px}}@media (max-width:600px){.admin-bar .fy-header{top:0}}

/* hero pillars: a quiet row of line icons */
.fy-pillars{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 14px}
.fy-pillars li{display:inline-flex;align-items:center;gap:7px;font:600 13px/1 var(--fy-font-body);color:var(--fy-text-2-on-navy);white-space:nowrap}
.fy-pillars .fy-mini{width:26px;height:26px;border-radius:8px;background:rgba(255,255,255,.1)}.fy-pillars .fy-mini svg{width:18px;height:18px;stroke:#fff}.fy-pillars .fy-mini svg .rc{fill:transparent;stroke:#fff}
