/* ============================================================
   corporate.css — コーポレート下層ページ専用
   ------------------------------------------------------------
   ・共通パーツ（ヘッダー / ドロワー / CTA / フッター / reveal /
     リセット）は top.css に一本化。ここには一切書かない。
   ・全ルールを body.pg-<スラッグ> でスコープしているので、
     ページ間・コーポレートトップへの影響は構造的に起こらない。
   ・SP は max-width:767px（768px にすると 768px で誤爆する）
   ・自動生成: scratchpad/build_css.py
   ============================================================ */


/* ==========================================================
   vision
   ========================================================== */
html:has(body.pg-vision) {
  overflow-x: clip;
}
body.pg-vision {
  overflow-x: clip;
  padding-top: 85px;
}
body.pg-vision .chunk {
  display: inline-block;
}
body.pg-vision .header-cta {
  transition: opacity 0.3s;
}
body.pg-vision .header-cta:hover {
  color: #000;
  box-shadow: inset 0 0 0 1px #000;
}
body.pg-vision .inner {
  width: min(1092px, 100% - 60px);
  margin: 0 auto;
}
body.pg-vision .page-head {
  padding-bottom: min(calc(2.6754% + 15px), 54px);
  background: #fff url(../images/message-head-bg.webp) no-repeat right top / auto 100%;
  box-shadow: inset 0 1px 0 #e8e8e8, inset 0 -1px 0 #e8e8e8;
}
body.pg-vision .page-head-crumb {
  width: fit-content;
  padding-top: min(1.1806%, 17px);
  padding-left: 5.7639%;
  position: relative;
  top: -3px;
  font-family: 'Cormorant Infant', serif;
  font-size: clamp(9px, 0.76389vw, 11px);
  line-height: 1.818182;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
body.pg-vision .page-head-crumb a {
  color: inherit;
  text-decoration: none;
}
body.pg-vision .page-head-crumb a:hover {
  opacity: 0.6;
}
body.pg-vision .page-head-row {
  display: flex;
  align-items: flex-start;
  padding: 0 6.0417% 0 5.7639%;
  position: relative;
  top: 15px;
}
body.pg-vision .page-head-en {
  flex: 0 0 auto;
  margin-top: min(2.6256%, 33px);
  font-family: 'Cormorant Infant', serif;
  font-size: clamp(69.96px, 9.0972vw, 131px);
  font-weight: 400;
  line-height: 0.867405;
  letter-spacing: -0.01em;
  text-transform: uppercase;
}
body.pg-vision .page-head-ja {
  flex: none;
  margin-top: min(6.4362%, 82px);
  margin-left: clamp(21px, 2.7778vw, 40px);
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(10px, 1.1111vw, 16px);
  font-weight: 400;
  line-height: 1.315;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
body.pg-vision .page-head-lead {
  flex: 0 0 auto;
  width: max(21.5748%, 240px);
  margin-top: min(4.34%, 55px);
  margin-left: auto;
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(12px, 1.0417vw, 15px);
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.03em;
  text-align: justify;
}
body.pg-vision .page-nav {
  position: sticky;
  top: 85px;
  z-index: 400;
  background: #fff;
  box-shadow: inset 0 1px 0 #e8e8e8, inset 0 -1px 0 #e8e8e8;
}
body.pg-vision .page-nav ul {
  display: flex;
  gap: 44.75px;
  padding-left: max(30px, 6.25%);
  list-style: none;
}
body.pg-vision .page-nav a {
  display: block;
  padding: 18px 0 17px;
  border-bottom: 1px solid transparent;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(9px, 0.83333vw, 12px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.03em;
  white-space: nowrap;
  transition: opacity 0.3s;
}
body.pg-vision .page-nav a:hover {
  opacity: 0.6;
}
body.pg-vision .page-nav a[aria-current="page"],
body.pg-vision .page-nav a.is-active {
  border-bottom-color: #000;
}
body.pg-vision #history,
body.pg-vision #company {
  scroll-margin-top: 163px;
}
body.pg-vision .sec-head {
  display: flex;
  align-items: center;
}
body.pg-vision .sec-head-en {
  font-family: 'Cormorant Infant', serif;
  font-size: clamp(40px, calc(5.4945vw - 3.2967px), 60px);
  font-weight: 400;
  line-height: 0.783333;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
body.pg-vision .sec-head-ja {
  flex-shrink: 0;
  margin-left: 1.8315%;
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(11px, calc(1.2821vw - 0.76923px), 14px);
  font-weight: 400;
  line-height: 1.502857;
  letter-spacing: 0.05em;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(15px);
  transition: opacity 0.7s ease-out, transform 0.7s ease-out;
}
body.pg-vision .sec-head-ja.is-visible {
  opacity: 1;
  transform: translateY(0);
}
body.pg-vision .philosophy-wrap {
  background-image: url(../images/vision-philosophy-cg.webp);
  background-repeat: no-repeat;
  background-position: right 62.2915%;
  background-size: min(682px, 47.3611%) auto;
}
body.pg-vision .philosophy-row {
  padding-top: 10.989%;
}
body.pg-vision .philosophy-title {
  margin-top: 8.1685%;
  padding-left: 60px;
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(28px, calc(3.7546vw - 2.2528px), 37px);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: 0.03em;
}
body.pg-vision .philosophy-lead {
  width: 52.0147%;
  margin-top: 1.4331%;
  padding-left: 60px;
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(13px, calc(1.4652vw - 0.87912px), 16px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.03em;
}
body.pg-vision .philosophy-item {
  margin-top: 6.3919%;
  padding-left: 60px;
}
body.pg-vision .philosophy-item + .philosophy-item {
  margin-top: 5.3022%;
}
body.pg-vision .philosophy-label {
  font-family: 'Cormorant Infant', serif;
  font-size: clamp(10px, calc(1.1905vw - 0.71429px), 13px);
  font-weight: 400;
  line-height: 1.615385;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
body.pg-vision .philosophy-name {
  margin-top: 1.4835%;
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(21px, calc(2.7473vw - 1.6484px), 30px);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: 0.017em;
}
body.pg-vision .philosophy-text {
  margin-top: 1.2271%;
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(12px, calc(1.3736vw - 0.82418px), 15px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.03em;
}
body.pg-vision .values-row {
  padding-top: 13.1136%;
  padding-bottom: 11.5476%;
}
body.pg-vision .values-list {
  display: flex;
  justify-content: space-between;
  margin-top: 5.9524%;
  list-style: none;
}
body.pg-vision .values-card {
  width: 23.522%;
  padding: 7.6374% 0 7.8846%;
  background: #f2efec;
  text-align: center;
}
body.pg-vision .values-card-title {
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(19px, calc(2.4725vw - 1.4835px), 27px);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: 0.03em;
}
body.pg-vision .values-card-text {
  margin-top: 7.105%;
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(12px, calc(1.3736vw - 0.82418px), 15px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.03em;
}
body.pg-vision .band {
  background-color: #f4efed;
  background-image: url(../images/vision-band-top.webp), url(../images/vision-band-bottom.webp);
  background-repeat: no-repeat, no-repeat;
  background-position: left top, right bottom;
  background-size: min(577px, 40.0694%) auto, min(886px, 61.5278%) auto;
}
body.pg-vision .band-box {
  width: 82.4176%;
  margin-left: auto;
  margin-right: auto;
}
body.pg-vision .history-row {
  padding-top: 12.4084%;
}
body.pg-vision .history-list {
  display: grid;
  grid-template-columns: max-content 1fr;
  column-gap: 15px;
  margin-top: 7.1886%;
  list-style: none;
}
body.pg-vision .history-item + .history-item {
  margin-top: 4.4444%;
}
body.pg-vision .history-head {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: subgrid;
  align-items: center;
}
body.pg-vision .history-year {
  grid-column: 1;
  white-space: nowrap;
  font-family: 'Cormorant Infant', serif;
  font-size: clamp(28px, calc(3.663vw - 2.1978px), 40px);
  font-weight: 400;
  line-height: 1.025;
  letter-spacing: 0.03em;
}
body.pg-vision .hy-jp {
  font-size: 0.55em;
}

body.pg-vision .history-desc {
  grid-column: 2;
  margin-left: 5.3333%;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(12px, calc(1.3736vw - 0.82418px), 15px);
  font-weight: 400;
  line-height: 1.333333;
  letter-spacing: 0.03em;
}
body.pg-vision .history-notes {
  grid-column: 2;
  margin-top: 1.7778%;
  padding-left: 4.2222%;
  list-style: none;
}
body.pg-vision .history-notes li {
  display: flex;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(12px, calc(1.3736vw - 0.82418px), 15px);
  font-weight: 400;
  line-height: 1.333333;
  letter-spacing: 0.03em;
}
body.pg-vision .history-notes li + li {
  margin-top: 0.8889%;
}
body.pg-vision .history-notes li::before {
  content: "";
  flex-shrink: 0;
  width: 6px;
  height: 6px;
  margin-right: 8px;
  border-radius: 50%;
  background: #000;
}
body.pg-vision .company-row {
  padding-top: 12.0879%;
}
body.pg-vision .data-table {
  margin-top: 8.4249%;
  border-top: 0.8px solid #000;
  list-style: none;
}
body.pg-vision .data-row {
  display: flex;
  align-items: center;
  padding: 3.3333% 4.4444%;
  border-bottom: 0.8px solid #000;
}
body.pg-vision .data-key {
  flex: 0 0 19.5732%;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(11px, calc(1.2821vw - 0.76923px), 14px);
  font-weight: 700;
  line-height: 1.857143;
  color: #111827;
}
body.pg-vision .data-val {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(12px, calc(1.3736vw - 0.82418px), 15px);
  font-weight: 400;
  line-height: 1.6;
}
body.pg-vision .data-val--contact {
  line-height: 1.466667;
}
body.pg-vision .data-val--permit {
  margin: -0.133333em 0;
}
body.pg-vision .data-val--assoc {
  margin: -0.033333em 0;
}
body.pg-vision .group-row {
  padding-top: 11.859%;
  padding-bottom: 12.9121%;
}
body.pg-vision .group-row .data-table {
  margin-top: 8.4707%;
}
body.pg-vision .cta-logo-pat--1 {
  opacity: 0.12;
}
body.pg-vision .cta-logo-pat--3 {
  opacity: 0.12;
}
body.pg-vision .cta-logo-pat--4 {
  opacity: 0.12;
}
body.pg-vision .cta-logo-pat--5 {
  opacity: 0.12;
}
body.pg-vision .cta-logo-pat--6 {
  opacity: 0.12;
}
body.pg-vision .cta-logo-pat--7 {
  opacity: 0.12;
}
body.pg-vision .cta-logo-pat--8 {
  opacity: 0.12;
}
body.pg-vision .footer-top {
  align-items: center;
}
body.pg-vision .page-head-crumb,
body.pg-vision .page-head-en,
body.pg-vision .page-head-ja,
body.pg-vision .page-head-lead {
  opacity: 0;
}
@media (max-width: 767px) {
  body.pg-vision {
    padding-top: 60px;
  }
  body.pg-vision .inner {
    width: min(450px, 100% - 60px);

  }
  body.pg-vision .page-head {
    height: 335px;
    padding: 0;
    box-sizing: border-box;
    background-size: auto 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;

  }
  body.pg-vision .page-head-crumb {
    position: absolute;
    top: 7px;
    left: 0;
    padding-top: 0;
    padding-left: 30px;
    font-size: 12px;

  }
  body.pg-vision .page-head-row {
    flex-direction: column;
    padding: 0 30px;

  }
  body.pg-vision .page-head-en {
    flex: none;
    font-size: 55px;
    line-height: 1;
    letter-spacing: 2px;

  }
  body.pg-vision .page-head-ja {
    margin-top: 2px;
    margin-left: 0;
    font-size: 13px;

  }
  body.pg-vision .page-head-lead {
    flex: none;
    width: 100%;
    margin-top: 25px;
    margin-left: 0;
    font-size: 12px;
    line-height: 1.9;
    letter-spacing: 0.03em;

  }
  body.pg-vision .page-nav {
    top: 60px;

  }
  body.pg-vision .page-nav ul {
    flex-wrap: nowrap;
    gap: 0 20px;
    padding: 0 20px;

  }
  body.pg-vision .page-nav a {
    padding: 14px 0;
    font-size: 10px;
    white-space: nowrap;

  }
  body.pg-vision .sec-head {
    flex-direction: column-reverse;
    align-items: flex-start;

  }
  body.pg-vision .sec-head-en {
    font-size: 34px;

  }
  body.pg-vision .sec-head-ja {
    margin-left: 0;
    margin-bottom: 8px;
    font-size: 11px;

  }
  body.pg-vision .philosophy-wrap {
    background-image: none;

  }
  body.pg-vision .philosophy-row {
    padding-top: 50px;

  }
  body.pg-vision .philosophy-title {
    margin-top: 34px;
    padding-left: 0;
    font-size: 24px;

  }
  body.pg-vision .philosophy-lead {
    width: 100%;
    margin-top: 12px;
    padding-left: 0;
    font-size: 13px;

  }
  body.pg-vision .philosophy-item {
    margin-top: 38px;
    padding-left: 0;

  }
  body.pg-vision .philosophy-item + .philosophy-item {
    margin-top: 34px;

  }
  body.pg-vision .philosophy-label {
    font-size: 11px;

  }
  body.pg-vision .philosophy-name {
    margin-top: 8px;
    font-size: 20px;

  }
  body.pg-vision .philosophy-text {
    margin-top: 8px;
    font-size: 12px;

  }
  body.pg-vision .values-row {
    padding-top: 50px;
    padding-bottom: 50px;

  }
  body.pg-vision .values-list {
    flex-wrap: wrap;
    margin-top: 28px;

  }
  body.pg-vision .values-card {
    width: 48.6%;
    padding: 30px 8px;

  }
  body.pg-vision .values-card:nth-child(n+3) {
    margin-top: 16px;

  }
  body.pg-vision .values-card-title {
    font-size: 18px;

  }
  body.pg-vision .values-card-text {
    margin-top: 8px;
    font-size: 12px;

  }
  body.pg-vision .band-box {
    width: 100%;

  }
  body.pg-vision .history-row {
    padding-top: 50px;

  }
  body.pg-vision .history-list {
    margin-top: 28px;

  }
  body.pg-vision .history-item + .history-item {
    margin-top: 28px;

  }
  body.pg-vision .history-head {
    flex-direction: column;
    align-items: flex-start;

  }
  body.pg-vision .history-year {
    flex: none;
    font-size: 26px;

  }
  body.pg-vision .history-desc {
    margin-left: 0;
    margin-top: 6px;
    font-size: 12px;
    line-height: 1.7;

  }
  body.pg-vision .history-notes {
    margin-top: 12px;
    padding-left: 0;

  }
  body.pg-vision .history-notes li {
    align-items: flex-start;
    font-size: 12px;
    line-height: 1.7;

  }
  body.pg-vision .history-notes li + li {
    margin-top: 6px;

  }
  body.pg-vision .history-notes li::before {
    margin-top: 7px;

  }
  body.pg-vision .company-row {
    padding-top: 50px;

  }
  body.pg-vision .data-table {
    margin-top: 28px;

  }
  body.pg-vision .data-row {
    flex-direction: column;
    align-items: flex-start;
    padding: 16px 0;

  }
  body.pg-vision .data-key {
    flex: none;
    width: 100%;
    font-size: 12px;
    line-height: 1.6;

  }
  body.pg-vision .data-val {
    margin-top: 4px;
    font-size: 12px;
    line-height: 1.7;

  }
  body.pg-vision .data-val--contact {
    line-height: 1.7;

  }
  body.pg-vision .data-val--permit,
  body.pg-vision .data-val--assoc {
    margin: 4px 0 0;

  }
  body.pg-vision .group-row {
    padding-top: 50px;
    padding-bottom: 50px;

  }
  body.pg-vision .group-row .data-table {
    margin-top: 28px;

  }
}

/* ==========================================================
   service
   ========================================================== */
html:has(body.pg-service) {
  overflow-x: clip;
}
body.pg-service {
  overflow-x: clip;
  padding-top: 85px;
}
body.pg-service .chunk {
  display: inline-block;
}
body.pg-service .header-cta {
  transition: opacity 0.3s;
}
body.pg-service .header-cta:hover {
  color: #000;
  box-shadow: inset 0 0 0 1px #000;
}
body.pg-service .inner {
  width: min(1092px, 100% - 60px);
  margin: 0 auto;
}
body.pg-service .page-head {
  padding-bottom: min(calc(2.9035% + 15px), 57px);
  background: #fff url(../images/message-head-bg.webp) no-repeat right top / auto 100%;
  box-shadow: inset 0 1px 0 #e8e8e8, inset 0 -1px 0 #e8e8e8;
}
body.pg-service .page-head-crumb {
  width: fit-content;
  padding-top: min(1.1806%, 17px);
  padding-left: 5.7639%;
  position: relative;
  top: -3px;
  font-family: 'Cormorant Infant', serif;
  font-size: clamp(9px, 0.76389vw, 11px);
  line-height: 1.818182;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
body.pg-service .page-head-crumb a {
  color: inherit;
  text-decoration: none;
}
body.pg-service .page-head-crumb a:hover {
  opacity: 0.6;
}
body.pg-service .page-head-row {
  display: flex;
  align-items: flex-start;
  padding: 0 5.1389% 0 5.7639%;
  position: relative;
  top: 15px;
}
body.pg-service .page-head-en {
  flex: 0 0 auto;
  margin-top: min(2.3531%, 30px);
  font-family: 'Cormorant Infant', serif;
  font-size: clamp(69.96px, 9.0972vw, 131px);
  font-weight: 400;
  line-height: 0.870229;
  letter-spacing: -0.01em;
  text-transform: uppercase;
}
body.pg-service .page-head-ja {
  flex: none;
  margin-top: min(6.1723%, 79px);
  margin-left: clamp(21px, 2.7778vw, 40px);
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(10px, 1.1111vw, 16px);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
body.pg-service .page-head-lead {
  flex: 0 0 auto;
  width: max(24.8636%, 240px);
  margin-top: min(4.34%, 56px);
  margin-left: auto;
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(12px, 1.0417vw, 15px);
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.03em;
  text-align: justify;
}
body.pg-service .page-nav {
  position: sticky;
  top: 85px;
  z-index: 400;
  background: #fff;
  box-shadow: inset 0 1px 0 #e8e8e8, inset 0 -1px 0 #e8e8e8;
}
body.pg-service .page-nav ul {
  display: flex;
  gap: 44.75px;
  padding-left: max(30px, 6.25%);
  list-style: none;
}
body.pg-service .page-nav a {
  display: block;
  padding: 17px 0;
  border-bottom: 1px solid transparent;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(9px, 0.83333vw, 12px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.03em;
  white-space: nowrap;
  color: #000;
  transition: border-bottom-color 0.3s;
}
body.pg-service .page-nav a:hover {
  opacity: 0.6;
}
body.pg-service .page-nav a.is-active {
  border-bottom-color: #000;
}
body.pg-service #platform,
body.pg-service #rakuman,
body.pg-service #platform2,
body.pg-service #rakuman2 {
  scroll-margin-top: 140px;
}
body.pg-service .service .service-row {
  padding-top: 100px;
  padding-bottom: 10.989%;
}
body.pg-service .service-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
body.pg-service .service-photo {
  flex: 0 0 47.1612%;
  min-width: 0;
  aspect-ratio: 1;
  object-fit: cover;
}
body.pg-service .service-body {
  flex: 0 0 44.9634%;
  min-width: 0;
}
body.pg-service .service-title {
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(26px, calc(3.4799vw - 2.0879px), 38px);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: 0.03em;
  color: #000;
}
body.pg-service .service-lead {
  margin-top: 3.055%;
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(13px, calc(1.4652vw - 0.87912px), 16px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.03em;
  width: max-content;
  max-width: 104%;
  color: #000;
  margin-bottom: 20px;
}
body.pg-service .service-list {
  width: max(63.9511%, 220px);
  border-bottom: 1px solid #999;
  list-style: none;
}
body.pg-service .service-list--platform {
  margin-top: 6.2281%;
}
body.pg-service .service-list--rakuman {
  margin-top: 6.2281%;
}
body.pg-service .service-list--column {
  margin-top: 6.7291%;
}
body.pg-service .service-list li {
  display: flex;
  align-items: center;
  border-top: 1px solid #999;
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(12px, calc(1.3736vw - 0.82418px), 15px);
  font-weight: 400;
  line-height: 3.066667;
  letter-spacing: 0.033333em;
  color: #000;
}
body.pg-service .service-list li::before {
  content: "";
  flex-shrink: 0;
  width: 0;
  height: 0;
  margin-right: 12px;
  margin-left: 2.349px;
  border-left: 5.775px solid #000;
  border-top: 3.334px solid transparent;
  border-bottom: 3.334px solid transparent;
}
body.pg-service .service-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 41.9552%;
  margin-top: 9.0631%;
  padding: 1.3141% 1.7149% 1.3141% 4.6029%;
  border: 1px solid rgba(0, 0, 0, 0.7);
  border-radius: 2.5px;
  transition: opacity 0.3s;
}
body.pg-service .service-btn:hover {
  opacity: 0.6;
}
body.pg-service .service-btn--disabled {
  border-color: #bbb;
  pointer-events: none;
  opacity: 0.5;
}
body.pg-service .service-btn--disabled .service-btn-text {
  color: #999;
}
body.pg-service .service-btn--disabled .service-btn-icon svg path:first-child {
  fill: #bbb;
}
body.pg-service .service-btn--disabled .service-btn-icon svg path:last-child {
  fill: #fff;
}
body.pg-service .service-btn-text {
  font-family: 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-size: clamp(10px, calc(1.2821vw - 0.76923px), 14px);
  font-weight: 400;
  line-height: 1.571429;
  letter-spacing: 0.071429em;
  white-space: nowrap;
}
body.pg-service .service-btn-icon {
  flex-shrink: 0;
  width: 17.3986%;
  aspect-ratio: 1;
}
body.pg-service .service-btn-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}
body.pg-service .cta-logo-pat--1 {
  opacity: 0.12;
}
body.pg-service .cta-logo-pat--3 {
  opacity: 0.12;
}
body.pg-service .cta-logo-pat--4 {
  opacity: 0.12;
}
body.pg-service .cta-logo-pat--5 {
  opacity: 0.12;
}
body.pg-service .cta-logo-pat--6 {
  opacity: 0.12;
}
body.pg-service .cta-logo-pat--7 {
  opacity: 0.12;
}
body.pg-service .cta-logo-pat--8 {
  opacity: 0.12;
}
body.pg-service .footer-top {
  align-items: center;
}
body.pg-service .page-head-crumb,
body.pg-service .page-head-en,
body.pg-service .page-head-ja,
body.pg-service .page-head-lead {
  opacity: 0;
}
@media (max-width: 767px) {
  body.pg-service {
    padding-top: 60px;
  }
  body.pg-service .inner {
    width: min(450px, 100% - 60px);

  }
  body.pg-service .inner {
    width: min(450px, 100% - 60px);

  }
  body.pg-service .page-head {
    height: 335px;
    padding: 0;
    box-sizing: border-box;
    background-size: auto 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;

  }
  body.pg-service .page-head-crumb {
    position: absolute;
    top: 7px;
    left: 0;
    padding-top: 0;
    padding-left: 30px;
    font-size: 12px;

  }
  body.pg-service .page-head-row {
    flex-direction: column;
    padding: 0 30px;

  }
  body.pg-service .page-head-en {
    flex: none;
    font-size: 55px;
    line-height: 1;
    letter-spacing: 2px;

  }
  body.pg-service .page-head-ja {
    margin-top: 2px;
    margin-left: 0;
    font-size: 13px;

  }
  body.pg-service .page-head-lead {
    flex: none;
    width: 100%;
    margin-top: 25px;
    margin-left: 0;
    font-size: 12px;

  }
  body.pg-service .page-nav {
    top: 60px;

  }
  body.pg-service .page-nav ul {
    flex-wrap: nowrap;
    gap: 0 20px;
    padding: 0 20px;

  }
  body.pg-service .page-nav a {
    padding: 14px 0;
    font-size: 10px;
    white-space: nowrap;

  }
  body.pg-service #platform,
  body.pg-service #rakuman,
  body.pg-service #platform2,
  body.pg-service #rakuman2 {
    scroll-margin-top: 120px;

  }
  body.pg-service .service .service-row {
    padding-top: 80px;

  }
  body.pg-service #rakuman .service-row,
  body.pg-service #rakuman2 .service-row {
    padding-bottom: 60px;

  }
  body.pg-service #column .service-row {
    padding-bottom: 41px;

  }
  body.pg-service .service-row {
    flex-direction: column;
    align-items: stretch;

  }
  body.pg-service .service-photo {
    order: -1;
    flex: none;
    width: 100%;

  }
  body.pg-service .service-body {
    flex: none;
    width: 100%;
    margin-top: 32px;

  }
  body.pg-service .service-title {
    font-size: 22px;

  }
  body.pg-service .service-lead {
    width: auto;
    max-width: 100%;
    font-size: 13px;

  }
  body.pg-service .service-list {
    width: 100%;

  }
  body.pg-service .service-list--platform {
    margin-top: 6.2281%;
  }
  body.pg-service .service-list--rakuman {
    margin-top: 6.2281%;
  }
  body.pg-service .service-list--column {
    margin-top: 6.7291%;
  }
  body.pg-service .service-list li {
    font-size: 12px;

  }
  body.pg-service .service-btn {
    width: 206px;
    max-width: 100%;
    margin-top: 28px;
    padding: 6.45px 8.42px 6.45px 22.6px;

  }
  body.pg-service .service-btn-text {
    font-size: 12px;

  }
  body.pg-service .service-btn-icon {
    width: 30.096px;

  }
}

/* ==========================================================
   company-message
   ========================================================== */
html:has(body.pg-company-message) {
  overflow-x: clip;
}
body.pg-company-message {
  overflow-x: clip;
  padding-top: 85px;
}
body.pg-company-message .header-cta {
  transition: opacity 0.3s;
}
body.pg-company-message .header-cta:hover {
  color: #000;
  box-shadow: inset 0 0 0 1px #000;
}
body.pg-company-message .inner {
  width: min(1092px, 100% - 60px);
  margin: 0 auto;
}
body.pg-company-message .page-head {
  padding-bottom: min(calc(2.9035% + 15px), 57px);
  background: #fff url(../images/message-head-bg.webp) no-repeat right top / auto 100%;
  box-shadow: inset 0 1px 0 #e8e8e8, inset 0 -1px 0 #e8e8e8;
}
body.pg-company-message .page-head-crumb {
  width: fit-content;
  padding-top: min(1.1806%, 17px);
  padding-left: 5.7639%;
  position: relative;
  top: -3px;
  font-family: 'Cormorant Infant', serif;
  font-size: clamp(9px, 0.76389vw, 11px);
  line-height: 1.818182;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
body.pg-company-message .page-head-crumb a {
  color: inherit;
  text-decoration: none;
}
body.pg-company-message .page-head-crumb a:hover {
  opacity: 0.6;
}
body.pg-company-message .page-head-row {
  display: flex;
  align-items: flex-start;
  padding: 0 5.1389% 0 5.7639%;
  position: relative;
  top: 15px;
}
body.pg-company-message .page-head-en {
  flex: 0 0 auto;
  margin-top: min(2.3531%, 30px);
  font-family: 'Cormorant Infant', serif;
  font-size: clamp(69.96px, 9.0972vw, 131px);
  font-weight: 400;
  line-height: 0.870229;
  letter-spacing: -0.01em;
  text-transform: uppercase;
}
body.pg-company-message .page-head-ja {
  flex: none;
  margin-top: min(6.1723%, 79px);
  margin-left: clamp(21px, 2.7778vw, 40px);
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(10px, 1.1111vw, 16px);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
body.pg-company-message .page-head-lead {
  flex: 0 0 auto;
  width: max(24.8636%, 240px);
  margin-top: min(4.34%, 56px);
  margin-left: auto;
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(12px, 1.0417vw, 15px);
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.03em;
  text-align: justify;
}
body.pg-company-message .page-head-crumb,
body.pg-company-message .page-head-en,
body.pg-company-message .page-head-ja,
body.pg-company-message .page-head-lead {
  opacity: 0;
}
body.pg-company-message .page-nav {
  position: sticky;
  top: 85px;
  z-index: 400;
  background: #fff;
  box-shadow: inset 0 -1px 0 #e8e8e8;
}
body.pg-company-message .page-nav ul {
  display: flex;
  gap: 44px;
  padding-left: max(30px, 6.25%);
  list-style: none;
}
body.pg-company-message .page-nav a {
  display: block;
  padding: 17px 0;
  border-bottom: 1px solid transparent;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(9px, 0.83333vw, 12px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.03em;
  white-space: nowrap;
  transition: opacity 0.3s;
}
body.pg-company-message .page-nav a:hover {
  opacity: 0.6;
}
body.pg-company-message .page-nav a[aria-current="page"] {
  border-bottom-color: #000;
}
body.pg-company-message .profile {
  padding-top: calc(8.5165% - 30px);
}
body.pg-company-message .profile-row {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
}
body.pg-company-message .profile-photo {
  flex: 0 0 46.4286%;
  min-width: 0;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
body.pg-company-message .profile-body {
  flex: 0 0 45.0549%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  margin-bottom: 0;
}

body.pg-company-message .profile-body > .reveal:first-child {
  position: relative;
  top: -25px;
}
body.pg-company-message .profile-role {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(9px, calc(1.1905vw - 0.71429px), 13px);
  font-weight: 400;
  line-height: 1.14;
  color: #737373;
}
body.pg-company-message .profile-name {
  margin-top: 1.752%;
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(22px, calc(2.9304vw - 1.7582px), 32px);
  font-weight: 400;
  line-height: 1.3125;
  color: #1f1f1f;
}
body.pg-company-message .profile-catch {
  margin-top: 4.1341%;
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(15px, calc(1.9231vw - 1.1538px), 21px);
  font-weight: 400;
  line-height: 1.8;
  color: #1f1f1f;
}
body.pg-company-message .profile-text {
  margin-top: 3.0915%;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(12px, calc(1.3736vw - 0.82418px), 15px);
  font-weight: 400;
  line-height: 1.9;
  color: #4d4d4d;
}
body.pg-company-message .profile-subhead {
  margin-top: 1.3008%;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(13px, calc(1.6484vw - 0.98901px), 18px);
  font-weight: 500;
  line-height: 1.9;
  color: #4d4d4d;
}
body.pg-company-message .profile-subhead + .profile-text {
  margin-top: 1.3008%;
}
body.pg-company-message .profile-subhead--2 {
  margin-top: 1.1992%;
}
body.pg-company-message .profile-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 3.0102%;
  margin-top: 6.3028%;
}
body.pg-company-message .btn-line {
  display: flex;
  align-items: center;
  width: 226px;
  height: 47px;
  padding: 0 6px 0 20px;
  border: 0.9px solid #000;
  border-radius: 3px;
  transition: opacity 0.3s;
}
body.pg-company-message .btn-line:hover {
  opacity: 0.6;
}
body.pg-company-message .btn-line-text {
  flex: 1;
  font-family: 'Noto Sans JP', 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-size: 12.2px;
  font-weight: 500;
  line-height: 23px;
  letter-spacing: 1.045px;
  white-space: nowrap;
}
body.pg-company-message .btn-line-icon {
  flex-shrink: 0;
  width: 31.46px;
  height: 31.46px;
  background: #000;
  border-radius: 3.14px;
}
body.pg-company-message .btn-line-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}
body.pg-company-message .message-inline {
  margin-top: 47px;
  margin-bottom: 120px;
}
body.pg-company-message .message-head {
  margin-top: 5.37%;
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(15px, calc(1.9231vw - 1.1538px), 21px);
  font-weight: 400;
  line-height: 1.8;
  color: #1f1f1f;
}
body.pg-company-message .message-body {
  width: 100%;
  padding-bottom: 2.3352%;
}
body.pg-company-message .message-body p {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(12px, calc(1.3736vw - 0.82418px), 15px);
  font-weight: 400;
  line-height: 2;
  color: #4d4d4d;
  text-align: justify;
}
body.pg-company-message .message-body p:first-child {
  margin-top: 0;
}
body.pg-company-message .message-body p + p {
  margin-top: 0;
}
body.pg-company-message .message-head--2 {
  margin-top: 1.5%;
  font-size: clamp(15px, calc(1.9231vw - 1.1538px), 21px);
  line-height: 1.8;
}
body.pg-company-message .message-closing {
  width: 100%;
  margin-top: 1.3008%;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(12px, calc(1.3736vw - 0.82418px), 15px);
  font-weight: 400;
  line-height: 2;
  color: #4d4d4d;
  text-align: justify;
}
body.pg-company-message .message-sign {
  margin-top: calc(2.5% + 15px);
  text-align: right;
}


body.pg-company-message .message-head--mid {
  margin-bottom: 1.3008%;
}
body.pg-company-message .message-body-intro {
  margin-top: 3.2%;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(12px, calc(1.3736vw - 0.82418px), 15px);
  font-weight: 400;
  line-height: 2;
  color: #4d4d4d;
  text-align: justify;
}
body.pg-company-message .message-sign img {
  display: inline-block;
  width: clamp(157.5px, 14.7vw, 210px);
  height: auto;
}
body.pg-company-message .chunk {
  display: inline-block;
}
body.pg-company-message .cta-logo-pat--1 {
  opacity: 0.12;
}
body.pg-company-message .cta-logo-pat--3 {
  opacity: 0.12;
}
body.pg-company-message .cta-logo-pat--4 {
  opacity: 0.12;
}
body.pg-company-message .cta-logo-pat--5 {
  opacity: 0.12;
}
body.pg-company-message .cta-logo-pat--6 {
  opacity: 0.12;
}
body.pg-company-message .cta-logo-pat--7 {
  opacity: 0.12;
}
body.pg-company-message .cta-logo-pat--8 {
  opacity: 0.12;
}
@media (max-width: 767px) {
  body.pg-company-message {
    padding-top: 60px;
  }
  body.pg-company-message .br-pc {
    display: none;

  }
  body.pg-company-message .inner {
    width: min(450px, 100% - 60px);

  }
  body.pg-company-message .page-head {
    height: 335px;
    padding: 0;
    box-sizing: border-box;
    background-size: auto 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;

  }
  body.pg-company-message .page-head-crumb {
    position: absolute;
    top: 7px;
    left: 0;
    padding-left: 30px;
    font-size: 12px;

  }
  body.pg-company-message .page-head-row {
    flex-direction: column;
    padding: 0 30px;

  }
  body.pg-company-message .page-head-en {
    flex: none;
    font-size: 55px;
    line-height: 1;
    letter-spacing: 2px;

  }
  body.pg-company-message .page-head-ja {
    margin-top: 2px;
    margin-left: 0;
    font-size: 13px;

  }
  body.pg-company-message .page-head-lead {
    flex: none;
    width: 100%;
    margin-top: 25px;
    margin-left: 0;
    font-size: 12px;
    line-height: 1.9;
    letter-spacing: 0.03em;

  }
  body.pg-company-message .page-nav {
    top: 60px;

  }
  body.pg-company-message .page-nav ul {
    flex-wrap: wrap;
    gap: 0 24px;
    padding: 0 30px;

  }
  body.pg-company-message .page-nav a {
    padding: 14px 0;
    font-size: 10px;

  }
  body.pg-company-message .profile {
    padding-top: 50px;

  }
  body.pg-company-message .profile-row {
    flex-direction: column;
    align-items: stretch;

  }
  body.pg-company-message .profile-photo {
    flex: none;
    width: 100%;
    aspect-ratio: 1 / 1;

  }
  body.pg-company-message .profile-body {
    flex: none;
    width: 100%;
    margin-top: 32px;
    display: block;
    margin-bottom: 0;

  }
  body.pg-company-message .profile-catch {
    font-size: 15px;

  }
  body.pg-company-message .profile-text {
    font-size: 12px;

  }
  body.pg-company-message .profile-subhead {
    font-size: 13px;

  }
  body.pg-company-message .profile-btns {
    justify-content: center;
    gap: 14.81px;
    margin-top: 28px;

  }
  body.pg-company-message .btn-line-text {
    font-size: 12px;

  }
  body.pg-company-message .btn-line {
    width: 100%;
    height: 54px;
    padding: 0 5.99px 0 20px;

  }
  body.pg-company-message .btn-line-icon {
    width: 36px;
    height: 36px;

  }
  body.pg-company-message .message {
    padding-bottom: 120px;
    background-position: right 0 bottom -20px, left 0 bottom -20px;
    background-size: 400px 235px, 240px 135px;

  }
  body.pg-company-message .message-head {
    margin-left: 0;
    margin-top: 28px;
    padding-top: 0;
    font-size: 16px;
    line-height: 1.6;

  }
  body.pg-company-message .message-body p {
    font-size: 12px;

  }
  body.pg-company-message .message-body,
  body.pg-company-message .message-closing {
    width: 100%;
    margin-left: 0;

  }
  body.pg-company-message .message-body p:first-child {
    margin-top: 0;

  }
  body.pg-company-message .message-body p + p {
    margin-top: 0;
    padding-top: 0;
    border-top: none;

  }
  body.pg-company-message .message-body {
    padding-bottom: 0;

  }

  body.pg-company-message .message-inline {
    margin-top: 40px;
    margin-bottom: 60px;

  }

  body.pg-company-message .message-head--mid {
    margin-bottom: 12px;

  }
  body.pg-company-message .message-head--2 {
    margin-left: 0;
    margin-top: 40px;
    padding-top: 0;
    font-size: 16px;
    line-height: 1.6;

  }
  body.pg-company-message .message-closing {
    margin-top: 12px;
    font-size: 12px;

  }

  body.pg-company-message .profile-body > .reveal:first-child {
    position: static;
    top: auto;

  }

  body.pg-company-message .message-body-intro {
    margin-top: 12px;
    font-size: 12px;

  }
  body.pg-company-message .message-sign {
    padding-left: 0;
    text-align: right;
    margin-top: 20px;
    margin-right: 0;

  }
}

/* ==========================================================
   column
   ========================================================== */
html:has(body.pg-column) {
  overflow-x: clip;
}
body.pg-column {
  overflow-x: clip;
  padding-top: 85px;
}
body.pg-column .header-cta {
  transition: opacity 0.3s;
}
body.pg-column .header-cta:hover {
  color: #000;
  box-shadow: inset 0 0 0 1px #000;
}
body.pg-column .page-head {
  padding-bottom: min(calc(2.9035% + 15px), 57px);
  background: #fff url(../images/message-head-bg.webp) no-repeat right top / auto 100%;
  box-shadow: inset 0 1px 0 #e8e8e8, inset 0 -1px 0 #e8e8e8;
}
body.pg-column .page-head-crumb {
  width: fit-content;
  padding-top: min(1.1806%, 17px);
  padding-left: 5.7639%;
  position: relative;
  top: -3px;
  font-family: 'Cormorant Infant', serif;
  font-size: clamp(9px, 0.76389vw, 11px);
  line-height: 1.818182;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
body.pg-column .page-head-crumb a {
  color: inherit;
  text-decoration: none;
}
body.pg-column .page-head-crumb a:hover {
  opacity: 0.6;
}
body.pg-column .page-head-row {
  display: flex;
  align-items: flex-start;
  padding: 0 5.1389% 0 5.7639%;
  position: relative;
  top: 15px;
}
body.pg-column .page-head-en {
  flex: 0 0 auto;
  margin-top: min(2.3531%, 30px);
  font-family: 'Cormorant Infant', serif;
  font-size: clamp(69.96px, 9.0972vw, 131px);
  font-weight: 400;
  line-height: 0.870229;
  letter-spacing: -0.01em;
  text-transform: uppercase;
}
body.pg-column .page-head-ja {
  flex: none;
  margin-top: min(6.1723%, 79px);
  margin-left: clamp(21px, 2.7778vw, 40px);
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(10px, 1.1111vw, 16px);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
body.pg-column .page-head-lead {
  flex: 0 0 auto;
  width: max(24.8636%, 240px);
  margin-top: min(4.34%, 56px);
  margin-left: auto;
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(12px, 1.0417vw, 15px);
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.03em;
  text-align: justify;
}
body.pg-column .category-section {
  background: #fff;
  padding: 120px 0 80px;
}
body.pg-column .category-inner {
  width: min(900px, 100% - 60px);
  margin: 0 auto;
}
body.pg-column .category-label {
  font-family: 'Cormorant Infant', serif;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #4d4d4d;
}
body.pg-column .category-heading {
  margin-top: 10px;
  font-family: 'Zen Old Mincho', serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.042em;
  color: #1f1f1f;
}
body.pg-column .category-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}
body.pg-column .category-tag {
  display: inline-flex;
  align-items: center;
  padding: 8px 20px;
  border: 1px solid #d9d9d9;
  border-radius: 20px;
  background: #fff;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: #4d4d4d;
  cursor: pointer;
  transition: background 0.3s, color 0.3s, border-color 0.3s;
}
body.pg-column .category-tag:hover {
  background: #f0f0f0;
}
body.pg-column .category-tag.is-active {
  background: #1c1c29;
  color: #fff;
  border-color: #1c1c29;
}
body.pg-column .articles-section {
  background: #fff;
  padding: 0 0 80px;
}
body.pg-column .articles-inner {
  width: min(900px, 100% - 60px);
  margin: 0 auto;
}
body.pg-column .articles-heading {
  margin-top: 0;
  font-family: 'Zen Old Mincho', serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.042em;
  color: #1f1f1f;
}
body.pg-column .articles-list {
  display: flex;
  flex-direction: column;
  gap: 40px;
  margin-top: 51px;
}
body.pg-column .article-card {
  display: flex;
  gap: 48px;
  align-items: flex-start;
}
body.pg-column .article-thumb {
  flex-shrink: 0;
  width: 331px;
  height: 209px;
  overflow: hidden;
  border-radius: 0;
}
body.pg-column .article-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.pg-column .article-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 40px;
  align-items: flex-end;
}
body.pg-column .article-content {
  width: 100%;
}
body.pg-column .article-meta {
  display: flex;
  gap: 12px;
  align-items: center;
}
body.pg-column .article-cat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 26px;
  border: 1px solid #d9d9d9;
  border-radius: 9999px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 11px;
  font-weight: 500;
  color: #4d4d4d;
}
body.pg-column .article-date {
  font-family: 'Cormorant Infant', serif;
  font-size: 12px;
  font-weight: 400;
  color: #737373;
}
body.pg-column .article-text {
  margin-top: 11px;
}
body.pg-column .article-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
  color: #1f1f1f;
}
body.pg-column .article-excerpt {
  margin-top: 8px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.7;
  color: #737373;
  text-align: justify;
}
body.pg-column .article-more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #000;
  text-align: justify;
  transition: opacity 0.3s;
}
body.pg-column .article-more:hover {
  opacity: 0.6;
}
body.pg-column .article-more-arrow {
  width: 7px;
  height: 13px;
}
body.pg-column .pagination {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: center;
  margin-top: 80px;
  padding: 16px 0;
}
body.pg-column .pagination-item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 37px;
  border: 1px solid #d9d9d9;
  border-radius: 2px;
  font-family: 'Cormorant Infant', serif;
  font-size: 14px;
  font-weight: 400;
  color: #737373;
  transition: background 0.3s, color 0.3s;
}
body.pg-column .pagination-item:hover {
  background: #f0f0f0;
}
body.pg-column .pagination-item.is-active {
  background: #1c1c29;
  color: #fff;
  border-color: #1c1c29;
}
body.pg-column .cta-logo-pat--1 {
  opacity: 0.12;
}
body.pg-column .cta-logo-pat--3 {
  opacity: 0.12;
}
body.pg-column .cta-logo-pat--4 {
  opacity: 0.12;
}
body.pg-column .cta-logo-pat--5 {
  opacity: 0.12;
}
body.pg-column .cta-logo-pat--6 {
  opacity: 0.12;
}
body.pg-column .cta-logo-pat--7 {
  opacity: 0.12;
}
body.pg-column .cta-logo-pat--8 {
  opacity: 0.12;
}
body.pg-column .page-head-crumb,
body.pg-column .page-head-en,
body.pg-column .page-head-ja,
body.pg-column .page-head-lead {
  opacity: 0;
}
@media (max-width: 767px) {
  body.pg-column {
    padding-top: 60px;
  }
  body.pg-column .site-header {
    height: auto;
    padding: 0;
  }
  body.pg-column .page-head {
    height: 335px;
    padding: 0;
    box-sizing: border-box;
    background-size: auto 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;

  }
  body.pg-column .page-head-crumb {
    position: absolute;
    top: 7px;
    left: 0;
    padding-top: 0;
    padding-left: 30px;
    font-size: 12px;

  }
  body.pg-column .page-head-row {
    flex-direction: column;
    padding: 0 30px;

  }
  body.pg-column .page-head-en {
    flex: none;
    font-size: 55px;
    line-height: 1;
    letter-spacing: 2px;

  }
  body.pg-column .page-head-ja {
    margin-top: 2px;
    margin-left: 0;
    font-size: 13px;

  }
  body.pg-column .page-head-lead {
    flex: none;
    width: 100%;
    margin-top: 25px;
    margin-left: 0;
    font-size: 12px;
    line-height: 1.9;
    letter-spacing: 0.03em;

  }
  body.pg-column .category-section {
    padding: 50px 0 40px;

  }
  body.pg-column .category-inner {
    width: calc(100% - 40px);
    margin: 0 auto;

  }
  body.pg-column .category-heading {
    font-size: 20px;

  }
  body.pg-column .category-tags {
    gap: 8px;
    margin-top: 20px;

  }
  body.pg-column .category-tag {
    font-size: 12px;
    padding: 6px 14px;

  }
  body.pg-column .articles-section {
    padding: 0 0 60px;

  }
  body.pg-column .articles-inner {
    width: calc(100% - 40px);

  }
  body.pg-column .articles-heading {
    font-size: 20px;
    margin-top: 30px;

  }
  body.pg-column .articles-list {
    margin-top: 30px;
    gap: 30px;

  }
  body.pg-column .article-card {
    flex-direction: column;
    gap: 16px;

  }
  body.pg-column .article-thumb {
    width: 100%;
    height: 200px;

  }
  body.pg-column .article-body {
    gap: 20px;

  }
  body.pg-column .article-title {
    font-size: 14px;

  }
  body.pg-column .article-excerpt {
    font-size: 13px;

  }
  body.pg-column .pagination {
    margin-top: 50px;

  }
}

/* ==========================================================
   column-detail
   ========================================================== */
html:has(body.pg-column-detail) {
  overflow-x: clip;
}
body.pg-column-detail {
  overflow-x: clip;
  padding-top: 85px;
}
body.pg-column-detail .header-nav a {
  transition: opacity 0.3s;
}
body.pg-column-detail .header-cta {
  font-family: 'Noto Sans JP', 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  transition: opacity 0.3s;
  padding-top: 0;
}
body.pg-column-detail .header-cta:hover {
  color: #000;
  box-shadow: inset 0 0 0 1px #000;
}
body.pg-column-detail .hamburger span {
  transition: transform 0.3s, opacity 0.3s;
}
body.pg-column-detail .header-line {
  box-shadow: inset 0 1px 0 #e8e8e8;
}
body.pg-column-detail .breadcrumb {
  padding: 16px 5.7639%;
  font-family: 'Cormorant Infant', serif;
  font-size: clamp(9px, 0.76389vw, 11px);
  font-weight: 400;
  color: #000;
  letter-spacing: 0.03em;
  line-height: 1.818182;
  text-transform: uppercase;
}
body.pg-column-detail .breadcrumb a {
  color: inherit; transition: opacity 0.3s;
}
body.pg-column-detail .breadcrumb a:hover {
  opacity: 0.6;
}
body.pg-column-detail .article-wrap {
  width: min(900px, 100% - 60px);
  margin: 0 auto;
  padding-top: 50px;
  padding-bottom: 80px;
}
body.pg-column-detail .article-meta {
  display: flex;
  align-items: center;
  gap: 12px;
}
body.pg-column-detail .article-cat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 5px 18px;
  background: #1c1c29;
  border-radius: 9999px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: #fff;
}
body.pg-column-detail .article-date {
  font-family: 'Cormorant Infant', serif;
  font-size: 14px;
  font-weight: 400;
  color: #1c1c29;
}
body.pg-column-detail .article-title {
  margin-top: 20px;
  font-family: 'Zen Old Mincho', serif;
  font-size: 30px;
  font-weight: 600;
  line-height: 1.6;
  color: #1f1f1f;
}
body.pg-column-detail .article-eyecatch {
  margin-top: 30px;
  width: 100%;
  aspect-ratio: 900 / 514;
  overflow: hidden;
}
body.pg-column-detail .article-eyecatch img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.pg-column-detail .article-body {
  margin-top: 108px;
}
body.pg-column-detail .article-body p {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 2;
  color: #4d4d4d;
  text-align: justify;
}
body.pg-column-detail .article-body p + p {
  margin-top: 0;
}
body.pg-column-detail .article-cta-banner {
  display: block;
  margin: 60px auto;
  width: 446px;
  max-width: 100%;
  text-align: center;
}
body.pg-column-detail .article-cta-banner img {
  width: 100%;
  border-radius: 0;
}
body.pg-column-detail .article-cta-banner-text {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.6;
  color: #ff5755;
  text-align: center;
  margin-bottom: 8px;
}
body.pg-column-detail .toc-box {
  margin-top: 40px;
  padding: 19px 23px;
  background: #f5f5f5;
  border: 1px solid #d9d9d9;
  border-radius: 5px;
}
body.pg-column-detail .toc-box-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #1f1f1f;
  margin-bottom: 10px;
}
body.pg-column-detail .toc-box ol {
  list-style: none;
  counter-reset: toc;
}
body.pg-column-detail .toc-box ol li {
  counter-increment: toc;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 2;
  color: #4d4d4d;
}
body.pg-column-detail .toc-box ol li::before {
  content: counter(toc) ". ";
}
body.pg-column-detail .toc-box ol li a {
  color: #4d4d4d;
  transition: opacity 0.3s;
}
body.pg-column-detail .toc-box ol li a:hover {
  opacity: 0.6;
}
body.pg-column-detail .article-body h2 {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 25px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: #1f1f1f;
  padding-bottom: 4px;
  border-bottom: 2px solid #1c1c29;
  margin-top: 70px;
  margin-bottom: 3px;
}
body.pg-column-detail .article-body h2:first-child {
  margin-top: 0;
}
body.pg-column-detail .article-body h3 {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
  color: #1f1f1f;
  padding-left: 21px;
  position: relative;
  margin-top: 55px;
  margin-bottom: 5px;
}
body.pg-column-detail .article-body h3::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 5px;
  height: 22px;
  background: #1c1c29;
}
body.pg-column-detail .article-body h2 + p {
  margin-top: 23px;
}
body.pg-column-detail .article-body h3 + p {
  margin-top: 14px;
}
body.pg-column-detail .styled-box {
  position: relative;
  margin-top: 40px;
  padding-top: 25px;
}
body.pg-column-detail .styled-box-header {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5px 40px;
  height: 50px;
  background: #f8c5bd;
  border-radius: 25px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 18px;
  font-weight: 500;
  color: #000;
  letter-spacing: 0.06em;
  white-space: nowrap;
  z-index: 2;
}
body.pg-column-detail .styled-box-body {
  background: #f7f1f0;
  border-radius: 0 5px 5px 5px;
  padding: 65px 32px 40px;
}
body.pg-column-detail .styled-box-item {
  margin-bottom: 15px;
}
body.pg-column-detail .styled-box-item:last-child {
  margin-bottom: 0;
}
body.pg-column-detail .styled-box-item-title {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 5px;
}
body.pg-column-detail .styled-box-item-title::before {
  content: '';
  flex-shrink: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #4d4d4d;
}
body.pg-column-detail .styled-box-item-title span {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 2;
  color: #4d4d4d;
}
body.pg-column-detail .styled-box-item p {
  font-size: 15px !important;
  line-height: 1.6 !important;
}
body.pg-column-detail .expert-comment {
  position: relative;
  margin-top: 40px;
  min-height: 122px;
}
body.pg-column-detail .expert-avatar {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 132px;
}
body.pg-column-detail .expert-avatar-img {
  width: 98px;
  height: 98px;
  border-radius: 50%;
  background: #e9e9e9;
  overflow: hidden;
}
body.pg-column-detail .expert-avatar-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.pg-column-detail .expert-avatar-name {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.8;
  color: #000;
  text-align: center;
}
body.pg-column-detail .expert-bubble-wrap {
  margin-left: 140px;
  position: relative;
}
body.pg-column-detail .expert-bubble-arrow {
  position: absolute;
  left: 0;
  top: 38px;
  width: 0;
  height: 0;
  border-top: 11px solid transparent;
  border-bottom: 11px solid transparent;
  border-right: 18px solid #f6f0c4;
  z-index: 1;
}
body.pg-column-detail .expert-bubble {
  background: #f6f0c4;
  border-radius: 10px;
  padding: 20px;
  margin-left: 18px;
}
body.pg-column-detail .expert-bubble p {
  font-size: 16px !important;
  line-height: 1.8 !important;
  color: #000 !important;
}
body.pg-column-detail .article-body h3.h3-square {
  padding-left: 0;
  display: flex;
  align-items: center;
  gap: 12px;
}
body.pg-column-detail .article-body h3.h3-square::before {
  position: static;
  transform: none;
  width: 17.6px;
  height: 17.6px;
  border-radius: 0;
  flex-shrink: 0;
}
body.pg-column-detail .compare-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin-top: 15px;
  border-radius: 5px;
  overflow: hidden;
}
body.pg-column-detail .compare-table th,
body.pg-column-detail .compare-table td {
  width: 33.333%;
  padding: 19px 20px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  line-height: 1.6;
  text-align: center;
  vertical-align: middle;
  border: 1.5px solid #fff;
}
body.pg-column-detail .compare-table thead th {
  background: #1c1c29;
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.5em;
  padding: 10px 20px;
}
body.pg-column-detail .compare-table thead th:first-child {
  border-radius: 5px 0 0 0;
}
body.pg-column-detail .compare-table thead th:last-child {
  border-radius: 0 5px 0 0;
}
body.pg-column-detail .compare-table tbody td {
  background: #f2efec;
  color: #4d4d4d;
  font-weight: 400;
}
body.pg-column-detail .compare-table tbody td:first-child {
  font-weight: 700;
  color: #000;
  letter-spacing: 0.3em;
}
body.pg-column-detail .author-box {
  margin-top: 80px;
  border: 1px solid rgba(0,0,0,0.2);
  border-radius: 7px;
  overflow: hidden;
}
body.pg-column-detail .author-box-upper {
  padding: 35px 47px;
}
body.pg-column-detail .author-box-logo-wrap {
  text-align: center;
  margin-bottom: 45px;
}
body.pg-column-detail .author-box-logo {
  display: block;
  width: 310px;
  margin: 0 auto;
}
body.pg-column-detail .author-box-content {
  display: flex;
  gap: 0;
}
body.pg-column-detail .author-box-company {
  flex-shrink: 0;
  width: 318px;
}
body.pg-column-detail .author-box-license {
  margin-top: 0;
}
body.pg-column-detail .author-box-license p {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  color: #000;
}
body.pg-column-detail .author-box-license p strong {
  font-size: 17px;
  font-weight: 400;
  line-height: 1.5;
}
body.pg-column-detail .author-box-license p span {
  font-size: 16px;
  line-height: 2;
}
body.pg-column-detail .author-box-license-group + .author-box-license-group {
  margin-top: 8px;
}
body.pg-column-detail .author-box-desc {
  flex: 1;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.8;
  color: #4d4d4d;
  text-align: justify;
  padding-top: 0;
}
body.pg-column-detail .author-box-lower {
  border-top: 1px solid rgba(0,0,0,0.2);
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 39px 40px;
}
body.pg-column-detail .author-box-avatar {
  flex-shrink: 0;
  width: 146px;
  height: 146px;
  border-radius: 50%;
  background: #e2e2e2;
  overflow: hidden;
}
body.pg-column-detail .author-box-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.pg-column-detail .author-box-profile {
  flex: 1;
}
body.pg-column-detail .author-box-profile-name {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.8;
  color: #000;
}
body.pg-column-detail .author-box-profile-bio {
  margin-top: 15px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.8;
  color: #000;
  text-align: justify;
}
body.pg-column-detail .article-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 88px;
  padding: 44px 0 45px;
}
body.pg-column-detail .article-nav-link {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #1c1c29;
  transition: opacity 0.3s;
}
body.pg-column-detail .article-nav-link:hover {
  opacity: 0.6;
}
body.pg-column-detail .article-nav-arrow {
  width: 13px;
  height: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
}
body.pg-column-detail .article-nav-center {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 34px;
  padding: 0 16px;
  background: #000;
  border-radius: 5px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #fff;
  gap: 8px;
  transition: opacity 0.3s;
}
body.pg-column-detail .article-nav-center:hover {
  opacity: 0.7;
}
body.pg-column-detail .article-nav-center svg {
  width: 10px; height: 10px;
}
body.pg-column-detail .related-section {
  background: #f9f9f9;
  padding: 60px 0 60px;
}
body.pg-column-detail .related-inner {
  width: min(1092px, 100% - 60px);
  margin: 0 auto;
}
body.pg-column-detail .related-label {
  font-family: 'Cormorant Infant', serif;
  font-size: 11px;
  font-weight: 400;
  color: #999;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
body.pg-column-detail .related-heading {
  margin-top: 0;
  font-family: 'Zen Old Mincho', serif;
  font-size: 28px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.03em;
  color: #1f1f1f;
}
body.pg-column-detail .related-divider {
  width: 100%;
  height: 1px;
  background: #d9d9d9;
  margin-top: 20px;
}
body.pg-column-detail .related-cards {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  margin-top: 30px;
}
body.pg-column-detail .related-card {
  flex: 1;
  background: #fff;
  overflow: hidden;
  transition: opacity 0.3s;
}
body.pg-column-detail .related-card:hover {
  opacity: 0.8;
}
body.pg-column-detail .related-card-thumb {
  width: 100%;
  aspect-ratio: 342 / 220;
  overflow: hidden;
}
body.pg-column-detail .related-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.pg-column-detail .related-card-body {
  padding: 16px;
}
body.pg-column-detail .related-card-meta {
  display: flex;
  align-items: center;
  gap: 12px;
}
body.pg-column-detail .related-card-cat {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  background: #1c1c29;
  border-radius: 9999px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 10px;
  font-weight: 500;
  color: #fff;
}
body.pg-column-detail .related-card-date {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 11px;
  font-weight: 400;
  color: #999;
}
body.pg-column-detail .related-card-title {
  margin-top: 18px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.8;
  color: #1f1f1f;
}
body.pg-column-detail .cta-logo-pat--1 {
  opacity: 0.12;
}
body.pg-column-detail .cta-logo-pat--3 {
  opacity: 0.12;
}
body.pg-column-detail .cta-logo-pat--4 {
  opacity: 0.12;
}
body.pg-column-detail .cta-logo-pat--5 {
  opacity: 0.12;
}
body.pg-column-detail .cta-logo-pat--6 {
  opacity: 0.12;
}
body.pg-column-detail .cta-logo-pat--7 {
  opacity: 0.12;
}
body.pg-column-detail .cta-logo-pat--8 {
  opacity: 0.12;
}
@media (max-width: 767px) {
  body.pg-column-detail {
    padding-top: 60px;
  }
  body.pg-column-detail .site-header {
    height: auto;
    padding: 0;
  }
  body.pg-column-detail .breadcrumb {
    padding: 12px 30px; font-size: 12px;
  }
  body.pg-column-detail .article-wrap {
    width: calc(100% - 40px);
    padding-top: 30px;
    padding-bottom: 50px;

  }
  body.pg-column-detail .article-title {
    font-size: 22px;
  }
  body.pg-column-detail .article-eyecatch {
    margin-top: 30px;
  }
  body.pg-column-detail .article-body {
    margin-top: 50px;
  }
  body.pg-column-detail .article-body p {
    font-size: 15px;
  }
  body.pg-column-detail .article-body h2 {
    font-size: 20px; margin-top: 60px;
  }
  body.pg-column-detail .article-body h2 + p {
    margin-top: 13px;
  }
  body.pg-column-detail .article-body h3 {
    font-size: 16px; margin-top: 30px;
  }
  body.pg-column-detail .article-body h3 + p {
    margin-top: 10px;
  }
  body.pg-column-detail .article-cta-banner {
    width: 100%; margin: 40px auto;
  }
  body.pg-column-detail .toc-box {
    margin-top: 30px;
  }
  body.pg-column-detail .styled-box-header {
    font-size: 15px; padding: 5px 24px; height: 42px;
  }
  body.pg-column-detail .styled-box-body {
    padding: 55px 20px 30px;
  }
  body.pg-column-detail .styled-box-item-title span {
    font-size: 14px;
  }
  body.pg-column-detail .styled-box-item p {
    font-size: 14px !important;
  }
  body.pg-column-detail .expert-comment {
    margin-top: 30px; min-height: auto; display: flex; flex-direction: column;
  }
  body.pg-column-detail .expert-avatar {
    position: static; display: flex; flex-direction: row; align-items: center; gap: 8px; width: auto; order: 2; margin-top: 12px; margin-left: 10px;
  }
  body.pg-column-detail .expert-avatar-img {
    width: 50px; height: 50px; flex-shrink: 0;
  }
  body.pg-column-detail .expert-avatar-name {
    font-size: 12px;
  }
  body.pg-column-detail .expert-bubble-wrap {
    margin-left: 0; padding-left: 0; order: 1;
  }
  body.pg-column-detail .expert-bubble-arrow {
    left: 27px;
    top: auto;
    bottom: -10px;
    border-bottom: 0;
    border-top: 10px solid #f6f0c4;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;

  }
  body.pg-column-detail .expert-bubble {
    margin-left: 0;
  }
  body.pg-column-detail .expert-bubble p {
    font-size: 14px !important;
  }
  body.pg-column-detail .compare-table {
    font-size: 12px;
  }
  body.pg-column-detail .compare-table th,
  body.pg-column-detail .compare-table td {
    padding: 12px 8px; font-size: 12px;
  }
  body.pg-column-detail .compare-table thead th {
    letter-spacing: 0.2em;
  }
  body.pg-column-detail .compare-table tbody td:first-child {
    letter-spacing: 0.1em;
  }
  body.pg-column-detail .article-body h3.h3-square::before {
    width: 14px; height: 14px;
  }
  body.pg-column-detail .author-box-upper {
    padding: 25px 20px;
  }
  body.pg-column-detail .author-box-content {
    flex-direction: column;
  }
  body.pg-column-detail .author-box-company {
    width: 100%;
  }
  body.pg-column-detail .author-box-logo {
    width: 220px;
  }
  body.pg-column-detail .author-box-desc {
    padding-top: 20px; font-size: 14px;
  }
  body.pg-column-detail .author-box-lower {
    flex-direction: column; text-align: center; padding: 30px 20px;
  }
  body.pg-column-detail .author-box-avatar {
    width: 100px; height: 100px;
  }
  body.pg-column-detail .author-box-profile-bio {
    font-size: 14px; text-align: left;
  }
  body.pg-column-detail .article-nav {
    gap: 20px; padding: 30px 0; flex-wrap: wrap; justify-content: center;
  }
  body.pg-column-detail .related-section {
    padding: 40px 0;
  }
  body.pg-column-detail .related-inner {
    width: calc(100% - 40px);
  }
  body.pg-column-detail .related-heading {
    font-size: 22px;
  }
  body.pg-column-detail .related-cards {
    flex-direction: column; gap: 20px;
  }
  body.pg-column-detail .related-card-thumb {
    aspect-ratio: 16 / 10;
  }
}

/* ==========================================================
   news
   ========================================================== */
html:has(body.pg-news) {
  overflow-x: clip;
}
body.pg-news {
  overflow-x: clip;
  padding-top: 85px;
}
body.pg-news .header-cta {
  transition: opacity 0.3s;
}
body.pg-news .header-cta:hover {
  color: #000;
  box-shadow: inset 0 0 0 1px #000;
}
body.pg-news .page-head {
  padding-bottom: min(calc(2.9035% + 15px), 57px);
  background: #fff url(../images/message-head-bg.webp) no-repeat right top / auto 100%;
  box-shadow: inset 0 1px 0 #e8e8e8, inset 0 -1px 0 #e8e8e8;
}
body.pg-news .page-head-crumb {
  width: fit-content;
  padding-top: min(1.1806%, 17px);
  padding-left: 5.7639%;
  position: relative;
  top: -3px;
  font-family: 'Cormorant Infant', serif;
  font-size: clamp(9px, 0.76389vw, 11px);
  line-height: 1.818182;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
body.pg-news .page-head-crumb a {
  color: inherit;
  text-decoration: none;
}
body.pg-news .page-head-crumb a:hover {
  opacity: 0.6;
}
body.pg-news .page-head-row {
  display: flex;
  align-items: flex-start;
  padding: 0 5.1389% 0 5.7639%;
  position: relative;
  top: 15px;
}
body.pg-news .page-head-en {
  flex: 0 0 auto;
  margin-top: min(2.3531%, 30px);
  font-family: 'Cormorant Infant', serif;
  font-size: clamp(69.96px, 9.0972vw, 131px);
  font-weight: 400;
  line-height: 0.870229;
  letter-spacing: -0.01em;
  text-transform: uppercase;
}
body.pg-news .page-head-ja {
  flex: none;
  margin-top: min(6.1723%, 79px);
  margin-left: clamp(21px, 2.7778vw, 40px);
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(10px, 1.1111vw, 16px);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
body.pg-news .category-section {
  background: #fff;
  padding: 120px 0 80px;
}
body.pg-news .category-inner {
  width: min(900px, 100% - 60px);
  margin: 0 auto;
}
body.pg-news .category-label {
  font-family: 'Cormorant Infant', serif;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #4d4d4d;
}
body.pg-news .category-heading {
  margin-top: 10px;
  font-family: 'Zen Old Mincho', serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.042em;
  color: #1f1f1f;
}
body.pg-news .category-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}
body.pg-news .category-tag {
  display: inline-flex;
  align-items: center;
  padding: 8px 20px;
  border: 1px solid #d9d9d9;
  border-radius: 20px;
  background: #fff;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: #4d4d4d;
  cursor: pointer;
  transition: background 0.3s, color 0.3s, border-color 0.3s;
}
body.pg-news .category-tag:hover {
  background: #f0f0f0;
}
body.pg-news .category-tag.is-active {
  background: #1c1c29;
  color: #fff;
  border-color: #1c1c29;
}
body.pg-news .news-section {
  background: #fff;
  padding: 0 0 80px;
}
body.pg-news .news-inner {
  width: min(900px, 100% - 60px);
  margin: 0 auto;
}
body.pg-news .news-list {
  margin-top: 0;
}
body.pg-news .news-item {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 23px 0;
  border-top: 1px solid #d9d9d9;
  transition: opacity 0.3s;
}
body.pg-news .news-item:last-child {
  border-bottom: 1px solid #d9d9d9;
}
body.pg-news .news-item:hover {
  opacity: 0.6;
}
body.pg-news .news-date {
  flex-shrink: 0;
  font-family: 'Playfair Display', serif;
  font-size: 12px;
  font-weight: 400;
  color: #000;
  line-height: 1;
}
body.pg-news .news-badge {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 110px;
  height: 22px;
  font-family: 'Zen Old Mincho', serif;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  line-height: 1;
  letter-spacing: 0.1em;
}
body.pg-news .news-badge--ir {
  background: #005eae;
}
body.pg-news .news-badge--hr {
  background: #f8a04e;
}
body.pg-news .news-badge--sustainability {
  background: #6aaaff; letter-spacing: -0.077em;
}
body.pg-news .news-badge--ir2 {
  background: #29396f;
}
body.pg-news .news-badge--info {
  background: #58c8cb;
}
body.pg-news .news-title {
  flex: 1;
  font-family: 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
  color: #000;
  letter-spacing: 0.1em;
}
body.pg-news .pagination {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: center;
  margin-top: 80px;
  padding: 16px 0;
}
body.pg-news .pagination-item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 37px;
  border: 1px solid #d9d9d9;
  border-radius: 2px;
  font-family: 'Cormorant Infant', serif;
  font-size: 14px;
  font-weight: 400;
  color: #737373;
  transition: background 0.3s, color 0.3s;
}
body.pg-news .pagination-item:hover {
  background: #f0f0f0;
}
body.pg-news .pagination-item.is-active {
  background: #1c1c29;
  color: #fff;
  border-color: #1c1c29;
}
body.pg-news .cta-logo-pat--1 {
  opacity: 0.12;
}
body.pg-news .cta-logo-pat--3 {
  opacity: 0.12;
}
body.pg-news .cta-logo-pat--4 {
  opacity: 0.12;
}
body.pg-news .cta-logo-pat--5 {
  opacity: 0.12;
}
body.pg-news .cta-logo-pat--6 {
  opacity: 0.12;
}
body.pg-news .cta-logo-pat--7 {
  opacity: 0.12;
}
body.pg-news .cta-logo-pat--8 {
  opacity: 0.12;
}
body.pg-news .page-head-crumb,
body.pg-news .page-head-en,
body.pg-news .page-head-ja {
  opacity: 0;
}
@media (max-width: 767px) {
  body.pg-news {
    padding-top: 60px;
  }
  body.pg-news .site-header {
    height: auto;
    padding: 0;
  }
  body.pg-news .page-head {
    height: 335px;
    padding: 0;
    box-sizing: border-box;
    background-size: auto 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;

  }
  body.pg-news .page-head-crumb {
    position: absolute;
    top: 7px;
    left: 0;
    padding-top: 0;
    padding-left: 30px;
    font-size: 12px;

  }
  body.pg-news .page-head-row {
    flex-direction: column;
    padding: 0 30px;

  }
  body.pg-news .page-head-en {
    flex: none;
    font-size: 55px;
    line-height: 1;
    letter-spacing: 2px;

  }
  body.pg-news .page-head-ja {
    margin-top: 2px;
    margin-left: 0;
    font-size: 13px;

  }
  body.pg-news .category-section {
    padding: 50px 0 40px;

  }
  body.pg-news .category-inner {
    width: calc(100% - 40px);
    margin: 0 auto;

  }
  body.pg-news .category-heading {
    font-size: 20px;

  }
  body.pg-news .category-tags {
    gap: 8px;
    margin-top: 20px;

  }
  body.pg-news .category-tag {
    font-size: 12px;
    padding: 6px 14px;

  }
  body.pg-news .news-section {
    padding: 0 0 60px;

  }
  body.pg-news .news-inner {
    width: calc(100% - 40px);

  }
  body.pg-news .news-list {
    margin-top: 0;

  }
  body.pg-news .news-item {
    flex-wrap: wrap;
    gap: 8px;
    padding: 18px 0;

  }
  body.pg-news .news-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;

  }
  body.pg-news .news-title {
    width: 100%;
    font-size: 14px;

  }
  body.pg-news .news-badge {
    width: 90px;
    height: 20px;
    font-size: 11px;

  }
  body.pg-news .pagination {
    margin-top: 50px;

  }
}

/* ==========================================================
   news-detail
   ========================================================== */
html:has(body.pg-news-detail) {
  overflow-x: clip;
}
body.pg-news-detail {
  overflow-x: clip;
  padding-top: 85px;
}
body.pg-news-detail .header-nav a {
  transition: opacity 0.3s;
}
body.pg-news-detail .header-cta {
  font-family: 'Noto Sans JP', 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  transition: opacity 0.3s;
}
body.pg-news-detail .header-cta:hover {
  color: #000;
  box-shadow: inset 0 0 0 1px #000;
}
body.pg-news-detail .hamburger span {
  transition: transform 0.3s, opacity 0.3s;
}
body.pg-news-detail .header-line {
  height: 1px;
  background: #e8e8e8;
}
body.pg-news-detail .breadcrumb {
  padding: 16px 5.7639%;
  font-family: 'Cormorant Infant', serif;
  font-size: clamp(9px, 0.76389vw, 11px);
  font-weight: 400;
  color: #000;
  letter-spacing: 0.03em;
  line-height: 1.818182;
  text-transform: uppercase;
}
body.pg-news-detail .breadcrumb a {
  color: inherit; transition: opacity 0.3s;
}
body.pg-news-detail .breadcrumb a:hover {
  opacity: 0.6;
}
body.pg-news-detail .article-wrap {
  width: min(900px, 100% - 60px);
  margin: 0 auto;
  padding-top: 50px;
  padding-bottom: 80px;
}
body.pg-news-detail .article-meta {
  display: flex;
  align-items: center;
  gap: 12px;
}
body.pg-news-detail .article-cat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 5px 18px;
  background: #1c1c29;
  border-radius: 9999px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: #fff;
}
body.pg-news-detail .article-date {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: #1c1c29;
}
body.pg-news-detail .article-title {
  margin-top: 20px;
  font-family: 'Zen Old Mincho', serif;
  font-size: 28px;
  font-weight: 600;
  line-height: 1.6;
  color: #1f1f1f;
}
body.pg-news-detail .article-eyecatch {
  margin-top: 30px;
  width: 100%;
  aspect-ratio: 900 / 514;
  overflow: hidden;
  background: #f0f0f0;
}
body.pg-news-detail .article-eyecatch img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.pg-news-detail .article-body {
  margin-top: 50px;
}
body.pg-news-detail .article-body p {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 2;
  color: #4d4d4d;
  text-align: justify;
}
body.pg-news-detail .article-body p + p {
  margin-top: 0;
}
body.pg-news-detail .article-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 88px;
  padding: 84px 0 45px;
}
body.pg-news-detail .article-nav-link {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #1c1c29;
  transition: opacity 0.3s;
}
body.pg-news-detail .article-nav-link:hover {
  opacity: 0.6;
}
body.pg-news-detail .article-nav-arrow {
  width: 13px;
  height: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
}
body.pg-news-detail .article-nav-center {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 34px;
  padding: 0 16px;
  background: #000;
  border-radius: 5px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #fff;
  gap: 8px;
  transition: opacity 0.3s;
}
body.pg-news-detail .article-nav-center:hover {
  opacity: 0.7;
}
body.pg-news-detail .article-nav-center svg {
  width: 10px; height: 10px;
}
body.pg-news-detail .cta-logo-pat--1 {
  opacity: 0.12;
}
body.pg-news-detail .cta-logo-pat--3 {
  opacity: 0.12;
}
body.pg-news-detail .cta-logo-pat--4 {
  opacity: 0.12;
}
body.pg-news-detail .cta-logo-pat--5 {
  opacity: 0.12;
}
body.pg-news-detail .cta-logo-pat--6 {
  opacity: 0.12;
}
body.pg-news-detail .cta-logo-pat--7 {
  opacity: 0.12;
}
body.pg-news-detail .cta-logo-pat--8 {
  opacity: 0.12;
}
@media (max-width: 767px) {
  body.pg-news-detail {
    padding-top: 60px;
  }
  body.pg-news-detail .site-header {
    height: auto;
    padding: 0;
  }
  body.pg-news-detail .breadcrumb {
    padding: 12px 30px; font-size: 12px;
  }
  body.pg-news-detail .article-wrap {
    width: calc(100% - 40px);
    padding-top: 30px;
    padding-bottom: 50px;

  }
  body.pg-news-detail .article-title {
    font-size: 22px;
  }
  body.pg-news-detail .article-eyecatch {
    margin-top: 20px;
  }
  body.pg-news-detail .article-body {
    margin-top: 30px;
  }
  body.pg-news-detail .article-body p {
    font-size: 15px;
  }
  body.pg-news-detail .article-nav {
    gap: 20px; padding: 70px 0 30px; flex-wrap: wrap; justify-content: center;
  }
}

/* ==========================================================
   contact
   ========================================================== */
html:has(body.pg-contact) {
  overflow-x: clip;
}
body.pg-contact {
  overflow-x: clip;
  padding-top: 85px;
}
body.pg-contact .header-cta {
  transition: opacity 0.3s;
}
body.pg-contact .header-cta:hover {
  color: #000;
  box-shadow: inset 0 0 0 1px #000;
}
body.pg-contact .page-head {
  padding-bottom: min(calc(2.9035% + 15px), 57px);
  background: #fff url(../images/message-head-bg.webp) no-repeat right top / auto 100%;
  box-shadow: inset 0 1px 0 #e8e8e8, inset 0 -1px 0 #e8e8e8;
}
body.pg-contact .page-head-crumb {
  width: fit-content;
  padding-top: min(1.1806%, 17px);
  padding-left: 5.7639%;
  position: relative;
  top: -3px;
  font-family: 'Cormorant Infant', serif;
  font-size: clamp(9px, 0.76389vw, 11px);
  line-height: 1.818182;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
body.pg-contact .page-head-crumb a {
  color: inherit;
  text-decoration: none;
}
body.pg-contact .page-head-crumb a:hover {
  opacity: 0.6;
}
body.pg-contact .page-head-row {
  display: flex;
  align-items: flex-start;
  padding: 0 5.1389% 0 5.7639%;
  position: relative;
  top: 15px;
}
body.pg-contact .page-head-en {
  flex: 0 0 auto;
  margin-top: min(2.3531%, 30px);
  font-family: 'Cormorant Infant', serif;
  font-size: clamp(69.96px, 9.0972vw, 131px);
  font-weight: 400;
  line-height: 0.870229;
  letter-spacing: -0.01em;
  text-transform: uppercase;
}
body.pg-contact .page-head-ja {
  flex: none;
  margin-top: min(6.1723%, 79px);
  margin-left: clamp(21px, 2.7778vw, 40px);
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(10px, 1.1111vw, 16px);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
body.pg-contact .form-section {
  background: #f3f1f1;
  padding: 100px 0 100px;
}
body.pg-contact .form-card {
  width: min(902px, 100% - 60px);
  margin: 0 auto;
  background: #fff;
  border-radius: 15px;
  padding: 60px 120px 80px;
}
body.pg-contact .form-group {
  margin-bottom: 30px;
}
body.pg-contact .form-group:last-of-type {
  margin-bottom: 0;
}
body.pg-contact .form-label {
  display: block;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: #000;
  letter-spacing: 0.1em;
  line-height: 1.6;
  margin-bottom: 10px;
}
body.pg-contact .form-label--normal {
  font-weight: 400;
}
body.pg-contact .req {
  color: #c8161d;
}
body.pg-contact .form-input {
  display: block;
  width: 100%;
  height: 53px;
  border: 1px solid #a5a5a5;
  border-radius: 5px;
  background: #fff;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  color: #000;
  padding: 0 16px;
  outline: none;
  transition: border-color 0.3s;
}
body.pg-contact .form-input:focus {
  border-color: #000;
}
body.pg-contact .form-textarea {
  display: block;
  width: 100%;
  height: 159px;
  border: 1px solid #a5a5a5;
  border-radius: 5px;
  background: #fff;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  color: #000;
  padding: 14px 16px;
  outline: none;
  resize: vertical;
  transition: border-color 0.3s;
}
body.pg-contact .form-textarea:focus {
  border-color: #000;
}
body.pg-contact .radio-group {
  display: flex;
  flex-wrap: wrap;
  gap: 25px;
  align-items: center;
}
body.pg-contact .radio-item {
  display: flex;
  align-items: center;
  gap: 7px;
  cursor: pointer;
}
body.pg-contact .radio-item input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  width: 18.7px;
  height: 18.7px;
  border: 1.5px solid #a5a5a5;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
}
body.pg-contact .radio-item input[type="radio"]:checked {
  border-color: #000;
}
body.pg-contact .radio-item input[type="radio"]:checked::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #000;
}
body.pg-contact .radio-item span {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: #000;
  letter-spacing: 0.1em;
  line-height: 1.6;
}
body.pg-contact .privacy-area {
  margin-top: 40px;
  display: flex;
  align-items: center;
  gap: 10px;
}
body.pg-contact .privacy-check {
  appearance: none;
  -webkit-appearance: none;
  width: 16.64px;
  height: 16.64px;
  border: 0.64px solid #c6c4c4;
  border-radius: 3.2px;
  background: #fff;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
}
body.pg-contact .privacy-check:checked {
  background: #000;
  border-color: #000;
}
body.pg-contact .privacy-check:checked::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 5px;
  width: 5px;
  height: 9px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
body.pg-contact .privacy-text {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 400;
  color: #000;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
body.pg-contact .privacy-text a {
  color: #c8161d;
  text-decoration: underline;
  text-underline-offset: 2px;
}
body.pg-contact .privacy-text a:hover {
  opacity: 0.7;
}
body.pg-contact .submit-area {
  margin-top: 40px;
  display: flex;
  justify-content: center;
}
body.pg-contact .submit-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 228px;
  height: 54px;
  border: 1px solid #000;
  border-radius: 3.6px;
  background: #000;
  padding: 0 8px 0 24px;
  cursor: pointer;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 15.6px;
  font-weight: 500;
  color: #fff;
  letter-spacing: 0.08em;
  transition: background 0.3s, color 0.3s;
}
body.pg-contact .submit-button:hover {
  background: #fff;
  color: #000;
}
body.pg-contact .submit-button:hover .submit-icon {
  background: #000;
}
body.pg-contact .submit-button:hover .submit-icon svg path {
  stroke: #fff;
}
body.pg-contact .submit-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: #fff;
  border-radius: 3.6px;
  flex-shrink: 0;
  transition: background 0.3s;
}
body.pg-contact .submit-icon svg {
  width: 12px;
  height: 12px;
}
body.pg-contact .submit-icon svg path {
  transition: stroke 0.3s;
}
body.pg-contact .page-head-crumb,
body.pg-contact .page-head-en,
body.pg-contact .page-head-ja {
  opacity: 0;
}
@media (max-width: 767px) {
  body.pg-contact {
    padding-top: 60px;
  }
  body.pg-contact .site-header {
    height: auto;
    padding: 0;
  }
  body.pg-contact .page-head {
    height: 335px;
    padding: 0;
    box-sizing: border-box;
    background-size: auto 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;

  }
  body.pg-contact .page-head-crumb {
    position: absolute;
    top: 7px;
    left: 0;
    padding-top: 0;
    padding-left: 30px;
    font-size: 12px;

  }
  body.pg-contact .page-head-row {
    flex-direction: column;
    padding: 0 30px;

  }
  body.pg-contact .page-head-en {
    flex: none;
    font-size: 55px;
    line-height: 1;
    letter-spacing: 2px;

  }
  body.pg-contact .page-head-ja {
    margin-top: 2px;
    margin-left: 0;
    font-size: 13px;

  }
  body.pg-contact .form-section {
    padding: 50px 0 60px;

  }
  body.pg-contact .form-card {
    width: calc(100% - 40px);
    padding: 40px 24px 50px;
    border-radius: 10px;

  }
  body.pg-contact .form-group {
    margin-bottom: 36px;

  }
  body.pg-contact .form-label {
    font-size: 14px;
    margin-bottom: 8px;

  }
  body.pg-contact .form-input {
    height: 48px;
    font-size: 16px;

  }
  body.pg-contact .form-textarea {
    height: 140px;
    font-size: 16px;

  }
  body.pg-contact .radio-group {
    gap: 10px;

  }
  body.pg-contact .radio-item span {
    font-size: 14px;

  }
  body.pg-contact .privacy-area {
    margin-top: 30px;

  }
  body.pg-contact .privacy-text {
    font-size: 13px;

  }
  body.pg-contact .submit-area {
    margin-top: 46px;

  }
}

/* ==========================================================
   thanks
   ========================================================== */
html:has(body.pg-thanks) {
  overflow-x: clip;
}
body.pg-thanks {
  overflow-x: clip;
  padding-top: 85px;
}
body.pg-thanks .header-cta {
  transition: opacity 0.3s;
}
body.pg-thanks .header-cta:hover {
  color: #000;
  box-shadow: inset 0 0 0 1px #000;
}
body.pg-thanks .sp-only {
  display: none;
}
body.pg-thanks .header-line {
  height: 1px;
  background: #e8e8e8;
}
body.pg-thanks .thanks-section {
  background: #f3f1f1;
  padding: 120px 0 160px;
}
body.pg-thanks .thanks-card {
  width: min(700px, 100% - 60px);
  margin: 0 auto;
  background: #fff;
  border-radius: 15px;
  padding: 80px 60px;
  text-align: center;
}
body.pg-thanks .thanks-en {
  font-family: 'Cormorant Infant', serif;
  font-size: 56px;
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1;
  color: #000;
}
body.pg-thanks .thanks-ja {
  font-family: 'Zen Old Mincho', serif;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.05em;
  color: #000;
  margin-top: 12px;
}
body.pg-thanks .thanks-message {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 2;
  color: #4d4d4d;
  margin-top: 50px;
  letter-spacing: 0.03em;
}
body.pg-thanks .thanks-back {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 228px;
  height: 54px;
  border: 1px solid #000;
  border-radius: 3.6px;
  background: #fff;
  padding: 0 8px 0 24px;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 15.6px;
  font-weight: 500;
  color: #000;
  letter-spacing: 0.08em;
  margin-top: 50px;
  transition: background 0.3s, color 0.3s;
}
body.pg-thanks .thanks-back:hover {
  background: #000;
  color: #fff;
}
body.pg-thanks .thanks-back:hover .thanks-back-icon {
  background: #fff;
}
body.pg-thanks .thanks-back:hover .thanks-back-icon svg path {
  stroke: #000;
}
body.pg-thanks .thanks-back-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: #000;
  border-radius: 3.6px;
  flex-shrink: 0;
  transition: background 0.3s;
}
body.pg-thanks .thanks-back-icon svg {
  width: 12px;
  height: 12px;
}
body.pg-thanks .thanks-back-icon svg path {
  transition: stroke 0.3s;
}
@media (max-width: 767px) {
  body.pg-thanks {
    padding-top: 60px;
  }
  body.pg-thanks .site-header {
    height: auto;
    padding: 0;
  }
  body.pg-thanks .sp-only {
    display: inline;
  }
  body.pg-thanks .thanks-section {
    padding: 60px 0 80px;

  }
  body.pg-thanks .thanks-card {
    width: calc(100% - 40px);
    padding: 50px 24px 50px;
    border-radius: 10px;

  }
  body.pg-thanks .thanks-en {
    font-size: 38px;

  }
  body.pg-thanks .thanks-ja {
    font-size: 13px;
    margin-top: 8px;

  }
  body.pg-thanks .thanks-message {
    font-size: 14px;
    margin-top: 36px;
    line-height: 1.9;

  }
  body.pg-thanks .thanks-back {
    margin-top: 40px;

  }
}

/* ==========================================================
   privacy
   ========================================================== */
html:has(body.pg-privacy) {
  overflow-x: clip;
}
body.pg-privacy {
  overflow-x: clip;
  padding-top: 85px;
}
body.pg-privacy .site-header {
  box-shadow: 0 1px 0 #e8e8e8;
}
body.pg-privacy .header-cta {
  transition: opacity 0.3s;
}
body.pg-privacy .header-cta:hover {
  color: #000;
  box-shadow: inset 0 0 0 1px #000;
}
body.pg-privacy .page-head {
  padding: 0;
  background: #f3f1f1;
}
body.pg-privacy .page-head-crumb {
  width: fit-content; padding-top: min(1.1806%, 17px); padding-left: 5.7639%;
  position: relative; top: -3px;
  font-family: 'Cormorant Infant', serif; font-size: clamp(9px, 0.76389vw, 11px);
  line-height: 1.818182; letter-spacing: 0.03em; text-transform: uppercase;
}
body.pg-privacy .page-head-crumb a {
  color: inherit; text-decoration: none;
}
body.pg-privacy .page-head-crumb a:hover {
  opacity: 0.6;
}
body.pg-privacy .page-head-row {
  display: flex; flex-direction: column; align-items: center;
  padding: 90px 5.1389% 0;
}
body.pg-privacy .page-head-en {
  font-family: 'Cormorant Infant', serif; font-size: clamp(35px, 4.4vw, 57px);
  font-weight: 400; line-height: 1; letter-spacing: 0.02em; text-transform: uppercase;
}
body.pg-privacy .page-head-ja {
  margin-top: 16px;
  font-family: 'Zen Old Mincho', serif; font-size: clamp(10px, 1.1111vw, 14px);
  font-weight: 400; line-height: 1; letter-spacing: 0.15em; white-space: nowrap;
}
body.pg-privacy .policy-section {
  background: #f3f1f1;
  padding: 70px 0 140px;
}
body.pg-privacy .policy-inner {
  width: min(800px, 100% - 60px);
  margin: 0 auto;
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
body.pg-privacy .policy-inner.is-visible {
  opacity: 1;
  transform: translateY(0);
}
body.pg-privacy .policy-intro {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 2;
  color: #4d4d4d;
  letter-spacing: 0.03em;
  max-width: 800px;
}
body.pg-privacy .policy-heading {
  font-family: 'Zen Old Mincho', serif;
  font-size: 24px;
  font-weight: 500;
  color: #1f1f1f;
  letter-spacing: 0.05em;
  margin-top: 72px;
  padding-bottom: 18px;
  border-bottom: 1px solid #d0d0d0;
}
body.pg-privacy .policy-heading:first-of-type {
  margin-top: 56px;
}
body.pg-privacy .policy-date {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: #737373;
  text-align: right;
  margin-top: 36px;
  line-height: 1.8;
}
body.pg-privacy .policy-text {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 2;
  color: #4d4d4d;
  letter-spacing: 0.03em;
  margin-top: 28px;
}
body.pg-privacy .policy-text a {
  color: #1f1f1f;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: #aaa;
  transition: text-decoration-color 0.3s;
}
body.pg-privacy .policy-text a:hover {
  text-decoration-color: #1f1f1f;
}
body.pg-privacy .policy-ol {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 2;
  color: #4d4d4d;
  letter-spacing: 0.03em;
  margin-top: 20px;
  padding-left: 1.5em;
}
body.pg-privacy .policy-ol li {
  margin-bottom: 6px;
}
body.pg-privacy .policy-ul {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 2;
  color: #4d4d4d;
  letter-spacing: 0.03em;
  margin-top: 8px;
  padding-left: 1.5em;
  list-style: disc;
}
body.pg-privacy .policy-sub {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 500;
  color: #1f1f1f;
  margin-top: 32px;
  line-height: 2;
}
body.pg-privacy .policy-inner > p:first-child {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 2;
  color: #4d4d4d;
  letter-spacing: 0.03em;
  max-width: 800px;
}
body.pg-privacy .policy-inner h2 {
  font-family: 'Zen Old Mincho', serif;
  font-size: 24px;
  font-weight: 500;
  color: #1f1f1f;
  letter-spacing: 0.05em;
  margin-top: 72px;
  padding-bottom: 18px;
  border-bottom: 1px solid #d0d0d0;
}
body.pg-privacy .policy-inner h2:first-of-type {
  margin-top: 56px;
}
body.pg-privacy .policy-inner p {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 2;
  color: #4d4d4d;
  letter-spacing: 0.03em;
  margin-top: 28px;
}
body.pg-privacy .policy-inner a {
  color: #1f1f1f;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: #aaa;
  transition: text-decoration-color 0.3s;
}
body.pg-privacy .policy-inner a:hover {
  text-decoration-color: #1f1f1f;
}
body.pg-privacy .policy-inner ol {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 2;
  color: #4d4d4d;
  letter-spacing: 0.03em;
  margin-top: 20px;
  padding-left: 1.5em;
}
body.pg-privacy .policy-inner ol li {
  margin-bottom: 6px;
}
body.pg-privacy .policy-inner ul {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 2;
  color: #4d4d4d;
  letter-spacing: 0.03em;
  margin-top: 8px;
  padding-left: 1.5em;
  list-style: disc;
}
body.pg-privacy .policy-inner h3 {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 500;
  color: #1f1f1f;
  margin-top: 32px;
  line-height: 2;
}
body.pg-privacy .policy-inner .has-text-align-right,
body.pg-privacy .policy-inner .policy-date {
  font-size: 14px;
  font-weight: 400;
  color: #737373;
  text-align: right;
  margin-top: 36px;
  line-height: 1.8;
}
body.pg-privacy .cta-logo-pat {
  opacity: 0.2;
}
body.pg-privacy .cta-logo-pat--1 {
  top: 45px;
  width: 279px;
  height: 50px;
}
body.pg-privacy .cta-logo-pat--2 {
  left: 568px;
  top: 28px;
  width: 244px;
  height: 43px;
}
body.pg-privacy .cta-logo-pat--3 {
  left: 368px;
  top: 111px;
  width: 335px;
  height: 60px;
  opacity: 0.25;
}
body.pg-privacy .cta-logo-pat--4 {
  left: 0;
  top: 188px;
  width: 335px;
  height: 60px;
}
body.pg-privacy .cta-logo-pat--6 {
  top: 47px;
}
body.pg-privacy .cta-logo-pat--7 {
  left: 812px;
  top: 111px;
  width: 414px;
  height: 74px;
}
body.pg-privacy .cta-inner {
  z-index: 1;
  min-height: 260px;
}
body.pg-privacy .cta-label {
  letter-spacing: 0.1em;
}
body.pg-privacy .cta-button {
  width: 228px;
  height: 54px;
}
body.pg-privacy .page-head-crumb,
body.pg-privacy .page-head-en,
body.pg-privacy .page-head-ja {
  opacity: 0;
}
@media (max-width: 767px) {
  body.pg-privacy {
    padding-top: 60px;
  }
  body.pg-privacy .site-header {
    height: auto;
    padding: 0;
  }
  body.pg-privacy .page-head {
    height: 335px; padding: 0; box-sizing: border-box; background-size: auto 100%;
    position: relative; display: flex; flex-direction: column; justify-content: center;

  }
  body.pg-privacy .page-head-crumb {
    position: absolute; top: 7px; left: 0; padding-top: 0; padding-left: 30px; font-size: 12px;

  }
  body.pg-privacy .page-head-row {
    flex-direction: column; padding: 0 30px;
  }
  body.pg-privacy .page-head-en {
    flex: none; font-size: 36px; line-height: 1.15; letter-spacing: 1px;
  }
  body.pg-privacy .page-head-ja {
    margin-top: 6px; margin-left: 0; font-size: 13px;
  }
  body.pg-privacy .policy-section {
    padding: 50px 0 80px;
  }
  body.pg-privacy .policy-inner {
    width: calc(100% - 40px);
  }
  body.pg-privacy .policy-intro {
    font-size: 14px; line-height: 1.9;
  }
  body.pg-privacy .policy-heading {
    font-size: 19px; margin-top: 50px;
  }
  body.pg-privacy .policy-text {
    font-size: 14px; line-height: 1.9;
  }
  body.pg-privacy .policy-ol {
    font-size: 14px; line-height: 1.9;
  }
  body.pg-privacy .policy-ul {
    font-size: 14px; line-height: 1.9;
  }
  body.pg-privacy .policy-sub {
    font-size: 14px;
  }
}

/* ============================================================
   記事本文（WordPress投稿）互換スタイル
   ------------------------------------------------------------
   旧サイト(adept-m.net)の記事本文は独自クラスで組まれている。
   本文を書き換えずに新デザインの見た目に載せるための対応表。

     TTLh2/h3/h4/h5           見出し
     PS_table / td_th         表（thead を持たず、tbody の1行目が th）
     c_box intitle *_box      囲みボックス → .styled-box 相当
     l_emp / m_emp / s_emp    強調
     bd_blue span_block       関連記事への内部リンク枠
     sec-linkbnr-small/-big   CTAバナー → .article-cta-banner 相当
     LIST                     箇条書き

   あわせて、デザイン側に定義が無かった素の ul / ol / img / table /
   a / blockquote も、ここで面倒を見る。
   ※ 手書き。build_css.py が corporate.css の末尾に連結する。
   ============================================================ */

/* ---------- 見出し ---------- */
/* .TTLh2 / .TTLh3 は .article-body h2 / h3 がそのまま効くので追加不要 */

body.pg-column-detail .article-body h4,
body.pg-news-detail   .article-body h4 {
  margin-top: 35px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.7;
  color: #1f1f1f;
  padding-bottom: 6px;
  border-bottom: 1px solid #ccc;
}
body.pg-column-detail .article-body h4::before,
body.pg-news-detail   .article-body h4::before {
  content: none;
}

/* h5 は表のキャプションとしてのみ使われている */
body.pg-column-detail .article-body h5,
body.pg-news-detail   .article-body h5 {
  margin-top: 33px;
  margin-bottom: 0 !important;
  padding-bottom: 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
  color: #1f1f1f;
  display: flex;
  align-items: center;
  gap: 8px;
}
body.pg-column-detail .article-body h5::before,
body.pg-news-detail   .article-body h5::before {
  content: '';
  display: inline-block;
  width: 14px;
  height: 14px;
  min-width: 14px;
  background: #1c1c29;
}
body.pg-column-detail .article-body h5 + table,
body.pg-column-detail .article-body h5 + .table-scroll,
body.pg-column-detail .article-body h5 + figure,
body.pg-news-detail   .article-body h5 + table,
body.pg-news-detail   .article-body h5 + .table-scroll,
body.pg-news-detail   .article-body h5 + figure { margin-top: 9px !important; }
body.pg-column-detail .article-body h5 + figure .table-scroll,
body.pg-news-detail   .article-body h5 + figure .table-scroll { margin-top: 0 !important; }

/* 旧サイトの見出し色クラス（ttl_green / ttl_pink）は新デザインでは無効化 */

/* ---------- 段落・リンク ---------- */
body.pg-column-detail .article-body p,
body.pg-news-detail   .article-body p { margin-top: 20px; }
body.pg-column-detail .article-body > p:first-child,
body.pg-news-detail   .article-body > p:first-child { margin-top: 0; }

body.pg-column-detail .article-body a,
body.pg-news-detail   .article-body a {
  color: #1a6ec0;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity 0.3s;
}
body.pg-column-detail .article-body a:hover,
body.pg-news-detail   .article-body a:hover { opacity: 0.6; }

/* 強調 */
body.pg-column-detail .article-body .l_emp {
  font-size: 1.2em;
  font-weight: 700;
  color: #1f1f1f;
}
body.pg-column-detail .article-body .m_emp {
  font-weight: 700;
  color: #1f1f1f;
}
body.pg-column-detail .article-body .s_emp {
  font-weight: 700;
  background: linear-gradient(transparent 62%, #ffe9a8 62%);
}

/* ---------- リスト ---------- */
body.pg-column-detail .article-body ul,
body.pg-column-detail .article-body ol,
body.pg-news-detail   .article-body ul,
body.pg-news-detail   .article-body ol {
  margin-top: 18px;
  padding-left: 0;
  list-style: none;
}
body.pg-column-detail .article-body li,
body.pg-news-detail   .article-body li {
  position: relative;
  padding-left: 20px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  line-height: 2;
  color: #4d4d4d;
}
body.pg-column-detail .article-body ul > li::before,
body.pg-news-detail   .article-body ul > li::before {
  content: '';
  position: absolute;
  left: 4px;
  top: 0.85em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #4d4d4d;
}
body.pg-column-detail .article-body ol,
body.pg-news-detail   .article-body ol { counter-reset: li; }
body.pg-column-detail .article-body ol > li,
body.pg-news-detail   .article-body ol > li { counter-increment: li; padding-left: 26px; }
body.pg-column-detail .article-body ol > li::before,
body.pg-news-detail   .article-body ol > li::before {
  content: counter(li) '.';
  position: absolute;
  left: 0;
  font-weight: 700;
  color: #1f1f1f;
}
/* li の中の説明文（<br><span>説明</span> の2行イディオム） */
body.pg-column-detail .article-body li > span {
  display: block;
  font-size: 15px;
  line-height: 1.7;
}

/* ---------- 表 ---------- */
/* 旧サイトの表は thead を持たず、tbody の1行目が th、
   行見出しは td.td_th。SP は横スクロールさせる。 */
body.pg-column-detail .article-body .table-scroll,
body.pg-news-detail   .article-body .table-scroll {
  margin-top: 20px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
body.pg-column-detail .article-body table,
body.pg-news-detail   .article-body table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 5px;
  overflow: hidden;
}
body.pg-column-detail .article-body table.Twidth_90 { width: 90%; }
body.pg-column-detail .article-body table.Twidth_80 { width: 80%; }

body.pg-column-detail .article-body th,
body.pg-column-detail .article-body td,
body.pg-news-detail   .article-body th,
body.pg-news-detail   .article-body td {
  padding: 16px 18px;
  border: 1.5px solid #fff;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  line-height: 1.7;
  vertical-align: middle;
  text-align: left;
}
/* 見出し行：thead の th と、tbody 1行目の th の両方に効かせる */
body.pg-column-detail .article-body thead th,
body.pg-column-detail .article-body tbody tr:first-child th,
body.pg-news-detail   .article-body thead th,
body.pg-news-detail   .article-body tbody tr:first-child th {
  background: #1c1c29;
  color: #fff;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.08em;
}
body.pg-column-detail .article-body tbody td,
body.pg-news-detail   .article-body tbody td {
  background: #f2efec;
  color: #4d4d4d;
  font-weight: 400;
}
/* 行見出しセル — 全テーブルの左列を自動スタイル */
body.pg-column-detail .article-body td.td_th,
body.pg-news-detail   .article-body td.td_th,
body.pg-column-detail .article-body tbody td:first-child,
body.pg-news-detail   .article-body tbody td:first-child {
  background: #e6e1dc;
  font-weight: 700;
  color: #000;
  text-align: center;
  white-space: nowrap;
}

/* ---------- md_table（メリット・デメリット表） ---------- */
body.pg-column-detail .article-body table.md_table th,
body.pg-news-detail   .article-body table.md_table th {
  background: #1c1c29;
  color: #fff;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.08em;
  white-space: nowrap;
  width: 100px;
  vertical-align: middle;
}
body.pg-column-detail .article-body table.md_table td,
body.pg-news-detail   .article-body table.md_table td {
  background: #f5f4f2;
  border: 1.5px solid #d9d9d9;
}
body.pg-column-detail .article-body table.md_table .m_row th,
body.pg-news-detail   .article-body table.md_table .m_row th {
  border-bottom: 1px solid #333;
}

/* ---------- 囲みボックス（c_box） ---------- */
body.pg-column-detail .article-body .c_box {
  position: relative;
  margin-top: 45px;
  padding: 30px 28px 26px;
  border-radius: 5px;
  background: #f5f4f2;
}
body.pg-column-detail .article-body .c_box.intitle { padding-top: 45px; }
body.pg-column-detail .article-body .c_box .box_title {
  position: absolute;
  top: -22px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 6px 34px;
  border-radius: 22px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.06em;
  color: #000;
  text-align: center;
  white-space: nowrap;
  z-index: 2;
}
body.pg-column-detail .article-body .c_box p:first-of-type { margin-top: 0; }
body.pg-column-detail .article-body .c_box ul,
body.pg-column-detail .article-body .c_box ol { margin-top: 0; }

/* 色バリエーション（本文 = 淡色地、タイトル = 濃色ピル） */
body.pg-column-detail .article-body .blue_box   { background: #eef4fb; }
body.pg-column-detail .article-body .blue_box   .box_title { background: #bcd7f2; }
body.pg-column-detail .article-body .green_box  { background: #eef6f1; }
body.pg-column-detail .article-body .green_box  .box_title { background: #bfe3ce; }
body.pg-column-detail .article-body .yellow_box { background: #fbf7e6; }
body.pg-column-detail .article-body .yellow_box .box_title { background: #f6f0c4; }
body.pg-column-detail .article-body .pink_box   { background: #f7f1f0; }
body.pg-column-detail .article-body .pink_box   .box_title { background: #f8c5bd; }
body.pg-column-detail .article-body .gray_box   { background: #f2f2f2; }
body.pg-column-detail .article-body .gray_box   .box_title { background: #dcdcdc; }

/* ---------- 関連記事リンク枠 ---------- */
body.pg-column-detail .article-body .bd_blue.span_block,
body.pg-column-detail .article-body .span_block {
  display: block;
  margin-top: 24px;
  padding: 16px 20px;
  border: 1px solid #bcd7f2;
  border-left: 4px solid #1a6ec0;
  border-radius: 4px;
  background: #f7fafd;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  line-height: 1.9;
  color: #4d4d4d;
}

/* ---------- CTAバナー ---------- */
body.pg-column-detail .article-body .sec-linkbnr-small,
body.pg-column-detail .article-body .sec-linkbnr-big {
  margin: 55px auto;
  width: 446px;
  max-width: 100%;
  text-align: center;
}
body.pg-column-detail .article-body .sec-linkbnr-big { width: 640px; }
body.pg-column-detail .article-body .sec-linkbnr-small a,
body.pg-column-detail .article-body .sec-linkbnr-big a {
  display: block;
  text-decoration: none;
  transition: opacity 0.3s;
}
body.pg-column-detail .article-body .sec-linkbnr-small a:hover,
body.pg-column-detail .article-body .sec-linkbnr-big a:hover { opacity: 0.85; }
/* バナーを訴求する一文。
   本文の段落（.article-body p）は幅900px・text-align:justify なので、
   そのままだと左寄せ・全幅になってしまう。
   デザインはバナーと同じ幅で中央なので、幅を合わせて中央寄せする。 */
body.pg-column-detail .article-body .cta-txt-sub,
body.pg-news-detail   .article-body .cta-txt-sub {
  display: block;
  width: 446px;
  max-width: 100%;
  margin: 0 auto 8px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.6;
  color: #ff5755;
  text-align: center;
}
/* 大きいバナーの上に置く場合は、そのバナー幅に合わせる */
body.pg-column-detail .article-body .cta-txt-sub.is-wide,
body.pg-news-detail   .article-body .cta-txt-sub.is-wide { width: 640px; }

/* ブロック形式CTA: p.cta-txt-sub は本文と離し、直後のバナーとは詰める */
body.pg-column-detail .article-body p.cta-txt-sub,
body.pg-news-detail   .article-body p.cta-txt-sub {
  margin-top: 55px;
}
body.pg-column-detail .article-body p.cta-txt-sub + figure.sec-linkbnr-small,
body.pg-column-detail .article-body p.cta-txt-sub + .wp-block-image.sec-linkbnr-small,
body.pg-news-detail   .article-body p.cta-txt-sub + figure.sec-linkbnr-small,
body.pg-news-detail   .article-body p.cta-txt-sub + .wp-block-image.sec-linkbnr-small {
  margin-top: 0;
}

/* ---------- 画像・その他 ---------- */
body.pg-column-detail .article-body img,
body.pg-news-detail   .article-body img {
  max-width: 100%;
  height: auto;
  border-radius: 5px;
}
body.pg-column-detail .article-body p > img,
body.pg-news-detail   .article-body p > img { display: block; margin: 30px auto; }
body.pg-column-detail .article-body figure,
body.pg-news-detail   .article-body figure { margin: 30px 0; }
body.pg-column-detail .article-body figcaption,
body.pg-news-detail   .article-body figcaption {
  margin-top: 8px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  color: #808080;
  text-align: center;
}
body.pg-column-detail .article-body blockquote {
  margin-top: 24px;
  padding: 18px 22px;
  border-left: 4px solid #d9d9d9;
  background: #f7f7f7;
  color: #4d4d4d;
}
/* 空の <p>&nbsp;</p> スペーサー（相談事例に多い）を詰める */
body.pg-column-detail .article-body p:empty { display: none; }

/* ============================================================
   ページ内ナビ（サブメニュー）をヘッダーに密着させる
   ------------------------------------------------------------
   .page-nav は position:sticky で、スクロールするとヘッダーの
   直下に貼り付く。その top はヘッダーの実高さと一致させないと
   隙間が空き、そこから本文が透けて見える。

   実測したヘッダーの高さ:
     1200px以上   85px  … top:85px（ズレなし）
     768〜1199px  77px  … top:85px だと 8px 空く   ← 修正
     767px以下    61px  … top:60px だと 1px 重なる ← 修正

   ※ body の上余白もヘッダー高さに合わせる（先頭に無駄な空きが
     できるのを防ぐ）。
   ============================================================ */
@media (min-width: 768px) and (max-width: 1199px) {
  body.pg-vision,
  body.pg-service,
  body.pg-company-message,
  body.pg-column,
  body.pg-column-detail,
  body.pg-news,
  body.pg-news-detail,
  body.pg-contact,
  body.pg-thanks,
  body.pg-privacy { padding-top: 77px; }

  body.pg-vision .page-nav,
  body.pg-service .page-nav,
  body.pg-company-message .page-nav { top: 77px; }
}

@media (max-width: 767px) {
  body.pg-vision,
  body.pg-service,
  body.pg-company-message,
  body.pg-column,
  body.pg-column-detail,
  body.pg-news,
  body.pg-news-detail,
  body.pg-contact,
  body.pg-thanks,
  body.pg-privacy { padding-top: 61px; }

  body.pg-vision .page-nav,
  body.pg-service .page-nav,
  body.pg-company-message .page-nav { top: 61px; }
}

/* ============================================================
   代表メッセージ（企業）のボタン2つを、タブレットでも横並びに
   ------------------------------------------------------------
   .btn-line は幅 226px 固定。1200px以上なら親が 492px あるので
   2つ収まるが、タブレットでは親が 434→319px まで縮むため
   折り返して縦積みになっていた。
   栗田さん指示（2026-08-24）: 1440pxと同じく横2つ並びにする。
   固定幅をやめて親を半分ずつ分け合う形にし、中身を縮める。
   ============================================================ */
@media (min-width: 768px) and (max-width: 1199px) {
  body.pg-company-message .profile-btns {
    flex-wrap: nowrap;
    gap: 10px;
  }
  body.pg-company-message .btn-line {
    width: auto;
    flex: 1 1 0;
    min-width: 0;
    height: 42px;
    padding: 0 4px 0 10px;
  }
  body.pg-company-message .btn-line-text {
    font-size: clamp(9px, 1.16vw, 12.2px);
    letter-spacing: 0.2px;
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  body.pg-company-message .btn-line-icon {
    width: clamp(22px, 2.4vw, 28px);
    height: clamp(22px, 2.4vw, 28px);
  }
}

/* ============================================================
   タブレット：タイトル帯のリード文を、英字タイトルの高さの
   中央に合わせる
   ------------------------------------------------------------
   .page-head-row は align-items:flex-start で、リード文は
   margin-top: min(4.34%, 56px) で落とされている。
   その値が英字タイトルの中心より下になるため、幅が狭いほど
   下にずれていた（実測: 1199px で +7px、768px で +15px）。

   英字タイトルの中心に合わせるのに必要な余白は
     英字のmargin-top + (英字の高さ − リード文の高さ) ÷ 2
   だが、英字の高さは clamp()、リード文の高さは行数で変わるため
   CSS だけでは書けない。実測値から1次式で近似する。
     768px  → 15px ／ 1199px → 41px
   栗田さん指示（2026-08-24）。1200px以上とSPは変更していない。
   ============================================================ */
@media (min-width: 768px) and (max-width: 1199px) {
  body.pg-vision .page-head-lead,
  body.pg-service .page-head-lead,
  body.pg-company-message .page-head-lead {
    margin-top: calc(15px + (100vw - 768px) * 0.0612);
  }
}

/* ============================================================
   目次の入れ子（h3）
   デザインの .toc-box は h2 の1階層しか想定していなかったが、
   旧サイトは h2・h3 の2階層で出していたので、子階層を足す。
   ============================================================ */
body.pg-column-detail .toc-box .toc-sub,
body.pg-news-detail   .toc-box .toc-sub {
  list-style: none;
  margin: 2px 0 6px 1.1em;
  padding: 0;
}
body.pg-column-detail .toc-box .toc-sub li,
body.pg-news-detail   .toc-box .toc-sub li {
  counter-increment: none;
  position: relative;
  padding-left: 12px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 12px;
  line-height: 1.9;
  color: #4d4d4d;
}
body.pg-column-detail .toc-box .toc-sub li::before,
body.pg-news-detail   .toc-box .toc-sub li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.85em;
  width: 5px;
  height: 1px;
  background: #9a9a9a;
}
body.pg-column-detail .toc-box .toc-sub li a,
body.pg-news-detail   .toc-box .toc-sub li a {
  color: #4d4d4d;
  transition: opacity 0.3s;
}
body.pg-column-detail .toc-box .toc-sub li a:hover,
body.pg-news-detail   .toc-box .toc-sub li a:hover { opacity: 0.6; }

/* 見出しへ飛んだとき、固定ヘッダーに隠れないようにする */
body.pg-column-detail .article-body h2,
body.pg-column-detail .article-body h3,
body.pg-news-detail   .article-body h2,
body.pg-news-detail   .article-body h3 { scroll-margin-top: 100px; }
@media (min-width: 768px) and (max-width: 1199px) {
  body.pg-column-detail .article-body h2,
  body.pg-column-detail .article-body h3 { scroll-margin-top: 92px; }
}
@media (max-width: 767px) {
  body.pg-column-detail .article-body h2,
  body.pg-column-detail .article-body h3 { scroll-margin-top: 76px; }
}

/* ============================================================
   Snow Monkey Blocks をデザインに寄せる
   ------------------------------------------------------------
   クライアントが記事を書くときに使うブロック。
   プラグイン標準の見た目のままだとデザインと合わないので、
   デザイン側のパーツに寄せる。

   Snow Monkey は CSS カスタムプロパティを公開しているので、
   構造には触らず変数の上書きで色・角丸・余白を合わせる。
     .smb-balloon → デザインの .expert-comment（専門家コメント）
     .smb-box     → デザインの .styled-box（見出しピル付きボックス）
     .smb-alert   → 旧サイトの .c_box（色付きボックス4種）
   目次は Snow Monkey の目次ブロックが当テーマで動かないため
   （Snow Monkey「テーマ」のショートコード必須）、ez-toc を使う。
   ============================================================ */

/* ---------- 吹き出し ---------- */
body.pg-column-detail .smb-balloon,
body.pg-news-detail   .smb-balloon {
  --smb-balloon--background-color: #f6f0c4;
  --smb-balloon--border-color: #f6f0c4;
  --smb-balloon--border-radius: 10px;
  --smb-balloon--color: #000;
  --smb-balloon--avatar-border-width: 0px;
  --smb-balloon--gap: 18px;
  margin-top: 40px;
}
body.pg-column-detail .smb-balloon__figure,
body.pg-news-detail   .smb-balloon__figure {
  width: 98px;
  height: 98px;
  background: #e9e9e9;
}
body.pg-column-detail .smb-balloon__person,
body.pg-news-detail   .smb-balloon__person {
  width: 132px;
  justify-content: flex-start;
}
body.pg-column-detail .smb-balloon__name,
body.pg-news-detail   .smb-balloon__name {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.8;
  color: #000;
  text-align: center;
  white-space: normal;
}
body.pg-column-detail .smb-balloon__body,
body.pg-news-detail   .smb-balloon__body { padding: 20px; }
body.pg-column-detail .smb-balloon__body p,
body.pg-news-detail   .smb-balloon__body p {
  margin-top: 0;
  font-size: 16px;
  line-height: 1.8;
  color: #000;
}
body.pg-column-detail .smb-balloon__body p + p { margin-top: 12px; }

/* ---------- 見出し付きボックス ---------- */
body.pg-column-detail .smb-box,
body.pg-news-detail   .smb-box {
  --smb-box--background-color: #f7f1f0;
  --smb-box--border-color: #f7f1f0;
  --smb-box--border-radius: 5px;
  margin-top: 40px;
}
body.pg-column-detail .smb-box__body,
body.pg-news-detail   .smb-box__body { padding: 32px; }

/* ---------- 色付きボックス（旧サイトの c_box 相当） ---------- */
/* 色ごとに個別指定する。
   まとめて .smb-alert に書くと、プラグイン側の
   .smb-alert--success { --smb-alert--background-color: ... } より
   こちらの詳細度が高くなり、4色とも既定色になってしまう。 */
body.pg-column-detail .smb-alert,
body.pg-news-detail   .smb-alert {
  --smb-alert--border-radius: 5px;
  --smb-alert--padding: 26px 28px;
  margin-top: 40px;
}
/* 既定（黄）＝旧サイトの yellow_box「一言メモ」 */
body.pg-column-detail .smb-alert:not(.smb-alert--success):not(.smb-alert--warning):not(.smb-alert--remark),
body.pg-news-detail   .smb-alert:not(.smb-alert--success):not(.smb-alert--warning):not(.smb-alert--remark) {
  --smb-alert--background-color: #fbf7e6;
  --smb-alert--border-color: #f6f0c4;
  --smb-alert--color: #4d4d4d;
  --smb-alert--icon-color: #d8c86a;
}
/* 緑 */
body.pg-column-detail .smb-alert.smb-alert--success,
body.pg-news-detail   .smb-alert.smb-alert--success {
  --smb-alert--background-color: #eef6f1;
  --smb-alert--border-color: #bfe3ce;
  --smb-alert--color: #4d4d4d;
  --smb-alert--icon-color: #3f8f6d;
}
/* 赤系 → デザインのピンク */
body.pg-column-detail .smb-alert.smb-alert--warning,
body.pg-news-detail   .smb-alert.smb-alert--warning {
  --smb-alert--background-color: #f7f1f0;
  --smb-alert--border-color: #f8c5bd;
  --smb-alert--color: #4d4d4d;
  --smb-alert--icon-color: #d4736f;
}
/* グレー */
body.pg-column-detail .smb-alert.smb-alert--remark,
body.pg-news-detail   .smb-alert.smb-alert--remark {
  --smb-alert--background-color: #f2f2f2;
  --smb-alert--border-color: #dcdcdc;
  --smb-alert--color: #4d4d4d;
  --smb-alert--icon-color: #9a9a9a;
}
body.pg-column-detail .smb-alert__title,
body.pg-news-detail   .smb-alert__title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #000;
}
body.pg-column-detail .smb-alert__body p,
body.pg-news-detail   .smb-alert__body p { margin-top: 0; font-size: 15px; line-height: 1.9; }
body.pg-column-detail .smb-alert__body p + p { margin-top: 12px; }

/* ---------- 目次（Easy Table of Contents） ---------- */
/* Snow Monkey の目次ブロックは Snow Monkey「テーマ」のショートコードが
   前提で、当テーマでは何も出力しない（プラグインのソースで確認済み）。
   自動挿入できる ez-toc を使い、デザインの .toc-box に寄せる。 */
body.pg-column-detail #ez-toc-container,
body.pg-news-detail   #ez-toc-container {
  margin-top: 40px;
  margin-bottom: 40px;
  padding: 22px 23px;
  width: 100%;
  background: #f5f5f5;
  border: 1px solid #d9d9d9;
  border-radius: 5px;
  box-shadow: none;
  display: block;
  text-align: center;
}
body.pg-column-detail #ez-toc-container .ez-toc-title-container,
body.pg-news-detail   #ez-toc-container .ez-toc-title-container {
  margin-bottom: 30px;
}
body.pg-column-detail #ez-toc-container nav,
body.pg-news-detail   #ez-toc-container nav {
  margin-top: 20px;
  text-align: left;
}
body.pg-column-detail #ez-toc-container .ez-toc-title,
body.pg-news-detail   #ez-toc-container .ez-toc-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  color: #1f1f1f;
  letter-spacing: 0.15em;
  display: inline;
  vertical-align: middle;
  cursor: pointer;
}
/* トグルラベル（「目次」横のアイコン） */
body.pg-column-detail #ez-toc-container .ez-toc-cssicon-toggle-label,
body.pg-news-detail   #ez-toc-container .ez-toc-cssicon-toggle-label {
  display: inline-block;
  cursor: pointer;
  vertical-align: middle;
  margin-left: 6px;
}
body.pg-column-detail #ez-toc-container .ez-toc-cssicon-toggle-label .ez-toc-icon-toggle-span,
body.pg-news-detail   #ez-toc-container .ez-toc-cssicon-toggle-label .ez-toc-icon-toggle-span {
  display: none;
}
body.pg-column-detail #ez-toc-container .ez-toc-cssicon-toggle-label::after,
body.pg-news-detail   #ez-toc-container .ez-toc-cssicon-toggle-label::after {
  content: '';
  display: inline-block;
  width: 8px;
  height: 8px;
  border-right: 1.5px solid #4d4d4d;
  border-bottom: 1.5px solid #4d4d4d;
  transform: rotate(45deg);
  transition: transform 0.3s;
  vertical-align: 2px;
}
/* 開いた状態（unchecked = nav表示）：矢印を上向きに */
body.pg-column-detail #ez-toc-container:has(input:not(:checked)) .ez-toc-cssicon-toggle-label::after,
body.pg-news-detail   #ez-toc-container:has(input:not(:checked)) .ez-toc-cssicon-toggle-label::after {
  transform: rotate(-135deg);
  vertical-align: -1px;
}
body.pg-column-detail #ez-toc-container ul,
body.pg-news-detail   #ez-toc-container ul {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: toc;
}
body.pg-column-detail #ez-toc-container li,
body.pg-news-detail   #ez-toc-container li {
  position: relative;
  margin: 0;
  padding-left: 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 300;
  line-height: 2.3;
  color: #4d4d4d;
}
body.pg-column-detail #ez-toc-container li::before,
body.pg-news-detail   #ez-toc-container li::before { content: none; }
body.pg-column-detail #ez-toc-container a,
body.pg-news-detail   #ez-toc-container a {
  color: #4d4d4d;
  text-decoration: none;
  transition: opacity 0.3s;
}
body.pg-column-detail #ez-toc-container a:hover,
body.pg-news-detail   #ez-toc-container a:hover { opacity: 0.6; text-decoration: none; }
/* プラグインが出す連番（.ez-toc-heading-level-2 側）をデザインの体裁に */
body.pg-column-detail #ez-toc-container .ez-toc-list-level-1 > li > a::before,
body.pg-news-detail   #ez-toc-container .ez-toc-list-level-1 > li > a::before {
  counter-increment: toc;
  content: counter(toc, decimal-leading-zero) '. ';
}
/* 入れ子（h3）は番号を振らず、短い線で示す */
body.pg-column-detail #ez-toc-container ul ul,
body.pg-news-detail   #ez-toc-container ul ul {
  margin: 2px 0 6px 1.1em;
  counter-reset: none;
}
body.pg-column-detail #ez-toc-container ul ul li,
body.pg-news-detail   #ez-toc-container ul ul li {
  padding-left: 12px;
  font-size: 12px;
}
body.pg-column-detail #ez-toc-container ul ul li::before,
body.pg-news-detail   #ez-toc-container ul ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.85em;
  width: 5px;
  height: 1px;
  background: #9a9a9a;
}
/* プラグインの旧トグルボタン（使わない） */
body.pg-column-detail #ez-toc-container .ez-toc-title-toggle,
body.pg-news-detail   #ez-toc-container .ez-toc-title-toggle { display: none; }
/* プラグインが出すインラインのフォントサイズ/ウェイト上書きを無効化 */
body.pg-column-detail div#ez-toc-container .ez-toc-title,
body.pg-news-detail   div#ez-toc-container .ez-toc-title { font-size: 20px !important; font-weight: 500 !important; }
body.pg-column-detail div#ez-toc-container ul li,
body.pg-news-detail   div#ez-toc-container ul li { font-size: 16px !important; font-weight: 300 !important; }
body.pg-column-detail div#ez-toc-container ul li a,
body.pg-news-detail   div#ez-toc-container ul li a { font-size: 16px !important; font-weight: 300 !important; }

/* 見出しへ飛んだとき、固定ヘッダーに隠れないようにする */
body.pg-column-detail .article-body h2,
body.pg-column-detail .article-body h3,
body.pg-news-detail   .article-body h2,
body.pg-news-detail   .article-body h3 { scroll-margin-top: 100px; }
@media (min-width: 768px) and (max-width: 1199px) {
  body.pg-column-detail .article-body h2,
  body.pg-column-detail .article-body h3 { scroll-margin-top: 92px; }
}
@media (max-width: 767px) {
  body.pg-column-detail .article-body h2,
  body.pg-column-detail .article-body h3 { scroll-margin-top: 76px; }
  body.pg-column-detail .smb-balloon,
  body.pg-news-detail   .smb-balloon { display: flex; flex-direction: column; }
  body.pg-column-detail .smb-balloon__person,
  body.pg-news-detail   .smb-balloon__person { order: 2; width: auto; flex-direction: row; align-items: center; gap: 8px; margin-top: 12px; margin-left: 10px; }
  body.pg-column-detail .smb-balloon__body,
  body.pg-news-detail   .smb-balloon__body { order: 1; }
  body.pg-column-detail .smb-balloon__figure { width: 50px; height: 50px; }
  body.pg-column-detail .smb-balloon__name,
  body.pg-news-detail   .smb-balloon__name { font-size: 12px; }
  body.pg-column-detail .smb-alert { --smb-alert--padding: 20px 16px; }
  body.pg-column-detail .smb-box__body { padding: 20px 16px; }
}


/* ============================================================
   記事タイトルの折り返し
   ------------------------------------------------------------
   何もしないと「解説」の2文字だけが2行目に落ちるような
   不格好な割れ方をする（実測: 14238 は 31文字 + 2文字）。
   text-wrap: balance で各行の文字数が揃うようにする。
   クライアントが改行位置を指定した場合はそちらが優先される。
   ============================================================ */
body.pg-column-detail .article-title,
body.pg-news-detail   .article-title {
  text-wrap: balance;
}

/* 一覧カードの見出しも同様に */
body.pg-column .article-title,
body.pg-column .articles-heading { text-wrap: balance; }

/* 一覧が空のとき */
body.pg-column .articles-empty,
body.pg-news   .news-empty {
  padding: 60px 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  color: #808080;
  text-align: center;
}

/* ---------- SP ---------- */
@media (max-width: 767px) {
  body.pg-column-detail .article-body h4,
  body.pg-news-detail   .article-body h4 { margin-top: 26px; font-size: 15px; }
  body.pg-column-detail .article-body h5,
  body.pg-news-detail   .article-body h5 { margin-top: 22px; font-size: 15px; }
  body.pg-column-detail .article-body h5::before,
  body.pg-news-detail   .article-body h5::before { width: 12px; height: 12px; min-width: 12px; }

  body.pg-column-detail .article-body li,
  body.pg-news-detail   .article-body li { font-size: 14px; }
  body.pg-column-detail .article-body li > span { font-size: 13px; }

  body.pg-column-detail .article-body table,
  body.pg-news-detail   .article-body table {
    width: auto;
    min-width: 100%;
  }
  body.pg-column-detail .article-body table.Twidth_90,
  body.pg-column-detail .article-body table.Twidth_80 { width: auto; }
  body.pg-column-detail .article-body th,
  body.pg-column-detail .article-body td,
  body.pg-news-detail   .article-body th,
  body.pg-news-detail   .article-body td {
    padding: 10px 12px;
    font-size: 12px;
    line-height: 1.6;
  }
  /* 行見出しは PC では nowrap だが、SP でそのままだと長いラベルが
     1列目を押し広げ、本文セルが 93px（1行5文字）まで潰れる。
     SP では折り返させて、幅に上限を掛ける。 */
  body.pg-column-detail .article-body td.td_th,
  body.pg-news-detail   .article-body td.td_th,
  body.pg-column-detail .article-body tbody td:first-child,
  body.pg-news-detail   .article-body tbody td:first-child {
    min-width: 5em;
    max-width: 9em;
    white-space: normal;
  }

  /* 3列以上の表は、375px に押し込むと1行5〜8文字になって読めない。
     （実測: 3列表で 105〜139px ／ 5〜8文字。2列表は 200px 超あるので問題なし）
     3列以上だけ最低幅を確保して、枠の中で横スクロールさせる。 */
  body.pg-column-detail .article-body table:has(tr > *:nth-child(3)),
  body.pg-news-detail   .article-body table:has(tr > *:nth-child(3)) {
    min-width: 520px;
  }
  /* スクロールできることを示すヒント（JSが .is-scrollable を付ける） */
  body.pg-column-detail .article-body .table-scroll.is-scrollable,
  body.pg-news-detail   .article-body .table-scroll.is-scrollable {
    position: relative;
    padding-bottom: 22px;
  }
  body.pg-column-detail .article-body .table-scroll.is-scrollable::after,
  body.pg-news-detail   .article-body .table-scroll.is-scrollable::after {
    content: '← 横にスクロールできます →';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 11px;
    color: #999;
    text-align: center;
    pointer-events: none;
  }
  body.pg-column-detail .article-body thead th,
  body.pg-column-detail .article-body tbody tr:first-child th,
  body.pg-news-detail   .article-body thead th,
  body.pg-news-detail   .article-body tbody tr:first-child th { letter-spacing: 0.02em; }

  body.pg-column-detail .article-body .c_box { margin-top: 40px; padding: 26px 16px 20px; }
  body.pg-column-detail .article-body .c_box.intitle { padding-top: 40px; }
  body.pg-column-detail .article-body .c_box .box_title {
    top: -18px;
    min-height: 36px;
    padding: 5px 18px;
    font-size: 14px;
    white-space: normal;
    max-width: 90%;
  }

  body.pg-column-detail .article-body .bd_blue.span_block,
  body.pg-column-detail .article-body .span_block { padding: 13px 15px; font-size: 13px; }

  body.pg-column-detail .article-body .sec-linkbnr-small,
  body.pg-column-detail .article-body .sec-linkbnr-big { margin: 40px auto; width: 100%; }
  body.pg-column-detail .article-body .cta-txt-sub { font-size: 14px; }
}


body.pg-vision .history-item {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: subgrid;
}

/* サービス：PCのみ写真を縮小し、文章・箇条書きの幅を拡張 */
@media (min-width: 1200px) {
  body.pg-service .service > .inner { width: 1092px; margin: 0 auto; }
  body.pg-service .service-row { gap: 64px; justify-content: center; }
  body.pg-service .service-photo {
    flex: 0 0 36.4%;
    align-self: stretch;
    height: auto;
    aspect-ratio: auto;
    contain: size;
    object-fit: cover;
  }
  body.pg-service .service-body { flex: 0 0 490px; }
  body.pg-service .service-list { width: 100%; }
  body.pg-service .service-lead { width: 100%; max-width: 100%; }
  body.pg-service .service-list li {
    line-height: 1.7;
    padding: 16px 0;
    box-sizing: border-box;
    min-height: calc(3.4em + 33px);
  }
}

/* PC：サービス同士の間隔を30px短縮 */
@media (min-width: 1200px) {
  body.pg-service .service + .service .service-row { padding-top: 70px; }
}

/* SP：箇条書きの複数行の行間と項目余白 */
@media (max-width: 767px) {
  body.pg-service .service-list li {
    line-height: 1.7;
    padding: 12px 0;
    box-sizing: border-box;
    min-height: calc(3.4em + 25px);
  }
}

/* サービス説明・項目リストの手動改行はPCのみ */
@media (max-width: 1199px) {
  body.pg-service .svc-pc-break { display: none; }
}

/* タブレット：リードとリストを本文カラム内に収め、右端を揃える。 */
@media (min-width: 768px) and (max-width: 1199px) {
  body.pg-service .service-lead,
  body.pg-service .service-list {
    width: 100%;
    max-width: 100%;
  }
}

/* タブレットでもサービス全件の複数行リストをPC・SPと同じ行間にする。 */
@media (min-width: 768px) and (max-width: 1199px) {
  body.pg-service .service-list li {
    line-height: 1.7;
    padding: 12px 0;
    box-sizing: border-box;
    min-height: calc(3.4em + 25px);
  }
}

/* 2026-10-16: Corporate body/form typography aligned with Yu Gothic. */
body.pg-vision .history-desc,
body.pg-vision .history-notes li,
body.pg-vision .data-key,
body.pg-vision .data-val,
body.pg-company-message .profile-role,
body.pg-company-message .profile-text,
body.pg-company-message .profile-subhead,
body.pg-company-message .btn-line-text,
body.pg-company-message .message-body p,
body.pg-company-message .message-closing,
body.pg-company-message .message-body-intro,
body.pg-column .category-tag,
body.pg-column .article-cat,
body.pg-column .article-title,
body.pg-column .article-excerpt,
body.pg-column .article-more,
body.pg-column-detail .article-cat,
body.pg-column-detail .article-body p,
body.pg-column-detail .article-cta-banner-text,
body.pg-column-detail .toc-box-title,
body.pg-column-detail .toc-box ol li,
body.pg-column-detail .article-body h2,
body.pg-column-detail .article-body h3,
body.pg-column-detail .styled-box-header,
body.pg-column-detail .styled-box-item-title span,
body.pg-column-detail .expert-avatar-name,
body.pg-column-detail .compare-table th,
body.pg-column-detail .compare-table td,
body.pg-column-detail .author-box-license p,
body.pg-column-detail .author-box-desc,
body.pg-column-detail .author-box-profile-name,
body.pg-column-detail .author-box-profile-bio,
body.pg-column-detail .article-nav-link,
body.pg-column-detail .article-nav-center,
body.pg-column-detail .related-card-cat,
body.pg-column-detail .related-card-date,
body.pg-column-detail .related-card-title,
body.pg-contact .form-label,
body.pg-contact .form-input,
body.pg-contact .form-textarea,
body.pg-contact .radio-item span,
body.pg-contact .privacy-text,
body.pg-contact .submit-button,
body.pg-column-detail .article-body h4,
body.pg-column-detail .article-body h5,
body.pg-column-detail .article-body li,
body.pg-column-detail .article-body th,
body.pg-column-detail .article-body td,
body.pg-column-detail .article-body .c_box .box_title,
body.pg-column-detail .article-body .bd_blue.span_block,
body.pg-column-detail .article-body .span_block,
body.pg-column-detail .article-body figcaption,
body.pg-column-detail .toc-box .toc-sub li,
body.pg-column-detail .smb-balloon__name,
body.pg-column-detail .smb-alert__title,
body.pg-column-detail #ez-toc-container .ez-toc-title,
body.pg-column-detail #ez-toc-container li,
body.pg-column .articles-empty,
body.pg-column-detail .article-body .table-scroll.is-scrollable::after {
  font-family: 'YuGothic', 'Yu Gothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
}

/* Service: additional breathing room before contact on mobile. */
@media (max-width: 767px) {
  body.pg-service .cta-section { margin-top: 100px; }
  body.pg-vision .band { padding-bottom: 100px; }
}
