@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
@import url(https://fonts.googleapis.com/icon?family=Material+Icons+Outlined);
@layer Reset {
  /*! destyle.css v1.0.14 | MIT License | https://github.com/nicolas-cusan/destyle.css */
  /* Reset box-model */
  /* ============================================ */
  * {
    box-sizing: border-box;
  }
  ::before,
  ::after {
    box-sizing: inherit;
  }
  /* Document */
  /* ============================================ */
  /**
   * 1. Correct the line height in all browsers.
   * 2. Prevent adjustments of font size after orientation changes in iOS.
   * 3. Remove gray overlay on links for iOS.
   */
  html {
    line-height: 1.15; /* 1 */
    -webkit-text-size-adjust: 100%; /* 2 */
    -webkit-tap-highlight-color: transparent; /* 3*/
  }
  /* Sections */
  /* ============================================ */
  /**
   * Remove the margin in all browsers.
   */
  body {
    margin: 0;
  }
  /**
   * Render the `main` element consistently in IE.
   */
  main {
    display: block;
  }
  /* Vertical rhythm */
  /* ============================================ */
  p,
  table,
  blockquote,
  address,
  pre,
  iframe,
  form,
  figure,
  dl {
    margin: 0;
  }
  /* Headings */
  /* ============================================ */
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
    margin: 0;
  }
  /* Lists (enumeration) */
  /* ============================================ */
  ul,
  ol {
    margin: 0;
    padding: 0;
    list-style: none;
  }
  /* Lists (definition) */
  /* ============================================ */
  dt {
    font-weight: bold;
  }
  dd {
    margin-left: 0;
  }
  /* Grouping content */
  /* ============================================ */
  /**
   * 1. Add the correct box sizing in Firefox.
   * 2. Show the overflow in Edge and IE.
   */
  hr {
    box-sizing: content-box; /* 1 */
    height: 0; /* 1 */
    overflow: visible; /* 2 */
    border: 0;
    border-top: 1px solid;
    margin: 0;
    clear: both;
    color: inherit;
  }
  /**
   * 1. Correct the inheritance and scaling of font size in all browsers.
   * 2. Correct the odd `em` font sizing in all browsers.
   */
  pre {
    font-family: monospace, monospace; /* 1 */
    font-size: inherit; /* 2 */
  }
  address {
    font-style: inherit;
  }
  /* Text-level semantics */
  /* ============================================ */
  /**
   * Remove the gray background on active links in IE 10.
   */
  a {
    background-color: transparent;
    text-decoration: none;
    color: inherit;
  }
  /**
   * 1. Remove the bottom border in Chrome 57-
   * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
   */
  abbr[title] {
    border-bottom: none; /* 1 */
    text-decoration: underline; /* 2 */
    text-decoration: underline dotted; /* 2 */
  }
  /**
   * Add the correct font weight in Chrome, Edge, and Safari.
   */
  b,
  strong {
    font-weight: bolder;
  }
  /**
   * 1. Correct the inheritance and scaling of font size in all browsers.
   * 2. Correct the odd `em` font sizing in all browsers.
   */
  code,
  kbd,
  samp {
    font-family: monospace, monospace; /* 1 */
    font-size: inherit; /* 2 */
  }
  /**
   * Add the correct font size in all browsers.
   */
  small {
    font-size: 80%;
  }
  /**
   * Prevent `sub` and `sup` elements from affecting the line height in
   * all browsers.
   */
  sub,
  sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  /* Embedded content */
  /* ============================================ */
  /**
   * Remove the border on images inside links in IE 10.
   */
  img {
    border-style: none;
    vertical-align: bottom;
  }
  embed,
  object,
  iframe {
    border: 0;
    vertical-align: bottom;
  }
  /* Forms */
  /* ============================================ */
  /**
   * Reset form fields to make them styleable
   */
  button,
  input,
  optgroup,
  select,
  textarea {
    -webkit-appearance: none;
    appearance: none;
    vertical-align: middle;
    color: inherit;
    font: inherit;
    border: 0;
    background: transparent;
    padding: 0;
    margin: 0;
    outline: 0;
    border-radius: 0;
    text-align: inherit;
  }
  /**
   * Reset radio and checkbox appearance to preserve their look in iOS.
   */
  [type=checkbox] {
    -webkit-appearance: checkbox;
    appearance: checkbox;
  }
  [type=radio] {
    -webkit-appearance: radio;
    appearance: radio;
  }
  /**
   * Show the overflow in IE.
   * 1. Show the overflow in Edge.
   */
  button,
  input {
    /* 1 */
    overflow: visible;
  }
  /**
   * Remove the inheritance of text transform in Edge, Firefox, and IE.
   * 1. Remove the inheritance of text transform in Firefox.
   */
  button,
  select {
    /* 1 */
    text-transform: none;
  }
  /**
   * Correct the inability to style clickable types in iOS and Safari.
   */
  button,
  [type=button],
  [type=reset],
  [type=submit] {
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
  }
  button[disabled],
  [type=button][disabled],
  [type=reset][disabled],
  [type=submit][disabled] {
    cursor: default;
  }
  /**
   * Remove the inner border and padding in Firefox.
   */
  button::-moz-focus-inner,
  [type=button]::-moz-focus-inner,
  [type=reset]::-moz-focus-inner,
  [type=submit]::-moz-focus-inner {
    border-style: none;
    padding: 0;
  }
  /**
   * Restore the focus styles unset by the previous rule.
   */
  button:-moz-focusring,
  [type=button]:-moz-focusring,
  [type=reset]:-moz-focusring,
  [type=submit]:-moz-focusring {
    outline: 1px dotted ButtonText;
  }
  /**
   * Remove arrow in IE10 & IE11
   */
  select::-ms-expand {
    display: none;
  }
  /**
   * Remove padding
   */
  option {
    padding: 0;
  }
  /**
   * Reset to invisible
   */
  fieldset {
    margin: 0;
    padding: 0;
    border: 0;
    min-width: 0;
  }
  /**
   * 1. Correct the text wrapping in Edge and IE.
   * 2. Correct the color inheritance from `fieldset` elements in IE.
   * 3. Remove the padding so developers are not caught out when they zero out
   *    `fieldset` elements in all browsers.
   */
  legend {
    color: inherit; /* 2 */
    display: table; /* 1 */
    max-width: 100%; /* 1 */
    padding: 0; /* 3 */
    white-space: normal; /* 1 */
  }
  /**
   * Add the correct vertical alignment in Chrome, Firefox, and Opera.
   */
  progress {
    vertical-align: baseline;
  }
  /**
   * Remove the default vertical scrollbar in IE 10+.
   */
  textarea {
    overflow: auto;
  }
  /**
   * Correct the cursor style of increment and decrement buttons in Chrome.
   */
  [type=number]::-webkit-inner-spin-button,
  [type=number]::-webkit-outer-spin-button {
    height: auto;
  }
  /**
   * 1. Correct the outline style in Safari.
   */
  [type=search] {
    outline-offset: -2px; /* 1 */
  }
  /**
   * Remove the inner padding in Chrome and Safari on macOS.
   */
  [type=search]::-webkit-search-decoration {
    -webkit-appearance: none;
  }
  /**
   * 1. Correct the inability to style clickable types in iOS and Safari.
   * 2. Change font properties to `inherit` in Safari.
   */
  ::-webkit-file-upload-button {
    -webkit-appearance: button; /* 1 */
    font: inherit; /* 2 */
  }
  /**
   * Clickable labels
   */
  label[for] {
    cursor: pointer;
  }
  /* Interactive */
  /* ============================================ */
  /*
   * Add the correct display in Edge, IE 10+, and Firefox.
   */
  details {
    display: block;
  }
  /*
   * Add the correct display in all browsers.
   */
  summary {
    display: list-item;
  }
  /*
   * Remove outline for editable content.
   */
  [contenteditable] {
    outline: none;
  }
  /* Table */
  /* ============================================ */
  table {
    border-collapse: collapse;
    border-spacing: 0;
  }
  caption {
    text-align: left;
  }
  td,
  th {
    vertical-align: top;
    padding: 0;
  }
  th {
    text-align: left;
    font-weight: bold;
  }
  /* Misc */
  /* ============================================ */
  /**
   * Add the correct display in IE 10+.
   */
  template {
    display: none;
  }
  /**
   * Add the correct display in IE 10.
   */
  [hidden] {
    display: none;
  }
}
/* Settings
---------------------------------------------------------- */
/* Theme
---------------------------------------------------------- */
/* Color
---------------------------------------------------------- */
/* Font
---------------------------------------------------------- */
/* Breakpoints
---------------------------------------------------------- */
/* Bootstrap 参考 */
/* Categories
---------------------------------------------------------- */
/**
* @ Media Query(1方向 || 範囲指定)
* params: $key : variables/breakpointsで定義しているマップのキー
* params: $option : (up/down) or (variables/breakpointsのキー)
*/
/* Base(  @layer Base )
---------------------------------------------------------- */
@layer Base {
  /**
  * Available vars:
  * @var --viewport-from: <number> - Number in pixels without the unit. Required if `--font-size` is not exist.
  * @var --viewport-to: <number> - Number in pixels without the unit. Required if `--font-size` is not exist.
  * @var --font-size-from: <number> - Number in pixels without the unit. Required if `--font-size` and `--min-font-size` is not exist.
  * @var --font-size-to: <number> - Number in pixels without the unit. Required if `--font-size` and `--max-font-size` is not exist.
  * @var --max-font-size: <number> - Number in pixels without the unit. Optional.
  * @var --min-font-size: <number> - Number in pixels without the unit. Optional.
  * @var --viewport-unit-converter: 1vw | 1vh | 1vmin | 1vmax - Optional. Default: 1vw.
  * @var --font-size: <length> | <percentage> | <absolute-size> | <relative-size> | Global values - Optional.
  */
  *,
  *::before,
  *::after {
    --viewport-unit-converter: 1vw;
    --fz-from: var(--font-size-from, var(--min-font-size));
    --fz-to: var(--font-size-to, var(--max-font-size));
    --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
    --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
    --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
    --min-fz-px: calc(var(--min-font-size) * 1px);
    --max-fz-px: calc(var(--max-font-size) * 1px);
    --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
    --max: var(--has-max, var(--min));
    --min: var(--has-min, var(--font-size));
    --has-max: min(var(--max-fz-px), var(--font-size));
    --has-min: max(var(--min-fz-px), var(--font-size));
    font-size: var(--clamp, var(--max));
  }
  :root {
    --root-font-size: 16px;
    --viewport-from: 375;
    --viewport-to: 1024;
    --clr-official-blue: #006EB8;
    --clr-official-green: #8FC31F;
    --clr-official-yellow: #F3CE55;
    --fc-default: #000;
    --link-clr-default: #0000ee;
    --link-clr-visited: #551a8b
    --link-clr-hover : #0000ee;
    --link-clr-active: #FF0000;
    --theme-inline-size-min: 90%;
    --theme-inline-size-max: 1024px;
    --theme-inline-size-base: min(100%, var(--theme-inline-size-max));
    --theme-inline-size-wide: 90%;
    --theme-side-gap: min(4.8vw, 48px);
    --leading-trim: calc((1em - 1lh) / 2);
    --theme-bg-color: #fff;
    --fw-r: 400;
    --fw-m: 500;
    --fw-b: 700;
    --theme-header-height: clamp(4rem, 0.6414676425rem + 14.3297380586vw, 9.8125rem);
    --scroll-bar-inline-size: 15px;
    --ff-icon: "Material Icons Outlined";
  }
  :lang(en) {
    --leading-trim: calc((1cap - 1lh) / 2);
  }
  :where(*) {
    min-inline-size: 0;
    min-block-size: 0;
  }
  :where(html) {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--theme-header-height) + min(5vw, 24px));
  }
  :where(body) {
    --min-font-size: 14;
    --max-font-size: 16;
    color: var(--fc-default);
    line-height: 1.75;
    min-block-size: 100svh;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: var(--fw-r);
    letter-spacing: 0.08em;
    background: var(--theme-bg-color);
    overflow-x: hidden;
    accent-color: #080;
  }
  @media (width <= 991px) {
    :where(body):has([data-drawer=true], .l-search-ui[open]) {
      overflow: hidden;
    }
  }
  :where(a, a:link) {
    color: var(--link-clr-default);
    text-decoration: none;
    cursor: pointer;
  }
  :where(a:visited) {
    color: revert;
  }
  @media (any-hover: hover) {
    :where(a:hover) {
      color: revert;
    }
  }
  :where(a:active) {
    color: revert;
  }
  :where(a:focus-visible, a:focus) {
    outline: solid currentColor;
    color: revert;
  }
  :where(textarea) {
    inline-size: 100%;
    field-sizing: content;
  }
  @supports (field-sizing: content) {
    :where(textarea) {
      resize: none;
    }
  }
  :where(img, picture, svg) {
    display: block;
    max-inline-size: 100%;
    height: auto;
  }
  :where(iframe, object, video) {
    display: block;
    max-inline-size: 100%;
    height: auto;
  }
  :where(button, [type=button], [type=reset], [type=submit]) {
    touch-action: manipulation;
  }
  :where(dialog) {
    width: unset;
    max-width: unset;
    height: unset;
    max-height: unset;
    padding: unset;
    color: unset;
    background-color: unset;
    border: unset;
    overflow: unset;
  }
}
.u-br-sp {
  display: block;
}
@media (width >= 992px) {
  .u-br-sp {
    display: none;
  }
}

/* Components(  @layer Base )
---------------------------------------------------------- */
@layer Components;
/* --- Components --- */
@layer Components.buttons {
  .c-btn__list {
    --column-gap: min(2.4vw, 32px);
    display: grid;
    gap: 0.48lh var(--column-gap);
    place-content: center center;
  }
  .c-btn__list:not(:first-child) {
    margin-block-start: clamp(1.5rem, 1.2110939908rem + 1.2326656394vw, 2rem);
  }
  .c-btn__list:not(:last-child) {
    margin-block-end: clamp(1.5rem, 1.2110939908rem + 1.2326656394vw, 2rem);
  }
  .c-btn__list.--column {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start;
  }
  .c-btn__list.--column :is(.c-btn) {
    max-inline-size: fit-content;
  }
  .c-btn__list.--column:is(.--center) {
    justify-content: center;
  }
  .c-btn__list.--column-x3 {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, (var(--theme-inline-size-max) - var(--column-gap) * 2) / 3), 1fr));
  }
  .c-btn__list.--single-center {
    place-content: center center;
  }
  .l-article-footer .c-btn__list a,
  .c-btn {
    --btn-hover-color: lch(from var(--clr-official-blue) calc(l + 10) calc(c + 20) h);
    --btn-gry: #808080;
    --btn-gry-hover: lch(from var(--btn-gry) calc(l + 10) c h);
    background: var(--clr-official-blue);
    border-radius: 0.5em;
    display: grid inline;
    grid-template-columns: 0 auto 1em 1em;
    grid-template-areas: ". text . arrow";
    align-items: center;
    transition: 0.3s background ease;
  }
  .l-article-footer .c-btn__list a:hover {
      background: var(--btn-hover-color);
  }

  .l-article-footer .c-btn__list a:is([type=reset], [type=back], .--gry),
  .c-btn:is([type=reset], [type=back], .--gry) {
    background: #808080;
  }
  .l-article-footer .c-btn__list a:is([type=reset], [type=back], .--gry):focus-visible,
  .c-btn:is([type=reset], [type=back], .--gry):focus-visible {
    background: var(--btn-gry-hover);
  }
  @media (any-hover: hover) {
    .l-article-footer .c-btn__list a:is([type=reset], [type=back], .--gry):hover,
    .c-btn:is([type=reset], [type=back], .--gry):hover {
      background: var(--btn-gry-hover);
    }
  }
  .l-article-footer .c-btn__list a:is(a, button, input, p),
  .c-btn:is(a, button, input, p) {
    color: #fff;
    padding: 0.24lh 0.56em 0.24lh 2em;
  }
  .l-article-footer .c-btn__list a::before,
  .c-btn::before {
    content: "";
  }
  .l-article-footer .c-btn__list a::after,
  .c-btn::after {
    --min-font-size: 12;
    --max-font-size: 14;
    content: "\e5e1";
    font-family: var(--ff-icon);
    grid-area: arrow;
    justify-self: center;
    align-self: center;
  }
  .c-btn.--small {
    --min-font-size: 12;
    --max-font-size: 14;
  }
  .c-btn.--small::after {
    --min-font-size: 10;
    --max-font-size: 12;
  }
  .c-btn:focus-visible {
    background: var(--btn-hover-color);
  }
  @media (any-hover: hover) {
    .c-btn:hover {
      background: var(--btn-hover-color);
    }
  }
  .c-btn__goast {
    display: grid;
    place-content: center center;
    color: var(--clr-official-blue);
    border: 1px solid var(--clr-official-blue);
    border-radius: 0.24em;
    grid-template-columns: 1fr 1px 1em;
    grid-template-areas: "text line icon";
    padding-inline: 1em;
    padding-block: 0.56lh;
    font-weight: var(--fw-m);
    line-height: 1.32;
    column-gap: 1em;
    transition: 0.3s color ease, 0.3s background ease;
    background: #fff;
  }
  .c-btn__goast::before {
    content: "";
    grid-area: line;
    block-size: 100%;
    background: var(--clr-official-blue);
  }
  .c-btn__goast::after {
    --min-font-size: 12;
    --max-font-size: 14;
    content: "\e5e1";
    font-family: var(--ff-icon);
    grid-area: icon;
    align-self: center;
    color: var(--clr-official-blue);
  }
  .c-btn__goast:has(.material-symbols-outlined) {
    --min-font-size: 16;
    --max-font-size: 18;
    grid-template-columns: auto 1fr 1px 1em;
    grid-template-areas: "image text line icon";
    color: #000;
    padding-block: 0.72lh;
    align-items: center;
  }
  .c-btn__goast:has(.material-symbols-outlined) span {
    color: var(--clr-official-blue);
  }
  .c-btn__goast:focus-visible {
    background: #DDEFFB;
  }
  @media (any-hover: hover) {
    .c-btn__goast:hover {
      background: #DDEFFB;
    }
  }
}
/* --- Information --- */
@layer Components.Information {
  .c-information__list {
    --line-color: #ddd;
    display: grid;
  }
  .c-information__list:where(.l-root:not([data-page=home]) *) {
    border-block-start: 1px solid var(--line-color);
  }
  .c-information__item {
    border-block-end: 1px solid var(--line-color);
  }
  .c-information__link {
    color: #000;
    display: grid;
    grid-template-columns: auto min(24vw, 114px) 1fr;
    justify-content: flex-start;
    align-items: baseline;
    padding-block: 0.72lh;
    gap: 0.32lh 1.24em;
  }
  @media (width >= 768px) {
    .c-information__link {
      grid-template-columns: max-content min(18vw, 114px) 1fr;
    }
  }
  .c-information-post__date {
    font-weight: var(--fw-m);
    letter-spacing: 0;
  }
  .c-information-post-tag {
    --min-font-size: 12;
    --max-font-size: 14;
    background: #EDF3F8;
    border-radius: 99em;
    color: var(--clr-official-blue);
    letter-spacing: 0;
    display: grid;
    place-content: center center;
    line-height: 1.32;
    font-weight: var(--fw-b);
    padding-block: 0.32lh;
  }
  .c-information-post-tag:where(:not(.c-information__item) *) {
    white-space: nowrap;
    padding-inline: 1.24em;
  }
  .c-information-post-tag:is(.--press_release) {
    background: #ffe4fe;
    color: #b43f9b;
  }
  .c-information-post-tag:is(.--seminar) {
    background: #d1f8e7;
    color: #285f47;
  }
  @media (width <= 767px) {
    .c-information-post__title {
      grid-column: 1/-1;
    }
  }
}
/* --- Tab --- */
@layer Components.Tab {
  .c-tab {
    display: grid;
  }
  .c-tab-header {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    justify-content: flex-start;
    column-gap: 5px;
    inline-size: 100%;
  }
  .c-tab__btn {
    border: 1px solid #ddd;
    border-block-end: 0;
    display: grid;
    place-content: center center;
    font-weight: var(--fw-m);
    padding-block: 0.32lh;
    background: #fff;
  }
  .c-tab__btn:is([aria-selected=false]) {
    background: #ddd;
    color: #606060;
  }
  .c-tab-panel {
    background: #fff;
  }
}
/* --- Paragraph --- */
@layer Components.Paragraph {
  .c-paragraph {
    margin-block: var(--leading-trim) calc(var(--leading-trim) + 1lh);
  }
}
/* --- Card --- */
@layer Components.Card {
  .c-card__list {
    --split-num: 3;
    --column-gap: min(2.4vw, 32px);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, (var(--theme-inline-size-max) - var(--column-gap) * (var(--split-num) - 1)) / var(--split-num)), 1fr));
    column-gap: var(--column-gap);
    row-gap: 0.56lh;
  }
  .c-card__item {
    color: #000;
    display: grid;
    margin-block-end: 0.96lh;
  }
  .c-card__item:where(.c-card__list > *) {
    grid-template-rows: subgrid;
    grid-row: span 3;
  }
  .c-card__item:where(.c-card__list:is(.--row-x2) *) {
    grid-row: span 2;
  }
  .c-card__item:where(.c-card__list:is(.--row-x4) *) {
    grid-row: span 4;
  }
  .c-card__item:where(.c-card__list:is(.--row-none) *) {
    grid-row: revert;
  }
  .c-card__item:where(:not(.c-card__list > *)) {
    row-gap: 0.56lh;
  }
  .c-card__item:where(.c-card__list:is(.--style-underline) *) {
    padding-block-end: 0.56lh;
    border-block-end: 3px solid var(--clr-official-blue);
  }
  .c-card__item:focus-visible .c-card__image img {
    transform: scale(1.05);
    opacity: 0.75;
  }
  @media (any-hover: hover) {
    .c-card__item:hover .c-card__image img {
      transform: scale(1.05);
      opacity: 0.75;
    }
  }
  .c-card__image {
    inline-size: 100%;
    aspect-ratio: 4/3;
    contain: strict;
  }
  .c-card__image img {
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
    transition: 0.3s transform ease, 0.3s opacity ease;
  }
  .c-card-tag__list {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 1em 0.32lh;
  }
  .c-card-tag__item {
    --min-font-size: 12;
    --max-font-size: 14;
    color: var(--clr-official-blue);
    border: 1px solid currentColor;
    display: grid;
    place-content: center center;
    border-radius: 0.24em;
    max-inline-size: fit-content;
    padding: 0.24em 1em;
    line-height: 1.32;
  }
  .c-card__title {
    --min-font-size: 16;
    --max-font-size: 18;
    font-weight: var(--fw-m);
    line-height: 1.6875;
    margin-block: var(--leading-trim);
  }
  @media (width >= 992px) {
    .c-card__title {
      --min-font-size: 16;
      --max-font-size: 18;
    }
  }
  .c-card__title :is(a) {
    color: #000;
    text-decoration: underline;
  }
  .c-card__description {
    margin-block: var(--leading-trim);
    line-height: 1.375;
  }
  .c-card-link__list {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 0.48lh 1.48em;
  }
  .c-card-link {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: baseline;
    column-gap: 0.4em;
  }
  .c-card-link::after {
    --min-font-size: 12;
    --max-font-size: 14;
    content: "\e5e1";
    justify-self: center;
    font-family: var(--ff-icon);
    color: var(--clr-official-blue);
  }
}
/* --- Link --- */
@layer Components.Link {
  .c-link__list {
    --split-num: 3;
    --column-gap: min(1.6vw, 16px);
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, (var(--theme-inline-size-max) - var(--column-gap) * (var(--split-num) - 1)) / var(--split-num)), 1fr));
    gap: var(--column-gap);
  }
  .c-link__item {
    background: #F2F2F2;
    display: grid;
    grid-template-columns: 1fr 1.24em;
    grid-template-areas: "text icon";
    line-height: 1.5;
    padding-block: 1.08lh;
    padding-inline-start: 1.32em;
    align-items: center;
    column-gap: 1em;
    color: #000;
    font-weight: var(--fw-m);
    transition: 0.3s background ease;
  }
  .c-link__item:focus-visible {
    background: #ddd;
  }
  @media (any-hover: hover) {
    .c-link__item:hover {
      background: #ddd;
    }
  }
  .c-link__item::after {
    --min-font-size: 10;
    --max-font-size: 12;
    content: "\e5e1";
    grid-area: icon;
    font-family: var(--ff-icon);
    color: #fff;
    background: var(--clr-official-blue);
    aspect-ratio: 1;
    display: grid;
    place-content: center center;
  }
}
/* --- Heading --- */
@layer Components.Heading {
  .c-heading__lv1 {
    --min-font-size: 24;
    --max-font-size: 32;
    font-weight: var(--fw-m);
    margin-block: var(--leading-trim);
    line-height: 1.3333333333;
  }
  .c-heading__lv1:where(.l-section:not(:has(.l-section-header)) *) {
    margin-block: var(--leading-trim) calc(var(--leading-trim) + clamp(1.5rem, 1.2110939908rem + 1.2326656394vw, 2rem));
  }
  .c-heading__lv2 {
    --min-font-size: 20;
    --max-font-size: 24;
    font-weight: var(--fw-m);
  }
  .c-heading__line {
    --min-font-size: 12;
    --max-font-size: 14;
    color: var(--clr-official-blue);
    font-weight: var(--fw-m);
    display: grid;
    grid-template-columns: auto 1fr;
    margin-block: var(--leading-trim);
    column-gap: 16px;
  }
  .c-heading__line + * {
    margin-block-start: 1.08lh;
  }
  .c-heading__line::after {
    content: "";
    display: block;
    align-self: center;
    block-size: 1px;
    background: currentColor;
  }
  .c-heading__line:is(.--gray) {
    color: #808080;
  }
  .c-heading-bar {
    --window-size: calc( 100vw - var(--scroll-bar-inline-size) );
    background: var(--clr-official-blue);
    color: #fff;
    margin-inline: calc((var(--window-size) - var(--theme-inline-size-base)) / -2);
    position: relative;
    padding-block: 1.72lh 1.56lh;
    padding-inline: calc((var(--window-size) - var(--theme-inline-size-base)) / 2);
    margin-block-end: clamp(1.5rem, 0.1999229584rem + 5.5469953775vw, 3.75rem);
  }
  .c-heading-bar::before, .c-heading-bar::after {
    content: "";
    background: var(--clr-official-green);
    inline-size: 100%;
    block-size: 1px;
    display: block;
    position: absolute;
    left: 0;
  }
  .c-heading-bar::before {
    bottom: min(2.4vw, 16px);
  }
  .c-heading-bar::after {
    bottom: calc(min(2.4vw, 16px) + 4px);
  }
  .c-heading-bar__categoryname {
    --min-font-size: 16;
    --max-font-size: 18;
    color: #fff;
    margin-block-end: 0.24lh;
    font-weight: var(--fw-m);
  }
  .c-heading-bar__pagename {
    --min-font-size: 20;
    --max-font-size: 24;
    color: #fff;
    font-weight: var(--fw-m);
    line-height: 1.5;
    margin-block-end: 0.16lh;
  }
  .c-heading-bar__description {
    line-height: 1.5;
  }
}
@layer Components.AccordionIcon {
  .c-accordion-icon {
    inline-size: clamp(1.5rem, 1.2110939908rem + 1.2326656394vw, 2rem);
    aspect-ratio: 1;
    background: var(--clr-official-blue);
    display: grid;
    place-content: center center;
    grid-template-columns: 1fr;
    position: relative;
  }
  .c-accordion-icon::before, .c-accordion-icon::after {
    content: "";
    inline-size: 48%;
    background: #fff;
    display: block;
    block-size: 1px;
    transform-origin: center center;
    align-self: center;
    justify-self: center;
    position: absolute;
  }
  .c-accordion-icon::after {
    transform: rotate(90deg);
  }
  .c-accordion-icon.--on {
    background: #808080;
  }
  .c-accordion-icon.--on::after {
    display: none;
  }
}
/* --- Components --- */
@layer Components.BreadCrumbs {
  .c-breadcrumbs__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    padding-inline: var(--theme-side-gap);
    margin-block: calc(var(--leading-trim) + clamp(1.5rem, 0.344375963rem + 4.9306625578vw, 3.5rem));
  }
  .c-breadcrumbs__step {
    --min-font-size: 12;
    --max-font-size: 14;
    display: grid;
    grid-auto-flow: column;
    align-items: center;
    justify-content: flex-start;
  }
  .c-breadcrumbs__step:is(a) {
    color: #000;
  }
  .c-breadcrumbs__step:first-child::before {
    --min-font-size: 18;
    --max-font-size: 20;
    content: "\e88a";
    font-family: var(--ff-icon);
    color: var(--clr-official-blue);
    align-self: baseline;
  }
  .c-breadcrumbs__step:not(:last-child)::after {
    --min-font-size: 8;
    --max-font-size: 10;
    content: "\e5e1";
    font-family: var(--ff-icon);
    justify-self: center;
    color: currentColor;
    margin-inline: 1em;
  }
}
/* --- Filter --- */
@layer Components.Filter {
  .c-filter {
    --window-size: calc(100vw - var(--scroll-bar-inline-size));
    background: var(--clr-official-blue);
    color: #fff;
    place-content: center center;
    display: grid;
    row-gap: 0.24lh;
    padding-block: 0.72lh;
    padding-inline: calc((var(--window-size) - var(--theme-inline-size-base)) / 2);
    margin-inline: calc((var(--window-size) - var(--theme-inline-size-base)) / -2);
    margin-block-end: clamp(1.5rem, 1.2110939908rem + 1.2326656394vw, 2rem);
  }
  .c-filter-heading {
    --min-font-size: 18;
    --max-font-size: 20;
    font-weight: var(--fw-m);
    margin-inline: auto;
    max-inline-size: fit-content;
  }
  .c-filter-field__list {
    display: grid;
    grid-auto-flow: column;
    gap: min(2.4vw, 16px);
    color: #000;
  }
  .c-filter-field__item :is(select) {
    background: #fff;
    inline-size: min(32vw, 180px);
    line-height: 2.68;
    padding-inline: 1.24em;
    background: url(../img/icon/ic_select.svg) #fff no-repeat center right 1em/auto 35%;
  }
}
/* --- Pagination --- */
@layer Components.Pagination {
  .c-pagination__list {
    display: grid;
    grid-auto-flow: column;
    gap: 1em 0.56lh;
    color: var(--clr-official-blue);
    place-content: center center;
    margin-block-start: clamp(1.5rem, 1.2110939908rem + 1.2326656394vw, 2rem);
  }
  .c-pagination__item {
    --min-font-size: 12;
    --max-font-size: 14;
    inline-size: 2.4em;
    display: grid;
    place-content: center center;
    color: currentColor;
    background: #EDF3F8;
    aspect-ratio: 1;
    contain: strict;
  }
  .c-pagination__item:is(span) {
    background: var(--clr-official-blue);
    color: #fff;
  }
}
/* --- CTA --- */
@layer Components.CTA {
  .c-cta {
    background: #FAFAFA;
    padding-inline: var(--theme-side-gap);
    padding-block: clamp(1.5rem, 0.6332819723rem + 3.6979969183vw, 3rem);
    position: relative;
  }
  .c-cta::before {
    content: "";
    background: var(--clr-official-green);
    clip-path: polygon(50% 32%, 0 0, 100% 0);
    inline-size: clamp(3.5rem, 2.9221879815rem + 2.4653312789vw, 4.5rem);
    aspect-ratio: 1;
    display: block;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
  }
  .c-cta__inner {
    inline-size: var(--theme-inline-size-base);
    margin-inline: auto;
  }
  .c-cta-heading {
    --min-font-size: 18;
    --max-font-size: 20;
    font-weight: var(--fw-m);
    margin-inline: auto;
    max-inline-size: fit-content;
    color: var(--clr-official-blue);
    margin-block-end: 0.56lh;
  }
  .c-cta-contact__name {
    --min-font-size: 18;
    --max-font-size: 20;
    font-weight: var(--fw-m);
    margin-inline: auto;
    max-inline-size: fit-content;
  }
  .c-cta-contact__list {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: center;
    row-gap: 0.24lh;
    margin-block-start: 0.48lh;
  }
  @media (width >= 768px) {
    .c-cta-contact__list {
      flex-direction: row;
    }
  }
  @media (width <= 767px) {
    .c-cta-contact__item {
      margin-inline: auto;
      max-inline-size: fit-content;
    }
  }
  @media (width >= 768px) {
    .c-cta-contact__item:not(:last-child)::after {
      content: "／";
    }
  }
  .c-cta .c-btn__list {
    margin-block-start: clamp(1.5rem, 1.2110939908rem + 1.2326656394vw, 2rem);
    place-content: center center;
  }
}
/* --- IndexLink --- */
@layer Components.IndexLink {
  .c-indexlink {
    position: relative;
    z-index: 100;
  }
  .c-indexlink__title {
    --min-font-size: 16;
    --max-font-size: 18;
  }
  @media (width <= 991px) {
    .c-indexlink__title {
      border: 1px solid #ddd;
      border-radius: 0.24em;
      padding: 0.32lh 1em;
      font-weight: var(--fw-m);
      display: grid;
      grid-template-columns: 1fr 1.24em;
      cursor: pointer;
      align-items: center;
      column-gap: 0.56em;
    }
    .c-indexlink__title:where(.c-indexlink.--open *) {
      border-radius: 0.24em 0.24em 0 0;
      background: #efefef;
    }
    .c-indexlink__title i {
      aspect-ratio: 1;
      background: var(--clr-official-blue);
      border: 5px solid var(--clr-official-blue);
      display: grid;
      place-content: center center;
      grid-template-columns: repeat(2, 1fr);
      grid-template-rows: repeat(2, 1fr);
      margin: unset !important;
    }
    .c-indexlink__title i::before, .c-indexlink__title i::after {
      content: "";
      background: #fff;
      block-size: 1px;
      inline-size: 100%;
      grid-column: 1/-1;
      grid-row: 2/3;
    }
    .c-indexlink__title i::after {
      transform: rotate(90deg);
    }
    .c-indexlink__title i:where(.c-indexlink.--open *) {
      background: #808080;
      border: 5px solid #808080;
    }
    .c-indexlink__title i:where(.c-indexlink.--open *)::after {
      display: none;
    }
  }
  @media (width >= 992px) {
    .c-indexlink__title {
      display: grid;
      grid-template-columns: auto 1fr;
      align-items: center;
      color: #404040;
      column-gap: 0.72em;
      margin-block-end: 0.56lh;
    }
    .c-indexlink__title::after {
      content: "";
      block-size: 1px;
      background: #808080;
      align-items: center;
    }
    .c-indexlink__title i {
      display: none;
    }
  }
  .c-indexlink__list {
    --gap: min(2.4vw, 16px);
    flex-wrap: wrap;
    margin-block-end: clamp(2rem, 1.4221879815rem + 2.4653312789vw, 3rem);
    display: none;
    position: absolute;
  }
  @media (width >= 992px) {
    .c-indexlink__list {
      display: flex;
      position: relative;
      gap: 0.48lh var(--gap);
    }
  }
  @media (width <= 991px) {
    .c-indexlink__list {
      inline-size: 100%;
      background: #fff;
      border: 1px solid #ddd;
      padding: 0.56lh var(--theme-side-gap);
      row-gap: 0.32lh;
    }
    .c-indexlink__list:where(.c-indexlink.--open *) {
      display: grid;
    }
  }
  .c-indexlink__item {
    font-weight: var(--fw-m);
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    color: #000;
    column-gap: 0.56em;
  }
  @media (width >= 992px) {
    .c-indexlink__item {
      border: 1px solid #aaa;
      padding: 0 1em;
      border-radius: 0.25em;
    }
  }
  @media (width <= 991px) {
    .c-indexlink__item {
      border-block-end: 1px solid #aaa;
      padding-block-end: 0.32lh;
    }
  }
  .c-indexlink__item::after {
    --min-font-size: 22;
    --max-font-size: 24;
    content: "\f181";
    font-family: var(--ff-icon);
    color: var(--clr-official-blue);
    aspect-ratio: 1;
  }
}
/* --- Form --- */
@layer Components.Form {
  .c-form {
    display: grid;
    row-gap: clamp(2rem, 1.4221879815rem + 2.4653312789vw, 3rem);
  }
  .c-form-progress {
    --progress-ball-row: 1 / 2;
    --progress-text-row: 2 / 3;
    --step-ball-size: clamp(1.5rem, 1.2110939908rem + 1.2326656394vw, 2rem);
    display: grid;
    max-inline-size: fit-content;
    margin-inline: auto;
    grid-template-columns: repeat(3, auto);
    place-content: center center;
    position: relative;
    column-gap: clamp(2rem, -0.8890600924rem + 12.3266563945vw, 7rem);
    margin-block: clamp(2rem, 1.1332819723rem + 3.6979969183vw, 3.5rem);
  }
  .c-form-progress::before {
    content: "";
    inline-size: 100%;
    block-size: 3px;
    background: #aaa;
    position: absolute;
    top: clamp(0.625rem, 0.4805469954rem + 0.6163328197vw, 0.875rem);
  }
  .c-form-progress__step {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: subgrid;
    grid-row: span 2;
    place-content: center center;
    text-align: center;
    font-weight: var(--fw-m);
    row-gap: 0.24lh;
    color: #aaa;
    position: relative;
    z-index: 1;
  }
  .c-form-progress__step::before {
    content: "";
    background: #aaa;
    inline-size: var(--step-ball-size);
    aspect-ratio: 1;
    border-radius: 50%;
    margin-inline: auto;
    border: 3px solid #fff;
    position: relative;
    display: grid;
    place-content: center center;
  }
  .c-form-progress__step::after {
    content: "";
    inline-size: 50%;
    block-size: 100%;
    position: absolute;
    top: 0;
    background: #fff;
    display: none;
    z-index: -1;
  }
  .c-form-progress__step:first-child::after {
    display: block;
    left: 0;
  }
  .c-form-progress__step:last-child::after {
    display: block;
    right: 0;
  }
  .c-form-progress__step.--comp::before {
    content: "✓";
    color: #fff;
    line-height: 1;
    background: var(--clr-official-blue);
  }
  .c-form-progress__step.--now {
    color: #000;
  }
  .c-form-progress__step.--now::before {
    background: var(--clr-official-green);
  }
  .c-form-progress__step.--send {
    color: #000;
  }
  .c-form-progress__step.--send::before {
    content: "✉";
    color: #fff;
    line-height: 1;
    background: var(--clr-official-green);
    transform: scale(1.5);
  }
  .c-form-field__list {
    display: grid;
    border-block-start: 1px solid #aaa;
  }
  .c-form-field {
    display: grid;
    border-block-end: 1px solid #aaa;
    padding-block: 0.8lh;
    gap: 0.48lh min(2.4vw, 32px);
    align-items: flex-start;
    align-items: center;
    grid-template-columns: auto clamp(3.5rem, 3.2110939908rem + 1.2326656394vw, 4rem) 1fr;
    grid-template-areas: "label required ." "input . .";
  }
  @media (width >= 992px) {
    .c-form-field {
      grid-template-columns: 12em clamp(3.5rem, 3.2110939908rem + 1.2326656394vw, 4rem) 1fr;
      grid-template-areas: "label required input";
      gap: 0 min(2.4vw, 32px);
      align-items: flex-start;
    }
  }
  .c-form-field input:is([type=text], [type=number], [type=password], [type=email]) {
    border: 1px solid var(--clr-official-blue);
    background: #EDF3F8;
    inline-size: 100%;
    block-size: 42px;
    padding-inline: 0.56em;
  }
  .c-form-field textarea {
    border: 1px solid var(--clr-official-blue);
    background: #EDF3F8;
    inline-size: 100%;
    padding: 0.32lh 0.56em;
    min-block-size: 4lh;
  }
  .c-form-field :has(.c-form-validation__list) :is([type=text], [type=number], [type=email], [type=password], textarea) {
    border: 1px solid #f00;
    background: #ffeded;
  }
  .c-form-field select {
    background: #fff;
    max-inline-size: fit-content;
    line-height: 2.68;
    padding-inline: 1.24em 3.2em;
    background: url(../img/icon/ic_select.svg) #fff no-repeat center right 1em/auto 35%;
    border: 1px solid #aaa;
    block-size: 42px;
  }
  .c-form-field__label {
    grid-area: label;
    font-weight: var(--fw-m);
  }
  @media (width <= 991px) {
    .c-form-field__label {
      --min-font-size: 18;
      --max-font-size: 20;
    }
  }
  @media (width >= 992px) {
    .c-form-field__label {
      padding-block-start: 0.16lh;
    }
  }
  .c-form-field-required-type {
    --min-font-size: 10;
    --max-font-size: 12;
    grid-area: required;
    background: #808080;
    display: grid;
    place-content: center center;
    color: #fff;
    inline-size: 100%;
    padding-block: 0.16lh;
    line-height: 1.24;
  }
  .c-form-field-required-type:is(.--required) {
    background: #F00;
  }
  @media (width >= 992px) {
    .c-form-field-required-type {
      position: relative;
      top: 0.72lh;
    }
  }
  .c-form-field-input {
    display: grid;
    row-gap: 0.56lh;
    grid-area: input;
  }
  @media (width <= 991px) {
    .c-form-field-input {
      grid-column: 1/-1;
    }
  }
  .c-form-field-input__area:is(.--lists) {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    justify-content: flex-start;
    gap: 1lh 1em;
  }
  @media (width >= 992px) {
    .c-form-field-input__area:is(.--lists) {
      padding-block-start: 0.48lh;
    }
  }
  .c-form-field-confirm {
    grid-area: input;
  }
  @media (width <= 991px) {
    .c-form-field-confirm {
      grid-column: 1/-1;
    }
  }
  .c-form-field-confirm:is(.--lists) {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    justify-content: flex-start;
    gap: 1lh 1em;
  }
  @media (width >= 992px) {
    .c-form-field-confirm:is(.--lists) {
      padding-block-start: 0.48lh;
    }
  }
  .c-form-field-confirm__text {
    background: #ffffe9;
    border: 1px solid rgb(199, 178, 140);
    padding: 0.24lh 0.56em;
  }
  .c-form-validation__list {
    display: grid;
    row-gap: 0.56lh;
    line-height: 1.375;
  }
  .c-form-validation__text {
    display: grid;
    grid-template-columns: auto 1fr;
    color: #F00;
    column-gap: 0.5em;
    align-items: baseline;
    margin-block: var(--leading-trim);
  }
  .c-form-validation__text::before {
    --min-font-size: 12;
    --max-font-size: 14;
    content: "\e5cd";
    font-family: var(--ff-icon);
    aspect-ratio: 1;
    background: #F00;
    color: #fff;
    border-radius: 50%;
    display: grid;
    place-content: center center;
    line-height: 1;
    text-align: center;
    padding: 0.24em;
  }
  .c-form-note__list {
    display: grid;
    row-gap: 0.56lh;
    line-height: 1.375;
  }
  .c-form-note__text {
    display: grid;
    grid-template-columns: auto 1fr;
    color: #808080;
    column-gap: 0.5em;
    align-items: baseline;
    margin-block: var(--leading-trim);
  }
  .c-form-note__text::before {
    --min-font-size: 18;
    --max-font-size: 20;
    content: "\e0b7";
    font-family: var(--ff-icon);
    color: currentColor;
    position: relative;
    top: 1px;
  }
  .c-form-policycheck {
    border: 1px solid #aaa;
    background: #fafafa;
    padding: 2em 0.72lh;
    display: grid;
    place-content: center center;
  }
  .c-form-policycheck-heading {
    --min-font-size: 18;
    --max-font-size: 20;
    font-weight: var(--fw-m);
    margin-inline: auto;
    max-inline-size: fit-content;
    margin-block: var(--leading-trim) calc(var(--leading-trim) + 0.72lh);
  }
  .c-form-policycheck__description {
    text-align: center;
    margin-block: var(--leading-trim) calc(var(--leading-trim) + 1.48lh);
  }
  .c-form-policycheck-field .c-checkbox {
    margin-inline: auto;
    max-inline-size: fit-content;
  }
}
@layer Components.Form {
  .c-checkbox,
  .c-radio {
    display: grid;
    grid-template-columns: min(4.8vw, 24px) 1fr;
    column-gap: 0.56em;
    margin-block: var(--leading-trim);
  }
  .c-checkbox::before,
  .c-radio::before {
    content: "";
    aspect-ratio: 1;
    border: 2px solid var(--clr-official-blue);
    display: grid;
    place-content: center center;
    text-align: center;
    align-self: baseline;
    contain: strict;
  }
  .c-checkbox :is(input[type=checkbox], input[type=radio]),
  .c-radio :is(input[type=checkbox], input[type=radio]) {
    display: none;
  }
  .c-checkbox:has(input),
  .c-radio:has(input) {
    cursor: pointer;
  }
  .c-checkbox:has(input[type=checkbox]:checked)::before, .c-checkbox:is(.--checked)::before {
    content: "✓";
    background: var(--clr-official-blue);
    color: #fff;
    line-height: 1;
  }
  .c-radio::before {
    border-radius: 50%;
  }
  .c-radio:has(input[type=radio]:checked)::before, .c-radio:is(.--checked)::before {
    background: #fff;
    border: 8px solid var(--clr-official-blue);
  }
}
.u-size-s {
  font-size: clamp(0.875rem, 0.8027734977rem + 0.3081664099vw, 1rem);
}

.u-size-m {
  font-size: clamp(1.125rem, 0.9083204931rem + 0.9244992296vw, 1.5rem);
}

.u-size-l {
  font-size: clamp(1.5rem, 1.2110939908rem + 1.2326656394vw, 2rem);
}

/* Layout(  @layer Base )
---------------------------------------------------------- */
@layer Layout;
/* --- Root --- */
@layer Layout.Root {
  .l-root {
    padding-top: var(--theme-header-height);
  }
}
/* --- Header --- */
@layer Layout.Header {
  .l-header {
    --md-btn-inline-size: clamp(3.5rem, 3.2110939908rem + 1.2326656394vw, 4rem);
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    padding-inline: var(--theme-side-gap) 0;
    row-gap: 16px;
    position: relative;
    z-index: 999;
    background: #fff;
    position: fixed;
    top: 0;
    left: 0;
    inline-size: 100%;
  }
  @media (width <= 991px) {
    .l-header {
      box-shadow: 0 1.2vw 5vw rgba(0, 0, 0, 0.1);
    }
  }
  .l-header__title :is(a) {
    --min-font-size: 10;
    --max-font-size: 16;
    display: grid;
    grid-template-columns: min(23vw, 135px) 1fr;
    align-items: flex-end;
    column-gap: min(2.4vw, 16px);
    color: var(--fc-default);
    line-height: 1.1875;
    transition: 0.3s opacity ease;
  }
  @media (width >= 992px) {
    .l-header__title :is(a) {
      position: relative;
      top: 6px;
    }
  }
  .l-header__title :is(a)::before {
    content: "";
    aspect-ratio: 657/222;
    display: block;
    position: relative;
    background: url(../img/logo.png) no-repeat center center/contain;
  }
  .l-header__title :is(a):focus-visible {
    opacity: 0.7;
    outline: none;
  }
  @media (any-hover: hover) {
    .l-header__title :is(a):hover {
      opacity: 0.7;
      outline: none;
    }
  }
  .l-header-util {
    justify-self: flex-end;
    display: grid;
    grid-template-columns: repeat(2, auto);
    align-items: center;
  }
  @media (width >= 992px) {
    .l-header-util {
      column-gap: 24px;
    }
  }
  .l-header-util-link {
    --min-font-size: 12;
    --max-font-size: 14;
    display: grid;
    grid-template-columns: var(--md-btn-inline-size);
    font-weight: var(--fw-m);
  }
  @media (width <= 991px) {
    .l-header-util-link {
      aspect-ratio: 1;
      contain: strict;
    }
  }
  @media (width >= 992px) {
    .l-header-util-link {
      grid-template-columns: 32px 1fr;
      column-gap: 8px;
      align-items: center;
    }
  }
  .l-header-util-link:is(a) {
    color: #404040;
  }
  .l-header-util-link::before {
    --min-font-size: 28;
    --max-font-size: 36;
    content: "";
    font-family: var(--ff-icon);
    color: #fff;
    aspect-ratio: 1;
    background: var(--clr-official-blue);
    display: grid;
    place-content: center center;
    line-height: 1;
    text-align: center;
  }
  @media (width >= 992px) {
    .l-header-util-link::before {
      --min-font-size: 18;
      --max-font-size: 20;
      border-radius: 50%;
    }
  }
  .l-header-util-link:is(.--type-contact)::before {
    content: "\e158";
  }
  .l-header-util-link:is(.--type-search)::before {
    content: "\e8b6";
    background: #6F7588;
  }
  .l-header-util-link__list {
    display: grid;
    grid-auto-flow: column;
  }
  @media (width >= 992px) {
    .l-header-util-link__list {
      column-gap: 24px;
    }
  }
  .l-header-globalnavi__btn {
    display: grid;
    place-content: center center;
    grid-template-columns: var(--md-btn-inline-size);
    aspect-ratio: 1;
  }
  .l-header-globalnavi__btn::before {
    --min-font-size: 32;
    --max-font-size: 40;
    content: "\e5d2";
    font-family: var(--ff-icon);
    max-inline-size: fit-content;
    margin-inline: auto;
  }
  @media (width >= 992px) {
    .l-header-globalnavi__btn {
      display: none;
    }
  }
  .l-header-globalnavi__btn:where(.l-root[data-drawer=true] *) {
    background: #404040;
  }
  .l-header-globalnavi__btn:where(.l-root[data-drawer=true] *)::before {
    content: "\e5cd";
    color: #fff;
  }
  .l-header-members {
    background: var(--clr-official-blue);
    border-radius: 0 0 0 16px;
    display: none;
    grid-template-columns: auto 1fr;
    align-items: center;
  }
  @media (width >= 992px) {
    .l-header-members {
      display: grid;
    }
  }
  .l-header-members-heading {
    --min-font-size: 12;
    --max-font-size: 14;
    color: #fff;
    font-weight: var(--fw-m);
    padding: 0.24em 1.24em;
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    column-gap: 0.24em;
  }
  .l-header-members-heading::before {
    --min-font-size: 20;
    --max-font-size: 24;
    content: "\e853";
    font-family: var(--ff-icon);
    margin-block: var(--leading-trim);
    line-height: 1;
  }
  .l-header-members-heading :is(a) {
    --min-font-size: 10;
    --max-font-size: 12;
    grid-column: 1/-1;
    color: #fff;
    text-decoration: underline;
  }
  .l-header-members-link__list {
    display: grid;
    background: #fff;
  }
  .l-header-members-link__item {
    --min-font-size: 10;
    --max-font-size: 12;
    border-block-end: 1px solid var(--clr-official-blue);
    padding: 0.8lh 1em;
    color: var(--clr-official-blue);
    display: grid;
    grid-template-columns: 1fr 1em;
    align-items: center;
    column-gap: 1em;
    line-height: 1.1666666667;
  }
  .l-header-members-link__item::after {
    --min-font-size: 8;
    --max-font-size: 10;
    content: "\e5e1";
    justify-self: center;
    font-family: var(--ff-icon);
    color: currentColor;
    line-height: 1;
  }
  .l-header-members-link__item:is(.--type-login) {
    color: #000;
    background: var(--clr-official-yellow);
  }
  .l-header-members-link__item:is(.--type-login)::after {
    --min-font-size: 14;
    --max-font-size: 16;
    content: "\e897";
  }
}
/* --- Menu --- */
@layer Layout.Menu {
  .l-menu {
    --menu-group-column-gap: min(2.4vw, 48px);
    --menu-group-row-gap: 12px;
    --menu-list-column-gap: min(2.4vw, 48px);
    display: none;
    grid-column: 1/-1;
    margin-inline-start: calc(var(--theme-side-gap) * -1);
    background: url(../img/line.png) var(--clr-official-blue) no-repeat center bottom/cover;
    color: #fff;
    justify-content: center;
    padding-inline: var(--theme-side-gap);
    column-gap: calc(var(--menu-list-column-gap) * 0.5);
  }
  @media (width >= 992px) {
    .l-menu {
      display: grid;
    }
  }
  .l-menu__list {
    display: grid;
    grid-auto-flow: column;
    column-gap: calc(var(--menu-list-column-gap) * 0.5);
    color: #fff;
  }
  .l-menu__item {
    margin-block: var(--leading-trim);
    padding-block-end: 24px;
    color: currentColor;
    padding-block-start: 24px;
    display: grid;
    grid-template-columns: auto 1px;
    align-items: center;
    column-gap: calc(var(--menu-list-column-gap) * 0.5);
  }
  .l-menu__item:not(:last-child)::after {
    content: "";
    block-size: 0.5lh;
    background: #fff;
    display: block;
  }
  .l-menu__item:has(.l-megamenu) :is(.l-megamenu) {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: 0.3s opacity ease, 0.3s visibility ease, 0.3s pointer-events ease;
  }
  @media (any-hover: hover) {
    .l-menu__item:has(.l-megamenu):hover :is(.l-megamenu) {
      opacity: 1;
      visibility: visible;
      pointer-events: revert;
      transition: 0.3s opacity ease, 0.3s visibility ease, 0.3s pointer-events ease;
    }
  }
  .l-menu__item > a {
    --min-font-size: 12;
    --max-font-size: 14;
    color: currentColor;
    font-weight: var(--fw-m);
    position: relative;
  }
  @media (width >= 1200px) {
    .l-menu__item > a {
      --min-font-size: 14;
      --max-font-size: 16;
    }
  }
  .l-menu__item > a::after {
    content: "";
    inline-size: 100%;
    block-size: 3px;
    background: var(--clr-official-green);
    display: block;
    margin-inline: auto;
    position: absolute;
    left: 50%;
    bottom: -0.25lh;
    opacity: 0;
    transform: translateX(-50%) scale(0, 1);
    transition: 0.3s opacity ease, 0.3s transform ease, 0.3s background ease;
  }
  .l-menu__item > a:where(.l-menu__item:is(:focus-visible, :hover) *)::after {
    opacity: 1;
    transform: translateX(-50%) scale(1, 1);
    background: #fff;
  }
  .l-menu__item:is(.--about) > a:where(.l-root[data-page=about] *)::after {
    opacity: 1;
    transform: translateX(-50%) scale(1, 1);
  }
  .l-menu__item:is(.--economy) > a:where(.l-root[data-page=economy] *)::after {
    opacity: 1;
    transform: translateX(-50%) scale(1, 1);
  }
  .l-menu__item:is(.--consulting) > a:where(.l-root[data-page=consulting] *)::after {
    opacity: 1;
    transform: translateX(-50%) scale(1, 1);
  }
  .l-menu__item:is(.--seminar) > a:where(.l-root[data-page=seminar] *)::after {
    opacity: 1;
    transform: translateX(-50%) scale(1, 1);
  }
  .l-menu__item:is(.--research) > a:where(.l-root[data-page=research] *)::after {
    opacity: 1;
    transform: translateX(-50%) scale(1, 1);
  }
  .l-menu__item:is(.--media) > a:where(.l-root[data-page=media] *)::after {
    opacity: 1;
    transform: translateX(-50%) scale(1, 1);
  }
}
/* --- MegaMenu --- */
@layer Layout.MegaMenu {
  .l-megamenu {
    --base-padding: min(5vw, 32px);
    min-block-size: 200px;
    position: absolute;
    background: #fff;
    color: #000;
    inline-size: 100%;
    left: 0;
    bottom: 0;
    z-index: 999;
    display: grid;
    transform: translateY(100%);
    grid-template-columns: min(32%, 560px) 1fr;
  }
  .l-megamenu__bg {
    position: fixed;
    background: rgba(0, 0, 0, 0.65);
    inset: 0;
    z-index: 997;
    transition: 0.3s opacity ease, 0.3s visibility ease, 0.3s pointer-events ease;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  .l-megamenu__bg:where(.l-root:has(.l-menu__item:hover) *) {
    opacity: 1;
    visibility: visible;
    pointer-events: revert;
  }
  .l-megamenu-main__link {
    display: grid;
    place-content: center center;
    position: relative;
    contain: strict;
    row-gap: 1lh;
    background: #fff;
    padding: min(4.8vw, 48px);
  }
  .l-megamenu-main__link::before {
    content: "";
    background: rgba(0, 110, 184, 0.65);
    position: absolute;
    inset: 0;
    mix-blend-mode: multiply;
    transition: 0.75s background ease;
  }
  .l-megamenu-main__link::after {
    content: "";
    position: absolute;
    inset: 0;
    transform: scale(1);
    transition: 0.75s transform ease;
    z-index: -1;
  }
  .l-megamenu-main__link:where(.l-menu__item:is(.--about) *)::after {
    background: url(../img/theme/megamenu/megamenu_img_about.jpg) no-repeat center center/cover;
  }
  .l-megamenu-main__link:where(.l-menu__item:is(.--economy) *)::after {
    background: url(../img/theme/megamenu/megamenu_img_economy.jpg) no-repeat center center/cover;
  }
  .l-megamenu-main__link:where(.l-menu__item:is(.--consulting) *)::after {
    background: url(../img/theme/megamenu/megamenu_img_consulting.jpg) no-repeat center center/cover;
  }
  .l-megamenu-main__link:where(.l-menu__item:is(.--seminar) *)::after {
    background: url(../img/theme/megamenu/megamenu_img_seminar.jpg) no-repeat center center/cover;
  }
  .l-megamenu-main__link:where(.l-menu__item:is(.--research) *)::after {
    background: url(../img/theme/megamenu/megamenu_img_research.jpg) no-repeat center center/cover;
  }
  .l-megamenu-main__link:where(.l-menu__item:is(.--media) *)::after {
    background: url(../img/theme/megamenu/megamenu_img_media.jpg) no-repeat center center/cover;
  }
  .l-megamenu-main__link :is(*) {
    position: relative;
  }
  .l-megamenu-main__link .c-btn {
    max-inline-size: fit-content;
    margin-inline: auto;
    background: #fff;
    padding: 0.32lh 1.24em;
    transition: 0.75s background ease, 0.75s color ease;
    color: var(--clr-official-blue);
  }
  .l-megamenu-main__link .c-btn__list {
    margin-block-start: 0;
  }
  .l-megamenu-main__link:focus-visible::before {
    background: rgba(0, 110, 184, 0.48);
  }
  .l-megamenu-main__link:focus-visible::after {
    transform: scale(1.24);
  }
  .l-megamenu-main__link:focus-visible .c-btn {
    background: var(--clr-official-blue);
    color: #fff;
  }
  @media (any-hover: hover) {
    .l-megamenu-main__link:hover::before {
      background: rgba(0, 110, 184, 0.48);
    }
    .l-megamenu-main__link:hover::after {
      transform: scale(1.24);
    }
    .l-megamenu-main__link:hover .c-btn {
      background: var(--clr-official-blue);
      color: #fff;
    }
  }
  .l-megamenu-main-heading {
    --min-font-size: 20;
    --max-font-size: 24;
    color: #fff;
    font-weight: var(--fw-m);
    max-inline-size: fit-content;
    margin-inline: auto;
    line-height: 1.3333333333;
  }
  .l-megamenu-sub__area {
    padding: var(--base-padding);
  }
  .l-megamenu-sub-link__list {
    display: grid;
    color: currentColor;
    column-gap: var(--base-padding);
    grid-template-columns: repeat(auto-fit, minmax(min(100%, (100% - var(--base-padding) * 2 - var(--base-padding)) / 2), 1fr));
  }
  .l-megamenu-sub-link {
    color: currentColor;
    padding-block: 0.8lh;
    border-block-end: 1px solid var(--clr-official-blue);
    display: grid;
    grid-template-columns: 1fr 1px min(5vw, 16px);
    grid-template-areas: "text line icon";
    align-items: center;
    column-gap: 1.24em;
    font-weight: var(--fw-m);
    line-height: 1.3333333333;
  }
  @media (width >= 1200px) {
    .l-megamenu-sub-link {
      --min-font-size: 16;
      --max-font-size: 18;
    }
  }
  .l-megamenu-sub-link::before {
    content: "";
    grid-area: line;
    background: #fff;
  }
  .l-megamenu-sub-link::after {
    content: "\e5e1";
    grid-area: icon;
    font-family: var(--ff-icon);
    color: #fff;
    aspect-ratio: 1;
    display: grid;
    place-content: center center;
    background: var(--clr-official-blue);
  }
  @media (width >= 1200px) {
    .l-megamenu-sub-link::after {
      --min-font-size: 10;
      --max-font-size: 12;
    }
  }
  .l-megamenu-sub-link:is(:nth-child(1), :nth-child(2)) {
    border-block-start: 1px solid var(--clr-official-blue);
  }
}
/* --- Main --- */
@layer Layout.Main {
  .l-main {
    display: block;
    margin-block-end: clamp(2rem, 0.2665639445rem + 7.3959938367vw, 5rem);
  }
  .l-main .l-section:is(:not(.--no-side-gap)) {
    padding-inline: var(--theme-side-gap);
  }
  .l-main .l-section + * {
    margin-block-start: clamp(2rem, 0.5554699538rem + 6.1633281972vw, 4.5rem);
  }
  .l-main .l-section-header {
    inline-size: var(--theme-inline-size-base);
    margin-inline: auto;
    margin-block-end: clamp(1.5rem, 1.2110939908rem + 1.2326656394vw, 2rem);
  }
  .l-main .l-section-header:where(.l-section:is(.--no-side-gap) *) {
    padding-inline: var(--theme-side-gap);
    inline-size: min(100%, var(--theme-inline-size-base) + var(--theme-side-gap) * 2);
  }
  .l-main .l-section-header:has(.c-btn) {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas: "heading btn";
    align-items: center;
  }
  .l-main .l-section-header:has(.c-btn) :is(.c-btn) {
    grid-area: btn;
  }
  .l-main .l-section__inner {
    inline-size: var(--theme-inline-size-base);
    margin-inline: auto;
  }
}
/* --- Article --- */
@layer Layout.Article {
  .l-article {
    padding-inline: var(--theme-side-gap);
    margin-block-end: clamp(3.5rem, 1.7665639445rem + 7.3959938367vw, 6.5rem);
  }
  .l-article__inner {
    inline-size: var(--theme-inline-size-base);
    margin-inline: auto;
  }
  .l-article-header {
    margin-block-end: clamp(2rem, 1.4221879815rem + 2.4653312789vw, 3rem);
  }
  .l-article-heading {
    --min-font-size: 24;
    --max-font-size: 32;
    font-weight: var(--fw-m);
    line-height: 1.3125;
    margin-block: var(--leading-trim) calc(var(--leading-trim) + 0.96lh);
  }
  .l-article-meta {
    display: grid;
    grid-auto-flow: column;
    align-items: center;
    justify-content: flex-start;
    column-gap: min(2.4vw, 24px);
  }
  .l-article-meta__published {
    display: grid;
    grid-auto-flow: column;
    justify-content: flex-start;
    align-items: center;
    column-gap: 0.24em;
  }
  .l-article-meta__published::before {
    --min-font-size: 20;
    --max-font-size: 22;
    content: "\e889";
    font-family: var(--ff-icon);
    color: #808080;
  }
  .l-article-body .download_h {
    --min-font-size: 18;
    --max-font-size: 20;
    display: grid;
    grid-template-columns: min(2.4vw, 32px) auto 1fr;
    grid-template-areas: "icon text line";
    margin-block: 1lh;
    line-height: 1.5;
    color: #606060;
    font-weight: var(--fw-m);
    column-gap: 0.56em;
    align-items: center;
  }
  .l-article-body .download_h::before {
    content: "\f090";
    font-family: var(--ff-icon);
    border: 1px solid currentColor;
    border-radius: 50%;
    aspect-ratio: 1;
    display: grid;
    place-content: center center;
    color: currentColor;
  }
  .l-article-body .download_h::after {
    content: "";
    block-size: 1px;
    background: currentColor;
  }
  .l-article-body *:not([class]) {
    margin-block-end: 1lh;
  }
  .l-article-body :is(h2:not([class])) {
    --min-font-size: 20;
    --max-font-size: 24;
    font-weight: var(--fw-m);
    color: var(--clr-official-blue);
    border-block-end: 1px solid currentColor;
    padding-block-end: 0.24lh;
    margin-block-end: 0.72lh;
    line-height: 1.5;
  }
  .l-article-body :is(h2:not([class])):not(:first-child) {
    margin-block-start: 1.32lh;
  }
  .l-article-body :is(h3:not([class])) {
    --min-font-size: 18;
    --max-font-size: 20;
    font-weight: var(--fw-m);
    background: #EFEFEF;
    display: grid;
    grid-template-columns: 10px 1fr;
    column-gap: 0.72em;
    align-items: center;
    color: var(--clr-official-blue);
    line-height: 1.5;
    padding-block: 0.32lh;
    margin-block-end: 1lh;
  }
  .l-article-body :is(h3:not([class]))::before {
    content: "";
    aspect-ratio: 2/1;
    background: currentColor;
    display: block;
  }
  .l-article-body :is(h3:not([class])):not(:first-child) {
    margin-block-start: 1.72lh;
  }
  .l-article-body :is(a:not([class])) {
    text-decoration: underline;
  }
  .l-article-body :is(a:not([class])):is([href$=".pdf"],
  [href$=".doc"],
  [href$=".docx"],
  [href$=".xlsx"],
  [href$=".xls"],
  [href$=".ppt"],
  [target=_blank]) {
    justify-content: flex-start;
    align-items: center;
    column-gap: 0.56em;
  }
  .l-article-body :is(a:not([class])):is([href$=".pdf"],
  [href$=".doc"],
  [href$=".docx"],
  [href$=".xlsx"],
  [href$=".xls"],
  [href$=".ppt"],
  [target=_blank])::after {
    content: "";
    inline-size: 1.48em;
    aspect-ratio: 1;
    display: inline-block;
    vertical-align: text-bottom;
    margin-inline-start: 0.32em;
  }
  .l-article-body :is(a:not([class]))[target=_blank]::after {
    --min-font-size: 16;
    --max-font-size: 18;
    content: "\e89e";
    font-family: var(--ff-icon);
    color: #808080;
    background: "";
  }
  .l-article-body :is(a:not([class]))[href$=".pdf"]::after {
    content: "";
    background: url(../img/icon/icon_pdf.png) no-repeat center bottom/contain;
  }
  .l-article-body :is(a:not([class]))[href$=".doc"]::after, .l-article-body :is(a:not([class]))[href$=".docx"]::after {
    content: "";
    background: url(../img/icon/icon_word.png) no-repeat center bottom/contain;
  }
  .l-article-body :is(a:not([class]))[href$=".xls"]::after, .l-article-body :is(a:not([class]))[href$=".xlsx"]::after {
    content: "";
    background: url(../img/icon/icon_excel.png) no-repeat center bottom/contain;
  }
  .l-article-body :is(a:not([class]))[href$=".ppt"]::after {
    content: "";
    background: url(../img/icon/icon_ppt.png) no-repeat center bottom/contain;
  }
  .l-article-body :is(ul, ol):not([class]) {
    display: grid;
    margin-block-end: clamp(2rem, 1.4221879815rem + 2.4653312789vw, 3rem);
    row-gap: 0.56lh;
  }
  .l-article-body :is(ul, ol):not([class]) li {
    margin-block: var(--leading-trim);
  }
  .l-article-body :is(ul:not([class])) li {
    position: relative;
    padding-inline-start: 1.24em;
  }
  .l-article-body :is(ul:not([class])) li::before {
    content: "";
    inline-size: 0.72em;
    aspect-ratio: 1;
    background: var(--clr-official-blue);
    border-radius: 50%;
    display: block;
    position: absolute;
    top: 0.32lh;
    left: 0;
  }
  .l-article-body :is(ol:not([class])) {
    counter-reset: number;
  }
  .l-article-body :is(ol:not([class])) li {
    position: relative;
    padding-inline-start: 1.48em;
  }
  .l-article-body :is(ol:not([class])) li::before {
    counter-increment: number;
    content: counter(number) ".";
    position: absolute;
    left: 0;
    color: var(--clr-official-blue);
    font-weight: var(--fw-m);
  }
  .l-article-body :is(table:not([class])),
  .l-article-body table.no-scroll {
    inline-size: 100%;
    border: 1px solid var(--clr-official-blue);
  }
  .l-article-body :is(table:not([class])):where(.js-table *) {
    margin-block-end: 0;
  }
  .l-article-body :is(table:not([class])) caption,
  .l-article-body table.no-scroll caption {
    --min-font-size: 12;
    --max-font-size: 14;
    margin-inline: auto;
    max-inline-size: fit-content;
    color: #606060;
    margin-block-end: 0.56lh;
  }
  .l-article-body :is(table:not([class])) th, .l-article-body :is(table:not([class])) td,
  .l-article-body table.no-scroll th, .l-article-body table.no-scroll td {
    border: 1px solid var(--clr-official-blue);
    padding: 0.72lh 1.24em;
    line-height: 1.5;
    /*white-space: nowrap;*/
    word-break: keep-all;
  }
  .l-article-body :is(table:not([class])) th,
  .l-article-body table.no-scroll th {

    background: #ebf2fc;
    font-weight: var(--fw-m);
  }
  .l-article-body :is(table:not([class])) thead th,
  .l-article-body table.no-scroll thead th {
    font-weight: var(--fw-m);
    background: var(--clr-official-blue);
    color: #fff;
    border: 1px solid #93BBD5;
    text-align: center;
  }
  .l-article-body :is(table:not([class])) tbody tr:nth-child(even),
  .l-article-body table.no-scroll tbody tr:nth-child(even) {
    background: #FAFAFA;
  }
  .l-article-body figure:not([class]) {
    margin-inline: auto;
    max-inline-size: fit-content;
  }
  .l-article-body figure:not([class]) :is(img) {
    margin-inline: auto;
  }
  .l-article-body .map_block {
    inline-size: 100%;
    aspect-ratio: 3/2;
    position: relative;
    contain: strict;
    margin-block: 1.24lh;
  }
  .l-article-body .map_block iframe {
    inline-size: 100%;
    block-size: 100%;
    position: absolute;
    inset: 0;
  }
  .l-article-footer {
    margin-block-start: clamp(3.5rem, 2.9221879815rem + 2.4653312789vw, 4.5rem);
  }
  .l-article-body table.no-scroll th, .l-article-body table.no-scroll td {
    word-break: break-all;
  }
}
/* --- PageHeader --- */
@layer Layout.PageHeader {
  .l-page-header {
    --icon-inline-size-mob: min(12.8vw, 104px);
    --icon-inline-size-pc: min(7.2vw, 60px);
    --visual-filter: rgba(0, 110, 184, .6);
    background: var(--clr-official-blue);
    display: grid;
    place-content: flex-end center;
    color: #fff;
    padding-block: min(12.4vw, 80px);
    padding-inline: var(--theme-side-gap);
    min-block-size: 320px;
    max-block-size: 420px;
    position: relative;
  }
  @media (width >= 992px) {
    .l-page-header {
      padding-block: min(8vw, 80px) min(3.2vw, 32px);
      block-size: 320px;
    }
  }
  .l-page-header::before, .l-page-header::after {
    content: "";
    position: absolute;
    inset: 0;
  }
  .l-page-header::before {
    background: var(--visual-filter);
    mix-blend-mode: multiply;
    z-index: 5;
  }
  .l-page-header::after {
    background: url(../img/heading/img_base.jpg) no-repeat center center/cover;
    z-index: 3;
  }
  .l-page-header:where(.l-root[data-page=about] *)::after {
    background: url(../img/heading/img_about.jpg) no-repeat center center/cover;
  }
  .l-page-header:where(.l-root[data-page=economy] *)::after {
    background: url(../img/heading/img_economy.jpg) no-repeat center center/cover;
  }
  .l-page-header:where(.l-root[data-page=consulting] *)::after {
    background: url(../img/heading/img_consulting.jpg) no-repeat center center/cover;
  }
  .l-page-header:where(.l-root[data-page=seminar] *)::after {
    background: url(../img/heading/img_seminar.jpg) no-repeat center center/cover;
  }
  .l-page-header:where(.l-root[data-page=research] *)::after {
    background: url(../img/heading/img_research.jpg) no-repeat center center/cover;
  }
  .l-page-header:where(.l-root[data-page=media] *)::after {
    background: url(../img/heading/img_media.jpg) no-repeat center center/cover;
  }
  .l-page-header:where(.l-root[data-page=contact] *)::after {
    background: url(../img/heading/img_contact.jpg) no-repeat center center/cover;
  }
  .l-page-header:where(.l-root[data-page=member] *)::after {
    background: url(../img/heading/img_member.jpg) no-repeat center center/cover;
  }
  .l-page-header:where(.l-root[data-page=information] *)::after {
    background: url(../img/heading/img_information.jpg) no-repeat center center/cover;
  }
  .l-page-heading {
    --min-font-size: 24;
    --max-font-size: 32;
    font-weight: var(--fw-m);
    position: relative;
    z-index: 10;
    text-shadow: 0 0 1em rgba(0, 0, 0, 0.75);
  }
}
/* --- Footer --- */
@layer Layout.Footer {
  .l-footer {
    padding-inline: var(--theme-side-gap);
    background: #FAFAFA;
    padding-block-end: min(24vw, 144px);
  }
  @media (width >= 992px) {
    .l-footer-section + * {
      margin-block-start: clamp(1.5rem, 1.2110939908rem + 1.2326656394vw, 2rem);
    }
  }
  .l-footer-section__inner {
    inline-size: var(--theme-inline-size-base);
    margin-inline: auto;
  }
  .l-footer-section:is(.--bg-white) {
    background: #fff;
    margin-inline: calc(var(--theme-side-gap) * -1);
  }
  .l-footer-profile {
    display: grid;
    row-gap: 0.24lh;
    text-align: center;
  }
  .l-footer-profile::before {
    content: "";
    inline-size: min(24vw, 123px);
    aspect-ratio: 123/44;
    background: url(../img/logo.png) no-repeat center center/contain;
    margin-inline: auto;
    display: block;
  }
  .l-footer-profile__name {
    font-weight: var(--fw-m);
  }
  .l-footer-profile__address {
    --min-font-size: 12;
    --max-font-size: 14;
  }
  .l-footer-link__list {
    display: grid;
  }
  @media (width <= 991px) {
    .l-footer-link__list {
      border-block-start: 1px solid #aaa;
      margin-inline: calc(var(--theme-side-gap) * -1);
    }
  }
  @media (width >= 992px) {
    .l-footer-link__list {
      grid-auto-flow: column;
      place-content: center center;
      gap: 0.54lh 1em;
    }
  }
  .l-footer-link__item {
    --min-font-size: 14;
    --max-font-size: 16;
    color: #404040;
    text-decoration: underline;
  }
  @media (width <= 991px) {
    .l-footer-link__item {
      display: grid;
      padding-block: 0.48lh;
      padding-inline: var(--theme-side-gap);
      border-block-end: 1px solid #aaa;
      text-decoration: none;
    }
  }
  @media (width >= 992px) {
    .l-footer-link__item {
      --min-font-size: 12;
      --max-font-size: 14;
      margin-block: var(--leading-trim);
    }
  }
  .l-footer-relationallink {
    margin-block-start: 32px;
  }
  .l-footer-relationallink__list {
    --bnr-list-gap: 16px;
    --bnr-max-num: 4;
    --max-inline-size: 816px;
    max-inline-size: var(--max-inline-size);
    display: grid;
    margin-inline: auto;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--bnr-list-gap);
  }
  @media (width >= 768px) {
    .l-footer-relationallink__list {
      grid-template-columns: repeat(auto-fit, minmax(min(100%, (var(--max-inline-size) - var(--bnr-list-gap) * (var(--bnr-max-num) - 1)) / var(--bnr-max-num)), 1fr));
    }
  }
  .l-footer-relationallink__list :is(img) {
    inline-size: 100%;
    block-size: auto;
  }
  .l-footer-relationallink-heading {
    color: var(--clr-official-blue);
    font-weight: var(--fw-m);
    margin-block: var(--leading-trim) calc(var(--leading-trim) + 1lh);
    margin-inline: auto;
    max-inline-size: fit-content;
  }
  .l-footer-copyright {
    margin-inline: auto;
    margin-block: var(--leading-trim);
    max-inline-size: fit-content;
    margin-block-start: 32px;
  }
  .l-footer-copyright small {
    --min-font-size: 10;
    --max-font-size: 12;
    color: #808080;
  }
}
/* --- CTA --- */
@layer Layout.CTA {
  .l-cta {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas: "heading" "profile" "contact";
    row-gap: 1lh;
    padding-block-end: 48px;
  }
  @media (width >= 992px) {
    .l-cta {
      grid-template-columns: repeat(2, 1fr);
      grid-template-rows: repeat(2, auto);
      grid-template-areas: "heading ." "profile contact";
    }
  }
  @media (width >= 992px) {
    .l-cta::before {
      content: "";
      inline-size: 1px;
      block-size: 100%;
      background: #aaa;
      grid-area: contact;
    }
  }
  .l-cta-heading {
    --min-font-size: 18;
    --max-font-size: 24;
    font-weight: var(--fw-m);
    grid-area: heading;
    text-align: center;
    margin-block: var(--leading-trim);
  }
  @media (width >= 992px) {
    .l-cta-heading {
      grid-column: 1/-1;
    }
  }
  .l-cta__block {
    display: grid;
    place-content: center;
    grid-row: 2/3;
    padding-inline: 1em;
    grid-template-columns: 1fr;
  }
  .l-cta__block:is(.--type-profile) {
    grid-area: profile;
  }
  .l-cta__block:is(.--type-contact) {
    grid-area: contact;
  }
  .l-cta__biztime {
    --min-font-size: 12;
    --max-font-size: 14;
    color: #404040;
    margin-inline: auto;
  }
  .l-cta-call {
    margin-inline: auto;
    margin-block: var(--leading-trim);
  }
  .l-cta-call:is(.--type-phone) {
    --min-font-size: 18;
    --max-font-size: 24;
    font-weight: var(--fw-m);
    color: #808080;
  }
  .l-cta-call:is(.--type-phone) span {
    --min-font-size: 24;
    --max-font-size: 32;
    color: #000;
  }
  .l-cta-call:is(.--type-fax) {
    --min-font-size: 14;
    --max-font-size: 16;
    font-weight: var(--fw-m);
    color: #808080;
  }
  .l-cta-call:is(.--type-fax) span {
    --min-font-size: 18;
    --max-font-size: 24;
    color: #000;
  }
  .l-cta-call__list {
    display: grid;
    place-content: center;
    row-gap: 0.24lh;
    margin-block-end: calc(var(--leading-trim) + 0.56lh);
  }
  .l-cta__link {
    margin-inline: auto;
    margin-block-start: 0.56lh;
    color: #fff;
    inline-size: min(100%, 380px);
  }
  .l-cta__btn {
    --min-font-size: 16;
    --max-font-size: 18;
    font-weight: var(--fw-m);
    background: var(--clr-official-blue);
    min-block-size: 72px;
    display: grid block;
    place-content: center center;
    color: #fff;
    margin-inline: auto;
    padding-inline: 2.4em;
    display: grid;
    grid-template-columns: 1em 1fr 1em;
    grid-template-areas: ". text icon";
    align-items: center;
    text-align: center;
    transition: 0.3s background ease;
  }
  .l-cta__btn::before {
    content: "";
  }
  .l-cta__btn::after {
    --min-font-size: 24;
    --max-font-size: 32;
    content: "\e158";
    font-family: var(--ff-icon);
    grid-area: icon;
  }
  .l-cta__btn:focus-visible {
    background: lch(from var(--clr-official-blue) calc(l + 10) calc(c + 20) h);
  }
  @media (any-hover: hover) {
    .l-cta__btn:hover {
      background: lch(from var(--clr-official-blue) calc(l + 10) calc(c + 20) h);
    }
  }
}
/* --- Drawer --- */
@layer Layout.Drawer {
  .l-drawer {
    position: fixed;
    inline-size: 100%;
    left: 0;
    bottom: 0;
    z-index: 998;
    background: rgb(255, 255, 255);
    padding-inline: var(--theme-side-gap);
    opacity: 0;
    overflow-y: auto;
    visibility: hidden;
    pointer-events: none;
    transition: 0.3s opacity ease, 0.3s visibility ease, 0.3s pointer-events ease;
  }
  .l-drawer:where(.l-root[data-drawer=true] *) {
    display: grid;
    opacity: 1;
    visibility: visible;
    pointer-events: revert;
  }
  @media (width >= 992px) {
    .l-drawer {
      display: none;
    }
  }
  .l-drawer__inner {
    padding-block: var(--theme-side-gap);
  }
  .l-drawer__inner > * + * {
    margin-block-start: clamp(4.5rem, 3.6332819723rem + 3.6979969183vw, 6rem);
  }
  .l-drawer-menu-heading {
    color: var(--clr-official-blue);
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 0.48em;
    align-items: center;
    margin-block: 1.24lh 0.72lh;
    font-weight: var(--fw-m);
  }
  .l-drawer-menu-heading::after {
    content: "";
    background: var(--clr-official-blue);
    display: block;
    block-size: 1px;
  }
  .l-drawer-menu__list {
    display: grid;
  }
  .l-drawer-menu__item {
    display: grid;
  }
  .l-drawer-menu__item > a {
    --min-font-size: 18;
    --max-font-size: 20;
    font-weight: var(--fw-m);
    color: #000;
    padding-block: 0.24lh;
  }
  .l-drawer-menu__item > a:has(.c-accordion-icon) {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
  }
  .l-drawer-menu__item > a:not(:has(.c-accordion-icon)) {
    display: grid;
    grid-template-columns: 1fr 1px auto;
    grid-template-areas: "text line icon";
    align-items: center;
    column-gap: 0.48em;
  }
  .l-drawer-menu__item > a:not(:has(.c-accordion-icon))::before {
    content: "";
    grid-area: line;
    block-size: 100%;
    background: var(--clr-official-blue);
  }
  .l-drawer-menu__item > a:not(:has(.c-accordion-icon))::after {
    --min-font-size: 16;
    --max-font-size: 18;
    grid-area: icon;
    content: "\e5e1";
    font-family: var(--ff-icon);
    justify-self: center;
    align-self: center;
    color: var(--clr-official-blue);
  }
  .l-drawer-menu__item:is(.--login) {
    padding-block-start: 0.56lh;
  }
  .l-drawer-menu__item:is(.--login) > a {
    padding-inline: 1em;
    background: #F3CE55;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
  }
  .l-drawer-menu__item:is(.--login) > a::after {
    --min-font-size: 24;
    --max-font-size: 32;
    content: "\e897";
    font-family: var(--ff-icon);
    color: #000;
  }
  .l-drawer-sub-menu {
    --min-font-size: 16;
    --max-font-size: 18;
    display: grid;
    padding-block: 0.4lh;
    color: #000;
  }
  .l-drawer-sub-menu[target=_blank] {
    grid-template-columns: 1fr auto;
    align-items: center;
  }
  .l-drawer-sub-menu[target=_blank]::after {
    --min-font-size: 24;
    --max-font-size: 32;
    content: "\e89e";
    font-family: var(--ff-icon);
    color: #808080;
  }
  .l-drawer-sub-menu:not(:last-child) {
    border-block-end: 1px solid #aaa;
  }
  .l-drawer-sub-menu__list {
    display: none;
    border-block-start: 1px solid #808080;
    padding-inline-start: 1.32em;
  }
  .l-drawer-sub-menu__list:where(.l-drawer-menu__item:has(.c-accordion-icon.--on) *) {
    display: grid;
  }
}
/* --- Pagetop --- */
@layer Layout.Pagetop {
  .l-pagetop {
    --min-font-size: 10;
    --max-font-size: 12;
    --button-size: min(10vw, 74px);
    --space-size: min(4.8vw, 24px);
    --hover-clr: lch(from var(--clr-official-green) calc(l + 10) calc(c + 20) h);
    color: #fff;
    font-weight: var(--fw-m);
    position: fixed;
    inset-inline-end: var(--space-size);
    inset-block-end: var(--space-size);
    inline-size: var(--button-size);
    aspect-ratio: 1;
    background: var(--clr-official-green);
    display: grid;
    contain: strict;
    border-radius: 8px;
    z-index: 800;
    transition: 0.3s background ease;
    border: 2px solid #fff;
    place-content: center center;
    row-gap: 0.24lh;
    line-height: 1.32;
  }
  .l-pagetop:focus-visible {
    background: var(--hover-clr);
  }
  @media (any-hover: hover) {
    .l-pagetop:hover {
      background: var(--hover-clr);
    }
  }
  .l-pagetop::before {
    content: "";
    inline-size: min(2.4vw, 16px);
    aspect-ratio: 4/3;
    clip-path: polygon(0 100%, 50% 0, 100% 100%);
    background: #fff;
    display: block;
    margin-inline: auto;
  }
}
/* --- Search --- */
@layer Layout.Search {
  .l-search-ui {
    position: fixed;
    inset: 0;
    z-index: 999;
    background: rgba(0, 0, 0, 0.9);
    display: grid;
    place-content: center center;
    color: #fff;
  }
  .l-search-ui:is(:not([open])) {
    display: none;
  }
  .l-search-ui-close {
    inline-size: min(5.6vw, 48px);
    aspect-ratio: 1;
    position: absolute;
    right: var(--theme-side-gap);
    top: var(--theme-side-gap);
  }
  .l-search-ui-close::before {
    --min-font-size: 24;
    --max-font-size: 32;
    content: "\e5cd";
    font-family: var(--ff-icon);
    position: absolute;
    inset: 0;
    display: grid;
    place-content: center center;
  }
  .l-search-ui-heading {
    --min-font-size: 20;
    --max-font-size: 24;
    font-weight: var(--fw-m);
    margin-block-end: 0.56lh;
    text-align: center;
  }
  .l-search-ui-field {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas: "field btn";
    border-block-end: 1px solid #fff;
    column-gap: 1em;
  }
  .l-search-ui-field__input {
    --min-font-size: 16;
    --max-font-size: 18;
    inline-size: min(100%, 14em);
  }
  .l-search-ui-field__btn {
    inline-size: min(5.6vw, 48px);
    aspect-ratio: 1;
    position: relative;
    overflow: hidden;
  }
  .l-search-ui-field__btn::before {
    --min-font-size: 24;
    --max-font-size: 32;
    content: "\e8b6";
    font-family: var(--ff-icon);
    position: absolute;
    inset: 0;
    display: grid;
    place-content: center center;
  }
}
/* Projects(  @layer Base )
---------------------------------------------------------- */
@layer Projects;
/* --- Projects --- */
@layer Projects.Home {
  .p-home-slider {
    --gap-size: min(4.8vw, 32px);
    background: linear-gradient(to bottom, #C7E8FF 43%, transparent 57%);
    position: relative;
    padding-block: var(--gap-size);
  }
  @media (width >= 768px) {
    .p-home-slider::before {
      content: "";
      inline-size: min(24vw, 420px);
      block-size: 100%;
      background: linear-gradient(to left, #fff 8%, transparent 92%);
      position: absolute;
      right: 0;
      top: 0;
      z-index: 10;
      pointer-events: none;
    }
  }
  .p-home-slider-section {
    position: relative;
  }
  .p-home-slider-section .p-home-media-book__image {
    inline-size: min(20vw, 120px);
    position: absolute;
    bottom: 0;
    right: var(--theme-side-gap);
    transform: translateY(32%);
    z-index: 99;
  }
  .p-home-slider-section .p-home-media-book__image .p-home-media-book__badge {
    --min-font-size: 10;
    --max-font-size: 12;
    inline-size: min(5.6em, 80px);
  }
  .p-home-slider__arrows {
    position: absolute;
    z-index: 888;
    inline-size: 100%;
    top: 50%;
    transform: translateY(-50%);
  }
  .p-home-slider__arrow {
    --hover-color: lch(from var(--clr-official-blue) calc(l + 10) calc(c + 20) h);
    background: var(--clr-official-blue);
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    inline-size: min(9.6vw, 48px);
    aspect-ratio: 5/7;
    display: grid;
    place-content: center center;
    cursor: pointer;
    border-radius: 0 0.5em 0.5em 0;
    transition: 0.3s background ease;
  }
  .p-home-slider__arrow :is(svg) {
    display: none;
  }
  .p-home-slider__arrow:focus-visible {
    background: var(--hover-color);
  }
  @media (any-hover: hover) {
    .p-home-slider__arrow:hover {
      background: var(--hover-color);
    }
  }
  .p-home-slider__arrow::before {
    --min-font-size: 24;
    --max-font-size: 32;
    content: "\e5de";
    color: #fff;
    font-family: var(--ff-icon);
  }
  .p-home-slider__arrow.--prev {
    left: 0;
  }
  .p-home-slider__arrow.--next {
    right: 0;
    transform: translateY(-50%) scale(-1, 1);
  }
  .p-home-slider__pagination {
    display: grid;
    place-content: center center;
    grid-auto-flow: column;
    column-gap: min(1.8vw, 8px);
  }
  .p-home-slider__pager {
    inline-size: min(2.4vw, 16px);
    aspect-ratio: 1;
    background: #8E96AE;
    border-radius: 50%;
  }
  .p-home-slider__pager:is(.is-active) {
    inline-size: min(3.2vw, 24px);
    background: var(--clr-official-blue);
  }
  .p-home-slider__item :is(a, img) {
    display: block;
  }
  .p-home-slider__item :is(a) {
    inline-size: 100%;
    block-size: auto;
    position: relative;
    contain: strict;
    border-radius: 0.5em;
    aspect-ratio: 48/36;
  }
  .p-home-slider__item :is(img) {
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
  }
  .p-home-message-section .l-section__inner {
    position: relative;
  }
  @media (width <= 767px) {
    .p-home-message-section .l-section__inner {
      padding-block: 24vw 0;
    }
  }
  .p-home-message-section .l-section__inner::after {
    content: "";
    aspect-ratio: 49/54;
    display: grid;
    background: url(../img/projects/home/home_message_bg.png) no-repeat top right/contain;
    position: absolute;
    z-index: -1;
  }
  @media (width <= 767px) {
    .p-home-message-section .l-section__inner::after {
      inline-size: 56vw;
      top: 0;
      left: 50%;
      transform: translate(-50%, -50%);
    }
  }
  @media (width >= 768px) {
    .p-home-message-section .l-section__inner::after {
      inline-size: clamp(20rem, 13.8607473035rem + 26.1941448382vw, 30.625rem);
      right: 0;
      top: 50%;
      transform: translate(25%, -64%);
    }
  }
  .p-home-message-section .l-section__inner .c-btn__list {
    justify-content: flex-start;
  }
  @media (width <= 767px) {
    .p-home-message-section .l-section__inner .c-btn__list {
      justify-content: center;
    }
  }
  .p-home-message-heading {
    --min-font-size: 24;
    --max-font-size: 32;
    font-weight: var(--fw-m);
    line-height: 1.375;
    margin-block: var(--leading-trim);
    margin-block-end: 0.72lh;
  }
  @media (width <= 767px) {
    .p-home-message-heading {
      text-align: center;
    }
  }
  .p-home-message-description {
    line-height: 2;
    margin-block-end: 1.32lh;
  }
  @media (width <= 767px) {
    .p-home-message-description {
      display: none;
    }
  }
  .p-home-information-section {
    background: var(--clr-official-blue);
    padding-block: min(5.6vw, 32px);
    display: grid;
    overflow: hidden;
    position: relative;
    margin-block-start: 0;
  }
  .p-home-information-section .c-heading__lv1 {
    color: #fff;
  }
  .p-home-information-section .c-tab-header {
    inline-size: var(--theme-inline-size-base);
    margin-inline: auto;
  }
  @media (width <= 767px) {
    .p-home-information-section .c-tab-header {
      min-inline-size: var(--theme-inline-size-max);
    }
    .p-home-information-section .c-tab-header__wrapper {
      overflow-x: auto;
      margin-inline: calc(var(--theme-side-gap) * -1);
      padding-inline-start: var(--theme-side-gap);
    }
  }
  .p-home-information-section .c-tab-panel {
    margin-inline: calc(var(--theme-side-gap) * -1);
    background: #fff;
    padding-inline: calc((100% - var(--theme-inline-size-base) + var(--theme-side-gap) * 2) / 2);
    padding-block: 1lh;
  }
  .p-home-feature-segment {
    display: grid;
    margin-inline: calc(var(--theme-side-gap) * -1);
    background: var(--clr-official-blue);
    grid-template-columns: 1fr;
    grid-template-areas: "image" "datalist";
  }
  @media (width >= 992px) {
    .p-home-feature-segment:is(.--reverse) {
      grid-template-areas: ". . image datalist . .";
    }
  }
  @media (width >= 992px) {
    .p-home-feature-segment {
      grid-template-columns: var(--theme-side-gap) 1fr repeat(2, calc(var(--theme-inline-size-base) / 2)) 1fr var(--theme-side-gap);
      grid-template-areas: ". . datalist image . .";
    }
  }
  .p-home-feature-segment + .p-home-feature-segment {
    margin-block-start: 24px;
  }
  .p-home-feature-segment::before {
    grid-area: image;
    aspect-ratio: 16/9;
    contain: strict;
  }
  @media (width >= 992px) {
    .p-home-feature-segment::before {
      aspect-ratio: revert;
      grid-column: 4/-1;
    }
  }
  .p-home-feature-segment::before {
    content: "";
    display: grid;
    place-content: flex-end center;
    position: relative;
  }
  @media (width >= 992px) {
    .p-home-feature-segment:is(.--reverse)::before, .p-home-feature-segment:is(.--reverse)::after {
      grid-column: 1/4;
    }
  }
  .p-home-feature-segment:is(.--about)::before {
    background: url(../img/projects/home/home_segment_img_about.jpg) no-repeat center center/cover;
  }
  .p-home-feature-segment:is(.--economy)::before {
    background: url(../img/projects/home/home_segment_img_economy.jpg) no-repeat center center/cover;
  }
  .p-home-feature-segment:is(.--consulting)::before {
    background: url(../img/projects/home/home_segment_img_consulting.jpg) no-repeat center center/cover;
  }
  .p-home-feature-segment:is(.--seminar)::before {
    background: url(../img/projects/home/home_segment_img_seminar.jpg) no-repeat center center/cover;
  }
  .p-home-feature-segment:is(.--research)::before {
    background: url(../img/projects/home/home_segment_img_research.jpg) no-repeat center center/cover;
  }
  .p-home-feature-segment:is(.--media)::before {
    background: url(../img/projects/home/home_segment_img_media.jpg) no-repeat center center/cover;
  }
  .p-home-feature-heading {
    --min-font-size: 20;
    --max-font-size: 24;
    color: #fff;
    position: relative;
    z-index: 99;
    margin-block: var(--leading-trim) calc(var(--leading-trim) + 0.56lh);
  }
  .p-home-feature__image::after {
    content: "";
    inline-size: 100%;
    block-size: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.48) 32%, transparent 68%);
    z-index: 50;
  }
  .p-home-feature-link__list {
    --list-base-gap: min(5vw, 32px);
    grid-area: datalist;
    display: grid;
    padding: var(--list-base-gap);
    row-gap: 5px;
  }
  @media (width <= 991px) {
    .p-home-feature-link__list {
      grid-template-columns: repeat(2, 1fr);
      border-block-start: 1px solid var(--clr-official-blue);
      padding-inline: calc(var(--theme-side-gap) * -1);
      gap: 1px;
    }
  }
  @media (width >= 992px) {
    .p-home-feature-link__list {
      padding: var(--list-base-gap) var(--list-base-gap) var(--list-base-gap) 0;
    }
    .p-home-feature-link__list:where(.p-home-feature-segment.--reverse *) {
      padding: var(--list-base-gap) 0 var(--list-base-gap) var(--list-base-gap);
    }
  }
  .p-home-feature-link__item {
    --min-font-size: 16;
    --max-font-size: 18;
    background: #fff;
    color: #000;
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas: "text arrow";
    align-items: center;
    padding: 0.48lh 0 0.48lh 1em;
    column-gap: 0.5em;
    line-height: 1.3333333333;
  }
  @media (width >= 992px) {
    .p-home-feature-link__item {
      column-gap: 1.24em;
    }
  }
  .p-home-feature-link__item:is(a) {
    color: #000;
  }
  .p-home-feature-link__item:is(.--icon) {
    --icon-inline-size: min(12vw, 32px);
    grid-template-areas: "icon ." "text arrow";
    grid-template-columns: 1fr auto;
  }
  @media (width >= 992px) {
    .p-home-feature-link__item:is(.--icon) {
      grid-template-areas: "icon text arrow";
      grid-template-columns: var(--icon-inline-size) 1fr auto;
    }
  }
  .p-home-feature-link__item:is(.--icon)::before {
    content: "";
    grid-area: icon;
    aspect-ratio: 1;
    display: block;
  }
  @media (width <= 991px) {
    .p-home-feature-link__item:is(.--icon)::before {
      grid-column: 1/-1;
      inline-size: var(--icon-inline-size);
      justify-self: flex-end;
      align-self: center;
      margin-inline-end: 1em;
      margin-block-end: 0.56lh;
    }
  }
  .p-home-feature-link__item:is(.--icon):is(.--economy-icon1)::before {
    background: url(../img/projects/home/home_icon_economy_1.svg) no-repeat center center/contain;
  }
  .p-home-feature-link__item:is(.--icon):is(.--economy-icon2)::before {
    background: url(../img/projects/home/home_icon_economy_2.svg) no-repeat center center/contain;
  }
  .p-home-feature-link__item:is(.--icon):is(.--economy-icon3)::before {
    background: url(../img/projects/home/home_icon_economy_3.svg) no-repeat center center/contain;
  }
  .p-home-feature-link__item:is(.--icon):is(.--economy-icon4)::before {
    background: url(../img/projects/home/home_icon_economy_4.svg) no-repeat center center/contain;
  }
  .p-home-feature-link__item:is(.--icon):is(.--consulting-icon1)::before {
    background: url(../img/projects/home/home_icon_consulting_1.svg) no-repeat center center/contain;
  }
  .p-home-feature-link__item:is(.--icon):is(.--consulting-icon2)::before {
    background: url(../img/projects/home/home_icon_consulting_2.svg) no-repeat center center/contain;
  }
  .p-home-feature-link__item:is(.--icon):is(.--consulting-icon3)::before {
    background: url(../img/projects/home/home_icon_consulting_3.svg) no-repeat center center/contain;
  }
  .p-home-feature-link__item:is(.--icon):is(.--consulting-icon4)::before {
    background: url(../img/projects/home/home_icon_consulting_4.svg) no-repeat center center/contain;
  }
  .p-home-feature-link__item:is(.--icon):is(.--consulting-icon5)::before {
    background: url(../img/projects/home/home_icon_consulting_5.svg) no-repeat center center/contain;
  }
  .p-home-feature-link__item:is(.--icon):is(.--seminar-icon1)::before {
    background: url(../img/projects/home/home_icon_seminar_1.svg) no-repeat center center/contain;
  }
  .p-home-feature-link__item:is(.--icon):is(.--seminar-icon2)::before {
    background: url(../img/projects/home/home_icon_seminar_2.svg) no-repeat center center/contain;
  }
  .p-home-feature-link__item:is(.--icon):is(.--seminar-icon3)::before {
    background: url(../img/projects/home/home_icon_seminar_3.svg) no-repeat center center/contain;
  }
  .p-home-feature-link__item:is(.--icon):is(.--seminar-icon4)::before {
    background: url(../img/projects/home/home_icon_seminar_4.svg) no-repeat center center/contain;
  }
  .p-home-feature-link__item:is(.--icon):is(.--seminar-icon5)::before {
    background: url(../img/projects/home/home_icon_seminar_5.svg) no-repeat center center/contain;
  }
  .p-home-feature-link__item:is(.--icon):is(.--seminar-icon6)::before {
    background: url(../img/projects/home/home_icon_seminar_6.svg) no-repeat center center/contain;
  }
  .p-home-feature-link__item::after {
    --min-font-size: 14;
    --max-font-size: 18;
    content: "\e5e1";
    font-family: var(--ff-icon);
    grid-area: arrow;
    border-inline-start: 1px solid var(--clr-official-blue);
    padding-inline: 0.5em;
    color: var(--clr-official-blue);
  }
  @media (width >= 992px) {
    .p-home-feature-link__item::after {
      padding-inline: 1em;
    }
  }
  .p-home-solution-layout__list {
    --column-gap: min(2.4vw, 32px);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, (var(--theme-inline-size-max) - var(--column-gap)) / 2), 1fr));
    column-gap: var(--column-gap);
    row-gap: clamp(1.5rem, 0.6332819723rem + 3.6979969183vw, 3rem);
    margin-block-end: clamp(1.5rem, 0.6332819723rem + 3.6979969183vw, 3rem);
  }
  .p-home-solution-layout__header {
    background: #efefef;
    padding: 0.32lh 1em;
    margin-block: var(--leading-trim) calc(var(--leading-trim) + 1.08lh);
  }
  @media (width <= 991px) {
    .p-home-solution-layout__header:where(.p-home-solution-layout__list *) {
      margin-block: var(--leading-trim);
    }
  }
  .p-home-solution-layout__header:has(.c-btn) {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas: "text accordion";
    align-items: center;
  }
  @media (width >= 992px) {
    .p-home-solution-layout__header:has(.c-btn) {
      grid-template-areas: "text btn";
    }
  }
  .p-home-solution-layout__header:has(.c-btn):has(.c-accordion-icon) .c-accordion-icon {
    display: grid;
    grid-area: accordion;
  }
  @media (width >= 992px) {
    .p-home-solution-layout__header:has(.c-btn):has(.c-accordion-icon) .c-accordion-icon {
      display: none;
    }
  }
  .p-home-solution-layout__header:has(.c-btn):has(.c-accordion-icon) .c-btn {
    display: none;
  }
  @media (width >= 992px) {
    .p-home-solution-layout__header:has(.c-btn):has(.c-accordion-icon) .c-btn {
      display: grid;
    }
  }
  .p-home-solution-heading {
    --min-font-size: 16;
    --max-font-size: 18;
    font-weight: var(--fw-m);
  }
  .p-home-solution__list {
    display: none;
  }
  .p-home-solution__list:where(.p-home-solution-layout__block:has(.c-accordion-icon.--on) *) {
    display: grid;
  }
  @media (width >= 992px) {
    .p-home-solution__list {
      display: grid;
    }
  }
  .p-home-solution__item {
    color: #000;
    border-block-end: 1px dotted #ddd;
  }
  .p-home-solution__item :is(a) {
    color: currentColor;
    display: block;
    padding: 0.32lh 1em;
  }
  @media (width <= 991px) {
    .p-home-solution-slider {
      margin-inline: calc(var(--theme-side-gap) * -1);
    }
  }
  @media (width >= 992px) {
    .p-home-solution-slider .p-home-slider__arrow {
      aspect-ratio: 1;
      border-radius: 50%;
      border: 2px solid #fff;
    }
    .p-home-solution-slider .p-home-slider__arrow:is(.--next) {
      transform: translate(50%, -50%) scale(-1, 1);
    }
    .p-home-solution-slider .p-home-slider__arrow:is(.--prev) {
      transform: translate(-50%, -50%);
    }
  }
  .p-home-media-book__wrapper {
    position: relative;
    margin-block: clamp(3.5rem, 2.6332819723rem + 3.6979969183vw, 5rem);
    padding-block-start: 1.8lh;
    display: grid;
    align-items: flex-end;
    gap: 0.32lh min(3.2vw, 48px);
    grid-template-columns: min(20vw, 128px) 2.4vw 1fr;
    grid-template-rows: repeat(3, auto);
    grid-template-areas: "book . title" ". . desc" "btns . .";
  }
  @media (width >= 992px) {
    .p-home-media-book__wrapper {
      grid-template-columns: min(7.2vw, 100px) min(18%, 144px) 1fr min(7.2vw, 100px);
      grid-template-rows: repeat(4, auto);
      grid-template-areas: ". book . ." ". . title ." ". . desc ." ". . btns .";
    }
  }
  @media (width >= 992px) {
    .p-home-media-book__wrapper:has(.--large) {
      grid-template-columns: min(7.2vw, 100px) min(18%, 180px) 1fr min(7.2vw, 100px);
    }
  }
  .p-home-media-book__wrapper .c-btn__list {
    grid-area: btns;
  }
  @media (width <= 991px) {
    .p-home-media-book__wrapper .c-btn__list {
      grid-column: 1/-1;
      place-content: center center;
      margin-block-start: 5.6vw;
    }
  }
  .p-home-media-book__wrapper::after {
    content: "";
    inline-size: 100%;
    border-radius: 50%;
    aspect-ratio: 16/9;
    background: linear-gradient(#8fc31f, #ffffff 25%);
    opacity: 0.24;
    position: absolute;
    left: 0;
    top: 0;
    transform: scale(1, 0.72);
    transform-origin: center top;
    z-index: -1;
  }
  .p-home-media-book__image {
    grid-area: book;
    grid-row: 1/3;
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    place-content: center center;
    transition: 0.3s opacity ease;
  }
  @media (width >= 992px) {
    .p-home-media-book__image {
      grid-row: 1/-1;
    }
  }
  .p-home-media-book__image img {
    border: 1px solid #fff;
    inline-size: 100%;
  }
  .p-home-media-book__image:focus-visible {
    opacity: 0.75;
  }
  @media (any-hover: hover) {
    .p-home-media-book__image:hover {
      opacity: 0.75;
    }
  }
  .p-home-media-book__image::after {
    content: "";
    inline-size: 60%;
    aspect-ratio: 1;
    background: radial-gradient(circle, rgba(0, 0, 0, 0.32) 30%, transparent 70%);
    display: block;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: scale(1, 0.4) translate(-50%, 110%);
    transform-origin: center center;
    z-index: -1;
  }
  .p-home-media-book__badge {
    --min-font-size: 12;
    --max-font-size: 14;
    inline-size: min(5.6em, 80px);
    aspect-ratio: 1;
    border-radius: 50%;
    background: #DD4091;
    color: #fff;
    border: 1px solid #fff;
    position: absolute;
    bottom: 0;
    right: 0;
    transform: translate(25%, 25%);
    display: grid;
    place-content: center center;
    line-height: 1.24;
    text-align: center;
    letter-spacing: 0;
  }
  @media (width >= 992px) {
    .p-home-media-book__badge {
      inline-size: min(6.8em, 100px);
    }
  }
  .p-home-media-book__title {
    --min-font-size: 20;
    --max-font-size: 22;
    grid-area: title;
    font-weight: var(--fw-m);
    margin-block: var(--leading-trim);
  }
  .p-home-media-book__desc {
    grid-area: desc;
    margin-block-end: 0.56lh;
  }
  .p-home-media-corner__block + * {
    margin-block-start: clamp(2rem, 1.4221879815rem + 2.4653312789vw, 3rem);
  }
  .p-home-media-card__title :is(a) {
    color: #000;
    text-decoration: underline;
    font-weight: var(--fw-m);
  }
  .p-home-member-section {
    --row-gap: clamp(3rem, 2.7110939908rem + 1.2326656394vw, 3.5rem);
    --column-gap: min(2.4vw, 32px);
    display: grid;
    grid-template-columns: var(--theme-side-gap) 1fr var(--theme-side-gap);
    grid-template-rows: var(--row-gap) auto var(--row-gap) var(--row-gap) auto var(--row-gap);
    grid-template-areas: ". . ." ". info ." ". . ." ". . ." ". inq ." ". . .";
    background: var(--clr-official-blue);
    overflow: hidden;
  }
  @media (width >= 992px) {
    .p-home-member-section {
      grid-template-columns: var(--theme-side-gap) 1fr repeat(2, var(--column-gap)) 1fr var(--theme-side-gap);
      grid-template-rows: var(--row-gap) auto var(--row-gap);
      grid-template-areas: ". info . . inq .";
    }
  }
  .p-home-member-section::before {
    content: "";
    background: url(../img/projects/home/home_member_bg.jpg) no-repeat center center/cover;
    grid-column: 1/-1;
    grid-row: 1/4;
  }
  @media (width >= 992px) {
    .p-home-member-section::before {
      grid-column: -1/4;
      grid-row: 1/-1;
    }
  }
  .p-home-member-section::after {
    content: "";
    background: var(--clr-official-blue);
    opacity: 0.72;
    mix-blend-mode: multiply;
    grid-column: 1/-1;
    grid-row: 1/4;
  }
  @media (width >= 992px) {
    .p-home-member-section::after {
      grid-column: -1/4;
      grid-row: 1/-1;
    }
  }
  .p-home-member-heading__lv1 {
    color: #fff;
    margin-inline: auto;
    max-inline-size: fit-content;
    margin-block-end: 0.24lh;
  }
  .p-home-member-heading__lv2 {
    --min-font-size: 20;
    --max-font-size: 24;
    font-weight: var(--fw-m);
    color: #fff;
    display: grid;
    place-content: center center;
    margin-block-end: 0.32lh;
  }
  .p-home-member-heading__lv2 span {
    --min-font-size: 12;
    --max-font-size: 14;
    max-inline-size: fit-content;
    margin-inline: auto;
    display: grid;
  }
  .p-home-member-subtitle {
    --min-font-size: 18;
    --max-font-size: 20;
    background: #fff;
    max-inline-size: fit-content;
    padding: 0.32lh 1em;
    border-radius: 2em;
    color: var(--clr-official-blue);
    font-weight: var(--fw-m);
    line-height: 1;
    margin-inline: auto;
    margin-block: 0.72lh 0.72lh;
  }
  .p-home-member-action__list {
    margin-block-end: clamp(1.5rem, 1.2110939908rem + 1.2326656394vw, 2rem);
    border-radius: 0.5em;
    overflow: hidden;
  }
  .p-home-member-action__list :is(.c-btn__goast) {
    border-radius: 0;
  }
  .p-home-member-inquiry {
    margin-block-start: clamp(1rem, 0.7110939908rem + 1.2326656394vw, 1.5rem);
  }
  .p-home-member-inquiry__link {
    color: #fff;
    margin-block: var(--leading-trim) calc(var(--leading-trim) + 1lh);
  }
  .p-home-member-inquiry__link :is(a) {
    color: currentColor;
    margin-inline: auto;
    max-inline-size: fit-content;
    border-bottom: 1px solid currentColor;
    display: grid;
    grid-template-columns: 1fr 1em;
    grid-template-areas: "text icon";
    column-gap: 0.5em;
    align-items: center;
  }
  .p-home-member-inquiry__link :is(a)::after {
    --min-font-size: 20;
    --max-font-size: 22;
    content: "\e887";
    font-family: var(--ff-icon);
    grid-area: icon;
  }
  .p-home-member-layout__block {
    --grid-row: 2 / 3;
    --block-inline-size: min(100%, 480px);
    position: relative;
    z-index: 10;
    display: grid;
  }
  .p-home-member-layout__block.--info {
    grid-area: info;
    grid-row: 5/6;
    grid-template-columns: 1fr var(--block-inline-size) 1fr;
    grid-template-areas: ". content .";
  }
  @media (width >= 992px) {
    .p-home-member-layout__block.--info {
      grid-template-columns: 1fr var(--block-inline-size);
      grid-template-areas: ". content";
      grid-row: var(--grid-row);
    }
  }
  .p-home-member-layout__block.--inquiry {
    grid-area: inq;
    color: #fff;
    place-content: center center;
    grid-template-columns: 1fr var(--block-inline-size) 1fr;
    grid-template-areas: ". content .";
    grid-row: 2/3;
  }
  @media (width >= 992px) {
    .p-home-member-layout__block.--inquiry {
      grid-row: var(--grid-row);
    }
  }
  .p-home-member-layout__inner {
    grid-area: content;
  }
  .p-home-member-btn__auth {
    background: #F3CE55;
    border: 1px solid #F3CE55;
  }
  .p-home-member-btn__auth::before, .p-home-member-btn__auth::after {
    display: none;
  }
  .p-home-member-btn__auth span {
    color: #000;
  }
  .p-home-member-btn__auth:focus-visible {
    background: #D0AB2F;
  }
  @media (any-hover: hover) {
    .p-home-member-btn__auth:hover {
      background: #D0AB2F;
    }
  }
  .p-home-mailmagazine {
    border: 3px solid var(--clr-official-blue);
    border-radius: 0.5em;
    position: relative;
    padding: var(--theme-side-gap);
    display: grid;
    gap: 0.56lh clamp(1.5rem, 1.2110939908rem + 1.2326656394vw, 2rem);
    grid-template-columns: 1fr auto;
    grid-template-areas: "heading badge" "desc ." "btn .";
  }
  @media (width >= 992px) {
    .p-home-mailmagazine {
      padding: min(1.8vw, 16px);
    }
  }
  @media (width >= 992px) {
    .p-home-mailmagazine {
      grid-template-columns: 1fr min(32vw, 240px);
      grid-template-areas: "heading image" "desc ." "btn .";
    }
  }
  .p-home-mailmagazine :is(p, h2) {
    margin-block: var(--leading-trim);
  }
  @media (width >= 992px) {
    .p-home-mailmagazine::after {
      content: "";
      grid-area: image;
      grid-column: 2/-1;
      grid-row: 1/-1;
      background: url(../img/theme/mailmagazine/mailmagazine_image.png) no-repeat center center/cover;
      border-radius: 0.5em;
    }
  }
  .p-home-mailmagazine__badge {
    --min-font-size: 18;
    --max-font-size: 20;
    font-weight: var(--fw-m);
    inline-size: 72px;
    aspect-ratio: 1;
    line-height: 1.08;
    display: grid;
    place-content: center center;
    background: #FFEA00;
    border-radius: 50%;
    grid-area: badge;
  }
  @media (width >= 992px) {
    .p-home-mailmagazine__badge {
      position: absolute;
      right: 0;
      top: 0;
      transform: translate(50%, -50%);
    }
  }
  .p-home-mailmagazine-heading {
    --min-font-size: 20;
    --max-font-size: 24;
    color: var(--clr-official-blue);
    font-weight: var(--fw-m);
    padding-block: 0.56lh 0.24lh;
    line-height: 1.32;
  }
  .p-home-mailmagazine__description {
    grid-area: desc;
  }
  @media (width <= 991px) {
    .p-home-mailmagazine__description {
      grid-column: 1/-1;
    }
  }
  .p-home-mailmagazine-btn__list {
    margin-block-start: 0.56lh;
  }
  @media (width <= 991px) {
    .p-home-mailmagazine-btn__list {
      margin-inline: auto;
      grid-column: 1/-1;
    }
  }
}
/* --- Projects --- */
@layer Projects.Seminar {
  .p-seminar-filter-header .c-tab-header {
    grid-template-columns: repeat(3, 1fr);
  }
  .p-seminar-filter-cat {
    --min-font-size: 16;
    --max-font-size: 20;
  }
  .p-seminar-filter-cat:is([aria-selected=true]) {
    background: var(--clr-official-blue);
    color: #fff;
  }
  .p-seminar-filter-panel {
    padding-block: 2lh 1lh;
    border-top: 1px solid var(--clr-official-blue);
    border-bottom: 5px solid var(--clr-official-blue);
  }
  .p-seminar-select-icon__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1lh min(2.5vw, 24px);
  }
  @media (width >= 768px) {
    .p-seminar-select-icon__list {
      grid-template-columns: repeat(4, 1fr);
    }
  }
  .p-seminar-select-icon {
    display: grid;
    row-gap: 0.56lh;
    text-align: center;
    line-height: 1.25;
    font-weight: var(--fw-m);
  }
  .p-seminar-select-icon span {
    --min-font-size: 12;
    --max-font-size: 14;
  }
  .p-seminar-select-icon::before {
    content: "";
    inline-size: 40%;
    aspect-ratio: 1;
    border-radius: 8px;
    contain: strict;
    background: #ddd;
    margin-inline: auto;
    border: 1px solid var(--clr-official-blue);
  }
  .p-seminar-select-icon:is(.--type-management)::before {
    background: url(../img/projects/seminar/ico_management.svg) no-repeat center center/60% auto;
  }
  .p-seminar-select-icon:is(.--type-mid-level)::before {
    background: url(../img/projects/seminar/ico_mid-level.svg) no-repeat center center/60% auto;
  }
  .p-seminar-select-icon:is(.--type-woman)::before {
    background: url(../img/projects/seminar/ico_woman.svg) no-repeat center center/60% auto;
  }
  .p-seminar-select-icon:is(.--type-young)::before {
    background: url(../img/projects/seminar/ico_young.svg) no-repeat center center/60% auto;
  }
  .p-seminar-select-icon:is(.--on) {
    color: var(--clr-official-blue);
  }
  .p-seminar-select-icon:is(.--on)::before {
    background-color: lch(from currentColor calc(l + 55) calc(c - 10) h);
  }
  .p-seminar-select-btn__list {
    --column-gap: 16px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.56lh var(--column-gap);
  }
  @media (width >= 768px) {
    .p-seminar-select-btn__list {
      grid-template-columns: repeat(auto-fill, minmax(min(100%, (var(--theme-inline-size-max) - var(--column-gap) * 3) / 4), 1fr));
    }
  }
  .p-seminar-select-btn {
    color: #000;
    display: grid;
    grid-template-columns: min(8vw, 20px) 1fr;
    column-gap: 0.48em;
    line-height: 1.5;
    align-items: baseline;
  }
  .p-seminar-select-btn::before {
    content: "";
    color: var(--clr-official-blue);
    aspect-ratio: 1;
    border-radius: 50%;
    border: 2px solid currentColor;
    contain: strict;
    position: relative;
    top: 0.1lh;
  }
  .p-seminar-select-btn:is(.--on) {
    color: var(--clr-official-blue);
  }
  .p-seminar-select-btn:is(.--on)::before {
    background: currentColor;
  }
}
/* --- Projects --- */
@layer Projects.Staff {
  .p-staff-from__group {
    display: grid;
    grid-template-columns: max-content 1fr;
    align-items: baseline;
    margin-block-end: 1lh;
    column-gap: 0.56em;
  }
  .p-staff-from__group :is(dt, dd) {
    margin-block: var(--leading-trim);
  }
  .p-staff-from__group dt {
    font-weight: var(--fw-m);
    color: #404040;
    display: grid;
    grid-template-columns: min(2vw, 12px) 1fr;
    column-gap: 0.32em;
    align-items: center;
  }
  .p-staff-from__group dt::before {
    content: "";
    aspect-ratio: 1;
    background: var(--clr-official-green);
    display: block;
    border-radius: 50%;
  }
  .p-staff-from__group dd {
    --min-font-size: 18;
    --max-font-size: 20;
  }
  .p-staff__list {
    --gap: min(5.6vw, 32px);
    display: grid;
    margin-block-start: clamp(1.5rem, 1.2110939908rem + 1.2326656394vw, 2rem);
  }
  .p-staff__group {
    margin-block-end: 1.72lh;
  }
  .p-staff-index__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, (768px - var(--gap)) / 2), 1fr));
    gap: var(--gap);
  }
  .p-staff-index__list :is(.p-staff) {
    margin-block-end: revert;
  }
  .p-staff-heading__lv1 {
    --min-font-size: 24;
    --max-font-size: 28;
    border-block-start: 2px solid var(--clr-official-blue);
    border-block-end: 1px dotted var(--clr-official-blue);
    padding: 0.24lh 0;
    position: relative;
    color: var(--clr-official-blue);
    font-weight: var(--fw-m);
    margin-block-end: 0.72lh;
  }
  .p-staff-heading__lv1:not(:first-child) {
    margin-block-start: 0.72lh;
  }
  .p-staff-heading__lv2 {
    --min-font-size: 20;
    --max-font-size: 24;
    border-block-end: 1px solid var(--clr-official-blue);
    padding: 0 0 0.24lh;
    position: relative;
    font-weight: var(--fw-m);
    color: var(--clr-official-blue);
    margin-block-end: 0.72lh;
  }
  .p-staff-heading__lv2:not(:first-child) {
    margin-block-start: 0.72lh;
  }
  .p-staff {
    display: grid;
    grid-template-columns: min(24vw, 160px) 1fr;
    column-gap: min(5.6vw, 32px);
    align-items: center;
    background: #fafafa;
  }
  .p-staff:where(.p-staff__group *:not(:last-child)) {
    margin-block-end: 1lh;
  }
  .p-staff:where(.p-staff-index__list *) {
    grid-template-columns: min(18vw, 118px) 1fr;
    column-gap: min(3.2vw, 24px);
  }
  .p-staff__image {
    aspect-ratio: 118/140;
    contain: strict;
    grid-row: 1/-1;
  }
  .p-staff__image :is(img) {
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
  }
  .p-staff-info {
    display: grid;
    row-gap: 0.72lh;
    align-self: center;
  }
  .p-staff-info:where(.p-staff-index__list *) {
    row-gap: 0.4lh;
  }
  .p-staff-info :is(dt, dd) {
    margin-block: var(--leading-trim);
  }
  .p-staff-info__meta {
    display: grid;
    row-gap: 0.4lh;
  }
  .p-staff-info__class {
    --min-font-size: 16;
    --max-font-size: 18;
    font-weight: 400;
    color: #606060;
  }
  .p-staff-info__class:where(.p-staff-index__list *) {
    --min-font-size: 12;
    --max-font-size: 14;
  }
  .p-staff-info__name {
    --min-font-size: 20;
    --max-font-size: 24;
    font-weight: var(--fw-m);
  }
  .p-staff-info__name:where(.p-staff-index__list *) {
    --min-font-size: 16;
    --max-font-size: 20;
  }
  .p-staff-info__name :is(a) {
    color: #000;
  }
  .p-staff-info-link__list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5lh 1em;
  }
  .p-staff-info-link {
    display: inline grid;
    grid-auto-flow: column;
    align-items: baseline;
    column-gap: 0.24em;
    justify-content: flex-start;
    color: var(--clr-official-blue);
  }
  .p-staff-info-link::after {
    --min-font-size: 12;
    --max-font-size: 14;
    content: "\e5e1";
    justify-self: center;
    font-family: var(--ff-icon);
    color: var(--clr-official-blue);
  }
}
/* --- Projects --- */
@layer Projects.Style {
  .p-style-heading {
    --min-font-size: 20;
    --max-font-size: 24;
    border: 1px solid var(--clr-official-blue);
    color: var(--clr-official-blue);
    background: #fafafa;
    padding: 0.24lh 1em 0.24lh 0;
    display: grid;
    grid-template-columns: 24px 1fr;
    column-gap: 0.5em;
    align-items: center;
    font-weight: var(--fw-m);
    margin-block-end: 1.5lh;
  }
  .p-style-heading::before {
    content: "";
    aspect-ratio: 8/3;
    display: block;
    background: currentColor;
  }
  .p-style-guide__list {
    display: grid;
    row-gap: 1lh;
    margin-block-end: 2lh;
    border-block-end: 8px solid #aaa;
    padding-block-end: 2lh;
  }
  .p-style-guide {
    display: grid;
    row-gap: 0.72lh;
  }
  .p-style-guide:not(:last-child) {
    padding-block-end: 1lh;
    border-block-end: 1px dashed #aaa;
  }
  .p-style-guide__label {
    --min-font-size: 12;
    --max-font-size: 14;
    inline-size: fit-content;
    padding: 0 1em;
    border-radius: 56px;
    color: #fff;
    background: var(--clr-official-blue);
  }
  .p-style-code__text {
    --min-font-size: 12;
    --max-font-size: 14;
    background: #fafafa;
    border: 1px solid #ddd;
    padding: 0.5lh 1em;
    border-radius: 0.5em;
  }
}
@layer Reset, Base, Layout, Components, Projects;

/*# sourceMappingURL=styles.css.map */

/* --- 詳細ページCSS追記 --- */
.txtbox h4 {
  --min-font-size: 16;
  --max-font-size: 18;
  position: relative;
  padding-inline-start: calc(31 / 16 * 1rem);
  font-weight: var(--fw-m);
  line-height: 1.5;
  &::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    inset-block-start: 50%;
    transform: translateY(-50%);
    width: calc(23 / 16 * 1rem);
    height: calc(23 / 16 * 1rem);
    background: none;
    border-radius: 9999px;
    box-shadow: inset 0 0 0 calc(5 / 16 * 1rem) var(--clr-official-blue);
  }
}
.txtbox h5 {
  --min-font-size: 16;
  --max-font-size: 18;
  position: relative;
  padding-inline-start: calc(28 / 16 * 1rem);
  font-weight: var(--fw-m);
  &::before {
    content: "";
    position: absolute;
    inset-inline-start: calc(8 / 16 * 1rem);
    inset-block-start: 50%;
    transform: translateY(-50%);
    inline-size: calc(13 / 16 * 1rem);
    block-size: calc(12 / 16 * 1rem);
    background: var(--clr-official-blue);
  }
}

.txtbox ul.link_list,
.txtbox ul.file_list {
  margin-block-end: 1lh;
}
.txtbox ul ul {
  margin-block-start: .5lh;
}

.txtbox table.space-tight td {
  word-break: break-word;
  padding: .2em;
  font-size: .9em;
}

/* ===========================
 画像
=========================== */
.txtbox img { max-width: 100%; height: auto;} /* 最大幅をtxtboxに合わせる */
.txtbox img[style*="border"] { border-style: solid; box-sizing: border-box;}


/* フェードイン */
.fade_cont { opacity: 0; transition-duration: 1.25s;}
.fade_cont.active { opacity: 1;}

.txtbox .box-image img{
max-width: inherit;
height: auto;
width: 100%;
}
.txtbox .image_box img{
height: auto;
width: 100%;
}

.txtbox .box-image.double li:nth-child(2n-1),
.txtbox .box-image.triple li:nth-child(3n+1),
.txtbox .box-image.quadruple li:nth-child(4n+1),
.txtbox .box-image.pentadruple li:nth-child(5n+1),
.txtbox .box-image.hexatruple li:nth-child(6n+1) { clear: both;}


/* IMAGE BOX :n個並び flex */
.txtbox .box-image { display: flex; justify-content: flex-start; align-items: stretch; flex-wrap: wrap; list-style: none;}
.txtbox .box-image:after { display: block; content: ""; clear: both;}
.txtbox .box-image li { margin: 0 1% 1%; padding-left: 0; text-align: center;}
.txtbox .box-image li:before { display: none;}
.txtbox .box-image.single li { width: 98%;}
.txtbox .box-image.double li { width: 48%;}
.txtbox .box-image.triple li { width: 31.3333333333%;}
.txtbox .box-image.quadruple li { width: 23%;}
.txtbox .box-image.pentadruple li { width: 18%;}
.txtbox .box-image.hexatruple li { width: 14.6666666666%;}

.txtbox .box-image.double li img,
.txtbox .box-image.triple li img,
.txtbox .box-image.quadruple li img {
  margin-inline: auto;
}

.txtbox .box-image.single li a { display: block; margin: 0 auto; text-align: center;}

.txtbox .box-image p { padding-left: 0; text-align: center; font-size: 0.9em;} /* キャプション */
.txtbox .box-image img { margin-bottom: 0.5em;} /* 下の余白 */


/* BOX IMAGE :左右回り込み */
.txtbox .image_box {display: flex;}
.txtbox .image_box:after { display: block; content: ""; clear: both;}
.txtbox .image_box_center,
.txtbox .image_box_left,
.txtbox .image_box_right { text-align: center;}
.txtbox .image_box_center { max-width: 98%; margin: 0 1% 1em;}
.txtbox .image_box_left,
.txtbox .image_box_right { max-width: calc( 49% - 1em );}
.txtbox .image_box_left { float: left; margin: 0 1em 0.5em 1%;}
.txtbox .image_box_right { float: right; margin: 0 1% 0.5em 1em;}

.txtbox .image_box_right + div,
.txtbox .image_box_left + div {
  flex: 1;
}
.txtbox .image_box_right + div {
  order: -1;
}

.txtbox .image_box_center p,
.txtbox .image_box_left p,
.txtbox .image_box_right p { padding-left: 0; font-size: 0.9em;} /* キャプション */
.txtbox .image_box_center img,
.txtbox .image_box_left img,
.txtbox .image_box_right img { margin-bottom: 0.5em;} /* 下の余白 */

/* link-icon */
.txtbox td:has(a > img.link-icon) {
  text-align: center;
  vertical-align:middle;
  white-space: nowrap;
}

.txtbox td:has(a > img.link-icon) > a {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0.25em;
}
.c-form-field-confirm__text{min-height:2.3em;}
.font_red{color:#f20000;}
.l-menu__item.active .l-megamenu{opacity: 1;visibility: visible;}