/* Original historical editorial design for the migrated Ryomaden blog.
   Scope all front-end rules to plugin body class. No NHK or drama assets used. */
body.ryoma-site-design {
  --ryoma-ink: #1c2528;
  --ryoma-night: #172c36;
  --ryoma-gold: #b59659;
  --ryoma-paper: #f8f5ed;
  --ryoma-paper-dk: #eee8d9;
  --ryoma-edge: #dbd3c0;
  background: #efece5;
  color: #2b3131;
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", Meiryo, sans-serif;
  line-height: 1.85;
}
body.ryoma-site-design #container {background: transparent;}
body.ryoma-site-design .header-container {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: linear-gradient(110deg, #0d212c 0%, #213c45 53%, #0e2834 100%);
  color: #fff;
  box-shadow: inset 0 -2px 0 rgba(181,150,89,.5), 0 12px 25px rgba(11,22,26,.13);
}
body.ryoma-site-design .header-container::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  background: url("ryoma-horizon.svg") center 47% / cover no-repeat;
  opacity: .64;
  pointer-events: none;
}
body.ryoma-site-design .header-container > * {position: relative;z-index: 1;}
body.ryoma-site-design .header-container::after {
  content: "幕末の「志」を明日の私へ";
  position: relative;
  z-index: 1;
  display: block;
  box-sizing: border-box;
  padding: 52px 24px 61px;
  margin: 10px auto 0;
  max-width: 1100px;
  text-align: center;
  color: #fff5df;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: clamp(25px, 3.35vw, 43px);
  font-weight: 700;
  letter-spacing: .115em;
  text-shadow: 0 2px 14px rgba(0,0,0,.6);
  border-top: 1px solid rgba(212,189,136,.33);
}
body.ryoma-site-design #header,
body.ryoma-site-design #header-in,
body.ryoma-site-design #header-container-in {background: transparent;}
body.ryoma-site-design #header-in {padding-top: 21px;padding-bottom: 16px;}
body.ryoma-site-design #header .site-name-text,
body.ryoma-site-design #header .site-name-text-link,
body.ryoma-site-design #header .site-name-text a,
body.ryoma-site-design #header .tagline {color: #fef6e8 !important; text-shadow: 0 2px 6px rgba(0,0,0,.32);}
body.ryoma-site-design #header .site-name-text {
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  letter-spacing: .05em;
}
body.ryoma-site-design .navi {background: rgba(9,22,26,.7) !important; border-top: 1px solid rgba(202,169,103,.25);}
body.ryoma-site-design .navi .navi-in a {color: #f5f0e4 !important;font-weight: 600;}
body.ryoma-site-design .navi .navi-in a:hover {background: rgba(177,139,78,.22);}
body.ryoma-site-design #content {margin-top: 0; background: transparent;}
body.ryoma-site-design #content-in.content-in {
  box-sizing: border-box;
  max-width: 1130px !important;
  width: calc(100% - 46px) !important;
  padding: 46px 0 58px !important;
  margin: auto !important;
  display: block !important;
}
body.ryoma-site-design #sidebar {display: none !important;}
body.ryoma-site-design #main.main {
  box-sizing: border-box;
  display: block;
  clear: both;
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 auto !important;
  padding: clamp(24px, 4.3vw, 59px) !important;
  background: var(--ryoma-paper);
  border: 1px solid #e4dccd;
  border-top: 4px solid var(--ryoma-gold);
  border-radius: 3px;
  box-shadow: 0 15px 45px rgba(31,34,34,.075);
}
body.ryoma-site-design .entry-content,
body.ryoma-site-design .article-body {
  max-width: 900px;
  margin-inline: auto;
  font-size: 17px;
  line-height: 2.0;
  letter-spacing: .015em;
}
body.ryoma-site-design .entry-title,
body.ryoma-site-design h1.entry-title {
  max-width: 960px;
  margin: 0 auto 30px;
  padding-bottom: 23px;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  color: #1b2f37;
  font-size: clamp(25px, 3vw, 37px);
  line-height: 1.5;
  letter-spacing: .025em;
  border-bottom: 1px solid #c5b58f;
  overflow-wrap: anywhere;
}
body.ryoma-site-design .entry-content h2 {
  margin: 2.8em 0 1.1em;
  padding: .58em .8em;
  background: linear-gradient(90deg, #203b44 0%, #2b4b54 100%);
  color: #fff8ea;
  border-left: 5px solid #b89c63;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(21px, 2.3vw, 27px);
  line-height: 1.5;
  box-shadow: 0 5px 16px rgba(29,54,62,.10);
}
body.ryoma-site-design .entry-content h3 {
  margin: 2.1em 0 .85em;
  padding: 0 0 .5em .8em;
  border-left: 4px solid #a88344;
  border-bottom: 1px solid #dfd3b8;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  color: #203943;
  line-height: 1.55;
}
body.ryoma-site-design .entry-content p {margin: 0 0 1.4em;}
body.ryoma-site-design .entry-content img,
body.ryoma-site-design .entry-content video,
body.ryoma-site-design .entry-content iframe {height: auto;max-width: 100%;}
body.ryoma-site-design a {text-underline-offset: 3px;}
body.ryoma-site-design #main a:not(.a-wrap):not(.btn):not(.entry-card-wrap) {color: #78552e;}
body.ryoma-site-design .entry-card-wrap,
body.ryoma-site-design .related-entry-card-wrap {
  border: 1px solid var(--ryoma-edge);
  border-radius: 5px;
  background: #fffdf8;
  transition: transform .18s ease,box-shadow .18s ease;
}
body.ryoma-site-design .entry-card-wrap:hover,
body.ryoma-site-design .related-entry-card-wrap:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(34,48,49,.12);
}
body.ryoma-site-design .pagination a,
body.ryoma-site-design .pagination .current {border-radius: 3px;}
body.ryoma-site-design .breadcrumb {color: #5e615e;}
/* Old MT ad placeholders are removed only by explicit admin cleanup, not globally hidden. */
body.ryoma-site-design .ryoma-footer-guide,
body.ryoma-site-design #footer {
  background: #142932;
  color: #ede5d2;
}
body.ryoma-site-design .ryoma-footer-guide {
  border-top: 4px solid #b59659;
  padding: 56px 25px 45px;
  box-sizing: border-box;
}
body.ryoma-site-design .ryoma-footer-guide__inner {margin: 0 auto;max-width: 1060px;}
body.ryoma-site-design .ryoma-footer-guide__eyebrow {
  font: 600 11px/1.6 Arial, sans-serif;
  color: #bfa575;
  letter-spacing: .22em;
  margin: 0 0 9px;
}
body.ryoma-site-design .ryoma-footer-guide h2 {
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 27px;
  font-weight: 700;
  letter-spacing: .09em;
  margin: 0 0 6px;
  color: #f6eddb;
}
body.ryoma-site-design .ryoma-footer-guide__intro {
  color: #cfcabc;
  font-size: 14px;
  margin: 0 0 25px;
}
body.ryoma-site-design .ryoma-footer-guide__links {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 11px;
  padding: 0;
  margin: 0;
}
body.ryoma-site-design .ryoma-footer-guide__links li {margin:0;padding:0;}
body.ryoma-site-design .ryoma-footer-guide__links a {
  display: inline-block;
  padding: 8px 15px;
  border: 1px solid #7e806e;
  border-radius: 2px;
  color: #f0e9d8;
  font-size: 14px;
  line-height: 1.5;
  text-decoration: none;
}
body.ryoma-site-design .ryoma-footer-guide__links a:hover,
body.ryoma-site-design .ryoma-footer-guide__links a:focus {
  border-color: #dfc087;
  background: #26434b;
  color: #fff;
}
body.ryoma-site-design #footer {border-top: 1px solid rgba(255,255,255,.15);}
body.ryoma-site-design #footer a {color: #f4e8c8;}
@media (max-width: 767px) {
  body.ryoma-site-design #header-in {padding: 15px 12px;}
  body.ryoma-site-design .header-container::after {font-size: 24px;padding: 39px 15px 45px;letter-spacing: .04em;}
  body.ryoma-site-design #content-in.content-in {width: 100% !important;padding: 18px 12px 34px !important;}
  body.ryoma-site-design #main.main {padding: 26px 19px 35px !important;box-shadow: none;}
  body.ryoma-site-design .entry-title {font-size: 25px;}
  body.ryoma-site-design .entry-content {font-size: 16px;line-height: 1.95;}
  body.ryoma-site-design .ryoma-footer-guide {padding: 38px 18px;}
  body.ryoma-site-design .ryoma-footer-guide__links {gap: 8px;}
  body.ryoma-site-design .ryoma-footer-guide__links a {font-size: 13px;padding: 7px 10px;}
}
@media (prefers-reduced-motion:reduce) {
  body.ryoma-site-design .entry-card-wrap,
  body.ryoma-site-design .related-entry-card-wrap {transition:none;}
}


/* v1.1.0: Cocoon SNS icon/caption contrast. Keeps Cocoon brand backgrounds. */
body.ryoma-site-design #main .sns-share .sns-buttons a,
body.ryoma-site-design #main .sns-follow .sns-buttons a,
body.ryoma-site-design #main .sns-share-buttons a,
body.ryoma-site-design #main .sns-follow-buttons a,
body.ryoma-site-design #main a.share-button,
body.ryoma-site-design #main a.follow-button {
  color: #fff !important;
  text-decoration: none !important;
  border-radius: 5px;
  text-shadow: 0 1px 2px rgba(0,0,0,.13);
}
body.ryoma-site-design #main .sns-buttons a *,
body.ryoma-site-design #main .sns-buttons a::before,
body.ryoma-site-design #main .sns-share-buttons a *,
body.ryoma-site-design #main .sns-follow-buttons a * {
  color: #fff !important;
  fill: currentColor;
}
body.ryoma-site-design #main .sns-share-buttons {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 12px !important;
  max-width: 920px;
  margin-inline: auto;
}
body.ryoma-site-design #main .sns-share-buttons > * {
  box-sizing: border-box;
  width: 100% !important;
  min-width: 0;
  margin: 0 !important;
}
body.ryoma-site-design #main .sns-share-buttons a {
  box-sizing: border-box;
  width: 100% !important;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
body.ryoma-site-design #main .sns-share-message,
body.ryoma-site-design #main .sns-follow-message {
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(20px, 2.3vw, 27px);
  font-weight: 700;
  color: #273b42 !important;
  margin-bottom: 15px;
}
body.ryoma-site-design #main .sns-follow-buttons {max-width: 750px;margin-inline: auto;}
body.ryoma-site-design #footer .copyright {display: none !important;}
body.ryoma-site-design .ryoma-site-since {
  background: #10252e;
  color: #dfd5bc;
  text-align: center;
  padding: 16px 16px 20px;
  font-size: 13px;
  line-height: 1.65;
  letter-spacing: .045em;
  border-top: 1px solid rgba(182,151,94,.28);
}
body.ryoma-site-design .ryoma-site-since__year {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: bold;
  color: #dbbf83;
  font-size: 15px;
  letter-spacing: .12em;
}
body.ryoma-site-design .ryoma-site-since__sep {margin-inline: .45em;}
@media(max-width:767px) {
  body.ryoma-site-design #main .sns-share-buttons {grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap: 9px !important;}
  body.ryoma-site-design #main .sns-share-buttons a {font-size: 13px;gap: 5px;}
  body.ryoma-site-design .ryoma-site-since {font-size: 11.5px;padding: 15px 12px 18px;}
}

/* v1.2.0: chosen header message; small-screen text wraps naturally. */
@media(max-width:480px) {
  body.ryoma-site-design .header-container::after {
    font-size: clamp(22px, 5.8vw, 27px);
    letter-spacing: .015em;
    line-height: 1.7;
    padding-inline: 14px;
    overflow-wrap: anywhere;
  }
}


/* v1.3.0: Cocoon social captions are visually redundant beside recognizable icons.
   Preserve the original link, icon, tooltip and accessible label. */
body.ryoma-site-design #main .sns-share .button-caption,
body.ryoma-site-design #main .sns-follow .button-caption {
  display: none !important;
}
body.ryoma-site-design #main .sns-share .sns-buttons a,
body.ryoma-site-design #main .sns-follow .sns-buttons a {
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
  min-height: 52px !important;
  padding: 8px 12px !important;
  line-height: 1.15 !important;
}
body.ryoma-site-design #main .sns-share .social-icon,
body.ryoma-site-design #main .sns-follow .social-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 23px !important;
  line-height: 1 !important;
  margin: 0 !important;
}
body.ryoma-site-design #main .ryoma-hide-inline-duplicate {
  display: none !important;
}
@media(max-width:767px) {
  body.ryoma-site-design #main .sns-share .sns-buttons a,
  body.ryoma-site-design #main .sns-follow .sns-buttons a {
    min-height: 46px !important;
    padding: 7px 8px !important;
  }
  body.ryoma-site-design #main .sns-share .social-icon,
  body.ryoma-site-design #main .sns-follow .social-icon {font-size: 20px !important;}
}

/* v1.4.0 — readable one-column mobile-first editorial homepage and h-tag icons */
body.ryoma-site-design {
  --ryoma-shadow: url('ryoma-shadow.svg');
}
body.ryoma-site-design #main h1.entry-title,
body.ryoma-site-design #main .entry-content h1,
body.ryoma-site-design #main .entry-content h2,
body.ryoma-site-design #main .entry-content h3,
body.ryoma-site-design #main .entry-content h4,
body.ryoma-site-design #main .ryoma-front-intro h1,
body.ryoma-site-design #main .ryoma-front-sectionhead h2,
body.ryoma-site-design #main .ryoma-front-vision h2,
body.ryoma-site-design #main .ryoma-footer-guide h2,
body.ryoma-site-design #main .ryoma-front-social h2 {position:relative;}
body.ryoma-site-design #main h1.entry-title,
body.ryoma-site-design #main .entry-content h1,
body.ryoma-site-design #main .entry-content h2,
body.ryoma-site-design #main .entry-content h3,
body.ryoma-site-design #main .entry-content h4 {
  padding-left: clamp(49px, 6vw, 66px) !important;
  overflow-wrap: anywhere;
  word-break: normal;
}
body.ryoma-site-design #main h1.entry-title::before,
body.ryoma-site-design #main .entry-content :is(h1,h2,h3,h4)::before,
body.ryoma-site-design #main .ryoma-front-intro h1::before,
body.ryoma-site-design #main .ryoma-front-sectionhead h2::before,
body.ryoma-site-design #main .ryoma-front-vision h2::before,
body.ryoma-site-design #main .ryoma-footer-guide h2::before,
body.ryoma-site-design #main .ryoma-front-social h2::before {
  content: '';
  position: absolute;
  display: block;
  width: 30px;
  height: 40px;
  left: 11px;
  top: .53em;
  transform: translateY(-13%);
  background: var(--ryoma-shadow) center / contain no-repeat;
  pointer-events: none;
}
body.ryoma-site-design #main .entry-content h3,
body.ryoma-site-design #main .entry-content h4 {font-size:clamp(18px,2.1vw,23px);}
body.ryoma-site-design #main .entry-content h4 {
  margin:1.9em 0 .8em;
  padding-top:.3em;
  padding-bottom:.5em;
  border-bottom:1px dashed var(--ryoma-edge);
  color:#1c343c;
}
body.ryoma-site-design #main .entry-content h3::before,
body.ryoma-site-design #main .entry-content h4::before {width:25px;height:33px;top:.2em;left:13px;transform:none;}

/* Home: editorial lead -> 2 latest posts -> original illustration -> categories -> share. */
body.ryoma-site-design .ryoma-front-main {overflow:hidden;}
body.ryoma-site-design .ryoma-front-intro {max-width:960px;margin:0 auto clamp(35px,5vw,68px);}
body.ryoma-site-design .ryoma-front-intro--default {padding:14px 0;}
body.ryoma-site-design .ryoma-front-intro--default h1 {
  font-family:'Yu Mincho','Hiragino Mincho ProN',serif;
  font-weight:700;
  line-height:1.6;
  color:#18333f;
  font-size:clamp(26px,3.15vw,42px);
  margin:.35em 0 .55em;
  padding-left:60px;
}
body.ryoma-site-design .ryoma-front-intro--default>p:last-child {font-size:clamp(16px,1.9vw,19px);line-height:1.95;max-width:720px;}
body.ryoma-site-design .ryoma-kicker {color:#9f7b43;letter-spacing:.20em;font:700 11px/1.8 Arial,sans-serif;margin:0 0 10px;}
body.ryoma-site-design .ryoma-front-recent {max-width:1040px;margin:0 auto;padding:10px 0 48px;}
body.ryoma-site-design .ryoma-front-sectionhead {display:flex;align-items:baseline;gap:22px;margin-bottom:23px;padding-bottom:14px;border-bottom:1px solid var(--ryoma-edge);}
body.ryoma-site-design .ryoma-front-sectionhead h2 {
  font-family:'Yu Mincho','Hiragino Mincho ProN',serif;
  color:#182e36;font-size:clamp(25px,3vw,34px);padding-left:47px;margin:0;
}
body.ryoma-site-design .ryoma-front-sectionhead h2::before {top:.04em;left:0;width:32px;height:39px;transform:none;}
body.ryoma-site-design .ryoma-front-sectionhead>p {color:#68716f;font-size:14px;margin:0;}
body.ryoma-site-design .ryoma-front-post-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;}
body.ryoma-site-design .ryoma-front-post-card {background:#fffdf8;border:1px solid var(--ryoma-edge);border-radius:3px;overflow:hidden;min-width:0;box-shadow:0 6px 20px rgba(29,38,39,.06);}
body.ryoma-site-design .ryoma-front-post-card__link {display:block;text-decoration:none!important;color:inherit!important;height:100%;}
body.ryoma-site-design .ryoma-front-post-card__image {aspect-ratio:16/9;overflow:hidden;background:#1c3540;}
body.ryoma-site-design .ryoma-front-post-card__image img {display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s ease;}
body.ryoma-site-design .ryoma-front-post-card__link:hover img {transform:scale(1.025);}
body.ryoma-site-design .ryoma-front-post-card__body {padding:20px 22px 22px;}
body.ryoma-site-design .ryoma-front-post-card__meta {display:block;font-size:12px;letter-spacing:.08em;color:#726c61;margin-bottom:9px;}
body.ryoma-site-design .ryoma-front-post-card h3 {font-family:'Yu Mincho','Hiragino Mincho ProN',serif;color:#23363c;font-size:clamp(19px,2vw,23px);line-height:1.6;margin:0 0 12px;}
body.ryoma-site-design .ryoma-front-post-card h3::before {display:none!important;}
body.ryoma-site-design .ryoma-front-post-card__body p {font-size:15px;line-height:1.85;color:#4c5555;margin:0 0 12px;overflow-wrap:anywhere;}
body.ryoma-site-design .ryoma-front-post-card__more {font-size:14px;font-weight:700;color:#8b642d;}
body.ryoma-site-design .ryoma-front-more-link {text-align:right;margin-top:17px;}
body.ryoma-site-design .ryoma-front-more-link a {font-size:14px;color:#705025;border-bottom:1px solid #c0a36c;display:inline-block;padding:5px 0;}

body.ryoma-site-design .ryoma-front-vision {position:relative;isolation:isolate;overflow:hidden;margin:12px -59px 54px;min-height:420px;background:#18313b;color:#fff9e9;}
body.ryoma-site-design .ryoma-front-vision>img {display:block;width:100%;height:470px;object-fit:cover;object-position:center 45%;filter:saturate(.8) sepia(.12);}
body.ryoma-site-design .ryoma-front-vision::before {content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(13,27,33,.86) 0%,rgba(13,27,33,.70) 35%,rgba(13,27,33,.07) 79%);pointer-events:none;}
body.ryoma-site-design .ryoma-front-vision__overlay {position:absolute;z-index:2;inset:auto auto 0 0;padding:36px clamp(26px,5.5vw,76px) 44px;max-width:610px;}
body.ryoma-site-design .ryoma-front-vision h2 {font-family:'Yu Mincho','Hiragino Mincho ProN',serif;color:#fff3d7;font-size:clamp(27px,3.1vw,42px);line-height:1.5;padding-left:50px;margin:.1em 0 .5em;text-shadow:0 2px 13px #0009;}
body.ryoma-site-design .ryoma-front-vision h2::before {left:0;top:.11em;width:32px;height:43px;transform:none;}
body.ryoma-site-design .ryoma-front-vision__overlay>p:not(.ryoma-kicker) {font-size:clamp(15px,1.7vw,18px);line-height:1.8;color:#f3e9d7;margin:0 0 18px;}
body.ryoma-site-design .ryoma-front-vision__note {display:block;font-size:11px;opacity:.82;letter-spacing:.01em;}

/* Move footer-like guide into body before Cocoon/share controls. */
body.ryoma-site-design #main .ryoma-footer-guide {padding:42px 44px;margin:36px -20px 42px;border-radius:2px;}
body.ryoma-site-design #main .ryoma-footer-guide h2 {padding-left:46px;}
body.ryoma-site-design #main .ryoma-footer-guide h2::before {left:0;top:-.1em;width:30px;height:40px;transform:none;}
body.ryoma-site-design .ryoma-front-guide-wrap .ryoma-footer-guide {margin:0 -59px 0;padding:50px 60px;}
body.ryoma-site-design #main .ryoma-front-guide-wrap .ryoma-footer-guide__links a {font-size:15px;min-height:44px;display:flex;align-items:center;}
body.ryoma-site-design .ryoma-front-social {max-width:1040px;margin:40px auto 0;padding:16px 0 7px;}
body.ryoma-site-design .ryoma-front-social__group {margin:0 0 32px;}
body.ryoma-site-design .ryoma-front-social h2 {font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-size:24px;line-height:1.5;color:#17313a;margin:0 0 19px;padding-left:45px;}
body.ryoma-site-design .ryoma-front-social h2::before {left:0;top:.03em;width:29px;height:38px;transform:none;}
body.ryoma-site-design .ryoma-front-social__buttons {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
body.ryoma-site-design .ryoma-front-social__buttons a {display:flex;align-items:center;justify-content:center;min-height:52px;border-radius:4px;color:#fff!important;text-decoration:none!important;font-weight:800;font-size:24px;}
body.ryoma-site-design .ryoma-front-social__x {background:#111;}
body.ryoma-site-design .ryoma-front-social__facebook {background:#395d9a;}
body.ryoma-site-design .ryoma-front-social__line {background:#08ba22;font-size:15px!important;}
body.ryoma-site-design .ryoma-front-social__group>p {font-size:15px;color:#555e5e;}
body.ryoma-site-design .ryoma-front-rss {display:inline-flex;align-items:center;padding:13px 21px;border:1px solid #ad945c;min-height:47px;color:#684922!important;background:#fffcf2;border-radius:3px;text-decoration:none!important;font-weight:700;font-size:15px;}
body.ryoma-site-design .ryoma-front-rss:hover {background:#f1e3c5;}

@media (max-width: 767px) {
 body.ryoma-site-design .ryoma-front-main {padding:20px 16px 32px!important;}
 body.ryoma-site-design .ryoma-front-intro {margin-bottom:30px;}
 body.ryoma-site-design .ryoma-front-post-grid {grid-template-columns:1fr;gap:17px;}
 body.ryoma-site-design .ryoma-front-sectionhead {display:block;margin-bottom:17px;}
 body.ryoma-site-design .ryoma-front-sectionhead>p {margin:9px 0 0;font-size:13px;}
 body.ryoma-site-design .ryoma-front-post-card__body {padding:16px 16px 19px;}
 body.ryoma-site-design .ryoma-front-post-card__body p {font-size:15px;line-height:1.75;}
 body.ryoma-site-design .ryoma-front-recent {padding-bottom:26px;}
 body.ryoma-site-design .ryoma-front-vision {min-height:0;margin:10px -16px 32px;}
 body.ryoma-site-design .ryoma-front-vision>img {height:auto;min-height:420px;max-height:540px;object-fit:cover;}
 body.ryoma-site-design .ryoma-front-vision::before {background:linear-gradient(0deg,rgba(11,24,28,.91) 0%,rgba(11,24,28,.62) 47%,rgba(11,24,28,0) 100%);}
 body.ryoma-site-design .ryoma-front-vision__overlay {padding:26px 23px 27px;max-width:100%;}
 body.ryoma-site-design .ryoma-front-vision h2 {font-size:clamp(25px,7vw,35px);padding-left:44px;}
 body.ryoma-site-design .ryoma-front-vision h2::before {width:27px;height:36px;}
 body.ryoma-site-design .ryoma-front-vision__overlay>p:not(.ryoma-kicker) {font-size:15px;}
 body.ryoma-site-design .ryoma-pc-only {display:none;}
 body.ryoma-site-design .ryoma-front-guide-wrap .ryoma-footer-guide {padding:32px 19px;margin:0 -16px;}
 body.ryoma-site-design #main .ryoma-footer-guide {padding:30px 19px;margin:26px -16px 30px;}
 body.ryoma-site-design #main .ryoma-footer-guide h2 {font-size:23px;padding-left:42px;}
 body.ryoma-site-design .ryoma-footer-guide__links {display:grid;grid-template-columns:1fr 1fr;gap:9px;}
 body.ryoma-site-design .ryoma-footer-guide__links li {min-width:0;}
 body.ryoma-site-design .ryoma-footer-guide__links a {display:flex;align-items:center;justify-content:center;text-align:center;min-height:46px;padding:9px 7px;font-size:13px;line-height:1.5;box-sizing:border-box;}
 body.ryoma-site-design .ryoma-front-social {margin-top:31px;}
 body.ryoma-site-design .ryoma-front-social h2 {font-size:21px;}
 body.ryoma-site-design .ryoma-front-social__buttons a {min-height:47px;}
 body.ryoma-site-design #main h1.entry-title,
 body.ryoma-site-design #main .entry-content :is(h1,h2,h3,h4) {padding-left:45px!important;}
 body.ryoma-site-design #main h1.entry-title::before,
 body.ryoma-site-design #main .entry-content :is(h1,h2,h3,h4)::before {width:25px;height:35px;left:8px;top:.55em;}
 body.ryoma-site-design #main .entry-content h3::before,
 body.ryoma-site-design #main .entry-content h4::before {top:.18em;}
 body.ryoma-site-design .entry-content img {max-width:100%;height:auto;}
 body.ryoma-site-design #main a {overflow-wrap:anywhere;}
}
@media (max-width: 360px) {
 body.ryoma-site-design .ryoma-footer-guide__links {grid-template-columns:1fr;}
 body.ryoma-site-design .ryoma-front-vision>img {min-height:380px;}
}
@media (prefers-reduced-motion: reduce) {
 body.ryoma-site-design .ryoma-front-post-card__image img {transition:none;}
}

/* v1.4.0 contrast and long-label refinement after mobile layout check. */
body.ryoma-site-design #main .ryoma-footer-guide__links a,
body.ryoma-site-design #main a.ryoma-footer-guide__link {color:#f5e9d0!important;text-decoration:none!important;}
body.ryoma-site-design #main .ryoma-footer-guide__links a:hover,
body.ryoma-site-design #main .ryoma-footer-guide__links a:focus-visible {color:#fff!important;outline-offset:3px;border-color:#dfbd7d;}
@media (max-width: 540px) {
 body.ryoma-site-design .ryoma-footer-guide__links {grid-template-columns:1fr;gap:9px;}
 body.ryoma-site-design #main .ryoma-footer-guide__links a {justify-content:flex-start;padding-inline:16px;min-height:48px;text-align:left;font-size:14px;}
}


/* v1.4.1 — align Japanese heading letters with the gold silhouette.
 * Nudge the text down a few pixels while preserving the heading's total
 * vertical padding wherever both edges were defined in v1.4.0.
 * This is presentation-only: no post content or heading tags are modified.
 */
body.ryoma-site-design #main {
  --ryoma-heading-letter-nudge: 6px;
}
body.ryoma-site-design #main .entry-content h2 {
  padding-top: calc(.58em + var(--ryoma-heading-letter-nudge)) !important;
  padding-bottom: calc(.58em - var(--ryoma-heading-letter-nudge)) !important;
}
body.ryoma-site-design #main .entry-content h3 {
  padding-top: var(--ryoma-heading-letter-nudge) !important;
  padding-bottom: max(0px, calc(.5em - var(--ryoma-heading-letter-nudge))) !important;
}
body.ryoma-site-design #main .entry-content h4 {
  padding-top: calc(.3em + var(--ryoma-heading-letter-nudge)) !important;
  padding-bottom: max(0px, calc(.5em - var(--ryoma-heading-letter-nudge))) !important;
}
/* Also make the title's glyphs sit slightly lower against the silhouette. */
body.ryoma-site-design #main h1.entry-title {
  padding-top: var(--ryoma-heading-letter-nudge) !important;
  padding-bottom: calc(23px - var(--ryoma-heading-letter-nudge)) !important;
}
/* Front-page headings (editorial introduction, categories, and sharing). */
body.ryoma-site-design #main .ryoma-front-intro h1,
body.ryoma-site-design #main .ryoma-front-sectionhead h2,
body.ryoma-site-design #main .ryoma-front-vision h2,
body.ryoma-site-design #main .ryoma-footer-guide h2,
body.ryoma-site-design #main .ryoma-front-social h2 {
  padding-top: var(--ryoma-heading-letter-nudge);
}
@media (max-width: 767px) {
  body.ryoma-site-design #main { --ryoma-heading-letter-nudge: 4px; }
}


/* v1.4.2 — refine Japanese heading baselines and guide section.
   The Cocoon article H2 remains the existing green band.
   H3/H4 use thin gold underlines and larger silhouettes that touch the rule.
   Scoped to the existing design class; no content/taxonomy is changed. */
body.ryoma-site-design #main {
  --ryoma-heading-letter-nudge: 9px;
}
/* Article H2: retain the dark-green bar and gold left rule;
   place the silhouette inside it, centered vertically. */
body.ryoma-site-design #main .entry-content h2 {
  padding-top: calc(.58em + var(--ryoma-heading-letter-nudge)) !important;
  padding-bottom: calc(.58em - var(--ryoma-heading-letter-nudge)) !important;
  border-bottom: 0 !important;
  box-shadow: 0 5px 16px rgba(29,54,62,.10);
}
body.ryoma-site-design #main .entry-content h2::before {
  top: 50% !important;
  left: 13px !important;
  bottom: auto !important;
  width: 33px !important;
  height: 45px !important;
  transform: translateY(-50%) !important;
}
/* From H3, move to elegant underlined headings. Let feet of the silhouette
   meet the underline while the letters sit slightly lower. */
body.ryoma-site-design #main .entry-content h3,
body.ryoma-site-design #main .entry-content h4 {
  background: transparent !important;
  background-image: none !important;
  border-left: none !important;
  border-right: none !important;
  border-top: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding-left: clamp(50px, 6vw, 61px) !important;
  color: #1e3941 !important;
}
body.ryoma-site-design #main .entry-content h3 {
  padding-top: calc(.32em + var(--ryoma-heading-letter-nudge)) !important;
  padding-bottom: 5px !important;
  border-bottom: 2px solid #c3a469 !important;
  line-height: 1.52;
}
body.ryoma-site-design #main .entry-content h4 {
  padding-top: calc(.25em + var(--ryoma-heading-letter-nudge)) !important;
  padding-bottom: 5px !important;
  border-bottom: 1px solid #d6bf95 !important;
  line-height: 1.55;
}
body.ryoma-site-design #main .entry-content h3::before {
  left: 10px !important;
  top: auto !important;
  bottom: -1px !important;
  width: 34px !important;
  height: 46px !important;
  transform: none !important;
}
body.ryoma-site-design #main .entry-content h4::before {
  left: 12px !important;
  top: auto !important;
  bottom: -1px !important;
  width: 30px !important;
  height: 40px !important;
  transform: none !important;
}
/* Heading 1: bring the silhouette down close to its underline too. */
body.ryoma-site-design #main h1.entry-title {
  padding-top: 10px !important;
  padding-bottom: 11px !important;
}
body.ryoma-site-design #main h1.entry-title::before {
  top: auto !important;
  bottom: 0 !important;
  width: 37px !important;
  height: 49px !important;
  transform: none !important;
}
/* Homepage headings: the text can sit lower, but the icon is centered to
   each title, not left hanging above it. */
body.ryoma-site-design #main .ryoma-front-intro h1,
body.ryoma-site-design #main .ryoma-front-sectionhead h2,
body.ryoma-site-design #main .ryoma-front-vision h2,
body.ryoma-site-design #main .ryoma-front-social h2 {
  padding-top: var(--ryoma-heading-letter-nudge) !important;
}
body.ryoma-site-design #main .ryoma-front-intro h1::before,
body.ryoma-site-design #main .ryoma-front-sectionhead h2::before,
body.ryoma-site-design #main .ryoma-front-vision h2::before,
body.ryoma-site-design #main .ryoma-front-social h2::before {
  top: 50% !important;
  transform: translateY(-50%) !important;
}
/* '物語をたどる' is intentionally plain: remove silhouette, left rule and
   inherited article-H2 green band in post bodies and the homepage alike. */
body.ryoma-site-design .ryoma-footer-guide h2,
body.ryoma-site-design #main .ryoma-footer-guide h2,
body.ryoma-site-design #main .entry-content .ryoma-footer-guide h2 {
  background: transparent !important;
  background-image: none !important;
  color: #f6eddb !important;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 0 11px !important;
  font-size: clamp(24px, 2.6vw, 30px);
  line-height: 1.5;
}
body.ryoma-site-design .ryoma-footer-guide h2::before,
body.ryoma-site-design #main .ryoma-footer-guide h2::before,
body.ryoma-site-design #main .entry-content .ryoma-footer-guide h2::before {
  content: none !important;
  display: none !important;
  background: none !important;
}
/* Remove any globally injected pseudo after decoration, if present. */
body.ryoma-site-design #main .ryoma-footer-guide h2::after {content:none!important;display:none!important;}
@media (max-width: 767px) {
  body.ryoma-site-design #main { --ryoma-heading-letter-nudge: 7px; }
  body.ryoma-site-design #main .entry-content h2 {
    padding-left: 50px !important;
  }
  body.ryoma-site-design #main .entry-content h2::before {
    left: 10px !important;
    width: 29px !important;
    height: 39px !important;
  }
  body.ryoma-site-design #main .entry-content h3,
  body.ryoma-site-design #main .entry-content h4 {
    padding-left: 45px !important;
  }
  body.ryoma-site-design #main .entry-content h3::before {
    left: 7px !important;
    width: 30px !important;
    height: 40px !important;
  }
  body.ryoma-site-design #main .entry-content h4::before {
    left: 9px !important;
    width: 26px !important;
    height: 35px !important;
  }
  body.ryoma-site-design #main h1.entry-title::before {
    width: 28px !important;
    height: 39px !important;
  }
  body.ryoma-site-design #main .entry-content .ryoma-footer-guide h2,
  body.ryoma-site-design #main .ryoma-footer-guide h2 {padding:0!important;font-size:24px;}
}


/* v1.4.3 — clean article H1 (no silhouette), moderately wider one-column layout.
   All changes are CSS-only, scoped to the enabled site theme. H2–H4 unchanged. */
/* A little wider on desktop: 1130px -> 1210px. Keep mobile edges readable. */
@media (min-width: 768px) {
  body.ryoma-site-design #content-in.content-in {
    max-width: 1210px !important;
    width: calc(100% - 40px) !important;
  }
  body.ryoma-site-design #main.main {
    padding: clamp(30px, 3.55vw, 48px) !important;
  }
  body.ryoma-site-design .entry-content,
  body.ryoma-site-design .article-body {
    max-width: 985px;
  }
  /* Keep full-bleed feature/category blocks aligned with the new inner edge. */
  body.ryoma-site-design .ryoma-front-vision {
    margin-left: -48px;
    margin-right: -48px;
  }
  body.ryoma-site-design .ryoma-front-guide-wrap .ryoma-footer-guide {
    margin-left: -48px;
    margin-right: -48px;
  }
  body.ryoma-site-design .ryoma-front-intro { max-width: 1020px; }
  body.ryoma-site-design .ryoma-front-recent,
  body.ryoma-site-design .ryoma-front-social { max-width: 1080px; }
}
/* H1 = title, so reserve the Ryoma silhouette for section headings H2–H4. */
body.ryoma-site-design #main h1.entry-title::before,
body.ryoma-site-design #main .entry-content h1::before,
body.ryoma-site-design #main .ryoma-front-intro h1::before {
  content: none !important;
  display: none !important;
  background-image: none !important;
}
body.ryoma-site-design #main h1.entry-title,
body.ryoma-site-design #main .entry-title {
  box-sizing: border-box;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto 26px;
  padding: 0 0 15px !important;
  font-size: clamp(25px, 2.27vw, 31px) !important;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: .012em;
  overflow-wrap: break-word;
  word-break: normal;
  text-wrap: pretty;
}
body.ryoma-site-design #main .entry-content h1 {
  padding-left: 0 !important;
  overflow-wrap: break-word;
  word-break: normal;
}
body.ryoma-site-design #main .ryoma-front-intro h1 {
  padding-left: 0 !important;
}
@media (max-width: 767px) {
  body.ryoma-site-design #main h1.entry-title,
  body.ryoma-site-design #main .entry-title {
    max-width: 100%;
    margin-bottom: 20px;
    padding: 0 0 14px !important;
    font-size: clamp(21px, 5.6vw, 25px) !important;
    line-height: 1.5;
    letter-spacing: .01em;
    text-wrap: pretty;
  }
  body.ryoma-site-design #main .ryoma-front-intro h1,
  body.ryoma-site-design #main .entry-content h1 {
    padding-left: 0 !important;
  }
}


/* v1.4.4 — heading micro-alignment; shared visual+guide on top and post end.
   Presentation only. Existing content, media, categories and permalinks stay intact. */
/* Only real article H2 keeps the silhouette within its green header band. */
body.ryoma-site-design #main .entry-content h2:not(.ryoma-footer-guide h2):not(.ryoma-front-vision h2)::before {
  top: calc(50% + 5px) !important;
  transform: translateY(-50%) !important;
}
/* Move H3 lettering slightly lower without moving the foot of its silhouette
   or the gold baseline. Top +3 / bottom -3 preserves overall heading height. */
body.ryoma-site-design #main .entry-content h3 {
  padding-top: calc(.32em + var(--ryoma-heading-letter-nudge) + 3px) !important;
  padding-bottom: 2px !important;
}
/* The image and the category guide are editorial modules, not article headings:
   no Ryoma emblem, no inherited green band or gold heading border. */
body.ryoma-site-design #main .ryoma-front-vision h2,
body.ryoma-site-design #main .entry-content .ryoma-front-vision h2 {
  padding: 0 !important;
  padding-left: 0 !important;
  margin: .14em 0 .55em !important;
  background: transparent !important;
  background-image: none !important;
  color: #fff3d7 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-family: 'Yu Mincho','Hiragino Mincho ProN',serif;
  font-size: clamp(27px, 3.1vw, 42px) !important;
  line-height: 1.5 !important;
  text-shadow: 0 2px 13px #0009;
}
body.ryoma-site-design #main .ryoma-front-vision h2::before,
body.ryoma-site-design #main .entry-content .ryoma-front-vision h2::before,
body.ryoma-site-design #main .ryoma-front-vision h2::after {
  content: none !important;
  display: none !important;
  background: none !important;
}
body.ryoma-site-design #main .ryoma-footer-guide h2::before,
body.ryoma-site-design #main .ryoma-footer-guide h2::after {
  content: none !important;
  display: none !important;
}
/* Article-end module has exactly the same panel content and treatments as TOP.
   Break it out gently beyond the narrower reading column on desktop. */
body.ryoma-site-design #main .entry-content .ryoma-article-end-sections {
  box-sizing: border-box;
  position: relative;
  width: min(1100px, calc(100vw - 88px));
  max-width: none;
  left: 50%;
  transform: translateX(-50%);
  margin: clamp(52px, 6vw, 74px) 0 36px;
  clear: both;
}
body.ryoma-site-design #main .ryoma-article-end-sections .ryoma-front-vision {
  margin: 0 0 38px !important;
  border-radius: 2px;
  min-height: 0;
}
body.ryoma-site-design #main .ryoma-article-end-sections .ryoma-front-vision > img {
  width: 100%;
  height: 470px;
  display: block;
  object-fit: cover;
  object-position: center 45%;
}
body.ryoma-site-design #main .ryoma-article-end-sections .ryoma-footer-guide {
  margin: 0 !important;
  padding: 50px 60px !important;
  border-radius: 2px;
}
/* The categories always carry the same navy+gold contrast on TOP and posts. */
body.ryoma-site-design #main .ryoma-footer-guide {
  background: #142932 !important;
  color: #ede5d2 !important;
  border-top: 4px solid #b59659 !important;
}
body.ryoma-site-design #main .ryoma-footer-guide__links a {
  color: #f5e9d0 !important;
  background: transparent !important;
  border: 1px solid #7e806e !important;
}
body.ryoma-site-design #main .ryoma-footer-guide__links a:hover,
body.ryoma-site-design #main .ryoma-footer-guide__links a:focus-visible {
  color: #fff !important;
  background: #26434b !important;
  border-color: #dfbd7d !important;
}
@media (max-width: 767px) {
  body.ryoma-site-design #main .entry-content h2:not(.ryoma-footer-guide h2):not(.ryoma-front-vision h2)::before {
    top: calc(50% + 3px) !important;
  }
  body.ryoma-site-design #main .entry-content h3 {
    padding-top: calc(.32em + var(--ryoma-heading-letter-nudge) + 2px) !important;
    padding-bottom: 3px !important;
  }
  body.ryoma-site-design #main .entry-content .ryoma-article-end-sections {
    width: calc(100% + 38px);
    max-width: calc(100vw - 24px);
    margin-top: 45px;
    margin-bottom: 28px;
  }
  body.ryoma-site-design #main .ryoma-article-end-sections .ryoma-front-vision {
    margin: 0 0 25px !important;
  }
  body.ryoma-site-design #main .ryoma-article-end-sections .ryoma-front-vision > img {
    height: auto;
    min-height: 380px;
    max-height: 520px;
    object-fit: cover;
  }
  body.ryoma-site-design #main .ryoma-front-vision h2,
  body.ryoma-site-design #main .entry-content .ryoma-front-vision h2 {
    font-size: clamp(25px, 7vw, 35px) !important;
  }
  body.ryoma-site-design #main .ryoma-article-end-sections .ryoma-footer-guide {
    padding: 32px 19px !important;
  }
}
@media (max-width: 400px) {
  body.ryoma-site-design #main .entry-content .ryoma-article-end-sections {
    width: calc(100% + 36px);
  }
}
