@charset "UTF-8";
/*
 * column-style.css
 */
@layer foundation, reset, vendor, layout, component, project, utility;
/* --- 1. 共通ロジックの定義（mixin） --- */
/* カラム幅計算用mixin */
/* 比率計算用mixin */
@layer foundation {
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  :root {
    --font-family-base: "Roboto", "游ゴシック体 Pr6N M", "游ゴシック体", "YuGothic", "游ゴシック", "Yu Gothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "meiryo", "Helvetica Neue", "arial", sans-serif;
    --font-family-sp: var(--font-family-base);
    --font-family-pc: var(--font-family-base);
    --font-family-en: "Roboto", sans-serif;
    --neutral-50: #ffffff; /* 薄い */
    --neutral-50-rgb: rgb(255,255,255); /* 薄い */
    --neutral-100: #f4f4f4;
    --neutral-100-rgb: rgb(244,244,244);
    --neutral-200: #f2f2f2;
    --neutral-200-rgb: rgb(0,0,0);
    --neutral-300: #d8d8d8;
    --neutral-300-rgb: rgb(0,0,0);
    --neutral-400: #99999c;
    --neutral-400-rgb: rgb(0,0,0);
    --neutral-500: #83838c;
    --neutral-500-rgb: rgb(0,0,0);
    --neutral-600: #707070;
    --neutral-600-rgb: rgb(0,0,0);
    --neutral-700: #43434c;
    --neutral-700-rgb: rgb(67,67,76);
    --neutral-800: #242424;
    --neutral-800-rgb: rgb(36,36,36);
    --neutral-900: #000000; /* 濃い */
    --neutral-900-rgb: rgb(0,0,0); /* 濃い */
    --color-primary-200: #EAF0F4;
    --sns-x: #000000;
    --sns-instagram: #ffffff;
    --sns-threads: #000000;
    --sns-facebook: #0765ff;
    --sns-youtube: #ff0000;
    --sns-linkdin: #0a66c1;
    --sns-line: #00ba6e;
    --sns-note: #000000;
    --padding-inline-container: clamp(16px, 2.036vw + 8.366px, 24px);
    --max-inline-size: 960px;
    --max-inline-size-medium: 1160px;
    --max-inline-size-large: 1608px;
  }
}
@layer reset {
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  /* ==========================================================
  !HTML5 elements
  ========================================================== */
  header,
  footer,
  nav,
  main,
  section,
  aside,
  article {
    display: block;
  }
  figure,
  figcaption {
    margin: 0;
    padding: 0;
  }
  /* ==========================================================
  !Reseting
  ========================================================== */
  /* 全ての要素のbox-sizingをデフォルトでborder-boxにする */
  :root {
    box-sizing: border-box;
    interpolate-size: allow-keywords;
  }
  *,
  ::before,
  ::after {
    box-sizing: inherit;
    border-width: 0;
    border-style: solid;
    background-repeat: no-repeat;
  }
  body {
    font-weight: 300;
    font-size: 1rem;
    line-height: 1.75;
    font-family: var(--font-family-sp);
    font-feature-settings: "palt";
    -moz-text-size-adjust: none;
         text-size-adjust: none;
    -webkit-text-size-adjust: 100%;
    background-color: var(--c-white);
  }
  body,
  div,
  pre,
  p,
  blockquote,
  dl,
  dt,
  dd,
  ul,
  ol,
  li,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  form,
  fieldset,
  th,
  td {
    margin: 0;
    padding: 0;
  }
  input,
  textarea {
    margin: 0;
    font-size: 100%;
  }
  label {
    cursor: pointer;
  }
  table {
    border-collapse: collapse;
    border-spacing: 0;
    font-size: 100%;
  }
  fieldset,
  img {
    border: 0;
  }
  img {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
  }
  address,
  caption,
  cite,
  code,
  dfn,
  em,
  th,
  var {
    font-style: normal;
    font-weight: normal;
  }
  ol,
  ul {
    list-style: none;
  }
  caption,
  th {
    text-align: left;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-weight: normal;
    font-size: 100%;
  }
  q:after,
  q:before {
    content: "";
  }
  abbr,
  acronym {
    border: 0;
  }
  button,
  input,
  select,
  textarea {
    font-size: 100%;
    font-family: inherit;
  }
  button {
    padding: 0;
    background-color: transparent;
    cursor: pointer;
  }
  /* ==========================================================
  !Layout
  ========================================================== */
  html {
    overflow-y: scroll;
    scroll-behavior: smooth;
  }
  body {
    padding: 63px 0 0;
    font-weight: 400;
    font-family: var(--font-family-sp) !important;
    font-feature-settings: "palt";
  }
  body.menu-open {
    position: relative;
  }
  body.menu-open::after {
    z-index: 998;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(36, 36, 36, 0.5);
    content: "";
  }
  body:has([aria-expanded=true]) {
    overflow: hidden;
  }
  a {
    text-decoration: none;
  }
  a:not([class]):has(img):focus-visible {
    opacity: 0.7;
    transition: opacity 0.3s;
  }
}
@layer layout {
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  /* ==========================================================
  !container
  ========================================================== */
  .l-container,
  .l-entry-content {
    box-sizing: border-box;
    max-inline-size: var(--max-inline-size);
    margin-inline: auto;
    padding-inline: var(--padding-inline-container);
  }
  .l-container a,
  .l-entry-content a {
    color: var(--neutral-900);
    text-decoration: underline;
  }
  .l-container a:not(:has(img))[target=_blank]::after,
  .l-entry-content a:not(:has(img))[target=_blank]::after {
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-left: 0.2em;
    content: "";
    vertical-align: middle;
  }
  .l-container a:not(:has(img))[href$=".pdf"]::after,
  .l-entry-content a:not(:has(img))[href$=".pdf"]::after {
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-left: 0.2em;
    background-color: var(--neutral-50);
    content: "";
    vertical-align: middle;
  }
  .l-container a:not(:has(img)):focus-visible,
  .l-entry-content a:not(:has(img)):focus-visible {
    color: var(--neutral-900);
  }
  .l-container a:not(:has(img)):focus-visible[target=_blank]::after,
  .l-entry-content a:not(:has(img)):focus-visible[target=_blank]::after {
    background-color: var(--c-black);
  }
  .l-container a:not(:has(img)):focus-visible[href$=".pdf"]::after,
  .l-entry-content a:not(:has(img)):focus-visible[href$=".pdf"]::after {
    background-color: var(--c-black);
  }
  .l-container--medium {
    max-inline-size: var(--max-inline-size-medium);
  }
  .l-container--large {
    max-inline-size: var(--max-inline-size-large);
  }
  .l-container * {
    box-sizing: border-box;
  }
  .l-entry-content {
    padding-block: clamp(28px, 6.471vw + 3.732px, 70px) clamp(40px, 6.163vw + 16.888px, 80px);
  }
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  /* ==========================================================
  !header
  ========================================================== */
  .l-header {
    z-index: 1000;
    position: fixed;
    top: 0;
    width: 100%;
    padding-block: 14px;
    border-bottom: 1px solid var(--neutral-100);
    background-color: var(--neutral-50);
  }
  .l-header__inner {
    display: flex;
    position: relative;
    flex-flow: row nowrap;
    align-items: center;
    justify-content: space-between;
    padding-inline: clamp(16px, 3.698vw + 2.133px, 40px);
  }
  .l-header__logo a {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    justify-content: flex-start;
  }
  .l-header__logo img {
    max-width: clamp(57px, 2.157vw + 48.911px, 71px);
    height: auto;
  }
  .l-header__title {
    display: inline-block;
    margin: 0 0 0 clamp(16px, 1.233vw + 11.377px, 24px);
    color: #111;
    font-weight: 400;
    font-size: 0.75rem;
    font-family: var(--font-family-en);
    letter-spacing: 0.05em;
  }
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  /* ==========================================================
  !navbar
  ========================================================== */
  .l-navbar {
    display: block;
    z-index: 999;
    position: absolute;
    top: 49px;
    left: 0;
    width: 100%;
    height: calc(100vh - 63px);
    overflow-x: hidden;
    overflow-y: scroll;
    background-color: var(--neutral-50);
    -webkit-overflow-scrolling: touch;
  }
  .l-navbar .l-navbar__inner {
    padding: 40px 20px;
  }
  .l-navbar .l-navbar__list {
    background-color: var(--neutral-100);
    color: var(--neutral-900);
  }
  .l-navbar .l-navbar__list .l-navbar___title {
    margin-bottom: 20px;
    font-weight: 700;
    font-size: 1.625rem;
    line-height: 1.2;
  }
  .l-navbar .l-navbar__list .l-global-nav__item {
    border-width: 0 0 1px 0; /* l-global-nav__item */
    border-style: solid;
    border-color: var(--neutral-900);
  }
  .l-navbar .l-navbar__list .l-global-nav__link {
    display: flex;
    position: relative; /* l-global-nav__link */
    align-items: center;
    min-height: 4.2em; /* 2行分を最低高さにする */
    padding: 17px 36px 17px 0;
    color: var(--neutral-900);
    font-weight: 700;
    font-size: 0.8125rem;
    line-height: 1.6;
    letter-spacing: 0.05em;
  }
  .l-navbar .l-navbar__list .l-global-nav__link:focus-visible {
    text-decoration: underline;
  }
  .l-navbar .l-navbar__list .l-global-nav__link:focus-visible::after {
    right: 3px;
  }
  .l-navbar .l-navbar__list .l-global-nav__link::after {
    display: grid;
    position: absolute;
    top: 50%;
    right: 16px;
    place-content: center;
    width: 20px;
    height: 20px;
    padding-left: 2px;
    transform: translateY(-50%);
    border-radius: 50%;
    background: url(/column/knowledge/common/img/ico_circlearrow_r_blackline.svg) no-repeat top 50% right 0;
    background-size: contain;
    content: "";
    transition: all 0.3s;
  }
  .l-navbar .l-navbar__consider {
    background-color: var(--neutral-700);
    color: var(--neutral-50);
  }
  .l-navbar .l-navbar__consider .l-navbar___title {
    margin-bottom: 20px;
    font-weight: 700;
    font-size: 1.125rem;
    line-height: 1.2;
  }
  .l-navbar .l-navbar__consider .l-global-list {
    display: block;
    margin-bottom: 40px;
  }
  .l-navbar .l-navbar__consider .l-global-list__term {
    display: block; /* l-global__term */
    border-width: 0 0 1px 0;
    border-style: solid;
    border-color: var(--neutral-50);
  }
  .l-navbar .l-navbar__consider .l-global-list__description {
    padding-left: 2rem; /* l-global__description */
  }
  .l-navbar .l-navbar__consider .l-global-list__description .l-global-nav__link {
    font-weight: 400;
  }
  .l-navbar .l-navbar__consider .l-global-nav {
    align-self: flex-end;
  }
  .l-navbar .l-navbar__consider .l-global-nav__item {
    border-width: 0 0 1px 0; /* l-global-nav__item */
    border-style: solid;
    border-color: var(--neutral-50);
  }
  .l-navbar .l-navbar__consider .l-global-nav__link {
    display: flex;
    position: relative; /* l-global-nav__link */
    align-items: center;
    padding: 17px 36px 17px 0;
    color: var(--neutral-50);
    font-weight: 700;
    font-size: 0.8125rem;
    line-height: 1.6;
    letter-spacing: 0.05em;
  }
  .l-navbar .l-navbar__consider .l-global-nav__link:focus-visible {
    text-decoration: underline;
  }
  .l-navbar .l-navbar__consider .l-global-nav__link:focus-visible::after {
    right: 3px;
  }
  .l-navbar .l-navbar__consider .l-global-nav__link::after {
    display: grid;
    position: absolute;
    top: 50%;
    right: 16px;
    place-content: center;
    width: 20px;
    height: 20px;
    padding-left: 2px;
    transform: translateY(-50%);
    border-radius: 50%;
    background: url(/column/knowledge/common/img/ico_circlearrow_r_whiteline.svg) no-repeat top 50% right 0;
    background-size: contain;
    content: "";
    transition: all 0.3s;
  }
  /* ==========================================================
  !JS発動
  ========================================================== */
  #js-global-nav[aria-hidden=true] {
    display: none;
  }
  #js-global-nav[aria-hidden=false] {
    display: block;
  }
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  .l-breadcrumbs {
    width: 100%;
    margin: 0 auto;
    border-top: 1px solid var(--neutral-300);
    background: var(--neutral-50);
  }
  .l-breadcrumbs__inner {
    max-width: var(--max-inline-size-medium);
    margin-inline: auto;
    padding-inline: var(--padding-inline-container);
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;
    -ms-overflow-style: none; /* IE, Edge */
    scrollbar-width: none; /* Firefox */
  }
  .l-breadcrumbs__inner::-webkit-scrollbar {
    display: none; /* Chrome, Safari */
  }
  .l-breadcrumbs__list {
    display: flex;
    padding-block: clamp(14px, 0.616vw + 11.689px, 18px);
  }
  .l-breadcrumbs__list-item {
    display: flex;
    align-items: center;
    font-size: 0.875rem;
  }
  .l-breadcrumbs__list-item:not(:first-child)::before {
    width: 0.5em;
    height: 0.5em;
    margin-inline: 10px;
    transform: rotate(45deg) translateY(1px);
    border-top: 1px solid var(--neutral-500);
    border-right: 1px solid var(--neutral-500);
    content: "";
  }
  .l-breadcrumbs__list-item a {
    color: var(--c-black);
    text-decoration: underline;
  }
  .l-breadcrumbs__list-item a:focus-visible {
    text-decoration: none;
  }
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  .l-footer {
    width: 100%;
  }
  .l-footer__logo {
    display: flex;
    justify-content: center;
    padding-block: 52px;
    background-color: var(--neutral-800);
  }
  .l-footer__logo img {
    width: 100px;
    height: auto;
  }
  .l-footer__inner {
    padding-block: 18px 26px;
    background-color: var(--neutral-700);
    color: var(--neutral-50);
  }
  .l-footer__list {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .l-footer__item {
    line-height: 1.8;
  }
  .l-footer__link {
    margin-right: 2px;
    color: var(--neutral-50);
    font-size: 12px;
  }
  .l-footer__copyright {
    margin-top: 16px;
    font-size: 0.75rem;
    font-family: var(--font-family-en);
    text-align: center;
  }
  .l-footer__pagetop {
    display: grid;
    visibility: hidden;
    position: fixed;
    right: clamp(16px, 0.616vw + 13.689px, 20px);
    bottom: clamp(17px, 6.626vw - 7.846px, 60px);
    place-content: center;
    width: clamp(41px, 1.079vw + 36.955px, 48px);
    height: clamp(41px, 1.079vw + 36.955px, 48px);
    border: 1px solid var(--neutral-300);
    border-radius: 50%;
    background: var(--neutral-50);
    box-shadow: 0 0 6px rgba(0, 0, 0, 0.2);
    opacity: 0;
    transition: all 0.3s ease;
  }
  .l-footer__pagetop.is-visible {
    visibility: visible;
    opacity: 1;
  }
  .l-footer__pagetop:hover, .l-footer__pagetop:focus {
    opacity: 0.6;
  }
  .l-footer__pagetop::before {
    display: block;
    width: clamp(14px, 0.462vw + 12.266px, 17px);
    height: clamp(10px, 0.308vw + 8.844px, 12px);
    transform: translateY(-1px);
    background: var(--neutral-500);
    content: "";
    mask: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2217%22%20height%3D%2212.087%22%20viewBox%3D%220%200%2017%2012.087%22%3E%3Cpath%20fill%3D%22%2383838c%22%20d%3D%22m0%2010.187%202.259%201.9%206.3-7.5%206.184%207.37L17%2010.062%208.555%200Z%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;
  }
}
@layer component {
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  .c-hamburger-button svg .line {
    transform-origin: center;
    transition: transform 0.3s ease, opacity 0.3s ease;
  }
  .c-hamburger-button[aria-expanded=true] .line.top {
    transform: translateX(-4px) translateY(7px) rotate(35deg);
  }
  .c-hamburger-button[aria-expanded=true] .line.middle {
    opacity: 0;
  }
  .c-hamburger-button[aria-expanded=true] .line.bottom {
    transform: translateX(-6px) translateY(-6px) rotate(-35deg);
  }
  .c-button {
    text-align: center;
  }
  .c-button-primary {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: clamp(300px, 15.408vw + 242.219px, 400px);
    padding: clamp(16px, 0.616vw + 13.689px, 20px) 32px clamp(16px, 0.616vw + 13.689px, 20px) 16px;
    border: 1px solid transparent;
    font-weight: bold;
    font-family: var(--font-family);
    text-decoration: none;
    transition: all 0.3s ease;
  }
  .c-button-primary {
    background: var(--neutral-700) url(/column/knowledge/common/img/ico_circlearrow_r_whiteline.svg) no-repeat right 10px top 50%;
    background-size: 20px auto;
    color: var(--neutral-50);
  }
  .c-button-secondary {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: clamp(300px, 15.408vw + 242.219px, 400px);
    padding: clamp(16px, 0.616vw + 13.689px, 20px) 32px clamp(16px, 0.616vw + 13.689px, 20px) 16px;
    border: 1px solid transparent;
    font-weight: bold;
    font-family: var(--font-family);
    text-decoration: none;
    transition: all 0.3s ease;
  }
  .c-button-secondary {
    border-color: var(--neutral-900);
    background: var(--neutral-50) url(/column/knowledge/common/img/ico_circlearrow_r_blackline.svg) no-repeat right 10px top 50%;
    background-size: 20px auto;
    color: var(--neutral-900);
  }
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  /* ==========================================================
  !Box
  ========================================================== */
  /* 基本：SP1カラム　PC2カラム */
  .c-box__row--ratio2-8 {
    display: block;
    margin-bottom: clamp(24px, 4.071vw + 8.733px, 40px);
  }
  .c-box__row--ratio2-8--reverse {
    display: block;
    margin-bottom: clamp(24px, 4.071vw + 8.733px, 40px);
  }
  .c-box__row--ratio3-7 {
    display: block;
    margin-bottom: clamp(24px, 4.071vw + 8.733px, 40px);
  }
  .c-box__row--ratio3-7--reverse {
    display: block;
    margin-bottom: clamp(24px, 4.071vw + 8.733px, 40px);
  }
  .c-box__row--ratio4-6 {
    display: block;
    margin-bottom: clamp(24px, 4.071vw + 8.733px, 40px);
  }
  .c-box__row--ratio4-6--reverse {
    display: block;
    margin-bottom: clamp(24px, 4.071vw + 8.733px, 40px);
  }
  .c-box__row--col2 {
    display: block;
    margin-bottom: clamp(24px, 4.071vw + 8.733px, 40px);
  }
  .c-box__row--col2 > * {
    width: 100%;
  }
  .c-box__row--col3 {
    display: block;
    margin-bottom: clamp(24px, 4.071vw + 8.733px, 40px);
  }
  .c-box__row--col3 > * {
    width: 100%;
  }
  .c-box__row--col4 {
    display: block;
    margin-bottom: clamp(24px, 4.071vw + 8.733px, 40px);
  }
  .c-box__row--col4 > * {
    width: 48%;
  }
  .c-box__col--col1 {
    display: flex;
    justify-content: space-between;
    margin-bottom: 40px;
  }
  .c-box__col--col1 > * {
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
  }
  .c-box__col--col1 .c-box__image {
    text-align: center;
  }
  .c-box__image {
    margin-bottom: 16px;
  }
  .c-box__image--caption {
    padding-top: 16px; /* c-box__image--caption */
    color: var(--neutral-600);
    font-size: 0.875rem;
    line-height: 1.4;
    text-align: left;
  }
  /* 枠線 */
  .c-box-frame {
    margin-bottom: 24px;
    padding: clamp(16px, 3.698vw + 2.133px, 40px);
    border-width: 1px 1px 1px 1px;
    border-style: solid;
    border-color: var(--neutral-400);
  }
  .c-box-frame > *:last-child {
    margin-bottom: 0;
  }
  /* 色面 */
  .c-box-paint {
    margin-bottom: clamp(24px, 2.465vw + 14.753px, 40px);
    padding: clamp(16px, 3.698vw + 2.133px, 40px);
    background-color: var(--neutral-100);
  }
  .c-box-paint > *:last-child {
    margin-bottom: 0;
  }
  /* 色面青 */
  .c-box-paint-blue {
    margin-bottom: clamp(24px, 2.465vw + 14.753px, 40px);
    padding: clamp(16px, 3.698vw + 2.133px, 40px);
    background-color: var(--color-primary-200);
  }
  .c-box-paint-blue > *:last-child {
    margin-bottom: 0;
  }
  /* 見出し（dt相当）のみ色面 */
  .c-box-check {
    margin-bottom: 40px;
    padding: 0;
    border-width: 1px 1px 1px 1px;
    border-style: solid;
    border-color: var(--neutral-700);
  }
  .c-box-check__title {
    display: flex;
    align-items: flex-start;
    padding: clamp(16px, 1.233vw + 11.377px, 24px) clamp(16px, 3.698vw + 2.133px, 40px);
    background-color: var(--neutral-700);
    color: var(--neutral-50);
    font-weight: 700;
    line-height: 1.5;
  }
  .c-box-check__title::before {
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-right: 8px;
    background: url(/column/knowledge/common/img/ico_check_white.svg) no-repeat left top;
    background-size: contain;
    content: "";
  }
  .c-box-check__text {
    padding: clamp(16px, 1.233vw + 11.377px, 24px) clamp(16px, 3.698vw + 2.133px, 40px);
  }
  .c-box-check-paint {
    margin-bottom: 40px;
    padding: 0;
  }
  .c-box-check-paint__title {
    display: flex;
    align-items: flex-start;
    padding: clamp(16px, 1.233vw + 11.377px, 24px) clamp(16px, 3.698vw + 2.133px, 40px);
    background-color: var(--neutral-700);
    color: var(--neutral-50);
    font-weight: 700;
  }
  .c-box-check-paint__title::before {
    display: inline-block;
    width: 1.5em;
    height: 1.5em;
    margin-right: 8px;
    background: url(/column/knowledge/common/img/ico_check_white.svg) no-repeat left top;
    background-size: contain;
    content: "";
  }
  .c-box-check-paint__text {
    padding: clamp(16px, 1.233vw + 11.377px, 24px) clamp(16px, 3.698vw + 2.133px, 40px);
    background-color: var(--neutral-200);
  }
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  .c-cta {
    margin: clamp(40px, 2.465vw + 30.755px, 56px) 0;
  }
  .c-cta__list {
    display: flex; /* c-cta__list */
    flex-direction: column;
    margin: 0;
    padding: 0;
    gap: clamp(16px, 1.233vw + 11.377px, 24px);
    list-style: none;
  }
  .c-cta__item {
    width: 100%; /* c-cta__item */
  }
  .c-cta__item > * {
    width: 100%;
  }
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  /* ==========================================================
  !H(n)eading
  ========================================================== */
  /* H1
  ------------------------------------ */
  .c-heading-lv1 {
    margin: 0 0 8px 0;
    font-weight: 600;
    font-size: 1.75rem;
    line-height: 1.6;
  }
  /* H2
  ------------------------------------ */
  .c-heading-lv2 {
    margin: 0 0 24px 0;
    font-weight: 600;
    font-size: 1.5rem;
    line-height: 1.5;
    scroll-margin-top: 100px;
  }
  /* h2上の線付き */
  .c-heading-lv2--line {
    position: relative;
    margin: 0 0 24px 0;
    padding-top: 1.2em;
    font-weight: 600;
    font-size: 1.5rem;
    line-height: 1.5;
    scroll-margin-top: 100px;
  }
  .c-heading-lv2--line::before {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100px;
    height: 2px;
    background-color: var(--neutral-900);
    content: "";
  }
  /* H3
  ------------------------------------ */
  .c-heading-lv3 {
    margin: 0 0 16px 0;
    font-weight: 600;
    font-size: 1.375rem;
    line-height: 1.5;
    scroll-margin-top: 100px;
  }
  /* 電球アイコン付き */
  .c-heading-lv3-icon-light {
    margin: 0 0 16px 0;
    padding-top: 48px;
    background: url(/column/knowledge/common/img/ico_lightbulb.svg) no-repeat center top;
    background-size: 40px auto;
    font-weight: 600;
    font-size: 1.5rem;
    text-align: center;
    scroll-margin-top: 100px;
  }
  /* ラベル付き */
  .c-heading-lv3-label {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 16px;
    font-weight: bold;
    font-size: 1.375rem;
    line-height: 1.5;
    scroll-margin-top: 100px;
  }
  .c-label {
    display: inline-block;
    margin-bottom: 8px;
    padding: 10px 16px 8px 16px;
    background-color: var(--neutral-900);
    color: var(--neutral-50);
    font-weight: 500;
    font-size: 1rem;
    line-height: 1;
    font-family: var(--font-family-en);
    vertical-align: middle;
  }
  /* H4
  ------------------------------------ */
  .c-heading-lv4 {
    margin: 0 0 16px 0;
    font-weight: 600;
    font-size: 1.125rem;
    line-height: 1.4;
  }
  .c-heading-lv4--center, .c-heading-lv4--center-tab {
    margin: 0 0 16px 0;
    font-weight: 600;
    font-size: 1.125rem;
    line-height: 1.4;
    text-align: center;
  }
  .c-heading-lv4--center-tab {
    text-align: left;
  }
  /* ■付き */
  .c-heading-lv4--square {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin-bottom: 8px;
    font-weight: bold;
    font-size: 1.125rem;
    line-height: 1.5;
  }
  .c-heading-lv4--square::before {
    display: inline-block;
    width: 0.7em;
    height: 0.7em;
    margin-right: 8px;
    background-color: var(--neutral-900);
    content: "";
    vertical-align: middle;
  }
  /* H5
  ------------------------------------ */
  .c-heading-lv5 {
    position: relative;
    margin: 0 0 16px 0;
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.5;
  }
  /* 先頭にアイコン
  ------------------------------------ */
  /* 本 */
  .c-heading-icon-book {
    margin: 0 0 16px 0;
    font-weight: 600;
    font-size: 1.125rem;
  }
  .c-heading-icon-book {
    padding-left: 36px;
    background: url(/column/knowledge/common/img/ico_book.svg) no-repeat left center;
    background-size: 28px auto;
  }
  /* 電車 */
  .c-heading-icon-train {
    margin: 0 0 16px 0;
    font-weight: 600;
    font-size: 1.125rem;
  }
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  /* ==========================================================
  !Listing
  ========================================================== */
  .c-ul-disc01 {
    margin-bottom: 24px;
    padding-left: 0;
    list-style-type: none; /* デフォルトのポッチを消す */
  }
  .c-ul-disc01__list {
    position: relative; /* c-ul-disc01__list */
    margin-bottom: 8px;
    padding-left: 1.2em; /* 丸のスペースを確保 */
    line-height: 1.75;
  }
  .c-ul-disc01__list::before {
    position: absolute;
    top: 0.6em; /* 行の高さに合わせて調整 */
    left: 0.2em;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: currentColor; /* テキストの色に追従 */
    content: "";
  }
  .c-ul-disc01__list .c-ul-disc01-sub {
    margin-top: 8px;
    margin-left: 0.5em;
    padding-left: 0;
  }
  .c-ul-disc01__list .c-ul-disc01-sub__list {
    position: relative; /* c-ul-disc01-sub__list */
    padding-left: 1.5em;
    list-style-type: none;
  }
  .c-ul-disc01__list .c-ul-disc01-sub__list::before {
    box-sizing: border-box;
    position: absolute;
    top: 0.6em;
    left: 0.2em;
    width: 8px;
    height: 8px;
    border: 1px solid currentColor; /* 白抜きにする場合 */
    border-radius: 50%;
    background-color: transparent;
    content: "";
  }
  .c-ol-normal01 {
    margin-left: 2.2em;
    list-style: decimal;
  }
  .c-ol-normal01 li {
    margin-bottom: 8px;
    line-height: 1.75;
  }
  .c-ol-normal01 li > ol {
    margin-left: 1.7em;
    list-style: decimal;
  }
  .c-dl-bold {
    margin-bottom: 40px;
  }
  .c-dl-bold__title {
    margin-bottom: 0.5em;
    font-weight: 700;
  }
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  /* ==========================================================
  !MicroModal
  ========================================================== */
  .modal {
    display: none;
  }
  .modal.is-open {
    display: block;
  }
  .modal__overlay {
    display: flex;
    z-index: 9999;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.85);
  }
  .modal__container {
    box-sizing: border-box;
    position: relative;
    max-width: 90vw;
    max-height: 90vh;
    padding: 10px;
    overflow-y: auto;
    border-radius: 4px;
    background-color: #fff;
  }
  .modal__content {
    line-height: 0;
  }
  .modal__content img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 80vh;
    object-fit: contain;
  }
  /* アニメーション：micromodal-slide */
  @keyframes mmfadeIn {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }
  @keyframes mmfadeOut {
    from {
      opacity: 1;
    }
    to {
      opacity: 0;
    }
  }
  @keyframes mmslideIn {
    from {
      transform: translateY(15%);
    }
    to {
      transform: translateY(0);
    }
  }
  @keyframes mmslideOut {
    from {
      transform: translateY(0);
    }
    to {
      transform: translateY(-10%);
    }
  }
  .micromodal-slide {
    display: none;
  }
  .micromodal-slide.is-open {
    display: block;
  }
  .micromodal-slide[aria-hidden=false] .modal__overlay {
    animation: mmfadeIn 0.3s cubic-bezier(0, 0, 0.2, 1);
  }
  .micromodal-slide[aria-hidden=false] .modal__container {
    animation: mmslideIn 0.3s cubic-bezier(0, 0, 0.2, 1);
  }
  .micromodal-slide[aria-hidden=true] .modal__overlay {
    animation: mmfadeOut 0.3s cubic-bezier(0, 0, 0.2, 1);
  }
  .micromodal-slide[aria-hidden=true] .modal__container {
    animation: mmslideOut 0.3s cubic-bezier(0, 0, 0.2, 1);
  }
  .js-modal-trigger {
    cursor: pointer;
    transition: opacity 0.2s;
  }
  .js-modal-trigger:hover {
    opacity: 0.8;
  }
  .js-modal-trigger:focus-visible {
    outline: 2px solid #007bff;
    outline-offset: 4px;
  }
  /* 閉じるボタンのスタイル */
  .modal__close {
    appearance: none;
    z-index: 10000;
    position: fixed;
    top: clamp(15px, 0.77vw + 12.111px, 20px);
    right: clamp(15px, 0.77vw + 12.111px, 20px);
    width: clamp(40px, 0.616vw + 37.689px, 44px);
    height: clamp(40px, 0.616vw + 37.689px, 44px);
    padding: 0;
    transform: none !important;
    border: none;
    background: transparent;
    cursor: pointer;
    transition: opacity 0.2s ease;
  }
  .modal__close::before, .modal__close::after {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 30px;
    height: 2px;
    border-radius: 10px;
    background-color: #fff;
    content: "";
  }
  .modal__close::before {
    transform: translate(-50%, -50%) rotate(45deg);
  }
  .modal__close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }
  .modal__close:hover {
    transform: scale(1.1);
    opacity: 0.8;
  }
  .modal__close:focus {
    outline: 2px solid #fff;
    outline-offset: 2px;
  }
  .modal__close:focus-visible {
    outline: 2px solid #007bff;
  }
  .modal__close .modal[aria-hidden=true] .modal__close {
    display: none;
  }
  .modal__close .modal[aria-hidden=false] .modal__close {
    display: block;
    animation: fadeIn 0.3s forwards;
  }
  @keyframes fadeIn {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }
  .modal__overlay {
    cursor: default;
  }
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  /* ==========================================================
  !Profile
  ========================================================== */
  .c-profile {
    margin-bottom: clamp(56px, 3.698vw + 42.133px, 80px);
    padding: clamp(56px, 3.698vw + 42.133px, 80px) 0;
    border-width: 1px 0 1px 0;
    border-style: solid;
    border-color: var(--neutral-300);
  }
  .c-profile__title {
    margin-bottom: 16px;
  }
  .c-profile__title::before {
    display: inline-block;
    margin-right: 4px;
    content: "■";
  }
  .c-profile__person {
    margin-bottom: 16px;
    font-weight: bold;
  }
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  /* ==========================================================
  !Table
  ========================================================== */
  /* 通常
  ------------------------------------ */
  /* figure */
  .c-table {
    width: 100%;
    margin: 0 auto clamp(32px, 1.233vw + 27.377px, 40px);
  }
  /* table */
  .c-table__main {
    width: 100%;
    margin-bottom: 16px;
    border-collapse: collapse;
  }
  /* thead＞th */
  .c-table__thead .c-table__th,
  .c-table__thead .c-table__th--center {
    padding: 16px clamp(8px, 1.233vw + 3.377px, 16px);
    border-width: 1px 1px 1px 0;
    border-style: solid;
    border-color: var(--neutral-300);
    background-color: var(--neutral-200);
    font-weight: 600;
    font-size: 0.875rem;
  }
  .c-table__thead .c-table__th:last-child,
  .c-table__thead .c-table__th--center:last-child {
    border-right: none;
  }
  .c-table__thead .c-table__th--center {
    text-align: center;
  }
  /* tbody＞th */
  .c-table__tbody .c-table__th,
  .c-table__tbody .c-table__th--center,
  .c-table__tbody .c-table__td,
  .c-table__tbody .c-table__td--vat {
    padding: 16px clamp(8px, 1.233vw + 3.377px, 16px);
    border-width: 1px 1px 1px 0;
    border-style: solid;
    border-color: var(--neutral-300);
    font-size: 0.875rem;
  }
  .c-table__tbody .c-table__th:last-child,
  .c-table__tbody .c-table__th--center:last-child,
  .c-table__tbody .c-table__td:last-child,
  .c-table__tbody .c-table__td--vat:last-child {
    border-right: none;
  }
  .c-table__tbody .c-table__th {
    min-width: 4em;
    font-weight: 600;
  }
  .c-table__tbody .c-table__th--center {
    min-width: 4em;
    font-weight: 600;
    text-align: center;
  }
  .c-table__tbody .c-table__td .c-ul-disc01 {
    margin-bottom: 0;
  }
  .c-table__tbody .c-table__td--vat {
    vertical-align: top;
  }
  /* SPスクロール
  ------------------------------------ */
  /* figure */
  .c-table-scroll {
    width: 100%;
    margin-bottom: 24px;
    padding-bottom: 8px;
    overflow-x: scroll;
  }
  /* table */
  .c-table-scroll__main {
    width: 100%;
    min-width: 800px;
    border-collapse: collapse;
  }
  /* thead＞th */
  .c-table-scroll__thead .c-table-scroll__th,
  .c-table-scroll__thead .c-table-scroll__th--center {
    padding: 16px clamp(8px, 1.233vw + 3.377px, 16px);
    border-width: 1px 1px 1px 0;
    border-style: solid;
    border-color: var(--neutral-300);
    background-color: var(--neutral-200);
    font-weight: 600;
    font-size: 0.875rem;
  }
  .c-table-scroll__thead .c-table-scroll__th:last-child,
  .c-table-scroll__thead .c-table-scroll__th--center:last-child {
    border-right: none;
  }
  .c-table-scroll__thead .c-table-scroll__th--center {
    text-align: center;
  }
  /* tbody＞th */
  .c-table-scroll__tbody .c-table-scroll__th,
  .c-table-scroll__tbody .c-table-scroll__th--center,
  .c-table-scroll__tbody .c-table-scroll__td,
  .c-table-scroll__tbody .c-table-scroll__td--vat {
    padding: 16px clamp(8px, 1.233vw + 3.377px, 16px);
    border-width: 1px 1px 1px 0;
    border-style: solid;
    border-color: var(--neutral-300);
    font-size: 0.875rem;
  }
  .c-table-scroll__tbody .c-table-scroll__th:last-child,
  .c-table-scroll__tbody .c-table-scroll__th--center:last-child,
  .c-table-scroll__tbody .c-table-scroll__td:last-child,
  .c-table-scroll__tbody .c-table-scroll__td--vat:last-child {
    border-right: none;
  }
  .c-table-scroll__tbody .c-table-scroll__th {
    font-weight: 600;
  }
  .c-table-scroll__tbody .c-table-scroll__th--center {
    font-weight: 600;
    text-align: center;
  }
  .c-table-scroll__tbody .c-table-scroll__td .c-ul-disc01 {
    margin-bottom: 0;
  }
  .c-table-scroll__tbody .c-table-scroll__td--vat {
    vertical-align: top;
  }
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  .c-note {
    margin-bottom: 24px;
    font-size: 0.75rem;
  }
  .c-note--short {
    margin-bottom: 16px;
    font-size: 0.75rem;
  }
  .c-note--middle {
    margin-bottom: 32px;
    font-size: 0.75rem;
  }
  .c-note--large {
    margin-bottom: 40px;
    font-size: 0.75rem;
  }
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  /* ==========================================================
  !toc
  ========================================================== */
  .c-toc {
    margin-bottom: 80px;
    background-color: var(--neutral-100);
  }
  .c-toc__title {
    display: block;
    padding: 0.25em;
    background-color: var(--neutral-700);
    color: var(--neutral-50);
    font-weight: 700;
    font-size: 1.125rem;
    text-align: center;
    cursor: pointer;
    transition: opacity 0.3s ease;
  }
  .c-toc__title:hover, .c-toc__titlefocus {
    opacity: 0.85;
  }
  .c-toc__toggle {
    padding-left: 0.5em;
  }
  .c-toc__toggle--text {
    font-size: 0.875rem;
    text-decoration: underline;
  }
  .c-toc__list {
    padding: 16px;
  }
  .c-toc__item {
    counter-increment: toc-h2;
  }
  .c-toc__item > .c-toc__link::before {
    margin-right: 0.5em;
    content: counter(toc-h2);
    color: var(--neutral-400); /* 少し薄くして親子差を強調 */
    font-weight: bold;
  }
  .c-toc__link {
    display: block;
    position: relative;
    padding: 12px 0 12px 1.375em;
    border-width: 0 0 1px 0;
    border-style: solid;
    border-color: var(--neutral-300);
    line-height: 1.6;
    text-decoration: none;
  }
  .c-toc__link:hover, .c-toc__link:focus {
    text-decoration: underline;
  }
  .c-toc__list--child {
    margin-left: 2em;
  }
  .c-toc__item > .c-toc__link::before,
  .c-toc__item--child > .c-toc__link::before {
    display: inline-flex;
    position: absolute;
    top: 12px;
    left: 0;
    align-items: center;
    justify-content: flex-end;
    margin-right: 0.5em;
  }
  .c-toc__item--child > .c-toc__link::before {
    width: 0.5625em;
    height: 1.6em;
    margin-inline: 0.25em 0.5625em;
    background: var(--neutral-400);
    content: "";
    vertical-align: top;
    mask: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%228%22%20height%3D%2214%22%20viewBox%3D%220%200%208%2014%22%3E%3Cdefs%3E%3CclipPath%20id%3D%22a%22%3E%3Cpath%20fill%3D%22%23fff%22%20stroke%3D%22%23707070%22%20d%3D%22M-8958-5926h8v14h-8z%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3Cg%20clip-path%3D%22url(%23a)%22%20transform%3D%22translate(8958%205926)%22%3E%3Cpath%20fill%3D%22%2399999c%22%20d%3D%22M-8956.4-5916.941v-4.724h4.723v4.724Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") no-repeat center/contain;
  }
}
@layer project {
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  /* ==========================================================
  !detail
  ========================================================== */
  .p-detail-date {
    font-size: 0.875rem;
  }
  .p-detail-intro {
    margin-block: 24px 80px;
  }
  /* ベース
  -------------------------------------------------- */
  .p-detail__section {
    margin-bottom: 80px;
  }
  /* h3のsection */
  .p-detail__section--sub {
    margin-bottom: 52px;
  }
  /* h4のsection */
  .p-detail__section--minor {
    margin-bottom: 36px;
  }
  .p-detail__image {
    display: table;
    width: auto;
    margin: 0 auto 24px;
    text-align: center;
  }
  .p-detail__image--img {
    margin-bottom: 16px;
  }
  .p-detail__image--caption {
    display: table-caption; /* p-detail__image--caption */
    padding-top: 8px;
    color: var(--neutral-600);
    font-size: 0.875rem;
    text-align: left;
    caption-side: bottom;
  }
  .p-detail__text {
    margin-bottom: 24px;
  }
  .p-detail__text--short {
    margin-bottom: 8px;
  }
  .p-detail__text--middle {
    margin-bottom: 32px;
  }
  .p-detail__text--large {
    margin-bottom: 48px;
  }
  .p-detail__text--center-tab {
    margin-bottom: clamp(8px, 1.233vw + 3.377px, 16px);
  }
  .p-detail__textlink {
    text-decoration: underline;
  }
  .p-detail__textlink:hover, .p-detail__textlink:focus {
    text-decoration: none;
  }
  .p-detail__textlink::after {
    display: inline-block;
    width: 0.828125em;
    height: 0.828125em;
    margin-inline: 0.25em;
    background: var(--neutral-800);
    content: "";
    vertical-align: middle;
    mask: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2213.25%22%20height%3D%2213.25%22%20viewBox%3D%220%200%2013.25%2013.25%22%3E%3Cpath%20fill%3D%22%23242424%22%20fill-rule%3D%22evenodd%22%20d%3D%22M11.925%201.325H5.742v6.183h6.183ZM4.417%200v8.833h8.833V0Z%22%2F%3E%3Cpath%20fill%3D%22%23242424%22%20d%3D%22M0%204.417h8.833v8.833H0Z%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;
  }
  /* こだわり
  -------------------------------------------------- */
  .p-detail-standard__title--train {
    padding: 48px 0 0 0;
    font-weight: bold;
    font-size: 1.125rem;
    scroll-margin-top: 100px;
  }
  .p-detail-standard__title--train {
    background: url(/column/knowledge/common/img/ico_train.svg) no-repeat center top;
    background-size: 40px auto;
  }
  .p-detail-standard__title--safety {
    padding: 48px 0 0 0;
    font-weight: bold;
    font-size: 1.125rem;
    scroll-margin-top: 100px;
  }
  .p-detail-standard__title--safety {
    background: url(/column/knowledge/common/img/ico_safety.svg) no-repeat center top;
    background-size: 40px auto;
  }
  .p-detail-standard__title--value {
    padding: 48px 0 0 0;
    font-weight: bold;
    font-size: 1.125rem;
    scroll-margin-top: 100px;
  }
  .p-detail-standard__title--value {
    background: url(/column/knowledge/common/img/ico_value.svg) no-repeat center top;
    background-size: 40px auto;
  }
  .p-detail-standard__text {
    margin-bottom: 16px;
  }
  .p-detail-standard__text:last-of-type {
    margin-bottom: 0;
  }
  /* 色面＋■見出し＋ボタンのエリア
  -------------------------------------------------- */
  .p-detail-concept__title {
    margin-bottom: 16px;
    padding: 0 0 16px 1.7em;
    border-width: 0 0 1px 0;
    border-style: solid;
    border-color: var(--neutral-300);
    font-weight: bold;
    font-size: 1.125rem;
    line-height: 1.5;
    text-indent: -0.9em;
    scroll-margin-top: 100px;
  }
  .p-detail-concept__title::before {
    display: inline-block;
    width: 0.6em;
    margin-right: 4px;
    content: "■";
  }
  .p-detail-concept__text {
    margin-bottom: 16px;
  }
  /* 今回お話を伺った担当者
  -------------------------------------------------- */
  .p-detail-intro-expert {
    box-sizing: border-box;
    width: 100%;
    max-width: 700px;
    padding: 16px;
    border-width: 1px 1px 1px 1px;
    border-style: solid;
    border-color: var(--neutral-800);
  }
  .p-detail-intro-expert__inner {
    display: flex; /* p-detail-intro-expert__inner */
    flex-direction: column;
    align-items: center;
    gap: clamp(24px, 2.465vw + 14.755px, 40px);
  }
  .p-detail-intro-expert__image {
    flex-shrink: 0; /* p-detail-intro-expert__image */
    width: 100px;
    height: 100px;
    margin: 0;
  }
  .p-detail-intro-expert__body {
    flex: 1; /* p-detail-intro-expert__body */
    text-align: center;
  }
  .p-detail-intro-expert__label {
    margin-bottom: 8px; /* p-detail-intro-expert__label */
  }
  .p-detail-intro-expert__label::after {
    display: block;
    width: 30px;
    height: 1px;
    margin: 8px auto 0;
    background-color: var(--neutral-800);
    content: "";
  }
  .p-detail-intro-expert__title {
    margin-bottom: 16px; /* p-detail-intro-expert__title */
  }
  .p-detail-intro-expert__title--name {
    font-weight: 700; /* p-detail-intro-expert__title--name */
  }
  .p-detail-intro-expert__text {
    margin-bottom: 0; /* p-detail-intro-expert__text */
    color: var(--neutral-700);
    font-size: 0.875rem;
    line-height: 1.6;
    text-align: left;
  }
  /* 会話形式
  -------------------------------------------------- */
  .p-detail__text--question {
    position: relative;
    margin-bottom: 16px;
    padding-left: 40px;
    font-weight: 700;
  }
  .p-detail__text--question::before {
    position: absolute;
    top: 0.8em;
    left: 0;
    width: 30px;
    height: 1px;
    background-color: var(--neutral-800);
    content: "";
  }
  .p-detail__text--answer {
    font-weight: 700;
  }
  /* 水色色面のポイント
  -------------------------------------------------- */
  .p-detail__highlight {
    box-sizing: border-box;
    margin: 40px 0;
    padding: clamp(24px, 2.465vw + 14.755px, 40px);
    border-radius: 8px;
    background-color: var(--color-primary-200);
  }
  .p-detail__highlight-title--light {
    margin: 0 0 16px 0; /* p-detail__highlight-title--light */
    padding-top: 48px;
    background: url(/column/knowledge/common/img/ico_lightbulb.svg) no-repeat center top;
    background-size: 40px auto;
    font-weight: 600;
    font-size: 1.5rem;
    text-align: center;
  }
  .p-detail__highlight-list {
    display: flex; /* p-detail__highlight-list */
    flex-direction: column;
    margin: 0 0 24px 0;
    gap: clamp(16px, 1.233vw + 11.377px, 24px);
  }
  .p-detail__highlight-list:last-of-type {
    margin-bottom: 0;
  }
  .p-detail__highlight-term {
    width: clamp(150px, 4.931vw + 131.506px, 182px); /* p-detail__highlight-term */
    margin: 0 auto;
    padding: 8px 16px;
    border-width: 1px 1px 1px 1px;
    border-style: solid;
    border-radius: clamp(20px, 1.079vw + 15.955px, 27px);
    border-color: var(--neutral-900);
    color: var(--neutral-900);
    font-weight: bold;
    text-align: center;
  }
  .p-detail__highlight-desc {
    margin: 0; /* p-detail__highlight-desc */
    color: var(--neutral-900);
    line-height: 1.6;
    text-align: left;
  }
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  /* ==========================================================
  !Home
  ========================================================== */
  .p-home__heading-lv2 {
    margin-bottom: 36px; /* p-home__heading-lv2 */
  }
  .p-home__heading-lv2 .lang-ja {
    font-weight: 700;
    font-size: 0.75rem;
    line-height: 1.325;
    letter-spacing: 0.2em;
  }
  .p-home__heading-lv2 .lang-en {
    display: block;
    font-weight: 500;
    font-size: 2.3125rem;
    line-height: 1.325;
    font-family: var(--font-family-en);
    letter-spacing: 0.1em;
  }
  /* ==========================================================
  ! casestudy
  ========================================================== */
  .p-home-casestudy__heading-lv1 {
    z-index: 2;
    position: relative; /* p-home-casestudy__heading-lv2 */
  }
  .p-home-casestudy__heading-lv1-img {
    border-radius: 0 clamp(0px, 11.556vw - 43.336px, 75px) clamp(50px, 3.852vw + 35.555px, 75px) 0; /* p-home-casestudy__heading-lv2-img */
  }
  .p-home-casestudy .splide__track {
    margin-top: -50px;
    padding-bottom: 20px;
    overflow: hidden;
    background: url(/column/knowledge/common/img/bg_knowledge.webp) no-repeat center bottom;
    background-size: contain;
  }
  .p-home-casestudy .splide__list.c-box_col {
    display: flex;
    align-items: stretch;
    margin-bottom: 20px;
  }
  .p-home-casestudy .splide__slide {
    flex-shrink: 0;
    width: min(580px, 91.2vw) !important;
    margin-right: clamp(16px, 0.924vw + 12.533px, 22px) !important;
    margin-left: 0 !important;
    background-color: var(--neutral-100);
  }
  .p-home-casestudy .splide__arrows {
    position: relative;
    width: 100%;
    padding: clamp(25px, 1.233vw + 20.377px, 33px) 16px 21px;
    background-color: var(--neutral-50);
  }
  .p-home-casestudy .splide__arrows__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 980px;
    margin: 0 auto;
    gap: 20px;
  }
  .p-home-casestudy .splide__arrow {
    position: static !important;
    width: clamp(25px, 0.924vw + 21.533px, 31px) !important;
    height: clamp(25px, 0.924vw + 21.533px, 31px) !important;
    transform: translateY(0) !important;
    background: transparent !important;
  }
  .p-home-casestudy .splide__pagination {
    position: static !important;
    padding: 0 !important;
  }
  .p-home-casestudy .splide__pagination .splide__pagination__page {
    margin: 10px !important;
  }
  .p-home-casestudy .splide__pagination__page {
    background: var(--neutral-500) none !important;
  }
  .p-home-casestudy .splide__pagination__page.is-active {
    background: var(--neutral-700) none !important;
  }
  .p-home-casestudy .splide__toggle img {
    width: clamp(25px, 0.924vw + 21.533px, 31px);
    height: clamp(25px, 0.924vw + 21.533px, 31px);
  }
  .p-home-casestudy__link {
    display: block; /* p-home-casestudy__link */
    height: 100%;
    transition: color 0.3s ease;
  }
  .p-home-casestudy__link img {
    transition: opacity 0.3s ease;
  }
  .p-home-casestudy__link:hover img, .p-home-casestudy__link:focus img {
    opacity: 0.6;
  }
  .p-home-casestudy .c-box__column {
    display: flex;
    flex-direction: column;
    height: 100%;
  }
  .p-home-casestudy .c-box__column .c-box__text {
    display: flex;
    flex-grow: 1; /* ← 高さを揃える核心 */
    flex-direction: column;
    padding: clamp(5px, 1.849vw - 1.934px, 17px) clamp(21px, 0.616vw + 18.689px, 25px) 25px clamp(20px, 0.308vw + 18.844px, 22px);
  }
  .p-home-casestudy__label {
    display: inline-block; /* p-home-casestudy__label */
    align-self: flex-start;
    padding: clamp(2px, 0.154vw + 1.422px, 3px) clamp(15px, 1.387vw + 9.8px, 24px) clamp(1px, 0.154vw + 0.422px, 2px);
    border-radius: 2px;
    background-color: var(--neutral-900);
    color: var(--neutral-50);
    font-weight: 700;
    font-size: 0.6875rem;
    line-height: 1;
    font-family: var(--font-family-en);
  }
  .p-home-casestudy__title {
    flex-grow: 1;
    margin: 16px 0 clamp(8px, 1.695vw + 1.644px, 19px); /* p-home-casestudy__title */
    color: var(--neutral-900);
    font-weight: 600;
    font-size: 1.25rem;
    line-height: 1.6;
    letter-spacing: 0.07em;
  }
  .p-home-casestudy__seedetail {
    position: relative; /* p-home-casestudy__seedetail */
    padding-right: 30px;
    color: var(--neutral-900);
    font-size: 16px;
    letter-spacing: 0.07em;
    text-align: right;
    transition: transform 0.3s;
  }
  .p-home-casestudy__seedetail::after {
    display: grid;
    position: absolute;
    top: 50%;
    right: 0;
    place-content: center;
    width: 24px;
    height: 24px;
    padding-left: 2px;
    transform: translateY(-50%);
    border-radius: 50%;
    background: url(/column/knowledge/common/img/ico_circlearrow_r_black.svg) no-repeat top 50% right 0;
    background-size: contain;
    content: "";
    transition: all 0.3s;
  }
  /* ==========================================================
  ! about
  ========================================================== */
  .p-home-about {
    width: 100%;
    padding-block: 36px 60px;
    background-color: var(--neutral-100);
    font-family: var(--font-family);
  }
  .p-home-about__inner {
    padding-inline: var(--padding-inline-container); /* .p-home-about__inner */
  }
  .p-home-about__text {
    margin-bottom: 0; /* .p-home-about__text */
    font-weight: 500;
    font-size: 0.875rem;
    line-height: 2.5;
    letter-spacing: clamp(0.03em, 0.0015vw + 0.024em, 0.04em);
  }
  .p-home-about__text .lang-en {
    font-weight: 400;
  }
  /* ==========================================================
  ! knowledge
  ========================================================== */
  .p-home-knowledge {
    width: 100%;
    padding-block: 120px;
    font-family: var(--font-family);
  }
  .p-home-knowledge__inner {
    padding-inline: var(--padding-inline-container); /* .p-home-knowledge__inner */
  }
  .p-home-knowledge__list { /* .p-home-knowledge__list */ }
  .p-home-knowledge__item {
    margin-bottom: clamp(40px, 6.163vw + 16.887px, 80px); /* .p-home-knowledge__item */
    background-color: var(--neutral-100);
  }
  .p-home-knowledge__item:last-of-type {
    margin-bottom: 0;
  }
  .p-home-knowledge__link {
    color: var(--neutral-900); /* .p-home-knowledge__link */
  }
  .p-home-knowledge__link img {
    transition: opacity 0.3s ease;
  }
  .p-home-knowledge__link:hover img, .p-home-knowledge__link:focus img {
    opacity: 0.6;
  }
  .p-home-knowledge__body { /* .p-home-knowledge__body */ }
  .p-home-knowledge__img {
    width: 100%; /* .p-home-knowledge__img */
    overflow: hidden;
  }
  .p-home-knowledge__img img {
    display: block;
    width: 100%;
    height: auto;
  }
  .p-home-knowledge__text {
    position: relative;
    padding: 22px 20px 24px 20px;
    overflow: hidden; /* .p-home-knowledge__text */
    font-size: 14px;
    line-height: 1.5;
  }
  .p-home-knowledge__heading {
    margin-bottom: clamp(8px, 4.314vw - 8.178px, 36px); /* .p-home-knowledge__heading */
    font-weight: 700;
    font-size: 1.25rem;
    line-height: 1.6;
    letter-spacing: 0.07em;
  }
  .p-home-knowledge__summary {
    display: -webkit-box;
    overflow: hidden; /* .p-home-knowledge__summary */
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    max-height: 4.8em;
    margin-bottom: 16px;
    font-size: 0.875rem;
    line-height: 1.6;
    letter-spacing: 0.07em;
  }
  .p-home-knowledge__seedetail {
    position: relative; /* .p-home-knowledge__seedetail */
    padding-right: 30px;
    font-size: 16px;
    letter-spacing: 0.07em;
    text-align: right;
    transition: transform 0.3s;
  }
  .p-home-knowledge__seedetail::after {
    display: grid;
    position: absolute;
    top: 50%;
    right: 0;
    place-content: center;
    width: 24px;
    height: 24px;
    padding-left: 2px;
    transform: translateY(-50%);
    border-radius: 50%;
    background: url(/column/knowledge/common/img/ico_circlearrow_r_black.svg) no-repeat top 50% right 0;
    background-size: contain;
    content: "";
    transition: all 0.3s;
  }
}
@layer utility {
  /* --- 1. 共通ロジックの定義（mixin） --- */
  /* カラム幅計算用mixin */
  /* 比率計算用mixin */
  /* ==========================================================
  !WCAG 2.0 C7
  ========================================================== */
  .u-vhidden {
    position: absolute;
    top: -10px;
    width: 1px;
    height: 1px;
    overflow: hidden;
  }
  /* ==========================================================
  !アイコン
  ========================================================== */
  .--ico-movie-white {
    padding-left: 60px;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="%23ffffff" d="M10,0A10,10,0,1,0,20,10,10,10,0,0,0,10,0Zm3.713,10.113L8.088,13.47a.13.13,0,0,1-.133,0,.132.132,0,0,1-.066-.115V6.642a.131.131,0,0,1,.2-.114l5.625,3.358a.132.132,0,0,1,0,.226Z" /></svg>');
    background-position: left 36px top 50%;
    background-size: 20px auto;
    background-repeat: no-repeat;
  }
  .--ico-movie-black {
    padding-left: 60px;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="%23000000" d="M10,0A10,10,0,1,0,20,10,10,10,0,0,0,10,0Zm3.713,10.113L8.088,13.47a.13.13,0,0,1-.133,0,.132.132,0,0,1-.066-.115V6.642a.131.131,0,0,1,.2-.114l5.625,3.358a.132.132,0,0,1,0,.226Z" /></svg>');
    background-position: left 36px top 50%;
    background-size: 20px auto;
    background-repeat: no-repeat;
  }
  .--ico-blank {
    background: url(../img/ico_window_white01.svg) no-repeat right 18px top 50%;
    background-size: 13px auto;
  }
  .--ico-blank-white {
    padding-right: 40px;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13 11.84"><path fill="%23ffffff" d="M0-.5H9.643a.5.5,0,0,1,.5.5V8.544a.5.5,0,0,1-.5.5H0a.5.5,0,0,1-.5-.5V0A.5.5,0,0,1,0-.5ZM9.143.5H.5V8.044H9.143Z" transform="translate(62.967 69.25)"/><path class="a" d="M65.811,159.381h-5.2a.5.5,0,0,1-.5-.5V153.71a.5.5,0,0,1,1,0v4.671h4.7a.5.5,0,0,1,0,1Z" /></svg>');
    background-position: right 18px top 50%;
    background-size: 13px auto;
    background-repeat: no-repeat;
  }
  .--ico-blank-black {
    padding-right: 40px;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13 11.84"><path fill="%23000000" d="M0-.5H9.643a.5.5,0,0,1,.5.5V8.544a.5.5,0,0,1-.5.5H0a.5.5,0,0,1-.5-.5V0A.5.5,0,0,1,0-.5ZM9.143.5H.5V8.044H9.143Z" transform="translate(62.967 69.25)"/><path class="a" d="M65.811,159.381h-5.2a.5.5,0,0,1-.5-.5V153.71a.5.5,0,0,1,1,0v4.671h4.7a.5.5,0,0,1,0,1Z" /></svg>');
    background-position: right 18px top 50%;
    background-size: 13px auto;
    background-repeat: no-repeat;
  }
  /* ==========================================================
  !Link
  ========================================================== */
  a {
    transition: all 0.3s;
  }
  a.u-blank[target=_blank]:after {
    display: inline-block;
    width: 1.1em;
    height: 1.1em;
    margin: 0 0 0 4px;
    padding: 0 13px 0 0;
    content: "";
    vertical-align: bottom;
  }
  /* ==========================================================
  !Base Fonts
  ========================================================== */
  .u-fwN {
    font-weight: normal;
  }
  .u-fwB {
    font-weight: bold;
  }
  .u-fzSS {
    font-size: 75%;
  } /* base 16px -> 12px */
  .u-fzS {
    font-size: 88%;
  } /* base 16px -> 14px */
  .u-fzM {
    font-size: 100%;
  }
  .u-fzL {
    font-size: 113%;
  } /* base 16px -> 18px */
  .u-fzLL {
    font-size: 125%;
  } /* base 16px -> 20px */
  .u-fzLLL {
    font-size: 138%;
  } /* base 16px -> 22px */
  sup {
    font-size: 75%;
    vertical-align: top;
  }
  sub {
    font-size: 75%;
    vertical-align: baseline;
  }
  /* ==========================================================
  !iframe youtube googlemap
  ========================================================== */
  .u-youtube,
  .u-googlemap {
    position: relative;
    width: 100%;
    max-width: 768px;
    margin: 0 auto;
  }
  .u-youtube::before,
  .u-googlemap::before {
    display: block;
    padding-top: 56.25%;
    content: "";
  }
  .u-youtube iframe,
  .u-youtube video,
  .u-googlemap iframe,
  .u-googlemap video {
    position: absolute;
    top: 0;
    right: 0;
    width: 100% !important;
    height: 100% !important;
  }
  .u-youtube.--aspect4-3::before,
  .u-googlemap.--aspect4-3::before {
    padding-top: 75%;
  }
  .u-youtube.--aspect3-1::before,
  .u-googlemap.--aspect3-1::before {
    padding-top: 33.3333333333%;
  }
  .u-youtube.--aspect2-1::before,
  .u-googlemap.--aspect2-1::before {
    padding-top: 50%;
  }
  .u-youtube.--aspect1-1::before,
  .u-googlemap.--aspect1-1::before {
    padding-top: 100%;
  }
  .u-youtube.--aspect100,
  .u-googlemap.--aspect100 {
    max-width: 100%;
  }
  .u-youtube.--aspect9-16,
  .u-googlemap.--aspect9-16 {
    padding-top: 170%;
  }
  .u-youtube figcaption,
  .u-googlemap figcaption {
    margin-top: 16px;
  }
  /* ==========================================================
  !Play
  ========================================================== */
  .u-play {
    display: block;
    position: relative;
  }
  .u-play:hover:before {
    transform: translate(-50%, -50%) scale(1.1);
  }
  .u-play:before {
    display: block;
    z-index: 1;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 50px;
    height: 50px;
    transform: translate(-50%, -50%) scale(1);
    background-image: url(../img/ico_play.svg);
    background-position: 0;
    background-size: 100% auto;
    background-repeat: no-repeat;
    content: "";
    opacity: 0.8;
    transition: all 0.3s ease;
  }
  /* ==========================================================
  !Modal
  ========================================================== */
  .u-modal {
    display: none;
  }
  /* ==========================================================
  !Inline Align
  ========================================================== */
  .u-taL {
    text-align: left !important;
  }
  .u-taC {
    text-align: center !important;
  }
  .u-taR {
    text-align: right !important;
  }
  .u-vaT {
    vertical-align: top !important;
  }
  .u-vaM {
    vertical-align: middle !important;
  }
  .u-vaB {
    vertical-align: bottom !important;
  }
  .u-blockC {
    margin-right: auto;
    margin-left: auto;
    text-align: left;
  }
  .u-blockR {
    margin-left: auto;
    text-align: left;
  }
  /*inline-block*/
  .u-ib {
    display: inline-block;
  }
  /* 親を超える子
  ------------------------------------ */
  .u-side-over-width {
    margin-right: calc(586px - 50vw);
    margin-left: calc(586px - 50vw);
  }
  .u-side-over-width-content {
    margin-right: calc(100% - 96vw);
    margin-left: calc(100% - 96vw);
    padding-right: 0 calc(50vw - 586px);
    padding-left: 0 calc(50vw - 586px);
  }
  .u-over-width {
    margin-right: calc(50% - 50vw + 10px);
    margin-left: calc(50% - 50vw + 10px);
  }
  .u-over-width-content {
    margin-right: calc(50% - 50vw + 10px);
    margin-left: calc(50% - 50vw + 10px);
    padding-right: calc(50vw - 50%);
    padding-left: calc(50vw - 50%);
  }
  /* どのdisplayで表示させるか
  ------------------------------------ */
  /* 479px以下（SP） */
  .u-sp {
    display: inline-block;
  }
  .u-pc {
    display: none;
  }
  /* 768px以上（タブレット） */
  /* ==========================================================
  !Column
  ========================================================== */
  /* 600px以上（ファブレット） */
  /* ==========================================================
  !Width
  ========================================================== */
  /* 960px Grid */
  .u-w960 {
    width: 960px;
  }
  .u-w800 {
    width: 800px;
  }
  .u-w640 {
    width: 640px;
  }
  .u-w480 {
    width: 480px;
  }
  .u-w320 {
    width: 320px;
  }
  .u-w160 {
    width: 160px;
  }
  .u-wHalf {
    width: 48%;
  }
  .u-wTri {
    width: 33%;
  }
  .u-wQuart {
    width: 24%;
  }
  .u-wFull {
    width: 99.9%;
  }
  .u-wMax {
    width: 100%;
  }
  .u-w03per {
    width: 3% !important;
  }
  .u-w05per {
    width: 5% !important;
  }
  .u-w10per {
    width: 10% !important;
  }
  .u-w13per {
    width: 13% !important;
  }
  .u-w15per {
    width: 15% !important;
  }
  .u-w20per {
    width: 20% !important;
  }
  .u-w23per {
    width: 23% !important;
  }
  .u-w25per {
    width: 25% !important;
  }
  .u-w30per {
    width: 30% !important;
  }
  .u-w33per {
    width: 33% !important;
  }
  .u-w35per {
    width: 35% !important;
  }
  .u-w40per {
    width: 40% !important;
  }
  .u-w43per {
    width: 43% !important;
  }
  .u-w45per {
    width: 45% !important;
  }
  .u-w50per {
    width: 50% !important;
  }
  .u-w53per {
    width: 53% !important;
  }
  .u-w55per {
    width: 55% !important;
  }
  .u-w60per {
    width: 60% !important;
  }
  .u-w63per {
    width: 63% !important;
  }
  .u-w65per {
    width: 65% !important;
  }
  .u-w70per {
    width: 70% !important;
  }
  .u-w73per {
    width: 73% !important;
  }
  .u-w75per {
    width: 75% !important;
  }
  .u-w80per {
    width: 80% !important;
  }
  .u-w83per {
    width: 83% !important;
  }
  .u-w85per {
    width: 85% !important;
  }
  .u-w90per {
    width: 90% !important;
  }
  .u-w93per {
    width: 93% !important;
  }
  .u-w95per {
    width: 95% !important;
  }
  /* ==========================================================
  !Floats
  ========================================================== */
  .u-flL {
    display: inline;
    float: left;
  }
  .u-flR {
    display: inline;
    float: right;
  }
  .u-flImgL {
    display: inline;
    margin-right: 10px;
    float: left;
  }
  .u-flImgR {
    display: inline;
    margin-left: 10px;
    float: right;
  }
  .u-ftBox {
    overflow: hidden;
  }
  /* ==========================================================
  !Tools
  ========================================================== */
  .u-clear {
    clear: both;
  }
  .u-block {
    display: block;
  }
  .u-hide {
    display: none;
  }
  .u-bgN {
    background: none !important;
  }
  .u-tdU {
    text-decoration: underline;
  }
  .u-tdN {
    text-decoration: none;
  }
  /* ==========================================================
  !Margin
  ========================================================== */
  .u-mt00 {
    margin-top: 0 !important;
  }
  .u-mt05 {
    margin-top: 0.5% !important;
  }
  .u-mt10 {
    margin-top: 1% !important;
  }
  .u-mt15 {
    margin-top: 1.5% !important;
  }
  .u-mt20 {
    margin-top: 2% !important;
  }
  .u-mt25 {
    margin-top: 2.5% !important;
  }
  .u-mt30 {
    margin-top: 3% !important;
  }
  .u-mt35 {
    margin-top: 3.5% !important;
  }
  .u-mt40 {
    margin-top: 4% !important;
  }
  .u-mt45 {
    margin-top: 4.5% !important;
  }
  .u-mt50 {
    margin-top: 5% !important;
  }
  .u-mt55 {
    margin-top: 5.5% !important;
  }
  .u-mt60 {
    margin-top: 6% !important;
  }
  .u-mt65 {
    margin-top: 6.5% !important;
  }
  .u-mt70 {
    margin-top: 7% !important;
  }
  .u-mt75 {
    margin-top: 7.5% !important;
  }
  .u-mt80 {
    margin-top: 8% !important;
  }
  .u-mt85 {
    margin-top: 8.5% !important;
  }
  .u-mt90 {
    margin-top: 9% !important;
  }
  .u-mt95 {
    margin-top: 9.5% !important;
  }
  .u-mt100 {
    margin-top: 10% !important;
  }
  .u-mr00 {
    margin-right: 0 !important;
  }
  .u-mr05 {
    margin-right: 0.5% !important;
  }
  .u-mr10 {
    margin-right: 1% !important;
  }
  .u-mr15 {
    margin-right: 1.5% !important;
  }
  .u-mr20 {
    margin-right: 2% !important;
  }
  .u-mr25 {
    margin-right: 2.5% !important;
  }
  .u-mr30 {
    margin-right: 3% !important;
  }
  .u-mr35 {
    margin-right: 3.5% !important;
  }
  .u-mr40 {
    margin-right: 4% !important;
  }
  .u-mr45 {
    margin-right: 4.5% !important;
  }
  .u-mr50 {
    margin-right: 5% !important;
  }
  .u-mr55 {
    margin-right: 5.5% !important;
  }
  .u-mr60 {
    margin-right: 6% !important;
  }
  .u-mr65 {
    margin-right: 6.5% !important;
  }
  .u-mr70 {
    margin-right: 7% !important;
  }
  .u-mr75 {
    margin-right: 7.5% !important;
  }
  .u-mr80 {
    margin-right: 8% !important;
  }
  .u-mr85 {
    margin-right: 8.5% !important;
  }
  .u-mr90 {
    margin-right: 9% !important;
  }
  .u-mr95 {
    margin-right: 9.5% !important;
  }
  .u-mr100 {
    margin-right: 10% !important;
  }
  .u-mb00 {
    margin-bottom: 0 !important;
  }
  .u-mb05 {
    margin-bottom: 0.5% !important;
  }
  .u-mb10 {
    margin-bottom: 1% !important;
  }
  .u-mb15 {
    margin-bottom: 1.5% !important;
  }
  .u-mb20 {
    margin-bottom: 2% !important;
  }
  .u-mb25 {
    margin-bottom: 2.5% !important;
  }
  .u-mb30 {
    margin-bottom: 3% !important;
  }
  .u-mb35 {
    margin-bottom: 3.5% !important;
  }
  .u-mb40 {
    margin-bottom: 4% !important;
  }
  .u-mb45 {
    margin-bottom: 4.5% !important;
  }
  .u-mb50 {
    margin-bottom: 5% !important;
  }
  .u-mb55 {
    margin-bottom: 5.5% !important;
  }
  .u-mb60 {
    margin-bottom: 6% !important;
  }
  .u-mb65 {
    margin-bottom: 6.5% !important;
  }
  .u-mb70 {
    margin-bottom: 7% !important;
  }
  .u-mb75 {
    margin-bottom: 7.5% !important;
  }
  .u-mb80 {
    margin-bottom: 8% !important;
  }
  .u-mb85 {
    margin-bottom: 8.5% !important;
  }
  .u-mb90 {
    margin-bottom: 9% !important;
  }
  .u-mb95 {
    margin-bottom: 9.5% !important;
  }
  .u-mb100 {
    margin-bottom: 10% !important;
  }
  .u-ml00 {
    margin-left: 0 !important;
  }
  .u-ml05 {
    margin-left: 0.5% !important;
  }
  .u-ml10 {
    margin-left: 1% !important;
  }
  .u-ml15 {
    margin-left: 1.5% !important;
  }
  .u-ml20 {
    margin-left: 2% !important;
  }
  .u-ml25 {
    margin-left: 2.5% !important;
  }
  .u-ml30 {
    margin-left: 3% !important;
  }
  .u-ml35 {
    margin-left: 3.5% !important;
  }
  .u-ml40 {
    margin-left: 4% !important;
  }
  .u-ml45 {
    margin-left: 4.5% !important;
  }
  .u-ml50 {
    margin-left: 5% !important;
  }
  .u-ml55 {
    margin-left: 5.5% !important;
  }
  .u-ml60 {
    margin-left: 6% !important;
  }
  .u-ml65 {
    margin-left: 6.5% !important;
  }
  .u-ml70 {
    margin-left: 7% !important;
  }
  .u-ml75 {
    margin-left: 7.5% !important;
  }
  .u-ml80 {
    margin-left: 8% !important;
  }
  .u-ml85 {
    margin-left: 8.5% !important;
  }
  .u-ml90 {
    margin-left: 9% !important;
  }
  .u-ml95 {
    margin-left: 9.5% !important;
  }
  .u-ml100 {
    margin-left: 10% !important;
  }
  /* ==========================================================
  !Padding
  ========================================================== */
  .u-pt00 {
    padding-top: 0 !important;
  }
  .u-pt05 {
    padding-top: 0.5% !important;
  }
  .u-pt10 {
    padding-top: 1% !important;
  }
  .u-pt15 {
    padding-top: 1.5% !important;
  }
  .u-pt20 {
    padding-top: 2% !important;
  }
  .u-pt25 {
    padding-top: 2.5% !important;
  }
  .u-pt30 {
    padding-top: 3% !important;
  }
  .u-pt35 {
    padding-top: 3.5% !important;
  }
  .u-pt40 {
    padding-top: 4% !important;
  }
  .u-pt45 {
    padding-top: 4.5% !important;
  }
  .u-pt50 {
    padding-top: 5% !important;
  }
  .u-pt55 {
    padding-top: 5.5% !important;
  }
  .u-pt60 {
    padding-top: 6% !important;
  }
  .u-pt65 {
    padding-top: 6.5% !important;
  }
  .u-pt70 {
    padding-top: 7% !important;
  }
  .u-pt75 {
    padding-top: 7.5% !important;
  }
  .u-pt80 {
    padding-top: 8% !important;
  }
  .u-pt85 {
    padding-top: 8.5% !important;
  }
  .u-pt90 {
    padding-top: 9% !important;
  }
  .u-pt95 {
    padding-top: 9.5% !important;
  }
  .u-pt100 {
    padding-top: 10% !important;
  }
  .u-pr00 {
    padding-right: 0 !important;
  }
  .u-pr05 {
    padding-right: 0.5% !important;
  }
  .u-pr10 {
    padding-right: 1% !important;
  }
  .u-pr15 {
    padding-right: 1.5% !important;
  }
  .u-pr20 {
    padding-right: 2% !important;
  }
  .u-pr25 {
    padding-right: 2.5% !important;
  }
  .u-pr30 {
    padding-right: 3% !important;
  }
  .u-pr35 {
    padding-right: 3.5% !important;
  }
  .u-pr40 {
    padding-right: 4% !important;
  }
  .u-pr45 {
    padding-right: 4.5% !important;
  }
  .u-pr50 {
    padding-right: 5% !important;
  }
  .u-pr55 {
    padding-right: 5.5% !important;
  }
  .u-pr60 {
    padding-right: 6% !important;
  }
  .u-pr65 {
    padding-right: 6.5% !important;
  }
  .u-pr70 {
    padding-right: 7% !important;
  }
  .u-pr75 {
    padding-right: 7.5% !important;
  }
  .u-pr80 {
    padding-right: 8% !important;
  }
  .u-pr85 {
    padding-right: 8.5% !important;
  }
  .u-pr90 {
    padding-right: 9% !important;
  }
  .u-pr95 {
    padding-right: 9.5% !important;
  }
  .u-pr100 {
    padding-right: 10% !important;
  }
  .u-pb00 {
    padding-bottom: 0 !important;
  }
  .u-pb05 {
    padding-bottom: 0.5% !important;
  }
  .u-pb10 {
    padding-bottom: 1% !important;
  }
  .u-pb15 {
    padding-bottom: 1.5% !important;
  }
  .u-pb20 {
    padding-bottom: 2% !important;
  }
  .u-pb25 {
    padding-bottom: 2.5% !important;
  }
  .u-pb30 {
    padding-bottom: 3% !important;
  }
  .u-pb35 {
    padding-bottom: 3.5% !important;
  }
  .u-pb40 {
    padding-bottom: 4% !important;
  }
  .u-pb45 {
    padding-bottom: 4.5% !important;
  }
  .u-pb50 {
    padding-bottom: 5% !important;
  }
  .u-pb55 {
    padding-bottom: 5.5% !important;
  }
  .u-pb60 {
    padding-bottom: 6% !important;
  }
  .u-pb65 {
    padding-bottom: 6.5% !important;
  }
  .u-pb70 {
    padding-bottom: 7% !important;
  }
  .u-pb75 {
    padding-bottom: 7.5% !important;
  }
  .u-pb80 {
    padding-bottom: 8% !important;
  }
  .u-pb85 {
    padding-bottom: 8.5% !important;
  }
  .u-pb90 {
    padding-bottom: 9% !important;
  }
  .u-pb95 {
    padding-bottom: 9.5% !important;
  }
  .u-pb100 {
    padding-bottom: 10% !important;
  }
  .u-pl00 {
    padding-left: 0 !important;
  }
  .u-pl05 {
    padding-left: 0.5% !important;
  }
  .u-pl10 {
    padding-left: 1% !important;
  }
  .u-pl15 {
    padding-left: 1.5% !important;
  }
  .u-pl20 {
    padding-left: 2% !important;
  }
  .u-pl25 {
    padding-left: 2.5% !important;
  }
  .u-pl30 {
    padding-left: 3% !important;
  }
  .u-pl35 {
    padding-left: 3.5% !important;
  }
  .u-pl40 {
    padding-left: 4% !important;
  }
  .u-pl45 {
    padding-left: 4.5% !important;
  }
  .u-pl50 {
    padding-left: 5% !important;
  }
  .u-pl55 {
    padding-left: 5.5% !important;
  }
  .u-pl60 {
    padding-left: 6% !important;
  }
  .u-pl65 {
    padding-left: 6.5% !important;
  }
  .u-pl70 {
    padding-left: 7% !important;
  }
  .u-pl75 {
    padding-left: 7.5% !important;
  }
  .u-pl80 {
    padding-left: 8% !important;
  }
  .u-pl85 {
    padding-left: 8.5% !important;
  }
  .u-pl90 {
    padding-left: 9% !important;
  }
  .u-pl95 {
    padding-left: 9.5% !important;
  }
  .u-pl100 {
    padding-left: 10% !important;
  }
}
@layer vendor {}
@media (width >= 768px){
  @layer reset{
    body {
      font-family: var(--font-family-pc) !important;
    }
  }
  @layer component{
    .c-box__row--ratio2-8 {
      display: flex;
      flex-flow: row nowrap;
      align-items: flex-start;
      justify-content: space-between;
    }
    .c-box__row--ratio2-8 .c-box__image {
      width: 18%;
    }
    .c-box__row--ratio2-8 .c-box__text {
      width: 80%;
    }
    .c-box__row--ratio2-8--reverse {
      display: flex;
      flex-flow: row nowrap;
      align-items: flex-start;
      justify-content: space-between;
    }
    .c-box__row--ratio2-8--reverse .c-box__image {
      width: 18%;
    }
    .c-box__row--ratio2-8--reverse .c-box__text {
      width: 80%;
    }
    .c-box__row--ratio2-8--reverse {
      flex-direction: row-reverse;
    }
    .c-box__row--ratio3-7 {
      display: flex;
      flex-flow: row nowrap;
      align-items: flex-start;
      justify-content: space-between;
    }
    .c-box__row--ratio3-7 .c-box__image {
      width: 28%;
    }
    .c-box__row--ratio3-7 .c-box__text {
      width: 70%;
    }
    .c-box__row--ratio3-7--reverse {
      display: flex;
      flex-flow: row nowrap;
      align-items: flex-start;
      justify-content: space-between;
    }
    .c-box__row--ratio3-7--reverse .c-box__image {
      width: 28%;
    }
    .c-box__row--ratio3-7--reverse .c-box__text {
      width: 70%;
    }
    .c-box__row--ratio3-7--reverse {
      flex-direction: row-reverse;
    }
    .c-box__row--ratio4-6 {
      display: flex;
      flex-flow: row nowrap;
      align-items: flex-start;
      justify-content: space-between;
    }
    .c-box__row--ratio4-6 .c-box__image {
      width: 38%;
    }
    .c-box__row--ratio4-6 .c-box__text {
      width: 60%;
    }
    .c-box__row--ratio4-6--reverse {
      display: flex;
      flex-flow: row nowrap;
      align-items: flex-start;
      justify-content: space-between;
    }
    .c-box__row--ratio4-6--reverse .c-box__image {
      width: 38%;
    }
    .c-box__row--ratio4-6--reverse .c-box__text {
      width: 60%;
    }
    .c-box__row--ratio4-6--reverse {
      flex-direction: row-reverse;
    }
    .c-box__row--col2 {
      display: flex;
      flex-flow: row nowrap;
      align-items: flex-start;
      justify-content: space-between;
    }
    .c-box__row--col2 > * {
      width: 48%;
    }
    .c-box__row--col3 {
      display: flex;
      flex-flow: row nowrap;
      align-items: flex-start;
      justify-content: space-between;
    }
    .c-box__row--col3 > * {
      width: 32%;
    }
    .c-box__row--col4 {
      display: flex;
      flex-flow: row nowrap;
      align-items: flex-start;
      justify-content: space-between;
    }
    .c-box__row--col4 > * {
      width: 100%;
    }
    .c-box__row--col4 > * {
      width: 23%;
    }
    .c-cta__list {
      flex-direction: row;
      justify-content: center;
    }
    .c-cta__item {
      width: 400px;
    }
    .c-heading-lv4 {
      margin: 0 0 16px 0;
      font-size: 1.25rem;
    }
    .c-heading-lv4--center, .c-heading-lv4--center-tab {
      margin: 0 0 16px 0;
      font-size: 1.25rem;
    }
    .c-heading-lv4--center-tab {
      text-align: center;
    }
    .c-note {
      font-size: 0.875rem;
    }
    .c-note--short {
      font-size: 0.875rem;
    }
    .c-note--middle {
      font-size: 0.875rem;
    }
    .c-note--large {
      font-size: 0.875rem;
    }
  }
  @layer project{
    .p-detail__text--center-tab {
      text-align: center;
    }
    .p-detail-standard__title--train {
      padding: 0 0 0 clamp(0px, 12.214vw - 45.802px, 48px);
    }
    .p-detail-standard__title--train {
      margin-bottom: 16px;
      background-position: left center;
    }
    .p-detail-standard__title--safety {
      padding: 0 0 0 clamp(0px, 12.214vw - 45.802px, 48px);
    }
    .p-detail-standard__title--safety {
      margin-bottom: 16px;
      background-position: left center;
    }
    .p-detail-standard__title--value {
      padding: 0 0 0 clamp(0px, 12.214vw - 45.802px, 48px);
    }
    .p-detail-standard__title--value {
      margin-bottom: 16px;
      background-position: left center;
    }
  }
  @layer utility{
    .u-sp {
      display: none;
    }
    .u-pc {
      display: inline-block;
    }
  }
}
@media (width >= 1024px){
  @layer reset{
    body {
      font-family: var(--font-family-pc);
    }
  }
  @layer layout{
    .l-header__title {
      font-size: 1.125rem;
    }
    .l-navbar {
      display: flex;
      flex-flow: row nowrap;
      justify-content: space-between;
      max-height: 570px;
    }
    .l-navbar .l-navbar__inner {
      max-width: 344px;
      margin: 0 auto;
      padding: clamp(40px, 3.082vw + 28.444px, 60px) 0 40px;
    }
    .l-navbar .l-navbar__list {
      width: 35%;
      padding-inline: 40px;
    }
    .l-navbar .l-navbar__consider {
      width: 65%;
      padding-inline: 60px;
    }
    .l-navbar .l-navbar__consider .l-navbar__inner {
      max-width: 782px;
    }
    .l-navbar .l-navbar__consider .l-global-area {
      display: flex;
      flex-flow: column wrap;
      max-height: 550px;
    }
    .l-navbar .l-navbar__consider .l-global-area > * {
      width: 48%;
      max-width: 344px;
    }
    #js-global-nav[aria-hidden=false] {
      display: flex;
    }
    .l-footer__inner {
      display: flex;
      flex-flow: row nowrap;
      align-items: center;
      justify-content: space-between;
      margin-inline: auto;
      padding-inline: var(--padding-inline-container);
      padding-block: 12px 16px;
    }
    .l-footer__list {
      column-gap: 2px;
      flex-direction: row;
      justify-content: flex-start;
    }
    .l-footer__item {
      position: relative;
    }
    .l-footer__item::after {
      display: inline-block;
      width: 0.2em;
      height: 0.75em;
      margin-inline: 4px 6px;
      transform: rotate(30deg) translateY(2px);
      border-right: 1px solid var(--neutral-500);
      content: "";
    }
    .l-footer__item:last-child::after {
      content: none;
    }
    .l-footer__copyright {
      margin-top: 0;
      text-align: right;
    }
  }
  @layer component{
    .c-button-primary {
      font-weight: bold;
      font-family: var(--font-family);
    }
    .c-button-primary:hover, .c-button-primary:focus {
      filter: brightness(1.1);
      opacity: 0.8;
    }
    .c-button-secondary {
      font-weight: bold;
      font-family: var(--font-family);
    }
    .c-button-secondary:hover, .c-button-secondary:focus {
      filter: brightness(1.1);
      opacity: 0.8;
    }
    .c-box__image {
      margin-bottom: 0;
    }
    .c-heading-lv1 {
      margin: 0;
      font-size: 2.5rem;
    }
    .c-heading-lv2 {
      margin: 0 0 24px 0;
      font-size: 2.125rem;
    }
    .c-heading-lv2--line {
      margin: 0 0 24px 0;
      font-size: 2.125rem;
    }
    .c-heading-lv3 {
      margin: 0 0 16px 0;
      font-size: 1.625rem;
    }
    .c-heading-lv3-label {
      font-size: 1.625rem;
    }
    .c-label {
      font-size: 1.125rem;
    }
    .c-heading-lv5 {
      margin: 0 0 16px 0;
      font-size: 1.125rem;
    }
    .c-heading-icon-book {
      font-size: 1.625rem;
    }
    .c-heading-icon-train {
      font-size: 1.625rem;
    }
    .c-table {
      max-width: 800px;
    }
    .c-table__thead .c-table__th,
    .c-table__thead .c-table__th--center {
      font-size: 1rem;
    }
    .c-table__tbody .c-table__th,
    .c-table__tbody .c-table__th--center,
    .c-table__tbody .c-table__td,
    .c-table__tbody .c-table__td--vat {
      font-size: 1rem;
    }
    .c-table-scroll {
      max-width: 800px;
      margin: 0 auto 24px;
      overflow-x: auto;
    }
    .c-table-scroll__thead .c-table-scroll__th,
    .c-table-scroll__thead .c-table-scroll__th--center {
      font-size: 1rem;
    }
    .c-table-scroll__tbody .c-table-scroll__th,
    .c-table-scroll__tbody .c-table-scroll__th--center,
    .c-table-scroll__tbody .c-table-scroll__td,
    .c-table-scroll__tbody .c-table-scroll__td--vat {
      font-size: 1rem;
    }
    .c-toc__link {
      padding-left: 1.25em;
    }
    .c-toc__item--child > .c-toc__link::before {
      width: 0.5em;
      margin-inline: 0.25em 0.5em;
    }
  }
  @layer project{
    .p-detail__section {
      margin-bottom: 80px;
    }
    .p-detail__section--sub {
      margin-bottom: 52px;
    }
    .p-detail__section--minor {
      margin-bottom: 36px;
    }
    .p-detail__image--img {
      margin-bottom: 16px;
    }
    .p-detail-intro-expert {
      margin: 0 auto;
    }
    .p-detail-intro-expert__inner {
      flex-direction: row;
      align-items: flex-start;
    }
    .p-detail-intro-expert__body {
      text-align: left;
    }
    .p-detail-intro-expert__label::after {
      margin: 8px 0 0;
    }
    .p-detail__highlight-list {
      flex-direction: row;
      align-items: center;
    }
    .p-detail__highlight-term {
      flex-shrink: 0;
      font-size: 1.125rem;
    }
    .p-detail__highlight-desc {
      flex: 1;
    }
    .p-home__heading-lv2 .lang-ja {
      font-size: 1rem;
      line-height: 1.2;
    }
    .p-home__heading-lv2 .lang-en {
      font-size: 3.75rem;
      line-height: 1.2;
    }
    .p-home-casestudy .splide__track {
      position: relative;
      padding-bottom: 0;
      overflow: hidden;
      background: none;
    }
    .p-home-casestudy .splide__track::before, .p-home-casestudy .splide__track::after {
      z-index: 10;
      position: absolute;
      top: 0;
      width: 100px;
      height: 100%;
      content: "";
      pointer-events: none;
    }
    .p-home-casestudy .splide__track::before {
      left: 0;
      background: linear-gradient(to right, rgb(255, 255, 255), rgba(255, 255, 255, 0));
    }
    .p-home-casestudy .splide__track::after {
      right: 0;
      background: linear-gradient(to left, rgb(255, 255, 255), rgba(255, 255, 255, 0));
    }
    .p-home-casestudy .splide__slide {
      margin-right: 24px !important;
      background-color: var(--neutral-200);
    }
    .p-home-casestudy .splide__arrows {
      padding-bottom: 16px;
    }
    .p-home-casestudy .c-box__column .c-box__text {
      padding-bottom: 19px;
    }
    .p-home-casestudy__label {
      font-size: 1.0625rem;
    }
    .p-home-casestudy__title {
      margin-top: 8px;
      font-size: 1.5rem;
      line-height: 1.25;
    }
    .p-home-casestudy__seedetail {
      margin-top: auto;
    }
    .p-home-about {
      margin-block-start: 16px;
      padding-block: 56px;
    }
    .p-home-about__inner {
      display: grid;
      grid-template-columns: 385px 1fr;
      max-width: var(--max-inline-size-medium);
      margin: 0 auto;
    }
    .p-home-about__text {
      font-size: 1.25rem;
    }
    .p-home-knowledge {
      padding-block: 120px 160px;
    }
    .p-home-knowledge__inner {
      display: grid;
      grid-template-columns: 385px 1fr;
      max-width: var(--max-inline-size-medium);
      margin: 0 auto;
    }
    .p-home-knowledge__item {
      position: relative;
      background-color: var(--neutral-50);
    }
    .p-home-knowledge__item::before {
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      width: 3px;
      height: 100%;
      border-radius: 5px;
      background-color: var(--neutral-900);
      content: "";
    }
    .p-home-knowledge__body {
      display: flex;
      flex-flow: row-reverse nowrap;
      align-items: stretch;
      justify-content: space-between;
      padding: 0;
    }
    .p-home-knowledge__img {
      flex-shrink: 0;
      max-width: 344px;
      margin-left: 16px;
    }
    .p-home-knowledge__text {
      display: flex;
      flex-direction: column;
      width: 60%;
      margin-bottom: 0;
      padding: 0 24px 0 32px;
    }
    .p-home-knowledge__summary {
      flex: 1;
    }
    .p-home-knowledge__seedetail {
      margin-top: auto;
    }
  }
  @layer utility{
    .u-play:before {
      width: 60px;
      height: 60px;
    }
    .u-flex-start {
      display: flex;
      flex-flow: row wrap;
      align-items: center;
      justify-content: flex-start;
    }
    .u-flex-end {
      display: flex;
      flex-flow: row wrap;
      align-items: center;
      justify-content: flex-end;
    }
    .u-flex_center {
      display: flex;
      flex-flow: row wrap;
      align-items: center;
      justify-content: center;
    }
    .u-flex_space-between {
      display: flex;
      flex-flow: row wrap;
      align-items: center;
      justify-content: space-between;
    }
    .u-flex_space-around {
      display: flex;
      flex-flow: row wrap;
      align-items: center;
      justify-content: space-around;
    }
    .u-flex_space-between_start {
      display: flex;
      flex-flow: row wrap;
      align-items: start;
      justify-content: space-between;
    }
    .u-col_1 {
      justify-content: center !important;
      width: 100%;
      max-width: 800px;
    }
    .u-col_2 {
      gap: 16px;
    }
    .u-col_2 > * {
      width: calc(50% - 16px) !important;
    }
    .u-col_3 {
      gap: 12px;
    }
    .u-col_3 > * {
      width: calc(33.3333333333% - 12px) !important;
    }
    .u-col_3 > *:after {
      display: block;
      width: calc(33.3333333333% - 12px) !important;
      content: "";
    }
    .u-col_4 {
      gap: 8px;
    }
    .u-col_4 > * {
      width: calc(25% - 8px) !important;
    }
    .u-col_4 > *:before, .u-col_4 > *:after {
      display: block;
      width: calc(25% - 8px) !important;
      content: "";
    }
    .u-col_4 > *:before {
      order: 1;
    }
    .u-col_5 > * {
      justify-content: flex-start !important;
      width: 18.9% !important;
      margin: 0 8px 0 0 !important;
    }
    .u-col_5 > *:last-child {
      margin: 0 !important;
    }
  }
}
@media (any-hover: hover){
  @layer reset{
    a:not([class]):has(img):where(:any-link, :enabled, summary):hover {
      opacity: 0.7;
      transition: opacity 0.3s;
    }
  }
  @layer layout{
    .l-container a:not(:has(img)):where(:any-link, :enabled, summary):hover,
    .l-entry-content a:not(:has(img)):where(:any-link, :enabled, summary):hover {
      color: var(--neutral-900);
    }
    .l-container a:not(:has(img)):where(:any-link, :enabled, summary):hover[target=_blank]::after,
    .l-entry-content a:not(:has(img)):where(:any-link, :enabled, summary):hover[target=_blank]::after {
      background-color: var(--c-black);
    }
    .l-container a:not(:has(img)):where(:any-link, :enabled, summary):hover[href$=".pdf"]::after,
    .l-entry-content a:not(:has(img)):where(:any-link, :enabled, summary):hover[href$=".pdf"]::after {
      background-color: var(--c-black);
    }
    .l-navbar .l-navbar__list .l-global-nav__link:where(:any-link, :enabled, summary):hover {
      text-decoration: underline;
    }
    .l-navbar .l-navbar__list .l-global-nav__link:where(:any-link, :enabled, summary):hover::after {
      right: 3px;
    }
    .l-navbar .l-navbar__consider .l-global-nav__link:where(:any-link, :enabled, summary):hover {
      text-decoration: underline;
    }
    .l-navbar .l-navbar__consider .l-global-nav__link:where(:any-link, :enabled, summary):hover::after {
      right: 3px;
    }
    .l-breadcrumbs__list-item a:where(:any-link, :enabled, summary):hover {
      text-decoration: none;
    }
  }
}
@media (prefers-reduced-motion: no-preference){
  @layer layout{
    .l-container a:not(:has(img)),
    .l-entry-content a:not(:has(img)) {
      transition: all 0.3s;
    }
    .l-container a:not(:has(img))::after,
    .l-entry-content a:not(:has(img))::after {
      transition: all 0.3s;
    }
  }
}
@media only screen{
@media (width >= 1024px){
    @layer reset{
    body {
      font-family: var(--font-family-pc);
    }
    }
    @layer layout{
    .l-header__title {
      font-size: 1.125rem;
    }
    .l-navbar {
      display: flex;
      flex-flow: row nowrap;
      justify-content: space-between;
      max-height: 570px;
    }
    .l-navbar .l-navbar__inner {
      max-width: 344px;
      margin: 0 auto;
      padding: clamp(40px, 3.082vw + 28.444px, 60px) 0 40px;
    }
    .l-navbar .l-navbar__list {
      width: 35%;
      padding-inline: 40px;
    }
    .l-navbar .l-navbar__consider {
      width: 65%;
      padding-inline: 60px;
    }
    .l-navbar .l-navbar__consider .l-navbar__inner {
      max-width: 782px;
    }
    .l-navbar .l-navbar__consider .l-global-area {
      display: flex;
      flex-flow: column wrap;
      max-height: 550px;
    }
    .l-navbar .l-navbar__consider .l-global-area > * {
      width: 48%;
      max-width: 344px;
    }
    #js-global-nav[aria-hidden=false] {
      display: flex;
    }
    .l-footer__inner {
      display: flex;
      flex-flow: row nowrap;
      align-items: center;
      justify-content: space-between;
      margin-inline: auto;
      padding-inline: var(--padding-inline-container);
      padding-block: 12px 16px;
    }
    .l-footer__list {
      column-gap: 2px;
      flex-direction: row;
      justify-content: flex-start;
    }
    .l-footer__item {
      position: relative;
    }
    .l-footer__item::after {
      display: inline-block;
      width: 0.2em;
      height: 0.75em;
      margin-inline: 4px 6px;
      transform: rotate(30deg) translateY(2px);
      border-right: 1px solid var(--neutral-500);
      content: "";
    }
    .l-footer__item:last-child::after {
      content: none;
    }
    .l-footer__copyright {
      margin-top: 0;
      text-align: right;
    }
    }
    @layer component{
    .c-button-primary {
      font-weight: bold;
      font-family: var(--font-family);
    }
    .c-button-primary:hover, .c-button-primary:focus {
      filter: brightness(1.1);
      opacity: 0.8;
    }
    .c-button-secondary {
      font-weight: bold;
      font-family: var(--font-family);
    }
    .c-button-secondary:hover, .c-button-secondary:focus {
      filter: brightness(1.1);
      opacity: 0.8;
    }
    .c-box__image {
      margin-bottom: 0;
    }
    .c-heading-lv1 {
      margin: 0;
      font-size: 2.5rem;
    }
    .c-heading-lv2 {
      margin: 0 0 24px 0;
      font-size: 2.125rem;
    }
    .c-heading-lv2--line {
      margin: 0 0 24px 0;
      font-size: 2.125rem;
    }
    .c-heading-lv3 {
      margin: 0 0 16px 0;
      font-size: 1.625rem;
    }
    .c-heading-lv3-label {
      font-size: 1.625rem;
    }
    .c-label {
      font-size: 1.125rem;
    }
    .c-heading-lv5 {
      margin: 0 0 16px 0;
      font-size: 1.125rem;
    }
    .c-heading-icon-book {
      font-size: 1.625rem;
    }
    .c-heading-icon-train {
      font-size: 1.625rem;
    }
    .c-table {
      max-width: 800px;
    }
    .c-table__thead .c-table__th,
    .c-table__thead .c-table__th--center {
      font-size: 1rem;
    }
    .c-table__tbody .c-table__th,
    .c-table__tbody .c-table__th--center,
    .c-table__tbody .c-table__td,
    .c-table__tbody .c-table__td--vat {
      font-size: 1rem;
    }
    .c-table-scroll {
      max-width: 800px;
      margin: 0 auto 24px;
      overflow-x: auto;
    }
    .c-table-scroll__thead .c-table-scroll__th,
    .c-table-scroll__thead .c-table-scroll__th--center {
      font-size: 1rem;
    }
    .c-table-scroll__tbody .c-table-scroll__th,
    .c-table-scroll__tbody .c-table-scroll__th--center,
    .c-table-scroll__tbody .c-table-scroll__td,
    .c-table-scroll__tbody .c-table-scroll__td--vat {
      font-size: 1rem;
    }
    .c-toc__link {
      padding-left: 1.25em;
    }
    .c-toc__item--child > .c-toc__link::before {
      width: 0.5em;
      margin-inline: 0.25em 0.5em;
    }
    }
    @layer project{
    .p-detail__section {
      margin-bottom: 80px;
    }
    .p-detail__section--sub {
      margin-bottom: 52px;
    }
    .p-detail__section--minor {
      margin-bottom: 36px;
    }
    .p-detail__image--img {
      margin-bottom: 16px;
    }
    .p-detail-intro-expert {
      margin: 0 auto;
    }
    .p-detail-intro-expert__inner {
      flex-direction: row;
      align-items: flex-start;
    }
    .p-detail-intro-expert__body {
      text-align: left;
    }
    .p-detail-intro-expert__label::after {
      margin: 8px 0 0;
    }
    .p-detail__highlight-list {
      flex-direction: row;
      align-items: center;
    }
    .p-detail__highlight-term {
      flex-shrink: 0;
      font-size: 1.125rem;
    }
    .p-detail__highlight-desc {
      flex: 1;
    }
    .p-home__heading-lv2 .lang-ja {
      font-size: 1rem;
      line-height: 1.2;
    }
    .p-home__heading-lv2 .lang-en {
      font-size: 3.75rem;
      line-height: 1.2;
    }
    .p-home-casestudy .splide__track {
      position: relative;
      padding-bottom: 0;
      overflow: hidden;
      background: none;
    }
    .p-home-casestudy .splide__track::before, .p-home-casestudy .splide__track::after {
      z-index: 10;
      position: absolute;
      top: 0;
      width: 100px;
      height: 100%;
      content: "";
      pointer-events: none;
    }
    .p-home-casestudy .splide__track::before {
      left: 0;
      background: linear-gradient(to right, rgb(255, 255, 255), rgba(255, 255, 255, 0));
    }
    .p-home-casestudy .splide__track::after {
      right: 0;
      background: linear-gradient(to left, rgb(255, 255, 255), rgba(255, 255, 255, 0));
    }
    .p-home-casestudy .splide__slide {
      margin-right: 24px !important;
      background-color: var(--neutral-200);
    }
    .p-home-casestudy .splide__arrows {
      padding-bottom: 16px;
    }
    .p-home-casestudy .c-box__column .c-box__text {
      padding-bottom: 19px;
    }
    .p-home-casestudy__label {
      font-size: 1.0625rem;
    }
    .p-home-casestudy__title {
      margin-top: 8px;
      font-size: 1.5rem;
      line-height: 1.25;
    }
    .p-home-casestudy__seedetail {
      margin-top: auto;
    }
    .p-home-about {
      margin-block-start: 16px;
      padding-block: 56px;
    }
    .p-home-about__inner {
      display: grid;
      grid-template-columns: 385px 1fr;
      max-width: var(--max-inline-size-medium);
      margin: 0 auto;
    }
    .p-home-about__text {
      font-size: 1.25rem;
    }
    .p-home-knowledge {
      padding-block: 120px 160px;
    }
    .p-home-knowledge__inner {
      display: grid;
      grid-template-columns: 385px 1fr;
      max-width: var(--max-inline-size-medium);
      margin: 0 auto;
    }
    .p-home-knowledge__item {
      position: relative;
      background-color: var(--neutral-50);
    }
    .p-home-knowledge__item::before {
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      width: 3px;
      height: 100%;
      border-radius: 5px;
      background-color: var(--neutral-900);
      content: "";
    }
    .p-home-knowledge__body {
      display: flex;
      flex-flow: row-reverse nowrap;
      align-items: stretch;
      justify-content: space-between;
      padding: 0;
    }
    .p-home-knowledge__img {
      flex-shrink: 0;
      max-width: 344px;
      margin-left: 16px;
    }
    .p-home-knowledge__text {
      display: flex;
      flex-direction: column;
      width: 60%;
      margin-bottom: 0;
      padding: 0 24px 0 32px;
    }
    .p-home-knowledge__summary {
      flex: 1;
    }
    .p-home-knowledge__seedetail {
      margin-top: auto;
    }
    }
    @layer utility{
    .u-play:before {
      width: 60px;
      height: 60px;
    }
    .u-flex-start {
      display: flex;
      flex-flow: row wrap;
      align-items: center;
      justify-content: flex-start;
    }
    .u-flex-end {
      display: flex;
      flex-flow: row wrap;
      align-items: center;
      justify-content: flex-end;
    }
    .u-flex_center {
      display: flex;
      flex-flow: row wrap;
      align-items: center;
      justify-content: center;
    }
    .u-flex_space-between {
      display: flex;
      flex-flow: row wrap;
      align-items: center;
      justify-content: space-between;
    }
    .u-flex_space-around {
      display: flex;
      flex-flow: row wrap;
      align-items: center;
      justify-content: space-around;
    }
    .u-flex_space-between_start {
      display: flex;
      flex-flow: row wrap;
      align-items: start;
      justify-content: space-between;
    }
    .u-col_1 {
      justify-content: center !important;
      width: 100%;
      max-width: 800px;
    }
    .u-col_2 {
      gap: 16px;
    }
    .u-col_2 > * {
      width: calc(50% - 16px) !important;
    }
    .u-col_3 {
      gap: 12px;
    }
    .u-col_3 > * {
      width: calc(33.3333333333% - 12px) !important;
    }
    .u-col_3 > *:after {
      display: block;
      width: calc(33.3333333333% - 12px) !important;
      content: "";
    }
    .u-col_4 {
      gap: 8px;
    }
    .u-col_4 > * {
      width: calc(25% - 8px) !important;
    }
    .u-col_4 > *:before, .u-col_4 > *:after {
      display: block;
      width: calc(25% - 8px) !important;
      content: "";
    }
    .u-col_4 > *:before {
      order: 1;
    }
    .u-col_5 > * {
      justify-content: flex-start !important;
      width: 18.9% !important;
      margin: 0 8px 0 0 !important;
    }
    .u-col_5 > *:last-child {
      margin: 0 !important;
    }
    }
  }
@media (width >= 768px){
    @layer reset{
    body {
      font-family: var(--font-family-pc) !important;
    }
    }
    @layer component{
    .c-box__row--ratio2-8 {
      display: flex;
      flex-flow: row nowrap;
      align-items: flex-start;
      justify-content: space-between;
    }
    .c-box__row--ratio2-8 .c-box__image {
      width: 18%;
    }
    .c-box__row--ratio2-8 .c-box__text {
      width: 80%;
    }
    .c-box__row--ratio2-8--reverse {
      display: flex;
      flex-flow: row nowrap;
      align-items: flex-start;
      justify-content: space-between;
    }
    .c-box__row--ratio2-8--reverse .c-box__image {
      width: 18%;
    }
    .c-box__row--ratio2-8--reverse .c-box__text {
      width: 80%;
    }
    .c-box__row--ratio2-8--reverse {
      flex-direction: row-reverse;
    }
    .c-box__row--ratio3-7 {
      display: flex;
      flex-flow: row nowrap;
      align-items: flex-start;
      justify-content: space-between;
    }
    .c-box__row--ratio3-7 .c-box__image {
      width: 28%;
    }
    .c-box__row--ratio3-7 .c-box__text {
      width: 70%;
    }
    .c-box__row--ratio3-7--reverse {
      display: flex;
      flex-flow: row nowrap;
      align-items: flex-start;
      justify-content: space-between;
    }
    .c-box__row--ratio3-7--reverse .c-box__image {
      width: 28%;
    }
    .c-box__row--ratio3-7--reverse .c-box__text {
      width: 70%;
    }
    .c-box__row--ratio3-7--reverse {
      flex-direction: row-reverse;
    }
    .c-box__row--ratio4-6 {
      display: flex;
      flex-flow: row nowrap;
      align-items: flex-start;
      justify-content: space-between;
    }
    .c-box__row--ratio4-6 .c-box__image {
      width: 38%;
    }
    .c-box__row--ratio4-6 .c-box__text {
      width: 60%;
    }
    .c-box__row--ratio4-6--reverse {
      display: flex;
      flex-flow: row nowrap;
      align-items: flex-start;
      justify-content: space-between;
    }
    .c-box__row--ratio4-6--reverse .c-box__image {
      width: 38%;
    }
    .c-box__row--ratio4-6--reverse .c-box__text {
      width: 60%;
    }
    .c-box__row--ratio4-6--reverse {
      flex-direction: row-reverse;
    }
    .c-box__row--col2 {
      display: flex;
      flex-flow: row nowrap;
      align-items: flex-start;
      justify-content: space-between;
    }
    .c-box__row--col2 > * {
      width: 48%;
    }
    .c-box__row--col3 {
      display: flex;
      flex-flow: row nowrap;
      align-items: flex-start;
      justify-content: space-between;
    }
    .c-box__row--col3 > * {
      width: 32%;
    }
    .c-box__row--col4 {
      display: flex;
      flex-flow: row nowrap;
      align-items: flex-start;
      justify-content: space-between;
    }
    .c-box__row--col4 > * {
      width: 100%;
    }
    .c-box__row--col4 > * {
      width: 23%;
    }
    .c-cta__list {
      flex-direction: row;
      justify-content: center;
    }
    .c-cta__item {
      width: 400px;
    }
    .c-heading-lv4 {
      margin: 0 0 16px 0;
      font-size: 1.25rem;
    }
    .c-heading-lv4--center, .c-heading-lv4--center-tab {
      margin: 0 0 16px 0;
      font-size: 1.25rem;
    }
    .c-heading-lv4--center-tab {
      text-align: center;
    }
    .c-note {
      font-size: 0.875rem;
    }
    .c-note--short {
      font-size: 0.875rem;
    }
    .c-note--middle {
      font-size: 0.875rem;
    }
    .c-note--large {
      font-size: 0.875rem;
    }
    }
    @layer project{
    .p-detail__text--center-tab {
      text-align: center;
    }
    .p-detail-standard__title--train {
      padding: 0 0 0 clamp(0px, 12.214vw - 45.802px, 48px);
    }
    .p-detail-standard__title--train {
      margin-bottom: 16px;
      background-position: left center;
    }
    .p-detail-standard__title--safety {
      padding: 0 0 0 clamp(0px, 12.214vw - 45.802px, 48px);
    }
    .p-detail-standard__title--safety {
      margin-bottom: 16px;
      background-position: left center;
    }
    .p-detail-standard__title--value {
      padding: 0 0 0 clamp(0px, 12.214vw - 45.802px, 48px);
    }
    .p-detail-standard__title--value {
      margin-bottom: 16px;
      background-position: left center;
    }
    }
    @layer utility{
    .u-sp {
      display: none;
    }
    .u-pc {
      display: inline-block;
    }
    }
  }
}.splide__container{box-sizing:border-box;position:relative}.splide__list{display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important;backface-visibility:hidden}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;display:-ms-flexbox;display:flex;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;margin:0;line-height:1;list-style-type:none;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{visibility:hidden;position:relative}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{box-sizing:border-box;backface-visibility:hidden;-ms-flex-negative:0;position:relative;flex-shrink:0;margin:0;list-style-type:none!important}.splide__slide img{vertical-align:bottom}.splide__spinner{contain:strict;display:inline-block;position:absolute;top:0;right:0;bottom:0;left:0;width:20px;height:20px;margin:auto;border:2px solid #999;border-radius:50%;border-left-color:transparent;animation:splide-loading 1s linear infinite}.splide__sr{clip:rect(0 0 0 0);position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;border:0}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{z-index:0;position:relative;overflow:hidden}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{z-index:0;margin:0!important;opacity:0}.splide__track--fade>.splide__list>.splide__slide.is-active{z-index:1;opacity:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__arrow{-ms-flex-align:center;display:-ms-flexbox;display:flex;align-items:center;height:2em;border:0;border-radius:50%;background:#ccc;cursor:pointer;-ms-flex-pack:center;z-index:1;position:absolute;top:50%;justify-content:center;width:2em;padding:0;transform:translateY(-50%);opacity:.7}.splide__arrow svg{width:1.2em;height:1.2em;fill:#000}.splide__arrow:hover:not(:disabled){opacity:.9}.splide__arrow:disabled{opacity:.3}.splide__arrow:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide.is-focus-in .splide__arrow:focus{outline:3px solid #0bf;outline-offset:3px}.splide__pagination{z-index:1;position:absolute;right:0;bottom:.5em;left:0;padding:0 1em}.splide__pagination__page{display:inline-block;position:relative;width:8px;height:8px;margin:3px;padding:0;border:0;border-radius:50%;background:#ccc;opacity:.7;transition:transform .2s linear}.splide__pagination__page.is-active{z-index:1;transform:scale(1.4);background:#fff}.splide__pagination__page:hover{cursor:pointer;opacity:.9}.splide__pagination__page:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__pagination__page:focus{outline:3px solid #0bf;outline-offset:3px}.splide__progress__bar{height:3px;background:#ccc}.splide__slide{-webkit-tap-highlight-color:rgba(0,0,0,0)}.splide__slide:focus{outline:0}@supports(outline-offset:-3px){.splide__slide:focus-visible{outline:3px solid #0bf;outline-offset:-3px}.splide.is-focus-in .splide__slide:focus{outline:3px solid #0bf;outline-offset:-3px}}.splide__toggle{cursor:pointer}.splide__toggle:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__toggle:focus{outline:3px solid #0bf;outline-offset:3px}.splide__track--nav>.splide__list>.splide__slide{border:3px solid transparent;cursor:pointer}.splide__track--nav>.splide__list>.splide__slide.is-active{border:3px solid #000}.splide__arrows--rtl .splide__arrow--prev{right:1em;left:auto}.splide__arrows--rtl .splide__arrow--prev svg{transform:scaleX(1)}.splide__arrows--rtl .splide__arrow--next{right:auto;left:1em}.splide__arrows--rtl .splide__arrow--next svg{transform:scaleX(-1)}.splide__arrows--ttb .splide__arrow{left:50%;transform:translate(-50%)}.splide__arrows--ttb .splide__arrow--prev{top:1em}.splide__arrows--ttb .splide__arrow--prev svg{transform:rotate(-90deg)}.splide__arrows--ttb .splide__arrow--next{top:auto;bottom:1em}.splide__arrows--ttb .splide__arrow--next svg{transform:rotate(90deg)}.splide__pagination--ttb{display:-ms-flexbox;display:flex;bottom:0;-ms-flex-direction:column;top:0;right:.5em;left:auto;flex-direction:column;padding:1em 0}@media screen and (-ms-high-contrast:none){.splide__slide:focus-visible{border:3px solid #0bf}.splide.is-focus-in .splide__slide:focus{border:3px solid #0bf}.splide.is-focus-in .splide__track>.splide__list>.splide__slide:focus{border-color:#0bf}}