@charset "UTF-8";
/* ========================================================
   カスケードレイヤーの順序定義
   ======================================================== */
/* assets/css/_layer-order.scss */
@layer reset, foundation, base, layout, components, project, utilities;
/* ========================================================
   Reset
   ======================================================== */
/*! modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize */
/*
Document
========
*/
/**
Use a better box model (opinionated).
*/
@layer reset {
  *,
  ::before,
  ::after {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
  /**
  1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
  2. Correct the line height in all browsers.
  3. Prevent adjustments of font size after orientation changes in iOS.
  4. Use a more readable tab size (opinionated).
  */
  html {
    font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; /* 1 */
    line-height: 1.15; /* 2 */
    -webkit-text-size-adjust: 100%; /* 3 */
    -moz-tab-size: 4;
      -o-tab-size: 4;
         tab-size: 4; /* 4 */
  }
  /*
  Sections
  ========
  */
  /**
  Remove the margin in all browsers.
  */
  body {
    margin: var(--spacing-0, 0);
  }
  /*
  Text-level semantics
  ====================
  */
  /**
  Add the correct font weight in Chrome and Safari.
  */
  b,
  strong {
    font-weight: bolder;
  }
  /**
  1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
  2. Correct the odd 'em' font sizing in all browsers.
  */
  code,
  kbd,
  samp,
  pre {
    font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; /* 1 */
    font-size: 1em; /* 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;
  }
  /*
  Tabular data
  ============
  */
  /**
  Correct table border color inheritance in Chrome and Safari. (https://issues.chromium.org/issues/40615503, https://bugs.webkit.org/show_bug.cgi?id=195016)
  */
  table {
    border-color: currentcolor;
  }
  /*
  Forms
  =====
  */
  /**
  1. Change the font styles in all browsers.
  2. Remove the margin in Firefox and Safari.
  */
  button,
  input,
  optgroup,
  select,
  textarea {
    font-family: inherit; /* 1 */
    font-size: 100%; /* 1 */
    line-height: 1.15; /* 1 */
    margin: var(--spacing-0, 0); /* 2 */
  }
  /**
  Correct the inability to style clickable types in iOS and Safari.
  */
  button,
  [type=button],
  [type=reset],
  [type=submit] {
    -webkit-appearance: button;
  }
  /**
  Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
  */
  legend {
    padding: var(--spacing-0, 0);
  }
  /**
  Add the correct vertical alignment in Chrome and Firefox.
  */
  progress {
    vertical-align: baseline;
  }
  /**
  Correct the cursor style of increment and decrement buttons in Safari.
  */
  ::-webkit-inner-spin-button,
  ::-webkit-outer-spin-button {
    height: auto;
  }
  /**
  1. Correct the odd appearance in Chrome and Safari.
  2. Correct the outline style in Safari.
  */
  [type=search] {
    -webkit-appearance: textfield; /* 1 */
    outline-offset: -2px; /* 2 */
  }
  /**
  Remove the inner padding in Chrome and Safari on macOS.
  */
  ::-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 */
  }
  /*
  Interactive
  ===========
  */
  /*
  Add the correct display in Chrome and Safari.
  */
  summary {
    display: list-item;
  }
}
/* ========================================================
   Base
   ======================================================== */
@layer base {
  html {
    scroll-behavior: smooth;
  }
  body {
    color: var(--semantic-text);
    font-family: var(--semantic-font-family-body);
    font-size: var(--semantic-font-size-body-fluid, var(--font-size-md));
    font-weight: var(--font-weight-medium);
    line-height: var(--line-height-lg);
    container-type: inline-size;
    line-break: strict;
    text-rendering: optimizeLegibility;
    -webkit-text-size-adjust: 100%;
  }
  a {
    color: var(--semantic-link-fg, var(--color-teal-400));
    text-decoration: underline;
    text-underline-offset: 0.16em;
    text-decoration-thickness: 0.08em;
    -webkit-transition: color 0.15s ease, text-decoration-color 0.15s ease;
    transition: color 0.15s ease, text-decoration-color 0.15s ease;
  }
  a:visited {
    color: var(--semantic-link-fg-visited, var(--color-teal-500));
  }
  a:hover {
    color: var(--semantic-link-fg-hover, var(--color-teal-600));
    text-decoration-color: var(--semantic-link-fg-hover, currentColor);
  }
  a:active {
    color: var(--semantic-link-fg-active, var(--color-teal-700));
  }
  a:focus-visible {
    border-radius: 0.25rem;
    outline: none;
    -webkit-box-shadow: 0 0 0 0.2rem color-mix(in oklab, var(--semantic-focus-ring, #2684ff), transparent 60%);
            box-shadow: 0 0 0 0.2rem color-mix(in oklab, var(--semantic-focus-ring, #2684ff), transparent 60%);
  }
  img,
  svg,
  video,
  canvas {
    display: block;
    max-width: 100%;
    height: auto;
  }
  picture,
  figure {
    display: block;
  }
  [lang=ja] :is(h1, h2, h3, h4, h5, h6) {
    text-wrap: balance;
    -webkit-margin-before: var(--spacing-0);
            margin-block-start: var(--spacing-0);
  }
  @media (prefers-reduced-motion: reduce) {
    a {
      -webkit-transition: none;
      transition: none;
    }
  }
}
/* ========================================================
   Foundation
   ======================================================== */
.c-definition-list--stack {
  display: grid;
  grid-auto-rows: auto;
  gap: var(--spacing-md);
  margin-bottom: var(--spacing-md);
}
.c-definition-list--stack > .c-definition-list__group {
  display: grid;
  grid-template-columns: 1fr;
  grid-column: 1/-1;
  row-gap: var(--spacing-xs);
  -webkit-column-gap: 0;
     -moz-column-gap: 0;
          column-gap: 0;
  -webkit-border-after: var(--semantic-border-style-subtle);
          border-block-end: var(--semantic-border-style-subtle);
  padding-block: var(--definition-row-pad, var(--spacing-sm));
}
.c-definition-list--stack > .c-definition-list__group:last-child {
  -webkit-border-after: 0;
          border-block-end: 0;
}
.c-definition-list--stack > .c-definition-list__term,
.c-definition-list--stack > .c-definition-list__desc,
.c-definition-list--stack .c-definition-list__group > .c-definition-list__term,
.c-definition-list--stack .c-definition-list__group > .c-definition-list__desc {
  grid-column: 1;
  margin: var(--spacing-0);
  padding: var(--spacing-md) var(--spacing-2xl);
  text-align: left;
}
.c-definition-list--stack .c-definition-list__desc--primary,
.c-definition-list--stack .c-definition-list__desc--secondary {
  display: block;
  font-size: inherit;
  line-height: inherit;
  text-align: left;
  grid-area: auto;
}

@container item-list (max-width: 42rem) {
  .c-definition-list {
    display: grid;
    grid-auto-rows: auto;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
  }
  .c-definition-list > .c-definition-list__group {
    display: grid;
    grid-template-columns: 1fr;
    grid-column: 1/-1;
    row-gap: var(--spacing-xs);
    -webkit-column-gap: 0;
       -moz-column-gap: 0;
            column-gap: 0;
    -webkit-border-after: var(--semantic-border-style-subtle);
            border-block-end: var(--semantic-border-style-subtle);
    padding-block: var(--definition-row-pad, var(--spacing-sm));
  }
  .c-definition-list > .c-definition-list__group:last-child {
    -webkit-border-after: 0;
            border-block-end: 0;
  }
  .c-definition-list > .c-definition-list__term,
  .c-definition-list > .c-definition-list__desc,
  .c-definition-list .c-definition-list__group > .c-definition-list__term,
  .c-definition-list .c-definition-list__group > .c-definition-list__desc {
    grid-column: 1;
    margin: var(--spacing-0);
    padding: var(--spacing-md) var(--spacing-2xl);
    text-align: left;
  }
  .c-definition-list .c-definition-list__desc--primary,
  .c-definition-list .c-definition-list__desc--secondary {
    display: block;
    font-size: inherit;
    line-height: inherit;
    text-align: left;
    grid-area: auto;
  }
  .c-definition-list--arrow-right .c-definition-list__term::after {
    right: 50%;
    -webkit-transform: translate(50%, 0);
            transform: translate(50%, 0);
    content: "keyboard_double_arrow_down";
  }
}
@layer foundation {
  :root {
    --cq-item-list-1col: 42rem;
    --cq-item-list-2col: 76.5rem;
  }
}
@layer foundation {
  :root {
    --color-white: #ffffff;
    --color-black: #000000;
    --color-gray-100: #f7f7f7;
    --color-gray-200: #f2f2f2;
    --color-gray-300: #e0e0e0;
    --color-gray-400: #b0b0b0;
    --color-gray-500: #808080;
    --color-gray-600: #4d4d4d;
    --color-gray-700: #333333;
    --color-gray-800: #2a2a2a;
    --color-gray-900: #171717;
    --color-white-rgb: 255 255 255;
    --color-black-rgb: 0 0 0;
    --color-gray-100-rgb: 247 247 247;
    --color-gray-200-rgb: 237 238 242;
    --color-gray-300-rgb: 224 224 224;
    --color-gray-400-rgb: 176 176 176;
    --color-gray-500-rgb: 128 128 128;
    --color-gray-600-rgb: 77 77 77;
    --color-gray-700-rgb: 51 51 51;
    --color-gray-800-rgb: 42 42 42;
    --color-gray-900-rgb: 23 23 23;
    --color-teal-100: #e9f7f7;
    --color-teal-200: #c5eadf;
    --color-teal-300: #31cec5;
    --color-teal-400: #00bc9c;
    --color-teal-500: #07a989;
    --color-teal-700: #047d65;
    --color-teal-900: #025246;
    --color-teal-100-rgb: 233 247 247;
    --color-teal-200-rgb: 208 245 236;
    --color-teal-300-rgb: 49 206 197;
    --color-teal-400-rgb: 0 188 156;
    --color-teal-500-rgb: 7 169 137;
    --color-teal-700-rgb: 4 125 101;
    --color-teal-900-rgb: 2 82 70;
    --color-blue-100: #d4e9f7;
    --color-blue-200: #b1d6e8;
    --color-blue-300: #9ad2e1;
    --color-blue-400: #66b3e0;
    --color-blue-500: #0077bc;
    --color-blue-700: #005c99;
    --color-blue-900: #003f6b;
    --color-blue-100-rgb: 212 233 247;
    --color-blue-200-rgb: 177 214 232;
    --color-blue-300-rgb: 154 210 225;
    --color-blue-400-rgb: 102 179 224;
    --color-blue-500-rgb: 0 119 188;
    --color-blue-700-rgb: 0 92 153;
    --color-blue-900-rgb: 0 63 107;
    /* --------------------------------------------------------
       Red
    -------------------------------------------------------- */
    --color-red-100: #f3e8f4;
    --color-red-200: #ecc7de;
    --color-red-300: #dfa4c3;
    --color-red-400: #d37ca8;
    --color-red-500: #c95090;
    --color-red-700: #a3366f;
    --color-red-900: #71214a;
    --color-red-100-rgb: 243 232 244;
    --color-red-200-rgb: 236 199 222;
    --color-red-300-rgb: 223 164 195;
    --color-red-400-rgb: 211 124 168;
    --color-red-500-rgb: 201 80 144;
    --color-red-700-rgb: 163 54 111;
    --color-red-900-rgb: 113 33 74;
    --color-yellow: #dfff17;
    --color-gunmetal-teal: #2d535e;
    --color-gunmetal-teal-rgb: 45 83 94;
    --color-legend-magenta: #e6007a;
    --color-legend-yellow: #ffd400;
    --color-legend-amber: #f59e0b;
    --color-legend-blue: #1d9bf0;
    --color-legend-green: #16a34a;
    --color-legend-slate: #6b7280;
    --color-legend-violet: #7c3aed;
    --color-legend-magenta-rgb: 230 0 122;
    --color-legend-yellow-rgb: 255 212 0;
    --color-legend-amber-rgb: 245 158 11;
    --color-legend-blue-rgb: 29 155 240;
    --color-legend-green-rgb: 22 163 74;
    --color-legend-slate-rgb: 107 114 128;
    --color-legend-violet-rgb: 124 58 237;
    /* --------------------------------------------------------
       Gradients：クラデーション
    -------------------------------------------------------- */
    --gradient-blue-teal: linear-gradient(
      var(--gradient-angle-brand-primary) in hsl,
      var(--color-blue-500) 0%,
      var(--color-teal-500) 50%
    );
    --gradient-blue-teal-vivid: linear-gradient(
      var(--gradient-angle-brand-primary),
      #0c9ff5 10%,
      #11c0f1 25%,
      var(--color-teal-300) 45%,
      var(--color-teal-400) 70%
    );
    --gradient-white-teal: linear-gradient(
      var(--gradient-angle-brand-primary) in hsl,
      var(--color-gray-200) 0%,
      var(--color-teal-400) 100%
    );
    --gradient-blue-teal-pale: linear-gradient(
      var(--gradient-angle-brand-primary) in hsl,
      var(--color-teal-300) 20%,
      var(--color-blue-400) 70%
    );
    --gradient-glass-blue: linear-gradient(
      var(--gradient-angle-brand-primary) in hsl,
      var(--color-blue-300) 10%,
      var(--color-gray-600) 80%
    );
    --gradient-gray-pale: linear-gradient(
      var(--gradient-angle-vertical-top-to-bottom),
      var(--color-gray-200) 20%,
      var(--color-gray-300) 70%
    );
    --gradient-gray-pale-left-to-right: linear-gradient(
      var(--gradient-angle-horizontal-left-to-right),
      var(--color-gray-200) 20%,
      var(--color-gray-300) 70%
    );
    /* --------------------------------------------------------
       Alpha（rgb() / slash 構文）
    -------------------------------------------------------- */
    --color-white-alpha-70: rgb(var(--color-white-rgb) / var(--opacity-70));
    --color-black-alpha-20: rgb(var(--color-black-rgb) / var(--opacity-20));
    --color-black-alpha-40: rgb(var(--color-black-rgb) / var(--opacity-40));
    --color-black-alpha-70: rgb(var(--color-black-rgb) / var(--opacity-70));
    --color-gray-400-alpha-20: rgb(var(--color-gray-40-rgb) / var(--opacity-20));
    --color-gray-500-alpha-50: rgb(var(--color-gray-500-rgb) / var(--opacity-50));
    --color-teal-300-alpha-70: rgb(var(--color-teal-300-rgb) / var(--opacity-70));
    --color-teal-400-alpha-70: rgb(var(--color-teal-400-rgb) / var(--opacity-70));
    --color-blue-400-alpha-70: rgb(var(--color-blue-400-rgb) / var(--opacity-70));
    --color-blue-500-alpha-70: rgb(var(--color-blue-500-rgb) / var(--opacity-70));
    --color-blue-900-alpha-20: rgb(var(--color-blue-900-rgb) / var(--opacity-20));
    /* --------------------------------------------------------
       Gradients ＋ Alpha（rgb() / slash 構文）
    -------------------------------------------------------- */
    --gradient-glass-blue-alpha-30: linear-gradient(
      var(--gradient-angle-glass-blue),
      rgb(var(--color-white-rgb) / var(--opacity-30)) 10%,
      rgb(var(--color-blue-200-rgb) / var(--opacity-30)) 30%,
      rgb(var(--color-teal-200-rgb) / var(--opacity-30)) 80%
    );
    --gradient-glass-gray-alpha-20: linear-gradient(
      var(--gradient-angle-glass-blue),
      rgb(var(--color-white-rgb) / var(--opacity-20)) 10%,
      rgb(var(--color-blue-200-rgb) / var(--opacity-20)) 30%,
      rgb(var(--color-gray-200-rgb) / var(--opacity-20)) 80%
    );
    --gradient-blue-teal-pale-alpha-70: linear-gradient(
      var(--gradient-angle-brand-primary),
      rgb(var(--color-blue-300-rgb) / var(--opacity-70)) 20%,
      rgb(var(--color-teal-400-rgb) / var(--opacity-70)) 70%
    );
    color: #e61e62;
  }
}
@layer foundation {
  :root {
    --font-family-noto-sans-jp:
      "IBM Plex Sans JP", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans",
      "Meiryo", sans-serif;
    --font-family-alumni-sans-pinstripe: "Alumni Sans Pinstripe", sans-serif;
    --font-family-barlow: "Barlow", sans-serif;
    --font-icon: "Material Symbols Outlined";
  }
}
@layer foundation {
  :root {
    --font-size-2xs: 0.625rem;
    --font-size-xs: 0.75rem;
    --font-size-sm: 0.875rem;
    --font-size-md: 1.0625rem;
    --font-size-lg: 1.125rem;
    --font-size-xl: 1.25rem;
    --font-size-2xl: 1.5rem;
    --font-size-3xl: 2rem;
    --font-size-4xl: 2.5rem;
    --font-size-5xl: 3rem;
    --font-size-6xl: 3.5rem;
    --font-size-7xl: 4rem;
    --font-size-8xl: 5rem;
    --font-size-9xl: 6rem;
    --font-size-10xl: 8rem;
    --line-height-3xs: 0.8;
    --line-height-2xs: 1;
    --line-height-xs: 1.3;
    --line-height-sm: 1.4;
    --line-height-md: 1.6;
    --line-height-lg: 1.7;
    --line-height-xl: 1.8;
    --line-height-2xl: 2;
    --line-height-3xl: 2.5;
    --letter-spacing-2xs: -0.2em;
    --letter-spacing-xs: -0.05em;
    --letter-spacing-sm: -0.025em;
    --letter-spacing-md: 0em;
    --letter-spacing-lg: 0.05em;
    --letter-spacing-xl: 0.1em;
    --letter-spacing-2xl: 0.15em;
    --font-weight-thin: 100;
    --font-weight-light: 300;
    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-bold: 700;
    --font-weight-black: 900;
    --font-style-normal: normal;
    --font-style-italic: italic;
    --font-style-oblique: oblique;
    --font-style-oblique-angle: 10deg;
    --fluid-min-width: 360px;
    --fluid-max-width: 1440px;
    --fluid-range: 1080;
    --fluid-range-inv: calc(1 / var(--fluid-range));
    --fluid-min-w: 360;
    --fluid-max-w: 1440;
    --_fluid-range-w: 1080;
    --fluid-amp-primitives: 1;
    --fs-2xs-min: var(--font-size-2xs);
    --fs-2xs-max: var(--font-size-xs);
    --fs-2xs-intercept-rem: 0.583333333rem;
    --fs-2xs-slope-vw: 0.18518519vw;
    --font-size-2xs-fluid: clamp(
      var(--fs-2xs-min),
      calc(var(--fs-2xs-intercept-rem) + var(--fs-2xs-slope-vw) * var(--fluid-amp-primitives)),
      var(--fs-2xs-max)
    );
    --fs-xs-min: var(--font-size-xs);
    --fs-xs-max: var(--font-size-sm);
    --fs-xs-intercept-rem: 0.708333333rem;
    --fs-xs-slope-vw: 0.18518519vw;
    --font-size-xs-fluid: clamp(
      var(--fs-xs-min),
      calc(var(--fs-xs-intercept-rem) + var(--fs-xs-slope-vw) * var(--fluid-amp-primitives)),
      var(--fs-xs-max)
    );
    --fs-sm-min: var(--font-size-sm);
    --fs-sm-max: var(--font-size-md);
    --fs-sm-intercept-rem: 0.8125rem;
    --fs-sm-slope-vw: 0.27777778vw;
    --font-size-sm-fluid: clamp(
      var(--fs-sm-min),
      calc(var(--fs-sm-intercept-rem) + var(--fs-sm-slope-vw) * var(--fluid-amp-primitives)),
      var(--fs-sm-max)
    );
    --fs-md-min: var(--font-size-md);
    --fs-md-max: var(--font-size-lg);
    --fs-md-intercept-rem: 1.041666667rem;
    --fs-md-slope-vw: 0.09259259vw;
    --font-size-md-fluid: clamp(
      var(--fs-md-min),
      calc(var(--fs-md-intercept-rem) + var(--fs-md-slope-vw) * var(--fluid-amp-primitives)),
      var(--fs-md-max)
    );
    --fs-lg-min: var(--font-size-lg);
    --fs-lg-max: var(--font-size-xl);
    --fs-lg-intercept-rem: 1.083333333rem;
    --fs-lg-slope-vw: 0.18518519vw;
    --font-size-lg-fluid: clamp(
      var(--fs-lg-min),
      calc(var(--fs-lg-intercept-rem) + var(--fs-lg-slope-vw) * var(--fluid-amp-primitives)),
      var(--fs-lg-max)
    );
    --fs-xl-min: var(--font-size-xl);
    --fs-xl-max: var(--font-size-2xl);
    --fs-xl-intercept-rem: 1.166666667rem;
    --fs-xl-slope-vw: 0.37037037vw;
    --font-size-xl-fluid: clamp(
      var(--fs-xl-min),
      calc(var(--fs-xl-intercept-rem) + var(--fs-xl-slope-vw) * var(--fluid-amp-primitives)),
      var(--fs-xl-max)
    );
    --fs-2xl-min: var(--font-size-2xl);
    --fs-2xl-max: var(--font-size-3xl);
    --fs-2xl-intercept-rem: 1.333333333rem;
    --fs-2xl-slope-vw: 0.74074074vw;
    --font-size-2xl-fluid: clamp(
      var(--fs-2xl-min),
      calc(var(--fs-2xl-intercept-rem) + var(--fs-2xl-slope-vw) * var(--fluid-amp-primitives)),
      var(--fs-2xl-max)
    );
    --fs-3xl-min: var(--font-size-3xl);
    --fs-3xl-max: var(--font-size-4xl);
    --fs-3xl-intercept-rem: 1.833333333rem;
    --fs-3xl-slope-vw: 0.74074074vw;
    --font-size-3xl-fluid: clamp(
      var(--fs-3xl-min),
      calc(var(--fs-3xl-intercept-rem) + var(--fs-3xl-slope-vw) * var(--fluid-amp-primitives)),
      var(--fs-3xl-max)
    );
    --fs-4xl-min: var(--font-size-4xl);
    --fs-4xl-max: var(--font-size-5xl);
    --fs-4xl-intercept-rem: 2.333333333rem;
    --fs-4xl-slope-vw: 0.74074074vw;
    --font-size-4xl-fluid: clamp(
      var(--fs-4xl-min),
      calc(var(--fs-4xl-intercept-rem) + var(--fs-4xl-slope-vw) * var(--fluid-amp-primitives)),
      var(--fs-4xl-max)
    );
    --fs-5xl-min: var(--font-size-5xl);
    --fs-5xl-max: var(--font-size-6xl);
    --fs-5xl-intercept-rem: 2.833333333rem;
    --fs-5xl-slope-vw: 0.74074074vw;
    --font-size-5xl-fluid: clamp(
      var(--fs-5xl-min),
      calc(var(--fs-5xl-intercept-rem) + var(--fs-5xl-slope-vw) * var(--fluid-amp-primitives)),
      var(--fs-5xl-max)
    );
    --fs-6xl-min: var(--font-size-6xl);
    --fs-6xl-max: var(--font-size-7xl);
    --fs-6xl-intercept-rem: 3.333333333rem;
    --fs-6xl-slope-vw: 0.74074074vw;
    --font-size-6xl-fluid: clamp(
      var(--fs-6xl-min),
      calc(var(--fs-6xl-intercept-rem) + var(--fs-6xl-slope-vw) * var(--fluid-amp-primitives)),
      var(--fs-6xl-max)
    );
    --fs-7xl-min: var(--font-size-7xl);
    --fs-7xl-max: var(--font-size-8xl);
    --fs-7xl-intercept-rem: 3.666666667rem;
    --fs-7xl-slope-vw: 1.48148148vw;
    --font-size-7xl-fluid: clamp(
      var(--fs-7xl-min),
      calc(var(--fs-7xl-intercept-rem) + var(--fs-7xl-slope-vw) * var(--fluid-amp-primitives)),
      var(--fs-7xl-max)
    );
    --fs-8xl-min: var(--font-size-8xl);
    --fs-8xl-max: var(--font-size-9xl);
    --fs-8xl-intercept-rem: 4.666666667rem;
    --fs-8xl-slope-vw: 1.48148148vw;
    --font-size-8xl-fluid: clamp(
      var(--fs-8xl-min),
      calc(var(--fs-8xl-intercept-rem) + var(--fs-8xl-slope-vw) * var(--fluid-amp-primitives)),
      var(--fs-8xl-max)
    );
    --fs-9xl-min: var(--font-size-9xl);
    --fs-9xl-max: var(--font-size-10xl);
    --fs-9xl-intercept-rem: 5.333333333rem;
    --fs-9xl-slope-vw: 2.96296296vw;
    --font-size-9xl-fluid: clamp(
      var(--fs-9xl-min),
      calc(var(--fs-9xl-intercept-rem) + var(--fs-9xl-slope-vw) * var(--fluid-amp-primitives)),
      var(--fs-9xl-max)
    );
    --fs-10xl-min: var(--font-size-10xl);
    --fs-10xl-max: var(--font-size-10xl);
    --fs-10xl-intercept-rem: 8rem;
    --fs-10xl-slope-vw: 0vw;
    --font-size-10xl-fluid: clamp(
      var(--fs-10xl-min),
      calc(var(--fs-9xl-intercept-rem) + var(--fs-9xl-slope-vw) * var(--fluid-amp-primitives)),
      var(--fs-10xl-max)
    );
    --font-size-ui-14to16-fluid: clamp(
      0.875rem,
      calc(0.833333333rem + 0.18518519vw * var(--fluid-amp-primitives)),
      1rem
    );
    --font-size-ui-17to20-fluid: clamp(
      1.0625rem,
      calc(1rem + 0.27777778vw * var(--fluid-amp-primitives)),
      1.25rem
    );
    --font-size-ui-24to28-fluid: clamp(
      1.5rem,
      calc(1.416666667rem + 0.37037037vw * var(--fluid-amp-primitives)),
      1.75rem
    );
    --font-size-ui-32to36-fluid: clamp(
      2rem,
      calc(1.916666667rem + 0.37037037vw * var(--fluid-amp-primitives)),
      2.25rem
    );
    --font-size-24to64-fluid: clamp(
      1.5rem,
      calc(1.333333333rem + 2.96296296vw * var(--fluid-amp-primitives)),
      4rem
    );
    --font-size-48to64-fluid: clamp(
      3rem,
      calc(2.666666667rem + 1.48148148vw * var(--fluid-amp-primitives)),
      4rem
    );
    --font-size-64to187-fluid: clamp(
      4rem,
      calc(4rem + 2.96296296vw * var(--fluid-amp-primitives)),
      11rem
    );
    --font-size-24to32-fluid: clamp(
      1.5rem,
      calc(1.333333333rem + 0.74074074vw * var(--fluid-amp-primitives)),
      2rem
    );
    --font-size-20to24-fluid: clamp(
      1.25rem,
      calc(1.166666667rem + 0.37037037vw * var(--fluid-amp-primitives)),
      1.5rem
    );
    --font-size-top-bg-96to160-fluid: clamp(
      6rem,
      calc(5.333333333rem + 5.92592593vw * var(--fluid-amp-primitives)),
      10rem
    );
    --spacing-0: 0rem;
    --spacing-2xs: 0.125rem;
    --spacing-xs: 0.25rem;
    --spacing-sm: 0.5rem;
    --spacing-md: 1rem;
    --spacing-lg: 1.5rem;
    --spacing-xl: 2rem;
    --spacing-2xl: 2.5rem;
    --spacing-3xl: 4rem;
    --spacing-4xl: 5rem;
    --spacing-5xl: 8rem;
    --spacing-6xl: 16rem;
    --spacing-7xl: 20rem;
    --spacing-8xl: 24rem;
    --spacing-9xl: 32rem;
    --spacing-neg-2xs: -0.125rem;
    --spacing-neg-xs: -0.25rem;
    --spacing-neg-sm: -0.5rem;
    --spacing-neg-md: -1rem;
    --spacing-neg-lg: -1.5rem;
    --spacing-neg-xl: -2rem;
    --spacing-neg-2xl: -2.5rem;
    --spacing-neg-3xl: -4rem;
    --spacing-neg-4xl: -5rem;
    --spacing-neg-5xl: -8rem;
    --spacing-neg-6xl: -16rem;
    --spacing-neg-7xl: -20rem;
    --spacing-neg-8xl: -24rem;
    --spacing-neg-9xl: -32rem;
    --radius-0: 0;
    --radius-xs: 4px;
    --radius-sm: 8px;
    --radius-md: 16px;
    --radius-lg: 24px;
    --radius-xl: 40px;
    --radius-full: 9999px;
    --container-max: 1220px;
    --container-gutter: 2rem;
    --layout-columns-gap: 3rem;
    --layout-columns-cols: 1;
    --layout-cards-gap: 1.5rem;
    --layout-cards-cols: 1;
    --breakpoint-sm: 480px;
    --breakpoint-md: 768px;
    --breakpoint-lg: 1024px;
    --breakpoint-xl: 1280px;
    /* RGBA色成分（プリミティブ値） */
    --shadow-color-black-opacity-08: 0 0 0 / var(--opacity-8);
    --shadow-color-black-opacity-10: 0 0 0 / var(--opacity-10);
    --shadow-color-black-opacity-12: 0 0 0 / var(--opacity-12);
    /* シャドウプリセット（長さ＋色の組み合わせ） */
    --shadow-default: var(--spacing-0) var(--spacing-2xs) var(--spacing-xs)
      rgb(var(--shadow-color-black-opacity-08));
    --shadow-card: var(--spacing-0) var(--spacing-2xs) var(--spacing-2xs)
      rgb(var(--shadow-color-black-opacity-12));
    --z-index-base: 0;
    --z-index-under: -1;
    --z-index-layer-low: 10;
    --z-index-layer-mid: 20;
    --z-index-layer-high: 30;
    --z-index-header: 100;
    --z-index-modal: 1000;
    --z-index-overlay: 2000;
    --transition-default: all 0.3s ease;
    --transition-fast: all 0.15s ease;
    --transition-slow: all 0.5s ease;
    --duration-fast: 150ms;
    --duration-base: 300ms;
    --duration-slow: 500ms;
    --opacity-0: 0;
    --opacity-8: 0.08;
    --opacity-10: 0.1;
    --opacity-12: 0.12;
    --opacity-20: 0.2;
    --opacity-30: 0.3;
    --opacity-40: 0.4;
    --opacity-50: 0.5;
    --opacity-60: 0.6;
    --opacity-70: 0.7;
    --opacity-80: 0.8;
    --opacity-90: 0.9;
    --opacity-100: 1;
    --border-width-hairline: 0.5px;
    --border-width-thin: 1px;
    --border-width-bold: 2px;
    --border-width-heavy: 4px;
    --aspect-ratio-1x1: 1 / 1;
    --aspect-ratio-16x9: 16 / 9;
    --aspect-ratio-4x3: 4 / 3;
    --blur-sm: 4px;
    --blur-md: 8px;
    --blur-lg: 16px;
    --blur-xl: 20px;
    --max-lines-1: 1;
    --max-lines-2: 2;
    --max-lines-3: 3;
    --max-lines-5: 5;
    --gradient-angle-glass-blue: 144deg;
    --gradient-angle-brand-primary: 120deg;
    --gradient-angle-horizontal-left-to-right: 90deg;
    --gradient-angle-horizontal-right-to-left: 270deg;
    --gradient-angle-vertical-top-to-bottom: 180deg;
    --gradient-angle-vertical-bottom-to-top: 0deg;
    --ui-height-4xs: 0.5rem;
    --ui-height-3xs: 1rem;
    --ui-height-2xs: 1.25rem;
    --ui-height-xs: 1.5rem;
    --ui-height-sm: 2rem;
    --ui-height-md: 2.5rem;
    --ui-height-lg: 3rem;
    --ui-height-xl: 3.5rem;
    --ui-height-2xl: 4rem;
    --ui-height-touch-min: 2.75rem;
    --ui-block-size-4xs: var(--ui-height-4xs);
    --ui-block-size-3xs: var(--ui-height-3xs);
    --ui-block-size-2xs: var(--ui-height-2xs);
    --ui-block-size-xs: var(--ui-height-xs);
    --ui-block-size-sm: var(--ui-height-sm);
    --ui-block-size-md: var(--ui-height-md);
    --ui-block-size-lg: var(--ui-height-lg);
    --ui-block-size-xl: var(--ui-height-xl);
    --ui-block-size-2xl: var(--ui-height-2xl);
    --ui-inset-offset-2xs: var(--spacing-2xs);
    --ui-inset-offset-xs: var(--spacing-xs);
    --ui-inset-offset-sm: var(--spacing-sm);
    --ui-inset-offset-md: var(--spacing-md);
    --ui-inset-offset-lg: var(--spacing-lg);
    --ui-inset-block-start-default: var(--ui-inset-offset-sm);
    --ui-inset-inline-end-default: var(--ui-inset-offset-sm);
    --ui-pad-inline-micro: 0.5em;
    --ui-pad-block-micro: 0.25em;
    --ui-pad-inline-compact: 0.75em;
    --ui-pad-block-compact: 0.375em;
    --ui-pad-inline-regular: 1em;
    --ui-pad-block-regular: 0.5em;
    --ui-pad-inline-comfortable: 1.25em;
    --ui-pad-block-comfortable: 0.625em;
    --container-fill-default: 0.95;
    --container-cap-default: 999rem;
    --container-gutter-min: 1rem;
    --container-gutter-max: 2rem;
    --container-gutter-fluid: clamp(var(--container-gutter-min), 4vw, var(--container-gutter-max));
    --container-max-default-min: 64rem;
    --container-max-default-max: 76.25rem;
    --container-max-default-fluid: clamp(
      var(--container-max-default-min),
      calc(
        var(--container-max-default-min) +
          (var(--container-max-default-max) - var(--container-max-default-min)) *
          (100vw - var(--fluid-min-width)) * var(--fluid-range-inv)
      ),
      var(--container-max-default-max)
    );
    --container-max-narrow-min: 64rem;
    --container-max-narrow-max: 82rem;
    --container-max-narrow-fluid: clamp(
      var(--container-max-narrow-min),
      calc(
        var(--container-max-narrow-min) +
          (var(--container-max-narrow-max) - var(--container-max-narrow-min)) *
          (100vw - var(--fluid-min-width)) * var(--fluid-range-inv)
      ),
      var(--container-max-narrow-max)
    );
    --container-max-lead-min: 37.5rem;
    --container-max-lead-max: 45rem;
    --container-max-lead-fluid: clamp(
      var(--container-max-lead-min),
      calc(
        var(--container-max-lead-min) +
          (var(--container-max-lead-max) - var(--container-max-lead-min)) *
          (100vw - var(--fluid-min-width)) * var(--fluid-range-inv)
      ),
      var(--container-max-lead-max)
    );
    --container-max-wide-min: 76.25rem;
    --container-max-wide-max: 90rem;
    --container-max-wide-fluid: clamp(
      var(--container-max-wide-min),
      calc(
        var(--container-max-wide-min) +
          (var(--container-max-wide-max) - var(--container-max-wide-min)) *
          (100vw - var(--fluid-min-width)) * var(--fluid-range-inv)
      ),
      var(--container-max-wide-max)
    );
    --figure-max-inline-narrow: var(--container-max-narrow-fluid);
    --figure-max-inline-default: var(--container-max-default-fluid);
    --figure-max-inline-wide: var(--container-max-wide-fluid);
    --figure-min-inline: 20rem;
    --section-gap-min: 3rem;
    --section-gap-max: 8rem;
    --section-gap-fluid: clamp(var(--section-gap-min), calc(2rem + 4vw), var(--section-gap-max));
    --header-height: 72px;
    --header-offset: calc(var(--header-height) + env(safe-area-inset-top, 0px));
  }
  @media (min-width: 768px) {
    :root :root {
      --font-size-top-bg-96to160-fluid: 2rem;
    }
  }
}
@layer foundation {
  :root {
    --semantic-text: var(--color-gunmetal-teal);
    --semantic-text-subtle: var(--color-gray-500);
    --semantic-text-inverse: var(--color-white);
    --semantic-text-caption-lead: var(--color-teal-400);
    --semantic-text-accent: var(--color-teal-400);
    --semantic-bg-surface: var(--color-gray-100);
    --semantic-bg-muted: var(--color-gray-200);
    --semantic-bg-figure: var(--color-white);
    --semantic-bg-info-box: var(--color-gray-200);
    --semantic-bg-overlay-top-movie: var(--color-black-alpha-40);
    --semantic-bg-overlay-dialog: var(--color-black-alpha-70);
    --semantic-bg-accent: var(--color-teal-400);
    --semantic-border-color: var(--color-gunmetal-teal);
    --semantic-border-color-subtle: var(--color-gray-300);
    --semantic-border-color-neutral: var(--color-gray-400);
    --semantic-border-color-strong: var(--color-gray-500);
    --semantic-border-color-stronger: var(--color-gray-700);
    --semantic-border-color-strongest: var(--color-gray-900);
    --semantic-border-color-inverse: var(--color-white);
    --semantic-border-color-accent-teal: var(--color-teal-400);
    --semantic-border-color-accent-blue: var(--color-blue-500);
    --semantic-border-style-subtle: 1px solid var(--semantic-border-color-subtle);
    --semantic-border-style-neutral: 1px solid var(--semantic-border-color-neutral);
    --semantic-border-style-strong: 1px solid var(--semantic-border-color-strong);
    --semantic-border-style-stronger: 1px solid var(--semantic-border-color-stronger);
    --semantic-border-style-strongest: 1px solid var(--semantic-border-color-strongest);
    --semantic-border-style-inverse: 1px solid var(--semantic-border-color-inverse);
    --semantic-border-style-brand: 1px solid var(--semantic-border-color-accent-teal);
    --semantic-link-fg: var(--color-teal-300);
    --semantic-link-fg-visited: var(--color-teal-300);
    --semantic-link-fg-hover: var(--color-teal-500);
    --semantic-link-fg-active: var(--color-teal-500);
    --semantic-link-current-color: var(--color-teal-500);
    --semantic-focus-ring: var(--color-teal-500);
    --semantic-text-global-navi: var(--color-gray-800);
    --semantic-bg-global-nav: var(--gradient-glass-blue-alpha-30);
    --semantic-border-style-global-nav: 1px solid var(--gradient-glass-gray-alpha-20);
    --semantic-border-color-global-nav: var(--gradient-glass-gray-alpha-20);
    --semantic-shadow-global-nav: var(--shadow-default);
    --semantic-text-global-navi-sub-menu-hover: var(--color-teal-500);
    --semantic-bg-global-nav-sub-menu-hover: var(--gradient-blue-teal-vivid);
    --semantic-bg-hamburger-nav-ber: var(--color-teal-300);
    --semantic-bg-anchor-nav: var(--gradient-glass-blue-alpha-30);
    --semantic-border-color-anchor-nav: 1px solid var(--color-gray-500-alpha-50);
    --semantic-border-style-anchor-nav: var(--color-gray-500-alpha-50);
    --semantic-text-color-anchor-nav: var(--color-gunmetal-teal);
    --semantic-text-color-anchor-nav-icon: var(--color-teal-300);
    --semantic-bg-cta-card: var(--color-blue-900-alpha-20);
    --semantic-border-color-cta-card: 1px solid var(--gradient-glass-blue);
    --semantic-border-style-cta-card: 1px solid var(--semantic-border-color-cta-card);
    --semantic-button-child-page-link-bg: var(--color-gray-300);
    --semantic-button-child-page-link-bg--hover: var(--gradient-blue-teal-pale);
    --semantic-button-primary-bg: var(--color-teal-300);
    --semantic-button-primary-text: var(--color-white);
    --semantic-button-primary-text--hover: var(--color-teal-400);
    --semantic-button-primary-border--hover: var(--color-teal-400);
    --semantic-button-secondary-bg: var(--gradient-white-teal);
    --semantic-button-secondary-text: var(--color-white);
    --semantic-button-cta-bg: var(--gradient-blue-teal-vivid);
    --semantic-button-cta-text: var(--color-white);
    --semantic-bg-button-floating--default: var(--gradient-glass-blue-alpha-30);
    --semantic-bg-button-floating--hover: var(--gradient-glass-gray-alpha-20);
    --semantic-bg-button-floating--active: color-mix(in oklab, var(--color-gray-900) 88%, white);
    --semantic-text-button-floating: var(--color-teal-300);
    --semantic-bg-button-floating: var(--gradient-glass-blue-alpha-30);
    --semantic-border-style-button-floating: 1px solid var(--gradient-glass-gray-alpha-20);
    --semantic-border-color-button-floating: var(--gradient-glass-gray-alpha-20);
    --semantic-shadow-button-floating: var(--shadow-default);
    --semantic-bg-table-thead_th--default: var(--color-blue-400);
    --semantic-bg-table-tbody-th--default: var(--color-gray-300);
    --semantic-bg-table-tbody-td--default: var(--semantic-bg-surface);
    --semantic-bg-table-row--stripe: var(--color-gray-100);
    --semantic-bg-table-row--hover: var(--color-gray-300);
    --semantic-bg-table-emphasis-primary: var(--color-red-100);
    --semantic-bg-table-emphasis-primary-hover: var(--color-red-200);
    --semantic-bg-table-emphasis-secondary: var(--color-teal-100);
    --semantic-bg-table-emphasis-secondary-hover: var(--color-teal-200);
    --semantic-bg-table-emphasis-tertiary: var(--color-blue-100);
    --semantic-bg-table-emphasis-tertiary-hover: var(--color-blue-200);
    --semantic-bg-table-thead-th--scroll-fade: var(--color-blue-400-alpha-70);
    --semantic-bg-table-tbody-td--scroll-fade: var(--color-white-alpha-70);
    --semantic-color-table-scroll-hint: var(--color-white);
    --semantic-bg-table-scroll-hint: var(--color-black-alpha-70);
    --semantic-text-list-label: var(--color-teal-400);
    --semantic-bg-list: var(--color-gray-200);
    --semantic-color-annotation-list: var(--semantic-text-subtle);
    --semantic-bg-definition-term--default: var(--color-blue-400);
    --semantic-bg-definition-desc--default: var(--color-white);
    --semantic-bg-definition-term--accent-teal: var(--color-teal-400);
    --semantic-bg-definition-term--accent-gradient-blue: var(
      --gradient-blue-teal-pale
    );
    --semantic-bg-definition-desc--muted: var(--color-gray-100);
    --semantic-text-point-label: var(--color-teal-500);
    --semantic-text-point-icon-arrow: var(--color-teal-500);
    --semantic-text-label: var(--color-white);
    --semantic-bg-label-primary: var(--color-teal-400);
    --semantic-bg-label-secondary: var(--color-blue-400);
    --semantic-bg-label-gradient-teal: var(--gradient-blue-teal-vivid);
    --semantic-bg-label-primary--hover: var(--color-teal-300);
    --semantic-bg-label-secondary--hover: var(--color-blue-300);
    --semantic-bg-dialog-window-header: var(--color-teal-400);
    --semantic-text-dialog-window-header-title: var(--color-white);
    --semantic-bg-dialog-window-help-button-hover: var(--color-teal-400);
    --semantic-bg-legend: var(--color-gray-300);
    --semantic-legend-color-magenta: var(--color-legend-magenta);
    --semantic-legend-color-yellow: var(--color-legend-yellow);
    --semantic-legend-color-amber: var(--color-legend-amber);
    --semantic-legend-color-blue: var(--color-legend-blue);
    --semantic-legend-color-green: var(--color-legend-green);
    --semantic-legend-color-slate: var(--color-legend-slate);
    --semantic-legend-color-violet: var(--color-legend-violet);
    --semantic-icon-color--default: var(--color-teal-500);
    --semantic-icon-color--inverse: var(--color-white);
    --semantic-font-color-caption-title: var(--semantic-text-subtle);
    --semantic-font-color-caption-notion: var(--semantic-text-subtle);
    --semantic-font-color-notion: var(--semantic-text-subtle);
    --semantic-font-color-notion-footer: var(--semantic-text-inverse);
    --semantic-text-top-top-hero-bomb: var(--color-teal-300);
    --semantic-border-top-top-hero-bomb: var(--color-teal-300);
    --semantic-text-top-top-hero-bg-text: var(--color-teal-400);
    --semantic-text-top-precipitation: var(--color-blue-400);
    --semantic-text-top-key-technology: var(--color-teal-300);
    --semantic-text-top-axsia-zero-series: var(--color-teal-200);
    --semantic-text-top-driving-product-innovation: var(--color-teal-200);
    --semantic-bg-top-precipitation: var(--color-gray-200);
    --semantic-bg-top-key-technology: var(--color-teal-200);
    --semantic-bg-top-axsia-zero-series: var(--color-blue-200);
    --semantic-bg-top-driving-product-innovation: var(--color-blue-300);
  }
}
@layer foundation {
  :root {
    --semantic-radius-none: 0;
    --semantic-radius-xs: var(--radius-xs);
    --semantic-radius-sm: var(--radius-sm);
    --semantic-radius-md: var(--radius-md);
    --semantic-radius-lg: var(--radius-lg);
    --semantic-radius-xl: var(--radius-xl);
    --semantic-radius-2xl: var(--radius-2xl);
    --semantic-radius-full: var(--radius-full);
    --semantic-border-width-hairline: var(--border-width-hairline);
    --semantic-border-width-thin: var(--border-width-thin);
    --semantic-border-width-regular: var(--border-width-regular);
    --semantic-border-width-thick: var(--border-width-thick);
    --semantic-border-style-solid: solid;
    --semantic-border-style-dashed: dashed;
    --semantic-outline-width: var(--border-width-regular);
    --semantic-outline-offset: 2px;
    --semantic-outline-style: solid;
    --semantic-radius-button: var(--radius-full);
    --semantic-border-width-button: var(--border-width-thin);
    --semantic-border-style-button: solid;
    --semantic-radius-dialog-window: var(--semantic-radius-xl);
    --semantic-radius-card: var(--radius-xl);
    --semantic-border-width-card: var(--border-width-hairline);
    --semantic-border-style-card: solid;
    --semantic-radius-global-nav: var(--radius-full);
    --semantic-border-width-global-nav: var(--border-width-hairline);
    --semantic-radius-global-nav-off-canvas-bg: var(--radius-xl);
    --semantic-radius-table: 0;
    --semantic-border-width-table: var(--border-width-hairline);
    --semantic-border-style-table: solid;
    --semantic-list-indent: 1.25em;
    --semantic-list-nesting-step: 1em;
    --semantic-list-pad-block: var(--spacing-3xl);
    --semantic-list-pad-inline: var(--spacing-2xl);
    --semantic-list-pad-block--dense: var(--spacing-xl);
    --semantic-list-pad-inline--dense: var(--spacing-lg);
    --semantic-list-pad-block--loose: var(--spacing-5xl);
    --semantic-list-pad-inline--loose: var(--spacing-4xl);
    --semantic-list-item-gap: var(--spacing-lg);
    --semantic-radius-list: var(--semantic-radius-xl);
    --semantic-radius-label: var(--radius-md);
    --semantic-border-width-label: var(--border-width-thin);
    --semantic-border-style-label: solid;
    --semantic-pad-inline-label: var(--ui-pad-inline-regular);
    --semantic-pad-block-label: var(--ui-pad-block-regular);
    --semantic-border-radius-label--shape-square: var(--radius-sm);
  }
}
@layer foundation {
  :root {
    --fluid-amp-global: 1.3;
    --fluid-amp-body: var(--fluid-amp-global);
    --fluid-amp-heading: var(--fluid-amp-global);
    --fluid-amp-top-hero: var(--fluid-amp-global);
    --fluid-amp-caption: var(--fluid-amp-global);
    --fluid-amp-list: var(--fluid-amp-global);
    --fluid-amp-ui: 1;
    --fs-body-max: 1.25rem;
    --fs-h2-max: 2.25rem;
    --fs-h3-max: 2.75rem;
    --fs-h4-max: 1.75rem;
    --fs-h5-max: 1.5rem;
    --fs-hero-prim-max: 4.5rem;
    --fs-hero-sec-max: 3rem;
    --fs-caption-max: 1.125rem;
    --fs-notion-max: 1.0625rem;
    --fs-list-max: 1.5rem;
    --fs-list-label-max: 3rem;
    --semantic-font-size-body-fluid: var(--font-size-md-fluid);
    --semantic-font-size-heading-title-section-primary: var(--font-size-2xl);
    --semantic-font-size-heading-title-section-secondary: var(--font-size-3xl);
    --semantic-font-size-heading-title-section-tertiary: var(--font-size-xl);
    --semantic-font-size-heading-title-section-quaternary: var(--font-size-xl);
    --semantic-font-size-heading-title-section-en: var(--font-size-8xl);
    --semantic-font-size-heading-title-info-box-primary: var(--font-size-lg);
    --semantic-font-size-heading-title-section-primary-fluid: var(--font-size-2xl-fluid);
    --semantic-font-size-heading-title-section-secondary-fluid: var(
      --font-size-3xl-fluid
    );
    --semantic-font-size-heading-title-section-tertiary-fluid: var(--font-size-xl-fluid);
    --semantic-font-size-heading-title-section-quaternary-fluid: var(--font-size-xl-fluid);
    --semantic-font-size-heading-title-section-en-fluid: var(--font-size-8xl-fluid);
    --semantic-font-size-heading-title-info-box-primary-fluid: var(--font-size-lg-fluid);
    --semantic-line-height-heading-title-section-primary: var(--line-height-sm);
    --semantic-line-height-heading-title-section-en: var(--line-height-3xs);
    --semantic-font-size-weight-title-section-en: var(--font-weight-thin);
    --semantic-font-size-copy: var(--font-size-3xl);
    --semantic-font-size-copy-fluid: var(--font-size-2xl-fluid);
    --semantic-font-size-footer-fluid: var(--font-size-xs-fluid);
    --semantic-font-size-footer-one-column-fluid: var(
      --font-size-sm-fluid
    );
    --semantic-font-size-footer-label-fluid: var(--font-size-xs-fluid);
    --semantic-line-height-footer-fluid: var(--line-height-md);
    --semantic-font-size-page-title-top-hero-main-copy: var(--font-size-2xl);
    --semantic-font-size-top-top-hero-bg-fluid: var(--font-size-top-bg-96to160-fluid);
    --semantic-font-size-page-title-top-hero-fluid: var(--font-size-64to187-fluid);
    --semantic-font-size-page-title-top-hero-main-copy-fluid: var(--font-size-24to64-fluid);
    --semantic-letter-spacing-page-title-top-hero: var(--spacing-neg-sm);
    --semantic-font-weight-page-title-top-hero-main-copy: var(--font-weight-regular);
    --semantic-font-size-page-title-hero-primary: var(--font-size-6xl);
    --semantic-font-size-page-title-hero-secondary: var(--font-size-3xl);
    --semantic-font-size-page-title-sub-hero-primary-fluid: var(--font-size-24to32-fluid);
    --semantic-font-size-page-title-sub-hero-main-copy-fluid: var(--font-size-20to24-fluid);
    --semantic-font-size-caption-title: var(--font-size-md);
    --semantic-font-size-caption-notion: var(--font-size-sm);
    --semantic-font-size-notion: var(--font-size-sm);
    --semantic-font-size-caption-fluid: var(--font-size-md-fluid);
    --semantic-font-size-caption-notion-fluid: var(--font-size-sm-fluid);
    --semantic-font-size-notion-fluid: var(--font-size-sm-fluid);
    --semantic-font-size-notion-table-fluid: var(--font-size-xs);
    --semantic-font-size-btn: var(--font-size-md);
    --semantic-font-size-btn-label: var(--font-size-sm);
    --semantic-font-size-btn-icon: var(--font-size-md);
    --semantic-font-size-btn-icon--lg: var(--font-size-3xl);
    --semantic-font-size-btn-icon--target-blank: var(--font-size-sm);
    --semantic-font-size-button-floating-icon: var(--font-size-md);
    --semantic-font-size-button-back-to-top-icon-fluid: var(--font-size-ui-32to36-fluid);
    --semantic-line-height-btn: var(--line-height-2xs);
    --semantic-font-weight-icon: var(--font-weight-thin);
    --semantic-font-size-global-nav: var(--font-size-xs);
    --semantic-font-size-global-nav-cta: var(--font-size-sm);
    --semantic-font-size-table-head: var(--font-size-sm);
    --semantic-font-size-table-cell: var(--font-size-md);
    --semantic-font-size-label-point: var(--font-size-md);
    --semantic-font-size-anchor-nav: var(--font-size-sm);
    --semantic-font-size-anchor-nav-icon: var(--font-size-3xl);
    --semantic-font-size-anchor-nav-fluid: var(--font-size-ui-14to16-fluid);
    --semantic-font-size-anchor-nav-icon-fluid: var(--font-size-ui-32to36-fluid);
    --semantic-font-size-list: var(--font-size-xl);
    --semantic-font-size-list-group-term-deco: var(--font-size-md);
    --semantic-font-size-list-group-desc-deco: var(--font-size-md);
    --semantic-font-family-list-label: var(--font-family-alumni-sans-pinstripe);
    --semantic-font-size-list-label: var(--font-size-4xl);
    --semantic-font-weight-list-label: var(--font-weight-bold);
    --semantic-font-style-list-label: var(--font-style-italic);
    --semantic-font-weight-list: var(--font-weight-regular);
    --semantic-font-size-list-fluid: var(--font-size-xl-fluid);
    --semantic-font-size-list-group-term-deco-fluid: var(--font-size-md-fluid);
    --semantic-font-size-list-group-desc-deco-fluid: var(--font-size-md-fluid);
    --semantic-font-size-list-label-fluid: var(--font-size-4xl-fluid);
    --semantic-line-height-list-content-title: var(--line-height-md);
    --semantic-font-weight-list: var(--font-weight-regular);
    --semantic-font-size-list-annotation: var(--font-size-xs);
    --semantic-font-size-list-annotation-fluid: var(--font-size-xs-fluid);
    --semantic-font-family-label-alumni-sans-pinstripe: var(--font-family-alumni-sans-pinstripe);
    --semantic-font-family-label-barlow: var(--font-family-barlow);
    --semantic-font-style-label-text-italic: var(--font-style-italic);
    --semantic-letter-spacing-label-text: var(--letter-spacing-2xl);
    --semantic-font-weight-label-regular: var(--font-weight-regular);
    --semantic-font-weight-label-bold: var(--font-weight-bold);
    --semantic-font-size-label-sm: var(--font-size-sm);
    --semantic-font-size-label-md: var(--font-size-md);
    --semantic-font-size-label-lg: var(--font-size-lg);
    --semantic-font-size-label-xl: var(--font-size-xl);
    --semantic-font-size-label-3xl: var(--font-size-3xl);
    --semantic-font-size-label-4xl: var(--font-size-4xl);
    --semantic-line-height-label: var(--line-height-2xs);
    --semantic-height-label-sm: var(--ui-height-sm);
    --semantic-height-label-md: var(--ui-height-md);
    --semantic-font-size-label-icon: var(--font-size-xs);
    --semantic-font-size-label-sm-fluid: var(--font-size-xs-fluid);
    --semantic-font-size-label-md-fluid: var(--font-size-ui-14to16-fluid);
    --semantic-font-size-label-lg-fluid: var(--font-size-lg-fluid);
    --semantic-font-size-label-xl-fluid: var(--font-size-xl-fluid);
    --semantic-font-size-label-2xl-fluid: var(--font-size-2xl-fluid);
    --semantic-font-size-label-3xl-fluid: var(--font-size-3xl-fluid);
    --semantic-font-size-label-4xl-fluid: var(--font-size-4xl-fluid);
    --semantic-font-size-label-icon-fluid: var(--font-size-xs-fluid);
    --semantic-font-size-dialog-window-icon-help: var(--font-size-2xl);
    --semantic-font-size-dialog-window: var(--font-size-sm-fluid, var(--font-size-sm));
    --semantic-font-size-dialog-window-icon-help-fluid: var(
      --font-size-2xl-fluid,
      var(--font-size-2xl)
    );
    --semantic-font-size-button-dialog-window-close-fluid: var(
      --font-size-ui-24to28-fluid
    );
    --semantic-line-height-dialog-window: var(--line-height-md);
    --semantic-font-size-legend: var(--font-size-sm);
    --semantic-font-size-legend-fluid: var(--font-size-xs-fluid);
    --semantic-font-family-body: var(--font-family-noto-sans-jp);
    --semantic-font-family-heading-en: var(--font-family-alumni-sans-pinstripe);
    --semantic-font-family-hero-bg-text: var(--font-family-alumni-sans-pinstripe);
    --semantic-font-family-product-name: var(--font-family-barlow);
    --semantic-font-family-copy: var(--font-family-alumni-sans-pinstripe);
    --semantic-font-family-icon: var(--font-icon);
  }
}
/* ========================================================
   Layout
   ======================================================== */
@layer layout {}
@layer layout {
  .c-callout-box-block + .c-callout-box-block {
    -webkit-margin-before: var(--spacing-3xl);
            margin-block-start: var(--spacing-3xl);
  }
}
/* ===================================================================
   Layout: .l-card-block
   =================================================================== */
@layer layout {
  .l-card-block__inner {
    display: grid;
    grid-template-columns: repeat(var(--layout-cards-cols), 1fr);
    gap: var(--layout-cards-gap);
  }
}
@layer layout {
  .l-chart-container {
    width: 100%;
    height: 400px;
    margin: 2rem 0;
  }
}
/* ===================================================================
   Layout: .l-column-block
   =================================================================== */
@layer layout {
  .l-column-block__inner {
    display: grid;
    grid-template-columns: repeat(var(--layout-cards-cols), 1fr);
    gap: var(--layout-columns-gap);
  }
}
@layer layout {
  .l-comparison-block {
    max-width: 96vw;
    margin: 0 auto;
    container-name: comparison;
    container-type: inline-size;
  }
  .l-comparison-block:not(:last-child) {
    -webkit-margin-after: var(--spacing-4xl);
            margin-block-end: var(--spacing-4xl);
  }
  .l-comparison-block > *:not(:last-child) {
    -webkit-margin-after: var(--spacing-lg);
            margin-block-end: var(--spacing-lg);
  }
  .l-comparison-block--2col {
    display: grid;
    grid-template-columns: 1fr auto 1fr; /* 左画像・矢印・右画像 */
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    justify-items: center;
    margin: var(--spacing-0, 0);
  }
}
/* Layout: Container（padding 方式・シンプル版） : layout/_container.scss */
@layer layout {
  .l-container {
    --container-pad-inline: clamp(var(--spacing-md), 3cqi, var(--spacing-2xl));
    --container-fill: var(--container-fill-default);
    --container-cap: var(--container-cap-default);
    --container-max-current: var(--container-max-default-fluid);
    container-type: inline-size;
    inline-size: min(100% * var(--container-fill), var(--container-cap));
    margin-inline: auto;
    padding-inline: var(--container-pad-inline);
  }
  .l-container--narrow {
    --container-cap: var(--container-max-narrow-fluid);
    --container-fill: 1;
    --container-pad-inline: clamp(var(--spacing-sm), 2.5cqi, var(--spacing-xl));
  }
  .l-container--medium {
    --container-cap: var(--container-max-default-fluid);
    --container-fill: 1;
    --container-pad-inline: clamp(var(--spacing-md), 3cqi, var(--spacing-2xl));
  }
  .l-container--wide {
    --container-cap: var(--container-max-wide-fluid);
    --container-fill: 1;
    --container-pad-inline: clamp(var(--spacing-lg), 4cqi, var(--spacing-3xl));
  }
  #process-flow.l-container,
  #shape.l-container {
    overflow: visible;
  }
  .l-container--full {
    --container-fill: 1;
    --container-cap: 999rem;
  }
  @container cq-sub-page-main (max-width: 40rem) {
    .c-main-sub-page > .l-container {
      --container-pad-inline: clamp(0rem, 0.5cqi, var(--spacing-2xs));
      padding-inline: var(--container-pad-inline);
    }
  }
}
/* ===================================================================
   Layout: _header-area.scss
   =================================================================== */
:root {
  scroll-padding-top: var(--header-offset, 72px);
}

@layer layout {
  .l-header-area,
  .l-header__inner {
    overflow-anchor: none;
  }
  .l-header-area {
    position: sticky;
    top: 0;
    z-index: 1000;
  }
  .l-header__inner {
    z-index: 1000;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 2rem;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    width: 100%;
    container-name: header;
    container-type: inline-size;
  }
  .l-header__logo {
    margin: var(--spacing-0, 0);
    padding-left: 2rem;
  }
  .l-header__logo a {
    display: block;
    width: 160px;
    height: 32px;
  }
  .l-header__nav {
    margin-right: 2rem;
  }
  .l-global-nav__sub-panel-shell {
    position: fixed;
    top: var(--header-height, 64px);
    right: 10%;
    z-index: 1200;
  }
  .is-header-hidden:not(.is-nav-open) .l-header-area {
    pointer-events: none;
  }
  .is-nav-open .l-header-area {
    pointer-events: auto;
  }
  @media (max-width: 63.9375rem) {
    .l-header-area,
    .c-header {
      pointer-events: none;
    }
    .l-header__logo,
    .c-hamburger,
    .c-global-nav-shell {
      pointer-events: auto;
    }
    .c-hamburger {
      position: relative;
      z-index: 1500;
    }
  }
  /* インデックス：デスクトップに戻ったら通常どおり */
  @media (min-width: 64rem) {
    .l-header-area,
    .c-header {
      pointer-events: auto;
    }
  }
  @media (max-width: 63.9375rem) {
    .l-header-area {
      position: fixed;
      inset: 0 0 auto 0;
      z-index: 1200;
      width: 100%;
      block-size: var(--header-height);
    }
    :root {
      scroll-padding-top: calc(var(--header-height, 72px) + env(safe-area-inset-top, 0px));
    }
  }
}
@layer layout {}
@layer layout {
  .l-label-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: var(--spacing-sm);
  }
}
@layer layout {
  .l-legend-block {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-margin-after: var(--spacing-xl);
            margin-block-end: var(--spacing-xl);
  }
}
@layer layout {
  .l-concluding-remarks__heading-secondary {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 10px;
  }
}
@layer layout {
  .l-section-head {
    display: grid;
  }
  .l-section-head:not(:last-child) {
    -webkit-margin-after: var(--spacing-4xl);
            margin-block-end: var(--spacing-4xl);
  }
}
@layer layout {
  .l-section-lead {
    display: block;
    max-width: var(--container-max-lead-fluid, 37.5rem);
    -webkit-margin-end: 0;
            margin-inline-end: 0;
    -webkit-margin-start: auto;
            margin-inline-start: auto;
  }
  .l-section-lead:not(:last-child) {
    -webkit-margin-after: var(--spacing-4xl);
            margin-block-end: var(--spacing-4xl);
  }
  .l-section-lead > .c-lead-sentence:last-child {
    -webkit-margin-after: 0;
            margin-block-end: 0;
  }
}
@layer layout {
  .l-stack {
    display: grid;
    row-gap: var(--spacing-2xl);
  }
}
/* ========================================================
   Components
   ======================================================== */
@layer components {
  .c-back-to-top {
    position: fixed;
    right: var(--spacing-xl, 2rem);
    bottom: var(--spacing-2xl, 2rem);
    z-index: var(--z-fixed-ui, 1000);
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: clamp(var(--ui-height-touch-min), 2em, 3.75em);
    height: clamp(var(--ui-height-touch-min), 2em, 3.75em);
    color: var(--semantic-text-button-floating);
    font-size: var(--semantic-font-size-button-back-to-top-icon-fluid);
    line-height: 1;
    background-color: var(--semantic-bg-button-floating--default);
    border: var(--semantic-border-style-button-floating);
    border-radius: var(--radius-full);
    opacity: 0;
    -webkit-box-shadow: var(--semantic-shadow-button-floating);
    box-shadow: var(--semantic-shadow-button-floating);
    mix-blend-mode: multiply;
    backdrop-filter: blur(var(--blur-xl));
    -webkit-transition: var(--transition-default);
    transition: var(--transition-default);
    pointer-events: none;
    cursor: pointer;
  }
  .c-back-to-top:hover {
    background-color: var(--semantic-bg-button-floating--hover);
    -webkit-box-shadow: 0 12px 24px rgba(0, 0, 0, 0.25);
            box-shadow: 0 12px 24px rgba(0, 0, 0, 0.25);
  }
  .c-back-to-top:focus-visible {
    outline: 2px solid var(--color-teal-400, #2dd4bf);
    outline-offset: 2px;
  }
  .c-back-to-top.is-visible {
    opacity: 1;
    pointer-events: auto;
  }
}
@layer components {
  .c-button-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    row-gap: var(--spacing-md);
    -webkit-column-gap: var(--spacing-md);
       -moz-column-gap: var(--spacing-md);
            column-gap: var(--spacing-md);
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-margin-before: var(--spacing-3xl);
            margin-block-start: var(--spacing-3xl);
  }
  .c-button-list:not(:last-child) {
    -webkit-margin-after: var(--spacing-4xl);
            margin-block-end: var(--spacing-4xl);
  }
  .c-button-item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .c-button {
    position: relative;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    gap: var(--spacing-md);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    min-width: 176px;
    padding: var(--spacing-md) var(--spacing-2xl) var(--spacing-md) var(--spacing-lg);
    color: var(--semantic-button-primary-text);
    font-size: var(--semantic-font-size-btn);
    overflow-wrap: break-word;
    text-decoration: none;
    background: var(--semantic-button-primary-bg);
    border: var(--semantic-border-style-brand);
    border-radius: var(--radius-full);
    -webkit-transition: var(--transition-default);
    transition: var(--transition-default);
  }
  .c-button::after {
    position: absolute;
    color: var(--semantic-button-primary-text);
    font-family: var(--semantic-font-family-icon);
    font-size: var(--semantic-font-size-btn-icon--lg);
    font-weight: var(--semantic-font-weight-icon);
    line-height: var(--line-height-2xs);
    -webkit-transform: translate(0, -50%);
            transform: translate(0, -50%);
    -webkit-transition: color var(--transition-default), -webkit-transform var(--transition-default);
    transition: color var(--transition-default), -webkit-transform var(--transition-default);
    transition: transform var(--transition-default), color var(--transition-default);
    transition: transform var(--transition-default), color var(--transition-default), -webkit-transform var(--transition-default);
    content: "chevron_right";
    font-variation-settings: "FILL" 0, "wght" 100, "GRAD" 0, "opsz" 32;
    inset-block-start: 50%;
    inset-inline-end: var(--spacing-sm);
  }
  .c-button:hover::after, .c-button:focus-visible::after {
    -webkit-transform: translate(6px, -50%);
            transform: translate(6px, -50%);
  }
  .c-button[target=_blank] .c-button__label::after, .c-button[href^="mailto:"] .c-button__label::before {
    display: inline-block;
    font-family: var(--semantic-font-family-icon);
    font-weight: var(--semantic-font-weight-icon);
    line-height: var(--line-height-2xs);
    -webkit-transition: color var(--transition-default);
    transition: color var(--transition-default);
    -webkit-margin-start: var(--spacing-xs);
            margin-inline-start: var(--spacing-xs);
    vertical-align: -0.125em;
  }
  .c-button[href^="mailto:"] .c-button__label::before {
    -webkit-margin-end: var(--spacing-md);
            margin-inline-end: var(--spacing-md);
  }
  .c-button[target=_blank] .c-button__label::after {
    font-size: var(--semantic-font-size-btn-icon);
    content: "open_in_new";
    font-variation-settings: "FILL" 0, "wght" 100, "GRAD" 0, "opsz" 16;
    vertical-align: middle;
  }
  .c-button[href^="mailto:"] {
    -webkit-padding-start: calc(var(--spacing-lg) + var(--semantic-font-size-btn-icon) + var(--spacing-sm));
            padding-inline-start: calc(var(--spacing-lg) + var(--semantic-font-size-btn-icon) + var(--spacing-sm));
  }
  .c-button[href^="mailto:"]::before {
    position: absolute;
    font-family: var(--semantic-font-family-icon);
    font-size: var(--semantic-font-size-btn-icon);
    font-weight: var(--semantic-font-weight-icon);
    line-height: var(--line-height-2xs);
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    content: "mail";
    font-variation-settings: "FILL" 0, "wght" 100, "GRAD" 0, "opsz" 32;
    inset-block-start: 50%;
    inset-inline-start: var(--spacing-lg);
  }
  .c-button[href^="mailto:"]::after {
    content: none;
  }
  .c-button--primary {
    color: var(--semantic-button-primary-text);
    background: var(--semantic-button-primary-bg);
  }
  .c-button--primary:hover, .c-button--primary:focus-visible {
    color: var(--semantic-button-primary-text--hover);
    background: transparent;
    -webkit-box-shadow: inset 0 0 0 2px var(--semantic-button-primary-border--hover);
            box-shadow: inset 0 0 0 2px var(--semantic-button-primary-border--hover);
  }
  .c-button--primary:hover::after, .c-button--primary:focus-visible::after {
    color: var(--semantic-button-primary-text--hover);
  }
  .c-button--cta {
    color: var(--semantic-button-cta-text);
    background: var(--semantic-button-cta-bg);
    background-position: 1% 50%;
    background-size: 200% auto;
  }
  .c-button--cta:hover {
    background-position: 99% 50%;
    opacity: var(--opacity-100);
  }
  .c-button-note {
    font-size: var(--font-size-sm);
  }
  .c-button-note--cta {
    color: var(--semantic-text-inverse);
  }
}
@layer components {
  .c-callout-box {
    padding: var(--spacing-4xl) var(--spacing-3xl);
    text-align: justify;
    background-color: var(--semantic-bg-info-box);
    border-radius: var(--radius-xl);
  }
  .c-callout-box:not(:last-child) {
    margin-block: var(--spacing-0) var(--spacing-4xl);
  }
  .c-callout-box__lead {
    font-size: var(--semantic-font-size-body-fluid);
    -webkit-margin-after: var(--spacing-2xl);
            margin-block-end: var(--spacing-2xl);
  }
  .c-callout-box__title {
    margin: 0 0 var(--spacing-3xl) 0;
    font-size: var(--font-size-xl);
    font-weight: bold;
    text-align: center;
  }
  .c-callout-box__title-bar::after {
    display: block;
    width: 80px;
    height: 1px;
    margin: auto;
    margin-top: var(--spacing-md);
    background-color: var(--semantic-bg-accent);
    content: "";
  }
  .c-callout-box__text {
    margin: 0 0 var(--spacing-3xl) 0;
    font-size: var(--semantic-font-size-body-fluid);
    text-align: center;
  }
  @container (max-width: 40rem) {
    .c-callout-box {
      padding: var(--spacing-xl) var(--spacing-sm);
    }
    .c-callout-box__text {
      text-align: justify;
    }
  }
  @container (min-width: 72rem) {
    .c-callout-box {
      padding: var(--spacing-2xl) var(--spacing-xl);
    }
  }
  @container (min-width: 72rem) {}
}
@layer components {
  .c-caption {
    font-size: var(--semantic-font-size-caption-title);
    font-weight: var(--font-weight-bold);
    text-align: center;
  }
  .c-caption--table {
    margin-bottom: var(--spacing-md);
  }
  .c-caption--table-disclaimer {
    font-weight: var(--font-weight-medium);
    text-align: left;
    caption-side: bottom;
  }
  .c-caption--figure {
    -webkit-margin-before: var(--spacing-md);
            margin-block-start: var(--spacing-md);
  }
  .c-caption-note {
    display: block;
    color: var(--semantic-text-subtle);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-regular);
  }
}
/* ===================================================================
   Component: .c-card
   汎用カード（背景薄色・角丸）
   =================================================================== */
@layer components {
  .c-card {
    padding: 2rem;
    color: var(--semantic-text);
    line-height: 1.7;
    background: var(--semantic-bg-muted);
    border-radius: var(--radius-lg, 1rem);
    -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
    -webkit-transition: -webkit-transform 0.2s;
    transition: -webkit-transform 0.2s;
    transition: transform 0.2s;
    transition: transform 0.2s, -webkit-transform 0.2s;
  }
  .c-card:hover {
    -webkit-transform: translateY(-2px);
            transform: translateY(-2px);
  }
  .c-card__title {
    font-family: var(--font-family-alumni-sans-pinstripe);
    font-size: 1.25rem;
    -webkit-margin-after: 1rem;
            margin-block-end: 1rem;
  }
  .c-card__text {
    font-size: 1rem;
    -webkit-margin-after: 1rem;
            margin-block-end: 1rem;
  }
}
@property --p {
  inherits: false;
  initial-value: 0turn;
  syntax: "<angle>";
}
@layer components {
  .c-modal {
    max-width: var(--container-max-narrow-fluid, 37.5rem);
    margin: auto;
    padding: var(--spacing-0, 0);
    font-size: var(--semantic-font-size-dialog-window);
    border: none;
    border-radius: var(--semantic-radius-dialog-window);
  }
  .c-modal::-ms-backdrop {
    background: transparent;
  }
  .c-modal::backdrop {
    background: transparent;
  }
  .c-modal__inner {
    display: grid;
    grid-template-rows: auto 1fr auto;
    gap: var(--spacing-md);
    block-size: 100%;
    min-block-size: 0;
  }
  .c-modal__header {
    position: sticky;
    top: 0;
    z-index: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding: var(--spacing-lg);
    background-color: var(--semantic-bg-dialog-window-header);
  }
  .c-modal__header form {
    position: absolute;
    top: 50%;
    margin: 0;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    inset-inline-end: var(--spacing-lg);
  }
  .c-modal__footer {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding: var(--spacing-lg);
  }
  .c-modal__body {
    padding-inline: var(--spacing-lg);
  }
  .c-modal__body .c-modal__section-title {
    display: block;
    text-align: center;
  }
  .c-modal__body .c-modal__section-title span::after {
    display: block;
    width: 80px;
    height: 1px;
    margin: 0 auto;
    margin-top: 16px;
    background-color: var(--semantic-bg-accent);
    content: "";
  }
  .c-modal__title {
    margin: var(--spacing-0, 0);
    color: var(--semantic-text-dialog-window-header-title);
    font-size: var(--font-size-md);
    text-align: center;
  }
  .c-modal__close {
    padding: 0.25rem;
    background: transparent;
    border: 0;
    cursor: pointer;
    block-size: 2rem;
    inline-size: 2rem;
  }
  .c-modal__close:focus-visible {
    outline: 2px solid var(--color-teal-400);
    outline-offset: 2px;
  }
  .c-modal-backdrop {
    position: fixed;
    inset: 0;
    background: var(--semantic-bg-overlay-dialog);
    opacity: 0;
    -webkit-transition: opacity 0.25s ease;
    transition: opacity 0.25s ease;
    pointer-events: none;
  }
  .c-modal-backdrop.is-visible {
    opacity: 1;
  }
  .c-chart-help-block {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    -webkit-margin-after: var(--spacing-sm);
            margin-block-end: var(--spacing-sm);
  }
  .c-help-button {
    --pad-x: var(--spacing-md);
    --icon-size: var(--semantic-font-size-dialog-window-icon-help-fluid);
    --gap-icon: var(--spacing-xs);
    position: relative;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    gap: var(--spacing-xs);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    height: var(--ui-height-sm);
    font-size: var(--font-size-sm);
    line-height: var(--semantic-line-height-btn);
    background: var(--semantic-bg-button, transparent);
    border: none;
    border-radius: var(--radius-full);
    -webkit-transition: var(--transition-default);
    transition: var(--transition-default);
    cursor: pointer;
    -webkit-padding-end: var(--pad-x);
            padding-inline-end: var(--pad-x);
    -webkit-padding-start: calc(var(--pad-x) + var(--icon-size) + var(--gap-icon));
            padding-inline-start: calc(var(--pad-x) + var(--icon-size) + var(--gap-icon));
  }
  .c-help-button::before {
    position: absolute;
    color: var(--semantic-icon-color--default);
    font-family: var(--semantic-font-family-icon, "Material Symbols Outlined");
    font-size: var(--semantic-font-size-dialog-window-icon-help-fluid);
    font-weight: var(--semantic-font-weight-icon);
    content: "help";
    font-variation-settings: "FILL" 0, "wght" 100, "GRAD" 0, "opsz" 24;
    inset-inline-start: var(--pad-x);
  }
  .c-help-button::after {
    --ring: 2px;
    --p: 0turn;
    --start-base: 315deg;
    --start-tweak: -27deg;
    position: absolute;
    inset: 0;
    padding: var(--ring);
    background: conic-gradient(from calc(var(--start-base) + var(--start-tweak)), currentColor var(--p), transparent 0) border-box;
    border-radius: inherit;
    opacity: 0;
    transition: opacity 0.25s ease-out, --p 0.45s ease-out;
    pointer-events: none;
    content: "";
    -webkit-mask: -webkit-gradient(linear, left top, left bottom, color-stop(0, #000)) content-box, -webkit-gradient(linear, left top, left bottom, color-stop(0, #000));
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask: -webkit-gradient(linear, left top, left bottom, color-stop(0, #000)) content-box, -webkit-gradient(linear, left top, left bottom, color-stop(0, #000));
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
  }
  .c-help-button:hover, .c-help-button:focus-visible {
    color: var(--semantic-bg-dialog-window-help-button-hover);
    background: transparent;
  }
  .c-help-button:hover::after, .c-help-button:focus-visible::after {
    --p: 1turn;
    opacity: 1;
  }
  .c-button {
    border: var(--semantic-border-style-brand);
  }
  .c-modal.is-animating-in {
    -webkit-animation: modal-slide-in 0.28s ease-out forwards;
            animation: modal-slide-in 0.28s ease-out forwards;
  }
  .c-modal.is-animating-out {
    -webkit-animation: modal-slide-out 0.22s ease-in forwards;
            animation: modal-slide-out 0.22s ease-in forwards;
  }
  .c-modal.is-animating-in::-ms-backdrop {
    animation: backdrop-fade-in 0.28s ease-out forwards;
  }
  .c-modal.is-animating-in::backdrop {
    -webkit-animation: backdrop-fade-in 0.28s ease-out forwards;
            animation: backdrop-fade-in 0.28s ease-out forwards;
  }
  .c-modal.is-animating-out::-ms-backdrop {
    animation: backdrop-fade-out 0.22s ease-in forwards;
  }
  .c-modal.is-animating-out::backdrop {
    -webkit-animation: backdrop-fade-out 0.22s ease-in forwards;
            animation: backdrop-fade-out 0.22s ease-in forwards;
  }
  @container (min-width: 180px) {
    .c-help-button {
      --start-tweak: -4deg;
    }
  }
  @container (max-width: 179px) and (min-width: 150px) {
    .c-help-button {
      --start-tweak: -2deg;
    }
  }
  @container (max-width: 149px) {
    .c-help-button {
      --start-tweak: 0deg;
    }
  }
  @-webkit-keyframes modal-slide-in {
    from {
      opacity: 0;
      -webkit-transform: translateY(-1.5rem);
              transform: translateY(-1.5rem);
    }
    to {
      opacity: 1;
      -webkit-transform: translateY(0);
              transform: translateY(0);
    }
  }
  @keyframes modal-slide-in {
    from {
      opacity: 0;
      -webkit-transform: translateY(-1.5rem);
              transform: translateY(-1.5rem);
    }
    to {
      opacity: 1;
      -webkit-transform: translateY(0);
              transform: translateY(0);
    }
  }
  @-webkit-keyframes modal-slide-out {
    from {
      opacity: 1;
      -webkit-transform: translateY(0);
              transform: translateY(0);
    }
    to {
      opacity: 0;
      -webkit-transform: translateY(-1.5rem);
              transform: translateY(-1.5rem);
    }
  }
  @keyframes modal-slide-out {
    from {
      opacity: 1;
      -webkit-transform: translateY(0);
              transform: translateY(0);
    }
    to {
      opacity: 0;
      -webkit-transform: translateY(-1.5rem);
              transform: translateY(-1.5rem);
    }
  }
  @-webkit-keyframes backdrop-fade-in {
    from {
      background: rgba(0, 0, 0, 0);
    }
    to {
      background: rgba(0, 0, 0, 0.4);
    }
  }
  @keyframes backdrop-fade-in {
    from {
      background: rgba(0, 0, 0, 0);
    }
    to {
      background: rgba(0, 0, 0, 0.4);
    }
  }
  @-webkit-keyframes backdrop-fade-out {
    from {
      background: rgba(0, 0, 0, 0.4);
    }
    to {
      background: rgba(0, 0, 0, 0);
    }
  }
  @keyframes backdrop-fade-out {
    from {
      background: rgba(0, 0, 0, 0.4);
    }
    to {
      background: rgba(0, 0, 0, 0);
    }
  }
}
@layer utilities {
  @media (prefers-reduced-motion: reduce) {
    .c-modal::-ms-backdrop {
      animation: none !important;
    }
    .c-modal,
    .c-modal::backdrop {
      -webkit-animation: none !important;
              animation: none !important;
    }
  }
}
@layer components {
  .c-chart-area {
    position: relative;
  }
  .c-chart img,
  .c-corrosion-images img {
    max-width: 900px;
  }
  .c-chart:not(:last-child) {
    margin-bottom: var(--spacing-2xl);
  }
  .highcharts-exporting-group {
    position: absolute;
    top: 0;
    right: 20px;
  }
  @container (max-width: 40rem) {
    .c-chart {
      margin-inline: var(--spacing-0) var(--spacing-0);
    }
    .p-corrosion__immersion-test-data {
      padding: var(--spacing-0) !important;
    }
  }
}
@layer components {
  .c-child-page-link-block a {
    color: var(--semantic-text);
  }
  .c-child-page-link__list {
    margin: var(--spacing-0, 0);
    padding: 0 var(--spacing-xl);
    list-style: none;
  }
  .c-child-page-link__item {
    border-bottom: solid 1px var(--semantic-bg-muted);
  }
  .c-child-page-link__link {
    position: relative;
    z-index: 0;
    display: grid;
    display: inline-block;
    grid-template-columns: auto 1fr auto;
    grid-template-areas: "number title en";
    width: 100%;
    padding: var(--spacing-xl);
    overflow: hidden;
    text-decoration: none;
    border-radius: var(--radius-full);
    -webkit-transition: border-radius 0.3s ease, opacity 0.3s ease;
    transition: border-radius 0.3s ease, opacity 0.3s ease;
  }
  .c-child-page-link__link::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--semantic-button-child-page-link-bg);
    opacity: 0;
    -webkit-transition: opacity 0.3s ease;
    transition: opacity 0.3s ease;
    content: "";
  }
  .c-child-page-link__link::after {
    position: absolute;
    top: 50%;
    right: 5%;
    display: inline-block;
    color: var(--semantic-text-accent);
    font-family: var(--semantic-font-family-icon);
    font-size: var(--font-size-3xl);
    font-weight: bold;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    content: "chevron_right";
    font-variation-settings: "FILL" 0, "wght" 100, "GRAD" 0, "opsz" 24;
    vertical-align: middle;
  }
  .c-child-page-link__link:hover {
    border-radius: var(--radius-full);
  }
  .c-child-page-link__link:hover::before {
    background: var(--semantic-button-child-page-link-bg--hover);
    opacity: 1;
  }
  .c-child-page-link__link:hover .c-child-page-link__title,
  .c-child-page-link__link:hover .c-number-label,
  .c-child-page-link__link:hover .c-deco-label--child-page-link {
    color: var(--semantic-text-inverse);
  }
  .c-child-page-link__link:hover::after {
    color: var(--semantic-text-inverse);
  }
  .c-child-page-link__link .c-number-label {
    align-self: start;
    justify-self: start;
    grid-area: number;
  }
  .c-child-page-link__link .c-deco-label--child-page-link {
    color: var(--semantic-text-accent);
    font-family: var(--font-family-barlow);
    letter-spacing: var(--letter-spacing-lg);
    grid-area: en;
  }
  .c-child-page-link__link .c-child-page-link__title {
    align-self: center;
    justify-self: start;
    font-size: var(--font-size-2xl);
    grid-area: title;
  }
}
@layer components {
  .c-column__inner {
    padding: var(--spacing-2xl) var(--spacing-xl);
  }
  .c-column-list--bg-muted {
    background-color: var(--semantic-bg-muted);
    border-radius: var(--radius-xl);
    padding-block: var(--spacing-3xl);
    padding-inline: var(--spacing-2xl);
  }
  .c-column-list_lead {
    -webkit-margin-after: var(--spacing-3xl);
            margin-block-end: var(--spacing-3xl);
  }
  .c-column > .u-cq-frame {
    container-name: columns;
  }
  .c-column .l-column-block {
    container-name: column-grid;
    --column-stage: one-column;
  }
  @container columns (min-width: 56rem) {
    .c-column .l-column-block {
      --column-stage: two-column;
    }
  }
  @container columns (min-width: 72rem) {
    .c-column .l-column-block {
      --column-stage: wide;
    }
  }
  @container column-grid style(--column-stage: two-column) {
    .c-column .l-column-block__inner {
      grid-template-columns: repeat(2, 1fr);
    }
    .c-item-list__item {
      -webkit-padding-start: var(--spacing-0) !important;
              padding-inline-start: var(--spacing-0) !important;
    }
  }
  @container column-grid style(--column-stage: wide) {
    .c-column .l-column-block__inner {
      grid-template-columns: repeat(2, 1fr);
      gap: var(--spacing-5xl);
    }
    .c-item-list__item {
      -webkit-padding-start: var(--spacing-0) !important;
              padding-inline-start: var(--spacing-0) !important;
    }
  }
}
@layer components {
  .c-comparison {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: 100%;
    max-width: 600px;
    margin: 0 0 var(--spacing-lg);
  }
  .c-comparison__inner {
    display: grid;
    grid-template-rows: 100px auto;
  }
  .c-comparison--column-01 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .c-img {
    max-width: 800px;
    border-radius: var(--radius-lg);
  }
  .c-img--comparison {
    width: 100%;
    height: auto;
    margin-bottom: var(--spacing-lg);
    background: var(--color-white, #fff);
  }
  .c-comparison__arrow {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    height: 100%;
  }
  .c-comparison__arrow-icon {
    position: relative;
    top: -1.8rem;
    display: inline-block;
    color: #08b5a7;
    font-family: var(--semantic-font-family-icon);
    font-size: var(--font-size-6xl);
    line-height: 1;
    opacity: 0.8;
    -webkit-transition: color 0.2s;
    transition: color 0.2s;
    pointer-events: none;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
  }
}
:root {
  --figure-min-h: 220px;
}

@layer components {
  .c-figure-copy {
    display: block;
    margin-bottom: var(--spacing-2xl);
    color: var(--color-teal-500);
    font-size: var(--semantic-font-size-copy-fluid);
    font-weight: 100;
    line-height: var(--line-height-lg);
    overflow-wrap: break-word;
    text-align: center;
    text-wrap: pretty;
  }
  .c-figure__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: var(--spacing-3xl) var(--spacing-xl);
    justify-items: stretch;
  }
  .c-figure__inner:has(.u-absolute-bs--neg-3xl) {
    gap: var(--spacing-5xl) var(--spacing-xl);
  }
  .c-figure-wrapper {
    position: relative;
  }
  .c-figure__media {
    display: block;
    aspect-ratio: var(--figure-ratio, 4/3);
    overflow: hidden;
  }
  .c-figure__item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: var(--spacing-xs);
    margin: var(--spacing-0, 0);
    padding: var(--figure-inset, 0);
    text-align: center;
    background: var(--figure-bg, transparent);
    border-radius: var(--figure-radius, 0);
    inline-size: 100%;
    min-inline-size: 0;
  }
  .c-figure__media > img.c-img {
    display: block;
    -o-object-fit: var(--figure-fit, cover);
       object-fit: var(--figure-fit, cover);
    -o-object-position: var(--figure-pos, 50% 50%);
       object-position: var(--figure-pos, 50% 50%);
    background-color: var(--semantic-bg-figure, transparent);
    block-size: 100%;
    inline-size: 100%;
  }
  .c-figure__media > img.c-img--padded {
    padding: var(--spacing-2xl);
  }
  .c-figure__media > img.c-img--no-bg {
    background-color: transparent;
  }
  .c-figure-block:not(:last-child) {
    -webkit-margin-after: var(--spacing-5xl);
            margin-block-end: var(--spacing-5xl);
  }
  .c-figure-block--prose:not(:last-child) {
    -webkit-margin-after: var(--spacing-5xl);
            margin-block-end: var(--spacing-5xl);
    -webkit-margin-before: var(--spacing-5xl);
            margin-block-start: var(--spacing-5xl);
  }
  .c-figure-block--column-01 {
    --figure-max-inline: var(--figure-max-inline-default);
  }
  .c-figure-block--column-01 .c-figure__inner {
    display: grid;
    grid-template-columns: auto;
    row-gap: var(--spacing-sm);
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .c-figure-block--column-01 .c-figure__item {
    aspect-ratio: auto;
    inline-size: min(100%, clamp(var(--figure-min-inline, 20rem), 80vw, var(--figure-max-inline, var(--figure-max-inline-default))));
  }
  .c-figure-block--column-01 .c-figure__media {
    aspect-ratio: auto;
  }
  .c-figure-block--column-01 .c-figure__media--default-size > img.c-img {
    -o-object-fit: contain;
       object-fit: contain;
    block-size: auto;
    inline-size: auto !important;
    max-block-size: none;
  }
  .c-figure-block--column-01 .c-figure__media > img.c-img {
    -o-object-fit: contain;
       object-fit: contain;
    block-size: auto;
    inline-size: 100%;
  }
  .c-figure-block--column-01.c-figure-block--max-narrow {
    --figure-max-inline: var(--figure-max-inline-narrow);
  }
  .c-figure-block--column-01.c-figure-block--max-default {
    --figure-max-inline: var(--figure-max-inline-default);
  }
  .c-figure-block--column-01.c-figure-block--max-wide {
    --figure-max-inline: var(--figure-max-inline-wide);
  }
  .c-figure-block--column-02 .c-figure__inner {
    display: grid;
    grid-template-columns: 1fr;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .c-figure-block--column-02 .c-figure__item picture > img.c-img {
    max-inline-size: none;
  }
  .c-figure-block--column-03 .c-figure__inner {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
  }
  .c-figure-block--column-03 .c-figure__media > img.c-img {
    max-inline-size: none;
  }
  .c-figure-block--column-04 .c-figure__inner {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  }
  .c-figure-block--column-04 .c-figure-wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding: var(--spacing-md) var(--spacing-xl);
    background-color: var(--semantic-bg-figure);
    border-radius: var(--radius-xl);
  }
  .c-figure-block--column-04 .c-figure__item {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    min-block-size: var(--figure-min-h);
  }
  .c-figure-block--column-04 .c-figure__media > img.c-img {
    max-inline-size: none;
  }
  .c-figure-block--column-04-02 .c-figure__inner {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }
  .c-figure-block--column-04-02 .c-figure__media > img.c-img {
    max-inline-size: none;
  }
  .c-figure__item--ratio-1x1 {
    --figure-ratio: 1 / 1;
  }
  .c-figure__item--ratio-4x3 {
    --figure-ratio: 4 / 3;
  }
  .c-figure__item--ratio-16x9 {
    --figure-ratio: 16 / 9;
  }
  .c-figure__item--ratio-3x2 {
    --figure-ratio: 3 / 2;
  }
  .c-figure__item--fit-contain {
    --figure-fit: contain;
  }
  .c-figure__item--fit-cover {
    --figure-fit: cover;
  }
  .c-figure__item--shrink-80 {
    --figure-inset: 10%;
    --figure-bg: var(--gradient-gray-pale);
    --figure-radius: var(--radius-xl);
  }
  .c-figure__item--caption-top {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .c-figure__item--caption-top .c-caption--figure {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1;
    text-align: center;
    -webkit-margin-after: var(--spacing-0);
            margin-block-end: var(--spacing-0);
  }
  .c-figure--column-02.c-figure--with-arrow {
    position: relative;
  }
  .c-figure--column-02.c-figure--with-arrow .c-figure__inner {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    row-gap: var(--spacing-xl);
    -webkit-column-gap: 0;
       -moz-column-gap: 0;
            column-gap: 0;
  }
  .c-figure--column-02.c-figure--with-arrow .c-figure__inner::after {
    grid-row: 3;
    grid-column: 1;
    align-self: center;
    justify-self: center;
    color: var(--semantic-text-point-icon-arrow);
    font-family: var(--semantic-font-family-icon);
    font-size: var(--font-size-6xl);
    line-height: 1;
    pointer-events: none;
    content: "keyboard_double_arrow_down";
  }
  .c-figure--column-02.c-figure--with-arrow .c-figure-wrapper,
  .c-figure--column-02.c-figure--with-arrow .c-figure__item {
    display: contents;
  }
  .c-figure-block--column-02.l-bleed .c-img {
    display: block;
    block-size: auto;
    inline-size: 100%;
    max-inline-size: none;
  }
  .highcharts-container {
    border-radius: var(--radius-xl);
  }
  @container comparison (min-width: 56rem) {
    .c-figure--column-02.c-figure--with-arrow .c-figure__inner {
      grid-template-rows: auto auto;
      grid-template-columns: 1fr auto 1fr;
      row-gap: 0;
      -webkit-column-gap: var(--spacing-xl);
         -moz-column-gap: var(--spacing-xl);
              column-gap: var(--spacing-xl);
    }
    .c-figure--column-02.c-figure--with-arrow .c-figure__inner::after {
      grid-row: 1;
      grid-column: 2;
      align-self: center;
      justify-self: center;
      content: "keyboard_double_arrow_right";
    }
    .c-figure--column-02.c-figure--with-arrow .c-figure-wrapper:nth-child(1) .c-figure__media {
      grid-row: 1;
      grid-column: 1;
    }
    .c-figure--column-02.c-figure--with-arrow .c-figure-wrapper:nth-child(1) .c-caption {
      grid-row: 2;
      grid-column: 1;
      text-align: center;
    }
    .c-figure--column-02.c-figure--with-arrow .c-figure-wrapper:nth-child(2) .c-figure__media {
      grid-row: 1;
      grid-column: 3;
    }
    .c-figure--column-02.c-figure--with-arrow .c-figure-wrapper:nth-child(2) .c-caption {
      grid-row: 2;
      grid-column: 3;
      text-align: center;
    }
    .c-legend.c-legend--inline.c-legend--boxed {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(10ch, -webkit-max-content));
      grid-template-columns: repeat(auto-fit, minmax(10ch, max-content));
      gap: var(--spacing-md) var(--spacing-xl);
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
    }
  }
  @media (min-width: 768px) {
    .c-figure-block--column-02 .c-figure__inner {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  @container (max-width: 40rem) {
    .c-figure-copy {
      -webkit-margin-after: var(--spacing-0);
              margin-block-end: var(--spacing-0);
    }
    .c-figure {
      margin-inline: var(--spacing-0);
    }
  }
}
@layer components {
  .c-footer {
    position: relative;
    height: 100%;
    background-color: hsl(167, 91%, 40%);
    background-image: radial-gradient(at 16% 71%, hsl(207, 74%, 50%) 0px, transparent 50%), radial-gradient(at 40% 20%, hsl(193, 100%, 74%) 0px, transparent 50%), radial-gradient(at 80% 0%, hsl(189, 100%, 56%) 0px, transparent 50%), radial-gradient(at 0% 50%, hsl(135, 100%, 93%) 0px, transparent 50%), radial-gradient(at 80% 50%, hsl(187, 92%, 50%) 0px, transparent 50%), radial-gradient(at 0% 100%, hsl(174, 88%, 46%) 0px, transparent 50%), radial-gradient(at 80% 100%, hsl(240, 80%, 68%) 0px, transparent 50%), radial-gradient(at 0% 0%, hsl(241, 100%, 70%) 0px, transparent 50%);
    background-position: center;
    background-size: cover;
    -webkit-padding-after: var(--spacing-7xl);
            padding-block-end: var(--spacing-7xl);
  }
  .c-footer::after {
    position: absolute;
    inset: 0;
    z-index: 1;
    background-image: url("/assets/img/common/footer_nautical-sky-charts.svg");
    background-position: center;
    background-size: cover;
    opacity: 0.5;
    mix-blend-mode: soft-light;
    pointer-events: none;
    content: "";
  }
  .c-footer a.c-footer__link {
    color: var(--color-white);
    text-decoration: none;
    -webkit-transition: opacity 0.2s;
    transition: opacity 0.2s;
  }
  .c-footer a.c-footer__link:hover {
    text-decoration: underline;
  }
  .c-cta-new-design {
    position: relative;
    -webkit-padding-after: var(--spacing-4xl);
            padding-block-end: var(--spacing-4xl);
  }
  .c-new-design__title {
    margin: 0 0 56px 0;
    font-size: 48px;
    font-weight: 100;
    letter-spacing: 0.5rem;
  }
  .c-new-design__text {
    font-size: 18px;
    line-height: var(--line-height-3xl);
  }
  .p-cta-cards {
    position: relative;
    top: -40px;
    z-index: 100;
    margin: 0 auto;
  }
  .c-new-design__image {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    color: var(--color-white);
    padding-block: var(--spacing-7xl);
  }
  .c-new-design__image-img {
    mix-blend-mode: hard-light;
  }
  .c-new-design__image-text {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    text-align: center;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
  }
  .c-footer__main {
    font-size: var(--semantic-font-size-footer-one-column-fluid);
  }
  .c-footer__logo {
    -webkit-margin-after: var(--spacing-2xl);
            margin-block-end: var(--spacing-2xl);
  }
  .c-footer__nav-internal {
    -webkit-padding-after: var(--spacing-2xl);
            padding-block-end: var(--spacing-2xl);
  }
  .c-footer__nav-external {
    -webkit-padding-after: var(--spacing-4xl);
            padding-block-end: var(--spacing-4xl);
  }
  .c-footer__list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    margin: var(--spacing-0);
    padding: var(--spacing-0);
    list-style: none;
  }
  .c-footer__list--sub {
    -webkit-margin-after: var(--spacing-xs);
            margin-block-end: var(--spacing-xs);
    -webkit-margin-start: var(--spacing-lg);
            margin-inline-start: var(--spacing-lg);
  }
  .c-footer__item {
    -webkit-margin-end: var(--spacing-md);
            margin-inline-end: var(--spacing-md);
  }
  .c-footer__address,
  .c-footer__copyright {
    color: var(--semantic-text-inverse);
    font-style: normal;
    line-height: var(--semantic-line-height-footer-fluid);
  }
  .c-address:last-child {
    -webkit-margin-after: var(--spacing-md);
            margin-block-end: var(--spacing-md);
  }
  .c-footer__address .c-address__label {
    -webkit-margin-after: var(--spacing-0);
            margin-block-end: var(--spacing-0);
  }
  .c-address__label {
    font-size: var(--semantic-font-size-footer-label-fluid);
  }
  .c-address__postal,
  .c-address__line {
    margin: var(--spacing-0);
  }
  .c-contact__row {
    display: grid;
    grid-template-columns: 5ch 1fr;
    gap: 0.5rem 1rem;
  }
  .c-footer__address .c-definition-list--term-text-right .c-definition-list__term {
    padding: var(--spacing-xs) var(--spacing-md);
    text-wrap: nowrap;
  }
  .c-footer__address .c-definition-list--term-text-right .c-definition-list__desc {
    padding: var(--spacing-xs) var(--spacing-0);
  }
  .c-contact__term {
    font-weight: 600;
  }
  .c-contact__desc {
    margin: 0;
  }
  .c-footer__copyright {
    display: block;
    margin: auto;
    text-align: right;
  }
  .c-footer__inner.u-cq-frame {
    container-name: footer;
  }
  .c-footer__grid {
    container-name: footer-grid;
    --footer-stage: one-column;
  }
  .c-footer__grid-inner {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas: "footer-logo" "footer-info-company" "footer-info-sitemap";
    gap: var(--spacing-lg);
    align-self: start;
  }
  .c-footer__logo {
    grid-area: footer-logo;
  }
  .c-footer__info-company {
    grid-area: footer-info-company;
  }
  .c-footer__info-sitemap {
    grid-area: footer-info-sitemap;
  }
  @container footer (min-width: 64rem) {
    .c-footer__grid {
      --footer-stage: two-column;
    }
  }
  @container footer (min-width: 72rem) {
    .c-footer__grid {
      --footer-stage: wide;
    }
  }
  @container footer-grid style(--footer-stage: two-column) {
    .c-footer__grid-inner {
      grid-template-columns: repeat(2, 1fr);
      grid-template-areas: "footer-logo footer-logo" "footer-info-company footer-info-sitemap";
      gap: var(--spacing-xl);
      font-size: var(--semantic-font-size-footer-fluid);
    }
    .c-footer__list {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
      gap: var(--spacing-sm);
    }
    .c-footer__list--sub {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-margin-before: var(--spacing-sm);
              margin-block-start: var(--spacing-sm);
    }
    .c-link {
      display: inline-block;
      width: -webkit-max-content;
      width: -moz-max-content;
      width: max-content;
    }
  }
  @container footer-grid style(--footer-stage: wide) {
    .c-footer__grid-inner {
      grid-template-columns: repeat(2, 1fr);
      grid-template-areas: "footer-logo footer-logo" "footer-info-company footer-info-sitemap";
      gap: var(--spacing-2xl);
      font-size: var(--semantic-font-size-footer-fluid);
    }
    .c-footer__list {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
      gap: var(--spacing-sm);
      justify-self: end;
    }
    .c-footer__list--sub {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-margin-before: var(--spacing-sm);
              margin-block-start: var(--spacing-sm);
    }
    .c-link {
      display: inline-block;
      width: -webkit-max-content;
      width: -moz-max-content;
      width: max-content;
    }
  }
  .c-cta-new-design .l-container > .u-cq-frame {
    container-name: footer-new-design;
  }
  @container footer-new-design (max-width: 40rem) {
    .c-cta-new-design .u-br--sm {
      display: inline !important;
    }
  }
}
@layer components {
  .c-hamburger {
    position: fixed;
    inset: 1rem 1rem auto auto;
    z-index: 9999;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding: 0;
    background: var(--semantic-bg-button-floating--default, #fff);
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 999px;
    -webkit-box-shadow: var(--semantic-shadow-button-floating, none);
            box-shadow: var(--semantic-shadow-button-floating, none);
    backdrop-filter: blur(var(--blur-xl));
    -webkit-transition: -webkit-transform 0.15s ease;
    transition: -webkit-transform 0.15s ease;
    transition: transform 0.15s ease;
    transition: transform 0.15s ease, -webkit-transform 0.15s ease;
    cursor: pointer;
    block-size: 3rem;
    inline-size: 3rem;
  }
  .c-hamburger:active {
    -webkit-transform: scale(0.96);
            transform: scale(0.96);
  }
  .c-hamburger__bars,
  .c-hamburger__bars::before,
  .c-hamburger__bars::after {
    position: relative;
    display: block;
    background: var(--semantic-bg-hamburger-nav-ber);
    border-radius: 1px;
    -webkit-transition: 0.2s;
    transition: 0.2s;
    block-size: 2px;
    content: "";
    inline-size: 1.5rem;
  }
  .c-hamburger__bars::before,
  .c-hamburger__bars::after {
    position: absolute;
    inset-inline-start: 0;
  }
  .c-hamburger__bars::before {
    inset-block-start: -0.4rem;
  }
  .c-hamburger__bars::after {
    inset-block-start: 0.4rem;
  }
  body.is-nav-open .c-hamburger__bars {
    background: transparent;
  }
  body.is-nav-open .c-hamburger__bars::before {
    -webkit-transform: translateY(0.4rem) rotate(45deg);
            transform: translateY(0.4rem) rotate(45deg);
  }
  body.is-nav-open .c-hamburger__bars::after {
    -webkit-transform: translateY(-0.4rem) rotate(-45deg);
            transform: translateY(-0.4rem) rotate(-45deg);
  }
  @media (max-width: 63.9375rem) {
    #sub-nav-service {
      display: none !important;
    }
    .c-global-nav-shell {
      position: fixed !important;
      inset: 0 !important;
      z-index: 1100;
      visibility: hidden;
      padding: clamp(16px, 4vw, 32px);
      overflow: auto;
      -ms-scroll-chaining: none;
          overscroll-behavior: contain;
      background: var(--semantic-bg-global-nav, #fff);
      border: 0;
      border-radius: 0;
      opacity: 0;
      -webkit-box-shadow: none;
              box-shadow: none;
      -webkit-transform: translateY(-8px);
              transform: translateY(-8px);
      will-change: opacity, transform;
      -webkit-transition: none;
      transition: none;
      pointer-events: none;
      block-size: 100dvh;
      inline-size: 100vw;
      -webkit-overflow-scrolling: touch;
    }
    body.is-nav-open .c-global-nav-shell {
      visibility: visible;
      border-radius: var(--radius-xl);
      opacity: 1;
      -webkit-transform: translateY(0);
              transform: translateY(0);
      -webkit-animation: navFadeDown 0.25s ease both;
              animation: navFadeDown 0.25s ease both;
      pointer-events: auto;
    }
    body.is-nav-open .c-global-nav-off-canvas {
      -webkit-margin-before: var(--spacing-3xl);
              margin-block-start: var(--spacing-3xl);
    }
    body.is-nav-open .c-global-nav-list {
      display: block;
    }
    body.is-nav-open .c-global-nav__item {
      position: relative;
    }
    body.is-nav-open .c-global-nav__link::before {
      position: absolute;
      top: 50%;
      display: inline-block;
      font-family: "Material Symbols Outlined";
      content: "chevron_right";
      font-variation-settings: "FILL" 0, "wght" 200, "GRAD" 0, "opsz" 24;
      speak: none;
    }
    .c-global-nav-list {
      display: grid;
      gap: var(--spacing-xl);
      margin: 0;
      padding: 0;
      list-style: none;
    }
    body.is-nav-open {
      overflow: hidden;
    }
    .c-global-nav-list {
      display: grid;
      gap: var(--spacing-xl);
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .c-global-nav__item {
      margin-block: var(--spacing-lg) var(--spacing-0);
    }
    .c-global-nav__item--child {
      display: block;
      padding: 0;
    }
    .c-global-nav__item--child .c-global-nav__link {
      position: relative;
      font-size: var(--semantic-font-size-global-nav);
      border-radius: var(--radius-full);
      -webkit-transition: var(--transition-default);
      transition: var(--transition-default);
      padding-block: var(--spacing-md);
      -webkit-padding-start: calc(var(--spacing-lg) + var(--spacing-md));
              padding-inline-start: calc(var(--spacing-lg) + var(--spacing-md));
    }
    .c-global-nav__item--child .c-global-nav__link::before {
      position: absolute;
      opacity: 0.5;
      -webkit-transform: translateY(-50%);
              transform: translateY(-50%);
      content: "–";
      inset-block-start: 50%;
      inset-inline-start: var(--spacing-md);
    }
    .c-other-nav-list {
      list-style: none;
    }
    .c-other-nav__link {
      color: var(--semantic-text-global-navi);
      font-size: var(--semantic-font-size-global-nav);
      text-decoration: none;
    }
    @-webkit-keyframes navFadeDown {
      from {
        opacity: 0;
        -webkit-transform: translateY(-8px);
                transform: translateY(-8px);
      }
      to {
        opacity: 1;
        -webkit-transform: translateY(0);
                transform: translateY(0);
      }
    }
    @keyframes navFadeDown {
      from {
        opacity: 0;
        -webkit-transform: translateY(-8px);
                transform: translateY(-8px);
      }
      to {
        opacity: 1;
        -webkit-transform: translateY(0);
                transform: translateY(0);
      }
    }
    @keyframes navFadeDown {
      from {
        opacity: 0;
        -webkit-transform: translateY(-8px);
                transform: translateY(-8px);
      }
      to {
        opacity: 1;
        -webkit-transform: translateY(0);
                transform: translateY(0);
      }
    }
  }
  body.is-bp-gte-desktop .c-hamburger {
    display: none;
  }
  body.is-bp-gte-desktop .c-global-nav-shell {
    position: static !important;
    inset: auto;
    visibility: visible;
    padding: 0;
    overflow: visible;
    -webkit-transform: none !important;
            transform: none !important;
    pointer-events: auto;
    block-size: auto;
    -webkit-border-start: 0;
            border-inline-start: 0;
    inline-size: auto;
  }
  body.is-bp-gte-desktop .c-global-nav-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  body.is-bp-gte-desktop .c-other-nav-list-block {
    display: none;
  }
}
/* ===================================================================
   Component: .c-global-nav
   ─ グローバルナビの水平リスト + サブパネル
   =================================================================== */
@layer components {
  .c-global-nav-shell {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    padding: var(--spacing-0);
    background: var(--semantic-bg-global-nav);
    border: var(--semantic-border-style-global-nav);
    border-radius: var(--radius-full);
    -webkit-box-shadow: var(--semantic-shadow-global-nav);
            box-shadow: var(--semantic-shadow-global-nav);
    backdrop-filter: blur(var(--blur-xl));
    -webkit-backdrop-filter: blur(var(--blur-xl));
  }
  .c-global-nav-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin: var(--spacing-0, 0);
    padding: var(--spacing-sm) var(--spacing-sm);
    list-style: none;
  }
  .c-global-nav__item:last-child {
    margin-left: var(--spacing-sm);
  }
  .c-global-nav__item .c-button {
    display: block;
    padding: var(--spacing-sm) var(--spacing-0);
    font-size: var(--semantic-font-size-global-nav-cta);
    text-align: center;
  }
  .c-global-nav__item .c-button[target=_blank]::after {
    font-size: var(--semantic-font-size-btn-icon);
    content: none;
  }
  .c-global-nav__link {
    position: relative;
    padding: var(--spacing-md) var(--spacing-lg);
    color: var(--semantic-text-global-navi);
    font-size: var(--semantic-font-size-global-nav);
    text-decoration: none;
    border-radius: var(--radius-full);
    -webkit-transition: var(--transition-default);
    transition: var(--transition-default);
  }
  .c-global-nav__link::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    opacity: 0;
    mix-blend-mode: hard-light;
    -webkit-transition: opacity 0.3s ease;
    transition: opacity 0.3s ease;
    content: "";
  }
  .c-global-nav__link:hover, .c-global-nav__link:focus-visible {
    color: var(--semantic-text-accent);
  }
  .c-global-nav__link[target=_blank]::after {
    font-family: var(--semantic-font-family-icon);
    font-weight: bold;
    content: "\e89e";
    font-variation-settings: "FILL" 0, "wght" 100, "GRAD" 0, "opsz" 24;
  }
  .c-global-nav__link--primary {
    padding: 0.5em 1.25em;
  }
  .c-global-nav__link .c-global-nav__icon {
    margin-left: 0.25em;
    font-size: 0.8em;
    vertical-align: middle;
  }
  /* ===================================================================
     Global Nav Sub-panel（サービス）
     HTML例:
     <div id="sub-nav-service"
          class="l-global-nav-sub-panel-shell c-global-nav__sub-panel">
     =================================================================== */
  .c-global-nav__sub-panel {
    opacity: 0;
    -webkit-transform: translateY(-6px);
            transform: translateY(-6px);
    -webkit-transition: opacity 0.16s ease, -webkit-transform 0.16s ease;
    transition: opacity 0.16s ease, -webkit-transform 0.16s ease;
    transition: opacity 0.16s ease, transform 0.16s ease;
    transition: opacity 0.16s ease, transform 0.16s ease, -webkit-transform 0.16s ease;
    pointer-events: none;
  }
  .c-global-nav__sub-panel.is-open {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
    pointer-events: auto;
  }
  .c-global-nav__sub-panel-inner {
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    max-width: 92vw;
    margin: 0 auto;
    background: var(--semantic-bg-global-nav);
    border: var(--semantic-border-style-global-nav);
    border-radius: var(--spacing-0) var(--spacing-0) var(--radius-xl) var(--radius-xl);
    -webkit-box-shadow: var(--semantic-shadow-global-nav);
            box-shadow: var(--semantic-shadow-global-nav);
    backdrop-filter: var(--blur-md);
    backdrop-filter: blur(var(--blur-xl));
    -webkit-backdrop-filter: blur(var(--blur-xl));
  }
  .c-global-nav__sub-menu {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: -webkit-max-content;
    grid-auto-columns: max-content;
    gap: var(--spacing-0) var(--spacing-0);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin: var(--spacing-0, 0);
    padding: var(--spacing-sm) var(--spacing-2xl) 0;
    list-style: none;
  }
  .c-global-nav__sub-menu-link {
    position: relative;
    display: inline-block;
    padding: var(--spacing-sm) var(--spacing-md);
    color: var(--semantic-text-global-navi);
    font-size: var(--semantic-font-size-global-nav);
    text-decoration: none;
    outline: none;
    /* ホバー非対応デバイスでの点滅抑制（任意） */
  }
  .c-global-nav__sub-menu-link::before, .c-global-nav__sub-menu-link::after {
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 2px;
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
    content: "";
  }
  .c-global-nav__sub-menu-link::after {
    width: 0;
    background: var(--semantic-bg-global-nav-sub-menu-hover);
  }
  .c-global-nav__sub-menu-link:hover::after, .c-global-nav__sub-menu-link:focus-visible::after {
    width: 100%;
  }
  @media (hover: none) {
    .c-global-nav__sub-menu-link .c-global-nav__sub-panel {
      display: none;
    }
  }
  body.is-bp-gte-desktop .c-global-nav__sub-menu-link .c-hamburger {
    display: none;
  }
  body.is-bp-gte-desktop .c-global-nav__sub-menu-link .c-global-nav-shell {
    position: static;
    inset: auto;
    padding: 0;
    background: var(--semantic-bg-global-nav);
    border-radius: var(--radius-full);
    -webkit-transform: none;
            transform: none;
    pointer-events: auto;
    block-size: auto;
    inline-size: auto;
  }
  body.is-bp-gte-desktop .c-global-nav__sub-menu-link .c-global-nav-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}
@layer components {
  /* ヘッダーの見た目/挙動（装飾・アニメ） */
  .c-header {
    padding-top: var(--spacing-lg);
    background-color: var(--white-100);
    -webkit-transform: translateY(0);
            transform: translateY(0);
    will-change: transform;
    -webkit-transition: -webkit-transform 0.28s ease;
    transition: -webkit-transform 0.28s ease;
    transition: transform 0.28s ease;
    transition: transform 0.28s ease, -webkit-transform 0.28s ease;
  }
  body:not(.is-header-hidden) .c-header {
    background-color: transparent;
  }
  .is-header-hidden .c-header {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
  }
  body.is-header-hidden .c-header {
    -webkit-transform: translateY(calc(-1 * var(--header-height, 64px)));
            transform: translateY(calc(-1 * var(--header-height, 64px)));
  }
}
@layer components {
  .c-material-symbols {
    display: inline-block;
    font-family: var(--semantic-font-family-icon, "Material Symbols Outlined");
    font-weight: var(--semantic-font-weight-icon);
    vertical-align: middle;
  }
  .c-material-symbols--contact {
    margin-bottom: var(--spacing-xs);
    font-size: var(--font-size-2xl);
  }
  .c-material-symbols--menu {
    color: var(--semantic-icon-color--default);
    font-size: var(--font-size-lg);
    content: "mail";
    margin-inline: var(--spacing-xs);
    vertical-align: top;
  }
  .c-material-symbols--back-to-top {
    font-size: var(--semantic-font-size-button-floating-icon-fluid);
  }
  .c-material-symbols--close {
    color: var(--semantic-icon-color--inverse);
    font-size: var(--semantic-font-size-button-dialog-window-close-fluid);
  }
}
@layer components {
  .c-img-svg {
    width: 100%;
    height: auto;
  }
}
@layer components {
  .c-img {
    display: block;
    -o-object-fit: contain;
       object-fit: contain;
  }
  .c-img--padded {
    padding: var(--spacing-2xl);
  }
  .c-img--fit-td-cell {
    display: block; /* インラインの余白を消す */
    width: 100%; /* 横幅を親（td）にフィットさせる */
    height: 100%; /* 縦幅を親（td）にフィットさせる */
    -o-object-fit: cover;
       object-fit: cover; /* ※オプション（切り抜き）*/
    border-radius: var(--radius-0);
  }
  .c-img--edge-safe {
    display: block;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: var(--img-safe-pad, var(--spacing-md));
    -o-object-fit: contain;
       object-fit: contain;
    -o-object-position: center;
       object-position: center;
    background-clip: padding-box;
    border-radius: var(--radius-lg);
    block-size: auto;
    inline-size: 100%;
  }
  .c-img .c-img--edge-safe-sm {
    --img-safe-pad: var(--spacing-sm);
  }
  .c-img .c-img--edge-safe-md {
    --img-safe-pad: var(--spacing-md);
  }
  .c-img .c-img--edge-safe-lg {
    --img-safe-pad: var(--spacing-lg);
  }
}
@layer components {
  .c-introduction {
    text-align: center;
  }
}
@layer components {
  .c-deco-label {
    display: inline-grid;
    place-items: center;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
  .c-deco-label--en-alumni-pinstripe {
    color: var(--semantic-text-point-label);
    font-family: var(--semantic-font-family-label-alumni-sans-pinstripe);
    font-weight: var(--semantic-font-weight-label-bold);
    font-style: var(--semantic-font-style-label-text-italic);
  }
  .c-deco-label--en-barlow {
    color: var(--semantic-text-point-label);
    font-family: var(--semantic-font-family-label-barlow);
    font-size: var(--semantic-font-size-label-sm);
    font-weight: var(--semantic-font-weight-label-regular);
  }
  .c-deco-label--shape-circle {
    color: var(--deco-color, var(--color-teal-400));
    background: transparent;
    border: var(--deco-stroke, 1px) solid var(--deco-color, var(--color-teal-400));
    border-radius: 50%;
    block-size: var(--deco-size, 3.5rem);
    inline-size: var(--deco-size, 3.5rem);
  }
  .c-deco-label--shape-circle-bg-brand {
    color: var(--semantic-text-label);
    background: var(--semantic-text-point-label);
    border: var(--deco-stroke, 1px) solid var(--deco-color, var(--color-teal-400));
    border-radius: 50%;
    block-size: var(--deco-size, 3.5rem);
    inline-size: var(--deco-size, 3.5rem);
  }
  .c-deco-label--shape-square {
    background: transparent;
    border: var(--deco-stroke, 1px) solid var(--deco-color, var(--color-teal-400));
    border-radius: var(--radius-sm);
    block-size: var(--deco-size, 3.5rem);
    inline-size: var(--deco-size, 3.5rem);
  }
  .c-deco-label--shape-square-rotate-45 {
    position: relative;
    display: inline-grid;
    isolation: isolate;
    place-items: center;
    aspect-ratio: 1/1;
    color: var(--color-teal-300);
    background: transparent;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    inline-size: -webkit-max-content;
    inline-size: -moz-max-content;
    inline-size: max-content;
    /* 調整用トークン */
    --deco-blend: screen;
    --bg-inset: 20%;
    --bg-scale: 0.9;
  }
  .c-deco-label--shape-square-rotate-45::before {
    position: absolute;
    inset: var(--bg-inset);
    z-index: -1;
    background: var(--color-yellow);
    border-radius: var(--radius-sm);
    mix-blend-mode: var(--deco-blend);
    content: "";
  }
  .c-deco-label--shape-square-rotate-45 .c-deco-label--content-text {
    display: grid;
    row-gap: 0.2em;
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
  }
  .c-deco-label--shape-pill {
    display: inline-grid;
    place-items: center;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    background: transparent;
    border: var(--deco-stroke, 1px) solid var(--deco-color, var(--color-teal-400));
    border-radius: 9999px;
    block-size: auto;
    inline-size: -webkit-max-content;
    inline-size: -moz-max-content;
    inline-size: max-content;
    padding-block: var(--deco-pad-block, 0.25em);
    padding-inline: var(--deco-pad-inline, 0.75em);
  }
  .c-deco-label--shape-diamond {
    display: grid;
    place-items: center;
    border: var(--deco-stroke, 1px) solid var(--deco-color, var(--color-teal-400));
    border-radius: var(--radius-xs);
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    block-size: var(--deco-size, 3.5rem);
    inline-size: var(--deco-size, 3.5rem);
  }
  .c-deco-label__inner {
    display: grid;
    place-items: center;
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
    block-size: 100%;
    inline-size: 100%;
  }
  .c-deco-label--content-num {
    font-size: var(--semantic-font-size-label-3xl, clamp(0.9rem, 1.6vw, 1.1rem));
    line-height: var(--line-height-2xs);
    letter-spacing: var(--letter-spacing-2x);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
  }
  .c-deco-label--content-text {
    display: grid;
    grid-auto-flow: row;
    row-gap: var(--spacing-xs);
    place-content: center;
    justify-items: center;
    text-align: center;
    text-wrap: balance;
  }
  .c-deco-label__line {
    display: inline;
    line-height: 1.15;
  }
  .c-deco-label__line--title-sub {
    font-size: var(--semantic-font-size-label-md, clamp(0.85rem, 1.4vw, 1.05rem));
    font-weight: var(--font-weight-bold);
  }
  .c-deco-label__line--title-main {
    font-size: var(--semantic-font-size-label-3xl, clamp(0.75rem, 1.2vw, 0.95rem));
    font-weight: var(--font-weight-thin);
  }
  .c-deco-label__line--title-figure {
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    color: var(--semantic-text-point-label);
    font-size: var(--semantic-font-size-label-4xl, clamp(0.75rem, 1.2vw, 0.95rem));
    font-weight: var(--font-weight-bold);
  }
  .c-deco-label--size-lg {
    --deco-size: 4.5rem;
  }
  .c-deco-label--size-xl {
    --deco-size: 5.5rem;
  }
  .c-deco-label--size-2xl {
    --deco-size: 6.5rem;
  }
  .c-deco-label--size-3xl {
    --deco-size: 7.5rem;
  }
  .c-deco-label--size-4xl {
    --deco-size: 8.5rem;
  }
  .c-deco-label--style-filled {
    color: var(--color-white);
    background: var(--deco-color, var(--color-teal-400));
    border-color: transparent;
  }
  .c-deco-label--style-outline {
    color: var(--deco-color, var(--color-teal-400));
    background: transparent;
    border: var(--deco-stroke, 1px) solid currentColor;
  }
  .c-figure__overlay-label {
    --deco-color: var(--color-teal-400);
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    gap: var(--spacing-md);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .c-figure__overlay-label-text {
    color: var(--color-teal-400);
    font-size: var(--semantic-font-size-label-2xl-fluid);
    font-style: italic;
    line-height: var(--line-height-xs);
    letter-spacing: var(--semantic-letter-spacing-label-text);
    white-space: nowrap;
  }
  .c-deco-label--with-leader::after {
    display: block;
    background: currentColor;
    block-size: 1px;
    content: "";
    inline-size: clamp(60px, 10vw, 140px);
    -webkit-margin-start: var(--spacing-md);
            margin-inline-start: var(--spacing-md);
  }
  .c-caption--bar-bottom {
    -webkit-padding-after: var(--spacing-md);
            padding-block-end: var(--spacing-md);
  }
  .c-caption--bar-bottom::after {
    display: block;
    margin: 16px auto 0;
    background-color: var(--semantic-bg-accent);
    block-size: 1px;
    content: "";
    inline-size: 80px;
  }
}
@layer components {
  .c-number-label {
    display: block;
    color: var(--semantic-text-accent);
    font-family: "Alumni Sans";
    font-size: var(--font-size-xl);
    font-weight: 300;
    font-style: italic;
  }
}
@layer components {
  .c-label-list {
    margin: var(--spacing-0, 0);
    padding: var(--spacing-0, 0);
    list-style: none;
  }
  .c-label {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    color: var(--semantic-text-label);
    font-size: var(--semantic-font-size-label);
    line-height: var(--semantic-line-height-label);
    text-decoration: none;
    min-block-size: 2rem;
  }
  .c-label--sm {
    height: var(--semantic-height-label-sm);
    padding: var(--spacing-0) var(--spacing-md);
    font-size: var(--semantic-font-size-label-sm);
    border-radius: var(--radius-sm);
  }
  .c-label--md {
    height: var(--semantic-height-label-md);
    padding: var(--spacing-0) var(--spacing-lg);
    border-radius: var(--radius-md);
  }
  .c-label--primary {
    background-color: var(--semantic-bg-label-primary);
  }
  .c-label--secondary {
    background-color: var(--semantic-bg-label-secondary);
  }
  .c-label--accent {
    color: var(--semantic-text-accent);
  }
  .c-label--tag {
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: var(--semantic-font-size-label-sm);
    border: var(--semantic-border-style-brand);
    border-radius: var(--radius-full);
  }
  a.c-label {
    position: relative;
    -webkit-transition: var(--transition-default);
    transition: var(--transition-default);
  }
  a.c-label--primary:hover {
    background-color: var(--semantic-bg-label-primary--hover);
  }
  a.c-label--secondary:hover {
    background-color: var(--semantic-bg-label-secondary--hover);
  }
  a.c-label:active {
    -webkit-transform: translateY(1px);
            transform: translateY(1px);
  }
  a.c-label:focus-visible {
    outline: none;
    -webkit-box-shadow: 0 0 0 2px var(--color-white), 0 0 0 4px var(--semantic-focus-ring, var(--color-teal-400));
            box-shadow: 0 0 0 2px var(--color-white), 0 0 0 4px var(--semantic-focus-ring, var(--color-teal-400));
  }
  a.c-label::after {
    right: var(--spacing-sm);
    font-family: var(--semantic-font-family-icon);
    font-size: var(--semantic-font-size-label-icon);
    font-weight: var(--semantic-font-weight-icon);
    -webkit-transition: color var(--transition-default), -webkit-transform var(--transition-default);
    transition: color var(--transition-default), -webkit-transform var(--transition-default);
    transition: transform var(--transition-default), color var(--transition-default);
    transition: transform var(--transition-default), color var(--transition-default), -webkit-transform var(--transition-default);
    content: "chevron_right";
    font-variation-settings: "FILL" 0, "wght" 100, "GRAD" 0, "opsz" 32;
  }
  a.c-label[target=_blank]::after {
    content: "open_in_new";
  }
  a.c-label--md {
    padding: var(--spacing-0) var(--spacing-lg) var(--spacing-0) var(--spacing-md);
  }
}
@layer components {
  .c-legend {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: var(--spacing-sm, 0.5rem) var(--spacing-lg, 1rem);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin: 0;
    padding: 0;
    font-size: var(--semantic-font-size-legend-fluid);
    list-style: none;
  }
  .c-legend--inline {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
  }
  .c-legend--vertical {
    display: grid;
  }
  .c-legend--boxed {
    padding: var(--spacing-xl, 0.75rem) var(--spacing-xl, 1rem);
    line-height: var(--line-height-2xs);
    background-color: var(--semantic-bg-legend);
    border-radius: var(--radius-md, 12px);
  }
  .c-legend__item {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    gap: 0.5em;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    white-space: nowrap; /* ラベルの途中折返しを防ぐ */
    --legend-color: var(--semantic-legend-color-magenta);
  }
  .c-legend__item--magenta {
    --legend-color: var(--semantic-legend-color-magenta);
  }
  .c-legend__item--yellow {
    --legend-color: var(--semantic-legend-color-yellow);
  }
  .c-legend__item--amber {
    --legend-color: var(--semantic-legend-color-amber);
  }
  .c-legend__item--blue {
    --legend-color: var(--semantic-legend-color-blue);
  }
  .c-legend__item--green {
    --legend-color: var(--semantic-legend-color-green);
  }
  .c-legend__item--slate {
    --legend-color: var(--semantic-legend-color-slate);
  }
  .c-legend__item--violet {
    --legend-color: var(--semantic-legend-color-violet);
  }
  .c-legend__swatch {
    background: var(--legend-color, #000);
    border-radius: 50%;
    block-size: 0.9em;
    inline-size: 0.9em;
  }
  .c-legend__swatch-title {
    color: var(--legend-color);
    font-weight: var(--font-weight-bold);
    -webkit-margin-end: var(--spacing-lg);
            margin-inline-end: var(--spacing-lg);
  }
  .c-legend__label {
    font: inherit;
    line-height: 1;
  }
}
@layer components {
  .c-link {
    position: relative;
    text-decoration: underline;
    text-underline-offset: 0.4em;
    -webkit-transition: color 0.15s ease, text-decoration-color 0.15s ease;
    transition: color 0.15s ease, text-decoration-color 0.15s ease;
  }
  .c-link:hover {
    text-decoration: none;
  }
  .c-link--arrow::after {
    display: inline-block;
    font-family: "Material Symbols Outlined";
    line-height: 1;
    text-decoration: none;
    content: "chevron_right";
    font-variation-settings: "FILL" 0, "wght" 200, "GRAD" 0, "opsz" 24;
    speak: none;
  }
  .c-link--arrow-before {
    text-decoration: none;
  }
  .c-link--arrow-before::before {
    display: inline-block;
    font-family: "Material Symbols Outlined";
    line-height: 1;
    content: "chevron_right";
    font-variation-settings: "FILL" 0, "wght" 200, "GRAD" 0, "opsz" 24;
    speak: none;
  }
  .c-link[target=_blank]::after {
    display: inline-block;
    font-family: var(--semantic-font-family-icon, "Material Symbols Outlined");
    font-size: var(--semantic-font-size-btn-icon--target-blanc, 1em);
    font-weight: var(--semantic-font-weight-icon, 400);
    line-height: 1;
    text-decoration: none;
    content: "open_in_new";
    font-variation-settings: "FILL" 0, "wght" 100, "GRAD" 0, "opsz" 16;
    -webkit-margin-start: var(--spacing-xs);
            margin-inline-start: var(--spacing-xs);
    speak: none;
    vertical-align: -0.125em;
  }
  .c-link[href^="mailto:"] {
    -webkit-padding-start: calc(var(--spacing-0) + var(--semantic-font-size-btn-icon) + var(--spacing-sm));
            padding-inline-start: calc(var(--spacing-0) + var(--semantic-font-size-btn-icon) + var(--spacing-sm));
  }
  .c-link[href^="mailto:"]::before {
    position: absolute;
    font-family: var(--semantic-font-family-icon);
    font-size: var(--semantic-font-size-btn-icon);
    font-weight: var(--semantic-font-weight-icon);
    line-height: var(--line-height-2xs);
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    content: "mail";
    font-variation-settings: "FILL" 0, "wght" 100, "GRAD" 0, "opsz" 32;
    inset-block-start: 50%;
    inset-inline-start: var(--spacing-neg-2xs);
  }
  .c-link--no-border {
    text-decoration: none;
  }
  .c-link--no-border:hover, .c-link--no-border:focus-visible {
    text-decoration: underline;
  }
  .c-link--text-inverse {
    color: var(--semantic-text-inverse);
  }
}
@layer components {
  .c-annotation-list {
    padding-top: var(--spacing-md);
  }
  .c-annotation-list__list {
    margin: var(--spacing-0) var(--spacing-0) var(--spacing-0) var(--spacing-md);
    padding-left: var(--spacing-md);
    color: var(--semantic-color-annotation-list);
    font-size: var(--font-size-xs);
    text-align: justify;
    border-left: var(--border-width-heavy) solid var(--semantic-text-subtle);
    list-style: none;
  }
  .c-annotation-list__item {
    margin-bottom: var(--spacing-xs);
  }
  .c-annotation-list__sub-list {
    list-style: disc;
    -webkit-padding-start: var(--spacing-md);
            padding-inline-start: var(--spacing-md);
  }
}
@layer components {
  .c-definition-list-block {
    margin-bottom: var(--spacing-lg);
  }
  .c-definition-list-block__title {
    margin-bottom: var(--spacing-lg);
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
  }
  .c-definition-list {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .c-definition-list__term {
    position: relative;
  }
  .c-definition-list__term--color-point {
    color: var(--semantic-text-list-label);
  }
  .c-definition-list--inline {
    display: grid;
    grid-template-columns: fit-content(var(--dl-term-col-max, 24ch)) 1fr;
    gap: var(--spacing-xs);
    row-gap: var(--spacing-xs);
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    margin: var(--spacing-0, 0);
  }
  .c-definition-list--inline .c-definition-list__term {
    padding: var(--spacing-md) var(--spacing-2xl);
    font-weight: var(--font-weight-bold);
    text-align: center;
  }
  .c-definition-list--inline .c-definition-list__desc {
    padding: var(--spacing-md) var(--spacing-2xl);
  }
  .c-definition-list--inline > .c-definition-list__group {
    display: contents;
  }
  .c-definition-list--inline > .c-definition-list__term {
    grid-column: 1;
  }
  .c-definition-list--inline > .c-definition-list__desc {
    grid-column: 2;
  }
  .c-definition-list--inline .c-definition-list__term,
  .c-definition-list--inline .c-definition-list__desc {
    margin: var(--spacing-0, 0);
  }
  .c-definition-list--inline:not(:has(.c-definition-list__group)) {
    row-gap: var(--spacing-2xs);
  }
  .c-definition-list--inline .c-definition-list__desc-title {
    font-weight: var(--font-weight-bold);
  }
  .c-definition-list--inline .c-deco-label,
  .c-definition-list--inline .c-deco-labe--lg {
    margin-right: var(--spacing-0);
  }
  .c-definition-list--stack {
    display: grid;
    grid-auto-rows: auto;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
  }
  .c-definition-list--stack > .c-definition-list__group {
    display: grid;
    grid-template-columns: 1fr;
    grid-column: 1/-1;
    row-gap: var(--spacing-xs);
    -webkit-column-gap: 0;
       -moz-column-gap: 0;
            column-gap: 0;
    -webkit-border-after: var(--semantic-border-style-subtle);
            border-block-end: var(--semantic-border-style-subtle);
    padding-block: var(--definition-row-pad, var(--spacing-sm));
  }
  .c-definition-list--stack > .c-definition-list__group:last-child {
    -webkit-border-after: 0;
            border-block-end: 0;
  }
  .c-definition-list--stack > .c-definition-list__term,
  .c-definition-list--stack > .c-definition-list__desc,
  .c-definition-list--stack .c-definition-list__group > .c-definition-list__term,
  .c-definition-list--stack .c-definition-list__group > .c-definition-list__desc {
    grid-column: 1;
    margin: var(--spacing-0);
    padding: var(--spacing-md) var(--spacing-2xl);
    text-align: left;
  }
  .c-definition-list--stack .c-definition-list__desc--primary,
  .c-definition-list--stack .c-definition-list__desc--secondary {
    display: block;
    font-size: inherit;
    line-height: inherit;
    text-align: left;
    grid-area: auto;
  }
  .c-definition-list--stack .c-definition-list__term {
    padding: var(--spacing-md) var(--spacing-2xl);
    font-weight: var(--font-weight-bold);
    text-align: center;
  }
  .c-definition-list--border-bottom > .c-definition-list__term,
  .c-definition-list--border-bottom > .c-definition-list__desc {
    padding: var(--spacing-md) var(--spacing-2xl);
    border: var(--semantic-border-style-subtle);
    border-width: 0 0 1px 0;
  }
  .c-definition-list--border-bottom > .c-definition-list__term:last-of-type,
  .c-definition-list--border-bottom > .c-definition-list__desc:last-of-type {
    border: none;
  }
  .c-definition-list--arrow-right .c-definition-list__term::after {
    position: absolute;
    top: 50%;
    right: var(--spacing-neg-sm);
    color: var(--semantic-text-point-icon-arrow);
    font-family: var(--semantic-font-family-icon);
    font-size: var(--font-size-3xl);
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    content: "keyboard_double_arrow_right";
  }
  .c-definition-list--term-border-right .c-definition-list__term {
    border: var(--semantic-border-style-brand);
    border-width: 0 1px 0 0;
  }
  .c-definition-list--desc-vcenter .c-definition-list__desc {
    grid-column: 2;
    align-self: center;
  }
  .c-definition-list--arrow-down .c-definition-list__term {
    position: relative;
    padding: 0 var(--spacing-xl);
  }
  .c-definition-list--arrow-down .c-definition-list__term::after {
    position: absolute;
    right: 50%;
    bottom: -48px;
    color: var(--semantic-text-point-icon-arrow);
    font-family: var(--semantic-font-family-icon);
    font-size: var(--font-size-3xl);
    font-weight: var(--semantic-font-weight-icon);
    content: "keyboard_double_arrow_down";
    font-variation-settings: "FILL" 0, "wght" 100, "GRAD" 0, "opsz" 24;
  }
  .c-definition-list--term-bg-color .c-definition-list__term {
    color: var(--semantic-text-inverse);
    font-weight: var(--font-weight-medium);
    background-color: var(--semantic-bg-definition-term--default);
    border: var(--semantic-border-style-inverse);
    border-width: 0 0 1px 0;
  }
  .c-definition-list--desc-bg-color .c-definition-list__desc {
    background-color: var(--semantic-bg-definition-desc--default);
  }
  .c-definition-list--term-emphasis .c-definition-list__term {
    font-size: var(--font-size-xl);
  }
  .c-definition-list--term-emphasis .c-definition-list__desc {
    font-size: var(--font-size-xl);
  }
  .c-definition-list--term-radius .c-definition-list__sub-title {
    padding: var(--spacing-md) var(--spacing-xl);
    color: var(--semantic-text-inverse);
    background: var(--semantic-bg-definition-term--accent-gradient-blue);
    border-radius: var(--radius-full);
  }
  .c-definition-list-block:has(.c-definition-list--term-deco-label) {
    margin-bottom: var(--spacing-0);
  }
  .c-definition-list--border-under {
    border: var(--semantic-border-style-default);
    border-width: 0 0 1px 0;
  }
  .c-definition-list--term-deco .c-definition-list__group .c-definition-list__term {
    -ms-flex-line-pack: center;
        align-content: center;
    color: var(--semantic-bg-definition-term--accent-teal);
    font-size: var(--semantic-font-size-list-group-term-deco);
    text-align: right;
  }
  .c-definition-list--term-deco .c-definition-list__group .c-definition-list__desc {
    font-size: var(--semantic-font-size-list-group-desc-deco);
    text-align: left;
  }
  .c-definition-list--row-line {
    display: grid;
    grid-template-columns: -webkit-max-content 1fr;
    grid-template-columns: max-content 1fr;
    row-gap: var(--definition-row-gap, var(--spacing-sm));
    -webkit-column-gap: var(--spacing-md);
       -moz-column-gap: var(--spacing-md);
            column-gap: var(--spacing-md);
  }
  .c-definition-list--row-line .c-definition-list__group {
    display: grid;
    grid-template-columns: subgrid;
    grid-column: 1/-1;
    -webkit-column-gap: var(--spacing-md);
       -moz-column-gap: var(--spacing-md);
            column-gap: var(--spacing-md);
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start;
    border-width: 0 0 1px 0;
    -webkit-border-after: var(--semantic-border-style-subtle);
            border-block-end: var(--semantic-border-style-subtle);
    padding-block: var(--definition-row-pad, var(--spacing-sm));
  }
  .c-definition-list--row-line .c-definition-list__group:last-child {
    -webkit-border-after: 0;
            border-block-end: 0;
  }
  .c-definition-list--row-line .c-definition-list__term {
    grid-column: 1;
    white-space: nowrap;
  }
  .c-definition-list--row-line .c-definition-list__desc {
    grid-column: 2;
  }
  .c-definition-list--term-text-right .c-definition-list__term {
    font-weight: var(--font-weight-regular);
  }
  .c-definition-list--term-text-right .c-definition-list__term {
    text-align: right;
    -webkit-margin-end: var(--spacing-md);
            margin-inline-end: var(--spacing-md);
  }
  .c-definition-list-block {
    container: def-list/inline-size;
  }
  @container def-list (max-width: 42rem) {
    .c-definition-list {
      display: grid;
      grid-auto-rows: auto;
      gap: var(--spacing-md);
      margin-bottom: var(--spacing-md);
    }
    .c-definition-list > .c-definition-list__group {
      display: grid;
      grid-template-columns: 1fr;
      grid-column: 1/-1;
      row-gap: var(--spacing-xs);
      -webkit-column-gap: 0;
         -moz-column-gap: 0;
              column-gap: 0;
      -webkit-border-after: var(--semantic-border-style-subtle);
              border-block-end: var(--semantic-border-style-subtle);
      padding-block: var(--definition-row-pad, var(--spacing-sm));
    }
    .c-definition-list > .c-definition-list__group:last-child {
      -webkit-border-after: 0;
              border-block-end: 0;
    }
    .c-definition-list > .c-definition-list__term,
    .c-definition-list > .c-definition-list__desc,
    .c-definition-list .c-definition-list__group > .c-definition-list__term,
    .c-definition-list .c-definition-list__group > .c-definition-list__desc {
      grid-column: 1;
      margin: var(--spacing-0);
      padding: var(--spacing-md) var(--spacing-2xl);
      text-align: left;
    }
    .c-definition-list .c-definition-list__desc--primary,
    .c-definition-list .c-definition-list__desc--secondary {
      display: block;
      font-size: inherit;
      line-height: inherit;
      text-align: left;
      grid-area: auto;
    }
    .c-definition-list__term {
      text-align: center !important;
    }
    /* 1) 列定義を 1 列へ。暗黙列の保険に grid-auto-columns も */
    .c-definition-list--inline {
      display: grid; /* 念のため */
      grid-template-columns: 1fr; /* ← これが最重要 */
      grid-auto-columns: 1fr; /* 暗黙列が出ても 1fr 扱いに（保険） */
    }
    /* 2) 子の列割り当てをリセット（dd が grid-column:2 を持っているため） */
    .c-definition-list--inline > .c-definition-list__term,
    .c-definition-list--inline > .c-definition-list__desc {
      grid-column: 1;
    }
    .c-definition-list--arrow-right .c-definition-list__term::after {
      right: 50%;
      -webkit-transform: translate(50%, 0);
              transform: translate(50%, 0);
      content: "keyboard_double_arrow_down";
    }
  }
  @container (max-width: 42rem) {
    .c-definition-list-block {
      margin-bottom: var(--spacing-3xl);
    }
  }
}
@layer components {
  .c-disclaimer {
    padding-top: var(--spacing-md);
  }
  .c-disclaimer__list {
    margin: var(--spacing-0) var(--spacing-0) var(--spacing-0) var(--spacing-md);
    padding-left: var(--spacing-md);
    color: var(--semantic-text-subtle);
    font-size: var(--font-size-xs);
    text-align: justify;
    border-left: var(--border-width-heavy) solid var(--semantic-text-subtle);
    list-style: none;
  }
  .c-disclaimer__item {
    margin-bottom: var(--spacing-xs);
  }
}
@layer components {
  .c-item-list__list {
    display: grid;
    row-gap: var(--spacing-md);
    -webkit-column-gap: var(--spacing-lg);
       -moz-column-gap: var(--spacing-lg);
            column-gap: var(--spacing-lg);
    margin: var(--spacing-0, 0);
    padding: var(--spacing-0, 0);
    font-size: var(--semantic-font-size-list);
    list-style: none;
  }
  .c-item-list__item-term {
    position: relative;
    display: grid;
    grid-auto-flow: column;
    grid-column: 1;
    gap: var(--spacing-lg);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: start;
    margin: var(--spacing-0, 0);
    font-size: var(--semantic-font-size-list-term);
  }
  .c-item-list__item-desc {
    grid-column: 2;
    margin: var(--spacing-0, 0);
    font-size: var(--semantic-font-size-list-group-desc-deco-fluid);
  }
  .c-item-list__content-title {
    font-size: var(--semantic-font-size-list-fluid);
    line-height: var(--semantic-line-height-list-content-title);
    margin-block: 0 var(--spacing-md);
  }
  .c-item-list--steps {
    counter-reset: step; /* カウンタ初期化 */
  }
  .c-item-list--steps > .c-item-list__item {
    position: relative;
    grid-template-columns: -webkit-max-content;
    grid-template-columns: max-content;
    padding-left: var(--spacing-5xl); /* バッジぶんのスペース */
    counter-increment: step; /* ステップを+1 */
  }
  .c-item-list--steps > .c-item-list__item::before {
    position: absolute;
    top: 50%;
    left: 6%;
    color: var(--semantic-text-list-label);
    font-family: var(--semantic-font-family-list-label);
    font-size: var(--semantic-font-size-list-label);
    font-weight: var(--semantic-font-weight-list-label);
    font-style: var(--semantic-font-style-list-label);
    line-height: 1;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    content: "Step" counter(step, decimal-leading-zero);
  }
  .c-item-list--steps.c-item-list--steps-vertical > .c-item-list__item {
    margin: 0 0 var(--spacing-2xl) 0;
    -webkit-padding-start: var(--spacing-2xl);
            padding-inline-start: var(--spacing-2xl);
  }
  .c-item-list--steps.c-item-list--steps-vertical > .c-item-list__item::before {
    position: relative;
    top: auto;
    left: auto;
  }
  .c-item-list--points {
    counter-reset: step; /* カウンタ初期化 */
  }
  .c-item-list--points > .c-item-list__item {
    position: relative;
    grid-template-columns: -webkit-max-content;
    grid-template-columns: max-content;
    padding-left: var(--spacing-5xl); /* バッジぶんのスペース */
    counter-increment: step; /* ステップを+1 */
  }
  .c-item-list--points > .c-item-list__item::before {
    position: absolute;
    top: 50%;
    left: 6%;
    color: var(--semantic-text-list-label);
    font-family: var(--semantic-font-family-list-label);
    font-size: var(--semantic-font-size-list-label);
    font-weight: var(--semantic-font-weight-list-label);
    font-style: var(--semantic-font-style-list-label);
    line-height: 1;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    content: "Point" counter(step, decimal-leading-zero);
  }
  .c-item-list--cases {
    counter-reset: step; /* カウンタ初期化 */
  }
  .c-item-list--cases > .c-item-list__item {
    position: relative;
    grid-template-columns: -webkit-max-content;
    grid-template-columns: max-content;
    padding-left: var(--spacing-5xl); /* バッジぶんのスペース */
    counter-increment: step; /* ステップを+1 */
  }
  .c-item-list--cases > .c-item-list__item::before {
    position: absolute;
    top: 50%;
    left: 8%;
    color: var(--semantic-text-list-label);
    font-family: var(--semantic-font-family-list-label);
    font-size: var(--semantic-font-size-list-label);
    font-weight: var(--semantic-font-weight-list-label);
    font-style: var(--semantic-font-style-list-label);
    line-height: 1;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    content: "Case" counter(step, decimal-leading-zero);
  }
  .c-item-list--term-radius {
    grid-template-columns: -webkit-max-content minmax(0, 1fr);
    grid-template-columns: max-content minmax(0, 1fr);
  }
  .c-item-list--term-radius > .c-item-list__item {
    display: grid;
    grid-template-columns: subgrid; /* 親の列幅をそのまま継承 */
    grid-column: 1/-1; /* 親の全列をまたぐ */
    gap: var(--spacing-md);
  }
  .c-item-list--term-radius .c-item-list__item-term {
    display: inline-block; /* 背景・角丸が効きやすい */
    grid-column: 1;
    justify-self: stretch; /* 列幅いっぱいに */
    margin: var(--spacing-0, 0);
    padding: var(--spacing-md) var(--spacing-lg);
    color: var(--semantic-text-inverse);
    font-weight: var(--semantic-font-weight-list);
    text-align: center;
    background: var(--semantic-bg-definition-term--accent-gradient-blue);
    border-radius: var(--radius-full);
  }
  .c-item-list--term-radius .c-item-list__item-desc {
    grid-column: 2;
    -ms-flex-line-pack: center;
        align-content: center;
    margin: var(--spacing-0, 0);
  }
  .c-item-list--arrow-right .c-item-list__item {
    gap: var(--spacing-3xl);
  }
  .c-item-list--arrow-right .c-item-list__item::after {
    position: absolute;
    top: 50%;
    left: var(--spacing-8xl);
    color: var(--semantic-text-point-icon-arrow);
    font-family: var(--semantic-font-family-icon);
    font-size: var(--font-size-3xl);
    font-weight: var(--semantic-font-weight-icon);
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    content: "keyboard_double_arrow_right";
  }
  .c-item-list--item-border-bottom .c-item-list__item {
    margin-bottom: var(--spacing-2xl);
    padding-bottom: var(--spacing-2xl);
    border-bottom: 1px solid var(--semantic-text-subtle);
  }
  .c-item-list--item-border-bottom .c-item-list__item:last-child {
    margin-bottom: 0;
    border: none;
  }
  .c-item-list--item-border-left > .c-item-list__item {
    margin: 0 0 var(--spacing-2xl) var(--spacing-5xl);
    padding-left: var(--spacing-lg);
    border: var(--semantic-border-style-brand);
    border-width: 0 0 0 1px;
  }
  .c-item-list--item-border-left > .c-item-list__item::before {
    left: -8%;
  }
  .c-item-list--plain {
    display: block;
    margin: 0;
    padding: 0;
    color: inherit;
    font-size: inherit;
    font-size: var(--semantic-font-size-body-fluid);
    font-weight: inherit;
    background: transparent;
    border-radius: 0;
    list-style: disc;
    list-style-position: outside;
    -webkit-padding-start: 1.25em;
            padding-inline-start: 1.25em;
  }
  .c-item-list--plain .c-item-list__item {
    text-align: left;
  }
  .c-item-list--plain .c-item-list__item + .c-item-list__item {
    -webkit-margin-before: var(--spacing-xs);
            margin-block-start: var(--spacing-xs);
  }
  .c-item-list--plain .c-item-list__item::marker {
    color: var(--semantic-list-marker, var(--color-teal-400));
  }
  .c-item-list {
    container: item-list/inline-size;
  }
  @container item-list (max-width: 42rem) {
    .c-item-list--term-radius {
      grid-template-columns: 1fr;
    }
    .c-item-list--term-radius .c-item-list__item {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--spacing-md);
    }
    .c-item-list--term-radius .c-item-list__item-term {
      grid-column: 1;
    }
    .c-item-list--term-radius .c-item-list__item-desc {
      grid-column: 1;
    }
    .c-item-list--arrow-right .c-item-list__item::after {
      display: none;
    }
  }
  @container item-list (max-width: 76.5rem) {
    .c-item-list__item {
      grid-template-columns: auto 1fr;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
    }
    .c-item-list__item-desc {
      grid-column: 2;
    }
  }
  @container item-list (max-width: 42rem) {
    .c-item-list--points .c-item-list__item {
      padding-top: var(--spacing-xl);
    }
    .c-item-list--points .c-item-list__item::before {
      top: 0;
      left: 0;
      -webkit-transform: none;
              transform: none;
    }
    .c-item-list--points .c-item-list__content-title {
      -webkit-margin-before: var(--spacing-md);
              margin-block-start: var(--spacing-md);
    }
    .c-item-list--item-border-left .c-item-list__item {
      margin-inline: var(--spacing-0);
    }
    .c-item-list--item-border-left .c-item-list__item::before {
      left: var(--spacing-lg);
      -webkit-padding-after: var(--spacing-md);
              padding-block-end: var(--spacing-md);
    }
    .c-item-list--steps.c-item-list--steps-vertical > .c-item-list__item {
      position: relative;
    }
    .c-item-list--steps.c-item-list--steps-vertical .c-definition-list__term,
    .c-item-list--steps.c-item-list--steps-vertical .c-definition-list__desc {
      padding: var(--spacing-md) var(--spacing-0) !important;
    }
    .c-item-list--cases > .c-item-list__item::before {
      position: absolute;
      top: -5%;
      left: auto;
      font-size: var(--semantic-font-size-list-label-fluid);
    }
    .c-item-list--item-border-left > .c-item-list__item {
      margin: 0 0 var(--spacing-2xl) var(--spacing-0);
    }
    .c-item-list--item-border-left .c-definition-list > .c-definition-list__term,
    .c-item-list--item-border-left .c-definition-list > .c-definition-list__desc,
    .c-item-list--item-border-left .c-definition-list .c-definition-list__group > .c-definition-list__term,
    .c-item-list--item-border-left .c-definition-list .c-definition-list__group > .c-definition-list__desc {
      grid-column: auto !important;
    }
  }
}
@layer components {
  :root {
    /* 初期値 */
    --logo-x: 0px;
    --logo-y: 0px;
    --header-shift: 0px; /* ヘッダー隠し時に -var(--header-height) が入る */
    --header-slide-dur: 350ms;
    --header-slide-ease: ease; /* いまの .l-header と同じに合わせる */
  }
  /* 初期フレームはアニメ無効＋非表示（チラつき防止） */
  html:not([data-header-init-done="1"]) .c-logo-visual {
    visibility: hidden; /* レイアウトに影響させないで隠す */
    -webkit-transition: none !important;
    transition: none !important;
  }
  /* クリック用（当たり判定）。見た目は視覚ロゴに任せる */
  .c-logo {
    display: block;
    background: transparent;
    opacity: 0; /* ヘッダー表示中は二重表示を避ける */
    -webkit-transition: opacity 0.15s ease;
    transition: opacity 0.15s ease;
    block-size: 32px;
    inline-size: 160px;
  }
  .c-logo__img {
    width: 138px;
    height: auto;
  }
  /* 中身は使わない想定 */
  .c-logo__mark {
    display: none;
  }
  /* 画面直付けの視覚ロゴ（ブレンド担当） */
  .c-logo-visual {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2147483647;
    width: 160px;
    height: 32px;
    background: #fff;
    /* デフォルトは常に可視（不透明）に */
    opacity: 1;
    mix-blend-mode: difference;
    /* 位置はCSS変数で。ヘッダー隠し時は --header-shift を足す */
    -webkit-transform: translate(var(--logo-x, 0), var(--logo-y, 0));
            transform: translate(var(--logo-x, 0), var(--logo-y, 0));
    will-change: transform;
    pointer-events: none;
    -webkit-mask: url("/assets/img/common/logo-axsia.svg") no-repeat center/contain;
    mask: url("/assets/img/common/logo-axsia.svg") no-repeat center/contain;
  }
  /* 1. 最上部（初期表示含む）：白をそのまま表示 */
  .is-at-top .c-logo-visual {
    mix-blend-mode: normal; /* 背景に左右されない純白 */
  }
  /* 2. 200px超 かつ ヘッダー表示中のみ：ブレンド表示 */
  body.is-past-threshold:not(.is-header-hidden) .c-logo-visual {
    mix-blend-mode: difference; /* 必要に応じて exclusion に変更可 */
  }
  /* 3. ヘッダー非表示中：色は白を維持（グレー化防止）、透明化はしない */
  .is-header-hidden .c-logo-visual {
    background: #fff;
    mix-blend-mode: normal; /* ← ここがポイント：必ず白のまま */
    /* opacity は変更しない（transform で画面外に去っていく） */
  }
  /* ★ ヘッダー隠し中はロゴも同じだけ上へ移動（＝一緒に消える） */
  .is-header-hidden {
    --header-shift: calc(-1 * var(--header-height, 0px) - 2px);
  }
  /* 0 < scrollY < 200 の間は、常に白（ブレンドしない） */
  body:not(.is-past-threshold) .c-logo-visual {
    background-color: #fff;
    mix-blend-mode: normal;
  }
}
@layer layout {
  .c-main-sub-page {
    padding-top: var(--spacing-4xl);
    background-color: var(--semantic-bg-surface);
  }
}
@layer components {
  .c-note {
    display: list-item; /* ← これで ::marker が使える */
    font-size: var(--semantic-font-size-notion);
    line-height: var(--line-height-sm);
    list-style-position: inside;
    -webkit-margin-start: 1.25em;
            margin-inline-start: 1.25em; /* マーカーぶんの余白 */
    -webkit-padding-start: 1em;
            padding-inline-start: 1em;
  }
  .c-note::marker {
    font-weight: 700;
    content: "※";
  }
  .c-note--cta-card {
    color: var(--semantic-font-color-notion-footer);
  }
  .c-note--table {
    font-size: var(--semantic-font-size-notion-table-fluid);
    font-weight: normal;
  }
}
@layer components {
  .c-horizontal-scroll {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-color: #07a989 transparent; /* 一部サポート Firefox用  */
  }
  .c-horizontal-scroll::-webkit-scrollbar-thumb {
    background-color: #07a989;
  }
  .c-horizontal-scroll::-webkit-scrollbar-track {
    background: transparent;
  }
  .c-process-flow__list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 64px;
  }
  .c-process-flow__item {
    position: relative;
    display: grid;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    grid-auto-rows: auto; /* 中身の高さに合わせる */
    grid-auto-columns: auto; /* 中身の高さに合わせる */
    width: 721px;
    grid-column-gap: var(--spacing-lg);
    grid-row-gap: var(--spacing-lg);
  }
  .c-process-flow__item::after {
    position: absolute;
    top: 50%;
    right: -40px;
    display: inline-block;
    height: 2px;
    margin-top: 8px;
    color: var(--semantic-text-accent);
    font-family: var(--semantic-font-family-icon);
    font-size: var(--font-size-3xl);
    font-weight: var(--semantic-font-weight-icon);
    content: "chevron_right";
    font-variation-settings: "FILL" 0, "wght" 100, "GRAD" 0, "opsz" 24;
    vertical-align: middle;
  }
  .c-process-flow__title {
    grid-area: 1/1/2/3;
  }
  .c-process-flow__image {
    grid-area: 2/1/3/2;
  }
  .c-process-flow__text {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    grid-area: 2/2/3/3;
  }
  .c-process-flow__mountain-climbing {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding-top: var(--spacing-lg);
    text-align: center;
    border: solid var(--semantic-text-subtle);
    border-width: 1px 0 0 0;
    grid-area: 3/1/4/3;
  }
  .c-process-flow__illust {
    border-radius: var(--radius-lg);
  }
  .c-process-flow__icon {
    margin-right: var(--spacing-lg);
    fill: #08b5a7;
  }
}
@layer components {
  .c-prose :where(a):not(.c-button, .c-nav-link, .c-card__link) {
    overflow-wrap: anywhere;
    text-underline-offset: 0.18em;
  }
  .c-prose :where(a):not(.c-button, .c-nav-link, .c-card__link):is([target=_blank], [rel~=external], [data-external=true])::after {
    color: currentColor;
    font-family: "Material Symbols Outlined";
    font-size: 0.95em;
    line-height: 1;
    content: "open_in_new";
    font-variation-settings: "FILL" 0, "wght" 200, "GRAD" 0, "opsz" 24;
    -webkit-margin-start: 0.25em;
            margin-inline-start: 0.25em;
    speak: none;
    vertical-align: -0.1em;
  }
  .c-prose :where(a):not(.c-button, .c-nav-link, .c-card__link)[href^="mailto:"] {
    position: relative;
    -webkit-padding-start: 1.4em;
            padding-inline-start: 1.4em;
  }
  .c-prose :where(a):not(.c-button, .c-nav-link, .c-card__link)[href^="mailto:"]::before {
    position: absolute;
    color: currentColor;
    font-family: "Material Symbols Outlined";
    font-size: 1em;
    line-height: 1;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    content: "mail";
    font-variation-settings: "FILL" 0, "wght" 200, "GRAD" 0, "opsz" 24;
    inset-block-start: 50%;
    inset-inline-start: 0;
    speak: none;
  }
  .c-prose :where(a):not(.c-button, .c-nav-link, .c-card__link)[href^="tel:"]::before {
    color: currentColor;
    font-family: "Material Symbols Outlined";
    font-size: 1em;
    content: "call";
    font-variation-settings: "FILL" 0, "wght" 200, "GRAD" 0, "opsz" 24;
    -webkit-margin-end: 0.25em;
            margin-inline-end: 0.25em;
    speak: none;
    vertical-align: -0.1em;
  }
  .c-prose :where(a):not(.c-button, .c-nav-link, .c-card__link)[download]::after {
    color: currentColor;
    font-family: "Material Symbols Outlined";
    font-size: 0.95em;
    content: "download";
    font-variation-settings: "FILL" 0, "wght" 200, "GRAD" 0, "opsz" 24;
    -webkit-margin-start: 0.25em;
            margin-inline-start: 0.25em;
    speak: none;
    vertical-align: -0.1em;
  }
  .c-prose :where(a):not(.c-button, .c-nav-link, .c-card__link)[href$=".pdf" i]::after {
    color: currentColor;
    font-family: "Material Symbols Outlined";
    font-size: 0.95em;
    content: "picture_as_pdf";
    font-variation-settings: "FILL" 0, "wght" 200, "GRAD" 0, "opsz" 24;
    -webkit-margin-start: 0.25em;
            margin-inline-start: 0.25em;
    speak: none;
    vertical-align: -0.1em;
  }
  .c-prose .u-link-no-icon::before,
  .c-prose .u-link-no-icon::after {
    content: none !important;
  }
  .c-prose__article {
    -webkit-margin-after: var(--spacing-4xl);
            margin-block-end: var(--spacing-4xl);
  }
  .c-prose__title {
    -webkit-margin-after: var(--spacing-4xl);
            margin-block-end: var(--spacing-4xl);
  }
}
.p-zero3-scroll-section {
  position: relative;
  height: 500vh; /* ←ステップ数を明示！ */
  margin: 0 !important; /* ← ここで不要な余白を消すのも有効 */
  padding: 0 !important;
}

.c-scroll-step {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  grid-template-rows: auto auto;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; /* ★ 中央寄せ */
  justify-items: center; /* ★ 中央寄せ */
  opacity: 0;
  -webkit-transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  pointer-events: none;
}
.c-scroll-step.is-active {
  z-index: 10;
  opacity: 1;
  pointer-events: auto;
}

.c-scroll-step__image {
  grid-area: 1/1/3/2;
}

.c-scroll-step__title {
  align-self: end;
  justify-self: start;
  font-size: var(--font-size-xl);
  font-weight: bold;
  grid-area: 1/2/2/3;
}

.c-scroll-step__text {
  align-self: start;
  justify-self: start;
  color: var(--color-gray-800);
  font-size: var(--font-size-md);
  grid-area: 2/2/3/3;
}

.c-scroll-sticky {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
}

@layer components {
  .c-section-head {
    display: block;
  }
  .c-section-head:not(:last-child) {
    -webkit-margin-after: var(--spacing-4xl);
            margin-block-end: var(--spacing-4xl);
  }
  .c-heading-en {
    display: block;
    font-family: var(--font-family-alumni-sans-pinstripe);
    font-size: var(--semantic-font-size-heading-title-section-en-fluid);
    font-weight: var(--semantic-font-size-weight-title-section-en);
    font-style: var(--font-style-italic);
    line-height: var(--semantic-line-height-heading-title-section-en);
    margin-block: 0 var(--spacing-md);
  }
  .c-heading-jp {
    margin: 0 0 1rem;
    color: var(--semantic-text-accent);
    font-size: var(--semantic-font-size-heading-title-section-primary-fluid);
    line-height: 1.4;
  }
  .c-lead-sentence {
    word-break: auto-phrase;
    text-align: justify;
  }
  .c-section-head .c-heading-en {
    -webkit-margin-after: var(--spacing-md);
            margin-block-end: var(--spacing-md);
  }
  .c-section-head .c-heading-jp {
    -webkit-margin-after: var(--spacing-sm);
            margin-block-end: var(--spacing-sm);
  }
}
@layer components {
  .c-introduction {
    display: block;
    text-align: center;
    -webkit-margin-after: var(--spacing-5xl);
            margin-block-end: var(--spacing-5xl);
  }
  .c-introduction .c-heading-en {
    display: block;
    -webkit-margin-after: var(--spacing-2xl);
            margin-block-end: var(--spacing-2xl);
  }
  .c-introduction .c-heading-jp {
    display: block;
    -webkit-margin-after: var(--spacing-3xl);
            margin-block-end: var(--spacing-3xl);
  }
  .c-introduction .c-subtitle {
    display: block;
    font-weight: var(--font-weight-medium);
    text-align: justify;
    -webkit-margin-after: var(--spacing-xl);
            margin-block-end: var(--spacing-xl);
  }
  .c-introduction .c-lead-sentence {
    display: block;
    text-align: center;
    inline-size: min(100%, var(--container-max-narrow-fluid, 56rem));
    -webkit-margin-after: var(--spacing-4xl);
            margin-block-end: var(--spacing-4xl);
    margin-inline: auto;
  }
  @container (max-width: 40rem) {
    .c-lead-sentence {
      text-align: left !important;
    }
  }
}
/* ===================================================================
   Layout: .c-section（上下の間隔）
   =================================================================== */
@layer components {
  .c-section:not(:last-child) {
    margin-block: var(--spacing-0) var(--spacing-5xl);
  }
  main > .c-section:not(:has(~ .c-section)) {
    -webkit-padding-after: var(--spacing-6xl);
            padding-block-end: var(--spacing-6xl);
  }
}
@layer components {
  .c-sub-hero-anchor-navi-block {
    position: absolute;
    right: 4rem;
    bottom: 4rem;
  }
  .c-sub-hero-anchor-navi {
    position: relative;
    z-index: var(--z-index-layer-high);
    padding: var(--spacing-md, 32px) var(--spacing-lg, 64px);
    background: var(--semantic-bg-anchor-nav);
    border: 1px solid rgba(174, 179, 181, 0.6);
    border-radius: var(--radius-lg);
    backdrop-filter: blur(var(--blur-xl));
    margin-block: var(--spacing-0) var(--spacing-2xl);
  }
  .c-sub-hero-anchor-navi__list {
    width: 200px;
    margin: var(--spacing-0, 0);
    padding: var(--spacing-0, 0);
    list-style: none;
  }
  .c-sub-hero-anchor-navi__item {
    position: relative;
    padding-left: 1.5em;
  }
  a.c-sub-hero-anchor-navi__link {
    position: relative;
    display: inline-block;
    color: var(--semantic-text-color-anchor-nav);
    font-size: var(--semantic-font-size-anchor-nav);
    line-height: 1.4;
    text-decoration: none;
    margin-block: 0.5em;
  }
  a.c-sub-hero-anchor-navi__link::before {
    position: absolute;
    top: 50%;
    left: var(--spacing-neg-xl);
    color: var(--semantic-text-color-anchor-nav-icon);
    font-family: var(--semantic-font-family-icon);
    font-size: var(--semantic-font-size-anchor-nav-icon);
    font-style: normal;
    line-height: 1;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    content: "chevron_right";
    font-variation-settings: "FILL" 0, "wght" 100, "GRAD" 0, "opsz" 32;
  }
  a.c-sub-hero-anchor-navi__link:last-child {
    padding-bottom: var(--spacing-0);
  }
  a.c-sub-hero-anchor-navi__link:hover {
    color: var(--color-teal-300);
  }
}
@layer components {
  .c-sub-hero {
    block-size: clamp(480px, 70dvh, 720px);
  }
  .c-sub-hero > .l-container,
  .c-sub-hero .u-cq-frame,
  .c-sub-hero .u-h-full,
  .c-sub-hero__inner {
    block-size: inherit;
  }
  .c-hero-area {
    --container-cap: var(--container-max-wide-fluid);
    --container-fill: 1;
    position: relative;
    margin-top: calc(-1 * var(--header-height, 0px));
    overflow: visible;
  }
  .c-sub-hero__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--spacing-2xl);
    -ms-flex-line-pack: center;
        align-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    inline-size: 100%;
  }
  .c-sub-hero__bg {
    position: relative;
    min-block-size: clamp(480px, 75svh, 720px);
  }
  .c-sub-hero__bg--gradient {
    background-color: var(--color-teal-400);
    background-image: radial-gradient(at 16% 71%, hsl(207, 74%, 50%) 0px, transparent 50%), radial-gradient(at 40% 20%, hsl(193, 100%, 74%) 0px, transparent 50%), radial-gradient(at 80% 0%, hsl(189, 100%, 56%) 0px, transparent 50%), radial-gradient(at 0% 50%, hsl(135, 100%, 93%) 0px, transparent 50%), radial-gradient(at 80% 50%, hsl(187, 92%, 50%) 0px, transparent 50%), radial-gradient(at 0% 100%, hsl(174, 88%, 46%) 0px, transparent 50%), radial-gradient(at 80% 70%, hsl(240, 80%, 68%) 0px, transparent 100%), radial-gradient(at 20% 20%, hsl(241, 100%, 70%) 0px, transparent 50%);
  }
  .c-sub-hero__bg-wrap {
    position: absolute;
    inset: 0;
    display: block;
    overflow: hidden;
  }
  .c-sub-hero__bg-img {
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: 70% center;
       object-position: 70% center;
    min-block-size: clamp(480px, 75svh, 720px);
  }
  .c-sub-hero__text {
    position: relative;
    z-index: var(--z-index-layer-mid);
    color: var(--semantic-text-inverse);
  }
  .c-hero__label {
    display: inline-block;
    font-size: var(--semantic-font-size-label-sm-fluid);
    border: var(--semantic-border-style-inverse);
    border-radius: var(--radius-full);
    -webkit-margin-after: var(--spacing-md);
            margin-block-end: var(--spacing-md);
    padding-block: var(--ui-pad-block-regular);
    padding-inline: var(--ui-pad-inline-regular);
  }
  .c-sub-hero__title {
    margin: var(--spacing-0);
    font-size: var(--font-size-48to64-fluid);
  }
  .c-sub-hero__main-copy {
    font-size: var(--semantic-font-size-page-title-sub-hero-main-copy-fluid);
    font-weight: var(--font-weight-thin);
    line-height: var(--line-height-xl);
  }
  .c-sub-hero .l-container > .u-cq-frame {
    container-name: sub-hero;
  }
  @container sub-hero (max-width: 40rem) {
    .c-sub-hero-anchor-navi-block {
      display: none;
    }
    .c-sub-hero__text {
      text-align: left;
    }
    .u-br--sm {
      display: inline !important;
    }
  }
  @container sub-hero (min-width: 72rem) {
    .c-sub-hero-anchor-navi__list {
      gap: var(--spacing-2xl);
    }
  }
}
@layer components {
  .c-table-block:not(:last-child) {
    margin-bottom: var(--spacing-4xl);
  }
  .c-table-scroll {
    position: relative;
    overflow: auto;
    overscroll-behavior-x: contain;
    background: -webkit-gradient(linear, left top, right top, color-stop(60%, var(--cap-color)), to(transparent)) 0 0/var(--cap-size) 100% no-repeat, -webkit-gradient(linear, right top, left top, color-stop(60%, var(--cap-color)), to(transparent)) 100% 0/var(--cap-size) 100% no-repeat, -webkit-gradient(linear, left top, right top, from(var(--shadow-color)), to(transparent)) 0 0/var(--shadow-size) 100% no-repeat, -webkit-gradient(linear, right top, left top, from(var(--shadow-color)), to(transparent)) 100% 0/var(--shadow-size) 100% no-repeat;
    background: linear-gradient(to right, var(--cap-color) 60%, transparent) 0 0/var(--cap-size) 100% no-repeat, linear-gradient(to left, var(--cap-color) 60%, transparent) 100% 0/var(--cap-size) 100% no-repeat, linear-gradient(to right, var(--shadow-color), transparent) 0 0/var(--shadow-size) 100% no-repeat, linear-gradient(to left, var(--shadow-color), transparent) 100% 0/var(--shadow-size) 100% no-repeat;
    background-color: transparent;
    background-attachment: local, local, scroll, scroll;
    background-origin: content-box, content-box, padding-box, padding-box;
    background-clip: content-box, content-box, padding-box, padding-box;
    -webkit-overflow-scrolling: touch;
    --cap-color: var(--semantic-bg-table-tbody-td--default);
    --shadow-color: var(--color-black-alpha-20);
    --cap-size: var(--spacing-lg);
    --shadow-size: var(--spacing-md);
  }
  .c-table {
    width: 100%;
    min-width: 100%;
    background: transparent;
    border-collapse: collapse;
  }
  .c-table thead {
    background-color: var(--semantic-bg-table-thead-th--scroll-fade);
  }
  .c-table-scroll__hint {
    position: absolute;
    inset: 50% auto auto 50%;
    z-index: 1200;
    padding: 0.55em 0.9em;
    color: var(--semantic-color-table-scroll-hint);
    font-size: var(--font-size-sm, 0.875rem);
    line-height: 1.25;
    white-space: nowrap;
    background: var(--semantic-bg-table-scroll-hint);
    border-radius: var(--semantic-radius-sm, 8px);
    opacity: 0;
    -webkit-box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
            box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    -webkit-transition: opacity 0.25s ease, -webkit-transform 0.25s ease;
    transition: opacity 0.25s ease, -webkit-transform 0.25s ease;
    transition: opacity 0.25s ease, transform 0.25s ease;
    transition: opacity 0.25s ease, transform 0.25s ease, -webkit-transform 0.25s ease;
    pointer-events: none;
  }
  .c-table-scroll__hint::before {
    color: var(--semantic-icon-color--inverse);
    font-family: var(--semantic-font-family-icon, "Material Symbols Outlined");
    font-size: var(--semantic-font-size-btn-icon--lg);
    font-weight: var(--semantic-font-weight-icon);
    content: "swipe";
    font-variation-settings: "FILL" 0, "wght" 100, "GRAD" 0, "opsz" 16;
    vertical-align: middle;
  }
  .c-table-scroll.is-revealed .c-table-scroll__hint {
    opacity: 0.98;
    -webkit-animation: blinkTwice 2.4s ease-in-out 0s 1, fadeOut 0.6s ease 3.2s 1 forwards;
            animation: blinkTwice 2.4s ease-in-out 0s 1, fadeOut 0.6s ease 3.2s 1 forwards;
  }
  .c-table-scroll.is-scrolled .c-table-scroll__hint {
    opacity: 0;
    -webkit-transform: translate(-50%, calc(-50% + 6px));
            transform: translate(-50%, calc(-50% + 6px));
  }
  .c-table-scroll.is-expired .c-table-scroll__hint {
    display: none;
  }
  .c-table thead {
    background-color: var(--semantic-bg-table-thead_th--default);
  }
  .c-table thead th {
    padding: var(--spacing-md) var(--spacing-sm);
    color: var(--semantic-text-inverse);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-regular);
    text-align: center;
    border: var(--semantic-border-style-inverse);
    border-width: 0 0 1px 1px;
  }
  .c-table tbody th {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-regular);
    text-align: center;
    background-color: var(--semantic-bg-table-tbody-th--default);
    border: var(--semantic-border-style-inverse);
    border-width: 0 0 1px 1px;
  }
  .c-table tbody td {
    padding: var(--spacing-md) var(--spacing-sm);
    font-size: var(--font-size-sm);
    text-align: center;
    border: var(--semantic-border-style-subtle);
    border-width: 0 1px 1px 0;
  }
  .c-table tbody tr:hover td {
    background-color: var(--color-teal-100) !important;
  }
  .c-table tbody tr:hover td.u-table-cell-bg--emphasis-primary {
    background-color: var(--semantic-bg-table-emphasis-primary-hover) !important;
  }
  .c-table--row-border thead th {
    border: var(--semantic-border-style-default);
    border-width: 0 0 1px 0;
  }
  .c-table--row-border tbody td {
    border: var(--semantic-border-style-subtle);
    border-width: 0 0 1px 0;
    padding-inline: var(--spacing-md);
  }
  .c-table--odd tbody tr:nth-child(odd) {
    background-color: var(--semantic-bg-table-row--stripe);
  }
  .c-table--td-bg-color tbody td {
    background-color: var(--semantic-bg-muted);
  }
  .c-table--align-left tbody td {
    text-align: left;
  }
  .c-table--tbody-font-size-smaller tbody td {
    font-size: var(--font-size-xs);
  }
  body.is-bp-below-desktop .c-table {
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
  }
  body.is-bp-gte-desktop .c-table {
    width: 100%;
    min-width: 100%;
    word-break: break-word;
    overflow-wrap: anywhere;
  }
  .c-table-scroll {
    container-name: table-scroll;
    container-type: inline-size;
  }
  @container table-scroll (min-width: 64rem) {
    .c-table-scroll {
      overflow: visible;
      background: none;
      padding-inline: 0;
    }
    .c-table {
      width: 100%;
      min-width: 100%;
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .c-table-scroll .c-table-scroll__hint {
      -webkit-animation: none !important;
              animation: none !important;
    }
  }
  @-webkit-keyframes blinkTwice {
    0% {
      opacity: 0.98;
    }
    20% {
      opacity: 0.35;
    }
    40% {
      opacity: 0.98;
    }
    60% {
      opacity: 0.35;
    }
    80% {
      opacity: 0.98;
    }
    100% {
      opacity: 0.98;
    }
  }
  @keyframes blinkTwice {
    0% {
      opacity: 0.98;
    }
    20% {
      opacity: 0.35;
    }
    40% {
      opacity: 0.98;
    }
    60% {
      opacity: 0.35;
    }
    80% {
      opacity: 0.98;
    }
    100% {
      opacity: 0.98;
    }
  }
  @-webkit-keyframes fadeOut {
    0% {
      opacity: 0.98;
    }
    100% {
      opacity: 0;
    }
  }
  @keyframes fadeOut {
    0% {
      opacity: 0.98;
    }
    100% {
      opacity: 0;
    }
  }
}
@layer components {
  .c-hero__brand {
    margin-right: var(--spacing-md);
    font-weight: var(--font-weight-bold);
    letter-spacing: var(--letter-spacing-xs);
  }
  .c-hero__product {
    font-family: var(--font-hero-product);
    font-weight: var(--font-weight-thin);
  }
  .c-subtitle {
    display: block;
    font-size: var(--semantic-font-size-heading-title-section-secondary-fluid, 32px);
    font-weight: normal;
    line-height: 1.4;
    text-align: right;
    margin-block: 0 var(--spacing-2xl);
  }
  .c-subtitle-secondary__shoulder {
    color: var(--semantic-text-accent);
    font-family: "Alumni Sans";
    font-size: var(--font-size-xl);
    font-weight: 300;
    font-style: italic;
    letter-spacing: var(--letter-spacing-lg);
    text-align: right;
  }
  .c-subtitle-secondary__shoulder-number {
    display: block;
  }
  .c-process-flow__title {
    color: var(--semantic-color-brand-light);
    letter-spacing: var(--letter-spacing-lg);
  }
  .c-section-title {
    margin-bottom: var(--spacing-4xl);
  }
  .c-item-list__title {
    display: block;
    margin: 0 0 var(--spacing-3xl) 0;
    font-size: var(--font-size-2xl);
    font-weight: bold;
    text-align: center;
  }
  .c-subtitle-tertiary {
    margin-left: var(--spacing-2xl);
    font-size: var(--font-size-xl);
  }
  @container (max-width: 40rem) {
    .c-section-head.c-section-head:not(:last-child) {
      -webkit-margin-after: var(--spacing-2xl);
              margin-block-end: var(--spacing-2xl);
    }
    .c-section-head .c-heading-jp {
      -webkit-margin-after: var(--spacing-3xl);
              margin-block-end: var(--spacing-3xl);
    }
    .c-subtitle {
      text-align: left;
    }
    .u-absolute-is {
      inset-inline-start: var(--spacing-0) !important;
    }
    .u-br--sm {
      display: inline !important;
    }
  }
  @container sub-main (min-width: 72rem) {}
}
/* ========================================================
   Project
   ======================================================== */
@layer project {
  .c-main-sub-page {
    container-name: cq-sub-page-main;
    container-type: inline-size;
  }
  .c-main-sub-page .l-container > .u-cq-frame {
    container-name: cq-sub-page-section;
  }
}
/* ===================================================================
   Project: .p-cta-card
   フッター CTA 専用（半透明＋ブラー・中央揃え）
   =================================================================== */
@layer project {
  .c-card-glass--footer {
    color: var(--semantic-text-inverse);
    background: var(--semantic-bg-cta-card);
    border: var(--semantic-border-style-cta-card);
    border-radius: var(--radius-xl);
    backdrop-filter: blur(var(--blur-md));
  }
  .p-cta-card__inner {
    padding: var(--spacing-2xl) var(--spacing-xl);
  }
  .p-cta-card__heading {
    margin-top: var(--spacing-0);
    font-size: var(--font-size-xl);
    text-align: center;
  }
  .p-cta-cards > .l-container > .u-cq-frame {
    container-name: cta-cards;
  }
  .p-cta-cards .l-card-block {
    container-name: cta-cards-grid;
    --cta-cards-stage: one-column;
  }
  @container cta-cards (min-width: 56rem) {
    .p-cta-cards .l-card-block {
      --cta-cards-stage: two-column;
    }
  }
  @container cta-cards (min-width: 72rem) {
    .p-cta-cards .l-card-block {
      --cta-cards-stage: wide;
    }
  }
  @container cta-cards-grid style(--cta-cards-stage: two-column) {
    .p-cta-cards .l-card-block__inner {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  @container cta-cards-grid style(--cta-cards-stage: wide) {
    .p-cta-cards .l-card-block__inner {
      grid-template-columns: repeat(2, 1fr);
      gap: var(--spacing-2xl);
    }
  }
}
@layer project {
  .p-top-hero-area {
    position: relative;
  }
  .p-top-hero {
    position: absolute;
    inset: 0;
    z-index: var(--z-index-layer-mid);
    display: grid;
    place-items: center start;
  }
  .p-top-hero__inner {
    position: relative;
    inline-size: 100%;
  }
  .p-hero__text {
    position: relative;
    z-index: var(--z-index-layer-high);
    color: var(--semantic-text-inverse);
  }
  .p-hero__main-copy {
    position: absolute;
    display: inline-block;
    margin-bottom: var(--spacing-2xl);
    font-size: var(--semantic-font-size-page-title-top-hero-main-copy-fluid);
    font-weight: var(--semantic-font-weight-page-title-top-hero-main-copy);
    line-height: var(--line-height-sm);
    text-align: right;
    inset-block-end: var(--spacing-6xl);
    inset-inline-end: var(--spacing-0);
  }
  .p-top-hero__text--notion {
    display: block;
    font-size: var(--font-size-xs);
  }
  .p-top-hero__title {
    position: relative;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    font-size: var(--semantic-font-size-page-title-top-hero-fluid);
    line-height: 1;
    inline-size: -webkit-max-content;
    inline-size: -moz-max-content;
    inline-size: max-content;
  }
  .p-hero-bomb {
    position: absolute;
    display: inline-grid;
  }
  .p-hero-sparkle {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
  }
  .p-hero-sparkle img {
    position: absolute;
    width: 30px;
    height: auto;
    will-change: transform;
  }
  .p-sparkle-1 {
    -webkit-animation: sparkle-float 4.6s ease-in-out infinite;
            animation: sparkle-float 4.6s ease-in-out infinite;
    -webkit-animation-delay: -0.6s;
            animation-delay: -0.6s;
    inset-block-start: 5%;
    inset-inline-start: 20%;
  }
  .p-sparkle-2 {
    -webkit-animation: sparkle-float 5.2s ease-in-out infinite;
            animation: sparkle-float 5.2s ease-in-out infinite;
    inset-block-start: 60%;
    inset-inline-end: 5%;
  }
  @-webkit-keyframes sparkle-float {
    0%, 100% {
      -webkit-transform: translateY(0);
              transform: translateY(0);
    }
    50% {
      -webkit-transform: translateY(-10px);
              transform: translateY(-10px);
    }
  }
  @keyframes sparkle-float {
    0%, 100% {
      -webkit-transform: translateY(0);
              transform: translateY(0);
    }
    50% {
      -webkit-transform: translateY(-10px);
              transform: translateY(-10px);
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .p-hero-sparkle img {
      -webkit-animation: none;
              animation: none;
    }
  }
  .p-top-hero__media {
    position: absolute;
    inset: 0;
    z-index: var(--z-index-layer-low);
    display: block;
    isolation: isolate;
    overflow: hidden;
    block-size: 100%;
    inline-size: 100%;
  }
  .p-top-hero__media::after {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    content: "";
  }
  .p-top-hero__media > :is(video, img),
  .p-top-hero__top-main-video,
  .p-top-hero__top-main-img {
    position: absolute;
    inset: 0;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: right center;
       object-position: right center;
    block-size: 100%;
    inline-size: 100%;
  }
  .p-top-hero__top-main-img {
    opacity: 0;
    -webkit-transition: opacity 3s ease;
    transition: opacity 3s ease;
  }
  .p-top-hero__bg-text {
    position: absolute;
    right: 0;
    isolation: isolate;
    color: var(--semantic-text-top-top-hero-bg-text);
    font-family: "Alumni Sans Pinstripe", sans-serif;
    font-size: var(--semantic-font-size-top-top-hero-bg-fluid, var(--font-size-9xl));
    font-weight: 400;
    font-style: italic;
    line-height: 1.2;
    text-align: right;
    text-wrap: balance;
    opacity: var(--opacity-60);
    inset-block-end: var(--spacing-neg-6xl);
    padding-inline: var(--container-gutter-fluid);
  }
  @property --grad-offset {
    inherits: false;
    initial-value: 0px;
    syntax: "<length>";
  }
  .p-gradient-text {
    --grad-period: 480px;
    --grad-time: 8s;
    position: relative;
    z-index: var(--z-index-layer-mid);
    text-align: center;
    background-image: repeating-linear-gradient(135deg, #0c9ff5 calc(0px + var(--grad-offset)), #11c0f1 calc(0.25 * var(--grad-period) + var(--grad-offset)), #31cec5 calc(0.5 * var(--grad-period) + var(--grad-offset)), #00bc9c calc(0.75 * var(--grad-period) + var(--grad-offset)), #0c9ff5 calc(1 * var(--grad-period) + var(--grad-offset)));
    -webkit-background-clip: text;
    background-clip: text;
    mix-blend-mode: normal;
    will-change: background-image;
    -webkit-animation: grad-shift var(--grad-time) linear infinite;
            animation: grad-shift var(--grad-time) linear infinite;
    -webkit-text-fill-color: transparent;
  }
  @-webkit-keyframes grad-shift {
    from {
      --grad-offset: 0px;
    }
    to {
      --grad-offset: var(--grad-period);
    }
  }
  @keyframes grad-shift {
    from {
      --grad-offset: 0px;
    }
    to {
      --grad-offset: var(--grad-period);
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .p-gradient-text {
      -webkit-animation: none;
              animation: none;
    }
  }
  .p-top-features {
    position: relative;
    z-index: var(--z-index-layer-high);
    width: 100%;
    border-radius: var(--radius-xl) var(--radius-xl) 0px 0px;
    -webkit-margin-before: var(--spacing-neg-xl);
            margin-block-start: var(--spacing-neg-xl);
    padding-block: var(--spacing-3xl) var(--spacing-5xl);
  }
  .p-top-features--precipitation {
    background-color: var(--semantic-bg-top-precipitation);
  }
  .p-top-features--key-technology {
    background-color: var(--semantic-bg-top-key-technology);
  }
  .p-top-features--axsia-zero-series {
    background-color: var(--semantic-bg-top-axsia-zero-series);
  }
  .p-top-features--driving-product-innovation {
    background-color: var(--semantic-bg-top-driving-product-innovation);
  }
  .p-top-features__inner {
    --section-col-min: var(--section-col-min-default, 28rem);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(var(--section-col-min), 1fr));
    gap: var(--section-grid-gap, var(--spacing-xl));
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start;
  }
  .p-top-features__heading {
    line-height: var(--semantic-line-height-heading-title-section-primary);
    margin-block: var(--spacing-2xl);
  }
  .p-top-features__section-heading {
    grid-column: 1/-1;
    margin: 0;
    font-family: var(--font-family-alumni-sans-pinstripe);
    font-size: var(--semantic-font-size-heading-title-section-en-fluid);
    font-weight: var(--font-weight-thin);
    font-style: italic;
    line-height: var(--semantic-line-height-heading-title-section-en);
  }
  .p-top-features__section-heading--precipitation {
    color: var(--semantic-text-top-precipitation);
  }
  .p-top-features__section-heading--key-technology {
    color: var(--semantic-text-top-precipitation);
    text-align: center;
  }
  .p-top-features__section-heading--axsia-zero-series, .p-top-features__section-heading--driving-product-innovation {
    color: var(--semantic-text-top-axsia-zero-series);
    text-align: center;
    -webkit-margin-after: var(--spacing-xl);
            margin-block-end: var(--spacing-xl);
  }
  .p-top-features__sub-heading {
    color: var(--color-blue-400);
    font-weight: bold;
    margin-block: var(--spacing-0);
  }
  .p-top-features__sub-heading--axsia-zero-series, .p-top-features__sub-heading--driving-product-innovation {
    color: var(--semantic-text-inverse);
    text-align: center;
  }
  .p-top-features__text {
    -webkit-margin-after: var(--spacing-3xl);
            margin-block-end: var(--spacing-3xl);
  }
  .c-figure-block--precipitation {
    -webkit-margin-before: var(--spacing-5xl);
            margin-block-start: var(--spacing-5xl);
  }
  .p-top-features__body--key-technology, .p-top-features__body--axsia-zero-series, .p-top-features__body--driving-product-innovation {
    text-align: center;
  }
  @container (min-width: 64rem) {
    html[data-header-init-done="1"] .p-top-hero-area {
      margin-top: calc(-1 * var(--header-height, 0px));
    }
  }
  .p-top-hero-area .l-container > .u-cq-frame {
    container-name: top-hero;
  }
  @container top-hero (max-width: 40rem) {
    .p-top-hero__inner .u-br--sm {
      display: inline !important;
    }
    .p-top-hero__bg-text {
      line-height: 0.7;
    }
    .p-hero-bomb {
      position: absolute !important;
      inset-block-start: var(--spacing-neg-5xl) !important;
      -webkit-margin-start: var(--spacing-6xl) !important;
              margin-inline-start: var(--spacing-6xl) !important;
    }
    .c-deco-label--shape-square-rotate-45::before {
      background: transparent;
      border: none;
    }
    .p-hero-sparkle {
      display: none;
    }
    .c-deco-label--content-text {
      position: relative;
      display: inline-grid;
      grid-auto-flow: row;
      grid-auto-columns: -webkit-max-content;
      grid-auto-columns: max-content;
      -webkit-column-gap: var(--deco-line-gap, 0.2em);
         -moz-column-gap: var(--deco-line-gap, 0.2em);
              column-gap: var(--deco-line-gap, 0.2em);
      -webkit-box-align: baseline;
          -ms-flex-align: baseline;
              align-items: baseline;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      justify-items: center;
      -webkit-margin-before: var(--spacing-sm);
              margin-block-start: var(--spacing-sm);
    }
    .p-top-hero__title {
      font-size: var(--font-size-6xl);
    }
    .c-deco-label__line--title-sub {
      font-size: var(--semantic-font-size-label-md);
    }
    .c-deco-label__line--title-main {
      font-size: var(--semantic-font-size-label-3xl);
      font-weight: normal;
    }
    .c-hero__brand {
      letter-spacing: var(--semantic-letter-spacing-page-title-top-hero);
    }
    .p-gradient-text--bg-text {
      font-size: var(--font-size-8xl);
      line-height: 0.4;
      background: none;
      background-clip: unset;
      -webkit-animation: none;
              animation: none;
      inset-block-end: var(--spacing-4xl);
      -webkit-text-fill-color: #00bc9c;
    }
    .p-hero__main-copy {
      position: relative;
      font-size: var(--semantic-font-size-page-title-top-hero-main-copy);
      text-align: left;
      inset-block-end: var(--spacing-0);
    }
  }
  .p-top-features {
    container-name: top-features;
    container-type: inline-size;
  }
  @container top-features (max-width: 40rem) {
    .p-top-features__inner {
      grid-template-columns: 1fr;
      --section-grid-gap: var(--spacing-md);
    }
    .p-top-features__body + .c-figure-block {
      -webkit-margin-before: var(--spacing-0);
              margin-block-start: var(--spacing-0);
    }
    .p-top-features__text {
      text-align: left;
    }
    .u-br--sm {
      display: inline;
    }
  }
  @container top-features (min-width: 72rem) {
    .p-top-features__inner {
      gap: var(--spacing-2xl);
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .p-top-hero__top-main-video {
      display: none;
    }
    .p-top-hero__top-main-img {
      opacity: 1 !important;
      -webkit-transition: none;
      transition: none;
    }
  }
}
@layer project {
  .shape__items {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 1rem;
  }
  .shape__item {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 calc(33.333% - 1rem);
            flex: 1 1 calc(33.333% - 1rem);
    text-align: center;
  }
  .shape__item img {
    width: 100%;
    height: auto;
    border-radius: 0.5rem;
  }
  .shape__item figcaption {
    margin-top: 0.5rem;
    font-size: 0.875rem;
  }
  .p-concluding-remarks__heading-secondary {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    padding: var(--spacing-2xl) var(--spacing-xl);
    color: var(--semantic-text-inverse);
    font-size: var(--font-size-2xl);
    overflow-wrap: anywhere;
    text-wrap: balance;
    background: var(--semantic-bg-remark-heading, var(--semantic-bg-definition-term--accent-gradient-blue));
    border-radius: var(--radius-2xl, 20px);
    inline-size: min(100%, var(--container-max-narrow-fluid));
    min-block-size: clamp(var(--spacing-3xl), 10vw, var(--spacing-4xl));
  }
  .p-concluding-remarks__header {
    display: grid;
    grid-template-rows: 1fr;
    grid-template-columns: repeat(2, 1fr);
    margin-bottom: var(--spacing-2xl);
    grid-column-gap: var(--spacing-lg);
    grid-row-gap: 0px;
  }
  .c-concluding-remarks__description {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .p-corrosion__immersion-test-data {
    display: grid;
    grid-template-rows: repeat(3, auto);
    grid-template-columns: repeat(2, auto);
    padding: var(--spacing-4xl) var(--spacing-2xl);
    background-color: var(--semantic-bg-muted);
    border-radius: var(--radius-lg);
    grid-column-gap: 24px;
    grid-row-gap: 24px;
  }
  .c-subtitle-secondary {
    grid-area: 1/1/2/2;
  }
  .c-subtitle-secondary__shoulder {
    grid-area: 1/2/2/3;
  }
  .c-chart-block {
    grid-area: 2/1/3/3;
  }
  .c-chart-block-exclusion {
    grid-area: 3/1/4/3;
  }
  .c-subtitle-secondary {
    font-size: var(--font-size-2xl);
  }
  .c-subtitle-secondary__shoulder {
    color: var(--semantic-text-accent);
    font-family: "Alumni Sans";
    font-size: var(--font-size-xl);
    font-weight: 300;
    font-style: italic;
    letter-spacing: var(--letter-spacing-lg);
    text-align: right;
  }
  .c-subtitle-secondary__shoulder-number {
    display: block;
  }
  .highcharts-data-table table {
    width: 100%;
    min-width: 700px;
    text-align: center;
    border-collapse: collapse;
    table-layout: auto;
  }
  .highcharts-data-table table th,
  .highcharts-data-table table td {
    padding: 1em;
    border-bottom: 1px solid var(--white-100, #ffffff);
  }
  .highcharts-data-table table thead {
    background-color: #609fe0;
  }
  .highcharts-data-table table thead th {
    padding: 1em 0.8em;
    font-size: var(--font-size-md);
    font-weight: normal;
    border: solid #d2e8f1;
    border-width: 0 0 1px 1px;
  }
  .highcharts-data-table table tbody {
    background-color: var(--white-100, #ffffff);
    border: 1px solid #d2e8f1;
  }
  .highcharts-data-table table tbody tr {
    border-bottom: 1px solid #ccc;
  }
  .highcharts-data-table table tbody tr:nth-child(odd) {
    background-color: var(--white-100, #ffffff);
  }
  .highcharts-data-table table tbody tr th {
    font-size: var(--font-size-md);
    font-weight: normal;
    background-color: var(--slider-bg-2, #f7fafd);
    border: solid var(--white-100, #ffffff);
    border-width: 0 0 1px 1px;
  }
  .highcharts-data-table table tbody tr td {
    padding: 0.2em;
    font-size: var(--font-size-md);
    border: solid #d2e8f1;
    border-width: 0 0 1px 1px;
  }
  .highcharts-data-table thead th {
    color: var(--semantic-text-inverse);
  }
  .c-col-01 {
    width: 80px;
  }
  .c-col-03 {
    width: 170px;
  }
  .c-col-04 {
    width: 300px;
  }
  .c-col-05 {
    width: 260px;
  }
  .p-zero3-scroll-section {
    position: relative;
    padding-top: 50vh;
  }
  @media (max-width: 767.98px) {
    .p-concluding-remarks__header {
      grid-template-columns: 1fr;
    }
  }
  @supports (word-break: auto-phrase) {
    [lang=ja] .p-concluding-remarks__heading-secondary {
      word-break: auto-phrase;
    }
  }
}
@layer project {
  .c-method-results-view {
    display: grid;
    grid-template-rows: repeat(3, auto);
    grid-template-columns: repeat(2, 1fr);
    grid-column-gap: 0px;
    grid-row-gap: 0px;
  }
  .c-method-results-view__text {
    grid-area: 1/1/2/2;
  }
  .c-method-results-view__figure-1 {
    grid-area: 1/2/2/3;
  }
  .c-method-results-view__figure-2 {
    grid-area: 2/1/3/2;
  }
  .c-method-results-view__figure-3 {
    grid-area: 2/2/3/3;
  }
  .c-method-results-view__movie {
    grid-area: 3/1/4/3;
  }
  .c-method-results-view__figure figure {
    color: #fff;
    text-align: center;
    background-color: #ccc;
    padding-block: 200px;
  }
}
/* ========================================================
   utility
   ======================================================== */
@layer utilities {
  /* スクリーンリーダー専用（視覚的に隠すけど読み上げ対象にする） */
  .u-sr-only {
    position: absolute !important;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: var(--spacing-0, 0);
    overflow: hidden;
    clip: rect(0, 0, 0, 0); /* 旧仕様のフォールバック */
    clip-path: inset(50%); /* 現行ブラウザ向け */
    white-space: nowrap;
    border: 0;
  }
  /* 解除用（必要なら） */
  .u-not-sr-only {
    position: static !important;
    width: auto;
    height: auto;
    margin: var(--spacing-0, 0);
    overflow: visible;
    clip: auto;
    clip-path: none;
    white-space: normal;
    border: 0;
  }
}
@layer utilities {
  .u-bg-text {
    position: absolute;
    z-index: 100;
    color: var(--semantic-text-accent);
    font-family: "Alumni Sans Pinstripe", sans-serif;
    font-size: 128px;
    font-weight: 400;
    font-style: italic;
    line-height: 1.2;
    text-align: right;
  }
}
@layer utilities {
  .u-center {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .u-center-grid {
    display: grid;
    place-content: center;
  }
  .u-center-x {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .u-center-y {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .u-abs-center {
    position: absolute;
    inset-block-start: var(--center-block, 50%);
    inset-inline-start: var(--center-inline, 50%);
    translate: var(--center-translate-x, -50%) var(--center-translate-y, -50%);
  }
  .u-abs-center-x {
    position: absolute;
    inset-inline-start: var(--center-inline, 50%);
    translate: var(--center-translate-x, -50%) 0;
  }
  .u-abs-center-y {
    position: absolute;
    inset-block-start: var(--center-block, 50%);
    translate: 0 var(--center-translate-y, -50%);
  }
  .u-abs-center-before::before {
    position: absolute;
    inset-block-start: var(--center-block, 50%);
    inset-inline-start: var(--center-inline, 50%);
    translate: var(--center-translate-x, -50%) var(--center-translate-y, -50%);
  }
  .u-abs-center-after::after {
    position: absolute;
    inset-block-start: var(--center-block, 50%);
    inset-inline-start: var(--center-inline, 50%);
    translate: var(--center-translate-x, -50%) var(--center-translate-y, -50%);
  }
  .u-abs-center-before-x::before,
  .u-abs-center-after-x::after {
    position: absolute;
    inset-inline-start: var(--center-inline, 50%);
    translate: var(--center-translate-x, -50%) 0;
  }
  .u-abs-center-before-y::before,
  .u-abs-center-after-y::after {
    position: absolute;
    inset-block-start: var(--center-block, 50%);
    translate: 0 var(--center-translate-y, -50%);
  }
}
@layer layout {
  .u-cq-frame {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: 0;
    container-type: inline-size;
  }
}
@layer utilities {
  .u-cq-style {
    container-type: style;
  }
}
@layer utilities {
  .u-layer-low {
    z-index: var(--z-index-layer-low);
  }
  .u-layer-mid {
    z-index: var(--z-index-layer-mid);
  }
  .u-layer-high {
    z-index: var(--z-index-layer-high);
  }
}
@layer utilities {
  .u-list-style-none {
    list-style: none !important;
  }
  .u-list-style-horizontal {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .u-mb-0-last:last-child {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
  .u-no-link {
    color: var(--semantic-text-subtle);
    pointer-events: none;
    -ms-touch-action: none;
        touch-action: none;
  }
  .c-footer .u-no-link {
    color: var(--semantic-text-inverse);
  }
  .u-debug-boxes *:not(html):not(body) {
    outline: 1px dashed rgba(255, 0, 0, 0.35);
    outline-offset: -1px;
  }
}
@layer utilities {
  .u-cover {
    position: absolute;
    inset: 0;
  }
  .u-screen-fixed {
    position: fixed;
    inset: 0;
  }
  .u-isolate {
    isolation: isolate;
  }
  .u-pe-none {
    pointer-events: none;
  }
  .u-absolute--xs {
    --u-absolute-pin: var(--spacing-xs);
    --u-pin: var(--spacing-xs);
  }
  .u-absolute--sm {
    --u-absolute-pin: var(--spacing-sm);
    --u-pin: var(--spacing-sm);
  }
  .u-absolute--md {
    --u-absolute-pin: var(--spacing-md);
    --u-pin: var(--spacing-md);
  }
  .u-absolute--lg {
    --u-absolute-pin: var(--spacing-lg);
    --u-pin: var(--spacing-lg);
  }
  .u-absolute--xl {
    --u-absolute-pin: var(--spacing-xl);
    --u-pin: var(--spacing-xl);
  }
  .u-absolute--neg-2xl {
    --u-absolute-pin: var(--spacing-neg-2xl, calc(-1 * var(--spacing-2xl)));
    --u-pin: var(--spacing-neg-2xl, calc(-1 * var(--spacing-2xl)));
  }
  .u-absolute-bs--xs {
    --u-absolute-bs: var(--spacing-xs);
  }
  .u-absolute-bs--sm {
    --u-absolute-bs: var(--spacing-sm);
  }
  .u-absolute-bs--md {
    --u-absolute-bs: var(--spacing-md);
  }
  .u-absolute-bs--lg {
    --u-absolute-bs: var(--spacing-lg);
  }
  .u-absolute-bs--xl {
    --u-absolute-bs: var(--spacing-xl);
  }
  .u-absolute-bs--2xl {
    --u-absolute-bs: var(--spacing-2xl);
  }
  .u-absolute-bs--3xl {
    --u-absolute-bs: var(--spacing-3xl);
  }
  .u-absolute-bs--4xl {
    --u-absolute-bs: var(--spacing-4xl);
  }
  .u-absolute-bs--5xl {
    --u-absolute-bs: var(--spacing-5xl);
  }
  .u-absolute-bs--6xl {
    --u-absolute-bs: var(--spacing-6xl);
  }
  .u-absolute-bs--neg-xs {
    --u-absolute-bs: var(--spacing-neg-xs);
  }
  .u-absolute-bs--neg-sm {
    --u-absolute-bs: var(--spacing-neg-sm);
  }
  .u-absolute-bs--neg-md {
    --u-absolute-bs: var(--spacing-neg-md);
  }
  .u-absolute-bs--neg-lg {
    --u-absolute-bs: var(--spacing-neg-lg);
  }
  .u-absolute-bs--neg-xl {
    --u-absolute-bs: var(--spacing-neg-xl);
  }
  .u-absolute-bs--neg-2xl {
    --u-absolute-bs: var(--spacing-neg-2xl);
  }
  .u-absolute-bs--neg-3xl {
    --u-absolute-bs: var(--spacing-neg-3xl);
  }
  .u-absolute-bs--neg-4xl {
    --u-absolute-bs: var(--spacing-neg-4xl);
  }
  .u-absolute-bs--neg-5xl {
    --u-absolute-bs: var(--spacing-neg-5xl);
  }
  .u-absolute-bs--neg-6xl {
    --u-absolute-bs: var(--spacing-neg-6xl);
  }
  .u-absolute-be--xs {
    --u-absolute-be: var(--spacing-xs);
  }
  .u-absolute-be--sm {
    --u-absolute-be: var(--spacing-sm);
  }
  .u-absolute-be--md {
    --u-absolute-be: var(--spacing-md);
  }
  .u-absolute-be--lg {
    --u-absolute-be: var(--spacing-lg);
  }
  .u-absolute-be--xl {
    --u-absolute-be: var(--spacing-xl);
  }
  .u-absolute-be--2xl {
    --u-absolute-be: var(--spacing-2xl);
  }
  .u-absolute-be--3xl {
    --u-absolute-be: var(--spacing-3xl);
  }
  .u-absolute-be--4xl {
    --u-absolute-be: var(--spacing-4xl);
  }
  .u-absolute-be--5xl {
    --u-absolute-be: var(--spacing-5xl);
  }
  .u-absolute-be--6xl {
    --u-absolute-be: var(--spacing-6xl);
  }
  .u-absolute-be--neg-xs {
    --u-absolute-be: var(--spacing-neg-xs);
  }
  .u-absolute-be--neg-sm {
    --u-absolute-be: var(--spacing-neg-sm);
  }
  .u-absolute-be--neg-md {
    --u-absolute-be: var(--spacing-neg-md);
  }
  .u-absolute-be--neg-lg {
    --u-absolute-be: var(--spacing-neg-lg);
  }
  .u-absolute-be--neg-xl {
    --u-absolute-be: var(--spacing-neg-xl);
  }
  .u-absolute-be--neg-2xl {
    --u-absolute-be: var(--spacing-neg-2xl);
  }
  .u-absolute-be--neg-3xl {
    --u-absolute-be: var(--spacing-neg-3xl);
  }
  .u-absolute-be--neg-4xl {
    --u-absolute-be: var(--spacing-neg-4xl);
  }
  .u-absolute-be--neg-5xl {
    --u-absolute-be: var(--spacing-neg-5xl);
  }
  .u-absolute-be--neg-6xl {
    --u-absolute-be: var(--spacing-neg-6xl);
  }
  .u-absolute-is--xs {
    --u-absolute-is: var(--spacing-xs);
  }
  .u-absolute-is--sm {
    --u-absolute-is: var(--spacing-sm);
  }
  .u-absolute-is--md {
    --u-absolute-is: var(--spacing-md);
  }
  .u-absolute-is--lg {
    --u-absolute-is: var(--spacing-lg);
  }
  .u-absolute-is--xl {
    --u-absolute-is: var(--spacing-xl);
  }
  .u-absolute-is--2xl {
    --u-absolute-is: var(--spacing-2xl);
  }
  .u-absolute-is--3xl {
    --u-absolute-is: var(--spacing-3xl);
  }
  .u-absolute-is--4xl {
    --u-absolute-is: var(--spacing-4xl);
  }
  .u-absolute-is--5xl {
    --u-absolute-is: var(--spacing-5xl);
  }
  .u-absolute-is--6xl {
    --u-absolute-is: var(--spacing-6xl);
  }
  .u-absolute-is--neg-xs {
    --u-absolute-is: var(--spacing-neg-xs);
  }
  .u-absolute-is--neg-sm {
    --u-absolute-is: var(--spacing-neg-sm);
  }
  .u-absolute-is--neg-md {
    --u-absolute-is: var(--spacing-neg-md);
  }
  .u-absolute-is--neg-lg {
    --u-absolute-is: var(--spacing-neg-lg);
  }
  .u-absolute-is--neg-xl {
    --u-absolute-is: var(--spacing-neg-xl);
  }
  .u-absolute-is--neg-2xl {
    --u-absolute-is: var(--spacing-neg-2xl);
  }
  .u-absolute-is--neg-3xl {
    --u-absolute-is: var(--spacing-neg-3xl);
  }
  .u-absolute-is--neg-4xl {
    --u-absolute-is: var(--spacing-neg-4xl);
  }
  .u-absolute-is--neg-5xl {
    --u-absolute-is: var(--spacing-neg-5xl);
  }
  .u-absolute-is--neg-6xl {
    --u-absolute-is: var(--spacing-neg-6xl);
  }
  .u-absolute-ie--xs {
    --u-absolute-ie: var(--spacing-xs);
  }
  .u-absolute-ie--sm {
    --u-absolute-ie: var(--spacing-sm);
  }
  .u-absolute-ie--md {
    --u-absolute-ie: var(--spacing-md);
  }
  .u-absolute-ie--lg {
    --u-absolute-ie: var(--spacing-lg);
  }
  .u-absolute-ie--xl {
    --u-absolute-ie: var(--spacing-xl);
  }
  .u-absolute-ie--2xl {
    --u-absolute-ie: var(--spacing-2xl);
  }
  .u-absolute-ie--3xl {
    --u-absolute-ie: var(--spacing-3xl);
  }
  .u-absolute-ie--4xl {
    --u-absolute-ie: var(--spacing-4xl);
  }
  .u-absolute-ie--5xl {
    --u-absolute-ie: var(--spacing-5xl);
  }
  .u-absolute-ie--6xl {
    --u-absolute-ie: var(--spacing-6xl);
  }
  .u-absolute-ie--neg-xs {
    --u-absolute-ie: var(--spacing-neg-xs);
  }
  .u-absolute-ie--neg-sm {
    --u-absolute-ie: var(--spacing-neg-sm);
  }
  .u-absolute-ie--neg-md {
    --u-absolute-ie: var(--spacing-neg-md);
  }
  .u-absolute-ie--neg-lg {
    --u-absolute-ie: var(--spacing-neg-lg);
  }
  .u-absolute-ie--neg-xl {
    --u-absolute-ie: var(--spacing-neg-xl);
  }
  .u-absolute-ie--neg-2xl {
    --u-absolute-ie: var(--spacing-neg-2xl);
  }
  .u-absolute-ie--neg-3xl {
    --u-absolute-ie: var(--spacing-neg-3xl);
  }
  .u-absolute-ie--neg-4xl {
    --u-absolute-ie: var(--spacing-neg-4xl);
  }
  .u-absolute-ie--neg-5xl {
    --u-absolute-ie: var(--spacing-neg-5xl);
  }
  .u-absolute-ie--neg-6xl {
    --u-absolute-ie: var(--spacing-neg-6xl);
  }
  .u-absolute--xs {
    --u-absolute-pin: var(--spacing-xs);
    --u-pin: var(--spacing-xs);
  }
  .u-absolute--sm {
    --u-absolute-pin: var(--spacing-sm);
    --u-pin: var(--spacing-sm);
  }
  .u-absolute--md {
    --u-absolute-pin: var(--spacing-md);
    --u-pin: var(--spacing-md);
  }
  .u-absolute--lg {
    --u-absolute-pin: var(--spacing-lg);
    --u-pin: var(--spacing-lg);
  }
  .u-absolute--xl {
    --u-absolute-pin: var(--spacing-xl);
    --u-pin: var(--spacing-xl);
  }
  .u-absolute--neg-2xl {
    --u-absolute-pin: var(--spacing-neg-2xl, calc(-1 * var(--spacing-2xl)));
    --u-pin: var(--spacing-neg-2xl, calc(-1 * var(--spacing-2xl)));
  }
}
@layer utilities {
  .u-absolute {
    position: absolute;
    inset: auto;
  }
  .u-absolute-bs-is, .u-absolute-tl {
    inset-block-start: var(--u-absolute-pin, var(--u-pin, var(--spacing-sm)));
    inset-inline-start: var(--u-absolute-pin, var(--u-pin, var(--spacing-sm)));
  }
  .u-absolute-bs-ie, .u-absolute-tr {
    inset-block-start: var(--u-absolute-pin, var(--u-pin, var(--spacing-sm)));
    inset-inline-end: var(--u-absolute-pin, var(--u-pin, var(--spacing-sm)));
  }
  .u-absolute-be-is, .u-absolute-bl {
    inset-block-end: var(--u-absolute-pin, var(--u-pin, var(--spacing-sm)));
    inset-inline-start: var(--u-absolute-pin, var(--u-pin, var(--spacing-sm)));
  }
  .u-absolute-be-ie, .u-absolute-br {
    inset-block-end: var(--u-absolute-pin, var(--u-pin, var(--spacing-sm)));
    inset-inline-end: var(--u-absolute-pin, var(--u-pin, var(--spacing-sm)));
  }
  .u-absolute-bs {
    inset-block-start: var(--u-absolute-bs, var(--spacing-sm));
  }
  .u-absolute-be {
    inset-block-end: var(--u-absolute-be, var(--spacing-sm));
  }
  .u-absolute-is {
    inset-inline-start: var(--u-absolute-is, var(--spacing-sm));
  }
  .u-absolute-ie {
    inset-inline-end: var(--u-absolute-ie, var(--spacing-sm));
  }
  .u-absolute-center {
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    inset-block-start: 50%;
    inset-inline-start: 50%;
  }
  .u-absolute-center-x {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
    inset-inline-start: 50%;
  }
  .u-absolute-center-y {
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    inset-block-start: 50%;
  }
}
@layer utilities {
  .u-relative--xs {
    --u-relative-offset: var(--spacing-xs);
  }
  .u-relative--sm {
    --u-relative-offset: var(--spacing-sm);
  }
  .u-relative--md {
    --u-relative-offset: var(--spacing-md);
  }
  .u-relative--lg {
    --u-relative-offset: var(--spacing-lg);
  }
  .u-relative--xl {
    --u-relative-offset: var(--spacing-xl);
  }
  .u-relative--neg-2xl {
    --u-relative-offset: var(--spacing-neg-2xl, calc(-1 * var(--spacing-2xl)));
  }
  .u-relative-bs--xs {
    --u-relative-bs: var(--spacing-xs);
  }
  .u-relative-bs--sm {
    --u-relative-bs: var(--spacing-sm);
  }
  .u-relative-bs--md {
    --u-relative-bs: var(--spacing-md);
  }
  .u-relative-bs--lg {
    --u-relative-bs: var(--spacing-lg);
  }
  .u-relative-bs--xl {
    --u-relative-bs: var(--spacing-xl);
  }
  .u-relative-bs--2xl {
    --u-relative-bs: var(--spacing-2xl);
  }
  .u-relative-bs--3xl {
    --u-relative-bs: var(--spacing-3xl);
  }
  .u-relative-bs--4xl {
    --u-relative-bs: var(--spacing-4xl);
  }
  .u-relative-bs--5xl {
    --u-relative-bs: var(--spacing-5xl);
  }
  .u-relative-bs--6xl {
    --u-relative-bs: var(--spacing-6xl);
  }
  .u-relative-bs--neg-xs {
    --u-relative-bs: var(--spacing-neg-xs);
  }
  .u-relative-bs--neg-sm {
    --u-relative-bs: var(--spacing-neg-sm);
  }
  .u-relative-bs--neg-md {
    --u-relative-bs: var(--spacing-neg-md);
  }
  .u-relative-bs--neg-lg {
    --u-relative-bs: var(--spacing-neg-lg);
  }
  .u-relative-bs--neg-xl {
    --u-relative-bs: var(--spacing-neg-xl);
  }
  .u-relative-bs--neg-2xl {
    --u-relative-bs: var(--spacing-neg-2xl);
  }
  .u-relative-bs--neg-3xl {
    --u-relative-bs: var(--spacing-neg-3xl);
  }
  .u-relative-bs--neg-4xl {
    --u-relative-bs: var(--spacing-neg-4xl);
  }
  .u-relative-bs--neg-5xl {
    --u-relative-bs: var(--spacing-neg-5xl);
  }
  .u-relative-bs--neg-6xl {
    --u-relative-bs: var(--spacing-neg-6xl);
  }
  .u-relative-be--xs {
    --u-relative-be: var(--spacing-xs);
  }
  .u-relative-be--sm {
    --u-relative-be: var(--spacing-sm);
  }
  .u-relative-be--md {
    --u-relative-be: var(--spacing-md);
  }
  .u-relative-be--lg {
    --u-relative-be: var(--spacing-lg);
  }
  .u-relative-be--xl {
    --u-relative-be: var(--spacing-xl);
  }
  .u-relative-be--2xl {
    --u-relative-be: var(--spacing-2xl);
  }
  .u-relative-be--3xl {
    --u-relative-be: var(--spacing-3xl);
  }
  .u-relative-be--4xl {
    --u-relative-be: var(--spacing-4xl);
  }
  .u-relative-be--5xl {
    --u-relative-be: var(--spacing-5xl);
  }
  .u-relative-be--6xl {
    --u-relative-be: var(--spacing-6xl);
  }
  .u-relative-be--neg-xs {
    --u-relative-be: var(--spacing-neg-xs);
  }
  .u-relative-be--neg-sm {
    --u-relative-be: var(--spacing-neg-sm);
  }
  .u-relative-be--neg-md {
    --u-relative-be: var(--spacing-neg-md);
  }
  .u-relative-be--neg-lg {
    --u-relative-be: var(--spacing-neg-lg);
  }
  .u-relative-be--neg-xl {
    --u-relative-be: var(--spacing-neg-xl);
  }
  .u-relative-be--neg-2xl {
    --u-relative-be: var(--spacing-neg-2xl);
  }
  .u-relative-be--neg-3xl {
    --u-relative-be: var(--spacing-neg-3xl);
  }
  .u-relative-be--neg-4xl {
    --u-relative-be: var(--spacing-neg-4xl);
  }
  .u-relative-be--neg-5xl {
    --u-relative-be: var(--spacing-neg-5xl);
  }
  .u-relative-be--neg-6xl {
    --u-relative-be: var(--spacing-neg-6xl);
  }
  .u-relative-is--xs {
    --u-relative-is: var(--spacing-xs);
  }
  .u-relative-is--sm {
    --u-relative-is: var(--spacing-sm);
  }
  .u-relative-is--md {
    --u-relative-is: var(--spacing-md);
  }
  .u-relative-is--lg {
    --u-relative-is: var(--spacing-lg);
  }
  .u-relative-is--xl {
    --u-relative-is: var(--spacing-xl);
  }
  .u-relative-is--2xl {
    --u-relative-is: var(--spacing-2xl);
  }
  .u-relative-is--3xl {
    --u-relative-is: var(--spacing-3xl);
  }
  .u-relative-is--4xl {
    --u-relative-is: var(--spacing-4xl);
  }
  .u-relative-is--5xl {
    --u-relative-is: var(--spacing-5xl);
  }
  .u-relative-is--6xl {
    --u-relative-is: var(--spacing-6xl);
  }
  .u-relative-is--neg-xs {
    --u-relative-is: var(--spacing-neg-xs);
  }
  .u-relative-is--neg-sm {
    --u-relative-is: var(--spacing-neg-sm);
  }
  .u-relative-is--neg-md {
    --u-relative-is: var(--spacing-neg-md);
  }
  .u-relative-is--neg-lg {
    --u-relative-is: var(--spacing-neg-lg);
  }
  .u-relative-is--neg-xl {
    --u-relative-is: var(--spacing-neg-xl);
  }
  .u-relative-is--neg-2xl {
    --u-relative-is: var(--spacing-neg-2xl);
  }
  .u-relative-is--neg-3xl {
    --u-relative-is: var(--spacing-neg-3xl);
  }
  .u-relative-is--neg-4xl {
    --u-relative-is: var(--spacing-neg-4xl);
  }
  .u-relative-is--neg-5xl {
    --u-relative-is: var(--spacing-neg-5xl);
  }
  .u-relative-is--neg-6xl {
    --u-relative-is: var(--spacing-neg-6xl);
  }
  .u-relative-ie--xs {
    --u-relative-ie: var(--spacing-xs);
  }
  .u-relative-ie--sm {
    --u-relative-ie: var(--spacing-sm);
  }
  .u-relative-ie--md {
    --u-relative-ie: var(--spacing-md);
  }
  .u-relative-ie--lg {
    --u-relative-ie: var(--spacing-lg);
  }
  .u-relative-ie--xl {
    --u-relative-ie: var(--spacing-xl);
  }
  .u-relative-ie--2xl {
    --u-relative-ie: var(--spacing-2xl);
  }
  .u-relative-ie--3xl {
    --u-relative-ie: var(--spacing-3xl);
  }
  .u-relative-ie--4xl {
    --u-relative-ie: var(--spacing-4xl);
  }
  .u-relative-ie--5xl {
    --u-relative-ie: var(--spacing-5xl);
  }
  .u-relative-ie--6xl {
    --u-relative-ie: var(--spacing-6xl);
  }
  .u-relative-ie--neg-xs {
    --u-relative-ie: var(--spacing-neg-xs);
  }
  .u-relative-ie--neg-sm {
    --u-relative-ie: var(--spacing-neg-sm);
  }
  .u-relative-ie--neg-md {
    --u-relative-ie: var(--spacing-neg-md);
  }
  .u-relative-ie--neg-lg {
    --u-relative-ie: var(--spacing-neg-lg);
  }
  .u-relative-ie--neg-xl {
    --u-relative-ie: var(--spacing-neg-xl);
  }
  .u-relative-ie--neg-2xl {
    --u-relative-ie: var(--spacing-neg-2xl);
  }
  .u-relative-ie--neg-3xl {
    --u-relative-ie: var(--spacing-neg-3xl);
  }
  .u-relative-ie--neg-4xl {
    --u-relative-ie: var(--spacing-neg-4xl);
  }
  .u-relative-ie--neg-5xl {
    --u-relative-ie: var(--spacing-neg-5xl);
  }
  .u-relative-ie--neg-6xl {
    --u-relative-ie: var(--spacing-neg-6xl);
  }
  .u-relative-ie--neg-7xl {
    --u-relative-ie: var(--spacing-neg-7xl);
  }
  .u-relative-ie--neg-8xl {
    --u-relative-ie: var(--spacing-neg-8xl);
  }
}
@layer utilities {
  .u-relative {
    position: relative;
  }
  .u-relative-bs-is {
    inset-block-start: var(--u-relative-offset, 0);
    inset-inline-start: var(--u-relative-offset, 0);
  }
  .u-relative-bs-ie {
    inset-block-start: var(--u-relative-offset, 0);
    inset-inline-end: var(--u-relative-offset, 0);
  }
  .u-relative-be-is {
    inset-block-end: var(--u-relative-offset, 0);
    inset-inline-start: var(--u-relative-offset, 0);
  }
  .u-relative-be-ie {
    inset-block-end: var(--u-relative-offset, 0);
    inset-inline-end: var(--u-relative-offset, 0);
  }
  .u-relative-bs {
    inset-block-start: var(--u-relative-bs, 0);
  }
  .u-relative-be {
    inset-block-end: var(--u-relative-be, 0);
  }
  .u-relative-is {
    inset-inline-start: var(--u-relative-is, 0);
  }
  .u-relative-ie {
    inset-inline-end: var(--u-relative-ie, 0);
  }
}
/* -----------------------------------------------
     utility / responsive
  ------------------------------------------------ */
@layer utilities {
  .u-h-full {
    min-height: -webkit-fill-available;
    min-block-size: 100%;
  }
  .u-bsize-full {
    block-size: 100%;
  }
  .u-fill-grid {
    display: grid;
    min-height: -webkit-fill-available;
    overflow: visible;
    min-block-size: 100%;
  }
}
@layer utilities {
  .u-table-cell-text--emphasis-primary {
    color: var(--color-legend-magenta);
    font-weight: var(--font-weight-bold);
  }
  .u-table-cell-text--emphasis-primary a {
    color: var(--color-legend-magenta);
    -webkit-transition: var(--transition-default);
    transition: var(--transition-default);
  }
  .u-table-cell-text--emphasis-secondary {
    color: var(--color-legend-green);
    font-weight: var(--font-weight-bold);
  }
  .u-table-cell-text--emphasis-secondary a {
    color: var(--color-legend-green);
    -webkit-transition: var(--transition-default);
    transition: var(--transition-default);
  }
  .u-table-cell-text--emphasis-tertiary {
    color: var(--color-legend-blue);
    font-weight: var(--font-weight-bold);
  }
  .u-table-cell-text--emphasis-tertiary a {
    color: var(--color-legend-blue);
    -webkit-transition: var(--transition-default);
    transition: var(--transition-default);
  }
  .u-table-cell-bg--emphasis-primary {
    background-color: rgb(from var(--semantic-bg-table-emphasis-primary) r g b/0.5);
  }
  .u-table-cell-bg--emphasis-secondary {
    background-color: rgb(from var(--semantic-bg-table-emphasis-secondary) r g b/0.5);
  }
  .u-table-cell-bg--emphasis-tertiary {
    background-color: rgb(from var(--semantic-bg-table-emphasis-tertiary) r g b/0.5);
  }
  .u-col-th {
    text-align: center;
  }
  .u-table-notion {
    display: block;
    margin-top: var(--spacing-sm);
    font-size: var(--font-size-xs);
  }
  .highcharts-table-caption {
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
  }
}
@layer utilities {
  .u-text-uppercase {
    text-transform: uppercase;
  }
  .u-text-lowercase {
    text-transform: lowercase;
  }
  .u-text-capitalize {
    text-transform: capitalize;
  }
  .u-text-left {
    text-align: left;
  }
  .u-text-center {
    text-align: center;
  }
  .u-text-right {
    text-align: right;
  }
  .u-text-nowrap {
    white-space: nowrap;
  }
  .u-text-pre-line {
    white-space: pre-line;
  }
  .u-font-normal {
    font-weight: 400;
  }
  .u-font-bold {
    font-weight: 700;
  }
  .u-font-italic {
    font-style: italic;
  }
  .u-text-underline {
    text-decoration: underline;
  }
  .u-text-line-through {
    text-decoration: line-through;
  }
  .u-text-sup {
    font-size: var(--font-size-2xs);
  }
  .u-block {
    display: block;
  }
  .u-br--sm {
    display: none;
  }
  @supports (word-break: auto-phrase) {
    [lang=ja] .u-wrap-auto-phrase {
      word-break: auto-phrase;
    }
  }
}
@layer utilities {
  .u-screen {
    min-block-size: 100vh;
    min-block-size: 100dvh;
  }
  .u-screen-grid {
    display: grid;
    overflow: visible;
    min-block-size: 100vh;
    min-block-size: 100dvh;
  }
  .u-grid {
    display: grid;
  }
  .u-overflow-visible {
    overflow: visible;
  }
}
/* ========================================================
   Responsive Tokens
   ======================================================== */
@layer foundation {
  :root {
    --bp-phone: 48rem;
    --bp-tablet: 48rem;
    --bp-desktop: 64rem;
    --bp-wide: 96rem;
    --bp-phone-xs: 30rem;
    --cq-1col-max: 40rem;
    --cq-2col-min: 56rem;
    --cq-wide-min: 72rem;
  }
  @property --device {
    inherits: true;
    initial-value: "phone";
    syntax: "*";
  }
  :root {
    --device: "phone";
  }
  @media (min-width: 48rem) {
    :root {
      --device: "tablet";
    }
  }
  @media (min-width: 64rem) {
    :root {
      --device: "desktop";
    }
  }
  @media (min-width: 96rem) {
    :root {
      --device: "wide";
    }
  }
  @property --phone-size {
    inherits: true;
    initial-value: "base";
    syntax: "*";
  }
  :root {
    --phone-size: "base";
  }
  @media (width < 30rem) {
    :root {
      --phone-size: "xs";
    }
  }
  @media (min-width: 48rem) {
    :root {
      --container-gutter-fluid: clamp(1rem, 3vw, 2rem);
      --container-max-lead-fluid: 37.5rem;
      --container-max-narrow-fluid: 56rem;
      --container-max-default-fluid: 72rem;
      --container-max-wide-fluid: 84rem;
    }
  }
  @media (min-width: 64rem) {
    :root {
      --container-gutter-fluid: clamp(1rem, 2.8vw, 2rem);
      --container-max-lead-fluid: 40rem;
      --container-max-narrow-fluid: 58rem;
      --container-max-default-fluid: 74rem;
      --container-max-wide-fluid: 88rem;
    }
  }
  @media (min-width: 76.5rem) {
    :root {
      --container-gutter-fluid: clamp(1rem, 2.5vw, 2rem);
      --container-max-lead-fluid: 42rem;
      --container-max-narrow-fluid: 60rem;
      --container-max-default-fluid: 76rem;
      --container-max-wide-fluid: 90rem;
    }
  }
  @media (min-width: 96rem) {
    :root {
      --container-gutter-fluid: clamp(1rem, 1.8vw, 2rem);
      --container-max-lead-fluid: 48rem;
      --container-max-narrow-fluid: 68rem;
      --container-max-default-fluid: 88rem;
      --container-max-wide-fluid: 104rem;
    }
  }
}/*# sourceMappingURL=main.css.map */