/* Sofia journal and information pages: reading-first typography. */
.sfj-page,.sfl-page { background:#f8faf6; color:#273f2e; padding-bottom:70px; }
.sfj-eyebrow { display:flex; align-items:center; gap:10px; color:#6e825f; font-size:9px; font-weight:550; letter-spacing:1.2px; }
.sfj-eyebrow > span { font-size:24px; color:#9bad7c; }
.sfj-hero { display:grid; grid-template-columns:1.3fr 1fr; gap:55px; align-items:end; padding:54px 0 42px; }
.sfj-hero h1 { margin-top:22px; font-size:clamp(44px,4.8vw,64px); line-height:1.08; letter-spacing:-2.8px; font-weight:550; }
.sfj-hero h1 em { font-style:normal; color:#7d9466; }
.sfj-hero-aside { padding-bottom:5px; max-width:400px; justify-self:end; }
.sfj-hero-aside > p { font-size:14px; line-height:1.9; color:#6e815f; margin-bottom:22px; }
.sfj-search { display:flex; align-items:center; gap:13px; padding:6px 6px 6px 17px; background:#fff; border:1px solid #dce5d2; border-radius:10px; }
.sfj-search > i { font-size:15px; color:#8d9f78; }
.sfj-search input { min-width:0; width:120px; flex:1; border:0; outline:none; box-shadow:none; background:transparent; height:40px; color:#45633c; font-size:12px; }
.sfj-search input::placeholder { color:#93a185; }
.sfj-search:focus-within { outline:2px solid #bdcfa6; outline-offset:3px; }
.sfj-search button { display:grid; place-items:center; width:41px; height:41px; border-radius:7px; background:#234b3c; color:#e4edcf; font-size:20px; }
.sfj-spotlight { display:grid; grid-template-columns:1.1fr 1fr; background:#eef3e5; border:1px solid #dce5d1; border-radius:18px; overflow:hidden; }
.sfj-spotlight-cover { min-height:350px; }
.sfj-cover { height:100%; min-height:inherit; width:100%; position:relative; overflow:hidden; display:grid; place-items:center; background:#e9efdd; }
.sfj-cover-orbit { position:absolute; height:85%; aspect-ratio:1; border:1px solid #b0c29460; border-radius:50%; }
.sfj-cover-orbit::after { content:''; position:absolute; inset:16px; border:1px solid #b0c29440; border-radius:50%; }
.sfj-cover-paper { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:space-between; height:70%; min-height:150px; width:53%; max-width:260px; padding:18px; border:1px solid #d9e2cd; background:#f9fbf5; border-radius:11px; transform:rotate(-7deg); color:#547942; box-shadow:0 12px 28px -20px #273f2b40; }
.sfj-cover-paper span { font-size:6px; letter-spacing:1.05px; color:#8e9e7a; }
.sfj-cover-paper strong { font-size:clamp(65px,7vw,110px); font-weight:400; line-height:1; }
.sfj-cover-sticker { position:absolute; bottom:12%; right:14%; width:61px; height:61px; border-radius:12px; display:grid; place-items:center; border:1px solid #c6d6af; background:#d9e6c3; color:#6e8d4f; font-size:25px; transform:rotate(9deg); }
.sfj-cover-1 { background:#234b3c; }
.sfj-cover-1 .sfj-cover-orbit { border-color:#b8d39130; }
.sfj-cover-1 .sfj-cover-orbit::after { border-color:#b8d39125; }
.sfj-cover-1 .sfj-cover-paper { background:#e4edce; border-color:#d2deb6; color:#648548; }
.sfj-cover-1 .sfj-cover-sticker { background:#f0e3c8; border-color:#e2d4b3; color:#958355; }
.sfj-cover-2 { background:#eee4cf; }
.sfj-cover-2 .sfj-cover-paper { background:#fffaf0; border-color:#e4d9c0; color:#a59261; transform:rotate(6deg); }
.sfj-cover-2 .sfj-cover-sticker { background:#234b3c; color:#d1e2b1; border-color:#234b3c; transform:rotate(-9deg); }
.sfj-cover > img { position:absolute; inset:0; height:100%; width:100%; object-fit:cover; }
.sfj-spotlight-copy { display:flex; flex-direction:column; justify-content:center; padding:36px; }
.sfj-category { display:inline-block; font-size:9px; font-weight:550; letter-spacing:1px; text-transform:uppercase; color:#6e8756; line-height:1.6; }
.sfj-spotlight-copy h2 { font-size:35px; line-height:1.16; letter-spacing:-1.25px; font-weight:550; margin:20px 0 17px; }
.sfj-spotlight-copy > p { font-size:13px; line-height:1.9; color:#6e815f; }
.sfj-spotlight-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:29px; }
.sfj-spotlight-footer > a { font-size:12px; font-weight:550; color:#3e6438; }
.sfj-spotlight-footer > span { font-size:10px; color:#819370; }
.sfj-library { margin-top:43px; }
.sfj-library > header { display:flex; align-items:end; justify-content:space-between; gap:25px; margin-bottom:25px; }
.sfj-library h2 { font-size:30px; font-weight:550; letter-spacing:-1px; margin-top:13px; overflow-wrap:anywhere; }
.sfj-library > header > span,.sfj-library > header > a { font-size:11px; color:#7a8f68; flex-shrink:0; }
.sfj-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.sfj-card { min-width:0; background:#fff; border:1px solid #dfe7d6; border-radius:14px; overflow:hidden; display:flex; flex-direction:column; }
.sfj-card-cover { display:block; height:205px; }
.sfj-card-cover .sfj-cover-paper { min-height:140px; }
.sfj-card-cover .sfj-cover-paper strong { font-size:68px; }
.sfj-card-cover .sfj-cover-sticker { width:44px; height:44px; font-size:19px; bottom:12%; right:14%; }
.sfj-card-content { padding:23px; display:flex; flex-direction:column; flex:1; }
.sfj-card h3 { font-size:22px; line-height:1.22; letter-spacing:-.7px; font-weight:550; margin:13px 0; }
.sfj-card-content > p { font-size:12px; line-height:1.85; color:#738663; margin-bottom:22px; }
.sfj-card-footer { display:flex; align-items:center; justify-content:space-between; gap:15px; padding-top:18px; border-top:1px solid #e8eddf; margin-top:auto; }
.sfj-card-footer > span { font-size:9px; color:#8a9a79; }
.sfj-card-footer > a { font-size:10px; font-weight:550; color:#58774a; }
.sfj-card h3 a:hover,.sfj-spotlight h2 a:hover { color:#6e8e53; }
.sfj-empty { grid-column:1/-1; padding:44px 25px; text-align:center; border:1px solid #dce5d2; border-radius:14px; background:#edf3e4; }
.sfj-empty > i { font-size:30px; color:#91a678; }
.sfj-empty h3 { font-size:27px; font-weight:550; letter-spacing:-.8px; margin:20px 0 13px; }
.sfj-empty p { font-size:13px; line-height:1.9; color:#738861; }
.sfj-empty a { display:inline-block; font-size:12px; font-weight:550; color:#527441; margin-top:24px; }
.sfj-pagination { margin-top:28px; }
.sfj-next { display:flex; justify-content:space-between; align-items:center; gap:30px; margin-top:45px; padding:34px 38px; border-radius:16px; background:#234b3c; color:white; }
.sfj-next .sfj-eyebrow { color:#b6cda2; }
.sfj-next h2 { font-size:30px; letter-spacing:-1px; line-height:1.2; font-weight:550; margin:14px 0 12px; }
.sfj-next p { color:#b9cdab; font-size:12px; }
.sfj-next .sf-button { background:#d7e6b6; color:#2b4930!important; font-size:12px; flex-shrink:0; }
.sfj-story-header { padding:39px 0 33px; max-width:900px; margin:auto; text-align:center; }
.sfj-back { color:#708761; font-size:11px; display:inline-block; margin-bottom:33px; }
.sfj-story-meta { display:flex; flex-wrap:wrap; justify-content:center; gap:18px; align-items:center; }
.sfj-story-meta > span:last-child { color:#849573; font-size:10px; }
.sfj-story-header h1 { font-size:clamp(36px,4.1vw,56px); font-weight:550; line-height:1.13; letter-spacing:-2px; margin:20px 0; overflow-wrap:anywhere; }
.sfj-story-header > p { max-width:690px; margin:0 auto; font-size:15px; line-height:1.9; color:#718462; }
.sfj-story-cover { height:310px; border:1px solid #dce5d1; border-radius:17px; overflow:hidden; }
.sfj-story-cover .sfj-cover-paper { height:75%; width:230px; }
.sfj-story-cover .sfj-cover-sticker { right:calc(50% - 155px); }
.sfj-story-layout { display:grid; grid-template-columns:minmax(0,1fr) 245px; gap:75px; max-width:1050px; margin:48px auto 0; align-items:start; }
.sfj-prose { min-width:0; font-size:16px; line-height:1.9; color:#4f6250; overflow-wrap:anywhere; }
.sfj-prose p { margin:0 0 1.35em; }
.sfj-prose :is(h1,h2,h3,h4,h5,h6) { color:#2f4833; line-height:1.3; font-weight:600; margin:1.4em 0 .7em; letter-spacing:-.5px; }
.sfj-prose > :first-child { margin-top:0; }
.sfj-prose h1 { font-size:31px; }.sfj-prose h2 { font-size:27px; }.sfj-prose h3 { font-size:22px; }
.sfj-prose :is(ul,ol) { margin:1em 0 1.4em; padding-inline-start:1.5em; }.sfj-prose ul { list-style:disc; }.sfj-prose ol { list-style:decimal; }.sfj-prose li { margin:.5em 0; }
.sfj-prose a { color:#426d35; text-decoration:underline; text-underline-offset:3px; }
.sfj-prose blockquote { border-inline-start:3px solid #9ab67c; background:#eef4e5; padding:20px 24px; margin:1.5em 0; color:#597246; }
.sfj-prose :is(img,video,iframe) { max-width:100%; }.sfj-prose img { height:auto; border-radius:10px; margin:1.4em auto; }.sfj-prose pre { overflow-x:auto; background:#edf2e6; padding:18px; border-radius:9px; font-size:13px; }
.sfj-prose table { display:block; max-width:100%; overflow-x:auto; border-collapse:collapse; }.sfj-prose :is(td,th) { border:1px solid #dae4cf; padding:10px 14px; }
.sfj-story-sidebar { position:sticky; top:108px; padding:27px; background:#edf3e3; border:1px solid #dce6cf; border-radius:14px; }
.sfj-story-sidebar h2 { font-size:25px; font-weight:550; line-height:1.2; letter-spacing:-.8px; margin:18px 0 13px; }
.sfj-story-sidebar p { font-size:12px; color:#6f845e; line-height:1.9; }
.sfj-story-sidebar .sf-button { font-size:11px; padding:13px 15px; margin-top:22px; background:#234b3c; width:100%; justify-content:space-between; }
.sfj-story-links { display:grid; gap:14px; margin-top:25px; padding-top:22px; border-top:1px solid #d9e3ce; font-size:11px; color:#607c4e; }
.sfj-story-end { display:flex; justify-content:space-between; gap:20px; font-size:11px; color:#7a8f68; border-top:1px solid #dfe6d6; padding-top:24px; margin:37px auto 0; max-width:1050px; }
.sfj-related { border-top:1px solid #dfe6d6; padding-top:35px; }
.sfl-header { display:grid; grid-template-columns:1fr 240px; gap:45px; align-items:center; padding:43px 0 34px; border-bottom:1px solid #dfe7d5; }
.sfl-header h1 { font-size:56px; font-weight:550; letter-spacing:-2px; line-height:1.12; margin:20px 0; }
.sfl-header p { color:#6f845e; font-size:14px; line-height:1.9; max-width:530px; }
.sfl-header-art { position:relative; height:210px; width:220px; }
.sfl-art-ring { position:absolute; inset:9px 10px; border:1px solid #d7e2c9; background:#edf3e3; border-radius:50%; }
.sfl-art-paper { position:absolute; inset:17px 47px 20px 20px; transform:rotate(-8deg); border:1px solid #d8e3cc; border-radius:12px; background:#fff; padding:26px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:13px; }
.sfl-art-paper i { font-size:43px; color:#829c66; margin-bottom:12px; }
.sfl-art-paper > span { display:block; height:4px; width:100%; border-radius:3px; background:#e4ebd9; }.sfl-art-paper > span:last-child { width:65%; }
.sfl-art-spark { position:absolute; bottom:7px; right:7px; color:#a5b77e; font-size:60px; }
.sfl-layout { display:grid; grid-template-columns:240px minmax(0,1fr); gap:42px; padding-top:35px; }
.sfl-sidebar { position:sticky; top:108px; align-self:start; }
.sfl-sidebar > nav { display:grid; gap:7px; margin-top:20px; }
.sfl-sidebar nav a { display:flex; align-items:center; gap:11px; padding:14px 15px; border-radius:9px; font-size:12px; color:#768b64; }
.sfl-sidebar nav a > span { margin-inline-start:auto; }.sfl-sidebar nav a[aria-current=page] { background:#234b3c; color:#edf4e3; }.sfl-sidebar nav a:hover:not([aria-current]) { background:#eaf1df; }
.sfl-help { margin-top:28px; padding:25px; border:1px solid #dce5d1; border-radius:13px; background:#eef3e6; }
.sfl-help > i { font-size:24px; color:#8ba471; }.sfl-help h2 { font-size:21px; font-weight:550; letter-spacing:-.5px; margin:17px 0 12px; }.sfl-help p { font-size:12px; line-height:1.85; color:#748962; }.sfl-help a { display:block; margin-top:20px; font-size:11px; color:#557642; font-weight:550; }
.sfl-document { min-width:0; border:1px solid #dfe7d5; background:#fff; border-radius:15px; overflow:hidden; }
.sfl-document-heading { display:flex; align-items:center; justify-content:space-between; padding:22px 34px; border-bottom:1px solid #e2e9d8; background:#f1f6ea; color:#688454; font-size:11px; font-weight:550; }.sfl-document-heading i { color:#9baf84; font-size:17px; }
.sfl-document-body { padding:32px 36px; }.sfl-plain { white-space:pre-line; }.sfl-empty { padding:30px 18px; border:1px dashed #d7e2ca; border-radius:10px; color:#758b63; font-size:14px; line-height:1.9; text-align:center; }
.sfl-social-grid { display:grid; gap:14px; }.sfl-social-grid > a { display:flex; align-items:center; gap:18px; padding:21px; border:1px solid #dde7d2; border-radius:10px; color:#466638; }.sfl-social-grid > a > i { font-size:25px; width:30px; }.sfl-social-grid > a > div { min-width:0; flex:1; }.sfl-social-grid strong { display:block; font-size:15px; font-weight:550; }.sfl-social-grid div > span { display:block; font-size:11px; color:#80946d; margin-top:7px; overflow-wrap:anywhere; }
:is(.sfj-page,.sfl-page) :is(a,button):focus-visible { outline:2px solid #9eb780; outline-offset:4px; }
@media(max-width:1000px) { .sfj-hero { gap:35px; }.sfj-spotlight-copy { padding:27px; }.sfj-spotlight-copy h2 { font-size:30px; }.sfj-grid { gap:18px; }.sfj-card-content { padding:20px; }.sfj-story-layout { gap:35px; grid-template-columns:minmax(0,1fr) 225px; }.sfl-layout { grid-template-columns:210px minmax(0,1fr); gap:25px; }.sfl-document-body { padding:28px; } }
@media(max-width:800px) { .sfj-hero { grid-template-columns:1fr; padding:39px 0 28px; gap:23px; }.sfj-hero-aside { justify-self:start; width:100%; max-width:550px; }.sfj-hero h1 { font-size:51px; }.sfj-spotlight { grid-template-columns:1fr 1fr; }.sfj-spotlight-copy h2 { font-size:27px; }.sfj-spotlight-cover { min-height:330px; }.sfj-spotlight-footer { align-items:start; flex-direction:column; gap:14px; }.sfj-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.sfj-story-layout { grid-template-columns:1fr; }.sfj-story-sidebar { position:static; }.sfj-story-cover { height:260px; }.sfj-story-cover .sfj-cover-paper { min-height:0; }.sfl-header { grid-template-columns:1fr; padding-block:39px; }.sfl-header-art { display:none; }.sfl-header h1 { font-size:47px; }.sfl-layout { grid-template-columns:1fr; gap:23px; }.sfl-sidebar { position:static; }.sfl-sidebar > .sfj-eyebrow,.sfl-help { display:none; }.sfl-sidebar > nav { display:flex; margin:0; gap:6px; }.sfl-sidebar nav a { flex:1; justify-content:center; }.sfl-sidebar nav a > span { display:none; } }
@media(max-width:640px) { .sfj-page,.sfl-page { padding-bottom:40px; }.sfj-eyebrow { font-size:8px; letter-spacing:1px; }.sfj-hero { padding-top:32px; }.sfj-hero h1 { font-size:45px; letter-spacing:-2px; margin-top:18px; }.sfj-hero-aside > p { font-size:13px; }.sfj-spotlight { grid-template-columns:1fr; }.sfj-spotlight-cover { height:235px; min-height:235px; }.sfj-spotlight-copy { padding:26px; }.sfj-spotlight-copy h2 { font-size:30px; }.sfj-spotlight-footer { flex-direction:row; align-items:center; gap:12px; }.sfj-library { margin-top:32px; }.sfj-library h2 { font-size:27px; }.sfj-library > header { align-items:start; }.sfj-library > header > span,.sfj-library > header > a { font-size:9px; padding-top:3px; }.sfj-grid { grid-template-columns:1fr; gap:20px; }.sfj-card h3 { font-size:24px; }.sfj-card-content { padding:24px; }.sfj-card-content > p { font-size:13px; }.sfj-card-cover { height:215px; }.sfj-next { display:block; padding:28px; margin-top:30px; }.sfj-next h2 { font-size:28px; }.sfj-next p { line-height:1.8; }.sfj-next .sf-button { margin-top:23px; }.sfj-story-header { padding:27px 0; text-align:start; }.sfj-story-meta { justify-content:start; }.sfj-back { margin-bottom:26px; }.sfj-story-header h1 { font-size:37px; letter-spacing:-1.5px; }.sfj-story-header > p { font-size:14px; }.sfj-story-cover { height:220px; }.sfj-story-cover .sfj-cover-paper { width:180px; }.sfj-story-cover .sfj-cover-sticker { right:calc(50% - 120px); width:46px; height:46px; font-size:19px; }.sfj-story-layout { margin-top:29px; gap:28px; }.sfj-prose { font-size:15px; line-height:1.9; }.sfj-prose h2 { font-size:25px; }.sfj-story-end { flex-direction:column; gap:15px; line-height:1.7; }.sfl-header { padding:32px 0 27px; }.sfl-header h1 { font-size:42px; letter-spacing:-1.6px; margin:18px 0; }.sfl-header p { font-size:13px; }.sfl-layout { padding-top:23px; }.sfl-sidebar nav a { padding:12px 9px; font-size:10px; gap:7px; }.sfl-sidebar nav a i { display:none; }.sfl-document-heading { padding:19px 22px; }.sfl-document-body { padding:24px 22px; }.sfl-social-grid > a { padding:16px; gap:13px; } }

/* Compact article rows keep mobile browsing focused on titles. */
@media(max-width:640px) {
    .sfj-card { display:grid; grid-template-columns:88px minmax(0,1fr); gap:15px; padding:16px; align-items:start; }
    .sfj-card-cover { height:105px; border-radius:8px; overflow:hidden; }
    .sfj-card-cover .sfj-cover-paper { height:74%; width:68%; min-height:0; padding:8px; justify-content:center; }
    .sfj-card-cover .sfj-cover-paper > span { display:none; }
    .sfj-card-cover .sfj-cover-paper strong { font-size:35px; }
    .sfj-card-cover .sfj-cover-sticker { width:23px; height:23px; bottom:9%; right:7%; font-size:10px; border-radius:6px; }
    .sfj-card-content { padding:0; }
    .sfj-card .sfj-category { font-size:7px; letter-spacing:.6px; }
    .sfj-card h3 { font-size:18px; letter-spacing:-.5px; margin:9px 0; line-height:1.24; }
    .sfj-card-content > p { display:none; }
    .sfj-card-footer { flex-wrap:wrap; gap:7px 12px; padding-top:5px; border:0; }
    .sfj-card-footer > span { font-size:8px; }
    .sfj-card-footer > a { font-size:9px; }
}
