/* 追加部分だけに適用。元のElementor、ナビ、写真、見出しには触れません。 */
.ppcb-reading-block {
  box-sizing: border-box;
  width: min(calc(90% - 20px), 1580px);
  margin: 32px auto;
  padding: 0;
  color: #0a2f5a;
  font-family: "Noto Sans JP", sans-serif;
  text-align: left;
}
.ppcb-reading-block * { box-sizing: border-box; }
.ppcb-reading-entry { scroll-margin-top: 90px; }
.ppcb-reading-entry summary {
  position: relative;
  padding: 28px 64px 28px 30px;
  border-top: 1px solid #becad4;
  border-bottom: 1px solid #becad4;
  background: #f6f8fa;
  cursor: pointer;
  list-style: none;
  touch-action: manipulation;
}
.ppcb-reading-entry summary::-webkit-details-marker { display: none; }
.ppcb-reading-block .ppcb-reading-label {
  display: block;
  margin: 0 0 12px;
  color: #024f79;
  font: 400 12px/1.7 "Urbanist", "Noto Sans JP", sans-serif;
  letter-spacing: .12em;
}
.ppcb-reading-title {
  display: block;
  color: #111;
  font: 500 25px/1.75 "Zen Old Mincho", serif;
}
.ppcb-reading-action { display: block; margin-top: 12px; color: #65727e; font-size: 12px; }
.ppcb-reading-action b { position: absolute; right: 28px; top: 43%; color: #0a2f5a; font-size: 25px; font-weight: 400; }
.ppcb-reading-entry summary:hover { background: #edf2f6; }
.ppcb-reading-block :is(summary,button,a):focus-visible { outline: 2px solid #024f79; outline-offset: 4px; }
.ppcb-reading-block .ppcb-reading-article { max-width: 800px; margin: auto; padding: 44px 48px 64px; background: #fff; color: #333; }
.ppcb-reading-block .ppcb-reading-article :is(h2,h3,p) { border: 0; background: none; padding: 0; }
.ppcb-reading-block .ppcb-reading-article :is(h2,h3)::before,
.ppcb-reading-block .ppcb-reading-article :is(h2,h3)::after { content: none; }
.ppcb-reading-block .ppcb-reading-article h2 { margin: 0 0 26px; color: #0a2f5a; font: 500 30px/1.65 "Zen Old Mincho",serif; }
.ppcb-reading-block .ppcb-reading-article h3 { margin: 0 0 18px; color: #111; font: 500 20px/1.8 "Zen Old Mincho",serif; }
.ppcb-reading-block .ppcb-reading-article p { margin: 0 0 18px; font-size: 15px; line-height: 2.15; }
.ppcb-reading-block .ppcb-reading-article section { margin: 34px 0; }
.ppcb-reading-block .ppcb-reading-article .ppcb-reading-lead { padding-bottom: 26px; border-bottom: 1px solid #d2d9df; }
.ppcb-reading-block .ppcb-reading-article .ppcb-reading-sign { padding-top: 24px; border-top: 1px solid #d2d9df; text-align: right; font-size: 12px; }
.ppcb-philosophy-link { display: block; position: relative; padding: 24px 54px 24px 30px; border-bottom: 1px solid #becad4; color: #0a2f5a; text-decoration: none; font-size: 18px; }
.ppcb-philosophy-link b { position: absolute; right: 28px; top: 40%; font-weight: 400; }
.ppcb-philosophy-link:hover { background: #f6f8fa; }
.ppcb-reading-dialog { position: fixed; inset: 0; margin: auto; width: min(960px,94vw); max-width: 94vw; height: min(900px,92dvh); max-height: 92dvh; padding: 0; border: 0; background: #fff; overflow: hidden; box-shadow: 0 25px 100px #0005; }
.ppcb-reading-dialog:not([open]) { display: none; }
.ppcb-reading-dialog[open] { display: flex; flex-direction: column; }
.ppcb-reading-dialog::backdrop { background: #071c32b8; backdrop-filter: blur(4px); }
.ppcb-reading-bar { position: relative; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 20px; background: #fff; border-bottom: 1px solid #d2d9df; flex: none; }
.ppcb-reading-bar>span { color: #024f79; font-size: 10px; letter-spacing: .1em; }
.ppcb-reading-bar button { border: 0; padding: 10px 18px; min-height: 44px; background: #0a2f5a; color: #fff; font: 13px/1.5 sans-serif; cursor: pointer; touch-action: manipulation; }
.ppcb-reading-scroll { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.ppcb-curtain { position: absolute; top: 0; bottom: 0; width: 50.2%; z-index: 2; pointer-events: none; background: linear-gradient(90deg,#092745,#174e73,#0b2e50); }
.ppcb-curtain-left { left: 0; transform: translateX(-102%); }
.ppcb-curtain-right { right: 0; transform: translateX(102%); }
.ppcb-reading-dialog[open] .ppcb-curtain-left { animation: ppcb-open-left .8s cubic-bezier(.76,0,.24,1) both; }
.ppcb-reading-dialog[open] .ppcb-curtain-right { animation: ppcb-open-right .8s cubic-bezier(.76,0,.24,1) both; }
@keyframes ppcb-open-left { from { transform: translateX(0); } to { transform: translateX(-102%); } }
@keyframes ppcb-open-right { from { transform: translateX(0); } to { transform: translateX(102%); } }
@media (max-width:700px) {
  .ppcb-reading-block { margin: 24px auto; padding: 0; }
  .ppcb-reading-entry summary { padding: 23px 48px 23px 20px; }
  .ppcb-reading-title { font-size: 20px; }
  .ppcb-reading-action b { right: 18px; }
  .ppcb-philosophy-link { padding-left: 20px; font-size: 16px; }
  .ppcb-reading-dialog { width: 100%; max-width: 100%; height: 96dvh; max-height: 96dvh; margin: auto 0 0; }
  .ppcb-reading-block .ppcb-reading-article { padding: 28px 22px 56px; }
  .ppcb-reading-block .ppcb-reading-article h2 { font-size: 23px; }
  .ppcb-reading-block .ppcb-reading-article h3 { font-size: 18px; }
  .ppcb-reading-block .ppcb-reading-article p { font-size: 14px; }
  .ppcb-reading-bar { padding: 10px 14px; }
  .ppcb-reading-bar>span { font-size: 8px; }
}
@media (prefers-reduced-motion:reduce) { .ppcb-curtain { animation: none!important; } }

/* ElementorのHTMLウィジェット内では親の本文幅をそのまま使用 */
.elementor-widget-html .ppcb-reading-block { width: 100%; max-width: none; padding-inline: 0; }

