/* Shared public reading layout. The home page keeps its full-width composition. */
.public-content-layout { display:grid; grid-template-columns:minmax(0,1fr) 290px; align-items:start; gap:32px; margin:20px 0 64px; }
.public-content-main { min-width:0; }
.public-content-main > :is(.page-shell,.hc-catalog-detail,.hc-catalog-stack) { width:100%; max-width:none; margin:0; }
.public-content-main > .page-shell { padding-inline:0; }
.public-content-main .hc-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.public-content-sidebar { min-width:0; display:grid; gap:20px; }
.public-rail-card { min-width:0; padding:24px; background:#fff; border:1px solid #dce7f7; border-radius:0; }
.public-rail-card--primary { border-top:3px solid #3159db; background:linear-gradient(145deg,#f2f6ff,#fff 75%); }
.public-rail-eyebrow { display:block; color:#3159db; font-size:12px; font-weight:600; line-height:1.8; margin:0 0 14px; }
.public-rail-card h2 { color:#14213a; font:500 19px/1.8 'Noto Serif JP',serif; margin:0 0 14px; overflow-wrap:anywhere; }
.public-rail-card p { color:#526178; font-size:13px; line-height:1.95; margin:0 0 18px; }
.public-rail-card .button { display:inline-flex; align-items:center; justify-content:center; gap:8px; width:100%; min-height:48px; padding:12px 10px; font-size:13px; border-radius:0; }
.public-rail-card p.public-rail-note { margin:14px 0; font-size:12px; }
.public-rail-related { list-style:none; margin:0; padding:0; }
.public-rail-related li + li { margin-top:18px; padding-top:18px; border-top:1px solid #e5ebf5; }
.public-rail-related a { display:grid; gap:7px; }
.public-rail-related span,.public-rail-related small { color:#63718a; font-size:11px; }
.public-rail-related strong { color:#263b5a; font-size:13px; font-weight:600; line-height:1.8; overflow-wrap:anywhere; }
.public-rail-related a:hover strong { color:#3159db; text-decoration:underline; text-underline-offset:4px; }
.public-rail-nav { display:grid; gap:0; padding-block:8px; }
.public-rail-nav a { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; color:#334560; font-size:13px; line-height:1.8; }
.public-rail-nav a + a { border-top:1px solid #e5ebf5; }
.public-rail-nav a:hover { color:#3159db; }
.public-content-sidebar a:focus-visible,.public-request-breadcrumb a:focus-visible { outline:2px solid #3159db; outline-offset:4px; }
.public-request-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:6px 9px; margin:0; padding:0; list-style:none; color:#63718a; font-size:12px; line-height:1.8; }
.public-request-breadcrumb li + li::before { content:'›'; display:inline-block; margin-right:9px; color:#91a0b5; }
.public-request-breadcrumb a { color:#526178; }
.hc-request-help { border-top:1px solid #e0e8f3; padding-top:26px; }
.hc-request-help p,.hc-request-help li { color:#526178; font-size:14px; line-height:1.95; }
.hc-request-help ol { margin:14px 0; padding-left:1.5em; }
.hc-request-help li + li { margin-top:9px; }
.hc-request-help a { color:#3159db; text-decoration:underline; text-underline-offset:4px; }
.public-content-main .news-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.news-aside .public-content-sidebar { margin-bottom:24px; }
@media(min-width:1100px) { .public-content-sidebar { position:sticky; top:128px; } .news-aside .public-content-sidebar { position:static; } }
@media(max-width:1000px) { .public-content-layout { grid-template-columns:minmax(0,1fr) 260px; gap:24px; } .public-rail-card { padding:20px; } }
@media(max-width:820px) { .public-content-layout { grid-template-columns:minmax(0,1fr); gap:30px; margin-bottom:40px; } .public-content-sidebar { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; } .news-aside .public-content-sidebar { grid-template-columns:1fr; } }
@media(max-width:600px) { .public-content-sidebar,.public-content-main .hc-catalog-grid,.public-content-main .news-card-grid { grid-template-columns:minmax(0,1fr); } .public-rail-card { padding:22px; } .public-rail-card h2 { font-size:20px; } .public-request-breadcrumb { font-size:11px; } }
