@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');
@charset "UTF-8";

/* ======================================================================
 Variables
====================================================================== */

:root {
  /* Primitive colors */
  --color-white: #fff;
  --color-sea-1200: #00004F;
  --color-sea-1100: #000060;
  --color-sea-1000: #000071;
  --color-sea-900: #000082;
  --color-sea-800: #0017C1;
  --color-sea-700: #0031D8;
  --color-sea-600: #1A3EE8;
  --color-sea-500: #264AF4;
  --color-sea-400: #4979F5;
  --color-sea-300: #7096F8;
  --color-sea-200: #9DB7F9;
  --color-sea-100: #C5D7FB;
  --color-sea-50: #E8F1FE;
  --color-sumi-1200: #000000;
  --color-sumi-1100: #080808;
  --color-sumi-1000: #111111;
  --color-sumi-900: #1A1A1C;
  --color-sumi-800: #414143;
  --color-sumi-700: #626264;
  --color-sumi-600: #757578;
  --color-sumi-500: #949497;
  --color-sumi-400: #B4B4B7;
  --color-sumi-300: #D8D8DB;
  --color-sumi-200: #E8E8EB;
  --color-sumi-100: #F1F1F4;
  --color-sumi-50: #F8F8FB;
  --color-forest-1200: #032213;
  --color-forest-1100: #08351F;
  --color-forest-1000: #0C472A;
  --color-forest-900: #115A36;
  --color-forest-800: #197A4B;
  --color-forest-700: #1D8B56;
  --color-forest-600: #259D63;
  --color-forest-500: #2CAC6E;
  --color-forest-400: #51B883;
  --color-forest-300: #71C598;
  --color-forest-200: #9BD4B5;
  --color-forest-100: #C2E5D1;
  --color-forest-50: #E6F5EC;
  --color-wood-1200: #662E00;
  --color-wood-1100: #833B00;
  --color-wood-1000: #9C4600;
  --color-wood-900: #B65200;
  --color-wood-800: #C16800;
  --color-wood-700: #C87504;
  --color-wood-600: #CD820A;
  --color-wood-500: #D18D0F;
  --color-wood-400: #D69C2B;
  --color-wood-300: #DCAC4D;
  --color-wood-200: #E1C383;
  --color-wood-100: #E7D8B9;
  --color-wood-50: #F3EEE5;
  --color-sun-1200: #640101;
  --color-sun-1100: #890101;
  --color-sun-1000: #AF0000;
  --color-sun-900: #D50000;
  --color-sun-800: #EC0000;
  --color-sun-700: #FA1606;
  --color-sun-600: #FF220D;
  --color-sun-500: #FF4B36;
  --color-sun-400: #FF5838;
  --color-sun-300: #FF7B5C;
  --color-sun-200: #FFA28B;
  --color-sun-100: #FFC8B8;
  --color-sun-50: #FFE7E6;

  /* Semantic Colors */
  --color-text-body: var(--color-sumi-900);
  --color-text-description: var(--color-sumi-700);
  --color-text-placeholder: var(--color-sumi-600);
  --color-text-onFill: var(--color-white);
  --color-text-link: var(--color-sea-800);
  --color-text-hover: var(--color-sea-900);
  --color-text-active: var(--color-sea-900);
  --color-text-visited: var(--color-sea-900);
  --color-text-alert: var(--color-sun-800);
  --color-text-disabled: var(--color-sumi-500);
  --color-icon-label: var(--color-sumi-900);
  --color-icon-active: var(--color-sea-800);
  --color-icon-alert: var(--color-sun-800);
  --color-icon-disabled: var(--color-sumi-500);
  --color-button-normal: var(--color-sea-800);
  --color-button-hover: var(--color-sea-900);
  --color-button-active: var(--color-sea-900);
  --color-button-disabled: var(--color-sumi-500);
  --color-background-primary: var(--color-white);
  --color-background-secondary: var(--color-sumi-100);
  --color-background-tertiary: var(--color-sumi-50);
  --color-border-field: var(--color-sumi-900);
  --color-border-divider: var(--color-sumi-300);
  --color-border-focused: var(--color-wood-600);
  --color-border-selected: var(--color-sea-800);
  --color-border-alert: var(--color-sun-800);
  --color-border-disabled: var(--color-sumi-500);
  --color-status-success: var(--color-forest-600);
  --color-status-alert: var(--color-sun-800);
  --color-status-warning: var(--color-wood-800);
  --color-chart-primary: var(--color-sea-800);
  --color-chart-secondary: var(--color-sea-400);

  /* Easings */
  --ease-in-quad: cubic-bezier(0.55, 0.085, 0.68, 0.53);
  --ease-in-cubic: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  --ease-in-quart: cubic-bezier(0.895, 0.03, 0.685, 0.22);
  --ease-in-quint: cubic-bezier(0.755, 0.05, 0.855, 0.06);
  --ease-in-expo: cubic-bezier(0.95, 0.05, 0.795, 0.035);
  --ease-in-circ: cubic-bezier(0.6, 0.04, 0.98, 0.335);
  --ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --ease-out-cubic: cubic-bezier(0.215, 0.61, 0.355, 1);
  --ease-out-quart: cubic-bezier(0.165, 0.84, 0.44, 1);
  --ease-out-quint: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);
  --ease-out-circ: cubic-bezier(0.075, 0.82, 0.165, 1);
  --ease-in-out-quad: cubic-bezier(0.455, 0.03, 0.515, 0.955);
  --ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1);
  --ease-in-out-quart: cubic-bezier(0.77, 0, 0.175, 1);
  --ease-in-out-quint: cubic-bezier(0.86, 0, 0.07, 1);
  --ease-in-out-expo: cubic-bezier(1, 0, 0, 1);
  --ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.15, 0.86);

  /* Line Height */
  --line-height-s: 1.4;
  --line-height-m: 1.5;
  --line-height-l: 1.7;

  /* Letter Spacing */
  --letter-spacing-s: 0.02em;
  --letter-spacing-m: 0.04em;

  /* Font Weight */
  --font-weight-r: 400;
  --font-weight-m: 500;
  --font-weight-b: 700;

  /* Pixel to Rem */
  --px-rem: / 16 * 1rem;
}

/* ======================================================================
 Normalize
====================================================================== */

/* General
================================================== */

*, ::before, ::after {
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
  border-color: currentColor;
}
html {
  display: flex;
  flex-direction: column;
  overflow-y: scroll;
}
body {
  margin: 0;
  font-family: "Noto Sans JP", "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, sans-serif;
  font-size: 12px;
  line-height: 1.7;
  color: #1a1a1c;
  letter-spacing: 0.04em;
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
          text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: normal;
  font-variation-settings: normal;
}
h1, h2, h3, h4, h5, h6 {
  font-size: inherit;
  font-weight: inherit;
}
b, strong {
  font-weight: 700;
}
small {
  font-size: 80%;
}
sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.4em;
  vertical-align: baseline;
}
table {
  text-indent: 0;
  border-spacing: 0;
  border-color: inherit;
  border-collapse: collapse;
}
img, svg, iframe {
  display: block;
  vertical-align: middle;
}
img {
  max-width: 100%;
  height: auto;
}
blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre {
  margin: 0;
}

/* Form
================================================== */

a {
  width: auto;
  color: inherit;
  text-decoration: inherit;
  cursor: pointer;
}
button, input, optgroup, select, textarea {
  font-family: inherit;
  font-size: 100%;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
}
button, select {
  text-transform: none;
}
button, [type="button"], [type="reset"], [type="submit"] {
  -webkit-appearance: button;
  background-color: transparent;
  background-image: none;
}
fieldset {
  margin: 0;
  padding: 0;
  min-inline-size: 0;
}
legend {
  display: contents;
  padding: 0;
}
ol, ul, menu {
  list-style: none;
  margin: 0;
  padding: 0;
}
textarea {
  resize: vertical;
}
input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1;
  color: #9ca3af;
}
input::placeholder, textarea::placeholder {
  opacity: 1;
  color: #9ca3af;
}
button, [role="button"] {
  cursor: pointer;
}
:disabled, [aria-disabled="true"] {
  cursor: default;
  pointer-events: none;
}
a:focus-visible, button:focus-visible {
  border-radius: 4px;
  outline: 2px solid #d18d0f;
}
@supports not selector(:focus-visible) {
  a:focus, button:focus {
    border-radius: 4px;
    outline: 2px solid #d18d0f;
  }
}
[hidden] {
  display: none;
}
[type="text"], [type="email"], [type="password"], [type="tel"], textarea, select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #fff;
  border-color: #6b7280;
  border-width: 1px;
  border-radius: 0px;
  padding: 0.5rem 0.75rem;
  font-size: 1rem;
  line-height: inherit;
}
[type="text"]:focus, [type="email"]:focus, [type="password"]:focus, [type="tel"]:focus, textarea:focus, select:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  border-color: #d18d0f !important;
  box-shadow: inset 0 0 0 1px #d18d0f !important;
}
input::placeholder,textarea::placeholder {
  color: #6b7280;
  opacity: 1;
}
[type="checkbox"], [type="radio"] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding: 0;
  -webkit-print-color-adjust: exact;
          print-color-adjust: exact;
  display: inline-block;
  vertical-align: middle;
  background-origin: border-box;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  flex-shrink: 0;
  height: 1rem;
  width: 1rem;
  color: #2563eb;
  background-color: #fff;
  border-color: #6b7280;
  border-width: 1px;
}
[type="checkbox"] {
  border-radius: 0px;
}
[type="radio"] {
  border-radius: 100%;
}
[type="checkbox"]:focus, [type="radio"]:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
[type="checkbox"]:checked, [type="radio"]:checked {
  border-color: transparent;
  background-color: currentColor;
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
}
[type="checkbox"]:checked {
  background-image: url("data:image/svg+xml,%3csvg viewBox="0 0 16 16" fill="white" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z"/%3e%3c/svg%3e");
}
[type="radio"]:checked {
  background-image: url("data:image/svg+xml,%3csvg viewBox="0 0 16 16" fill="white" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="8" cy="8" r="3"/%3e%3c/svg%3e");
}
[type="checkbox"]:checked:hover, [type="checkbox"]:checked:focus, [type="radio"]:checked:hover, [type="radio"]:checked:focus {
  border-color: transparent;
  background-color: currentColor;
}
[type="file"] {
  background: unset;
  border-color: inherit;
  border-width: 0;
  border-radius: 0;
  padding: 0;
  font-size: unset;
  line-height: inherit;
}
[type="file"]:focus {
  outline: 1px solid ButtonText;
  outline: 1px auto -webkit-focus-ring-color;
}

/* ======================================================================
 Layout
====================================================================== */

/* Body
================================================== */

body {
  min-width: 320px;
  background-color: var(--color-background-primary);
  color: var(--color-text-body);
}
.body-container {
  display: grid;
  grid-template-rows: auto max-content;
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  overflow-x: hidden;
}

/* Header
================================================== */

header .header-container {
  width: 100%;
  max-width: calc(1104 var(--px-rem));
  margin-left: auto;
  margin-right: auto;
  padding: 12.5px calc(16 var(--px-rem));
}
header .header-title {
  margin-left: calc(4 var(--px-rem));
  margin-right: calc(4 var(--px-rem));
}
header .header-title .title-logo {
  display: inline-flex;
  align-items: center;
}
header .header-title .title-brand {
  font-size: calc(15 var(--px-rem));
  font-weight: var(--font-weight-b);
  line-height: var(--line-height-m);
}
header .header-title .title-sub {
  margin-left: calc(8 var(--px-rem));
  color: var(--color-text-description);
  font-size: calc(12 var(--px-rem));
  line-height: var(--line-height-m);
  letter-spacing: var(--letter-spacing-s);
}

@media (min-width: 521px) {
  header .header-container {
    padding-left: calc(40 var(--px-rem));
    padding-right: calc(40 var(--px-rem));
  }
}

/* Body Content
================================================== */

.body-content {
  grid-row: 2 / 3;
  grid-column: 2 / 3;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* Breadcrumbs
================================================== */

.breadcrumbs {
  width: 100%;
  max-width: calc(1104 var(--px-rem));
  margin-left: auto;
  margin-right: auto;
  padding: 9.5px calc(16 var(--px-rem));
  font-size: 0;
}
.breadcrumbs .breadcrumbs-item {
  display: inline;
}
.breadcrumbs .breadcrumbs-item a {
  font-size: calc(14 var(--px-rem));
  line-height: 1.75;
  letter-spacing: var(--letter-spacing-m);
  vertical-align: middle;
}
.breadcrumbs .breadcrumbs-item a:not([aria-current="page"]) {
  color: var(--color-text-link);
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.breadcrumbs .breadcrumbs-item a:not([aria-current="page"]):visited,
.breadcrumbs .breadcrumbs-item a:not([aria-current="page"]):hover,
.breadcrumbs .breadcrumbs-item a:not([aria-current="page"]):active {
  color: var(--color-text-visited);
}
.breadcrumbs .breadcrumbs-item a[aria-current="page"] {
  color: var(--color-text-description);
}
.breadcrumbs .breadcrumbs-icon {
  display: inline-block;
  width: calc(16 var(--px-rem));
  height: calc(16 var(--px-rem));
  margin-left: calc(4 var(--px-rem));
  margin-right: calc(4 var(--px-rem));
  vertical-align: middle;
  fill: var(--color-icon-label);
  transform: translateY(0.0625rem);
}

@media (min-width: 521px) {
  .breadcrumbs {
    padding-left: calc(40 var(--px-rem));
    padding-right: calc(40 var(--px-rem));
  }
}

/* Main Container
================================================== */

.main-container {
  width: 100%;
  max-width: calc(1104 var(--px-rem));
  margin-left: auto;
  margin-right: auto;
  padding: calc(64 var(--px-rem)) calc(16 var(--px-rem));
}

@media (min-width: 521px) {
  .main-container {
    padding-left: calc(40 var(--px-rem));
    padding-right: calc(40 var(--px-rem));
  }
}
/* Form Layout */

@media (min-width: 961px) {
  body.form .main-container {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: calc(24 var(--px-rem));
  }
  body.form .main-container-column {
    grid-column: span 3 / span 3;
  }
}

/* Headgroup
------------------------------ */

.main-container-headgroup {
  display: grid;
  row-gap: calc(24 var(--px-rem));
}

/* Sub Title */

.main-container-headgroup .headgroup-title-sub {
  color: var(--color-text-description);
  font-size: calc(12 var(--px-rem));
  letter-spacing: var(--letter-spacing-s);
}

/* Headline */

.main-container-headgroup .headgroup-headline {
  display: block;
  font-size: calc(32 var(--px-rem));
  font-weight: var(--font-weight-m);
  line-height: var(--line-height-m);
  letter-spacing: var(--letter-spacing-m);
}

@media (min-width: 961px) {
  .main-container-headgroup .headgroup-headline {
    font-size: calc(36 var(--px-rem));
    font-weight: var(--font-weight-r);
    line-height: var(--line-height-s);
  }
}

/* Description */

.main-container-headgroup .headgroup-description {
  display: grid;
  row-gap: calc(24 var(--px-rem));
}

/* Body
------------------------------ */

.main-container-body {
  display: grid;
  row-gap: calc(64 var(--px-rem));
  margin-top: calc(64 var(--px-rem));
}
.main-container-body.top-tight {
  margin-top: calc(24 var(--px-rem));
}

/* Footer
================================================== */

footer {
  background-color: var(--color-background-secondary);
}
footer .footer-container {
  display: grid;
  row-gap: calc(24 var(--px-rem));
  width: 100%;
  max-width: calc(1104 var(--px-rem));
  margin-left: auto;
  margin-right: auto;
  padding-top: calc(32 var(--px-rem));
  padding-bottom: calc(16 var(--px-rem));
  padding-left: calc(16 var(--px-rem));
  padding-right: calc(16 var(--px-rem));
}

@media (min-width: 521px) {
  .footer-container {
    padding-left: calc(40 var(--px-rem));
    padding-right: calc(40 var(--px-rem));
    padding-bottom: calc(24 var(--px-rem));
  }
}

/* Logo */

footer .footer-logo a {
  display: inline-block;
  vertical-align: top;
}

@media (min-width: 961px) {
  .footer-logo {
    text-align: center;
  }
}

/* Navigation */

footer .footer-navigation .navigation-list {
  display: flex;
  flex-direction: column;
  row-gap: calc(16 var(--px-rem));
}
footer .footer-navigation .navigation-item a:hover .navigation-link-text {
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
footer .footer-navigation .navigation-link-text {
  font-size: calc(14 var(--px-rem));
  line-height: var(--line-height-m);
  letter-spacing: var(--letter-spacing-m);
}
footer .footer-navigation .navigation-link-icon {
  display: inline-block;
  margin-left: calc(2 var(--px-rem));
  fill: var(--color-icon-label);
  transform: translateY(-.15em);
}

@media (min-width: 961px) {
  footer .footer-navigation .navigation-list {
    flex-direction: row;
    justify-content: center;
    column-gap: calc(32 var(--px-rem));
  }
}

/* Copyright */

footer .footer-copyright .copyright-text {
  display: block;
  font-size: calc(12 var(--px-rem));
  line-height: var(--line-height-m);
  letter-spacing: var(--letter-spacing-s);
}

@media (min-width: 961px) {
  footer .footer-copyright {
    text-align: center;
  }
}

/* ======================================================================
 Modules
====================================================================== */

/* Break
================================================== */

wbr + span {
  white-space: nowrap;
}
br.mobile-hide {
  display: none;
}
br.mobile-show {
  display: inline;
}

@media (min-width: 521px) {
  br.tablet-hide {
    display: none;
  }
  br.tablet-show {
    display: inline;
  }
}

@media (min-width: 961px) {
  br.desktop-hide {
    display: none;
  }
  br.desktop-show {
    display: inline;
  }
}

/* Brake All */

.module-break-all {
  word-break: break-all;
}

/* Text
================================================== */

/* Size
------------------------------ */

/* Body */

.module-text-body-l {
  font-size: calc(16 var(--px-rem));
  line-height: var(--line-height-l);
  letter-spacing: var(--letter-spacing-m);
}
.module-text-body-m {
  font-size: calc(14 var(--px-rem));
  line-height: var(--line-height-l);
  letter-spacing: var(--letter-spacing-m);
}
.module-text-body-s {
  font-size: calc(12 var(--px-rem));
  line-height: var(--line-height-m);
  letter-spacing: var(--letter-spacing-s);
}

/* Label */

.module-text-label-l {
  font-size: calc(14 var(--px-rem));
  line-height: var(--line-height-m);
  letter-spacing: var(--letter-spacing-m);
}
.module-text-label-m {
  font-size: calc(12 var(--px-rem));
  line-height: var(--line-height-m);
  letter-spacing: var(--letter-spacing-m);
}

/* Capture */

.module-text-capture-l {
  font-size: calc(12 var(--px-rem));
  line-height: var(--line-height-l);
  letter-spacing: var(--letter-spacing-s);
}
.module-text-capture-m {
  font-size: calc(12 var(--px-rem));
  line-height: var(--line-height-l);
  letter-spacing: var(--letter-spacing-s);
}

/* Alignment
------------------------------ */

.module-text-left {
  text-align: left;
}
.module-text-center {
  text-align: center;
}
.module-text-right {
  text-align: right;
}

/* Image
================================================== */

/* Alignment */

.module-image-center {
  margin-left: auto;
  margin-right: auto;
}

/* Figure */

.module-image-figure {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  aspect-ratio: 16 / 9;
}
.module-image-figure.max-w-mobile {
  max-width: 343px;
}

/* ======================================================================
 Components
====================================================================== */

/* Step Indicator
================================================== */

.component-step-indicator {
  display: flex;
  column-gap: calc(4 var(--px-rem));
  align-items: center;
}
.component-step-indicator .indicator-item {
  position: relative;
  flex-grow: 1;
  flex-basis: 0;
  height: calc(4 var(--px-rem));
  background-color: var(--color-sumi-500);
  border-radius: 100vh;
}
.component-step-indicator .indicator-item[aria-current="false"] {
  background-color: var(--color-sea-400);
}
.component-step-indicator .indicator-item[aria-current="step"] {
  height: calc(6 var(--px-rem));
  background-color: var(--color-sea-800);
}
.component-step-indicator .indicator-text {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

/* Section
================================================== */

.component-section .section-headline-text {
  display: block;
  font-weight: var(--font-weight-m);
}

@media (min-width: 961px) {
  .component-section .section-headline-text {
    font-weight: var(--font-weight-r);
  }
}

/* Headline
------------------------------ */

/* Level 2 */

.component-section.level-2 > .section-headline > .section-headline-text {
  font-size: calc(28 var(--px-rem));
  line-height: var(--line-height-m);
  letter-spacing: var(--letter-spacing-m);
}

@media (min-width: 961px) {
  .component-section.level-2 > .section-headline > .section-headline-text {
    font-size: calc(32 var(--px-rem));
  }
}

/* Level 3 */

.component-section.level-3 > .section-headline > .section-headline-text {
  font-size: calc(24 var(--px-rem));
  line-height: var(--line-height-m);
  letter-spacing: var(--letter-spacing-m);
}

@media (min-width: 961px) {
  .component-section.level-3 > .section-headline > .section-headline-text {
    font-size: calc(28 var(--px-rem));
  }
}

/* Level 4 */

.component-section.level-4 > .section-headline > .section-headline-text {
  font-size: calc(20 var(--px-rem));
  line-height: var(--line-height-m);
  letter-spacing: var(--letter-spacing-m);
}

@media (min-width: 961px) {
  .component-section.level-4 > .section-headline > .section-headline-text {
    font-size: calc(24 var(--px-rem));
  }
}

/* Level 5 */

.component-section.level-5 > .section-headline > .section-headline-text {
  font-size: calc(16 var(--px-rem));
  line-height: var(--line-height-l);
  letter-spacing: var(--letter-spacing-m);
}

@media (min-width: 961px) {
  .component-section.level-5 > .section-headline > .section-headline-text {
    font-size: calc(20 var(--px-rem));
    line-height: var(--line-height-m);
  }
}

/* Body
------------------------------ */

.component-section .section-body {
  display: grid;
  row-gap: calc(40 var(--px-rem));
  margin-top: calc(24 var(--px-rem));
}
.component-section.level-4 .section-body,
.component-section.level-5 .section-body {
  margin-top: calc(16 var(--px-rem));
}
.component-section.level-5 .section-body {
  row-gap: calc(6 var(--px-rem));
}

/* General Container
================================================== */

[class*="component-general-wrapper"] {
  display: grid;
}
.component-general-wrapper-s {
  row-gap: calc(8 var(--px-rem));
}
.component-general-wrapper-m {
  row-gap: calc(16 var(--px-rem));
}
.component-general-wrapper-l {
  row-gap: calc(24 var(--px-rem));
}
.component-general-wrapper-xl {
  row-gap: calc(40 var(--px-rem));
}

/* Form Container
================================================== */

/* Headline
------------------------------ */

.component-form-container .container-headline-text {
  display: block;
}
.component-form-container .container-headline-name {
  margin-right: calc(8 var(--px-rem));
  font-size: calc(14 var(--px-rem));
  font-weight: var(--font-weight-m);
  line-height: var(--line-height-m);
  letter-spacing: var(--letter-spacing-m);
}
.component-form-container .container-headline-tag {
  display: inline-block;
  color: var(--color-text-disabled);
  font-size: calc(12 var(--px-rem));
  letter-spacing: var(--letter-spacing-s);
  white-space: nowrap;
  transform: translateY(-.05em);
}
.component-form-container .container-headline-tag.required {
  color: var(--color-text-alert);
}

/* Error */

.component-form-container.is-error .container-headline-name {
  color: var(--color-text-alert);
}

/* Body
------------------------------ */

.component-form-container .container-body {
  display: grid;
  row-gap: calc(8 var(--px-rem));
  margin-top: calc(8 var(--px-rem));
}
.component-form-container .container-text-description {
  color: var(--color-text-description);
  font-size: calc(12 var(--px-rem));
  letter-spacing: var(--letter-spacing-s);
}
.component-form-container .container-text-error {
  display: none;
  color: var(--color-text-alert);
  font-size: calc(12 var(--px-rem));
  letter-spacing: var(--letter-spacing-s);
}
.component-form-container.is-error .container-text-error {
  display: block;
}

/* List - Text
================================================== */

.component-textlist {
  display: grid;
  row-gap: calc(8 var(--px-rem));
}

/* Dot
------------------------------ */

.component-textlist.dot {
  margin-left: calc(20 var(--px-rem));
  list-style-type: disc;
}

/* Decimal
------------------------------ */

.component-textlist.decimal {
  display: grid;
  row-gap: calc(10 var(--px-rem));
  margin-left: calc(20 var(--px-rem));
  list-style-type: decimal;
}

/* Asterisk
------------------------------ */

.component-textlist.asterisk > .list-item {
  display: flex;
  column-gap: calc(8 var(--px-rem));
}
.component-textlist.asterisk > .list-item::before {
  content: '\203B';
}

/* Asterisk - Mandatory numerical
------------------------------ */

.component-textlist.asterisk-mandatory > .list-item {
  display: flex;
  column-gap: calc(8 var(--px-rem));
}
.component-textlist.asterisk-mandatory > .list-item > .list-mark::before {
  content: '\203B';
}

/* Mandatory
------------------------------ */

.component-textlist.mandatory > .list-item {
  display: flex;
  column-gap: calc(8 var(--px-rem));
}
.component-textlist.mandatory > .list-item > .list-mark {
  flex-shrink: 0;
}

/* Definition List
================================================== */

.component-definition-list .definition-title {
  display: block;
}
.component-definition-list .definition-body {
  display: block;
}

/* Type Frame
------------------------------ */

.component-definition-list.type-frame {
  background-color: var(--color-background-tertiary);
  border-radius: calc(12 var(--px-rem));
}
.component-definition-list.type-frame .definition-item {
  position: relative;
  padding: calc(16 var(--px-rem));
}
.component-definition-list.type-frame .definition-item:nth-child(n+2)::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  display: block;
  width: calc(100% - (16 var(--px-rem)));
  border-top-width: 1px;
  border-top-color: var(--color-border-divider);
}
.component-definition-list.type-frame .definition-title {
  color: var(--color-text-description);
  font-size: calc(12 var(--px-rem));
  font-weight: var(--font-weight-m);
  line-height: var(--line-height-m);
  letter-spacing: var(--letter-spacing-m);
}
.component-definition-list.type-frame .definition-body {
  margin-top: calc(8 var(--px-rem));
  font-size: calc(16 var(--px-rem));
  line-height: var(--line-height-m);
  letter-spacing: var(--letter-spacing-m);
}

/* Disabled */

.component-definition-list.type-frame.is-disabled .definition-body {
  color: var(--color-text-description);
}

/* Link
================================================== */

/* General
------------------------------ */

.component-hyperlink {
  display: inline;
  color: var(--color-text-link);
  text-align: left;
}
.component-hyperlink .link-text {
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.component-hyperlink .link-icon {
  display: inline-block;
  margin-left: calc(2 var(--px-rem));
  margin-right: calc(4 var(--px-rem));
  fill: var(--color-icon-label);
  font-size: calc(16 var(--px-rem));
  transform: translateY(-.0625em);
}

/* Hover */

.component-hyperlink:hover {
  color: var(--color-text-hover);
}

/* Active */

.component-hyperlink:active {
  color: var(--color-text-active);
}

/* Active */

.component-hyperlink:visited {
  color: var(--color-text-visited);
}

/* Disabled */

.component-hyperlink:disabled,
.component-hyperlink[aria-disabled="true"] {
  color: var(--color-text-disabled);
}
.component-hyperlink:disabled .link-icon,
.component-hyperlink[aria-disabled="true"] .link-icon {
  fill: var(--color-icon-disabled);
}

/* Link List
------------------------------ */

.component-link-list {
  display: flex;
  column-gap: calc(8 var(--px-rem));
  row-gap: calc(8 var(--px-rem));
  flex-wrap: wrap;
}
.component-link-list.type-vertical {
  flex-direction: column;
}

/* Button
================================================== */

/* Wrap container
------------------------------ */

/* Wrap - Column */

@media (min-width: 521px) {
  .component-button-wrap {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: 2rem;
  }
  .component-button-wrap .wrap-column {
    grid-column: span 2 / span 2;
  }
}

@media (min-width: 961px) {
  .component-button-wrap .wrap-column {
    grid-column: span 1 / span 1;
  }
}

/* List */

.component-button-list {
  display: grid;
  row-gap: calc(8 var(--px-rem));
}

/* General
------------------------------ */

.component-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: calc(56 var(--px-rem));
  font-size: calc(16 var(--px-rem));
  font-weight: var(--font-weight-b);
  line-height: var(--line-height-m);
  letter-spacing: var(--letter-spacing-m);
}
.component-button .button-container {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: calc(15 var(--px-rem));
  border-radius: calc(6 var(--px-rem));
}
.component-button .button-text {
  position: relative;
  display: inline-block;
  text-align: center;
  transform: translateY(-.125em);
}

/* Focus */

.component-button:focus-visible {
  outline-offset: -2px;
  border-radius: calc(8 var(--px-rem));
}
.component-button:focus-visible .button-container {
  padding-top: calc(12 var(--px-rem));
  padding-bottom: calc(12 var(--px-rem));
  border-radius: calc(4 var(--px-rem));
}

/* Type Primary
------------------------------ */

.component-button.primary .button-container {
  background-color: var(--color-button-normal);
  color: var(--color-text-onFill);
}

/* Hover */

.component-button.primary:hover .button-container {
  background-color: var(--color-button-hover);
}

/* Active */

.component-button.primary:active .button-container {
  background-color: var(--color-button-active);
}

/* Focus */

.component-button.primary:focus-visible {
  padding: calc(4 var(--px-rem));
}

/* Disabled */

.component-button.primary:disabled .button-container,
.component-button.primary[aria-disabled="true"] .button-container {
  background-color: var(--color-button-disabled);
  color: var(--color-text-onFill);
}

/* Type Secondary
------------------------------ */

.component-button.secondary .button-container {
  border-width: 1px;
  border-color: var(--color-button-normal);
  color: var(--color-button-normal);
}

/* Hover */

.component-button.secondary:hover {
  border-color: var(--color-button-hover);
}
.component-button.secondary:hover .button-container {
  background-color: var(--color-sea-50);
  color: var(--color-button-hover);
}

/* Active */

.component-button.secondary:active {
  border-color: var(--color-button-active);
}
.component-button.secondary:active .button-container {
  background-color: var(--color-sea-50);
  color: var(--color-button-active);
}

/* Focus */

.component-button.secondary:focus-visible .button-container {
  border-color: transparent;
}

/* Disabled */

.component-button.secondary:disabled .button-container,
.component-button.secondary[aria-disabled="true"] .button-container {
  border-color: var(--color-button-disabled);
  color: var(--color-button-disabled);
}

/* Type Tertiary
------------------------------ */

.component-button.tertiary .button-container {
  color: var(--color-button-normal);
}
.component-button.tertiary .button-text {
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

/* Hover */

.component-button.tertiary:hover .button-container {
  color: var(--color-button-hover);
}

/* Active */

.component-button.tertiary:active .button-container {
  color: var(--color-button-active);
}

/* Disabled */

.component-button.tertiary:disabled .button-container,
.component-button.tertiary[aria-disabled="true"] .button-container {
  color: var(--color-button-disabled);
}

/* Form - Input Text
================================================== */

.component-input-text {
  display: block;
  width: 100%;
  padding: 13.5px calc(15 var(--px-rem));
  background-color: var(--color-background-primary);
  border-width: 1px;
  border-color: var(--color-border-field);
  border-radius: calc(8 var(--px-rem));
  color: var(--color-text-body);
  font-size: calc(16 var(--px-rem));
  line-height: var(--line-height-m);
  letter-spacing: var(--letter-spacing-m);
}
.component-input-text::placeholder {
  color: var(--color-text-placeholder);
}
.component-input-text:disabled {
  background-color: var(--color-background-secondary);
  border-color: var(--color-border-disabled);
  color: var(--color-text-disabled);
}
.component-input-text:read-only:not(:disabled) {
  padding: 0;
  background-color: transparent;
  border-color: transparent;
}

/* Sizes */

.component-input-text.size-small {
  width: calc(144 var(--px-rem));
}
.component-input-text.size-medium {
  width: calc(272 var(--px-rem));
}

/* Erros */

.component-input-text.is-error {
  border-color: var(--color-border-alert);
  box-shadow: inset 0 0 0 1px var(--color-border-alert);
}

/* Form - Select
================================================== */

/* General
------------------------------ */

.component-select {
  position: relative;
}
.component-select .select-element {
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  height: 56px;
  padding-top: 0;
  padding-bottom: 0;
  padding-left: 15px;
  padding-right: calc(48 var(--px-rem));
  background-color: transparent;
  background-image: none;
  border-width: 1px;
  border-color: transparent;
  border-radius: calc(8 var(--px-rem));
  color: var(--color-text-body);
  font-size: calc(16 var(--px-rem));
  letter-spacing: var(--letter-spacing-m);
}
.component-select .select-icon {
  position: absolute;
  z-index: 1;
  top: 50%;
  right: calc(16 var(--px-rem));
  transform: translateY(-50%) rotate(90deg);
  fill: var(--color-icon-label);
}
.component-select .select-frame {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--color-background-primary);
  border-width: 1px;
  border-color: var(--color-border-field);
  border-radius: calc(8 var(--px-rem));
}

/* Focus */

.component-select .select-element:focus ~ .select-frame {
  border-color: transparent !important;
}

/* Error */

.component-select .select-element.is-error ~ .select-frame {
  border-width: 2px;
  border-color: var(--color-border-alert);
}

/* Disabled */

.component-select .select-element:disabled {
  color: var(--color-text-disabled);
}
.component-select .select-element:disabled ~ .select-icon {
  fill: var(--color-icon-disabled);
}
.component-select .select-element:disabled ~ .select-frame {
  border-color: var(--color-border-disabled);
  background-color: var(--color-background-secondary);
}

/* Form - Input Checkbox and Radio
================================================== */

/* General
------------------------------ */

.component-input-check {
  position: relative;
  display: flex;
  align-items: center;
  padding: calc(8 var(--px-rem)) 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.component-input-check .check-element {
  position: absolute;
  top: 50%;
  bottom: 50%;
  left: calc(8 var(--px-rem));
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
}
.component-input-check .check-icons {
  position: relative;
  z-index: 1;
  display: block;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
}
.component-input-check .check-text {
  z-index: 1;
  margin-left: calc(16 var(--px-rem));
  transform: translateY(-.0625em);
}
.component-input-check .check-text-title {
  display: block;
  color: var(--color-text-body);
  font-size: calc(16 var(--px-rem));
  letter-spacing: var(--letter-spacing-m);
}
.component-input-check .check-text-description {
  display: block;
  color: var(--color-text-description);
  font-size: calc(12 var(--px-rem));
  letter-spacing: var(--letter-spacing-s);
}
.component-input-check .check-frame {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: calc(8 var(--px-rem));
}
.component-input-check .check-element:focus-visible ~ .check-frame {
  border-color: transparent;
  outline-style: solid;
  outline-width: 2px;
  outline-offset: -2px;
  outline-color: var(--color-wood-600);
}

/* Checked */

.component-input-check .check-element:checked ~ .check-icons .check-icon-radio-inline {
  transform: scale(1);
}

/* Error */

.component-input-check .check-element.is-error ~ .check-text .check-text-title {
  color: var(--color-text-alert);
}

/* Disabled */

.component-input-check .check-element:disabled ~ .check-text .check-text-title,
.component-input-check .check-element:disabled ~ .check-text .check-text-description {
  color: var(--color-text-disabled) !important;
}

/* Type Tile
------------------------------ */

.component-input-check-group-tile {
  display: grid;
  row-gap: calc(8 var(--px-rem));
}
.component-input-check-group-tile .component-input-check {
  padding: calc(15 var(--px-rem));
}
.component-input-check-group-tile .component-input-check .check-frame {
  background-color: var(--color-background-primary);
  border-width: 1px;
  border-color: var(--color-border-field);
}

/* Checked */

.component-input-check-group-tile .component-input-check .check-element:checked ~ .check-frame {
  border-width: 2px;
  border-color: var(--color-border-selected) !important;
}

/* Error */

.component-input-check-group-tile .component-input-check .check-element.is-error ~ .check-frame {
  border-width: 2px;
  border-color: var(--color-border-alert);
}
.component-input-check-group-tile .component-input-check .check-element.is-error ~ .check-text .check-text-title {
  color: inherit;
}

/* Disabled */

.component-input-check-group-tile .component-input-check .check-element:disabled ~ .check-frame {
  background-color: var(--color-background-secondary);
  border-width: 1px !important;
  border-color: var(--color-border-disabled) !important;
}

/* Focus */

.component-input-check-group-tile .component-input-check .check-element:focus-visible ~ .check-frame {
  border-color: transparent;
}

/* for Checkbox
------------------------------ */

.component-input-check .check-icon-checkbox-checked {
  position: absolute;
  top: 0;
  left: 0;
  fill: transparent;
  transition: fill var(--ease-out-cubic) .15s;
}
.component-input-check .check-icon-checkbox-outline {
  fill: var(--color-icon-label);
}

/* Checked */

.component-input-check .check-element:checked ~ .check-icons .check-icon-checkbox-checked {
  fill: var(--color-icon-active) !important;
}

/* Error */

.component-input-check .check-element.is-error ~ .check-icons .check-icon-checkbox-outline {
  fill: var(--color-icon-alert);
}

/* Disabled */

.component-input-check .check-element:disabled ~ .check-icons .check-icon-checkbox-outline {
  fill: var(--color-icon-disabled) !important;
}

/* for Radio
------------------------------ */

.component-input-check .check-icon-radio-inline {
  position: absolute;
  top: 0;
  left: 0;
  fill: var(--color-icon-active);
  transform: scale(0);
  transition: transform var(--ease-out-cubic) .15s;
}
.component-input-check .check-icon-radio-outline {
  fill: var(--color-icon-label);
}

/* Checked */

.component-input-check .check-element:checked ~ .check-icons .check-icon-radio-outline {
  fill: var(--color-icon-active) !important;
}

/* Error */

.component-input-check .check-element.is-error ~ .check-icons .check-icon-radio-outline {
  fill: var(--color-icon-alert);
}

/* Disabled */

.component-input-check .check-element:disabled ~ .check-icons .check-icon-radio-outline {
  fill: var(--color-icon-disabled) !important;
}

/* Color Box
================================================== */

.component-colorbox {
  display: flex;
  column-gap: calc(8 var(--px-rem));
  padding: calc(24 var(--px-rem));
  border-radius: calc(12 var(--px-rem));
}
.component-colorbox .component-icon {
  flex-shrink: 0;
  width: 24px;
}
.component-colorbox .component-icon-image {
  fill: var(--color-icon-label);
}
.component-colorbox .colorbox-column {
  display: grid;
  row-gap: calc(8 var(--px-rem));
  flex-grow: 1;
}
.component-colorbox .colorbox-head {
  margin-top: calc(-2 var(--px-rem));
  font-size: calc(16 var(--px-rem));
  font-weight: var(--font-weight-m);
  line-height: var(--line-height-m);
  letter-spacing: var(--letter-spacing-m);
}
.component-colorbox .colorbox-body {
  display: grid;
  row-gap: calc(8 var(--px-rem));
  font-size: calc(14 var(--px-rem));
  letter-spacing: var(--letter-spacing-m);
}

@media (min-width: 961px) {
  .component-colorbox .colorbox-head {
    margin-top: calc(-4 var(--px-rem));
    font-size: calc(20 var(--px-rem));
    font-weight: var(--font-weight-r);
    line-height: var(--line-height-m);
  }
}

/* Type Information
------------------------------ */

.component-colorbox.type-information {
  background-color: var(--color-sumi-50);
}

/* Type Warning
------------------------------ */

.component-colorbox.type-warning {
  background-color: var(--color-wood-50);
  color: var(--color-wood-1000);
}
.component-colorbox.type-warning .component-icon-image {
  fill: var(--color-wood-1000);
}

/* Type Error
------------------------------ */

.component-colorbox.type-error {
  background-color: var(--color-sun-50);
  color: var(--color-text-alert);
}
.component-colorbox.type-error .component-icon-image {
  fill: var(--color-icon-alert);
}

/* Table
================================================== */

/* Wrapper
------------------------------ */

.component-table-wrapper {
  padding-bottom: calc(24 var(--px-rem));
  overflow-x: auto;
}
.component-table-wrapper > .component-table {
  min-width: 881px;
}

@media (min-width: 961px) {
  .component-table-wrapper {
    padding-bottom: 0;
  }
}

/* General
------------------------------ */

.component-table {
  width: 100%;
}
.component-table th,
.component-table td {
  height: calc(80 var(--px-rem));
  padding: calc(8 var(--px-rem));
  border: 1px solid var(--color-border-divider);
  text-align: left;
  font-weight: var(--font-weight-r);
}
.component-table thead th {
  background-color: var(--color-background-tertiary);
}
.component-table tbody th {
  background-color: var(--color-background-tertiary);
}
.component-table tbody td {
  background-color: var(--color-background-primary);
}

/* ======================================================================
 Modal
====================================================================== */

/* Common
================================================== */

body.is-modal-visible .body-container {
  position: fixed;
  z-index: 0;
  width: 100%;
  height: auto;
  overflow: hidden;
}
body.is-modal-visible .expand-container {
  height: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  background-color: var(--color-wood-50);
}
.modal {
  position: relative;
  z-index: 20000;
  display: none;
  height: 100%;
  min-height: inherit;
  transition: all .3s ease;
}
.modal:focus {
  outline: none;
}
.modal[aria-hidden="false"] {
  display: block;
}
.modal .modal-container {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 100vh;
  min-height: 100dvh;
}
.modal .modal-column {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.modal .modal-content {
  position: relative;
  flex-grow: 1;
  width: 100%;
  min-height: 0;
  margin: 0 auto;
}

@supports (-webkit-touch-callout: none) and (not (aspect-ratio: auto)) {
  body.is-modal-visible .expand-container {
    min-height: -webkit-fill-available;
  }
  .modal .modal-container {
    box-sizing: content-box;
    min-height: inherit;
  }
}

/* General
================================================== */

.modal-general .modal-container {
  justify-content: center;
  padding: calc(24 var(--px-rem));
}
.modal-general .modal-content {
  display: grid;
  row-gap: calc(24 var(--px-rem));
  padding: calc(16 var(--px-rem));
  background-color: var(--color-white);
  border-width: 1px;
  border-color: var(--color-border-divider);
  border-radius: calc(12 var(--px-rem));
  color: var(--color-black);
  opacity: 0;
  transform: translateY(30px);
  transition: opacity ease .3s, transform var(--ease-out-quad) .3s;
}
.modal-general .modal-content-main {
  display: grid;
  row-gap: calc(16 var(--px-rem));
}
.modal-general .modal-title {
  font-size: calc(24 var(--px-rem));
  font-weight: var(--font-weight-m);
  line-height: var(--line-height-m);
  letter-spacing: var(--letter-spacing-m);
}

@media (min-width: 521px) {
  .modal-general .modal-content {
    padding: calc(40 var(--px-rem)) calc(64 var(--px-rem));
  }
}

@media (min-width: 961px) {
  .modal-general .modal-container {
    padding: calc(40 var(--px-rem));
  }
  .modal-general .modal-column {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: 2rem;
    max-width: calc(1024 var(--px-rem));
  }
  .modal-general .modal-content {
    grid-column: span 2 / span 2;
    grid-column-start: 2;
    row-gap: calc(40 var(--px-rem));
  }
  .modal-general .modal-title {
    font-size: calc(28 var(--px-rem));
    font-weight: var(--font-weight-r);
  }
}

/* Is Visible */

.modal-general.is-visible {
  background-color: rgba(0, 0, 0, .6);
}
.modal-general.is-visible .modal-content {
  opacity: 1;
  transform: translateY(0);
}
