  /* カテゴリ絞り込みフィールド（外枠） */
  .news-filter-field {
      background-color: #f8fafc;
      border: 1px solid #e2e8f0;
      border-radius: 6px;
      padding: 18px 20px;
      margin-bottom: 28px;
      display: flex;
      flex-direction: column;
      gap: 12px;
  }

  .news-filter-label {
      font-size: 0.8rem;
      font-weight: bold;
      color: #475569;
      letter-spacing: 0.05em;
      display: flex;
      align-items: center;
      gap: 6px;
  }

  .news-filter-label::before {
      content: "";
      display: inline-block;
      width: 3px;
      height: 14px;
      background-color: currentColor;
      border-radius: 2px;
  }

  .news-filter-buttons {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
  }

  /* サイトデザインに馴染む端正なボタン */
  .filter-btn {
      appearance: none;
      background-color: #ffffff;
      border: 1px solid #cbd5e1;
      color: #334155;
      padding: 7px 16px;
      border-radius: 4px;
      font-size: 0.85rem;
      font-weight: 500;
      font-family: inherit;
      cursor: pointer;
      transition: all 0.15s ease;
  }

  .filter-btn:hover {
      border-color: #64748b;
      background-color: #f1f5f9;
      color: #0f172a;
  }

  /* 選択中のボタン（サイトの濃紺/ダークトーンに統一） */
  .filter-btn.active {
      background-color: #0f172a;
      border-color: #0f172a;
      color: #ffffff;
      font-weight: bold;
  }

  :root {
      --blue: #0789df;
      --blue-dark: #0067ad;
      --blue-pale: #eaf6fd;
      --ink: #172733;
      --slate: #536675;
      --muted: #748492;
      --line: #dce5ea;
      --wash: #f5f8fa;
      --white: #fff;
      --orange: #d96b28;
      --footer: #263c4b;
      --shadow: 0 12px 32px rgba(26, 57, 76, .09)
  }

  * {
      box-sizing: border-box
  }

  html {
      scroll-behavior: smooth
  }

  body {
      margin: 0;
      background: #fff;
      color: var(--ink);
      font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", "Meiryo", system-ui, sans-serif;
      line-height: 1.75;
      -webkit-font-smoothing: antialiased
  }

  a {
      color: inherit
  }

  button {
      font: inherit
  }

  .wrap {
      width: min(1180px, calc(100% - 48px));
      margin-inline: auto
  }

  .utility {
      min-height: 34px;
      background: #f4f6f7;
      border-bottom: 1px solid #e6ebee;
      color: #61717e;
      font-size: 10px;
      letter-spacing: .04em
  }

  .utility .wrap {
      min-height: 34px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px
  }

  .utility-note {
      display: flex;
      align-items: center;
      gap: 8px
  }

  .utility-dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--blue)
  }

  .utility-links {
      display: flex;
      gap: 22px
  }

  .utility a {
      color: inherit;
      text-decoration: none
  }

  .utility a:hover {
      color: var(--blue-dark);
      text-decoration: underline;
      text-underline-offset: 3px
  }

  .site-header {
      position: sticky;
      top: 0;
      z-index: 10;
      background: rgba(255, 255, 255, .97);
      backdrop-filter: blur(12px);
      border-bottom: 1px solid var(--line)
  }

  .brand-row {
      min-height: 87px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 28px
  }

  .brand {
      display: inline-flex;
      align-items: center;
      text-decoration: none
  }

  .brand img {
      display: block;
      width: 310px;
      height: 66px;
      object-fit: cover;
      object-position: center;
      flex: none
  }

  .brand-caption {
      margin-left: 18px;
      padding-left: 18px;
      border-left: 1px solid var(--line);
      color: #778591;
      font-size: 11px;
      line-height: 1.7;
      letter-spacing: .04em
  }

  .header-cta {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      padding: 10px 15px;
      border: 1px solid #cbdbe5;
      border-radius: 4px;
      color: #365266;
      font-size: 11px;
      font-weight: 650;
      text-decoration: none;
      white-space: nowrap;
      transition: background .2s, border-color .2s
  }

  .header-cta:hover {
      border-color: var(--blue);
      background: var(--blue-pale);
      color: var(--blue-dark)
  }

  .header-cta span {
      color: var(--blue);
      font-size: 15px
  }

  .main-nav {
      border-top: 1px solid #edf0f2
  }

  .nav-list {
      display: flex;
      align-items: stretch;
      justify-content: center;
      min-height: 54px
  }

  .nav-tab {
      position: relative;
      min-width: 130px;
      padding: 0 20px;
      border: 0;
      background: none;
      color: #435665;
      font-size: 12px;
      font-weight: 680;
      letter-spacing: .035em;
      cursor: pointer;
      transition: color .18s
  }

  .nav-tab::after {
      position: absolute;
      right: 20px;
      bottom: 0;
      left: 20px;
      height: 3px;
      background: transparent;
      content: ""
  }

  .nav-tab:hover,
  .nav-tab[aria-selected="true"] {
      color: var(--blue-dark)
  }

  .nav-tab[aria-selected="true"]::after {
      background: var(--blue)
  }

  .nav-tab:focus-visible,
  .header-cta:focus-visible,
  .utility a:focus-visible,
  .text-link:focus-visible,
  .card-link:focus-visible {
      outline: 3px solid #38bdf880;
      outline-offset: 3px
  }

  main {
      min-height: 58vh
  }

  .page[hidden] {
      display: none
  }

  .hero {
      position: relative;
      overflow: hidden;
      background: #f3f8fb;
      border-bottom: 1px solid #d9eaf2
  }

  .hero-grid {
      position: relative;
      z-index: 1;
      min-height: 415px;
      display: grid;
      grid-template-columns: 1.15fr .85fr;
      align-items: center;
      gap: 38px;
      padding-block: 55px
  }

  .hero-copy-block {
      max-width: 650px
  }

  .eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      color: var(--blue-dark);
      font-size: 10px;
      font-weight: 760;
      letter-spacing: .17em;
      text-transform: uppercase
  }

  .eyebrow::before {
      width: 23px;
      height: 2px;
      background: var(--blue);
      content: ""
  }

  h1,
  h2,
  h3,
  p {
      margin-top: 0
  }

  .hero h1 {
      margin: 15px 0 17px;
      font-size: clamp(35px, 4.4vw, 55px);
      font-weight: 760;
      letter-spacing: .02em;
      line-height: 1.4
  }

  .hero h1 em {
      color: var(--blue-dark);
      font-style: normal
  }

  .hero-copy {
      max-width: 590px;
      margin-bottom: 25px;
      color: #5c6d79;
      font-size: 13px;
      line-height: 2
  }

  .button-link {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 18px;
      min-width: 190px;
      padding: 12px 16px;
      border: 1px solid var(--blue);
      background: var(--blue);
      color: white;
      font-size: 12px;
      font-weight: 700;
      text-decoration: none;
      transition: background .2s, transform .2s
  }

  .button-link:hover {
      background: var(--blue-dark);
      transform: translateY(-2px)
  }

  .button-link .arrow {
      font-size: 16px;
      line-height: 1
  }

  .hero-index {
      align-self: center;
      width: 100%;
      padding: 22px 24px;
      border: 1px solid #dbe5ea;
      border-top: 3px solid var(--blue);
      background: #fff;
      box-shadow: 0 12px 28px rgba(30, 66, 86, .06)
  }

  .hero-index-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px
  }

  .hero-index-label {
      margin: 0;
      color: var(--blue-dark);
      font-size: 9px;
      font-weight: 760;
      letter-spacing: .15em;
      text-transform: uppercase
  }

  .hero-index-count {
      margin: 0;
      color: #758590;
      font-size: 9px;
      font-weight: 700;
      letter-spacing: .08em
  }

  .hero-index h2 {
      margin: 12px 0 14px;
      font-size: 18px;
      font-weight: 720;
      line-height: 1.55;
      letter-spacing: .02em
  }

  .hero-index-list {
      margin: 0;
      padding: 0;
      list-style: none;
      border-top: 1px solid var(--line)
  }

  .hero-index-list a {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 10px 0;
      border-bottom: 1px solid var(--line);
      color: #3b5060;
      font-size: 11px;
      font-weight: 650;
      text-decoration: none;
      transition: color .18s, padding .18s
  }

  .hero-index-list a:hover {
      padding-inline: 4px;
      color: var(--blue-dark)
  }

  .hero-index-number {
      width: 23px;
      color: var(--blue);
      font-size: 9px;
      font-weight: 780;
      letter-spacing: .08em
  }

  .hero-index-arrow {
      margin-left: auto;
      color: #8a9ba5;
      font-size: 14px
  }

  .hero-index-link {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-top: 14px;
      color: var(--blue-dark);
      font-size: 10px;
      font-weight: 720;
      text-decoration: none
  }

  .hero-index-link:hover {
      text-decoration: underline;
      text-underline-offset: 3px
  }

  .section {
      padding-block: 58px
  }

  .section-soft {
      background: var(--wash)
  }

  .section-head {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      gap: 20px;
      margin-bottom: 21px
  }

  .section-kicker {
      display: block;
      margin-bottom: 6px;
      color: var(--blue-dark);
      font-size: 9px;
      font-weight: 760;
      letter-spacing: .16em;
      text-transform: uppercase
  }

  .section-title {
      margin: 0;
      color: var(--ink);
      font-size: 24px;
      font-weight: 740;
      letter-spacing: .025em;
      line-height: 1.45
  }

  .section-description {
      margin: 8px 0 0;
      color: var(--muted);
      font-size: 11px
  }

  .text-link {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      color: var(--blue-dark);
      font-size: 11px;
      font-weight: 720;
      text-decoration: none;
      white-space: nowrap
  }

  .text-link:hover {
      text-decoration: underline;
      text-underline-offset: 4px
  }

  .news-list {
      border-top: 1px solid var(--line)
  }

  .news-item {
      display: grid;
      grid-template-columns: 112px 88px 1fr 18px;
      align-items: center;
      gap: 15px;
      padding: 17px 5px;
      border-bottom: 1px solid var(--line);
      text-decoration: none;
      transition: padding .18s, color .18s
  }

  .news-item:hover {
      padding-inline: 11px;
      color: var(--blue-dark)
  }

  .news-date {
      color: #748492;
      font-size: 10px;
      font-variant-numeric: tabular-nums;
      letter-spacing: .04em
  }

  .news-category {
      display: inline-block;
      width: max-content;
      padding: 3px 8px;
      border: 1px solid #cfe4ef;
      color: #26749b;
      font-size: 9px;
      font-weight: 680;
      text-align: center
  }

  .news-title {
      font-size: 12px;
      font-weight: 620;
      line-height: 1.7
  }

  .news-arrow {
      color: #8197a4;
      font-size: 16px;
      text-align: right
  }

  .business-grid {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 12px
  }

  .business-card {
      min-height: 188px;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      padding: 20px;
      border: 1px solid var(--line);
      background: #fff;
      text-decoration: none;
      transition: box-shadow .2s, border-color .2s, transform .2s
  }

  .business-card:hover {
      border-color: #9ed4ef;
      box-shadow: var(--shadow);
      transform: translateY(-3px)
  }

  .business-num {
      color: #8a9aa5;
      font-size: 9px;
      font-weight: 760;
      letter-spacing: .14em
  }

  .business-card h3 {
      margin: 17px 0 8px;
      font-size: 15px;
      font-weight: 740;
      line-height: 1.55
  }

  .business-card p {
      margin: 0;
      color: #687985;
      font-size: 11px;
      line-height: 1.85
  }

  .business-card .card-arrow {
      align-self: flex-end;
      margin-top: auto;
      padding-top: 14px;
      color: var(--blue);
      font-size: 16px
  }

  .business-card .business-type {
      display: block;
      margin-top: 10px;
      color: #25769e;
      font-size: 9px;
      font-weight: 700;
      letter-spacing: .05em
  }

  .topic-banner {
      display: grid;
      grid-template-columns: 1.1fr .9fr;
      align-items: center;
      gap: 30px;
      padding: 26px 30px;
      border: 1px solid #d6e6ee;
      background: linear-gradient(110deg, #fff, #f1f8fb)
  }

  .topic-banner h3 {
      margin: 0 0 8px;
      font-size: 18px
  }

  .topic-banner p {
      margin: 0;
      color: #60727e;
      font-size: 11px;
      line-height: 1.9
  }

  .topic-visual {
      min-height: 120px;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 14px;
      background: linear-gradient(120deg, #dff1f8, #f2f9fc);
      color: var(--blue-dark);
      font-size: 10px;
      font-weight: 750;
      letter-spacing: .12em
  }

  .topic-visual span {
      padding: 12px 16px;
      border: 1px solid #bfdfed;
      background: #ffffffd9
  }

  .page-banner {
      padding: 36px 0 31px;
      background: #f2f8fb;
      border-bottom: 1px solid #dceaf0
  }

  .breadcrumb {
      margin-bottom: 12px;
      color: #6c7e8a;
      font-size: 10px
  }

  .page-banner .section-title {
      font-size: 29px
  }

  .content-section {
      padding-block: 34px 68px
  }

  .business-list {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px
  }

  .business-detail {
      position: relative;
      min-height: 176px;
      padding: 23px 25px 20px 78px;
      border: 1px solid var(--line);
      background: white;
      transition: border-color .2s, box-shadow .2s
  }

  .business-detail:hover {
      border-color: #add9ed;
      box-shadow: var(--shadow)
  }

  .business-detail .number {
      position: absolute;
      top: 22px;
      left: 22px;
      color: var(--blue);
      font-size: 11px;
      font-weight: 800;
      letter-spacing: .05em
  }

  .business-detail h3 {
      margin: 0 0 6px;
      font-size: 15px;
      font-weight: 740
  }

  .business-detail .field {
      margin-bottom: 10px;
      color: #31799c;
      font-size: 10px;
      font-weight: 690
  }

  .business-detail p {
      margin: 0;
      color: #5e6f7b;
      font-size: 11px;
      line-height: 1.9
  }

  .news-archive {
      border-top: 1px solid var(--line)
  }

  .news-archive .news-item {
      grid-template-columns: 112px 88px 1fr 18px;
      padding-block: 20px
  }

  .project-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px
  }

  .project-card {
      padding: 24px;
      border: 1px solid var(--line);
      background: #fff
  }

  .project-label {
      display: inline-block;
      margin-bottom: 12px;
      color: var(--blue-dark);
      font-size: 9px;
      font-weight: 760;
      letter-spacing: .13em
  }

  .project-card h3 {
      margin: 0 0 11px;
      font-size: 17px
  }

  .project-card p {
      margin: 0;
      color: #5e6f7b;
      font-size: 11px;
      line-height: 2
  }

  .project-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      margin-top: 16px
  }

  .project-tags span {
      padding: 4px 8px;
      background: #f0f6f9;
      color: #5b7482;
      font-size: 9px
  }

  .corporate-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      border-top: 1px solid var(--line)
  }

  .corporate-row {
      display: grid;
      grid-template-columns: 145px 1fr;
      gap: 18px;
      padding: 17px 16px;
      border-bottom: 1px solid var(--line)
  }

  .corporate-row:nth-child(odd) {
      border-right: 1px solid var(--line)
  }

  .corporate-label {
      color: #61727e;
      font-size: 11px;
      font-weight: 680
  }

  .corporate-value {
      color: #354b59;
      font-size: 11px
  }

  .disclaimer {
      margin-top: 24px;
      padding: 15px 18px;
      border-left: 3px solid #a7d6eb;
      background: #f3f9fc;
      color: #5f7380;
      font-size: 10px;
      line-height: 1.9
  }

  .site-footer {
      padding: 29px 0 22px;
      background: var(--footer);
      color: #e5edf2
  }

  .footer-inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px
  }

  .footer-name {
      margin: 0;
      font-size: 13px;
      font-weight: 720;
      letter-spacing: .06em
  }

  .footer-en {
      margin: 3px 0 0;
      color: #bdcbd4;
      font-size: 9px;
      letter-spacing: .09em
  }

  .footer-note {
      max-width: 600px;
      margin: 0;
      color: #c7d3db;
      font-size: 9px;
      line-height: 1.8;
      text-align: right
  }

  .copyright {
      margin: 19px 0 0;
      padding-top: 12px;
      border-top: 1px solid #ffffff24;
      color: #aab9c3;
      font-size: 9px;
      letter-spacing: .03em;
      text-align: center
  }

  @media(max-width:800px) {
      .wrap {
          width: min(100% - 34px, 650px)
      }

      .brand-row {
          min-height: 76px
      }

      .brand img {
          width: 250px;
          height: 56px
      }

      .brand-caption {
          display: none
      }

      .header-cta {
          padding: 8px 10px;
          font-size: 10px
      }

      .nav-list {
          justify-content: flex-start;
          overflow-x: auto;
          scrollbar-width: none
      }

      .nav-list::-webkit-scrollbar {
          display: none
      }

      .nav-tab {
          min-width: max-content;
          padding: 0 17px;
          font-size: 11px
      }

      .nav-tab::after {
          right: 17px;
          left: 17px
      }

      .hero-grid {
          min-height: auto;
          grid-template-columns: 1fr;
          gap: 0;
          padding-block: 40px 24px
      }

      .hero h1 {
          font-size: clamp(34px, 8vw, 48px)
      }

      .hero-copy {
          font-size: 12px
      }

      .hero-index {
          margin-top: 24px;
          padding: 20px 22px
      }

      .section {
          padding-block: 43px
      }

      .section-head {
          align-items: flex-start
      }

      .section-title {
          font-size: 21px
      }

      .business-grid {
          grid-template-columns: 1fr 1fr
      }

      .business-card {
          min-height: 174px;
          padding: 17px
      }

      .topic-banner {
          grid-template-columns: 1fr;
          gap: 18px;
          padding: 22px
      }

      .page-banner {
          padding: 28px 0 24px
      }

      .page-banner .section-title {
          font-size: 25px
      }

      .content-section {
          padding-block: 27px 52px
      }

      .business-detail {
          padding-left: 64px
      }

      .business-detail .number {
          left: 18px
      }

      .footer-inner {
          align-items: flex-start;
          flex-direction: column
      }

      .footer-note {
          text-align: left
      }
  }

  @media(max-width:520px) {
      .utility .wrap {
          font-size: 9px
      }

      .utility-links {
          gap: 12px
      }

      .brand img {
          width: 205px;
          height: 48px
      }

      .header-cta {
          gap: 5px;
          padding: 7px 8px;
          font-size: 9px
      }

      .nav-list {
          margin-inline: -17px;
          padding-inline: 7px
      }

      .nav-tab {
          padding-inline: 12px
      }

      .nav-tab::after {
          right: 12px;
          left: 12px
      }

      .hero-grid {
          padding-top: 33px
      }

      .hero h1 {
          font-size: 34px
      }

      .hero-copy {
          font-size: 11px
      }

      .hero-index {
          padding: 18px
      }

      .hero-index-list a {
          padding: 9px 0
      }

      .section {
          padding-block: 37px
      }

      .section-head {
          gap: 10px
      }

      .section-title {
          font-size: 19px
      }

      .text-link {
          font-size: 10px
      }

      .news-item,
      .news-archive .news-item {
          grid-template-columns: 82px 70px 1fr 12px;
          gap: 8px;
          padding-block: 15px
      }

      .news-date {
          font-size: 9px
      }

      .news-category {
          padding: 3px 5px;
          font-size: 8px
      }

      .news-title {
          font-size: 10px
      }

      .business-grid {
          grid-template-columns: 1fr
      }

      .business-card {
          min-height: 150px
      }

      .business-card h3 {
          margin-top: 12px
      }

      .topic-banner h3 {
          font-size: 16px
      }

      .topic-visual {
          min-height: 92px;
          font-size: 9px
      }

      .business-list,
      .project-grid,
      .corporate-grid {
          grid-template-columns: 1fr
      }

      .business-detail {
          min-height: unset;
          padding: 19px 17px 18px 58px
      }

      .business-detail .number {
          top: 19px;
          left: 15px
      }

      .project-card {
          padding: 20px
      }

      .corporate-row {
          grid-template-columns: 105px 1fr;
          gap: 12px;
          padding: 14px 7px
      }

      .corporate-row:nth-child(odd) {
          border-right: 0
      }

      .footer-note {
          font-size: 9px
      }
  }

  @media(prefers-reduced-motion:reduce) {

      *,
      *::before,
      *::after {
          scroll-behavior: auto !important;
          transition: none !important
      }
  }

  /* 親会社グループバー */
  .parent-group-bar {
      background-color: #0f172a;
      color: #f8fafc;
      font-size: 0.75rem;
      border-bottom: 1px solid #1e293b;
  }

  .parent-group-inner {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding-top: 6px;
      padding-bottom: 6px;
  }

  .parent-group-label {
      font-weight: bold;
      letter-spacing: 0.08em;
      color: #94a3b8;
  }

  .parent-group-link {
      color: #e2e8f0;
      text-decoration: none;
      transition: color 0.15s;
  }

  .parent-group-link:hover {
      color: #ffffff;
      text-decoration: underline;
  }

  /* 企業情報テーブルの枠線と区切り線を確実に表示 */
  .corporate-grid {
      border-top: 1px solid #cbd5e1 !important;
      border-bottom: 1px solid #cbd5e1 !important;
      border-left: 1px solid #cbd5e1 !important;
      border-right: 1px solid #cbd5e1 !important;
  }

  .corporate-row {
      border-bottom: 1px solid #e2e8f0 !important;
  }

  .corporate-row:last-child {
      border-bottom: none !important;
  }

    /* 添付資料エリア全体のデザイン */
  .press-attachment-box {
    margin-top: 48px;
    padding: 28px 24px;
    background-color: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
  }

  .press-attachment-heading {
    font-weight: bold;
    font-size: 0.95rem;
    color: #334155;
    margin: 0 0 20px 0;
    padding-bottom: 10px;
    border-bottom: 1px solid #cbd5e1;
  }

  /* 1枚のときは中央寄せ、2枚以上のときは2列グリッド */
  .press-image-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
    align-items: start;
  }

  .press-image-grid.single-item {
    grid-template-columns: 1fr;
    max-width: 680px;
    margin: 0 auto;
  }

  .press-figure {
    margin: 0;
    text-align: center;
  }

  /* すべての画像を切り抜きなしで「全く同じ大きさの枠」に揃える */
  .press-figure img {
    width: 100% !important;
    aspect-ratio: 16 / 10 !important;
    /* すべての枠の縦横比を統一（4 / 3 に変更も可） */
    height: auto !important;
    object-fit: contain !important;
    /* 切り抜きなしで全体を枠内に収める */
    background-color: #ffffff !important;
    /* 余白部分を綺麗な白にする */
    padding: 8px !important;
    /* 枠のフチに画像がくっつかないよう少し余白を取る */
    box-sizing: border-box !important;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    display: block;
    margin: 0 auto;
    transition: transform 0.2s, box-shadow 0.2s;
  }

  .press-figure a:hover img {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
  }

  .press-caption {
    font-size: 0.8rem;
    color: #64748b;
    margin-top: 8px;
  }

  /* リッチエディタ本文内に直接貼った画像もはみ出し防止 */
  .rich-content img {
    max-width: 100% !important;
    height: auto !important;
    border-radius: 6px;
    margin: 16px 0;
  }