/* Organic jinbei: native content, full photos, page-scoped layout. */
.oj-main { --oj-ink:#353c2e; --oj-muted:#5e6757; --oj-green:#405b3b; color:var(--oj-ink); background:#fffdf9; line-height:1.9; }
.oj-main * { box-sizing:border-box; }
.oj-main>section { padding-inline:0; }
.oj-main [id] { scroll-margin-top:110px; }
.oj-wrap { width:min(1140px,calc(100% - 64px)); margin-inline:auto; }
.oj-section { padding-block:72px; }
.oj-soft { background:#f1f3e9; }
.oj-kicker { color:var(--oj-green); font-size:.8rem; font-weight:600; letter-spacing:.08em; }
.oj-main h1,.oj-main h2,.oj-main h3 { font-family:var(--serif); font-weight:500; text-wrap:balance; }
.oj-main h1 { font-size:clamp(2.25rem,3.6vw,3.4rem); line-height:1.5; margin:0 0 24px; }
.oj-main h2 { font-size:clamp(1.65rem,2.5vw,2.15rem); line-height:1.6; margin:0 0 22px; }
.oj-main h3 { font-size:1.22rem; line-height:1.7; margin:0 0 14px; }
.oj-main p { margin:0 0 18px; }
.oj-hero { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:54px; padding-block:48px 66px; }
.oj-lead { font-size:1.06rem; color:var(--oj-muted); max-width:31em; }
.oj-links { display:flex; flex-wrap:wrap; gap:12px 20px; margin-top:26px; }
.oj-main a { color:var(--oj-green); text-underline-offset:.22em; }
.oj-links a,.oj-help,.oj-original { min-height:48px; padding-block:10px; display:inline-flex; align-items:center; white-space:normal; font-size:.95rem; }
.oj-main .oj-primary { background:var(--oj-green); color:#fffdf9; padding:12px 22px; text-decoration:none; border-radius:5px; font-weight:600; }
.oj-main a:focus-visible,.oj-main summary:focus-visible { outline:3px solid #405b3b; outline-offset:5px; }
.oj-photo { min-width:0; margin:0; }
.oj-photo picture { display:block; }
.oj-photo img { display:block; width:100%; height:auto; object-fit:contain; border-radius:3px; }
.oj-photo figcaption { color:var(--oj-muted); font-size:.8rem; line-height:1.8; margin-top:12px; }
.oj-heading { max-width:790px; margin-bottom:34px; }
.oj-heading p:not(.oj-kicker),.oj-detail p:not(.oj-kicker) { color:var(--oj-muted); }
.oj-dressing-steps { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:34px; padding:0; }
.oj-dressing-steps li>span { display:block; color:#728161; font-family:var(--serif); font-size:2rem; border-top:1px solid #cdd4bc; padding-top:12px; margin-bottom:16px; }
.oj-dressing-steps li>span,body:has(.oj-main) :is(.buy-price,.buy-bar-price,.total-amt,.qty-n) { font-family:var(--sans)!important; font-variant-numeric:lining-nums tabular-nums; font-feature-settings:"lnum" 1,"tnum" 1; letter-spacing:0; }
.oj-dressing-steps p { color:var(--oj-muted); font-size:.95rem; }
.oj-detail { display:grid; grid-template-columns:1.08fr 1fr; gap:54px; align-items:center; }
.oj-detail-reverse .oj-photo { grid-column:2; grid-row:1; }
.oj-detail-reverse>div { grid-column:1; grid-row:1; }
.oj-main .oj-note { border-left:2px solid #afb99d; padding-left:16px; font-size:.88rem; }
.oj-spec-grid { display:grid; grid-template-columns:1fr 1fr; gap:55px; margin-top:30px; }
.oj-specs,.oj-care { padding-left:1.2em; color:var(--oj-muted); }
.oj-specs li,.oj-care li { margin-bottom:15px; padding-left:4px; }
.oj-faq { max-width:900px; }
.oj-faq details { border-top:1px solid #cdd4bc; }
.oj-faq details:last-child { border-bottom:1px solid #cdd4bc; }
.oj-faq summary { min-height:48px; padding:17px 4px; cursor:pointer; color:var(--oj-green); font-weight:600; }
.oj-faq details p { color:var(--oj-muted); padding:0 24px 10px; }
.oj-main .buy-section { padding:60px 20px; }
.oj-main .buy-card { max-width:850px; }
.oj-main .oj-buy-help { margin:20px 0 0; }
body:has(.oj-main) .modal { overflow:hidden; }
body:has(.oj-main) .modal-r { min-height:0; }
body:has(.oj-main) .modal-l { flex-direction:column; gap:16px; min-height:0; }
body:has(.oj-main) .modal-photo { object-fit:contain; width:min(100%,340px); height:auto; max-height:none; }
body:has(.oj-main) .oj-modal-note { font-size:12px; line-height:1.8; color:#5e6757; max-width:340px; }
body:has(.oj-main) .col-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); max-width:260px; }
body:has(.oj-main) .col-sw { width:100%; }
body:has(.oj-main) .col-sw img { object-fit:contain; }
body:has(.oj-main) .col-sw-stk { display:block; font-size:12px; line-height:1.6; text-align:center; padding:3px; }
body:has(.oj-main) .col-sw-nm { font-size:12px; line-height:1.7; }
body:has(.oj-main) .modal-x,body:has(.oj-main) .qty-btn-m,body:has(.oj-main) .sz-btn { min-height:44px; min-width:44px; }
body:has(.oj-main) .buy-bar-name { white-space:normal; line-height:1.5; }
@media(max-width:850px) {
 .oj-wrap { width:calc(100% - 40px); }
 .oj-hero,.oj-detail,.oj-spec-grid { gap:30px; }
 .oj-main h1 { font-size:2.4rem; }
}
@media(max-width:768px) {
 body:has(.oj-main) .modal { display:block; max-height:90dvh; overflow-y:auto; overscroll-behavior:contain; }
 body:has(.oj-main) .modal-l { display:flex; padding:18px; }
 body:has(.oj-main) .modal-photo { width:min(100%,260px); }
 body:has(.oj-main) .modal-r { padding:24px; max-height:none; overflow:visible; }
}
@media(max-width:650px) {
 .oj-wrap { width:calc(100% - 36px); }
 .oj-section { padding-block:46px; }
 .oj-hero { grid-template-columns:1fr; padding-block:22px 42px; gap:25px; }
 .oj-hero-photo { grid-row:1; }
 .oj-main h1 { font-size:2rem; margin-bottom:18px; }
 .oj-main h2 { font-size:1.6rem; }
 .oj-lead { font-size:1rem; }
 .oj-heading { margin-bottom:26px; }
 .oj-detail,.oj-spec-grid,.oj-dressing-steps { grid-template-columns:1fr; gap:26px; }
 .oj-detail-reverse .oj-photo,.oj-detail-reverse>div { grid-column:auto; grid-row:auto; }
 .oj-faq details p { padding-inline:4px; }
 .oj-main .buy-card { padding:36px 20px; }
 body:has(.oj-main) .buy-bar { gap:14px; padding:10px 18px; }
 body:has(.oj-main) .buy-bar-name { font-size:13px; }
 body:has(.oj-main) .buy-bar-price { font-size:18px; }
 body:has(.oj-main) .buy-bar-btn { font-size:14px; padding:10px 15px; flex-shrink:0; }
}
