/* SHINFU LIFE MAGAZINE — layout and parts. Ported from the Claude Design prototype (project/blog.css).
   Base rules are wrapped in :where() so they keep the prototype's low specificity inside .sf-scope. */
body.bf-body{margin:0;background:var(--color-white)}
/* SWELL's font setting also switches the body weight (500 for the default font); pin it to today's value so the setting cannot change this theme's text. */
.sf-scope{font-weight:var(--font-weight--medium)}
:where(.sf-scope),:where(.sf-scope) *,:where(.sf-scope) *::before,:where(.sf-scope) *::after{box-sizing:border-box}
:where(.sf-scope) a{color:var(--color-link--content)}:where(.sf-scope) a:hover{color:var(--color-link--primary__hover)}
:where(.sf-scope) img{max-width:100%}
.bf-wrap{max-width:var(--width-page--max);margin:0 auto;padding:0 var(--gutter)}
.bf-fade{transition:opacity var(--duration-hover) var(--easing-standard)}
@media (min-width:768px){.bf-fade:hover{opacity:var(--opacity-hover)}}
/* SWELL's swell-icons.css forces its own icon font onto every [class^=icon-]:before. The icons here are simple-line-icons. */
.sf-scope [class^="icon-"]:before,.sf-scope [class*=" icon-"]:before{font-family:'simple-line-icons'!important}
:where(a,button,input,select):focus-visible{outline:2px solid var(--color-brown--dark);outline-offset:2px}
/* top bar */
.bf-topbar{background:var(--color-gray--thin);border-bottom:1px solid var(--color-border--secondary)}
.bf-topbar .bf-wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--gutter);min-height:32px}
.bf-topbar p{margin:0;font-size:11px;line-height:2.1;color:var(--text-muted)}
.bf-sns{display:flex;gap:var(--gutter);margin:0;padding:0;list-style:none}
.bf-sns a{color:var(--color-icon--primary);text-decoration:none;font-size:14px;display:block;line-height:1}
/* header */
.bf-header{background:var(--color-white);box-shadow:var(--shadow-header);position:relative;z-index:3}
.bf-header__row{display:flex;align-items:center;gap:var(--gutter--l);min-height:88px}
.bf-logo{display:flex;align-items:center;gap:var(--gutter);text-decoration:none;color:var(--text-strong);flex:none}
.bf-logo img{height:48px;width:auto;display:block}
.bf-logo__name{font-family:var(--font-serif);font-size:16px;line-height:1.3;letter-spacing:.12em}
.bf-logo__name small{display:block;font-family:var(--font-sans);font-size:9px;letter-spacing:.1em;color:var(--text-muted)}
.bf-gnav{margin-left:auto;display:flex;align-items:center;gap:var(--gutter--s)}
.bf-gnav ul{display:flex;margin:0;padding:0;list-style:none}
.bf-gnav a{display:block;text-decoration:none;color:var(--text-strong);text-align:center;padding:var(--gutter--s) 12px;font-size:12px;line-height:1.4;white-space:nowrap}
.bf-gnav a small{display:block;font-family:var(--font-serif);font-size:9px;letter-spacing:.12em;color:var(--text-muted)}
.bf-gnav .is-shop > a{color:var(--color-brown--dark)}
.bf-gnav .is-shop > a small{color:var(--color-primary)}
.bf-gnav .menu-item-has-children{position:relative;display:flex;align-items:stretch}
.bf-subtoggle{appearance:none;flex:none;width:24px;border:0;background:none;padding:0;cursor:pointer;position:relative}
.bf-subtoggle::before{content:'';position:absolute;left:calc(50% - 4px);top:calc(50% - 5px);width:6px;height:6px;border-right:1px solid var(--text-strong);border-bottom:1px solid var(--text-strong);transform:rotate(45deg);transition:transform var(--duration-hover) var(--easing-standard)}
.bf-subtoggle[aria-expanded="true"]::before{transform:rotate(-135deg);top:calc(50% - 1px)}
.bf-gnav .menu-item-has-children > a{padding-right:2px}
.bf-gnav .sub-menu{display:block;position:absolute;top:100%;left:0;z-index:4;min-width:300px;margin:0;padding:var(--gutter--s) 0;background:var(--color-white);box-shadow:var(--shadow-header);visibility:hidden;opacity:0;transform:translateY(4px);transition:opacity var(--duration-hover) var(--easing-standard),transform var(--duration-hover) var(--easing-standard),visibility 0s linear var(--duration-hover)}
.bf-gnav .bf-subtoggle[aria-expanded="true"] ~ .sub-menu{visibility:visible;opacity:1;transform:none;transition-delay:0s}
.bf-gnav .sub-menu a{text-align:left;white-space:normal;padding:10px var(--gutter);font-size:13px}
@media (prefers-reduced-motion:reduce){.bf-gnav .sub-menu,.bf-subtoggle::before{transition:none}}
.bf-iconbtn{appearance:none;border:0;background:none;padding:var(--gutter--s);color:var(--text-strong);font-size:18px;line-height:1;cursor:pointer}
.bf-iconbtn small{display:block;font-size:9px;margin-top:4px;font-family:var(--font-serif);letter-spacing:.1em}
.bf-sp-only{display:none}
.bf-spnav{display:none}
@media (max-width:1199px){
.bf-gnav{display:none}
.bf-sp-only{display:block}
.bf-header__row{min-height:64px;gap:0;justify-content:space-between}
.bf-logo img{height:36px}
.bf-logo__name{font-size:13px}
.bf-spnav{display:block;border-top:1px solid var(--color-border--secondary);overflow-x:auto;scrollbar-width:none}
.bf-spnav ul{display:flex;margin:0;padding:0 var(--gutter--s);list-style:none;white-space:nowrap}
.bf-spnav a{display:block;padding:var(--gutter--s) 12px;font-size:12px;text-decoration:none;color:var(--text-strong)}
.bf-spnav :is(.current-menu-item,.current-menu-ancestor,.current-post-ancestor,.current-category-ancestor) > a{box-shadow:inset 0 -2px 0 var(--color-beige)}
.bf-topbar .bf-sns{display:none}
.bf-topbar p{text-align:center;width:100%;font-size:9px}
}
@media (max-width:359px){.bf-logo{gap:var(--gutter--s)}.bf-logo img{height:26px}.bf-logo__name{font-size:11px;letter-spacing:.06em}.bf-logo__name small{letter-spacing:.02em}}
@media (min-width:360px) and (max-width:375px){.bf-header__row .bf-iconbtn{padding-left:var(--gutter--xs);padding-right:var(--gutter--xs)}}
/* pickup slider */
.bf-pickup{padding:var(--gutter--l) 0 0}
.bf-pickup__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--gutter);margin-bottom:var(--gutter)}
.bf-pickup__label{font-family:var(--font-serif);font-size:16px;letter-spacing:.14em;color:var(--text-strong);margin:0}
.bf-pickup__label small{font-family:var(--font-sans);font-size:11px;letter-spacing:.05em;color:var(--text-muted);margin-left:var(--gutter--s)}
.bf-arrows{display:flex;gap:var(--gutter--s)}
.bf-arrow{width:36px;height:36px;border:1px solid var(--color-border--light);background:var(--color-white);cursor:pointer;position:relative}
.bf-arrow::before{content:'';position:absolute;top:calc(50% - 4px);left:calc(50% - 5px);width:8px;height:8px;border-top:1px solid var(--text-strong);border-right:1px solid var(--text-strong);transform:rotate(45deg)}
.bf-arrow--prev::before{left:calc(50% - 2px);transform:rotate(-135deg)}
.bf-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 2*var(--gutter))/3);gap:var(--gutter);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:var(--gutter--s)}
.bf-track::-webkit-scrollbar{display:none}
.bf-track > *{scroll-snap-align:start}
.bf-dots{display:flex;justify-content:center;gap:var(--gutter--s);margin-top:var(--gutter)}
.bf-dots span{width:6px;height:6px;border-radius:var(--radius--full);background:var(--color-gray)}
.bf-dots span.is-on{background:var(--color-beige)}
@media (max-width:767px){.bf-track{grid-auto-columns:82%}.bf-arrows{display:none}}
/* sections */
.bf-section{padding:var(--gutter--xl) 0 0}
.bf-section .sf-heading--serif{font-size:28px;letter-spacing:.14em;margin-bottom:var(--gutter--l)}
.bf-section .sf-heading--serif small{letter-spacing:.2em;color:var(--text-muted)}
.bf-more{max-width:420px;margin:var(--gutter--l) auto 0}
/* post card */
.bf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gutter--l) var(--gutter)}
@media (max-width:767px){.bf-grid{grid-template-columns:minmax(0,1fr);gap:var(--gutter--l)}}
.bf-card{display:block;text-decoration:none;color:inherit}
.bf-card:hover{color:inherit}
.bf-thumb{position:relative;aspect-ratio:5/3;background:var(--color-beige--light);overflow:hidden;margin-bottom:12px}
.bf-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.bf-thumb__ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:13px;letter-spacing:.14em;color:var(--color-beige)}
.bf-cat{position:absolute;top:var(--gutter--s);right:var(--gutter--s);display:flex;align-items:center;gap:4px;font-size:11px;line-height:1.65;padding:2px var(--gutter--s);background:var(--color-white__a9);color:var(--text-strong);border-radius:var(--radius--m)}
.bf-cat i{font-size:10px;color:var(--color-icon--primary)}
.bf-card__title{margin:0 0 var(--gutter--s);font-size:14px;font-weight:bold;line-height:1.65;color:var(--text-strong);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;text-wrap:pretty}
.bf-card__date{display:flex;align-items:center;gap:4px;font-size:11px;line-height:1.65;color:var(--text-muted)}
.bf-card__date i{font-size:10px}
/* tabs */
.bf-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;margin:0 0 var(--gutter);padding:0;list-style:none}
.bf-tab{width:100%;appearance:none;border:0;border-top:2px solid transparent;background:var(--color-gray--light);color:var(--text-body);font:inherit;font-size:13px;line-height:1.65;padding:12px var(--gutter--s);cursor:pointer}
.bf-tab.is-active{background:var(--color-beige--light);border-top-color:var(--color-beige);color:var(--text-strong);font-weight:bold}
.bf-tab__count{font-size:11px;color:var(--text-muted);margin-left:4px;font-weight:normal}
/* about band */
.bf-about{margin-top:var(--gutter--xxl);background:var(--color-beige--light);padding:var(--gutter--xl) 0}
.bf-about__body{max-width:var(--width-content--primary);margin:0 auto;display:grid;grid-template-columns:160px minmax(0,1fr);gap:var(--gutter--l);align-items:start}
.bf-about__avatar{width:160px;height:160px;border-radius:var(--radius--full);overflow:hidden;background:var(--color-white);border:1px solid var(--color-beige)}
.bf-about__avatar img{width:100%;height:100%;object-fit:cover;display:block}
.bf-about__role{margin:0;font-size:12px;line-height:2.1;color:var(--text-muted)}
.bf-about__name{margin:0 0 var(--gutter);font-size:18px;font-weight:bold;color:var(--text-strong)}
.bf-about__text p{margin:0 0 var(--gutter);font-size:14px;line-height:1.9}
.bf-about .sf-heading--serif{font-size:28px;letter-spacing:.14em;margin-bottom:var(--gutter--l)}
.bf-about__btns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gutter);max-width:var(--width-content--primary);margin:var(--gutter--l) auto 0}
.bf-about__sns{display:flex;gap:var(--gutter);margin:var(--gutter) 0 0;padding:0;list-style:none;font-size:12px}
.bf-about__sns a{color:var(--text-strong);text-decoration:none;display:flex;align-items:center;gap:4px}
@media (max-width:767px){
.bf-about__body{grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center;gap:var(--gutter)}
.bf-about__avatar{width:120px;height:120px}
.bf-about__btns{grid-template-columns:minmax(0,1fr);width:100%}
.bf-about__sns{justify-content:center}
}
/* footer widgets */
.bf-widgets{padding:var(--gutter--xl) var(--gutter);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gutter--l)}
@media (max-width:959px){.bf-widgets{grid-template-columns:minmax(0,1fr);gap:var(--gutter--xl)}}
.bf-wtitle{margin:0 0 var(--gutter);font-size:14px;font-weight:bold;color:var(--text-strong);padding-bottom:var(--gutter--s);border-bottom:1px solid var(--color-border--primary)}
.bf-widgets > div > * + .bf-wtitle{margin-top:var(--gutter--l)}
.bf-catlist{margin:0;padding:0;list-style:none}
.bf-catlist > li{border-bottom:1px solid var(--color-border--secondary)}
.bf-catrow{display:flex;align-items:center;gap:var(--gutter--s)}
.bf-catrow a{flex:1;display:flex;align-items:center;gap:var(--gutter--s);padding:12px 4px;text-decoration:none;color:var(--text-strong);font-size:13px}
.bf-catrow a i{font-size:11px;color:var(--color-icon--primary)}
.bf-catrow a span{margin-left:auto;font-size:11px;color:var(--text-muted)}
.bf-toggle{width:28px;height:28px;flex:none;border:1px solid var(--color-border--light);background:var(--color-white);cursor:pointer;position:relative}
.bf-toggle::before{content:'';position:absolute;left:calc(50% - 4px);top:calc(50% - 6px);width:7px;height:7px;border-right:1px solid var(--text-strong);border-bottom:1px solid var(--text-strong);transform:rotate(45deg);transition:transform var(--duration-hover) var(--easing-standard)}
.bf-toggle[aria-expanded="true"]::before{transform:rotate(-135deg);top:calc(50% - 2px)}
.bf-sub{margin:0;padding:0 0 var(--gutter--s) var(--gutter);list-style:none}
.bf-sub a{display:flex;padding:6px 4px;font-size:12px;color:var(--text-body);text-decoration:none}
.bf-sub a::before{content:'-';margin-right:var(--gutter--s);color:var(--color-beige)}
.bf-sub a span{margin-left:auto;font-size:11px;color:var(--text-muted)}
.bf-search{display:flex}
.bf-search input{flex:1;min-width:0;height:40px;border:1px solid var(--color-border--light);border-right:0;padding:0 12px;font:inherit;font-size:13px;outline:none}
.bf-search input:focus{border-color:var(--color-primary)}
.bf-search button{width:44px;height:40px;border:0;background:var(--color-brown--dark);color:var(--color-white);font-size:14px;cursor:pointer}
.bf-select{width:100%;height:40px;border:1px solid var(--color-border--light);background:var(--color-white);padding:0 12px;font:inherit;font-size:13px;color:var(--text-strong)}
.bf-select:focus{border-color:var(--color-primary);outline:none}
.bf-shopcard{display:block;text-decoration:none;color:inherit;border:1px solid var(--color-gray);border-radius:var(--radius--s);padding:var(--gutter);text-align:center}
.bf-shopcard img{height:60px;width:auto;display:block;margin:0 auto var(--gutter--s)}
.bf-shopcard p{margin:0;font-size:12px;line-height:2.1;color:var(--text-body)}
.bf-note{font-size:12px;line-height:2.1;color:var(--text-body);margin:var(--gutter) 0 0}
/* footer */
.bf-footer{border-top:1px solid var(--color-border--secondary);padding:var(--gutter--l) 0}
.bf-fnav{display:flex;flex-wrap:wrap;justify-content:center;margin:0 0 var(--gutter);padding:0;list-style:none}
.bf-fnav li + li{border-left:1px solid var(--color-border--light)}
.bf-fnav a{display:block;padding:0 12px;font-size:12px;line-height:1.65;color:var(--text-strong);text-decoration:none}
.bf-copy{margin:0;text-align:center;font-size:11px;line-height:2.1;color:var(--text-muted)}
/* drawer */
.bf-drawer{position:fixed;inset:0;z-index:10;pointer-events:none}
.bf-drawer__bg{position:absolute;inset:0;background:var(--color-black__a4);opacity:0;transition:opacity .3s var(--easing-standard)}
.bf-drawer__panel{position:absolute;top:0;left:0;bottom:0;width:min(320px,86%);background:var(--color-white);transform:translateX(-100%);visibility:hidden;transition:transform .3s var(--easing-standard);padding:var(--gutter);overflow-y:auto}
.bf-drawer.is-open{pointer-events:auto}
.bf-drawer.is-open .bf-drawer__bg{opacity:1}
.bf-drawer.is-open .bf-drawer__panel{transform:none;visibility:visible;box-shadow:var(--shadow-drawer)}
.bf-drawer__panel ul{margin:0;padding:0;list-style:none}
.bf-drawer__panel li a{display:block;padding:12px 4px;border-bottom:1px solid var(--color-border--secondary);font-size:14px;color:var(--text-strong);text-decoration:none}
.bf-drawer__panel li a small{font-family:var(--font-serif);font-size:10px;color:var(--text-muted);margin-left:var(--gutter--s);letter-spacing:.1em}
.bf-drawer__panel .is-shop{display:none}
.bf-drawer__panel .menu-item-has-children{display:flex;flex-wrap:wrap;align-items:stretch;border-bottom:1px solid var(--color-border--secondary)}
.bf-drawer__panel .menu-item-has-children > a{flex:1;border-bottom:0}
.bf-drawer__panel .bf-subtoggle{width:44px}
.bf-drawer__panel .sub-menu{display:none;flex-basis:100%;padding-left:var(--gutter)}
.bf-drawer__panel .bf-subtoggle[aria-expanded="true"] ~ .sub-menu{display:block}
.bf-drawer__panel .sub-menu li:last-child a{border-bottom:0}
.bf-drawer__panel .sub-menu a{font-size:13px}
.bf-drawer__close{display:flex;justify-content:flex-end}
.bf-drawer__shop{margin-top:var(--gutter--l)}
/* shared additions */
.bf-gnav :is(.current-menu-item,.current-menu-ancestor,.current-post-ancestor,.current-category-ancestor) > a{box-shadow:inset 0 -2px 0 var(--color-beige)}
.bf-card__meta{display:flex;flex-wrap:wrap;gap:0 12px}
.bf-widgets-wrap{margin-top:var(--gutter--xxl);border-top:1px solid var(--color-border--secondary)}
/* archive */
.bf-crumb{background:var(--color-gray--thin);border-bottom:1px solid var(--color-border--secondary)}
.bf-crumb ol{display:flex;flex-wrap:wrap;gap:var(--gutter--s);margin:0;padding:var(--gutter--s) 0;list-style:none;font-size:11px;line-height:1.65;color:var(--text-muted)}
.bf-crumb li+li::before{content:'›';margin-right:var(--gutter--s)}
.bf-crumb a{color:var(--text-strong);text-decoration:none}
.bf-crumb i{font-size:10px;margin-right:4px}
.bf-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--gutter--xl);padding-top:var(--gutter--xl)}
@media (min-width:1200px){.bf-layout{grid-template-columns:minmax(0,1fr) 300px}}
.bf-arch-title{margin:0 0 var(--gutter--s);font-size:24px;font-weight:bold;line-height:1.65;color:var(--text-strong);display:flex;flex-wrap:wrap;align-items:baseline;gap:4px var(--gutter);text-wrap:pretty}
.bf-arch-title small{font-family:var(--font-serif);font-size:13px;font-weight:400;color:var(--text-muted);letter-spacing:.12em}
.bf-arch-count{margin:0 0 var(--gutter);font-size:12px;line-height:2.1;color:var(--text-muted)}
.bf-subcats{display:flex;align-items:flex-start;gap:var(--gutter--s);margin-bottom:var(--gutter--l)}
.bf-subcats > i{font-size:12px;color:var(--color-icon--primary);padding-top:8px}
@media (max-width:767px){.bf-arch-title{font-size:18px}.bf-grid.bf-grid--arch{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gutter--l) var(--gutter)}.bf-grid--arch .bf-card__title{font-size:13px}}
.bf-pager{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--gutter--s);margin:var(--gutter--xl) 0 0;padding:0;list-style:none}
.bf-pager a,.bf-pager span{display:flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 var(--gutter--s);border:1px solid var(--color-border--light);background:var(--color-white);font-size:13px;color:var(--text-strong);text-decoration:none}
.bf-pager .current{background:var(--color-brown--dark);border-color:var(--color-brown--dark);color:var(--color-white)}
.bf-pager .dots{border-color:transparent;min-width:24px;padding:0}
.bf-side > * + *{margin-top:var(--gutter--l)}
.bf-side .sf-heading--primary{margin:0 0 var(--gutter)}
@media (max-width:1199px){.bf-side{width:100%;max-width:var(--width-content--primary);margin:0 auto}.bf-side__dup{display:none}}
.bf-prof{border:1px solid var(--color-gray);border-radius:var(--radius--s);padding:var(--gutter--l) var(--gutter);text-align:center}
.bf-prof__avatar{width:96px;height:96px;margin:0 auto var(--gutter--s);border-radius:var(--radius--full);overflow:hidden;border:1px solid var(--color-beige);background:var(--color-white)}
.bf-prof__avatar img{width:100%;height:100%;object-fit:cover;display:block}
.bf-prof__name{margin:0;font-size:16px;font-weight:bold;color:var(--text-strong)}
.bf-prof__role{margin:0 0 var(--gutter--s);font-size:11px;line-height:2.1;color:var(--text-muted)}
.bf-prof__text{margin:0 0 var(--gutter);font-size:13px;line-height:1.9;text-align:left}
.bf-prof .bf-sns{justify-content:center;margin-top:var(--gutter)}

/* single */
.bf-post{min-width:0}
@media (max-width:1199px){.bf-post{width:100%;max-width:var(--width-content--primary);margin:0 auto;justify-self:center}}
.bf-ph{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:var(--color-beige--light);font-family:var(--font-serif);font-size:10px;letter-spacing:.14em;color:var(--text-muted)}
.bf-post__title{margin:0 0 var(--gutter);font-size:var(--font-size--xxl);font-weight:bold;line-height:1.65;color:var(--text-strong);text-wrap:pretty}
.bf-post__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--gutter--s) var(--gutter);font-size:12px;line-height:1.65;color:var(--text-muted)}
.bf-post__meta i{font-size:11px;margin-right:4px}
.bf-post__cat{color:var(--text-strong);text-decoration:none}
.bf-post__by{display:flex;align-items:center;gap:var(--gutter--s);margin-left:auto}
.bf-post__av{width:24px;height:24px;border-radius:var(--radius--full);object-fit:cover;display:block}
.bf-eyecatch{margin:var(--gutter--l) 0}
.bf-eyecatch img,.bf-fig img{display:block;width:100%;height:auto;box-shadow:var(--shadow-photo)}
.bf-toc{margin:var(--gutter--l) 0 0;border:1px solid var(--color-border--light);border-radius:var(--radius--s);padding:var(--gutter) var(--gutter--l)}
.bf-toc__head{display:flex;align-items:center;justify-content:space-between;gap:var(--gutter)}
.bf-toc__title{margin:0;font-size:16px;font-weight:bold;color:var(--text-strong);display:flex;align-items:center;gap:var(--gutter--s)}
.bf-toc__title i{font-size:14px;color:var(--color-icon--primary)}
.bf-toc__title small{font-family:var(--font-serif);font-size:11px;font-weight:400;letter-spacing:.14em;color:var(--text-muted)}
.bf-toc__btn{appearance:none;border:1px solid var(--color-border--light);background:var(--color-white);font:inherit;font-size:11px;padding:2px var(--gutter--s);color:var(--text-strong);cursor:pointer}
.bf-toc ul{margin:var(--gutter--s) 0 0;padding:0;list-style:none;font-size:14px;line-height:1.65}
.bf-toc li{border-bottom:1px solid var(--color-border--secondary)}
.bf-toc li:last-child{border-bottom:0}
.bf-toc a{display:flex;gap:12px;padding:var(--gutter--s) 0;color:var(--text-strong);text-decoration:none;overflow-wrap:anywhere}
.bf-toc a::before{content:'\2022';content:'\2022' / '';flex:none;width:16px;font-family:var(--font-serif);color:var(--text-muted)}
.bf-toc a:hover{color:var(--color-link--primary__hover)}
.bf-post__foot{margin-top:var(--gutter--xl);clear:both}
.bf-terms{display:grid;gap:var(--gutter--s);padding:var(--gutter) 0;border-top:1px solid var(--color-border--secondary);border-bottom:1px solid var(--color-border--secondary)}
.bf-terms p{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--gutter--s) var(--gutter);font-size:13px}
.bf-terms p a{color:var(--text-strong);text-decoration:none}
.bf-terms i{font-size:12px;color:var(--color-icon--primary)}
.bf-terms__tags{display:flex;align-items:flex-start;gap:var(--gutter)}
.bf-terms__tags > i{padding-top:8px}
.bf-share{margin:var(--gutter--l) 0}
.bf-share__label{margin:0 0 var(--gutter--s);font-size:13px;font-weight:bold;color:var(--text-strong);text-align:center}
.bf-share ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gutter--s);margin:0;padding:0;list-style:none}
.bf-share a,.bf-share button{appearance:none;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:64px;border:1px solid var(--color-border--light);background:var(--color-white);font:inherit;font-size:11px;color:var(--text-strong);text-decoration:none;cursor:pointer}
.bf-share i{font-size:18px}
.bf-author{border:1px solid var(--color-gray);border-radius:var(--radius--s);padding:var(--gutter--l)}
.bf-author__label{margin:0 0 var(--gutter);font-size:13px;font-weight:bold;color:var(--text-strong);padding-bottom:var(--gutter--s);border-bottom:1px solid var(--color-beige)}
.bf-author__row{display:grid;grid-template-columns:80px minmax(0,1fr);gap:var(--gutter);align-items:start}
.bf-author__img{display:block;width:80px;height:80px;border-radius:var(--radius--full);overflow:hidden;border:1px solid var(--color-beige)}
.bf-author__img img{width:100%;height:100%;object-fit:cover;display:block}
.bf-author__name{margin:0 0 4px;font-size:16px;font-weight:bold;color:var(--text-strong)}
.bf-author__name small{font-size:11px;font-weight:400;color:var(--text-muted);margin-left:var(--gutter--s)}
.bf-author__text{margin:0 0 var(--gutter--s);font-size:13px;line-height:1.9}
.bf-author__more{font-size:12px}
.bf-shopcta{margin-top:var(--gutter--xl)}
.bf-shopcta__btn{margin-top:var(--gutter)}
.bf-pns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gutter);margin-top:var(--gutter--xl)}
.bf-pn{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--color-border--tertiary);text-decoration:none;color:var(--text-strong)}
.bf-pn:hover{color:var(--text-strong)}
.bf-pn--next{flex-direction:row-reverse;text-align:right}
.bf-pn__img{flex:none;width:64px;height:64px;overflow:hidden}
.bf-pn__img img{width:100%;height:100%;object-fit:cover;display:block}
.bf-pn__body{min-width:0;display:grid;gap:4px}
.bf-pn__body small{font-size:11px;color:var(--text-muted)}
.bf-pn__body span{font-size:13px;line-height:1.65;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.bf-related{margin-top:var(--gutter--xl)}
.bf-related .sf-heading--serif{font-size:24px;letter-spacing:.14em;margin-bottom:var(--gutter--l)}
.bf-related .sf-heading--serif small{letter-spacing:.2em;color:var(--text-muted)}
.bf-related ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gutter) var(--gutter--l);margin:0;padding:0;list-style:none}
.bf-related a{display:flex;gap:12px;text-decoration:none;color:var(--text-strong)}
.bf-related a:hover{color:var(--text-strong)}
.bf-related__img{flex:none;width:96px;height:96px;overflow:hidden}
.bf-related__img img{width:100%;height:100%;object-fit:cover;display:block}
.bf-related__body{min-width:0;display:grid;align-content:start;gap:4px}
.bf-related__body small{font-size:11px;color:var(--text-muted)}
.bf-related__body span{font-size:14px;font-weight:bold;line-height:1.65;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.bf-mini{margin:0;padding:0;list-style:none}
.bf-mini li{border-bottom:1px solid var(--color-border--secondary)}
.bf-mini a{display:flex;gap:12px;padding:12px 0;text-decoration:none;color:var(--text-strong)}
.bf-mini__img{flex:none;width:96px;aspect-ratio:5/3;overflow:hidden}
.bf-mini__img img{width:100%;height:100%;object-fit:cover;display:block}
.bf-mini__body{min-width:0;display:grid;align-content:start;gap:4px}
.bf-mini__t{font-size:13px;line-height:1.65;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.bf-mini time{font-size:11px;color:var(--text-muted)}
.bf-side__sticky{position:sticky;top:var(--gutter)}
.bf-stoc ul{margin:0;padding:0;list-style:none;max-height:calc(100vh - 120px);overflow-y:auto}
.bf-stoc a{display:flex;gap:var(--gutter--s);padding:6px 0 6px 12px;border-left:2px solid var(--color-border--secondary);font-size:13px;line-height:1.65;color:var(--text-body);text-decoration:none}
.bf-stoc a::before{content:'\2022';content:'\2022' / '';flex:none;font-family:var(--font-serif);color:var(--text-muted)}
.bf-stoc li.is-on a{border-left-color:var(--color-beige);color:var(--text-strong);font-weight:bold}
@media (max-width:767px){
.bf-post__title{font-size:20px}
.bf-post__by{margin-left:0}
.bf-toc{padding:var(--gutter)}
.bf-author{padding:var(--gutter)}
.bf-share ul{grid-template-columns:repeat(2,minmax(0,1fr))}
.bf-pns,.bf-related ul{grid-template-columns:minmax(0,1fr)}
}
/* Primary (orange) buttons use white text — client decision 2026-09-25, against the DS's 2.86:1 contrast warning. */
.sf-btn--primary,.sf-btn--primary:hover{color:var(--color-white)}.sf-btn--primary::before{border-top-color:var(--color-white);border-right-color:var(--color-white)}
