/* Faith Thinkers: Building Number Sense — route-scoped curriculum system. */
.bns-page { --bns-forest:#1f4f2d; --bns-navy:#0f2e4c; --bns-gold:#bd8f32; --bns-cream:#f5edd9; color:var(--fs-text); overflow:clip; }
.bns-page *, .bns-page *::before, .bns-page *::after { box-sizing:border-box; }
.bns-page .container { width:min(1180px,calc(100% - 2rem)); margin-inline:auto; }
.bns-kicker { margin:0 0 .55rem; color:var(--bns-forest); font-size:.75rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.bns-lede { max-width:720px; color:var(--fs-text-light); font-size:clamp(1rem,1.7vw,1.2rem); line-height:1.75; }
.bns-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.35rem; }
.bns-section { padding-block:clamp(3.5rem,7vw,6.25rem); }
.bns-section-head { max-width:790px; margin:0 auto 2.2rem; text-align:center; }
.bns-section-head h2 { margin:.15rem 0 .75rem; color:var(--bns-navy); font-size:clamp(2rem,4.5vw,3.3rem); line-height:1.06; }
.bns-section-head p:last-child { margin-inline:auto; color:var(--fs-text-light); line-height:1.75; }

.bns-hero { position:relative; border-bottom:1px solid rgba(189,143,50,.35); background:radial-gradient(circle at 82% 16%,rgba(189,143,50,.22),transparent 30%),linear-gradient(135deg,#fbf7e9 0%,#efe2c2 100%); }
.bns-hero::after { position:absolute; inset:auto 0 0; height:7px; background:linear-gradient(90deg,var(--bns-forest),var(--bns-gold),var(--bns-navy)); content:""; }
.bns-hero-grid { display:grid; grid-template-columns:minmax(0,1.04fr) minmax(360px,.96fr); gap:clamp(2rem,5vw,5rem); align-items:center; min-height:690px; padding-block:clamp(4rem,8vw,7rem); }
.bns-hero-copy h1 { max-width:680px; margin:.1rem 0 .25rem; color:var(--bns-navy); font-size:clamp(3.2rem,7vw,6.4rem); line-height:.87; letter-spacing:-.045em; }
.bns-hero-line { margin:1.1rem 0; color:#6b3a0f; font-family:var(--fs-heading-font); font-size:clamp(1.3rem,2.5vw,2rem); font-weight:700; }
.bns-proof { display:flex; flex-wrap:wrap; gap:0; margin-top:2rem; border-top:1px solid rgba(107,58,15,.22); border-bottom:1px solid rgba(107,58,15,.22); }
.bns-proof div { display:flex; min-width:135px; padding:1rem 1.25rem 1rem 0; flex-direction:column; }
.bns-proof div + div { padding-left:1.25rem; border-left:1px solid rgba(107,58,15,.22); }
.bns-proof strong { color:var(--bns-forest); font-family:var(--fs-heading-font); font-size:1.75rem; }
.bns-proof span { color:#6d6555; font-size:.78rem; font-weight:700; }
.bns-hero-books { position:relative; min-height:570px; perspective:1200px; }
.bns-hero-books img { position:absolute; top:50%; left:50%; width:min(55%,280px); max-height:535px; border-radius:7px; object-fit:cover; box-shadow:0 28px 58px rgba(35,30,18,.3); transform-origin:center bottom; }
.bns-hero-books img:nth-child(1) { z-index:1; transform:translate(-115%,-48%) rotate(-8deg); }
.bns-hero-books img:nth-child(2) { z-index:3; transform:translate(-50%,-54%) rotate(-1deg); }
.bns-hero-books img:nth-child(3) { z-index:2; transform:translate(14%,-48%) rotate(8deg); }
.bns-hero-seal { position:absolute; right:0; bottom:4%; z-index:4; display:grid; width:112px; height:112px; place-content:center; border:3px double #f6d788; border-radius:50%; color:#fff; background:var(--bns-forest); box-shadow:0 12px 30px rgba(31,79,45,.3); text-align:center; font-family:var(--fs-heading-font); font-size:2rem; font-weight:700; }
.bns-hero-seal small { display:block; max-width:80px; font-family:var(--fs-body-font); font-size:.58rem; letter-spacing:.08em; text-transform:uppercase; }

.bns-system-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.bns-system-grid article { position:relative; min-width:0; padding:1.65rem 1.45rem; border:1px solid var(--fs-border-light); border-radius:var(--fs-radius-lg); background:var(--fs-card-bg); box-shadow:var(--fs-shadow-sm); }
.bns-system-grid article::before { position:absolute; top:0; right:1.2rem; left:1.2rem; height:3px; background:linear-gradient(90deg,var(--bns-forest),var(--bns-gold)); content:""; }
.bns-system-grid span { display:inline-grid; width:2.3rem; height:2.3rem; place-items:center; border-radius:50%; color:#fff; background:var(--bns-navy); font-weight:800; }
.bns-system-grid h3 { margin:1rem 0 .5rem; color:var(--bns-forest); font-size:1.22rem; }
.bns-system-grid p { margin:0; color:var(--fs-text-light); line-height:1.65; }

.bns-grade-band { border-block:1px solid var(--fs-border-light); background:linear-gradient(180deg,rgba(31,79,45,.045),rgba(189,143,50,.055)); }
.bns-grade-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.4rem; }
.bns-grade-card { display:flex; min-width:0; overflow:hidden; flex-direction:column; border:1px solid var(--fs-border-light); border-radius:18px; background:var(--fs-card-bg); box-shadow:0 12px 34px rgba(62,42,17,.09); transition:transform .2s ease,box-shadow .2s ease; }
.bns-grade-card:hover { transform:translateY(-5px); box-shadow:0 20px 42px rgba(62,42,17,.15); }
.bns-card-cover { position:relative; display:grid; min-height:350px; place-items:center; overflow:hidden; padding:1.5rem; border-bottom:1px solid var(--fs-border-light); background:radial-gradient(circle at 50% 22%,rgba(189,143,50,.19),transparent 46%),var(--bns-cream); }
.bns-card-cover img { width:auto; height:315px; max-width:82%; border-radius:4px; box-shadow:0 20px 35px rgba(40,29,12,.22); transition:transform .2s ease; }
.bns-grade-card:hover .bns-card-cover img { transform:scale(1.025) rotate(-.5deg); }
.bns-grade-mark { position:absolute; top:1rem; left:1rem; z-index:2; display:grid; width:45px; height:45px; place-items:center; border:2px solid #fff3c8; border-radius:50%; color:#fff; background:var(--bns-forest); box-shadow:0 5px 15px rgba(0,0,0,.2); font-weight:800; }
.bns-card-body { display:flex; padding:1.35rem; flex:1; flex-direction:column; }
.bns-card-body h3 { margin:.1rem 0 .55rem; color:var(--bns-navy); font-size:1.45rem; line-height:1.2; }
.bns-card-body h3 a { color:inherit; text-decoration:none; }
.bns-card-body > p:not(.bns-kicker) { margin:0; color:var(--fs-text-light); line-height:1.62; }
.bns-card-facts { display:flex; flex-wrap:wrap; gap:.4rem; margin:1rem 0; }
.bns-card-facts span { padding:.32rem .58rem; border:1px solid rgba(31,79,45,.16); border-radius:999px; color:var(--bns-forest); background:rgba(31,79,45,.06); font-size:.7rem; font-weight:800; }
.bns-card-actions { display:grid; grid-template-columns:1fr 1fr; gap:.55rem; margin-top:auto; }
.bns-card-actions .btn { display:grid; min-height:44px; place-items:center; padding:.7rem; font-size:.78rem; text-align:center; }

.bns-related { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2rem; align-items:center; padding:clamp(1.8rem,4vw,3rem); border:1px solid rgba(189,143,50,.4); border-radius:20px; background:linear-gradient(125deg,rgba(189,143,50,.12),rgba(31,79,45,.06)),var(--fs-card-bg); box-shadow:var(--fs-shadow-sm); }
.bns-related h2 { margin:.15rem 0 .5rem; color:var(--bns-navy); }
.bns-related p:last-child { margin:0; color:var(--fs-text-light); line-height:1.7; }
.bns-access-band { color:#fff; background:linear-gradient(115deg,#163d24,#245d34 58%,#11334e); }
.bns-access-band .bns-kicker { color:#f3cf7a; }
.bns-access-band h2 { color:#fff; }
.bns-access-band p { color:rgba(255,255,255,.82); }
.bns-access-band-inner { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2rem; align-items:center; padding-block:3.5rem; }
.bns-access-band-inner h2 { margin:.1rem 0 .5rem; font-size:clamp(1.8rem,4vw,3rem); }
.bns-access-band-inner p { max-width:760px; margin:0; line-height:1.7; }
.bns-access-band .btn-light { border-color:#fff; color:var(--bns-forest); background:#fff; }
.bns-access-band .btn-light:hover { border-color:#f3cf7a; background:#f3cf7a; }

.bns-breadcrumbs { display:flex; flex-wrap:wrap; gap:.45rem; padding:1.25rem 0; color:var(--fs-text-light); font-size:.8rem; }
.bns-breadcrumbs a { color:var(--bns-forest); font-weight:700; }
.bns-grade-hero { border-bottom:1px solid rgba(189,143,50,.3); background:radial-gradient(circle at 12% 20%,rgba(31,79,45,.1),transparent 32%),linear-gradient(135deg,#fbf7e9,#efe2c2); }
.bns-grade-hero-grid { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr); gap:clamp(2rem,6vw,6rem); align-items:center; padding:clamp(2.2rem,5vw,5rem) 0 clamp(3.5rem,7vw,6rem); }
.bns-grade-cover { position:relative; display:grid; min-height:520px; place-items:center; }
.bns-grade-cover img { position:relative; z-index:2; width:auto; max-width:92%; height:min(510px,58vw); border-radius:6px; object-fit:cover; box-shadow:0 30px 58px rgba(45,33,16,.3); }
.bns-book-shadow { position:absolute; right:7%; bottom:3%; left:7%; height:34px; border-radius:50%; background:rgba(45,33,16,.24); filter:blur(16px); }
.bns-grade-intro h1 { margin:.1rem 0 .65rem; color:var(--bns-navy); font-size:clamp(2.8rem,6.5vw,5.7rem); line-height:.92; letter-spacing:-.04em; }
.bns-grade-intro h1 span { display:block; margin-top:.45rem; color:var(--bns-forest); font-size:.43em; letter-spacing:.01em; }
.bns-grade-theme { margin:0 0 .8rem; color:#6b3a0f; font-family:var(--fs-heading-font); font-size:clamp(1.2rem,2.5vw,1.8rem); font-weight:700; }
.bns-grade-stats { display:flex; flex-wrap:wrap; margin-top:1.35rem; border-block:1px solid rgba(107,58,15,.2); }
.bns-grade-stats div { display:flex; min-width:145px; padding:.9rem 1.1rem .9rem 0; flex-direction:column; }
.bns-grade-stats div + div { padding-left:1.1rem; border-left:1px solid rgba(107,58,15,.2); }
.bns-grade-stats strong { color:var(--bns-forest); font-family:var(--fs-heading-font); font-size:1.5rem; }
.bns-grade-stats span { color:#6d6555; font-size:.72rem; font-weight:700; }

.bns-preview-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.bns-preview-card { display:flex; min-width:0; overflow:hidden; padding:0; flex-direction:column; border:1px solid var(--fs-border-light); border-radius:10px; color:inherit; background:var(--fs-card-bg); box-shadow:var(--fs-shadow-sm); text-align:left; cursor:zoom-in; transition:transform .18s ease,box-shadow .18s ease; }
.bns-preview-card:hover { transform:translateY(-4px); box-shadow:var(--fs-shadow-md); }
.bns-preview-card:focus-visible { outline:3px solid var(--fs-accent); outline-offset:3px; }
.bns-preview-image { display:grid; height:290px; place-items:start center; overflow:hidden; background:var(--bns-cream); }
.bns-preview-image img { width:100%; height:100%; object-fit:cover; object-position:top center; }
.bns-preview-copy { display:flex; min-height:92px; padding:.8rem .85rem; flex-direction:column; }
.bns-preview-copy strong { color:var(--bns-navy); line-height:1.32; }
.bns-preview-copy small { margin-top:auto; padding-top:.35rem; color:var(--fs-text-light); font-size:.72rem; }
.bns-scope-band { border-block:1px solid var(--fs-border-light); background:linear-gradient(125deg,rgba(31,79,45,.07),rgba(189,143,50,.08)); }
.bns-scope-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr); gap:clamp(2rem,6vw,6rem); align-items:center; padding-block:clamp(3rem,6vw,5.2rem); }
.bns-scope-grid h2 { margin:.15rem 0 .7rem; color:var(--bns-navy); font-size:clamp(2rem,4vw,3rem); }
.bns-scope-grid p:last-child { color:var(--fs-text-light); line-height:1.75; }
.bns-skill-list { display:grid; gap:.75rem; margin:0; padding:0; list-style:none; }
.bns-skill-list li { position:relative; padding:.85rem 1rem .85rem 3rem; border:1px solid rgba(31,79,45,.15); border-radius:10px; color:var(--bns-forest); background:var(--fs-card-bg); font-weight:700; }
.bns-skill-list li::before { position:absolute; top:50%; left:1rem; display:grid; width:1.35rem; height:1.35rem; place-items:center; border-radius:50%; color:#fff; background:var(--bns-gold); content:"✓"; font-size:.72rem; transform:translateY(-50%); }

.bns-component-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.bns-component-grid--single { grid-template-columns:minmax(0,620px); justify-content:center; }
.bns-component-card { display:grid; grid-template-columns:115px minmax(0,1fr); gap:1.1rem; min-width:0; padding:1.15rem; border:1px solid var(--fs-border-light); border-radius:14px; background:var(--fs-card-bg); box-shadow:var(--fs-shadow-sm); }
.bns-component-card img { width:115px; height:150px; border-radius:3px; object-fit:cover; object-position:top; box-shadow:0 9px 20px rgba(45,33,16,.18); }
.bns-component-card h3 { margin:.1rem 0 .4rem; color:var(--bns-navy); font-size:1.15rem; }
.bns-component-card p:last-of-type { margin:0; color:var(--fs-text-light); font-size:.88rem; line-height:1.58; }
.bns-text-button { margin-top:.65rem; padding:0; border:0; color:var(--bns-forest); background:transparent; font:inherit; font-size:.85rem; font-weight:800; text-align:left; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.bns-text-button:focus-visible { outline:3px solid var(--fs-accent); outline-offset:4px; }
.bns-access-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,.75fr); gap:clamp(2rem,6vw,6rem); align-items:center; padding-block:clamp(3.5rem,7vw,5.5rem); }
.bns-access-grid h2 { margin:.15rem 0 .6rem; font-size:clamp(2rem,4vw,3.1rem); }
.bns-access-grid p { line-height:1.7; }
.bns-access-card { padding:1.45rem; border:1px solid rgba(255,255,255,.22); border-radius:15px; background:rgba(255,255,255,.1); box-shadow:0 16px 36px rgba(0,0,0,.15); }
.bns-access-card h3 { margin:.65rem 0; color:#fff; }
.bns-member-badge { display:inline-flex; padding:.36rem .65rem; border:1px solid rgba(243,207,122,.45); border-radius:999px; color:#ffe39f; background:rgba(0,0,0,.14); font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.07em; }
.bns-file-row { display:flex; gap:1rem; align-items:center; justify-content:space-between; padding:.85rem 0; border-top:1px solid rgba(255,255,255,.18); }
.bns-file-row > span:first-child { display:flex; flex-direction:column; }
.bns-file-row small { color:rgba(255,255,255,.68); }
.bns-file-row > span:last-child { display:flex; gap:.8rem; }
.bns-file-row a { color:#ffe39f; font-weight:800; }
.bns-grade-nav { border-top:1px solid var(--fs-border-light); background:var(--fs-card-bg); }
.bns-grade-nav > div { display:flex; gap:1rem; align-items:center; justify-content:space-between; padding-block:1.2rem; }
.bns-grade-nav > div > a { color:var(--bns-forest); font-weight:800; }
.bns-grade-nav div div { display:flex; gap:.35rem; }
.bns-grade-nav div div a { display:grid; width:40px; height:40px; place-items:center; border:1px solid var(--fs-border-light); border-radius:50%; color:var(--bns-forest); background:var(--fs-bg); font-weight:800; text-decoration:none; }
.bns-grade-nav div div a[aria-current="page"] { color:#fff; background:var(--bns-forest); }

html[data-theme="dark"] .bns-page,
body.dark-mode .bns-page { --bns-forest:#8fcb74; --bns-navy:#b8d8f2; --bns-gold:#e2ba61; }
html[data-theme="dark"] .bns-hero,
html[data-theme="dark"] .bns-grade-hero,
body.dark-mode .bns-hero,
body.dark-mode .bns-grade-hero { background:radial-gradient(circle at 80% 20%,rgba(226,186,97,.12),transparent 34%),linear-gradient(135deg,#152016,#20231e); }
html[data-theme="dark"] .bns-hero-line,
html[data-theme="dark"] .bns-grade-theme,
body.dark-mode .bns-hero-line,
body.dark-mode .bns-grade-theme { color:#e2ba61; }
html[data-theme="dark"] .bns-proof span,
html[data-theme="dark"] .bns-grade-stats span,
body.dark-mode .bns-proof span,
body.dark-mode .bns-grade-stats span { color:#c5bdab; }
html[data-theme="dark"] .bns-card-cover,
html[data-theme="dark"] .bns-preview-image,
body.dark-mode .bns-card-cover,
body.dark-mode .bns-preview-image { background:#292b22; }

@media (max-width:1000px) {
    .bns-hero-grid { grid-template-columns:1fr; min-height:0; }
    .bns-hero-books { min-height:520px; }
    .bns-system-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .bns-grade-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .bns-preview-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .bns-component-grid { grid-template-columns:1fr; }
}
@media (max-width:760px) {
    .bns-page .container { width:min(100% - 1.25rem,1180px); }
    .bns-hero-grid { padding-block:3.5rem 4.5rem; }
    .bns-hero-books { min-height:420px; }
    .bns-hero-books img { width:min(52%,230px); max-height:390px; }
    .bns-hero-seal { right:4%; width:92px; height:92px; font-size:1.55rem; }
    .bns-grade-hero-grid { grid-template-columns:1fr; }
    .bns-grade-cover { min-height:420px; }
    .bns-grade-cover img { height:min(420px,112vw); }
    .bns-scope-grid,
    .bns-access-grid,
    .bns-related,
    .bns-access-band-inner { grid-template-columns:1fr; }
    .bns-preview-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .bns-related .btn,
    .bns-access-band-inner .btn { justify-self:start; }
}
@media (max-width:540px) {
    .bns-section { padding-block:3.25rem; }
    .bns-actions { display:grid; grid-template-columns:1fr; }
    .bns-actions .btn { width:100%; }
    .bns-proof { display:grid; grid-template-columns:1fr 1fr; }
    .bns-proof div + div { padding-left:0; border-left:0; }
    .bns-system-grid,
    .bns-grade-grid,
    .bns-preview-grid { grid-template-columns:1fr; }
    .bns-card-cover { min-height:325px; }
    .bns-card-cover img { height:285px; }
    .bns-preview-image { height:360px; }
    .bns-grade-stats { display:grid; grid-template-columns:1fr 1fr; }
    .bns-grade-stats div + div { padding-left:0; border-left:0; }
    .bns-component-card { grid-template-columns:90px minmax(0,1fr); }
    .bns-component-card img { width:90px; height:120px; }
    .bns-grade-nav > div { align-items:flex-start; flex-direction:column; }
    .bns-grade-nav div div { width:100%; justify-content:space-between; }
    .bns-grade-nav div div a { width:38px; height:38px; }
    .bns-file-row { align-items:flex-start; flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) {
    .bns-grade-card,.bns-card-cover img,.bns-preview-card { transition:none; }
}
