/*--------------------
 base start
--------------------*/

*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/

/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box;
  /* 1 */
  border-width: 0;
  /* 2 */
  border-style: solid;
  /* 2 */
  border-color: #e5e7eb;
  /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -moz-tab-size: 4;
  /* 3 */
  -o-tab-size: 4;
     tab-size: 4;
  /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  /* 4 */
  font-feature-settings: normal;
  /* 5 */
  font-variation-settings: normal;
  /* 6 */
  -webkit-tap-highlight-color: transparent;
  /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0;
  /* 1 */
  line-height: inherit;
  /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0;
  /* 1 */
  color: inherit;
  /* 2 */
  border-top-width: 1px;
  /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  /* 1 */
  font-feature-settings: normal;
  /* 2 */
  font-variation-settings: normal;
  /* 3 */
  font-size: 1em;
  /* 4 */
}

/*
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;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0;
  /* 1 */
  border-color: inherit;
  /* 2 */
  border-collapse: collapse;
  /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-feature-settings: inherit;
  /* 1 */
  font-variation-settings: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  font-weight: inherit;
  /* 1 */
  line-height: inherit;
  /* 1 */
  letter-spacing: inherit;
  /* 1 */
  color: inherit;
  /* 1 */
  margin: 0;
  /* 2 */
  padding: 0;
  /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button;
  /* 1 */
  background-color: transparent;
  /* 2 */
  background-image: none;
  /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
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 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/

dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1;
  /* 1 */
  color: #9ca3af;
  /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1;
  /* 1 */
  color: #9ca3af;
  /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/

:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  /* 1 */
  vertical-align: middle;
  /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */

[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}

body {
  font-size: 0.8125rem;
  line-height: 1.125rem;
  line-height: 1.75;
  letter-spacing: 0em;
  --tw-text-opacity: 1;
  color: rgb(10 10 10 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  body {
    font-size: 0.875rem;
    line-height: 1.25rem;
    line-height: 1.75;
  }
}

@media (min-width: 768px) {
  body {
    font-size: 1rem;
    line-height: 1.5rem;
    line-height: 1.75;
  }
}

/*base*/

html {
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
}

body {
  font-family:/*YakuHanJP,*/ "Noto Sans JP", "Hiragino Kaku Gothic Pro", "Osaka", "Meiryo", "MS PGothic", Sans-Serif;
  font-display: swap;
  min-height: 100vh;
  /*footerを下に固定*/
  display: flex;
  flex-direction: column;
}

body ::-webkit-scrollbar {
  width: 16px;
  /*スクロールバー全体の幅*/
  background-color: #fff;
  /*スクロールバーの背景色*/
}

body ::-webkit-scrollbar-thumb {
  border-radius: 0;
  /*スクロールバーの丸み*/
  box-shadow: inset 0 0 10px 10px #dce3f9;
  border: solid 4px transparent;
  /*スクロールバーの左右の余白*/
}

body.fog {
  background: #fff;
  animation: fadein 1s forwards;
}

@keyframes fadein {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

body.gradient {
  background-color: #fff;
  background-repeat: repeat-y;
  background-size: 25% 100%;
  background-position: 0 0;
  background-image: linear-gradient(#e7f7fb, #e7f7fb);
}

.num {
  font-family: "Jost", "Noto Sans JP", "Hiragino Kaku Gothic Pro", "Osaka", "Meiryo", "MS PGothic", monospace, Sans-Serif;
  font-display: swap;
}

/*
h1 {
  font-size: clamp(1.5rem, 1.25rem + 1.25vw, 2.75rem);
} ----24px-44px
h2 {
  font-size: clamp(1.25rem, 1.1rem + 0.75vw, 2rem);
} -----20px-32px
h3 {
  font-size: clamp(1.125rem, 1.025rem + 0.5vw, 1.625rem);
} -----18px-26px
h4 {
  font-size: clamp(1rem, 0.95rem + 0.25vw, 1.25rem);
} -----16px-20px
*/

.x_small {
  font-size: 75%;
}

.small {
  font-size: 87.5%;
}

.medium {
  font-size: 93.75%;
}

.large {
  font-size: 112.5%;
}

.x_large {
  font-size: 125%;
}

.bracket_left {
  /*冒頭に『（【　などが来る場合*/
  display: inline-block;
  margin-left: -0.6rem;
  padding-right: 0.25rem;
}

.bracket_right {
  /*bracket_left と対で使用　ただし、直前が全角括弧　）等の場合は空白になりすぎるので使用しない*/
  display: inline-block;
  padding-left: 0.25rem;
}

img {
  width: 100%;
}

/*--------------------
components start
--------------------*/

.container {
  width: 100%;
}

@media (min-width: 640px) {
  .container {
    max-width: 640px;
  }
}

@media (min-width: 768px) {
  .container {
    max-width: 768px;
  }
}

@media (min-width: 1024px) {
  .container {
    max-width: 1024px;
  }
}

@media (min-width: 1280px) {
  .container {
    max-width: 1280px;
  }
}

@media (min-width: 1440px) {
  .container {
    max-width: 1440px;
  }
}

@media (min-width: 1536px) {
  .container {
    max-width: 1536px;
  }
}

@media (min-width: 1600px) {
  .container {
    max-width: 1600px;
  }
}

@media (min-width: 1720px) {
  .container {
    max-width: 1720px;
  }
}

main {
  /*pt = header height / flex: 1 = footerを下に固定*/
  flex: 1 1 0%;
  padding-top: 4rem;
}

@media (min-width: 1024px) {
  main {
    padding-top: 6rem;
  }
}

section {
  width: 100%;
  padding-top: 2rem;
  padding-bottom: 2rem;
}

@media (min-width: 1024px) {
  section {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
}

.section_stickList {
  padding-top: 1rem;
}

/*
  section:first-of-type {
    @apply pt-0;
  }*/

aside {
  display: none;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 1rem;
}

@media (min-width: 1024px) {
  aside {
    display: block;
  }
}

article {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.container {
  margin: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}

@media (min-width: 1024px) {
  .container {
    max-width: 100%;
  }
}

@media (min-width: 1280px) {
  .container {
    max-width: 100%;
  }
}

@media (min-width: 1440px) {
  .container {
    max-width: 100%;
  }
}

@media (min-width: 1536px) {
  .container {
    max-width: 1600px;
  }
}

.container_full {
  width: 100%;
  max-width: none;
  overflow: hidden;
  /*overflow-hidden---> splide横スクロール時のはみだし対策で必須*/
}

div.nav_full {
  display: flex;
  flex-wrap: wrap;
}

.grid_type_1to2 {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

@media (min-width: 1024px) {
  .grid_type_1to2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.grid_type_1to3 {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

@media (min-width: 1024px) {
  .grid_type_1to3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.grid_type_1to4 {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

@media (min-width: 1024px) {
  .grid_type_1to4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.grid_type_1to2to3 {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

@media (min-width: 640px) {
  .grid_type_1to2to3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .grid_type_1to2to3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.grid_type_2to4 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 1024px) {
  .grid_type_2to4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/*title*/

.category_header {
  display: flex;
  height: 4rem;
  flex-direction: column;
  align-items: center;
  --tw-bg-opacity: 1;
  background-color: rgb(37 52 142 / var(--tw-bg-opacity, 1));
}

@media (min-width: 1024px) {
  .category_header {
    height: 5rem;
  }
}

@media (min-width: 1280px) {
  .category_header {
    flex-direction: row;
  }
}

.category_header p {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.category_header p span.num {
  margin-left: 1rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.title_set {
  display: flex;
  flex-direction: column;
  align-items: center;
}

@media (min-width: 1280px) {
  .title_set {
    flex-direction: row;
  }
}

.title_set h2 {
  text-align: center;
}

@media (min-width: 1280px) {
  .title_set h2 {
    text-align: left;
  }
}

.title_set h2 span.title_main {
  display: flex;
  flex-direction: column;
  align-items: center;
}

@media (min-width: 1280px) {
  .title_set h2 span.title_main {
    align-items: flex-start;
  }
}

.title_set h2 span.title_sub {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-left: 1rem;
  padding-right: 1rem;
}

@media (min-width: 1280px) {
  .title_set h2 span.title_sub {
    align-items: flex-start;
  }
}

.title_set > .text_btn {
  display: flex;
  flex-direction: column;
  align-items: center;
}

@media (min-width: 1280px) {
  .title_set > .text_btn {
    flex-direction: row;
    justify-content: space-between;
  }
}

@media (min-width: 640px) {
  .title_set > .text_btn a.btn_normal {
    order: 2;
  }
}

.title_set > .text_btn p.text {
  flex: 1 1 0%;
}

@media (min-width: 640px) {
  .title_set > .text_btn p.text {
    order: 1;
  }
}

/*
  .title_set p.lead {
    @apply p-4;
  }

  .title_set.stacking {
    @apply flex flex-col items-center justify-start;
  }

  .title_set.stacking > .text_btn p.text {
    @apply flex-1 sm:order-1;
  }

  .title_set.stacking > .text_btn {
    @apply mb-4 mt-0 flex flex-col items-center lg:mt-4;
  }
*/

/*text*/

p.lead {
  padding: 1rem;
  line-height: 1.75;
}

@media (min-width: 1024px) {
  p.lead {
    font-size: 1.125rem;
    line-height: 1.75rem;
    line-height: 1.75;
  }
}

/*table*/

table.table_plain {
  width: 100%;
  border-collapse: collapse;
  align-items: center;
  border-width: 1px;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

table.table_plain th {
  white-space: nowrap;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(163 163 163 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(245 245 245 / var(--tw-bg-opacity, 1));
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  text-align: left;
  vertical-align: middle;
  font-weight: 600;
}

table.table_plain tr.head th {
  text-align: center;
}

table.table_plain td {
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(163 163 163 / var(--tw-border-opacity, 1));
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  text-align: left;
  vertical-align: middle;
}

table.table_plain td.number {
  text-align: right;
}

table.table_plain td.start {
  vertical-align: top;
}

table.table_plain td ul {
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
}

table.table_plain td ul li {
  list-style-position: outside;
  list-style-type: disc;
}

table.table_list {
  width: 100%;
  border-collapse: collapse;
  align-items: center;
}

table.table_list th {
  white-space: nowrap;
  border-top-width: 1px;
  border-bottom-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(163 163 163 / var(--tw-border-opacity, 1));
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 2rem;
  padding-bottom: 2rem;
  text-align: left;
  vertical-align: top;
  font-weight: 600;
}

table.table_list td {
  border-top-width: 1px;
  border-bottom-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(163 163 163 / var(--tw-border-opacity, 1));
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 2rem;
  padding-bottom: 2rem;
  text-align: left;
  vertical-align: top;
}

table.table_list td ul {
  display: flex;
  flex-wrap: wrap;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
}

table.table_list td ul li {
  margin-right: 1rem;
  list-style-position: outside;
  list-style-type: disc;
  padding-right: 2rem;
}

/*link and bunner*/

ul.group_company {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 640px) {
  ul.group_company {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

ul.group_company li {
  padding: 0.5rem;
  text-align: center;
}

ul.group_company li a {
  display: block;
  height: 100%;
  border-radius: 0.25rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(115 115 115 / var(--tw-border-opacity, 1));
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  opacity: 0.9;
}

ul.group_company li a:hover {
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
  opacity: 1;
}

ul.group_company li a img.company_logo {
  margin-left: auto;
  margin-right: auto;
  margin-top: 0.25rem;
  height: 2rem;
}

ul.group_company li a span.company_name {
  display: inline-block;
  font-size: 0.625rem;
  line-height: 1rem;
}

@media (min-width: 1024px) {
  ul.group_company li a span.company_name {
    font-size: 0.75rem;
    line-height: 1rem;
  }
}

ul.special_site {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 640px) {
  ul.special_site {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  ul.special_site {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

ul.special_site li {
  padding: 0.5rem;
  text-align: center;
}

ul.special_site li a {
  display: flex;
  width: 100%;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 0.25rem;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 0.25rem;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

ul.special_site li a:hover {
  opacity: 0.9;
}

ul.special_site li a img {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

/*special_site　イメージ画像縦並び*/

ul.special_site.totec_solution_v {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 1024px) {
  ul.special_site.totec_solution_v {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

ul.special_site.totec_solution_v li a img.site_logo {
  margin-left: auto;
  margin-right: auto;
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
  width: 91.666666%;
  max-width: 15rem;
}

@media (min-width: 1280px) {
  ul.special_site.totec_solution_v li a img.site_logo {
    max-width: 16rem;
  }
}

/*special_site　イメージ画像横並び*/

ul.totec_solution_h {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

@media (min-width: 640px) {
  ul.totec_solution_h {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

ul.totec_solution_h li {
  padding: 0.5rem;
  text-align: center;
}

ul.totec_solution_h li a {
  display: flex;
  width: 100%;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  border-radius: 0.25rem;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  padding-left: 0.25rem;
  padding-right: 0.5rem;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

@media (min-width: 1024px) {
  ul.totec_solution_h li a {
    padding-right: 1.5rem;
  }
}

ul.totec_solution_h li a:hover {
  opacity: 0.9;
}

ul.totec_solution_h li a img.site_image {
  width: 33.333333%;
}

ul.totec_solution_h li a img.site_logo {
  margin-left: auto;
  margin-right: auto;
  width: 66.666667%;
  max-width: 15rem;
}

@media (min-width: 640px) {
  ul.totec_solution_h li a img.site_logo {
    max-width: 13rem;
  }
}

@media (min-width: 1280px) {
  ul.totec_solution_h li a img.site_logo {
    max-width: 18rem;
  }
}

ul.other {
  display: flex;
  flex-wrap: wrap;
}

ul.other li {
  width: 50%;
  padding: 0.5rem;
  text-align: center;
}

@media (min-width: 640px) {
  ul.other li {
    width: 33.333333%;
  }
}

@media (min-width: 1280px) {
  ul.other li {
    width: 25%;
  }
}

ul.other li a {
  display: block;
  height: 100%;
}

ul.other li a:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  opacity: 0.9;
}

ul.other li a img.other_logo {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

/*会社組織図*/

section.org_chart {
  margin-left: auto;
  margin-right: auto;
  max-width: 1024px;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding-left: 1rem;
  padding-right: 1rem;
}

section.org_chart div.name {
  display: flex;
  height: 2.5rem;
  width: 100%;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding-left: 1rem;
  padding-right: 1rem;
}

section.org_chart div.executives ul li {
  margin-top: 0.5rem;
  width: 66.666667%;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

@media (min-width: 1024px) {
  section.org_chart div.executives ul li {
    width: 50%;
  }
}

section.org_chart div.staff dl {
  padding-bottom: 2rem;
}

section.org_chart div.staff dl.last {
  margin-bottom: 0px;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding-bottom: 1rem;
}

section.org_chart div.staff dl dt.division {
  height: 2.5rem;
  padding-left: 1rem;
}

section.org_chart div.staff ul.dept li div.name {
  padding-left: 2rem;
}

section.org_chart div.group ul li {
  display: flex;
  height: 2.5rem;
  width: 66.666667%;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding-left: 2rem;
}

@media (min-width: 1024px) {
  section.org_chart div.group ul li {
    width: 50%;
  }
}

/*  シンプルアコーディオン */

.acc {
  overflow: hidden;
}

.acc_summary {
  display: flex;
  cursor: pointer;
  align-items: center;
  justify-content: space-between;
}

.acc_content {
  max-height: 0px;
  overflow: hidden;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
}

.acc[open] .acc_content {
  max-height: 1000px;
}

.acc_icon {
  height: 1rem;
  width: 1rem;
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
}

/* 縦線消す（＋ → −） */

.acc[open] .acc_icon-vertical {
  opacity: 0;
}

/*縦並びのカード*/

.v_card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

a.v_card {
  display: flex;
  flex-direction: column;
}

a.v_card:hover {
  cursor: pointer;
}

.v_card div.card_img {
  /*基本の縦横比は16:9*/
  width: 100%;
}

.v_card div.card_box {
  width: 100%;
}

.v_card .card_btn {
  margin-top: auto;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
}

/*画像とテキストが重なるカード*/

.layer_card {
  /*最小の高さのみ指定*/
  position: relative;
  display: flex;
  min-height: 6rem;
  flex-direction: column;
  overflow: hidden;
}

@media (min-width: 768px) {
  .layer_card {
    min-height: 12rem;
  }
}

.layer_card img.card_img {
  position: absolute;
  inset: 0px;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.layer_card div.card_box_base {
  pointer-events: none;
  position: absolute;
  inset: 0px;
  background-image: linear-gradient(to top, var(--tw-gradient-stops));
  --tw-gradient-from: #1f2937 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(31 41 55 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: transparent var(--tw-gradient-to-position);
}

@media (min-width: 768px) {
  .layer_card div.card_box_base {
    --tw-gradient-to: rgb(0 0 0 / 0)  var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to);
  }
}

.layer_card div.card_box {
  position: relative;
  margin-top: auto;
  padding: 1rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.layer_card .card_btn {
  margin-top: auto;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
}

/*横並びのカード*/

.h_card {
  display: flex;
  flex-direction: row;
}

a.h_card {
  display: flex;
  flex-direction: row;
}

a.h_card:hover {
  cursor: pointer;
}

.h_card .card_btn {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

/*横組み⇒縦組みへ変化するカード*/

.htov_card {
  display: flex;
  flex-direction: row;
}

@media (min-width: 1024px) {
  .htov_card {
    flex-direction: column;
  }
}

a.htov_card {
  display: flex;
  flex-direction: row;
}

a.htov_card:hover {
  cursor: pointer;
}

@media (min-width: 1024px) {
  a.htov_card {
    flex-direction: column;
  }
}

.htov_card .card_btn {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

/*縦組み⇒横組みへ変化するカード*/

.vtoh_card {
  display: flex;
  flex-direction: column;
}

@media (min-width: 1024px) {
  .vtoh_card {
    flex-direction: row;
  }
}

a.vtoh_card {
  display: flex;
  flex-direction: column;
}

a.vtoh_card:hover {
  cursor: pointer;
}

@media (min-width: 1024px) {
  a.vtoh_card {
    flex-direction: row;
  }
}

.vtoh_card .card_btn {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

/*各カード共通デザイン*/

div.card_box {
  display: flex;
  flex: 1 1 0%;
  flex-direction: column;
  padding: 1rem;
}

@media (min-width: 640px) {
  div.card_box {
    padding: 1.5rem;
  }
}

div.card_box {
  /*=stack_s*/
}

div.card_box .title {
  font-size: 1.125rem;
  line-height: 1.75rem;
  font-weight: 600;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 100ms;
}

@media (min-width: 768px) {
  div.card_box .title {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }
}

@media (min-width: 1024px) {
  div.card_box .title {
    font-size: 1.5rem;
    line-height: 2rem;
  }
}

div.card_box .title span.title_s {
  display: inline-block;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
}

@media (min-width: 768px) {
  div.card_box .title span.title_s {
    font-size: 0.9375rem;
    line-height: 1.375rem;
  }
}

@media (min-width: 1024px) {
  div.card_box .title span.title_s {
    font-size: 1rem;
    line-height: 1.5rem;
  }
}

div.card_box .title span.title_m {
  display: inline-block;
  font-size: 1rem;
  line-height: 1.5rem;
}

@media (min-width: 768px) {
  div.card_box .title span.title_m {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }
}

@media (min-width: 1024px) {
  div.card_box .title span.title_m {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }
}

div.card_box .title span.title_l {
  display: inline-block;
  font-size: 1.25rem;
  line-height: 1.75rem;
}

@media (min-width: 768px) {
  div.card_box .title span.title_l {
    font-size: 1.5rem;
    line-height: 2rem;
  }
}

@media (min-width: 1024px) {
  div.card_box .title span.title_l {
    font-size: 1.875rem;
    line-height: 2.25rem;
  }
}

div.card_img {
  /*w-** wは個別に設定する*/
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

@media (min-width: 1024px) {
  div.card_img {
    aspect-ratio: 16 / 9;
  }
}

div.card_img > img {
  position: absolute;
  inset: 0px;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

div.card_img.img_square {
  aspect-ratio: 1 / 1;
}

@media (min-width: 1024px) {
  div.card_img.img_square {
    aspect-ratio: 1 / 1;
  }
}

div.card_img.img_photo {
  aspect-ratio: 3 / 2;
}

@media (min-width: 1024px) {
  div.card_img.img_photo {
    aspect-ratio: 3 / 2;
  }
}

div.card_img.img_classic {
  aspect-ratio: 4 / 3;
}

@media (min-width: 1024px) {
  div.card_img.img_classic {
    aspect-ratio: 4 / 3;
  }
}

div.card_img.img_portrait {
  aspect-ratio: 2 / 3;
}

@media (min-width: 1024px) {
  div.card_img.img_portrait {
    aspect-ratio: 2 / 3;
  }
}

div.card_img.img_bar {
  aspect-ratio: 8 / 1;
}

@media (min-width: 1024px) {
  div.card_img.img_bar {
    aspect-ratio: 8 / 1;
  }
}

div.card_img.img_half {
  aspect-ratio: 2 / 1;
}

@media (min-width: 1024px) {
  div.card_img.img_half {
    aspect-ratio: 2 / 1;
  }
}

div.card_img.img_auto > img {
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: center;
     object-position: center;
  transition-property: none;
}

.card_btn.prb_m {
  padding-bottom: 1rem;
  padding-right: 1rem;
}

@media (min-width: 1024px) {
  .card_btn.prb_m {
    padding-bottom: 1.5rem;
    padding-right: 1.5rem;
  }
}

.card_type01 {
  border-radius: 0.25rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(133 145 199 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  --tw-shadow-color: rgb(161 196 253 / 0.2);
  --tw-shadow: var(--tw-shadow-colored);
}

a.card_type01:hover {
  --tw-shadow-color: rgb(161 196 253 / 0.5);
  --tw-shadow: var(--tw-shadow-colored);
  transition-property: box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.card_type02 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  --tw-shadow-color: rgb(0 0 0 / 0.2);
  --tw-shadow: var(--tw-shadow-colored);
}

a.card_type02:hover {
  --tw-shadow-color: rgb(0 0 0 / 0.3);
  --tw-shadow: var(--tw-shadow-colored);
  transition-property: box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.card_type03 {
  border-width: 4px;
  --tw-border-opacity: 1;
  border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
}

a.card_type03:hover {
  opacity: 0.9;
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.card_type04 {
  border-radius: 0.5rem;
  padding: 1rem;
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

a.card_type04:hover {
  --tw-shadow: 1px 1px 0px 0px rgba(68, 64, 60, 0.5), 8px 8px 0px 0px rgba(68, 64, 60, 0.2);
  --tw-shadow-colored: 1px 1px 0px 0px var(--tw-shadow-color), 8px 8px 0px 0px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  transition-property: box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.splide_card {
  position: relative;
  height: 100%;
  border-radius: 0.25rem;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding-left: 0.25rem;
  padding-right: 0.25rem;
  padding-bottom: 1rem;
  padding-top: 3rem;
}

a.splide_card {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-duration: 200ms;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.splide_card div.icon_type_set {
  position: absolute;
  top: 1rem;
  right: 0px;
  z-index: 10;
  display: flex;
  width: 100%;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
}

@media (min-width: 1024px) {
  .splide_card div.icon_type_set {
    top: 0.25rem;
  }
}

.splide_card p.type {
  width: 100%;
  text-align: right;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 700;
  letter-spacing: -0.025em;
}

@media (min-width: 1024px) {
  .splide_card p.type {
    font-size: 0.9375rem;
    line-height: 1.375rem;
  }
}

.splide_card p.type.its {
  letter-spacing: -0.05em;
  color: rgb(37 52 142 / 0.8);
}

.splide_card p.type.its::before {
  content: var(--tw-content);
  --tw-bg-opacity: 1;
  background-color: rgb(37 52 142 / var(--tw-bg-opacity, 1));
}

.splide_card p.type.nwb {
  color: rgb(14 165 233 / 0.8);
}

.splide_card p.type.nwb::before {
  content: var(--tw-content);
  --tw-bg-opacity: 1;
  background-color: rgb(14 165 233 / var(--tw-bg-opacity, 1));
}

.splide_card p.type.tec {
  color: rgb(244 63 94 / 0.8);
}

.splide_card p.type.tec::before {
  content: var(--tw-content);
  --tw-bg-opacity: 1;
  background-color: rgb(244 63 94 / var(--tw-bg-opacity, 1));
}

.splide_card p.type.egs {
  color: rgb(101 163 13 / 0.8);
}

.splide_card p.type.egs::before {
  content: var(--tw-content);
  --tw-bg-opacity: 1;
  background-color: rgb(101 163 13 / var(--tw-bg-opacity, 1));
}

.splide_card img.type_icon {
  width: 2.5rem;
}

@media (min-width: 1024px) {
  .splide_card img.type_icon {
    width: 3.5rem;
  }
}

.splide_card div.card_box {
  padding: 0px;
}

.splide_card p.title {
  padding: 0.5rem;
}

.splide_card p.title span.title_m {
  display: inline-block;
}

.splide_card p.tag {
  --tw-bg-opacity: 1;
  background-color: rgb(37 52 142 / var(--tw-bg-opacity, 1));
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.125rem;
  padding-bottom: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

@media (min-width: 1024px) {
  .splide_card p.tag {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

/*header*/

header {
  position: fixed;
  z-index: 9999;
  width: 100%;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

/*header.ta_header_shadow {
    @apply transition-all duration-200 ease-in-out lg:shadow-2xl;
  }*/

header .ta_header_nav_area {
  margin-left: auto;
  margin-right: auto;
  margin-top: 0px;
  display: flex;
  width: 100%;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
}

@media (min-width: 1024px) {
  header .ta_header_nav_area {
    max-width: 1920px;
  }
}

header a.header_site_name {
  /*h-** = header height*/
  margin-left: 0.5rem;
  display: flex;
  height: 4rem;
  flex-wrap: wrap;
  align-items: center;
  overflow: hidden;
}

@media (min-width: 1024px) {
  header a.header_site_name {
    height: -moz-fit-content;
    height: fit-content;
    max-width: 25%;
  }
}

@media (min-width: 1280px) {
  header a.header_site_name {
    margin-left: 1rem;
  }
}

header nav.ta_header_nav {
  /*ナビゲーションエリア全体*/
  /*top-** = header height (+ border)*/
  position: absolute;
  left: 0px;
  right: 0px;
  top: 4rem;
  width: 100%;
  --tw-translate-x: 100%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  overflow-y: auto;
}

@media (min-width: 1024px) {
  header nav.ta_header_nav {
    position: static;
    display: flex;
    width: 75%;
    --tw-translate-x: 0px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    justify-content: flex-end;
    overflow: visible;
  }
}

header ul.ta_cmn_nav_1st {
  /*メインのリスト*/
  /*top-** = header height (+ border)*/
  margin-left: auto;
  margin-right: auto;
  margin-top: 1rem;
  width: 83.333333%;
  padding: 0px;
}

@media (min-width: 1024px) {
  header ul.ta_cmn_nav_1st {
    position: relative;
    left: auto;
    top: auto;
    order: 2;
    margin: 0px;
    display: flex;
    height: initial;
    width: 100%;
    align-items: flex-start;
    justify-content: space-evenly;
  }
}

header ul.ta_cmn_nav_1st li {
  /*Make width equal in lg(min1024px)*/
  width: 100%;
}

header ul.ta_cmn_nav_1st li .ta_cmn_nav_item {
  /*メインのリストの大カテゴリ*/
  margin: 0px;
  display: block;
  cursor: pointer;
  white-space: nowrap;
  text-align: left;
  font-size: 0.9375rem;
  line-height: 1.375rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

@media (min-width: 1024px) {
  header ul.ta_cmn_nav_1st li .ta_cmn_nav_item {
    text-align: center;
    --tw-text-opacity: 1;
    color: rgb(10 10 10 / var(--tw-text-opacity, 1));
  }

  header ul.ta_cmn_nav_1st li .ta_cmn_nav_item:hover {
    --tw-text-opacity: 1;
    color: rgb(63 91 217 / var(--tw-text-opacity, 1));
  }
}

header ul.ta_cmn_nav_2nd {
  /*サブのリストがある場合*/
  /*top-** = header height (+ border)*/
  margin-left: auto;
  margin-right: auto;
  width: 83.333333%;
  padding: 0px;
}

@media (min-width: 1024px) {
  header ul.ta_cmn_nav_2nd {
    position: relative;
    left: auto;
    order: 1;
    margin: 0px;
    display: flex;
    height: initial;
    width: 100%;
    align-items: flex-start;
    justify-content: flex-end;
  }
}

header ul.ta_cmn_nav_2nd li {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

@media (min-width: 1024px) {
  header ul.ta_cmn_nav_2nd li {
    --tw-bg-opacity: 1;
    background-color: rgb(37 52 142 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  }

  header ul.ta_cmn_nav_2nd li:hover {
    --tw-text-opacity: 1;
    color: rgb(63 91 217 / var(--tw-text-opacity, 1));
  }
}

header ul.ta_cmn_nav_2nd li .ta_cmn_nav_item {
  /*サブのリストの大カテゴリ*/
  margin: 0px;
  display: block;
  cursor: pointer;
  white-space: nowrap;
  text-align: left;
  font-size: 0.9375rem;
  line-height: 1.375rem;
}

@media (min-width: 1024px) {
  header ul.ta_cmn_nav_2nd li .ta_cmn_nav_item {
    text-align: center;
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

/*megamenuがある場合　ここから*/

header .ta_mm_content div.ta_mm_content_innerbox {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  max-width: 1280px;
}

@media (min-width: 1024px) {
  header .ta_mm_content div.ta_mm_content_innerbox {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

header .ta_mm_content div.category_top_title_l {
  margin-top: 1.5rem;
  display: none;
}

@media (min-width: 1024px) {
  header .ta_mm_content div.category_top_title_l {
    display: block;
  }
}

/*header .ta_mm_content img.category_top_img {
    @apply my-4 hidden aspect-video w-full lg:block;
  }*/

header .ta_mm_content .category_top_img {
  position: relative;
  margin-top: 0.75rem;
  margin-bottom: 0.75rem;
  display: none;
  aspect-ratio: 16 / 9;
  width: 100%;
  overflow: hidden;
}

@media (min-width: 1024px) {
  header .ta_mm_content .category_top_img {
    display: block;
  }
}

header .ta_mm_content .category_top_img > img {
  position: absolute;
  inset: 0px;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

header .ta_mm_content div.category_top_title_l span.jp {
  --tw-text-opacity: 1;
  color: rgb(12 25 102 / var(--tw-text-opacity, 1));
  opacity: 0.75;
}

header .ta_mm_content div.category_top_title_l span.en {
  display: block;
  padding-left: 0.5rem;
  font-size: calc(1.325rem + 0.9vw);
  line-height: 1.1;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(133 145 199 / var(--tw-text-opacity, 1));
}

header .ta_mm_content div.category_top_title_l span.jp {
  margin-top: 0.5rem;
  display: block;
  padding-left: 0.5rem;
  font-size: 1.25rem;
  line-height: 1.75rem;
}

@media (min-width: 1024px) {
  header .ta_mm_content div.first {
    grid-column: span 2 / span 2;
    padding: 1rem;
  }
}

header .ta_mm_inner {
  -moz-column-gap: 1rem;
       column-gap: 1rem;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
}

@media (min-width: 1024px) {
  header .ta_mm_inner {
    display: grid;
    --tw-bg-opacity: 1;
    background-color: rgb(241 243 251 / var(--tw-bg-opacity, 1));
    font-size: 1rem;
    line-height: 1.5rem;
  }
}

header .ta_mm_inner.outside {
  display: none;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
}

@media (min-width: 1024px) {
  header .ta_mm_inner.outside {
    margin-top: 0.25rem;
    display: block;
    --tw-bg-opacity: 1;
    background-color: rgb(220 227 249 / var(--tw-bg-opacity, 1));
  }
}

header .ta_mm_inner li.category_top_title_S {
  display: block;
}

@media (min-width: 1024px) {
  header .ta_mm_inner li.category_top_title_S {
    display: none;
  }
}

/*megamenuがある場合　ここまで*/

/*footer*/

footer {
  --tw-bg-opacity: 1;
  background-color: rgb(38 38 38 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

footer nav.ta_footer_nav {
  /*ナビゲーションエリア全体*/
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-around;
  padding-top: 1rem;
  padding-bottom: 1rem;
}

@media (min-width: 1280px) {
  footer nav.ta_footer_nav {
    flex-direction: row;
    align-items: flex-start;
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
}

footer div.nav_full {
  display: none;
}

@media (min-width: 1280px) {
  footer div.nav_full {
    order: 2;
    display: block;
    width: 66.666667%;
  }
}

footer div.address {
  margin-top: 1rem;
  margin-bottom: 1rem;
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  --tw-border-opacity: 1;
  border-color: rgb(115 115 115 / var(--tw-border-opacity, 1));
}

@media (min-width: 1024px) {
  footer div.address {
    border-top-width: 1px;
  }
}

@media (min-width: 1280px) {
  footer div.address {
    margin-top: 1rem;
    width: -moz-fit-content;
    width: fit-content;
    border-width: 0px;
  }
}

footer div.address div.name {
  margin-top: 2rem;
  margin-bottom: 2rem;
  width: -moz-fit-content;
  width: fit-content;
}

@media (min-width: 1280px) {
  footer div.address div.name {
    order: 1;
    margin-top: 0px;
  }
}

footer div.address div.sns {
  margin-top: 1rem;
}

@media (min-width: 1280px) {
  footer div.address div.sns {
    margin-top: 4rem;
  }
}

/*footer ul.ta_cmn_nav_1st {
    @apply grid grid-cols-2 gap-8 lg:grid-cols-3;
  }*/

footer ul.ta_cmn_nav_1st li a {
  display: block;
}

footer ul.ta_cmn_nav_1st li.single {
  padding-top: 1rem;
  padding-bottom: 1rem;
  font-weight: 700;
}

footer ul.ta_cmn_nav_2nd {
  -moz-column-gap: 2rem;
       column-gap: 2rem;
}

@media (min-width: 1024px) {
  footer ul.ta_cmn_nav_2nd {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

footer ul.ta_cmn_nav_2nd li {
  padding-top: 1rem;
  padding-bottom: 1rem;
  font-weight: 700;
}

/*footer .ta_mm_inner.outside {
    @apply hidden;
  }*/

footer .ta_mm_content div.category_top_title_l {
  border-bottom-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(115 115 115 / var(--tw-border-opacity, 1));
  padding-top: 1rem;
  padding-bottom: 1rem;
  font-weight: 700;
}

footer .ta_mm_content div.category_top_title_l span.num {
  display: none;
}

/*megamenuがある場合ここから*/

footer .ta_mm_content .category_top_img {
  display: none;
}

footer p.ta_mm_trigger {
  display: none;
}

footer .ta_mm_inner {
  background-color: transparent;
  font-size: 0.875rem;
  line-height: 1.25rem;
}

@media (min-width: 1024px) {
  footer .ta_mm_inner {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

footer .ta_mm_inner li {
  margin-top: 1rem;
  margin-bottom: 1rem;
}

footer .ta_mm_inner li.category_top_title_S {
  display: none;
}

footer div.btn_close {
  display: none;
}

/*megamenuがある場合ここまで*/

/*policy_link*/

footer div.ta_cmn_nav_3rd {
  width: 100%;
  --tw-bg-opacity: 1;
  background-color: rgb(10 10 10 / var(--tw-bg-opacity, 1));
}

footer div.ta_cmn_nav_3rd .container {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  padding: 1rem;
}

@media (min-width: 1024px) {
  footer div.ta_cmn_nav_3rd .container {
    flex-direction: row;
    padding-left: 4rem;
    padding-right: 4rem;
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
}

footer ul.policy {
  margin-bottom: 2rem;
  display: flex;
  width: 100%;
  flex-direction: column;
  flex-wrap: wrap;
}

@media (min-width: 640px) {
  footer ul.policy {
    flex-direction: row;
  }
}

@media (min-width: 1024px) {
  footer ul.policy {
    margin-bottom: 0px;
    width: 75%;
  }
}

footer ul.policy li {
  text-align: center;
  font-size: 0.75rem;
  line-height: 1rem;
}

@media (min-width: 1024px) {
  footer ul.policy li {
    text-align: left;
    font-size: 0.75rem;
    line-height: 1rem;
  }
}

footer ul.policy li a {
  display: block;
  padding: 1.25rem;
  --tw-text-opacity: 1;
  color: rgb(250 250 250 / var(--tw-text-opacity, 1));
}

footer ul.policy li a:hover {
  opacity: 0.5;
}

@media (min-width: 1024px) {
  footer ul.policy li a {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
  }
}

footer p.copy {
  margin-bottom: 0.75rem;
  width: 100%;
  text-align: center;
  font-size: 0.875rem;
  line-height: 1.25rem;
  --tw-text-opacity: 1;
  color: rgb(163 163 163 / var(--tw-text-opacity, 1));
}

@media (min-width: 1024px) {
  footer p.copy {
    width: 25%;
    text-align: right;
  }
}

/*sitemap*/

body.ta_sitemap section {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

@media (min-width: 1024px) {
  body.ta_sitemap section {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
}

body.ta_sitemap div.sitemap {
  margin-left: auto;
  margin-right: auto;
  max-width: 1440px;
}

body.ta_sitemap dl.category {
  background-color: rgb(109 131 213 / 0.5);
}

/*
  body.ta_sitemap dl.category dt {
    @apply bg-blue-100 font-bold text-lg border-t border-asort_color;
  }*/

body.ta_sitemap dl.category dt.category_top {
  border-top-width: 4px;
  border-color: rgb(63 91 217 / 0.5);
  font-size: calc(1.1rem + 0.25vw);
  line-height: 1.1;
  font-weight: 700;
}

body.ta_sitemap dl.category dd {
  --tw-bg-opacity: 1;
  background-color: rgb(241 243 251 / var(--tw-bg-opacity, 1));
}

body.ta_sitemap dl.category .category_sub {
  border-top-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(63 91 217 / var(--tw-border-opacity, 1));
}

body.ta_sitemap dl.category .category_sub_top {
  background-color: rgb(109 131 213 / 0.1);
  font-weight: 700;
}

body.ta_sitemap dl.category .solution_group {
  background-color: rgb(37 52 142 / 0.8);
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

body.ta_sitemap dl.link dt {
  margin-bottom: 1rem;
  background-color: rgb(37 52 142 / 0.8);
  padding-left: 2rem;
  padding-right: 2rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

body.ta_sitemap div.sitemap .acc_summary {
  padding-top: 1rem;
  padding-bottom: 1rem;
  padding-left: 2rem;
  padding-right: 1rem;
}

body.ta_sitemap div.sitemap .acc_icon {
  height: 1rem;
  width: 1rem;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

body.ta_sitemap div.sitemap .acc_content {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

body.ta_sitemap div.sitemap .acc_content ul > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}

body.ta_sitemap div.sitemap .acc_content ul {
  padding: 0.25rem;
}

.btn_normal {
  display: flex;
  height: -moz-fit-content;
  height: fit-content;
  width: -moz-fit-content;
  width: fit-content;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 0.25rem;
  padding-right: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-duration: 200ms;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

@media (min-width: 1024px) {
  .btn_normal {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    padding-top: 1rem;
    padding-bottom: 1rem;
    font-size: 0.9375rem;
    line-height: 1.375rem;
  }
}

.btn_normal_s {
  display: flex;
  height: -moz-fit-content;
  height: fit-content;
  width: -moz-fit-content;
  width: fit-content;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-duration: 200ms;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

@media (min-width: 1024px) {
  .btn_normal_s {
    font-size: 0.8125rem;
    line-height: 1.125rem;
  }
}

.btn_normal div.extlink {
  /*add common.css -- > more btn icon */
  margin-top: auto;
  margin-bottom: auto;
}

.btn_normal div.more {
  /*add common.css -- > extlink btn icon */
  margin-top: auto;
  margin-bottom: auto;
}

ul.newsList li {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  max-width: 1024px;
  border-bottom-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(133 145 199 / var(--tw-border-opacity, 1));
  padding-left: 1rem;
  padding-right: 1rem;
}

@media (min-width: 1024px) {
  ul.newsList li {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

ul.newsList li a {
  width: 100%;
}

ul.newsList li dl {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  padding-top: 1rem;
  padding-bottom: 1rem;
  padding-right: 4rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  line-height: 1.625;
}

@media (min-width: 1024px) {
  ul.newsList li dl {
    padding-top: 2rem;
    padding-bottom: 2rem;
    font-size: 0.9375rem;
    line-height: 1.375rem;
  }
}

ul.newsList li dt {
  width: 8rem;
  flex: none;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-family:  Jost, monospace, sans-Serif;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(63 91 217 / var(--tw-text-opacity, 1));
}

@media (min-width: 768px) {
  ul.newsList li dt {
    width: 9rem;
  }
}

ul.newsList li dd.mark {
  width: 5rem;
  flex: none;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

@media (min-width: 768px) {
  ul.newsList li dd.mark {
    width: 8rem;
  }
}

ul.newsList li dd.mark span.text {
  position: relative;
  margin-left: auto;
  margin-right: auto;
  display: block;
  max-width: 6rem;
  white-space: nowrap;
  border-radius: 1rem;
  padding: 0.25rem;
  text-align: center;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 700;
  /*badge*/
}

ul.newsList li dd.text {
  width: 100%;
  flex-grow: 1;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

ul.newsList li a dd.text {
  width: 100%;
  flex-grow: 1;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

body.ta_sitetop ul.newsList li img {
  display: none;
}

/*components*/

/*layout*/

.layout_2col {
  display: grid;
}

.layout_2col_side_s {
  grid-template-columns: 15% minmax(0, 1fr);
}

.layout_2col_side_m {
  grid-template-columns: 18% minmax(0, 1fr);
}

.layout_2col_side_l {
  grid-template-columns: 22% minmax(0, 1fr);
}

@media (max-width: 1024px) {
  .layout_2col {
    grid-template-columns: 1fr;
  }
}

/*utilities*/

/*components*/

/*  シンプルアコーディオン */

.acc_icon-vertical {
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
  transform-origin: center;
}

.acc[open] .acc_icon-vertical {
  opacity: 0;
  transform: scaleY(0.3);
}

/*会社組織図*/

section.org_chart div.executives ul {
  background: url(/company/organization/img/bg_line01.gif) repeat-y 14px 14px;
}

section.org_chart div.executives ul li {
  background: url(/company/organization/img/bg_category01.gif) no-repeat 0 0;
  color: #fff;
}

section.org_chart div.executives ul li.auditor {
  margin-left: 0;
  padding-left: 120px;
  background: url(/company/organization/img/bg_category01Line.gif) no-repeat 14px 0;
}

section.org_chart div.staff {
  margin-left: 16px;
  padding-left: 32px;
  /*background: #fff url(/company/organization/img/bg_line02.gif) repeat-y 17px 0;*/
  background: #fff;
  border-left: solid 1px #c33;
}

section.org_chart div.staff dl {
  display: grid;
  grid-template-columns: 45% minmax(0, 1fr);
  border-left: solid 1px #c33;
}

section.org_chart div.staff dl.first {
  padding-top: 32px;
}

section.org_chart div.staff dl.last {
  border-left: solid 1px transparent;
}

section.org_chart div.staff dl dt.division {
  background: url(/company/organization/img/bg_category02.gif) no-repeat 0 0;
}

section.org_chart div.staff dl.last dt.division {
  background: url(/company/organization/img/bg_category02Bottom.gif) no-repeat 0 0;
}

section.org_chart div.staff ul.dept li div.name {
  background: url(/company/organization/img/bg_category03.gif) no-repeat 0 0;
}

section.org_chart div.staff ul.dept li:first-child div.name {
  background: url(/company/organization/img/bg_category03Top.gif) no-repeat 0 0;
}

section.org_chart div.staff ul.dept li:last-child div.name {
  background: url(/company/organization/img/bg_category03Bottom.gif) no-repeat 0 0;
}

section.org_chart div.group ul {
  background: #fff url("/company/organization/img/bg_line02.gif") no-repeat 16px 0;
}

section.org_chart div.group ul li {
  background: url(/company/organization/img/bg_category02.gif) no-repeat 16px 0;
  border: 1px dotted #c33;
}

section.org_chart div.group ul li:last-child {
  background: url(/company/organization/img/bg_category02Bottom.gif) no-repeat 17px 0;
}

@media (min-width: 1024px) {
  section.org_chart div.staff dl {
    display: grid;
    grid-template-columns: 35% minmax(0, 1fr);
  }
}

/*div.group ul li a {
  background: url(/commonR/cmn_img/icon_arrow_round_w_line.png) no-repeat 5px 3px;
}*/

/*title*/

/*font-size: clamp(1.063rem, 0.975rem + 0.44vw, 1.5rem); -----17px-24px*/

/*font-size: clamp(1.125rem, 1.025rem + 0.5vw, 1.625rem); -----18px-26px*/

/*font-size: clamp(1.5rem, 1.3rem + 1vw, 2.5rem); -----24px-40px*/

/*font-size: clamp(2.25rem, 1.75rem + 2.5vw, 4.75rem); -----36px-76px*/

/*font-size: clamp(3rem, 2.6rem + 2vw, 5rem); -----48px-80px*/

.title_set h2 span.title_main {
  font-size: clamp(1.75rem, 1.55rem + 1vw, 2.75rem);
  /*-----28px-44px*/
  background: linear-gradient(90deg, rgb(37, 52, 142) 0%, #3f5bd9 40%, #a1c4fd 100%);
  -webkit-background-clip: text;
  /*safari・Chrome対応*/
  background-clip: text;
  color: transparent;
  filter: drop-shadow(2px 1px 0 rgba(255, 255, 255, 1));
  font-weight: 700;
}

.title_set h2 span.title_main.white {
  font-size: clamp(1.75rem, 1.55rem + 1vw, 2.75rem);
  /*-----28px-44px*/
  background: linear-gradient(90deg, #fff 0%, #fff 40%, #a1c4fd 100%);
  -webkit-background-clip: text;
  /*safari・Chrome対応*/
  background-clip: text;
  color: transparent;
  filter: drop-shadow(2px 1px 0 #0c1966);
  /*deep_blue*/
  font-weight: 700;
}

/*英文表記*/

.title_set h2 span.num.title_main {
  letter-spacing: -0.05rem;
  font-size: clamp(2rem, 1.5rem + 2.5vw, 4.5rem);
  /*-----32px-72px*/
  font-weight: 600;
  line-height: 1;
}

.title_set h2 span.title_sub {
  color: #3f5bd9;
  font-size: clamp(1rem, 0.95rem + 0.25vw, 1.25rem);
  /*-----16px-20px*/
  font-weight: 700;
}

body.ta_categorytop .title_set h2 span.num.title_main {
  font-size: clamp(3rem, 2.6rem + 2vw, 5rem);
  /*-----48px-80px*/
}

body.ta_categorytop .title_set h2 span.title_sub {
  font-size: clamp(1.125rem, 1.025rem + 0.5vw, 1.625rem);
  /*-----18px-26px*/
}

.title_set h3 {
  font-size: clamp(1.25rem, 1.05rem + 1vw, 2.25rem);
  /*-----20px-36px*/
  font-weight: 700;
  color: #25348e;
}

.title_set h3.deco {
  font-size: clamp(1.25rem, 1.05rem + 1vw, 2.25rem);
  /*-----20px-36px*/
}

.title_set p.lead,
.title_set + p.lead {
  font-size: clamp(0.875rem, 0.825rem + 0.25vw, 1.125rem);
  /*14px-18px in 320px-1920px*/
}

/*tab*/

.tab-group {
  display: flex;
  justify-content: center;
}

.tab {
  flex-grow: 1;
  padding: 16px 8px;
  list-style: none;
  color: #333;
  font-weight: 500;
  cursor: pointer;
  background: #ccc;
  min-width: 32%;
  text-align: center;
  font-size: 0.75rem;
}

.tab span {
  font-size: 0.75rem;
  display: inline-block;
}

.panel-group {
  /*min-height: 50vh;
	border:solid 8px #e7f7fb;*/
  border-top: 0;
  background: #fff;
}

.panel {
  display: none;
}

.tab.is-select {
  background: #333;
  color: #fff;
  font-weight: 700;
  transition: all 0.2s ease-out;
  /*font-size:1rem !important;*/
}

.panel.is-show {
  display: block;
}

@media (min-width: 1024px) {
  .tab {
    font-size: 1.125rem;
    text-align: center;
    /*padding:24px 8px 16px 8px;
		min-height: 96px;*/
  }

  .tab span {
    font-size: 1rem;
    display: block;
  }

  /*.tab.is-select{
		font-size:1.25rem !important;
	}*/
}

section#concept {
  background: url(/common/cmn_img/bg_concept.jpg) no-repeat;
  background-position: top center;
  background-size: cover;
}

/*事業概念図ピース背景*/

.card_piece_x,
.card_piece_l,
.card_piece_b {
  background: url(/common/cmn_img/bg_piece_b.svg) repeat-x top center;
  background-size: 1920px 1280px;
}

@media (min-width: 1024px) {
  .card_piece_r {
    background: url(/common/cmn_img/bg_piece_r.svg) repeat-y right center;
    background-size: 1200px 1600px;
  }

  .card_piece_l {
    background: url(/common/cmn_img/bg_piece_l.svg) repeat-y left center;
    background-size: 1200px 1600px;
  }

  .card_piece_b {
    background: url(/common/cmn_img/bg_piece_b.svg) repeat-x top center;
    background-size: 1600px 1200px;
  }

  .card_piece_x {
    background: none;
  }
}

.card_piece div.card_box {
  position: relative;
  z-index: 1;
  padding-top: 64px;
  padding-bottom: 32px;
}

.card_piece.card_piece_r div.card_box {
  margin-top: -32px;
}

.card_piece div.card_box p.piecetitle {
  position: absolute;
  color: #fff;
  background-clip: border-box;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-image: url("/common/cmn_img/bg_piecetitle.jpg");
  background-position: center bottom;
  background-size: 150%;
  opacity: 0.75;
  font-size: clamp(3.5rem, 3.15rem + 1.75vw, 5.25rem);
  /*56-84*/
  font-weight: 900;
  line-height: 1.5;
  letter-spacing: -0.05rem;
  z-index: -1;
  text-align: right;
  word-break: break-all;
  height: -moz-fit-content;
  height: fit-content;
  bottom: 16px;
  left: 24px;
}

.card_piece div.card_box p.piecetitle.itstitle {
  filter: hue-rotate(90deg);
}

.card_piece div.card_box p.piecetitle.tectitle {
  filter: hue-rotate(210deg);
}

.card_piece div.card_box p.piecetitle.nwbtitle {
  filter: hue-rotate(90deg);
}

.card_piece div.card_box p.piecetitle.egstitle {
  /*filter: hue-rotate(0deg);*/
  letter-spacing: -0.2rem;
}

@media (min-width: 1024px) {
  .card_piece div.card_box {
    position: relative;
    z-index: 1;
    padding-top: 32px;
    padding-bottom: 32px;
  }

  .card_piece.card_piece_r div.card_box,
  .card_piece.card_piece_l div.card_box,
  .card_piece.card_piece div.card_box {
    max-width: 480px;
    margin: 0 auto;
  }

  .card_piece.card_piece_r div.card_box {
    margin: 0 32px 0 auto;
  }

  .card_piece.card_piece_l div.card_box {
    margin: 0 auto 0 32px;
  }

  .card_piece.card_piece_b div.card_box {
    padding-top: 60px;
    max-width: 1080px;
    margin: 0 auto;
  }

  .card_piece div.card_box p.piecetitle.itstitle {
    filter: hue-rotate(90deg);
    bottom: 0;
    left: 24px;
  }

  .card_piece div.card_box p.piecetitle.tectitle {
    filter: hue-rotate(210deg);
    bottom: 0;
    left: 24px;
  }

  .card_piece div.card_box p.piecetitle.nwbtitle {
    filter: hue-rotate(90deg);
    bottom: 0;
    left: 50%;
  }

  .card_piece div.card_box p.piecetitle.egstitle {
    bottom: 0;
    left: 24px;
  }
}

/*components*/

/*components*/

/*
---------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------
*/

header {
  border-top: 4px solid #25348e;
  border-bottom: 1px solid #dce3f9;
}

header img.header_site_logo {
  width: 120px;
  height: 40px;
}

@media (min-width: 1024px) {
  header img.header_site_logo {
    width: 144px;
    height: 48px;
  }
}

/*@media*/

@media (min-width: 1280px) {
  header img.header_site_logo {
    width: 180px;
    height: 60px;
  }
}

/*@media*/

header span.site_name {
  font-size: clamp(0.625rem, 0.575rem + 0.25vw, 0.875rem);
  letter-spacing: 0.05rem;
  font-weight: bold;
  display: none;
}

header span.site_name span.num {
  /*社名の欧文表記*/
  display: none;
  letter-spacing: 0.025rem;
}

@media (min-width: 1440px) {
  header span.site_name {
    display: block;
  }
}

/*@media*/

header nav.ta_header_nav {
  /*ナビゲーションエリア全体*/
  /*変動部分*/
  width: 100%;
  height: calc(100vh - 64px);
  /*header height*/
  transform: translateX(100%);
  background: rgba(12, 25, 102, 0.5) url(/img/bg_topImage01.webp) no-repeat;
  /*変動*/
  background-position: center right 35%;
  background-size: cover;
  transition: ease 0.4s;
  /*-----リサイズ時のチラつき防止したい場合は、ここをコメントアウトしてactiveのみとする*/
  background-blend-mode: multiply;
}

@media (min-width: 1024px) {
  header nav.ta_header_nav {
    /*変動部分*/
    width: 70%;
    /*変動*/
    height: initial;
    transform: initial;
    max-width: 1600px;
    /*変動*/
    min-width: 660px;
    /*変動*/
    background: transparent;
    transition: none;
  }
}

/*@media*/

header ul.ta_cmn_nav_1st li .ta_cmn_nav_item,
header ul.ta_cmn_nav_2nd li .ta_cmn_nav_item {
  /*メインのリストの大カテゴリ*/
  /*変動部分*/
  border-top: 1px solid #fff;
  /*区切り線*/
  padding: 1rem 0.5rem 1rem 1rem;
  font-weight: 700;
}

header ul.ta_cmn_nav_1st li:first-child .ta_cmn_nav_item {
  border-top: none;
}

@media (min-width: 1024px) {
  header ul.ta_cmn_nav_1st li .ta_cmn_nav_item {
    border-width: 0px;
    padding-top: 1.5rem;
    padding-right: 1.75rem;
    padding-left: 1.75rem;
    line-height: 1;
    height: 72px;
  }

  header ul.ta_cmn_nav_2nd li .ta_cmn_nav_item {
    border-width: 0px;
    padding: 0 2rem;
    line-height: 28px;
    height: 32px;
  }
}

/*@media*/

@media (min-width: 1024px) {
  header a.link_extlink::before,
  header a.link_extlink::after {
    display: block;
    position: absolute;
    right: 21px;
    top: calc(50% - 6px);
    transform: translateY(-50%);
    bottom: auto;
  }

  header a.link_extlink:hover::after {
    transform: translate(2px, -2px) translateY(-50%);
  }
}

/*@media*/

/*megamenu = like accordion*/

/*トリガーのあるリンクだけにプラスマイナスマークを付ける*/

header .ta_mm_trigger {
  position: relative;
  display: inline-block;
  z-index: 1;
  /*font-weight:500;*/
  background-image: none;
}

header .ta_mm_trigger::before,
header .ta_mm_trigger::after {
  content: "";
  display: inline-block;
  width: 15px;
  height: 2px;
  /*border-radius: 2px;*/
  background-color: #fff;
  /*icon color*/
  position: absolute;
  /* relative-->ta_mm_trigger */
  right: 21px;
  top: 50%;
  transform: translateY(-50%);
  transition: opacity 0.2s;
  transition: transform 0.4s;
}

header .ta_mm_trigger::after {
  transform: translateY(-50%) rotate(90deg);
}

header .ta_mm_trigger.is-active::before {
  opacity: 0;
}

header .ta_mm_trigger.is-active::after {
  transform: translateY(-50%) rotate(180deg);
}

header .ta_mm_content {
  opacity: 0;
  visibility: hidden;
  height: 0;
  padding-top: 0;
  /*for like accordion ★*/
  transition:
    padding 0.25s,
    opacity 0.25s,
    visibility 0.25s;
}

header .ta_mm_content img.category_top_img,
header .ta_mm_content .btn_close {
  /*category_top_img and icon_close*/
  display: none;
  height: 0;
}

header .ta_mm_trigger.is-active + .ta_mm_content {
  overflow: hidden;
  padding-top: 0.75rem;
  /*for like accordion ★*/
  height: auto;
  opacity: 1;
  visibility: visible;
  /*background-color: #fff;*/
  background-color: #3f5bd9;
  /*=asort-color*/
  /*header .ta_mm_inner li.category_top_title_S a と同色に*/
}

@media (min-width: 1024px) {
  header .ta_cmn_nav_item {
    position: relative;
    display: inline-block;
    z-index: 1;
    font-weight: 500;
    /*border: 1px dotted #ccc; ガイド*/
    background-image: none;
    /*右端　矢印アイコンを消す*/
  }

  header .ta_cmn_nav_item.extlink {
    background-image: none;
    /*右端　背景画像の外部リンクアイコンを消す PC画面では::before::afterで動かす*/
  }

  /* すべてのリンクに下線を引くだけの場合（ relative-- > ta_cmn_nav_item）
  header .ta_cmn_nav_item::after {
    content: "";
    position: absolute;
    bottom: 6px;
    left: 30%;
    z-index: -1;
    height: 2px;
    width: 40%;
    background: #fc3;
    transform: scale(0, 1) translateX(2px);
    transform-origin: center top;
  }

  header .ta_cmn_nav_item:hover::after {
    transform: scale(1, 1) translateX(2px);
    transition: transform 0.25s;
  }

  header .ta_cmn_nav_item.is-active::after {
    height: 2px;
    background: #000;
  }*/

  /*megamenu*/

  header .ta_mm_trigger {
    position: relative;
    display: inline-block;
    font-weight: 500;
    cursor: pointer;
  }

  header .ta_mm_trigger::before,
  header .ta_mm_trigger::after {
    /*＋－(プラス・マイナス）トリガーのリセット*/
    display: block;
    content: "";
    top: auto;
    bottom: auto;
    left: auto;
    right: auto;
    width: 0;
    height: 0;
    z-index: 0;
    opacity: 1 !important;
    background: transparent;
    transform: none;
    transition: none;
    transform-origin: none;
  }

  header .ta_cmn_nav_item.ta_mm_trigger::before,
  header .ta_cmn_nav_item.ta_mm_trigger::after {
    content: "";
    position: absolute;
    width: 16px;
    height: 2px;
    transition:
      transform 0.2s ease,
      opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    transform-origin: center;
    transform: rotate(0);
    background-color: #25348e;
  }

  header .ta_cmn_nav_item.ta_mm_trigger::before {
    top: 75%;
    left: calc(50% - 16px);
    transform: rotate(0deg);
    background-color: #25348e;
  }

  header .ta_cmn_nav_item.ta_mm_trigger::after {
    top: 75%;
    left: 50%;
    transform: rotate(0deg);
    background-color: #25348e;
  }

  header .ta_cmn_nav_item.ta_mm_trigger:hover::before,
  header .ta_cmn_nav_item.ta_mm_trigger:hover::after {
    background-color: #3f5bd9;
    /*=asort-color*/
  }

  /* hover または .is-active のとき下矢印「∨」になる 
  header .ta_cmn_nav_item.ta_mm_trigger:hover::before,*/

  header .ta_cmn_nav_item.ta_mm_trigger.is-active::before {
    width: 11px;
    left: calc(50% - 10px);
    transform: scale(1.2, 0.8) rotate(45deg) translateX(1px);
    /*すき間が空かないように調整*/
  }

  /*header .ta_cmn_nav_item.ta_mm_trigger:hover::after,*/

  header .ta_cmn_nav_item.ta_mm_trigger.is-active::after {
    width: 11px;
    left: 50%;
    transform: scale(1.2, 0.8) rotate(-45deg) translateX(-1px);
  }

  header .ta_mm_content {
    opacity: 0;
    visibility: hidden;
    position: absolute;
    /*relative--> ul.ta_header_nav */
    top: 72px;
    /*ul.ta_header_nav height*/
    /*横幅画面いっぱいにする場合*/
    left: auto;
    right: 0;
    width: 100dvw;
    /*width: calc(100vw - 16px); スクロールバー幅（だいたい）を引く*/
    max-width: 1920px;
    padding: 2rem 2rem 0 2rem;
    /*横幅ナビゲーションの範囲内
    left: 0;
    width: 100%;*/
    background-color: #fff;
    border-bottom-right-radius: 4px;
    border-bottom-left-radius: 4px;
    transition: none;
    /*あえて往路だけにする*/
  }

  /*個別に開く位置を指定する場合
	ul.ta_cmn_nav_1st li:nth-child(2) .ta_mm_content {left: 10%; width: 25%;}
	ul.ta_cmn_nav_1st li:nth-child(3) .ta_mm_content {left: 20%; width: 25%;}
	ul.ta_cmn_nav_1st li:nth-child(8) .ta_mm_content {right: 0; width: 25.5%;}ずれを調整
	*/

  header .ta_cmn_nav_item.ta_mm_trigger.is-active + .ta_mm_content {
    background-color: #f1f3fb;
    /*現在の色*/
    transition:
      opacity 0.4s,
      visibility 0.4s;
    transition-delay: 0;
  }
}

/*@media*/

/*megamenu inner*/

header .ta_mm_inner li a {
  padding: 0.75rem 1rem 0.75rem 2rem;
  display: flex;
  align-items: center;
  justify-content: start;
  background: url(/common/cmn_img/icon/icon_chevron_right.svg) no-repeat;
  background-position: left 8px center;
  background-size: 16px 16px;
  border-bottom: 1px solid #3f5bd9;
  /*=asort-color*/
}

header .ta_mm_inner.ta_mm_inner.outside li a {
  padding: 1rem 2rem 1rem 1rem;
  background: none;
  /*アイコンに背景画像extlinkを使う⇒.link_extlink */
  border: 0;
}

@media (min-width: 1024px) {
  header .ta_mm_inner li a {
    padding: 1rem 1rem 1rem 2rem;
  }

  header .ta_mm_inner.ta_mm_inner.outside li a {
    padding: 1rem 1.5rem 1rem 0.5rem;
  }
}

/*@media*/

header .ta_mm_inner li a:hover {
  color: #3f5bd9;
  /*=asort-color*/
}

header .ta_mm_inner li.category_top_title_S a {
  border-top: none;
  padding-top: 0;
  background: url(/common/cmn_img/icon/icon_chevron_right02.svg) no-repeat;
  background-position: right 18px top calc(50% - 5px);
  background-size: 20px 20px;
  background-color: #3f5bd9;
  /*=asort-color*/
  /*header .ta_mm_trigger.is-active + .ta_mm_content と同色に*/
  color: #fff;
}

header .ta_mm_inner li ul li {
  padding-left: 1rem;
}

header .ta_mm_inner li ul li a {
  background: url(/common/cmn_img/icon/icon_dot.svg) no-repeat;
  background-position: left -2px top calc(50% - 5px);
  background-size: 12px 12px;
  padding: 0 1rem 0.75rem 1rem;
  border: 0;
}

@media (min-width: 1024px) {
  header .ta_mm_content {
    display: flex;
    flex-wrap: wrap;
    align-items: start;
    justify-items: center;
  }

  header .ta_mm_trigger.is-active + .ta_mm_content {
    /*overflow: visible; btn_close をはみ出す場合*/
    box-shadow: rgba(0, 0, 0, 0.45) 0px 12px 10px -10px;
  }

  header .ta_mm_content div.category_top_title_l a span.jp {
    display: inline-block;
    padding-right: 24px;
    background: url(/common/cmn_img/icon/icon_chevron_right.svg) no-repeat;
    background-position: right top 50%;
    background-size: 20px 20px;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    /*border: 1px dotted #ccc; ガイド*/
  }

  header .ta_mm_content div.category_top_title_l a {
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  }

  header .ta_mm_content div.category_top_title_l a:hover {
    color: #3f5bd9;
    /*=asort-color*/
  }

  header .ta_mm_content div.category_top_title_l a:hover span.jp {
    padding-right: 32px;
  }

  header .ta_mm_content img.category_top_img {
    display: block;
    width: 100%;
    height: auto;
    /*display: none;*/
  }

  header .ta_mm_content .btn_close {
    display: block;
    width: 100%;
    height: auto;
    margin-top: -32px;
    margin-right: 16px;
  }

  header .ta_mm_content img.icon_close {
    display: block;
    width: 32px;
    height: 32px;
    /*
    枠からはみ出す場合
    margin-left: auto;
    margin-right: -12px;
    margin-top: 8px;
    margin-bottom: -16px;
    */
    margin-left: auto;
    margin-right: -32px;
    margin-top: auto;
    margin-bottom: 16px;
    padding: 8px;
    background-color: #dce3f9;
    border-radius: 50%;
    z-index: 1;
    /*box-shadow:
      rgba(50, 50, 93, 0.25) 0px 6px 12px -2px,
      rgba(0, 0, 0, 0.3) 0px 3px 7px -3px;*/
  }

  header .ta_mm_content img.icon_close:hover {
    cursor: pointer;
    background-color: #fff;
  }
}

/*@media*/

/* hamburger menu */

header .ta_ham_btn {
  width: 60px;
  height: 48px;
  background-color: transparent;
  border-color: transparent;
  z-index: 9999;
  padding: 1rem;
}

@media (min-width: 1024px) {
  header .ta_ham_btn {
    display: none;
  }
}

/*@media*/

header .ta_ham_btn span {
  width: 100%;
  height: 1px;
  position: relative;
  transition: ease 0.4s;
  display: block;
}

header .ta_ham_btn span:nth-child(1) {
  top: 0;
  background-color: #000;
}

header .ta_ham_btn span:nth-child(2) {
  margin: 8px 0;
  background-color: #000;
}

header .ta_ham_btn span:nth-child(3) {
  top: 0;
  background-color: #000;
}

/* クリック後のスタイル */

header .ta_header_nav.active {
  transform: translateX(0);
  transition: ease 0.4s;
}

header .ta_ham_btn.active span:nth-child(1) {
  top: 8px;
  transform: rotate(45deg);
}

header .ta_ham_btn.active span:nth-child(2) {
  opacity: 0;
}

header .ta_ham_btn.active span:nth-child(3) {
  top: -10px;
  transform: rotate(-45deg);
}

/*screen*/

div.screen,
div.screen.shade {
  display: none;
}

@media (min-width: 1024px) {
  #screen {
    width: 100vw;
    height: 0;
    position: fixed;
    z-index: 21;
    background: rgba(0, 0, 0, 1);
    display: none;
    opacity: 0;
  }

  #screen.shade {
    height: 100vh;
    display: block;
    /*opacity: 0.2;*/
    animation: shadein 0.2s forwards;
  }
}

/*@media*/

@keyframes shadein {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 0.2;
  }
}

/*footer*/

@media (min-width: 1024px) {
  footer div.nav_full {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: repeat(6, 1fr);
    grid-column-gap: 3rem;
    grid-row-gap: 0;
  }

  footer div.nav_full ul.ta_cmn_nav_1st {
    grid-area: 1 / 1 / 7 / 7;
  }

  footer div.nav_full ul.ta_cmn_nav_2nd {
    grid-area: 3 / 5 / 7 / 7;
  }

  footer div.nav_full ul.ta_cmn_nav_1st {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: repeat(6, 1fr);
    grid-column-gap: 3rem;
    grid-row-gap: 0;
  }

  footer div.nav_full ul.ta_cmn_nav_1st li:first-child {
    grid-area: 1 / 1 / 7 / 3;
  }

  footer div.nav_full ul.ta_cmn_nav_1st li:nth-child(2) {
    grid-area: 1 / 3 / 3 / 5;
  }

  footer div.nav_full ul.ta_cmn_nav_1st li:nth-child(3) {
    grid-area: 3 / 3 / 7 / 5;
  }

  footer div.nav_full ul.ta_cmn_nav_1st li:nth-child(4) {
    grid-area: 1 / 5 / 2 / 7;
  }

  footer div.nav_full ul.ta_cmn_nav_1st li:nth-child(5) {
    grid-area: 2 / 5 / 3 / 7;
  }

  footer div.nav_full ul.ta_cmn_nav_2nd {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(4, 1fr);
    grid-column-gap: 3rem;
    grid-row-gap: 0;
  }

  footer div.nav_full ul.ta_cmn_nav_2nd li:first-child {
    grid-area: 1 / 1 / 2 / 3;
  }

  footer div.nav_full ul.ta_cmn_nav_2nd li:nth-child(2) {
    grid-area: 2 / 1 / 3 / 3;
  }

  footer div.nav_full ul.ta_cmn_nav_2nd li:nth-child(3) {
    grid-area: 3 / 1 / 4 / 3;
  }

  footer div.nav_full ul.ta_cmn_nav_2nd li:nth-child(4) {
    grid-area: 4 / 1 / 5 / 3;
  }
}

footer img.footer_site_logo {
  width: 144px;
  height: 48px;
  /*border: 1px dotted #ccc; ガイド*/
  margin: auto;
}

@media (min-width: 1024px) {
  footer img.footer_site_logo {
    width: 144px;
    height: 48px;
  }
}

@media (min-width: 1280px) {
  footer img.footer_site_logo {
    width: 192px;
    height: 64px;
  }
}

footer img.footer_sns_logo {
  width: 160px;
  /*height: 48px;*/
  height: auto;
  /*border: 1px dotted #ccc; ガイド*/
  margin: auto;
  filter: invert(1);
}

@media (min-width: 1024px) {
  footer img.footer_sns_logo {
    width: 144px;
    /*height: 48px;*/
  }
}

@media (min-width: 1280px) {
  footer img.footer_sns_logo {
    width: 196px;
    /*height: 60px;*/
  }
}

footer span.site_name {
  font-size: clamp(0.625rem, 0.575rem + 0.25vw, 0.875rem);
  letter-spacing: 0.05rem;
  font-weight: bold;
  /*border: 1px dotted #ccc; ガイド*/
  display: block;
  /*text-align: center;*/
}

/*pagetop*/

#btn_pagetop {
  display: block;
  position: fixed;
  bottom: 16px;
  right: 16px;
  width: 48px;
  height: 48px;
  background: rgba(255, 255, 255, 0.5) url(/common/cmn_img/icon/icon_chevron_up.svg) no-repeat;
  background-position: center;
  background-size: 24px 24px;
  border-radius: 24px;
  padding-top: 4px;
  opacity: 0;
  transition: ease 0.4s;
  cursor: pointer;
  /*z-index: 9;*/
  z-index: 22;
}

#btn_pagetop span {
  display: block;
  width: 48px;
  height: 48px;
  padding-top: 4px;
  font-size: 0.625rem;
  text-align: center;
}

@media (min-width: 1024px) {
  #btn_pagetop {
    padding-top: 0;
  }
}

/*@media*/

/*sitemap*/

body.ta_sitemap div.sitemap a {
  padding: 0.75rem 1rem 0.75rem 2rem;
  display: flex;
  align-items: center;
  justify-content: start;
  background: url(/common/cmn_img/icon/icon_chevron_right.svg) no-repeat;
  background-position: left 8px center;
  background-size: 16px 16px;
  transition: color 0.2s ease;
  transition: background-color 0.2s ease;
}

body.ta_sitemap div.sitemap a:hover {
  background-color: #dce3f9;
  color: #0c1966;
}

body.ta_sitemap div.sitemap .category_sub_top a:hover {
  background-color: transparent;
}

body.ta_sitemap div.sitemap .category_sub {
  display: grid;
  grid-template-columns: 33.3333% minmax(0, 1fr);
}

@media (max-width: 1024px) {
  body.ta_sitemap div.sitemap .category_sub {
    display: grid;
    grid-template-columns: 1fr;
  }
}

body.ta_sitemap div.sitemap section.cat_other a {
  border: 1px solid #dce3f9;
}

body.ta_sitemap div.sitemap .acc_summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: url(/common/cmn_img/icon/icon_arrow_down.svg) no-repeat;
  background-position: left 12px center;
  background-size: 12px 12px;
}

/*aside*/

/*components*/

div.btn_icon_more {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

div.btn_icon_more p {
  margin-left: 32px;
  padding-right: 48px;
  position: relative;
}

div.btn_icon_more p::after {
  display: block;
  position: absolute;
  right: 32px;
  top: calc(50% - 4px);
  right: 0;
  transform: translateY(-50%);
  transform-origin: left;
  width: 32px;
  height: 8px;
  /*background-color: #fff; 各自色指定*/
  clip-path: polygon(0 100%, 100% 100%, 70% 40%, 70% 90%, 0% 90%);
  content: "";
  transition: transform 0.3s;
}

a:hover div.btn_icon_more p::after {
  transform: translateY(-50%) scaleX(1.4);
}

div.btn_icon_more_s {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

div.btn_icon_more_s p {
  margin-left: 8px;
  padding-right: 36px;
  position: relative;
}

div.btn_icon_more_s p::after {
  display: block;
  position: absolute;
  right: 32px;
  top: calc(50% - 4px);
  right: 0;
  transform: translateY(-50%);
  transform-origin: left;
  width: 28px;
  height: 8px;
  background-color: #fff;
  clip-path: polygon(0 100%, 100% 100%, 70% 40%, 70% 90%, 0% 90%);
  content: "";
  transition: transform 0.3s;
}

a:hover div.btn_icon_more_s p::after {
  transform: translateY(-50%) scaleX(1.25);
}

div.btn_icon_more p span.num,
div.btn_icon_more_s p span.num {
  font-size: larger;
  font-weight: 400;
}

a:hover div.btn_icon_more p span.num,
a:hover div.btn_icon_more_s p span.num {
  transition-delay: 0.1s;
  /*font-style: oblique;*/
  font-weight: bold;
  letter-spacing: -0.0325rem;
  /*文字が太くなった分を吸収*/
}

div.btn_icon_more_s span.arrow {
  display: block;
  width: 16px;
  height: 16px;
  position: relative;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

a:hover div.btn_icon_more_s span.arrow {
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

div.btn_icon_more_s span.arrow::after {
  display: block;
  position: absolute;
  top: calc(50% - 4px);
  right: 0;
  transform: translateY(-50%);
  transform-origin: left;
  width: 24px;
  height: 8px;
  background-color: #fff;
  clip-path: polygon(0 100%, 100% 100%, 70% 40%, 70% 90%, 0% 90%);
  content: "";
  transition: transform 0.3s;
}

a:hover div.btn_icon_more_s span.arrow::after {
  transform: translateY(-50%) scaleX(1.25);
}

/*.btn --> base_group.css*/

/*----------------------------------------monotone*/

.btn_normal,
.btn_normal_s,
.btn_flat {
  background: rgb(64, 64, 64);
  /*Neutral-700*/
  color: #fff;
}

.btn_normal > div.btn_icon_extlink p::before,
.btn_normal_s > div.btn_icon_extlink_s p::before {
  border-color: #fff !important;
  background: transparent !important;
}

.btn_normal > div.btn_icon_extlink p::after,
.btn_normal_s > div.btn_icon_extlink_s p::after {
  border-color: #fff !important;
  background: transparent !important;
}

a:hover .btn_normal > div.btn_icon_extlink p::after,
a:hover .btn_normal_s > div.btn_icon_extlink_s p::after,
.btn_normal:hover > div.btn_icon_extlink p::after,
.btn_normal_s:hover > div.btn_icon_extlink_s p::after {
  border-color: #fff !important;
  /*background: transparent !important;*/
  background: linear-gradient(45deg, rgba(64, 64, 64, 0) 39%, rgba(64, 64, 64, 1) 40%, rgba(64, 64, 64, 1) 100%) !important;
}

.btn_normal > div.btn_icon_more p::after,
.btn_normal_s > div.btn_icon_more_s p::after {
  background: #fff !important;
}

.btn_circle {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgb(64, 64, 64);
  /*Neutral-700*/
  color: #fff;
}

@media (min-width: 1080px) {
  .btn_circle {
    width: 44px;
    height: 44px;
  }
}

/*----------------------------------------monotone line*/

.btn_normal.line {
  border: 1px solid #404040;
  /*Neutral-700*/
  padding-top: 14px;
  padding-bottom: 14px;
  background: #fff;
  color: #262626;
  /*Neutral-800*/
}

.btn_normal_s.line {
  border: 1px solid #555;
  padding-top: 9px;
  padding-bottom: 9px;
  background: #fff;
  color: #555;
}

.btn_normal.line > div.btn_icon_extlink p::before,
.btn_normal_s.line > div.btn_icon_extlink_s p::before {
  border-color: #666 !important;
  background: transparent !important;
}

.btn_normal.line > div.btn_icon_extlink p::after,
.btn_normal_s.line > div.btn_icon_extlink_s p::after {
  border-color: #666 !important;
  background: transparent !important;
}

a:hover .btn_normal.line > div.btn_icon_extlink p::after,
a:hover .btn_normal_s.line > div.btn_icon_extlink_s p::after,
.btn_normal.line:hover > div.btn_icon_extlink p::after,
.btn_normal_s.line:hover > div.btn_icon_extlink_s p::after {
  border-color: #666 !important;
  background: linear-gradient(45deg, rgba(255, 255, 255, 0) 39%, rgba(255, 255, 255, 1) 40%, rgba(255, 255, 255, 1) 100%) !important;
}

.btn_normal.line > div.btn_icon_more p::after,
.btn_normal_s.line > div.btn_icon_more_s p::after {
  background: #666 !important;
}

/*----------------------------------------color*/

.btn_normal.color,
.btn_normal_s.color,
.btn_circle.color {
  background: #3f5bd9;
  color: #fff;
}

.btn_normal.color > div.btn_icon_extlink p::before,
.btn_normal_s.color > div.btn_icon_extlink_s p::before {
  border-color: #fff !important;
  background: transparent !important;
}

.btn_normal.color > div.btn_icon_extlink p::after,
.btn_normal_s.color > div.btn_icon_extlink_s p::after {
  border-color: #fff !important;
  background: transparent !important;
}

a:hover .btn_normal.color > div.btn_icon_extlink p::after,
a:hover .btn_normal_s.color > div.btn_icon_extlink_s p::after,
.btn_normal.color:hover > div.btn_icon_extlink p::after,
.btn_normal_s.color:hover > div.btn_icon_extlink_s p::after {
  border-color: #fff !important;
  /*background: transparent !important;*/
  background: linear-gradient(45deg, rgba(110, 127, 243, 0) 39%, rgba(63, 91, 217, 1) 40%, rgba(63, 91, 217, 1) 100%) !important;
}

.btn_normal.color > div.btn_icon_more p::after,
.btn_normal_s.color > div.btn_icon_more_s p::after {
  background: #fff !important;
}

.btn_normal.color_line {
  border: 1px solid #5753c9;
  padding-top: 14px;
  padding-bottom: 14px;
  background: rgba(255, 255, 255, 0.75);
  color: #5753c9;
}

.btn_normal_s.color_line {
  /*border:1px solid #7088bf;*/
  border: 1px solid #5753c9;
  padding-top: 9px;
  padding-bottom: 9px;
  background: rgba(255, 255, 255, 0.75);
  color: #5753c9;
}

.btn_normal.color_line > div.btn_icon_extlink p::before,
.btn_normal_s.color_line > div.btn_icon_extlink_s p::before {
  border-color: #5753c9 !important;
}

.btn_normal.color_line > div.btn_icon_extlink p::after,
.btn_normal_s.color_line > div.btn_icon_extlink_s p::after {
  border-color: #5753c9 !important;
}

a:hover .btn_normal.color_line > div.btn_icon_extlink p::after,
a:hover .btn_normal_s.color_line > div.btn_icon_extlink_s p::after,
.btn_normal.color_line:hover > div.btn_icon_extlink p::after,
.btn_normal_s.color_line:hover > div.btn_icon_extlink_s p::after {
  border-color: #fff !important;
  /*background: transparent !important;*/
  background: linear-gradient(45deg, rgba(255, 255, 255, 0) 39%, rgba(255, 255, 255, 1) 40%, rgba(255, 255, 255, 1) 100%) !important;
}

.btn_normal.color_line > div.btn_icon_more p::after,
.btn_normal_s.color_line > div.btn_icon_more_s p::after {
  background: #5753c9 !important;
}

/*btn bg change*/

.btn_bg_flat_a,
.btn_bg_flat_b,
.btn_bg_flat_c,
.btn_bg_flat_d {
  position: relative;
  overflow: hidden;
}

.btn_bg_flat_a::before,
.btn_bg_flat_b::before,
.btn_bg_flat_c::before,
.btn_bg_flat_d::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: "";
  transition: all 0.2s ease-in-out;
  transform: translateX(-100%);
  opacity: 0;
}

.btn_bg_flat_a:hover::before,
.btn_bg_flat_b:hover::before,
.btn_bg_flat_c:hover::before,
.btn_bg_flat_d:hover::before {
  transform: translateX(0%);
  opacity: 1;
}

a:hover .btn_bg_flat_a::before,
a:hover .btn_bg_flat_b::before,
a:hover .btn_bg_flat_c::before,
a:hover .btn_bg_flat_d::before {
  transform: translateX(0%);
  opacity: 1;
}

.btn_bg_round_a,
.btn_bg_round_b,
.btn_bg_round_c,
.btn_bg_round_d {
  /*丸の基点とするためrelativeを指定*/
  position: relative;
  overflow: hidden;
}

.btn_bg_round_a::before,
.btn_bg_round_b::before,
.btn_bg_round_c::before,
.btn_bg_round_d::before {
  content: "";
  position: absolute;
  left: -80px;
  width: 80px;
  height: 80px;
  border-radius: 25px;
  transition: 0.3s ease-out;
  opacity: 0;
}

.btn_bg_round_a:hover::before,
.btn_bg_round_b:hover::before,
.btn_bg_round_c:hover::before,
.btn_bg_round_d:hover::before {
  width: calc(120% + 80px);
  opacity: 1;
}

a:hover .btn_bg_round_a::before,
a:hover .btn_bg_round_b::before,
a:hover .btn_bg_round_c::before,
a:hover .btn_bg_round_d::before {
  width: calc(120% + 80px);
  opacity: 1;
}

.btn_bg_flat_a::before,
.btn_bg_round_a::before {
  /*グレーから黒*/
  background-image: linear-gradient(125deg, #999 0%, #404040 75%, #404040 100%);
}

.btn_bg_flat_b::before,
.btn_bg_round_b::before {
  /*白から*/
  background-image: linear-gradient(125deg, #ccc 0%, #fff 75%, #fff 100%);
}

.btn_bg_flat_c::before,
.btn_bg_round_c::before {
  /*青系*/
  background-image: linear-gradient(135deg, #a1c4fd 0%, #3f5bd9 75%, #3f5bd9 100%);
}

.btn_bg_flat_d::before,
.btn_bg_round_d::before {
  /*3色*/
  background-image: linear-gradient(135deg, #a1c4fd 0%, #fff 25%, #a1c4fd 100%);
}

/*------------------------------------------------------*/

/*外部リンク共通アイコン*/

/*is⇒クラス名.link_extlinkを付けられない場合*/

a.link_extlink,
:is(.mv02, .newsList, .seminarList, .circle_card) a[target="_blank"] {
  display: block;
  position: relative;
}

a.link_extlink::before,
:is(.mv02, .newsList, .seminarList, .circle_card) a[target="_blank"]::before {
  content: "";
  display: block;
  position: absolute;
  right: 16px;
  bottom: 16px;
  width: 20px;
  height: 20px;
  background-color: currentColor;
  -webkit-mask: url("/common/cmn_img/icon/icon_extlinkbase.svg") no-repeat center / contain;
  mask: url("/common/cmn_img/icon/icon_extlinkbase.svg") no-repeat center / contain;
}

a.link_extlink::after,
:is(.mv02, .newsList, .seminarList, .circle_card) a[target="_blank"]::after {
  content: "";
  display: block;
  position: absolute;
  right: 16px;
  bottom: 16px;
  width: 20px;
  height: 20px;
  background-color: currentColor;
  -webkit-mask: url("/common/cmn_img/icon/icon_extlink.svg") no-repeat center / contain;
  mask: url("/common/cmn_img/icon/icon_extlink.svg") no-repeat center / contain;
  transition: transform 0.2s ease;
}

a.link_extlink:hover::before,
:is(.mv02, .newsList, .seminarList, .circle_card) a:hover[target="_blank"]::before {
  background-color: currentColor;
  /*=textcolor*/
}

a.link_extlink:hover::after,
:is(.mv02, .newslist, .seminarList, .circle_card) a:hover[target="_blank"]::after {
  transform: translate(2px, -2px);
}

/* アイコンの位置を高さ中央にする場合 */

a.link_extlink {
  position: relative;
  display: block;
  padding-right: 24px;
  /*矢印分の余白 */
}

a.link_extlink::before,
a.link_extlink::after {
  display: block;
  position: absolute;
  right: 13px;
  top: 50%;
  transform: translateY(-50%);
  bottom: auto;
}

a.link_extlink:hover::after {
  transform: translate(2px, -2px) translateY(-50%);
}

:is(.newsList, .seminarList) a[target="_blank"] {
  padding-right: 0;
  background-image: none !important;
  /*右矢印アイコンは非表示*/
}

:is(.newsList, .seminarList) a[target="_blank"]::before,
:is(.newsList, .seminarList) a[target="_blank"]::after {
  top: 50%;
  transform: translateY(-50%);
}

:is(.newsList, .seminarList) a:hover[target="_blank"]::after {
  transform: translate(2px, -2px) translateY(-50%);
}

/*------------------------------------------------------*/

/*アイコンに背景画像zoomを使う場合*/

.link_zoomlink {
  position: relative;
  display: inline-block;
  padding-right: 24px;
  opacity: 1;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.link_zoomlink::before {
  position: absolute;
  /* relative-->a.link_extlink */
  content: "";
  display: inline-block;
  width: 28px;
  height: 28px;
  background: url(/common/cmn_img/icon/icon_link_zoom.svg) no-repeat;
  background-position: center;
  background-size: 100%;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.modal.link_zoomlink::before {
  position: absolute;
  /* relative-->a.link_extlink */
  content: "";
  display: inline-block;
  width: 28px;
  height: 28px;
  background: url(/common/cmn_img/icon/icon_modal.svg) no-repeat;
  background-position: center;
  background-size: 100%;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.modal.color_line.link_zoomlink::before {
  background: url(/common/cmn_img/icon/icon_modal_color.svg) no-repeat;
}

.link_zoomlink:hover::before {
  /*filter: brightness(120%);*/
  width: 36px;
  height: 36px;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

/*components*/

ul.newsList li a {
  position: relative;
  display: inline-block;
  padding-right: 24px;
  /*矢印分の余白 */
}

ul.newsList li a::after {
  content: "";
  display: block;
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  background-color: #25348e;
  -webkit-mask: url("/common/cmn_img/icon/icon_chevron_right.svg") no-repeat center / contain;
  mask: url("/common/cmn_img/icon/icon_chevron_right.svg") no-repeat center / contain;
  transition: transform 0.2s ease;
}

ul.newsList li a:hover::after {
  transform: translate(8px) translateY(-50%);
}

/*badge
  tag_blue: "#324bb3",
  tag_red: "#db1a41",
  tag_orange: "#f08b18",
  tag_purple: "#8c61ab",
  tag_green: "#6eb526",
  tag_teal: "#2fb1be",
  accent_color: "#6d83d5", 
*/

ul.newsList li dd.typeA_01 span.text {
  /*-------------プレスリリース*/
  color: #8c61ab;
  letter-spacing: -1px;
}

ul.newsList li dd.typeA_02 span.text {
  /*---------お知らせ*/
  color: #f08b18;
}

ul.newsList li dd.typeA_03 span.text {
  /*---------製品・事例*/
  color: #db1a41;
}

ul.newsList li dd.typeA_04 span.text {
  /*---------更新情報*/
  color: #324bb3;
}

ul.newsList li dd.typeA_05 span.text {
  /*---------採用情報*/
  color: #6eb526;
}

ul.newsList li dd.typeA_99 span.text {
  /*--------掲載事例*/
  color: #2fb1be;
}

ul.newsList li dd.typeA_01 span.text,
ul.newsList li dd.typeA_02 span.text,
ul.newsList li dd.typeA_03 span.text,
ul.newsList li dd.typeA_04 span.text,
ul.newsList li dd.typeA_05 span.text,
ul.newsList li dd.typeA_99 span.text {
  background-color: #fff;
  border: 1px solid currentColor;
  /*=textcolor*/
}

ul.newsList li.none {
  display: none;
  /*----->>news.js参照 #news ul li.none*/
}

/*--------------------
utilities start
--------------------*/

.pointer-events-none {
  pointer-events: none;
}

.collapse {
  visibility: collapse;
}

.fixed {
  position: fixed;
}

.absolute {
  position: absolute;
}

.relative {
  position: relative;
}

.inset-0 {
  inset: 0px;
}

.bottom-0 {
  bottom: 0px;
}

.left-1\/8 {
  left: 12.5%;
}

.top-0 {
  top: 0px;
}

.z-10 {
  z-index: 10;
}

.z-50 {
  z-index: 50;
}

.order-1 {
  order: 1;
}

.order-10 {
  order: 10;
}

.order-11 {
  order: 11;
}

.order-12 {
  order: 12;
}

.order-2 {
  order: 2;
}

.order-3 {
  order: 3;
}

.order-4 {
  order: 4;
}

.order-5 {
  order: 5;
}

.order-6 {
  order: 6;
}

.order-7 {
  order: 7;
}

.order-8 {
  order: 8;
}

.order-9 {
  order: 9;
}

.col-auto {
  grid-column: auto;
}

.col-span-2 {
  grid-column: span 2 / span 2;
}

.m-0 {
  margin: 0px;
}

.m-1 {
  margin: 0.25rem;
}

.m-8 {
  margin: 2rem;
}

.m-auto {
  margin: auto;
}

.-mx-4 {
  margin-left: -1rem;
  margin-right: -1rem;
}

.-my-2 {
  margin-top: -0.5rem;
  margin-bottom: -0.5rem;
}

.mx-1 {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}

.mx-2 {
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}

.mx-3 {
  margin-left: 0.75rem;
  margin-right: 0.75rem;
}

.mx-4 {
  margin-left: 1rem;
  margin-right: 1rem;
}

.mx-8 {
  margin-left: 2rem;
  margin-right: 2rem;
}

.mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.my-0 {
  margin-top: 0px;
  margin-bottom: 0px;
}

.my-1 {
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}

.my-2 {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}

.my-3 {
  margin-top: 0.75rem;
  margin-bottom: 0.75rem;
}

.my-4 {
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.my-5 {
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
}

.my-8 {
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.-mb-1 {
  margin-bottom: -0.25rem;
}

.-mt-2 {
  margin-top: -0.5rem;
}

.-mt-6 {
  margin-top: -1.5rem;
}

.mb-0 {
  margin-bottom: 0px;
}

.mb-1 {
  margin-bottom: 0.25rem;
}

.mb-10 {
  margin-bottom: 2.5rem;
}

.mb-16 {
  margin-bottom: 4rem;
}

.mb-2 {
  margin-bottom: 0.5rem;
}

.mb-3 {
  margin-bottom: 0.75rem;
}

.mb-4 {
  margin-bottom: 1rem;
}

.mb-5 {
  margin-bottom: 1.25rem;
}

.mb-6 {
  margin-bottom: 1.5rem;
}

.mb-8 {
  margin-bottom: 2rem;
}

.ml-0 {
  margin-left: 0px;
}

.ml-1 {
  margin-left: 0.25rem;
}

.ml-2 {
  margin-left: 0.5rem;
}

.ml-3 {
  margin-left: 0.75rem;
}

.ml-auto {
  margin-left: auto;
}

.mr-1 {
  margin-right: 0.25rem;
}

.mr-16 {
  margin-right: 4rem;
}

.mr-2 {
  margin-right: 0.5rem;
}

.mr-4 {
  margin-right: 1rem;
}

.mr-auto {
  margin-right: auto;
}

.ms-36 {
  margin-inline-start: 9rem;
}

.mt-0 {
  margin-top: 0px;
}

.mt-1 {
  margin-top: 0.25rem;
}

.mt-14 {
  margin-top: 3.5rem;
}

.mt-16 {
  margin-top: 4rem;
}

.mt-2 {
  margin-top: 0.5rem;
}

.mt-3 {
  margin-top: 0.75rem;
}

.mt-4 {
  margin-top: 1rem;
}

.mt-5 {
  margin-top: 1.25rem;
}

.mt-6 {
  margin-top: 1.5rem;
}

.mt-8 {
  margin-top: 2rem;
}

.mt-auto {
  margin-top: auto;
}

.block {
  display: block;
}

.inline-block {
  display: inline-block;
}

.inline {
  display: inline;
}

.flex {
  display: flex;
}

.inline-flex {
  display: inline-flex;
}

.table {
  display: table;
}

.grid {
  display: grid;
}

.contents {
  display: contents;
}

.list-item {
  display: list-item;
}

.hidden {
  display: none;
}

.aspect-auto {
  aspect-ratio: auto;
}

.aspect-square {
  aspect-ratio: 1 / 1;
}

.h-12 {
  height: 3rem;
}

.h-160 {
  height: 40rem;
}

.h-2\/3 {
  height: 66.666667%;
}

.h-24 {
  height: 6rem;
}

.h-5 {
  height: 1.25rem;
}

.h-6 {
  height: 1.5rem;
}

.h-96 {
  height: 24rem;
}

.h-auto {
  height: auto;
}

.h-fit {
  height: -moz-fit-content;
  height: fit-content;
}

.h-full {
  height: 100%;
}

.min-h-50vh {
  min-height: 50vh;
}

.w-1\/2 {
  width: 50%;
}

.w-1\/3 {
  width: 33.333333%;
}

.w-1\/4 {
  width: 25%;
}

.w-2\/3 {
  width: 66.666667%;
}

.w-20 {
  width: 5rem;
}

.w-3\/4 {
  width: 75%;
}

.w-3\/8 {
  width: 37.5%;
}

.w-32 {
  width: 8rem;
}

.w-5 {
  width: 1.25rem;
}

.w-5\/6 {
  width: 83.333333%;
}

.w-6 {
  width: 1.5rem;
}

.w-auto {
  width: auto;
}

.w-concept {
  width: 89.97%;
}

.w-fit {
  width: -moz-fit-content;
  width: fit-content;
}

.w-full {
  width: 100%;
}

.max-w-10xl {
  max-width: 1600px;
}

.max-w-1920 {
  max-width: 1920px;
}

.max-w-40 {
  max-width: 10rem;
}

.max-w-8xl {
  max-width: 1440px;
}

.max-w-screen-md {
  max-width: 768px;
}

.max-w-screen-sm {
  max-width: 640px;
}

.max-w-screen-xl {
  max-width: 1280px;
}

.flex-1 {
  flex: 1 1 0%;
}

.rotate-3 {
  --tw-rotate: 3deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.resize {
  resize: both;
}

.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.flex-row {
  flex-direction: row;
}

.flex-col {
  flex-direction: column;
}

.flex-wrap {
  flex-wrap: wrap;
}

.items-end {
  align-items: flex-end;
}

.items-center {
  align-items: center;
}

.justify-start {
  justify-content: flex-start;
}

.justify-end {
  justify-content: flex-end;
}

.justify-center {
  justify-content: center;
}

.justify-between {
  justify-content: space-between;
}

.justify-evenly {
  justify-content: space-evenly;
}

.gap-1 {
  gap: 0.25rem;
}

.gap-4 {
  gap: 1rem;
}

.gap-6 {
  gap: 1.5rem;
}

.gap-8 {
  gap: 2rem;
}

.overflow-hidden {
  overflow: hidden;
}

.text-wrap {
  text-wrap: wrap;
}

.text-nowrap {
  text-wrap: nowrap;
}

.rounded {
  border-radius: 0.25rem;
}

.rounded-full {
  border-radius: 9999px;
}

.rounded-lg {
  border-radius: 0.5rem;
}

.rounded-sm {
  border-radius: 0.125rem;
}

.border {
  border-width: 1px;
}

.border-0 {
  border-width: 0px;
}

.border-b-2 {
  border-bottom-width: 2px;
}

.border-b-4 {
  border-bottom-width: 4px;
}

.border-accent_color\/20 {
  border-color: rgb(109 131 213 / 0.2);
}

.border-base_color03 {
  --tw-border-opacity: 1;
  border-color: rgb(133 145 199 / var(--tw-border-opacity, 1));
}

.border-gray-200 {
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
}

.border-red-500 {
  --tw-border-opacity: 1;
  border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
}

.border-ta_its {
  --tw-border-opacity: 1;
  border-color: rgb(37 52 142 / var(--tw-border-opacity, 1));
}

.border-tag_red {
  --tw-border-opacity: 1;
  border-color: rgb(219 26 65 / var(--tw-border-opacity, 1));
}

.border-tag_teal {
  --tw-border-opacity: 1;
  border-color: rgb(47 177 190 / var(--tw-border-opacity, 1));
}

.border-white {
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}

.border-opacity-75 {
  --tw-border-opacity: 0.75;
}

.bg-base_color02 {
  --tw-bg-opacity: 1;
  background-color: rgb(220 227 249 / var(--tw-bg-opacity, 1));
}

.bg-black {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
}

.bg-emerald-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1));
}

.bg-gray-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}

.bg-neutral-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(245 245 245 / var(--tw-bg-opacity, 1));
}

.bg-neutral-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(229 229 229 / var(--tw-bg-opacity, 1));
}

.bg-neutral-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(115 115 115 / var(--tw-bg-opacity, 1));
}

.bg-neutral-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(10 10 10 / var(--tw-bg-opacity, 1));
}

.bg-slate-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(203 213 225 / var(--tw-bg-opacity, 1));
}

.bg-ta_its {
  --tw-bg-opacity: 1;
  background-color: rgb(37 52 142 / var(--tw-bg-opacity, 1));
}

.bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.bg-opacity-20 {
  --tw-bg-opacity: 0.2;
}

.bg-opacity-30 {
  --tw-bg-opacity: 0.3;
}

.bg-gradient-to-t {
  background-image: linear-gradient(to top, var(--tw-gradient-stops));
}

.bg-none {
  background-image: none;
}

.from-gray-800 {
  --tw-gradient-from: #1f2937 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(31 41 55 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.to-transparent {
  --tw-gradient-to: transparent var(--tw-gradient-to-position);
}

.object-cover {
  -o-object-fit: cover;
     object-fit: cover;
}

.object-bottom {
  -o-object-position: bottom;
     object-position: bottom;
}

.object-center {
  -o-object-position: center;
     object-position: center;
}

.p-0 {
  padding: 0px;
}

.p-0\.5 {
  padding: 0.125rem;
}

.p-1 {
  padding: 0.25rem;
}

.p-2 {
  padding: 0.5rem;
}

.p-3 {
  padding: 0.75rem;
}

.p-4 {
  padding: 1rem;
}

.p-5 {
  padding: 1.25rem;
}

.p-8 {
  padding: 2rem;
}

.px-0 {
  padding-left: 0px;
  padding-right: 0px;
}

.px-1 {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}

.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}

.px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

.px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.px-8 {
  padding-left: 2rem;
  padding-right: 2rem;
}

.py-0 {
  padding-top: 0px;
  padding-bottom: 0px;
}

.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}

.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.py-5 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

.py-7 {
  padding-top: 1.75rem;
  padding-bottom: 1.75rem;
}

.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.pb-0 {
  padding-bottom: 0px;
}

.pb-1 {
  padding-bottom: 0.25rem;
}

.pb-10 {
  padding-bottom: 2.5rem;
}

.pb-2 {
  padding-bottom: 0.5rem;
}

.pb-3 {
  padding-bottom: 0.75rem;
}

.pb-4 {
  padding-bottom: 1rem;
}

.pb-5 {
  padding-bottom: 1.25rem;
}

.pb-6 {
  padding-bottom: 1.5rem;
}

.pb-7 {
  padding-bottom: 1.75rem;
}

.pb-8 {
  padding-bottom: 2rem;
}

.pl-2 {
  padding-left: 0.5rem;
}

.pl-3 {
  padding-left: 0.75rem;
}

.pl-4 {
  padding-left: 1rem;
}

.pl-7 {
  padding-left: 1.75rem;
}

.pr-0 {
  padding-right: 0px;
}

.pr-3 {
  padding-right: 0.75rem;
}

.pr-4 {
  padding-right: 1rem;
}

.pr-8 {
  padding-right: 2rem;
}

.pt-0 {
  padding-top: 0px;
}

.pt-1 {
  padding-top: 0.25rem;
}

.pt-10 {
  padding-top: 2.5rem;
}

.pt-2 {
  padding-top: 0.5rem;
}

.pt-3 {
  padding-top: 0.75rem;
}

.pt-4 {
  padding-top: 1rem;
}

.pt-5 {
  padding-top: 1.25rem;
}

.pt-7 {
  padding-top: 1.75rem;
}

.pt-8 {
  padding-top: 2rem;
}

.text-left {
  text-align: left;
}

.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.align-baseline {
  vertical-align: baseline;
}

.align-middle {
  vertical-align: middle;
}

.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}

.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}

.text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}

.text-display-10 {
  font-size: calc(1.1rem + 0.25vw);
  line-height: 1.1;
}

.text-display-4 {
  font-size: calc(1.475rem + 2.7vw);
  line-height: 1.1;
}

.text-display-5 {
  font-size: calc(1.375rem + 1.5vw);
  line-height: 1.1;
}

.text-display-6 {
  font-size: calc(1.325rem + 1.1vw);
  line-height: 1.1;
}

.text-display-8 {
  font-size: calc(1.3rem + 0.6vw);
  line-height: 1.1;
}

.text-display-9 {
  font-size: calc(1.275rem + 0.3vw);
  line-height: 1.1;
}

.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}

.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}

.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}

.text-xxs {
  font-size: 0.625rem;
  line-height: 1rem;
}

.font-bold {
  font-weight: 700;
}

.font-medium {
  font-weight: 500;
}

.font-normal {
  font-weight: 400;
}

.font-semibold {
  font-weight: 600;
}

.leading-extra-loose {
  line-height: 2.5;
}

.leading-more_relaxed {
  line-height: 1.75;
}

.leading-relaxed {
  line-height: 1.625;
}

.tracking-tighter {
  letter-spacing: -0.05em;
}

.text-accent_color {
  --tw-text-opacity: 1;
  color: rgb(109 131 213 / var(--tw-text-opacity, 1));
}

.text-accent_color\/40 {
  color: rgb(109 131 213 / 0.4);
}

.text-asort_color {
  --tw-text-opacity: 1;
  color: rgb(63 91 217 / var(--tw-text-opacity, 1));
}

.text-blue-200 {
  --tw-text-opacity: 1;
  color: rgb(191 219 254 / var(--tw-text-opacity, 1));
}

.text-gray-200 {
  --tw-text-opacity: 1;
  color: rgb(229 231 235 / var(--tw-text-opacity, 1));
}

.text-gray-800 {
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity, 1));
}

.text-neutral-500 {
  --tw-text-opacity: 1;
  color: rgb(115 115 115 / var(--tw-text-opacity, 1));
}

.text-ta_blue {
  --tw-text-opacity: 1;
  color: rgb(37 52 142 / var(--tw-text-opacity, 1));
}

.text-ta_egs {
  --tw-text-opacity: 1;
  color: rgb(101 163 13 / var(--tw-text-opacity, 1));
}

.text-ta_its {
  --tw-text-opacity: 1;
  color: rgb(37 52 142 / var(--tw-text-opacity, 1));
}

.text-ta_nwb {
  --tw-text-opacity: 1;
  color: rgb(14 165 233 / var(--tw-text-opacity, 1));
}

.text-ta_tec {
  --tw-text-opacity: 1;
  color: rgb(244 63 94 / var(--tw-text-opacity, 1));
}

.text-tag_green {
  --tw-text-opacity: 1;
  color: rgb(110 181 38 / var(--tw-text-opacity, 1));
}

.text-tag_red {
  --tw-text-opacity: 1;
  color: rgb(219 26 65 / var(--tw-text-opacity, 1));
}

.text-tag_teal {
  --tw-text-opacity: 1;
  color: rgb(47 177 190 / var(--tw-text-opacity, 1));
}

.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.opacity-35 {
  opacity: 0.35;
}

.opacity-50 {
  opacity: 0.5;
}

.shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-asort_color02\/20 {
  --tw-shadow-color: rgb(161 196 253 / 0.2);
  --tw-shadow: var(--tw-shadow-colored);
}

.outline {
  outline-style: solid;
}

.blur {
  --tw-blur: blur(8px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.transition {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.duration-100 {
  transition-duration: 100ms;
}

.duration-200 {
  transition-duration: 200ms;
}

.gap_s {
  gap: 0.5rem;
}

@media (min-width: 1024px) {
  .gap_s {
    gap: 1rem;
  }
}

.gap_m {
  gap: 1rem;
}

@media (min-width: 1024px) {
  .gap_m {
    gap: 1.5rem;
  }
}

.gap_l {
  gap: 1rem;
}

@media (min-width: 1024px) {
  .gap_l {
    gap: 2rem;
  }
}

.p_s {
  padding: 0.5rem;
}

@media (min-width: 1024px) {
  .p_s {
    padding: 1rem;
  }
}

.p_m {
  padding: 1rem;
}

@media (min-width: 1024px) {
  .p_m {
    padding: 2rem;
  }
}

.py_s {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

@media (min-width: 1024px) {
  .py_s {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }
}

.px_m {
  padding-left: 1rem;
  padding-right: 1rem;
}

@media (min-width: 1024px) {
  .px_m {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

.stack {
  display: flex;
  flex-direction: column;
  /* 縦並び 余白0 */
}

.stack_s {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

@media (min-width: 1024px) {
  .stack_s {
    gap: 1rem;
  }
}

.stack_s {
  /* 縦並び 要素間に均等な余白を作る 余白サイズ小 */
}

.stack_m {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

@media (min-width: 1024px) {
  .stack_m {
    gap: 1.5rem;
  }
}

.stack_m {
  /* 余白サイズ中 */
}

.stack_l {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

@media (min-width: 1024px) {
  .stack_l {
    gap: 2rem;
  }
}

.stack_l {
  /* 余白サイズ大*/
}

.stack_xl {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

@media (min-width: 1024px) {
  .stack_xl {
    -moz-column-gap: 2rem;
         column-gap: 2rem;
    row-gap: 4rem;
  }
}

.stack_xl {
  /* 余白サイズ特大*/
}

.center {
  display: flex;
  align-items: center;
  justify-content: center;
  /* 完全中央配置　*/
}

.text {
  font-size: 1rem;
  line-height: 1.5rem;
}

.text_s {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

@media (min-width: 1024px) {
  .text_s {
    font-size: 0.9375rem;
    line-height: 1.375rem;
  }
}

.text_l {
  font-size: 1rem;
  line-height: 1.5rem;
}

@media (min-width: 1024px) {
  .text_l {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }
}

hr {
  border-left-width: 0px;
  border-right-width: 0px;
  border-bottom-width: 0px;
  border-top-width: 3px;
  --tw-border-opacity: 1;
  border-top-color: rgb(63 91 217 / var(--tw-border-opacity, 1));
}

hr.thin {
  border-left-width: 0px;
  border-right-width: 0px;
  border-bottom-width: 0px;
  border-top-width: 1px;
  --tw-border-opacity: 1;
  border-top-color: rgb(63 91 217 / var(--tw-border-opacity, 1));
}

hr.light {
  border-left-width: 0px;
  border-right-width: 0px;
  border-bottom-width: 0px;
  border-top-width: 3px;
  border-top-color: rgb(63 91 217 / 0.5);
}

.text_nwb {
  --tw-text-opacity: 1;
  color: rgb(59 130 246 / var(--tw-text-opacity, 1));
}

/*utilities*/

.bg-grade_ppl {
  background-image: linear-gradient(to top, #a18cd1 0%, #fbc2eb 100%);
  background-image: linear-gradient(to top, #a7a6cb 0%, #8989ba 52%, #8989ba 100%);
  background-image: linear-gradient(to top, #d9afd9 0%, #97d9e1 100%);
  background-image: linear-gradient(120deg, #a6c0fe 0%, #f68084 100%);
  background-image: linear-gradient(to top, #9795f0 0%, #fbc8d4 100%);
}

.bg-grade_pnk {
  background-image: linear-gradient(120deg, #a6c0fe 0%, #f68084 100%);
}

.bg-grade_org {
  background-image: linear-gradient(120deg, #f6d365 0%, #fda085 100%);
  background-image: linear-gradient(-60deg, #ff5858 0%, #f09819 100%);
}

.bg-grade_yel {
  background-image: linear-gradient(60deg, #abecd6 0%, #fbed96 100%);
}

.bg-grade_lmn {
  background-image: linear-gradient(60deg, #64b3f4 0%, #c2e59c 100%);
  /*★*/
}

.bg-grade_grn {
  background-image: linear-gradient(60deg, #96deda 0%, #50c9c3 100%);
  background-image: linear-gradient(-225deg, #b7f8db 0%, #50a7c2 100%);
}

.bg-grade_blu {
  background-image: linear-gradient(to top, #48c6ef 0%, #6f86d6 100%);
  background-image: linear-gradient(to top, #a3bded 0%, #6991c7 100%);
  background-image: linear-gradient(to top, #accbee 0%, #e7f0fd 100%);
  background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);
  background: linear-gradient(-90deg, #25348e 0%, #3f5bd9 40%, #3f5bd9 100%);
}

.bg-grade_red {
  background-image: linear-gradient(-45deg, #ffc796 0%, #ff6b95 100%);
}

.bg-grade_nvy {
  background-image: linear-gradient(to top, #6a85b6 0%, #bac8e0 100%);
  background-image: linear-gradient(to top, #fff1eb 0%, #ace0f9 100%);
  background-image: linear-gradient(to top, #a3bded 0%, #6991c7 100%);
  background-image: linear-gradient(15deg, #13547a 0%, #80d0c7 100%);
  background-image: linear-gradient(-225deg, #cbbacc 0%, #2580b3 100%);
  background-image: linear-gradient(-225deg, #7085b6 0%, #87a7d9 50%, #def3f8 100%);
  background-image: linear-gradient(to top, #1e3c72 0%, #1e3c72 1%, #2a5298 100%);
  /*★*/
}

.bg-grade_pale {
  background-image: linear-gradient(15deg, #f1f3fb 0%, #dce3f9 100%);
}

.bg-grade_white {
  background-image: linear-gradient(to top, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 100%);
}

.bg-diagonal_25 {
  background-color: #fff;
  background-image: linear-gradient(125deg, rgba(255, 255, 255, 0) 25%, #f1f2f9 25%, #b6bfdf 100%);
}

.bg-diagonal_25_rev {
  background-color: #fff;
  background-image: linear-gradient(125deg, #f1f2f9 0%, #b6bfdf 25%, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, 0) 100%);
}

.bg-diagonal_50 {
  background-color: #fff;
  background-image: linear-gradient(125deg, rgba(255, 255, 255, 0) 50%, #f1f2f9 50%, #b6bfdf 100%);
}

.bg-concept {
  background-image: linear-gradient(to right, #418cde 0%, #418cde 20%, #d27dbe 20%, #d27dbe 40%, #dbecf6 40%, #dbecf6 60%, #a8e0f3 60%, #a8e0f3 80%, #9fe277 80%, #9fe277 100%);
}

/*parts*/

.picframe01 {
  padding: 1.5rem;
  margin: 6px;
  outline: 2px solid #d5deee;
  outline-offset: 4px;
  /*background: linear-gradient(-45deg, transparent 0 24px, #fff 24px calc(100% - 24px), transparent calc(100% - 24px)), repeating-linear-gradient(-45deg, #d5deee 0 2px, #fff 2px 4px);*/
  background: linear-gradient(-45deg, transparent 0 24px, #fff 24px calc(100% - 24px), transparent calc(100% - 24px)), linear-gradient(-45deg, #d5deee 0 50%, #d5deee 50% 100%);
}

.picframe02 {
  padding: 0 1.5rem;
  margin: 4px;
  outline: 2px solid #fff;
  outline-offset: 4px;
  background: linear-gradient(-45deg, transparent 0 12px, #fff 12px calc(100% - 12px), transparent calc(100% - 12px)), linear-gradient(-45deg, #d5deee 0 50%, #d5deee 50% 100%);
}

/*gradation color*/

.contents_img a div.cel.ppl {
  background-image: linear-gradient(to top, #a18cd1 0%, #fbc2eb 100%);
  background-image: linear-gradient(to top, #a7a6cb 0%, #8989ba 52%, #8989ba 100%);
  background-image: linear-gradient(to top, #d9afd9 0%, #97d9e1 100%);
  background-image: linear-gradient(120deg, #a6c0fe 0%, #f68084 100%);
  background-image: linear-gradient(to top, #9795f0 0%, #fbc8d4 100%);
}

.contents_img a div.cel.pnk {
  background-image: linear-gradient(120deg, #a6c0fe 0%, #f68084 100%);
}

.contents_img a div.cel.org {
  background-image: linear-gradient(120deg, #f6d365 0%, #fda085 100%);
  background-image: linear-gradient(-60deg, #ff5858 0%, #f09819 100%);
}

.contents_img a div.cel.yel {
  background-image: linear-gradient(60deg, #abecd6 0%, #fbed96 100%);
}

.contents_img a div.cel.lmn {
  background-image: linear-gradient(60deg, #64b3f4 0%, #c2e59c 100%);
  /*★*/
}

.contents_img a div.cel.grn {
  background-image: linear-gradient(60deg, #96deda 0%, #50c9c3 100%);
  background-image: linear-gradient(-225deg, #b7f8db 0%, #50a7c2 100%);
}

.contents_img a div.cel.blu {
  background-image: linear-gradient(to top, #48c6ef 0%, #6f86d6 100%);
  background-image: linear-gradient(to top, #a3bded 0%, #6991c7 100%);
  background-image: linear-gradient(to top, #accbee 0%, #e7f0fd 100%);
  background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);
}

.contents_img a div.cel.red {
  background-image: linear-gradient(-45deg, #ffc796 0%, #ff6b95 100%);
}

.contents_img a div.cel.nvy {
  background-image: linear-gradient(to top, #6a85b6 0%, #bac8e0 100%);
  background-image: linear-gradient(to top, #fff1eb 0%, #ace0f9 100%);
  background-image: linear-gradient(to top, #a3bded 0%, #6991c7 100%);
  background-image: linear-gradient(15deg, #13547a 0%, #80d0c7 100%);
  background-image: linear-gradient(-225deg, #cbbacc 0%, #2580b3 100%);
  background-image: linear-gradient(-225deg, #7085b6 0%, #87a7d9 50%, #def3f8 100%);
  background-image: linear-gradient(to top, #1e3c72 0%, #1e3c72 1%, #2a5298 100%);
  /*★*/
}

.contents_img a div.cel.pale {
  background-image: linear-gradient(to top, #e6e9f0 0%, #eef1f5 100%);
  background-image: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
}

.visually_hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.u_line {
  text-decoration: underline;
  text-decoration-thickness: 3px;
  text-underline-offset: 0.25rem;
}

.u_line_full {
  position: relative;
  display: block;
  padding-bottom: 1rem;
  margin-bottom: 1rem;
  width: 100%;
}

.u_line_full::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: currentColor;
}

.u_line_50 {
  background: color-mix(in srgb, currentColor 50%, color transparent);
}

.before\:bg-accent_color::before {
  content: var(--tw-content);
  --tw-bg-opacity: 1;
  background-color: rgb(109 131 213 / var(--tw-bg-opacity, 1));
}

.before\:bg-ta_red::before {
  content: var(--tw-content);
  --tw-bg-opacity: 1;
  background-color: rgb(229 0 18 / var(--tw-bg-opacity, 1));
}

.before\:bg-tag_green::before {
  content: var(--tw-content);
  --tw-bg-opacity: 1;
  background-color: rgb(110 181 38 / var(--tw-bg-opacity, 1));
}

.hover\:bg-white:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.hover\:brightness-105:hover {
  --tw-brightness: brightness(1.05);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.group:hover .group-hover\:scale-105 {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:scale-110 {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:scale-150 {
  --tw-scale-x: 1.5;
  --tw-scale-y: 1.5;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:text-accent_color {
  --tw-text-opacity: 1;
  color: rgb(109 131 213 / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:text-asort_color {
  --tw-text-opacity: 1;
  color: rgb(63 91 217 / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:opacity-75 {
  opacity: 0.75;
}

.group:hover .group-hover\:opacity-90 {
  opacity: 0.9;
}

@media (min-width: 640px) {
  .sm\:order-1 {
    order: 1;
  }

  .sm\:order-2 {
    order: 2;
  }

  .sm\:col-span-2 {
    grid-column: span 2 / span 2;
  }

  .sm\:col-span-3 {
    grid-column: span 3 / span 3;
  }

  .sm\:mx-auto {
    margin-left: auto;
    margin-right: auto;
  }

  .sm\:ms-56 {
    margin-inline-start: 14rem;
  }

  .sm\:flex {
    display: flex;
  }

  .sm\:hidden {
    display: none;
  }

  .sm\:w-1\/2 {
    width: 50%;
  }

  .sm\:w-48 {
    width: 12rem;
  }

  .sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sm\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .sm\:flex-row {
    flex-direction: row;
  }

  .sm\:gap-6 {
    gap: 1.5rem;
  }

  .sm\:px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .sm\:pr-4 {
    padding-right: 1rem;
  }
}

@media (min-width: 768px) {
  .md\:h-96 {
    height: 24rem;
  }

  .md\:w-1\/6 {
    width: 16.666667%;
  }

  .md\:w-5\/6 {
    width: 83.333333%;
  }

  .md\:flex-row {
    flex-direction: row;
  }

  .md\:flex-col {
    flex-direction: column;
  }

  .md\:items-start {
    align-items: flex-start;
  }

  .md\:via-transparent {
    --tw-gradient-to: rgb(0 0 0 / 0)  var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to);
  }

  .md\:py-8 {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

  .md\:pb-4 {
    padding-bottom: 1rem;
  }

  .md\:text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
  }
}

@media (min-width: 1024px) {
  .lg\:order-1 {
    order: 1;
  }

  .lg\:order-2 {
    order: 2;
  }

  .lg\:order-3 {
    order: 3;
  }

  .lg\:order-4 {
    order: 4;
  }

  .lg\:col-span-1 {
    grid-column: span 1 / span 1;
  }

  .lg\:col-span-2 {
    grid-column: span 2 / span 2;
  }

  .lg\:col-span-3 {
    grid-column: span 3 / span 3;
  }

  .lg\:my-8 {
    margin-top: 2rem;
    margin-bottom: 2rem;
  }

  .lg\:-mt-3 {
    margin-top: -0.75rem;
  }

  .lg\:mb-4 {
    margin-bottom: 1rem;
  }

  .lg\:mb-8 {
    margin-bottom: 2rem;
  }

  .lg\:ml-0 {
    margin-left: 0px;
  }

  .lg\:ml-24 {
    margin-left: 6rem;
  }

  .lg\:mt-0 {
    margin-top: 0px;
  }

  .lg\:mt-8 {
    margin-top: 2rem;
  }

  .lg\:block {
    display: block;
  }

  .lg\:hidden {
    display: none;
  }

  .lg\:h-48 {
    height: 12rem;
  }

  .lg\:h-full {
    height: 100%;
  }

  .lg\:w-1\/2 {
    width: 50%;
  }

  .lg\:w-1\/3 {
    width: 33.333333%;
  }

  .lg\:w-1\/4 {
    width: 25%;
  }

  .lg\:w-24 {
    width: 6rem;
  }

  .lg\:w-3\/4 {
    width: 75%;
  }

  .lg\:w-5\/12 {
    width: 41.666667%;
  }

  .lg\:w-full {
    width: 100%;
  }

  .lg\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .lg\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .lg\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .lg\:flex-row {
    flex-direction: row;
  }

  .lg\:items-start {
    align-items: flex-start;
  }

  .lg\:items-end {
    align-items: flex-end;
  }

  .lg\:items-center {
    align-items: center;
  }

  .lg\:gap-6 {
    gap: 1.5rem;
  }

  .lg\:gap-8 {
    gap: 2rem;
  }

  .lg\:border-b {
    border-bottom-width: 1px;
  }

  .lg\:p-0 {
    padding: 0px;
  }

  .lg\:p-8 {
    padding: 2rem;
  }

  .lg\:px-16 {
    padding-left: 4rem;
    padding-right: 4rem;
  }

  .lg\:py-0 {
    padding-top: 0px;
    padding-bottom: 0px;
  }

  .lg\:py-8 {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

  .lg\:pb-12 {
    padding-bottom: 3rem;
  }

  .lg\:pb-16 {
    padding-bottom: 4rem;
  }

  .lg\:pb-8 {
    padding-bottom: 2rem;
  }

  .lg\:pl-0 {
    padding-left: 0px;
  }

  .lg\:pl-4 {
    padding-left: 1rem;
  }

  .lg\:pt-16 {
    padding-top: 4rem;
  }

  .lg\:text-left {
    text-align: left;
  }

  .lg\:text-right {
    text-align: right;
  }

  .lg\:text-3xl {
    font-size: 1.875rem;
    line-height: 2.25rem;
  }

  .lg\:text-4xl {
    font-size: 2.25rem;
    line-height: 2.5rem;
  }

  .lg\:text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }
}

@media (min-width: 1280px) {
  .xl\:order-1 {
    order: 1;
  }

  .xl\:order-2 {
    order: 2;
  }

  .xl\:my-0 {
    margin-top: 0px;
    margin-bottom: 0px;
  }

  .xl\:mb-8 {
    margin-bottom: 2rem;
  }

  .xl\:mr-8 {
    margin-right: 2rem;
  }

  .xl\:h-104 {
    height: 26rem;
  }

  .xl\:w-1\/3 {
    width: 33.333333%;
  }

  .xl\:w-1\/5 {
    width: 20%;
  }

  .xl\:w-1\/6 {
    width: 16.666667%;
  }

  .xl\:w-2\/3 {
    width: 66.666667%;
  }

  .xl\:w-4\/5 {
    width: 80%;
  }

  .xl\:w-7\/12 {
    width: 58.333333%;
  }

  .xl\:w-full {
    width: 100%;
  }

  .xl\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .xl\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .xl\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .xl\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .xl\:flex-row {
    flex-direction: row;
  }

  .xl\:items-center {
    align-items: center;
  }

  .xl\:justify-start {
    justify-content: flex-start;
  }

  .xl\:gap-y-1 {
    row-gap: 0.25rem;
  }

  .xl\:gap-y-6 {
    row-gap: 1.5rem;
  }

  .xl\:rounded {
    border-radius: 0.25rem;
  }

  .xl\:border {
    border-width: 1px;
  }

  .xl\:border-white {
    --tw-border-opacity: 1;
    border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
  }

  .xl\:px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .xl\:py-10 {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }

  .xl\:py-8 {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

  .xl\:pb-16 {
    padding-bottom: 4rem;
  }

  .xl\:pb-8 {
    padding-bottom: 2rem;
  }

  .xl\:pl-2 {
    padding-left: 0.5rem;
  }

  .xl\:pl-4 {
    padding-left: 1rem;
  }

  .xl\:pr-4 {
    padding-right: 1rem;
  }

  .xl\:pt-8 {
    padding-top: 2rem;
  }

  .xl\:text-left {
    text-align: left;
  }

  .xl\:text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }

  .xl\:leading-loose {
    line-height: 2;
  }

  .xl\:text-white {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  }
}

@media (min-width: 1440px) {
  .\32xl\:col-span-4 {
    grid-column: span 4 / span 4;
  }

  .\32xl\:h-120 {
    height: 30rem;
  }

  .\32xl\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .\32xl\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 1536px) {
  .\33xl\:flex-row {
    flex-direction: row;
  }
}

@media (prefers-color-scheme: dark) {
  .dark\:border-neutral-700 {
    --tw-border-opacity: 1;
    border-color: rgb(64 64 64 / var(--tw-border-opacity, 1));
  }
}
